ZGlmZiAtLWdpdCBhL1JFQURNRSBiL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDExOTAwCi0tLSAvZGV2L251bGwKKysrIGIvUkVBRE1FCkBAIC0wLDAgKzEsMTkgQEAKKwkJCQllYzIwMDkKKworVGhpcyB0cmVlIGNvbnRhaW5zIGFsbCBvZiB0aGUgbWF0ZXJpYWxzIHByb3ZpZGVkIGZvciB0aGUgRWNsaXBzZUNvbiAyMDA5CisiR2V0dGluZyBTdGFydGVkIHdpdGggUlRTQyIgdHV0b3JpYWwuCisKK1RoZSB0dXRvcmlhbCB3YXMgcHJlc2VudGVkIGluIHR3byBwYXJ0cyBhbmQgdGhlIG1hdGVyaWFscyBmb3IgZWFjaCBwYXJ0IGFyZQorY29udGFpbmVkIGluIGNvcnJlc3BvbmRpbmcgc3ViLWRpcmVjdG9yaWVzOiAuL3BhcnQxIGFuZCAuL3BhcnQyLiAgRm9yIG1vcmUKK2luZm9ybWF0aW9uIHNlZSB0aGUgY29udGVudHMgb2YgdGhlc2UgZGlyZWN0b3Jlcy4KKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQURESVRJT05TCisKK0RFTEVUSU9OUworCitDSEFOR0VTCisKK01SUworCmRpZmYgLS1naXQgYS9tYWtlZmlsZSBiL21ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5NGE0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9tYWtlZmlsZQpAQCAtMCwwICsxLDEyIEBACisjCisjICBUb3AtbGV2ZWwgbWFrZWZpbGUgZm9yIGVjMjAwOQorIworIyAgU2VlIHNyYy9wYXJ0Mi9SRUFETUUgZm9yIGJ1aWxkIGluc3RydWN0aW9ucworIworYWxsOgorCUAkKE1BS0UpIC1DIHNyYy9wYXJ0MgorCitjbGVhbjoKKwlAZWNobyBjbGVhbmluZyAuLi4KKwlAJChNQUtFKSAtQyBzcmMvcGFydDIgY2xlYW4KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvLmNkdHByb2plY3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy8uY2R0cHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDBiY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvLmNkdHByb2plY3QKQEAgLTAsMCArMSw2NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8P2VjbGlwc2UtY2R0IHZlcnNpb249IjIuMCI/Pg0KKw0KKzxjZHRwcm9qZWN0IGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2UiPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVMRiIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkJpbmFyeVBhcnNlciIvPg0KKzxkYXRhPg0KKzxpdGVtIGlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlckZpbGVQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L2l0ZW0+DQorPGl0ZW0gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhdGhlbnRyeSI+DQorPHBhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0ib3V0IiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5ESVNDT1ZFUkVEX1NDQU5ORVJfSU5GTyIvPg0KKzwvaXRlbT4NCis8aXRlbSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZHRhcmdldHMiPg0KKzxidWlsZFRhcmdldHM+DQorPHRhcmdldCBuYW1lPSJ0ZXN0IiBwYXRoPSIiIHRhcmdldElEPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5NYWtlVGFyZ2V0QnVpbGRlciI+DQorPGJ1aWxkQ29tbWFuZD5kOi93b3JrL2lsaWFkL2dtYWtlPC9idWlsZENvbW1hbmQ+DQorPGJ1aWxkQXJndW1lbnRzLz4NCis8YnVpbGRUYXJnZXQ+dGVzdDwvYnVpbGRUYXJnZXQ+DQorPHN0b3BPbkVycm9yPmZhbHNlPC9zdG9wT25FcnJvcj4NCis8dXNlRGVmYXVsdENvbW1hbmQ+ZmFsc2U8L3VzZURlZmF1bHRDb21tYW5kPg0KKzwvdGFyZ2V0Pg0KKzwvYnVpbGRUYXJnZXRzPg0KKzwvaXRlbT4NCis8L2RhdGE+DQorPC9jZHRwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nLy5jcHJvamVjdCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nLy5jcHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzE4MjA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvLmNwcm9qZWN0CkBAIC0wLDAgKzEsMjY5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZmlsZVZlcnNpb24gNC4wLjA/Pg0KKw0KKzxjcHJvamVjdD4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiPg0KKzxjY29uZmlndXJhdGlvbiBpZD0iMC4zMzgzOTMyMCI+DQorPHN0b3JhZ2VNb2R1bGUgYnVpbGRTeXN0ZW1JZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuY29uZmlndXJhdGlvbkRhdGFQcm92aWRlciIgaWQ9IjAuMzM4MzkzMjAiIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyIgbmFtZT0iRGVmYXVsdCI+DQorPGV4dGVybmFsU2V0dGluZ3MvPg0KKzxleHRlbnNpb25zPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLlZDRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkdBU0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5HTERFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuR0NDRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPC9leHRlbnNpb25zPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0iY2R0QnVpbGRTeXN0ZW0iIHZlcnNpb249IjQuMC4wIj4NCis8Y29uZmlndXJhdGlvbiBhcnRpZmFjdE5hbWU9ImhlbGxvLXByb2ciIGJ1aWxkUHJvcGVydGllcz0iIiBkZXNjcmlwdGlvbj0iIiBpZD0iMC4zMzgzOTMyMCIgbmFtZT0iRGVmYXVsdCIgcGFyZW50PSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS5jZmciPg0KKzxmb2xkZXJJbmZvIGlkPSIwLjMzODM5MzIwLiIgbmFtZT0iLyIgcmVzb3VyY2VQYXRoPSIiPg0KKzx0b29sQ2hhaW4gaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLnRvb2xjaGFpbi40MjgyMDExMDEiIG5hbWU9Ik5vIFRvb2xDaGFpbiIgcmVzb3VyY2VUeXBlQmFzZWREaXNjb3Zlcnk9ImZhbHNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS50b29sY2hhaW4iPg0KKzx0YXJnZXRQbGF0Zm9ybSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUucHJlZmJhc2UudG9vbGNoYWluLjQyODIwMTEwMS4yMTE0OTE3NDUiIG5hbWU9IiIvPg0KKzxidWlsZGVyIGJ1aWxkUGF0aD0iIiBjb21tYW5kPSIke1hEQ1JPT1R9L2dtYWtlIiBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuZGVmYXVsdC5idWlsZGVyLjYwMjQ3MzcwOCIga2VlcEVudmlyb25tZW50SW5CdWlsZGZpbGU9ImZhbHNlIiBtYW5hZ2VkQnVpbGRPbj0iZmFsc2UiIG5hbWU9IkdudSBNYWtlIEJ1aWxkZXIiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmRlZmF1bHQuYnVpbGRlciIvPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIubGlicy4xNDY4NzQ0MjY4IiBuYW1lPSJob2xkZXIgZm9yIGxpYnJhcnkgc2V0dGluZ3MiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5saWJzIi8+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci4xMTEzMDU1ODkiIG5hbWU9IkdOVSBDKysiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS4yMzM5OTMxNDMiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmcrKyIgbGFuZ3VhZ2VOYW1lPSJHTlUgQysrIiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuY3h4U291cmNlLG9yZy5lY2xpcHNlLmNkdC5jb3JlLmN4eEhlYWRlciIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZSIvPg0KKzwvdG9vbD4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLjEyNzkyMjYxMDciIG5hbWU9IkdOVSBDIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuODE1NzY3Mzk5IiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5nY2MiIGxhbmd1YWdlTmFtZT0iR05VIEMiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5jU291cmNlLG9yZy5lY2xpcHNlLmNkdC5jb3JlLmNIZWFkZXIiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUiLz4NCis8L3Rvb2w+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci4xMDk5NjQyMTc0IiBuYW1lPSJVUEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS42ODYxMzg5ODAiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhcnNlci51cGMudXBjIiBsYW5ndWFnZU5hbWU9IlVQQyIgc291cmNlQ29udGVudFR5cGU9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhcnNlci51cGMudXBjU291cmNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuMjg2ODEyMzEzIiBuYW1lPSJBc3NlbWJseSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyIj4NCis8aW5wdXRUeXBlIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlLjIwMjg1MTM4MTMiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmFzc2VtYmx5IiBsYW5ndWFnZU5hbWU9IkFzc2VtYmx5IiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuYXNtU291cmNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzwvdG9vbENoYWluPg0KKzwvZm9sZGVySW5mbz4NCis8L2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlckZpbGVQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmMiIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jcHAiIGNvbW1hbmQ9ImcrKyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci54bGMuY29yZS5YTENNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bGMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsQyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxzY2FubmVyQ29uZmlnQnVpbGRJbmZvIGluc3RhbmNlSWQ9IjAuMzM4MzkzMjAiPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlckZpbGVQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJtYWtlZmlsZUdlbmVyYXRvciI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1mICR7cHJvamVjdF9uYW1lfV9zY2QubWsiIGNvbW1hbmQ9Im1ha2UiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci54bGMuY29yZS5YTENNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC12ICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSIke1hMX2NvbXBpbGVyUm9vdH0veGxDIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L3NjYW5uZXJDb25maWdCdWlsZEluZm8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmV4dGVybmFsU2V0dGluZ3MiLz4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZHRhcmdldHMiPg0KKzxidWlsZFRhcmdldHM+DQorPHRhcmdldCBuYW1lPSJ0ZXN0IiBwYXRoPSIiIHRhcmdldElEPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuTWFrZVRhcmdldEJ1aWxkZXIiPg0KKzxidWlsZENvbW1hbmQ+JHtYRENST09UfS9nbWFrZTwvYnVpbGRDb21tYW5kPg0KKzxidWlsZEFyZ3VtZW50cz48L2J1aWxkQXJndW1lbnRzPg0KKzxidWlsZFRhcmdldD50ZXN0PC9idWlsZFRhcmdldD4NCis8c3RvcE9uRXJyb3I+dHJ1ZTwvc3RvcE9uRXJyb3I+DQorPHVzZURlZmF1bHRDb21tYW5kPmZhbHNlPC91c2VEZWZhdWx0Q29tbWFuZD4NCis8cnVuQWxsQnVpbGRlcnM+dHJ1ZTwvcnVuQWxsQnVpbGRlcnM+DQorPC90YXJnZXQ+DQorPC9idWlsZFRhcmdldHM+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJjZHRCdWlsZFN5c3RlbSIgdmVyc2lvbj0iNC4wLjAiPg0KKzxwcm9qZWN0IGlkPSJoZWxsby1wcm9nLm51bGwuMjA0MDYzNTU2NiIgbmFtZT0iaGVsbG8tcHJvZyIvPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Nwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nLy5wcm9qZWN0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmNkMzkxNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nLy5wcm9qZWN0CkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+aGVsbG8tcHJvZzwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmdlbm1ha2VidWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pj9uYW1lPzwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXV0b0J1aWxkVGFyZ2V0PC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZEFyZ3VtZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGRDb21tYW5kPC9rZXk+DQorCQkJCQk8dmFsdWU+JHtYRENST09UfS9nbWFrZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGRMb2NhdGlvbjwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuY2xlYW5CdWlsZFRhcmdldDwva2V5Pg0KKwkJCQkJPHZhbHVlPmNsZWFuPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5jb250ZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYWN0aXZlQ29uZmlnU2V0dGluZ3M8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUF1dG9CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVDbGVhbkJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlRnVsbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZnVsbEJ1aWxkVGFyZ2V0PC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5zdG9wT25FcnJvcjwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnVzZURlZmF1bHRCdWlsZENtZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLlNjYW5uZXJDb25maWdCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQuY29yZS5jbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLlNjYW5uZXJDb25maWdOYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUubWFuYWdlZEJ1aWxkTmF0dXJlPC9uYXR1cmU+DQorCTwvbmF0dXJlcz4NCis8L3Byb2plY3REZXNjcmlwdGlvbj4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU3ZjVjMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcwpAQCAtMCwwICsxLDMgQEAKKyNTYXQgTWFyIDA3IDE4OjEyOjQxIFBTVCAyMDA5DQorZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTENCitpbmRleGVySWQ9b3JnLmVjbGlwc2UuY2R0LmNvcmUuZG9tc291cmNlaW5kZXhlcg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvLmludGVyZmFjZXMgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlLy5pbnRlcmZhY2VzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlLy5pbnRlcmZhY2VzCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlLy5saWJyYXJpZXMsNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS8ubGlicmFyaWVzLDY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS8ubGlicmFyaWVzLDY0UApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGMyZGJmYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAKK2lmbmVxICgsJChmaW5kc3RyaW5nIHBhdGgsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDUEFUSCA9IAorb3ZlcnJpZGUgWERDUk9PVCA9IGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOQorb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuL2NvbmZpZy5ibGQKK2VuZGlmCitpZm5lcSAoLCQoZmluZHN0cmluZyBhcmdzLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ0FSR1MgPSAKK292ZXJyaWRlIFhEQ1RBUkdFVFMgPSAKK2VuZGlmCisjCitpZmVxICgwLDEpCitQS0dQQVRIID0gZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzOy4uCitIT1NUT1MgPSBXaW5kb3dzCitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9jb21waWxlci5vcHQgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL2NvbXBpbGVyLm9wdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MWNlODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9jb21waWxlci5vcHQKQEAgLTAsMCArMSBAQAorLW12NjRwIC1JImU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcyIgLUkiRDovd29yay90dXRvcmlhbC9oZWxsby1wcm9nL2NmZ3NpdGUvLi4iIC1JZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUgLUR4ZGNfdGFyZ2V0X3R5cGVzX189InRpL3RhcmdldHMvc3RkLmgiIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY19jZmdfX2hlYWRlcl9fPSJEOi93b3JrL3R1dG9yaWFsL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuaCIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvY29uZmlnLmJsZCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvY29uZmlnLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzY2NDZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9jb25maWcuYmxkCkBAIC0wLDAgKzEsNiBAQAorLyogVEhJUyBJUyBBIEdFTkVSQVRFRCBGSUxFIC0tIERPIE5PVCBFRElUICovCisvKiBjb25maWd1cm8gd2FzIHBhc3NlZCB0aGUgdGFyZ2V0J3MgbmFtZSBleHBsaWNpdGx5ICovCit2YXIgdGFyZ2V0ICA9IHhkYy5tb2R1bGUoJ3RpLnRhcmdldHMuQzY0UCcpOworQnVpbGQudGFyZ2V0cyA9IFt0YXJnZXRdOworLyogY29uZmlndXJvIHdhcyBwYXNzZWQgdGhlIHRhcmdldCdzIHJvb3REaXIgZXhwbGljaXRseSAqLwordGFyZ2V0LnJvb3REaXIgPSAnZDovdGkvYzYwMDAvYWxjJzsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvY3VzdG9tLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvY3VzdG9tLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzQ1MDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9jdXN0b20ubWFrCkBAIC0wLDAgKzEsNyBAQAorIyMgVEhJUyBJUyBBIEdFTkVSQVRFRCBGSUxFIC0tIERPIE5PVCBFRElUCisuY29uZmlndXJvOiBsaW5rZXIuY21kCisKK2xpbmtlci5jbWQ6IFwKKyAgcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAgXAorICBwYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsCisJJChTRUQpICdzIl5cIlwocGFja2FnZS9jZmcvcHJvZ194NjRQY2ZnLmNtZFwpXCIkIiJcIkQ6L3dvcmsvdHV0b3JpYWwvaGVsbG8tcHJvZy9jZmdzaXRlL1wxXCIiJyBwYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsID4gJEAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvbGlua2VyLnR4dCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvbGlua2VyLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjdmMjNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9saW5rZXIudHh0CkBAIC0wLDAgKzEsNSBAQAorRklMRSBERUxFVEVEDQorDQorTWljcm9zb2Z0IEZvcmVmcm9udCBTZWN1cml0eSBmb3IgRXhjaGFuZ2UgU2VydmVyIHJlbW92ZWQgYSBmaWxlIHNpbmNlIGl0IHdhcyBmb3VuZCB0byBtYXRjaCBhIGZpbHRlci4NCitGaWxlIG5hbWU6ICJwYXJ0MS16aXAuYmFrLT5saW5rZXIuY21kIg0KK0ZpbHRlciBuYW1lOiAiRklMRSBGSUxURVI9IEZpbGUgVHlwZXM6ICouQ01EIg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS5ibGQgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UuYmxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzZWVlOWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UuYmxkCkBAIC0wLDAgKzEsODYgQEAKKy8qIFRISVMgSVMgQSBHRU5FUkFURUQgRklMRSAtLSBETyBOT1QgRURJVCAqLworCit2YXIgdGFyZyA9IHhkYy5tb2R1bGUoJ3RpLnRhcmdldHMuQzY0UCcpOworLyogY29uZmlndXJvIHdhcyB0b2xkIHRoZSBwbGF0Zm9ybSBleHBsaWNpdGx5ICovCit2YXIgcGxhdGZvcm0gPSAndGkucGxhdGZvcm1zLnNpbTY0UHh4JzsKKworLyogZGVjaWRlIHdoZXRoZXIgdG8gbWFrZSBhbiBhc3NlbWJseSBvciBhbiBleGVjdXRhYmxlICovCit2YXIgbWFrZUFzc2VtYmx5ID0gZmFsc2U7CisKKwordmFyIEV4ZWN1dGFibGUgPSB4ZGMubW9kdWxlKCd4ZGMuYmxkLkV4ZWN1dGFibGUnKTsKKwordmFyIGV4ZU9wdHMgPSBuZXcgRXhlY3V0YWJsZS5BdHRycyh7CisgICAgICAgIGNmZ1NjcmlwdDogJ0Q6L3dvcmsvdHV0b3JpYWwvaGVsbG8tcHJvZy9wcm9nLmNmZycsCisgICAgICAgIHByb2ZpbGU6ICdyZWxlYXNlJywKKyAgICAgICAgY2ZnSG9tZTogJ2NmZ3NpdGUnLAorfSk7CisKKy8qIGlmIHRoZSBidWlsZCBtb2RlbCBzdXBwb3J0cyBlbmNvZGVkIGNmZ0FyZ3MsIHVzZSBpdCAqLworaWYgKCdjZmdBcmdzRW5jb2RlZCcgaW4gZXhlT3B0cykgeworICAgIGV4ZU9wdHMuY2ZnQXJncyA9ICdudWxsJzsKKyAgICBleGVPcHRzLmNmZ0FyZ3NFbmNvZGVkID0gdHJ1ZTsKK30KK2Vsc2UgeworICAgIC8qIG90aGVyd2lzZSwgd2UgbXVzdCByaXNrIGVycm9ycyBpZiBjZmdBcmdzIGNvbnRhaW5zIGVtYmVkZGVkICdzICovCisgICAgZXhlT3B0cy5jZmdBcmdzID0gJ251bGwnOworfQorCit2YXIgZXhlID0gUGtnW21ha2VBc3NlbWJseSA/ICdhZGRBc3NlbWJseSc6ICdhZGRFeGVjdXRhYmxlJ10oCisgICAgJ3Byb2cnLAorICAgIHRhcmcsCisgICAgcGxhdGZvcm0sCisgICAgZXhlT3B0cworKTsKKworUGtnLm1ha2VFcGlsb2d1ZSA9ICJpbmNsdWRlIGN1c3RvbS5tYWsiOworCisvKgorICogR2VuZXJhdGUgdGhlIGNvbXBpbGVyLm9wdCBmaWxlCisgKiBEbyB0aGlzIGhlcmUgaW5zdGVhZCBvZiBkdXJpbmcgdGhlIGluaXRpYWwgY3JlYXRpb24gb2YgdGhlIGNvbmZpZ3VybworICogcGFja2FnZSwgYmVjYXVzZSB0aGUgY29udGVudHMgb2YgYW55IGNvbmZpZy5ibGQgc2NyaXB0IGFyZSB1bmtub3duCisgKiBhdCB0aGF0IHRpbWUuIENvbmZpZy5ibGQgY2FuJ3QgYmUgZXhlY3V0ZWQgdW50aWwgdGhlIFhEQyBidWlsZCBwaGFzZS4KKyAqLworaWYgKG1ha2VBc3NlbWJseSkgeworICAgIHZhciBzdWZmaXggID0gdGFyZy5kbGxFeHQgfHwgJy5wJyArIHRhcmcuc3VmZml4OworfQorZWxzZSB7CisgICAgdmFyIHN1ZmZpeCAgPSB0YXJnLmV4ZWNFeHQgfHwgJy54JyArIHRhcmcuc3VmZml4OworfQordmFyIHRoaXNPYmogPSB7CisgICAgY2ZnOiAgICAgICAgJ3Byb2cuY2ZnJywKKyAgICBvdXRwdXRQYXRoOiAnRDovd29yay90dXRvcmlhbC9oZWxsby1wcm9nL2NmZ3NpdGUnLAorICAgIGV4ZU5hbWU6ICAgICdwcm9nJyArIHN1ZmZpeCwKKyAgICBleGVJbnROYW1lOiAncHJvZycgKyBzdWZmaXgucmVwbGFjZSgnLicsICdfJyksCisgICAgdGFyZzogICAgICAgdGFyZywKKyAgICBsZWdhY3lUY2Y6ICBmYWxzZSwKKyAgICBiaW9zNUluY3M6ICBmYWxzZSwKKyAgICBsaW5rZXJDb21tYW5kRmlsZTogJ2xpbmtlci5jbWQnLAorICAgIG1ha2VBc3NlbWJseTogbWFrZUFzc2VtYmx5Cit9OwordmFyIHRtcGwgPSB4ZGMubG9hZFRlbXBsYXRlKCd4ZGMvdG9vbHMvY29uZmlndXJvL3RlbXBsYXRlL2NvbXBpbGVyLm9wdC54ZHQnKTsKK3RtcGwuZ2VuRmlsZSgnY29tcGlsZXIub3B0JywgdGhpc09iaiwgW10sIGZhbHNlKTsKKworLyoKKyAqIEdlbmVyYXRlIHRoZSBjdXN0b20gbWFrZWZpbGUuCisgKi8KK3ZhciB0bXBsID0geGRjLmxvYWRUZW1wbGF0ZSgneGRjL3Rvb2xzL2NvbmZpZ3Vyby90ZW1wbGF0ZS8nICsgCisgICAgKG1ha2VBc3NlbWJseT8gJ2N1c3RvbS5tYWsuYXNtLnhkdCcgOiAnY3VzdG9tLm1hay5leGUueGR0JykpOwordG1wbC5nZW5GaWxlKCdjdXN0b20ubWFrJywgdGhpc09iaiwgW10sIGZhbHNlKTsKK1BrZy5tYWtlRXBpbG9ndWUgPSAiaW5jbHVkZSBjdXN0b20ubWFrIjsKKworLyoKKyAqIEdlbmVyYXRlIHRoZSBwYWNrYWdlIHNjcmlwdC4KKyAqLwordmFyIHRtcGwgPSB4ZGMubG9hZFRlbXBsYXRlKCd4ZGMvdG9vbHMvY29uZmlndXJvL3RlbXBsYXRlL3BhY2thZ2UueHMueGR0Jyk7Cit0bXBsLmdlbkZpbGUoJ3BhY2thZ2UueHMnLCB0aGlzT2JqLCBbXSwgZmFsc2UpOworCitpZiAobWFrZUFzc2VtYmx5KSB7CisvKgorICogR2VuZXJhdGUgdGhlIGxpbmtlciBvcHRpb25zIGludG8gYSBzdGFnaW5nIGZpbGUsIHNvIHRoYXQgdGhlIHByZXNlbmNlIG9yCisgKiBhZ2Ugb2YgdGhlIGFkdmVydGlzZWQgbGlua2VyIGNvbW1hbmQgZmlsZSBjYW4gYmUgdGhlIG1ha2VmaWxlIHRyaWdnZXIgdG8KKyAqIHJlYnVpbGQgdGhlIHBhY2thZ2UgZnJvbSB0aGUgdXNlcidzIGNvbmZpZyBzY3JpcHQuCisgKi8KKyAgICB2YXIgdG1wbCA9IHhkYy5sb2FkVGVtcGxhdGUoJ3hkYy90b29scy9jb25maWd1cm8vdGVtcGxhdGUvbGlua2VyLmNtZC5hc20ueGR0Jyk7CisgICAgdG1wbC5nZW5GaWxlKCdsaW5rZXIuY21kLmNwJywgdGhpc09iaiwgW10sIGZhbHNlKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3OTg3ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UubWFrCkBAIC0wLDAgKzEsMjI2IEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisKK3VuZXhwb3J0IE1BS0VGSUxFX0xJU1QKK292ZXJyaWRlIFBLR0RJUiA9IGNmZ3NpdGUKK1hEQ0lOQ1MgPSAtSS4gLUkkKHN0cmlwICQoc3Vic3QgOywgLUksJChzdWJzdCAkKHNwYWNlKSxcJChzcGFjZSksJChYUEtHUEFUSCkpKSkKK1hEQ0NGR0RJUiA9IHBhY2thZ2UvY2ZnLworCisjCisjIFRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jaWVzIGVuc3VyZSBwYWNrYWdlLm1hayBpcyByZWJ1aWx0CisjIGluIHRoZSBldmVudCB0aGF0IHNvbWUgaW5jbHVkZWQgQk9NIHNjcmlwdCBjaGFuZ2VzLgorIworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdG9vbHMvY29uZmlndXJvL3RlbXBsYXRlL2N1c3RvbS5tYWsuZXhlLnhkdDoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Rvb2xzL2NvbmZpZ3Vyby90ZW1wbGF0ZS9jdXN0b20ubWFrLmV4ZS54ZHQKK3BhY2thZ2UubWFrOiBjb25maWcuYmxkCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pby9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW8vcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90b29scy9jb25maWd1cm8vdGVtcGxhdGUvY29tcGlsZXIub3B0LnhkdDoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Rvb2xzL2NvbmZpZ3Vyby90ZW1wbGF0ZS9jb21waWxlci5vcHQueGR0CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9QYWNrYWdlQ29udGVudHMueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUGFja2FnZUNvbnRlbnRzLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvSVRhcmdldC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9JVGFyZ2V0LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL3BhY2thZ2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaToKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2kKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaToKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2kKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdG9vbHMvY29uZmlndXJvL3RlbXBsYXRlL3BhY2thZ2UueHMueGR0OgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdG9vbHMvY29uZmlndXJvL3RlbXBsYXRlL3BhY2thZ2UueHMueGR0CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL01TUDQzMC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9NU1A0MzAueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9fZ2VuLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL19nZW4ueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUmVwb3NpdG9yeS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9SZXBvc2l0b3J5LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1NjcmlwdC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9TY3JpcHQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0J1aWxkRW52aXJvbm1lbnQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvQnVpbGRFbnZpcm9ubWVudC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvTGlicmFyeS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9MaWJyYXJ5LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3BhY2thZ2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1V0aWxzLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1V0aWxzLnhzCitwYWNrYWdlLm1hazogcGFja2FnZS5ibGQKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9FeGVjdXRhYmxlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0V4ZWN1dGFibGUueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW8vRmlsZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2lvL0ZpbGUueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXRGaWx0ZXIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldEZpbHRlci54cworZW5kaWYKKwordGkudGFyZ2V0cy5DNjRQLnJvb3REaXIgPz0gZDovdGkvYzYwMDAvYWxjCit0aS50YXJnZXRzLnBhY2thZ2VCYXNlID89IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzLworLlBSRUNJT1VTOiAkKFhEQ0NGR0RJUikvJS5vNjRQCisuUEhPTlk6IGFsbCw2NFAgLmRsbHMsNjRQIC5leGVjdXRhYmxlcyw2NFAgdGVzdCw2NFAKK2FsbCw2NFA6IC5leGVjdXRhYmxlcyw2NFAKKy5leGVjdXRhYmxlcyw2NFA6IC5saWJyYXJpZXMsNjRQCisuZXhlY3V0YWJsZXMsNjRQOiAuZGxscyw2NFAKKy5kbGxzLDY0UDogLmxpYnJhcmllcyw2NFAKKy5saWJyYXJpZXMsNjRQOiAuaW50ZXJmYWNlcworCUAkKFJNKSAkQAorCUAkKFRPVUNIKSAiJEAiCisKKy5oZWxwOjoKKwlAJChFQ0hPKSB4ZGMgdGVzdCw2NFAKKwlAJChFQ0hPKSB4ZGMgLmV4ZWN1dGFibGVzLDY0UAorCUAkKEVDSE8pIHhkYyAubGlicmFyaWVzLDY0UAorCUAkKEVDSE8pIHhkYyAuZGxscyw2NFAKKworCithbGw6IC5leGVjdXRhYmxlcyAKKy5leGVjdXRhYmxlczogLmxpYnJhcmllcyAuZGxscworLmxpYnJhcmllczogLmludGVyZmFjZXMKKworUEtHQ0ZHUyA6PSAkKHdpbGRjYXJkIHBhY2thZ2UueHMpIHBhY2thZ2UvYnVpbGQuY2ZnCisuaW50ZXJmYWNlczogcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMgcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBwYWNrYWdlLnhkYyAkKFBLR0NGR1MpCisKKy1pbmNsdWRlIHBhY2thZ2UvcGFja2FnZS54ZGMuZGVwCitwYWNrYWdlLyUueGRjLmluYyBwYWNrYWdlLyVfY2Znc2l0ZS5jIHBhY2thZ2UvJS5kZWZzLmg6ICUueGRjICQoUEtHQ0ZHUykKKwlAJChNU0cpIGdlbmVyYXRpbmcgaW50ZXJmYWNlcyBmb3IgcGFja2FnZSBjZmdzaXRlIiAoYmVjYXVzZSAkQCBpcyBvbGRlciB0aGFuICQoZmlyc3R3b3JkICQ/KSkiIC4uLgorCSQoWFNSVU4pIC1mIHhkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2J1aWxkLnhzICQoTUtfSURMT1BUUykgLW0gcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAgLWkgcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMgcGFja2FnZS54ZGMKKworLmV4ZWN1dGFibGVzLDY0UCAuZXhlY3V0YWJsZXM6IHByb2cueDY0UAorCistaW5jbHVkZSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvcHJvZ194NjRQLmRlcAorZW5kaWYKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQIDogfCBwYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsCitwcm9nLng2NFA6CisJJChSTSkgJEAKKwlAJChNU0cpIGxuazY0UCAkQCAuLi4KKwkkKFJNKSAkKFhEQ0NGR0RJUikvJEAubWFwCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2xuazZ4IC13IC1xIC11IF9jX2ludDAwICAtcSAtbyAkQCBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UCAgcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbCAgLWMgLW0gJChYRENDRkdESVIpLyRALm1hcCAtbCAkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9saWIvcnRzNjRwbHVzLmxpYgorCQorcHJvZy54NjRQOkNfRElSPQorcHJvZy54NjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3Byb2cueDY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKKworaWZlcSAoLCQod2lsZGNhcmQgLmxpYnJhcmllcyw2NFApKQorcHJvZy54NjRQIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jOiAubGlicmFyaWVzLDY0UAorZW5kaWYKKworcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgcGFja2FnZS9jZmcvcHJvZ194NjRQLmggcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbDogb3ZlcnJpZGUgX1BST0dfTkFNRSA6PSBwcm9nLng2NFAKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jOiBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnCitwcm9nLnRlc3QgdGVzdCw2NFAgdGVzdDogcHJvZy54NjRQLnRlc3QKKworcHJvZy54NjRQLnRlc3Q6OiBwcm9nLng2NFAKK2lmZXEgKCwkKF9URVNUTEVWRUwpKQorCUAkKE1BS0UpIC1SIC1yIC0tbm8tcHJpbnQtZGlyZWN0b3J5IC1mICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2JsZC94ZGMubWFrIF9URVNUTEVWRUw9MSBwcm9nLng2NFAudGVzdAorZWxzZQorCUAkKE1TRykgcnVubmluZyAkPCAgLi4uCisJJChjYWxsIEVYRUMucHJvZy54NjRQLCApIAorZW5kaWYKKworCitjbGVhbjo6IGNsZWFuLDY0UAorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLmMKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkYy5pbmMKKworY2xlYW4sNjRQOjoKKwktJChSTSkgcHJvZy54NjRQCisJLSQoUk0pIC50bXAscHJvZy54NjRQLCoKKworY2xlYW46OiAKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLnBqdAorJSxjb3B5OgorCUAkKGlmICQ8LCwkKE1TRykgZG9uXCd0IGtub3cgaG93IHRvIGJ1aWxkICQqOyBleGl0IDEpCisJQCQoTVNHKSBjcCAkPCAkQAorCSQoUk0pICRACisJJChDUCkgJDwgJEAKK3Byb2dfeDY0UC5zNjRQLGNvcHkgOiBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuczY0UAorcHJvZ194NjRQLm82NFAsY29weSA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQCisKKyQoWERDQ0ZHRElSKSUuYyAkKFhEQ0NGR0RJUiklLmggJChYRENDRkdESVIpJS54ZGw6ICQoWERDQ0ZHRElSKSUuY2ZnIC5pbnRlcmZhY2VzICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzCisJQCQoTVNHKSAiY29uZmlndXJpbmcgJChfUFJPR19OQU1FKSBmcm9tICQ8IC4uLiIKKwkkKENPTkZJRykgJChfUFJPR19YU09QVFMpIHhkYy5jZmcgJChfUFJPR19OQU1FKSAkKFhEQ0NGR0RJUikkKi5jZmcgJChYRENDRkdESVIpJCoKKworLlBIT05ZOiByZWxlYXNlLGNmZ3NpdGUKK2NmZ3NpdGUudGFyOiBwYWNrYWdlL2J1aWxkLmNmZworY2Znc2l0ZS50YXI6IHBhY2thZ2UvcGFja2FnZS5leHQueG1sCitjZmdzaXRlLnRhcjogcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKK2NmZ3NpdGUudGFyOiBwYWNrYWdlL3BhY2thZ2UuYmxkLnhtbAorY2Znc2l0ZS50YXI6IHBhY2thZ2UvcGFja2FnZS5yZWwuZG90CitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9yZWwvY2Znc2l0ZS50YXIuZGVwCitlbmRpZgorcGFja2FnZS9yZWwvY2Znc2l0ZS9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS5yZWwueG1sOgorCitjZmdzaXRlLnRhcjogcGFja2FnZS9yZWwvY2Znc2l0ZS54ZGMuaW5jIHBhY2thZ2UvcmVsL2NmZ3NpdGUvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2UucmVsLnhtbAorCUAkKE1TRykgbWFraW5nIHJlbGVhc2UgZmlsZSAkQCAiKGJlY2F1c2Ugb2YgJChmaXJzdHdvcmQgJD8pKSIgLi4uCisJLSQoUk0pICRACisJJChjYWxsIE1LUkVMVEFSLHBhY2thZ2UvcmVsL2NmZ3NpdGUueGRjLmluYyxwYWNrYWdlL3JlbC9jZmdzaXRlLnRhci5kZXApCisKKworcmVsZWFzZSByZWxlYXNlLGNmZ3NpdGU6IGFsbCBjZmdzaXRlLnRhcgorY2xlYW46OiAuY2xlYW4KKwktJChSTSkgY2Znc2l0ZS50YXIKKwktJChSTSkgcGFja2FnZS9yZWwvY2Znc2l0ZS54ZGMuaW5jCisJLSQoUk0pIHBhY2thZ2UvcmVsL2NmZ3NpdGUudGFyLmRlcAorCitjbGVhbjo6IC5jbGVhbgorCS0kKFJNKSAubGlicmFyaWVzIC5saWJyYXJpZXMsKgorY2xlYW46OiAKKwktJChSTSkgLmRsbHMgLmRsbHMsKgorIworIyBUaGUgZm9sbG93aW5nIGNsZWFuIHJ1bGUgcmVtb3ZlcyB1c2VyIHNwZWNpZmllZAorIyBnZW5lcmF0ZWQgZmlsZXMgb3IgZGlyZWN0b3JpZXMuCisjCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9leHRlcm5hbCkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2V4dGVybmFsKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvbGliKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvY2ZnKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvY2ZnKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvcmVsKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvcmVsKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvaW50ZXJuYWwpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9pbnRlcm5hbCkKK2VuZGlmCitlbmRpZgorY2xlYW46OgorCS0kKFJNRElSKSBwYWNrYWdlCisKK2luY2x1ZGUgY3VzdG9tLm1haworY2xlYW46OiAKKwktJChSTSkgcGFja2FnZS9jZmdzaXRlLnBqdApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlLnhkYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFiNTIwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS54ZGMKQEAgLTAsMCArMSw3IEBACisvKiEKKyAqIFBhY2thZ2UgZ2VuZXJhdGVkIGJ5IHhkYy50b29scy5jb25maWd1cm8KKyAqCisgKiBAX25vZG9jCisgKi8KK3BhY2thZ2UgY2Znc2l0ZSB7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UueHMgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UueHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdmYTczNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS54cwpAQCAtMCwwICsxLDE3IEBACisvKiBUSElTIElTIEEgR0VORVJBVEVEIEZJTEUgLS0gRE8gTk9UIEVESVQgKi8KKworLyogcmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUgZ2VuZXJhdGVkIGNvbmZpZyBvYmplY3RzICovCitmdW5jdGlvbiBnZXRMaWJzKHByb2cpIHsKKyAgICAvKiBmb3IgcHJvZ3JhbXMsIHB1c2ggdGhlIGdlbmVyYXRlZCBjb25maWcgb2JqZWN0IGZpbGUgaW50byB0aGUKKyAgICAgKiBnZW5lcmF0ZWQgbGlua2VyIGNvbW1hbmQgZmlsZS4KKyAgICAgKi8KKyAgICAvKiByZXBsYWNlIHRoZSBsYXN0IHBlcmlvZCBpbiB0aGUgbmFtZSBieSBhbiB1bmRlcnNjb3JlICovCisgICAgdmFyIG5hbWUgPSAicGFja2FnZS9jZmcvIiArIHByb2cubmFtZS5yZXBsYWNlKC9cLihbXi5dKikkLywiXyQxIik7CisgICAgdmFyIHN1ZmZpeCA9IHByb2cuYnVpbGQudGFyZ2V0LnN1ZmZpeDsKKworICAgIHZhciBsaWJzID0gWworICAgICAgICBuYW1lICsgJy5vJyArIHN1ZmZpeCwKKyAgICBdOworCisgICAgcmV0dXJuIGxpYnMuam9pbignOycpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlLy52ZXJzX2IxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvLnZlcnNfYjE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlLy52ZXJzX2IxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS8udmVyc19jMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlLy52ZXJzX2MxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS8udmVyc19jMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvLnZlcnNfZzE1MCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS8udmVyc19nMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvLnZlcnNfZzE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlLy52ZXJzX3IxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvLnZlcnNfcjE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlLy52ZXJzX3IxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS8ueGRjLXQzMiBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS8ueGRjLXQzMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlLy54ZGMtdDMyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvYnVpbGQuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2J1aWxkLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzYzMmEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2J1aWxkLmNmZwpAQCAtMCwwICsxLDEyIEBACitpZiAocGtnLiR2ZXJzLmxlbmd0aCA+PSAzKSB7CisgICAgcGtnLiR2ZXJzLnB1c2goUGFja2FnZXMueGRjLnNlcnZpY2VzLmdsb2JhbC5WZXJzLmdldERhdGUoeGRjLmNzZCgpICsgJy8uLicpKTsKK30KKworcGtnLmJ1aWxkLmxpYnJhcmllcyA9IFsKK107CisKK3BrZy5idWlsZC5saWJEZXNjID0gWworXTsKK2lmICgnc3VmZml4JyBpbiB4ZGMub21bJ3hkYy5JUGFja2FnZSQkTGliRGVzYyddKSB7Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzZjJlYmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jCkBAIC0wLDAgKzEsNzA1NCBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2RlZmluZSBfX25lc3RlZF9fCisjZGVmaW5lIF9fY29uZmlnX18KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworLyoKKyAqID09PT09PT09IEdFTkVSQVRFRCBTRUNUSU9OUyA9PT09PT09PQorICogICAgIAorICogICAgIE1PRFVMRSBJTkNMVURFUworICogICAgIAorICogICAgIDxtb2R1bGUtbmFtZT4gSU5URVJOQUxTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTkhFUklUUworICogICAgIDxtb2R1bGUtbmFtZT4gVlRBQkxFCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQQVRDSCBUQUJMRQorICogICAgIDxtb2R1bGUtbmFtZT4gREVDTEFSQVRJT05TCisgKiAgICAgPG1vZHVsZS1uYW1lPiBPQkpFQ1QgT0ZGU0VUUworICogICAgIDxtb2R1bGUtbmFtZT4gVEVNUExBVEVTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTklUSUFMSVpFUlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IEZVTkNUSU9OIFNUVUJTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQUk9YWSBCT0RZCisgKiAgICAgPG1vZHVsZS1uYW1lPiBPQkpFQ1QgREVTQ1JJUFRPUgorICogICAgIDxtb2R1bGUtbmFtZT4gU1lTVEVNIEZVTkNUSU9OUworICogICAgIDxtb2R1bGUtbmFtZT4gUFJBR01BUworICogICAgIAorICogICAgIElOSVRJQUxJWkFUSU9OIEVOVFJZIFBPSU5UCisgKiAgICAgUFJPR1JBTSBHTE9CQUxTCisgKiAgICAgQ0xJTksgRElSRUNUSVZFUworICovCisKKworLyoKKyAqID09PT09PT09IE1PRFVMRSBJTkNMVURFUyA9PT09PT09PQorICovCisKKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Bc3NlcnQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Db3JlLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRGVmYXVsdHMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9EaWFncy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvR2F0ZS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0dhdGVOdWxsLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvSGVhcFN0ZC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0xvZy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL01haW4uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9NZW1vcnkuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TdGFydHVwLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzTWluLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzdGVtLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvVGV4dC5oPgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX18geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX18geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WOworCisvKiBPYmplY3RfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18geworICAgIGNvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX0Z4bnNfXyogX19meG5zOworfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIE9iamVjdF9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHsKKyAgICBjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX0Z4bnNfXyogX19meG5zOworICAgIHhkY19ydW50aW1lX01lbW9yeV9TaXplIHJlbWFpblNpemU7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgc3RhcnRTaXplOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX18geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19yb290X19WOworCisvKiA8LS0geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0ICovCisKKy8qIE9iamVjdCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworLyogPC0tIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0ICovCisKKy8qIE9iamVjdCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIDwtLSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTkhFUklUUyA9PT09PT09PQorICovCisKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQyA9IHswfTsKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTkhFUklUUyA9PT09PT09PQorICovCisKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MgPSB7KHZvaWQqKSZ4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBJTkhFUklUUyA9PT09PT09PQorICovCisKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MgPSB7KHZvaWQqKSZ4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfRnhuc19fIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FLAorICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FLAorICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FLAorICAgIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TLAorICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TLAorICAgICAgICAweDgwMDgsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9GeG5zX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZ4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FLAorICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSwKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UsCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSwKKyAgICB7CisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUywKKyAgICAgICAgMHg4MDBjLCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfU3lzTWluX0Z4bnNfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmeGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UsCisgICAgeworICAgICAgICBOVUxMLCAvKiBfX2NyZWF0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2RlbGV0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2xhYmVsICovCisgICAgICAgIDB4ODAwZiwgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1VJbnQxNiBjb3VudDsKK30geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX3RhYmxlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVlsxXTsKKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19ydW50aW1lX01lbW9yeV9TaXplIHJlbWFpblJUU1NpemU7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19TaXplVCBtYXhEZWZhdWx0VHlwZUFsaWduOworfSB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfSW50KiBzdGF0ZVRhYjsKKyAgICB4ZGNfQm9vbCBleGVjRmxhZzsKKyAgICB4ZGNfQm9vbCBydHNEb25lRmxhZzsKK30geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UgKi8KK2V4dGVybiB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSh4ZGNfSW50KTsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FKHhkY19JbnQpOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FbMl07CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVsyXTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geworICAgIF9fVEFfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fb3V0YnVmIG91dGJ1ZjsKKyAgICB4ZGNfVUludCBvdXRpZHg7CisgICAgeGRjX0Jvb2wgd3JhcHBlZDsKK30geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQVsxMDI0XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSAqLworZXh0ZXJuIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0koeGRjX0NoYXIqLHhkY19VSW50KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX18geworICAgIF9fVEFfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fYXRleGl0SGFuZGxlcnMgYXRleGl0SGFuZGxlcnM7CisgICAgeGRjX0ludCBudW1BdGV4aXRIYW5kbGVyczsKKyAgICB4ZGNfSW50IGV4aXRTdGF0dXM7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXzsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0FbOF07CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kgKi8KK2V4dGVybiB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0koeGRjX0NoYXIqKix4ZGNfQ2hhcioqLHhkY19WYUxpc3QseGRjX3J1bnRpbWVfU3lzdGVtX1BhcnNlRGF0YSopOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19QdHIgY2hhckJhc2U7CisgICAgeGRjX1B0ciBub2RlQmFzZTsKK30geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiIHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVs2NjFdOworCisvKiAtLT4geGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FbMTddOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMuY2ZnLlByb2dyYW0gVEVNUExBVEUgPT09PT09PT0KKyAqLworCisvKgorICogID09PT09PT09IF9fQVNNX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhpcyBwcm9ncmFtJ3MgcGFja2FnZS1wYXRoIHJlbGF0aXZlIGFzc2VtYmx5IGRpcmVjdG9yeQorICovCitfX0ZBUl9fIGNoYXIgKl9fQVNNX18gPSAiQCgjKV9fQVNNX18gPSBEOi93b3JrL3R1dG9yaWFsL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAiOworCisvKgorICogID09PT09PT09IF9fSVNBX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIElTQSBvZiB0aGlzIGV4ZWN1dGFibGUuICBUaGlzIHN5bWJvbCBpcyB1c2VkIGJ5IHBsYXRmb3JtCisgKiAgc3BlY2lmaWMgImV4ZWMiIGNvbW1hbmRzIHRoYXQgc3VwcG9ydCBtb3JlIHRoYW4gb25lIElTQTsgZS5nLiwgZ2RiCisgKi8KK19fRkFSX18gY2hhciAqX19JU0FfXyA9ICJAKCMpX19JU0FfXyA9IDY0UCI7CisKKy8qCisgKiAgPT09PT09PT0gX19QTEFUX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHBsYXRmb3JtIHRoYXQgY2FuIHJ1biB0aGlzIGV4ZWN1dGFibGUuICBUaGlzCisgKiAgc3ltYm9sIGlzIHVzZWQgYnkgcGxhdGZvcm0gaW5kZXBlbmRlbnQgImV4ZWMiIGNvbW1hbmRzCisgKi8KK19fRkFSX18gY2hhciAqX19QTEFUX18gPSAiQCgjKV9fUExBVF9fID0gdGkucGxhdGZvcm1zLnNpbTY0UHh4IjsKKworLyoKKyAqICA9PT09PT09PSBfX1RBUkdfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgdGFyZ2V0IHVzZWQgdG8gYnVpbGQgdGhpcyBleGVjdXRhYmxlLgorICovCitfX0ZBUl9fIGNoYXIgKl9fVEFSR19fID0gIkAoIylfX1RBUkdfXyA9IHRpLnRhcmdldHMuQzY0UCI7CisKKy8qCisgKiAgPT09PT09PT0gX19UUkRSX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIGNsYXNzIHRoYXQgY2FuIHJlYWQvcGFyc2UgdGhpcyBleGVjdXRhYmxlLgorICovCitfX0ZBUl9fIGNoYXIgKl9fVFJEUl9fID0gIkAoIylfX1RSRFJfXyA9IHRpLnRhcmdldHMub21mLmNvZi5Db2ZmIjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMF0gPCAwOworfQoreGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX0Yodm9pZCkgeworICAgIHJldHVybiAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiID09IDAgfHwgKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYlsxXSA8IDA7Cit9CisKKworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JKHZvaWQpCit7CisgICAgeGRjX0ludCBzdGF0ZVszXTsKKyAgICB4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyhzdGF0ZSwgMik7Cit9CisKKyNpZmRlZiBfX3RpX18KKyNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kpOworI2VuZGlmCisKKy8qCisgKiAgPT09PT09PT0geGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSSA9PT09PT09PQorICogIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGJvb3RzdHJhcCBpbml0aWFsaXphdGlvbiBjb2RlIGFzIGVhcmx5IGFzCisgKiAgcG9zc2libGUgaW4gdGhlIHN0YXJ0dXAgcHJvY2Vzcy4gIFRoaXMgZnVuY3Rpb24gc2ltcGx5IGNhbGxzIGFueQorICogIGNvbmZpZ3VyZWQgbnVsbC4KKyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSSh2b2lkKQoreworfQorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1R5cGVzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvVGV4dC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Fzc2VydC5oPgorCisvKgorICogID09PT09PT09IFN5c3RlbV9wcmludGZFeHRlbmRfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyBvcHRpb25hbCBleHRlbmRlZCBmb3JtYXRzIG9mIHByaW50Zi4KKyAqLworSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0koQ2hhciAqKnBidWYsIENoYXIgKipwZm10LCAKKyAgICBWYUxpc3QgdmEsIHhkY19ydW50aW1lX1N5c3RlbV9QYXJzZURhdGEgKnBhcnNlKQoreworICAgIENoYXIgICAgKmZtdCA9ICpwZm10OworICAgIEludCAgICAgcmVzOworICAgIENoYXIgICAgYzsKKyAgICBCb29sICAgIGZvdW5kID0gRkFMU0U7CisgICAgCisgICAgcmVzID0gMDsKKworICAgIGMgPSAqZm10Kys7CisgICAgKnBmbXQgPSAqcGZtdCArIDE7CisKKyAgICAKKyAgICBpZiAoYyA9PSAnJCcpIHsKKyAgICAgICAgYyA9ICpmbXQrKzsKKyAgICAgICAgKnBmbXQgPSAqcGZtdCArIDE7CisgICAgICAgIGlmIChjID09ICdMJykgeworICAgICAgICAgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwgKmxhYiA9IHBhcnNlLT5hRmxhZyA/IAorICAgICAgICAgICAgICAgICh4ZGNfcnVudGltZV9UeXBlc19MYWJlbCAqKWlhcmdUb1B0cih2YV9hcmcodmEsIElBcmcpKSA6CisgICAgICAgICAgICAgICAgKHhkY19ydW50aW1lX1R5cGVzX0xhYmVsICopdmFfYXJnKHZhLCB2b2lkICopOworICAgICAgICAgICAgcmVzICs9IHhkY19ydW50aW1lX1RleHRfcHV0TGFiKGxhYiwgcGJ1ZiwgcGFyc2UtPnByZWNpcyk7CisgICAgICAgICAgICBwYXJzZS0+bGVuID0gMDsKKyAgICAgICAgICAgIGZvdW5kID0gVFJVRTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgaWYgKGZvdW5kID09IEZBTFNFKSB7CisgICAgICAgICAvKiBvdGhlciBjaGFyYWN0ZXIgKGxpa2UgJSkgY29weSB0byBvdXRwdXQgKi8KKyAgICAgICAgICoocGFyc2UtPnB0cikgPSBjOworICAgICAgICAgcGFyc2UtPmxlbiA9IDE7CisgICAgfQorCisgICAgcmV0dXJuIChyZXMpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBURU1QTEFURSA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworZXh0ZXJuIGludCBIT1NUd3JpdGUoaW50LCBjaGFyICosIHVuc2lnbmVkKTsKKyNlbHNlCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisvKgorICogID09PT09PT09IFN5c01pbl9vdXRwdXRfX0kgPT09PT09PT0KKyAqICBIT1NUV3JpdGUgb25seSB3cml0ZXMgYSBtYXggb2YgTiBjaGFycyBhdCBhIHRpbWUuIFRoZSBhbW91bnQgaXQgd3JpdGVzCisgKiAgaXMgcmV0dXJuZWQuIFRoaXMgZnVuY3Rpb24gbG9vcHMgdW50aWwgdGhlIGVudGlyZSBidWZmZXIgaXMgd3JpdHRlbi4KKyAqICBCZWluZyBhIHN0YXRpYyBmdW5jdGlvbiBhbGxvd3MgaXQgdG8gY29uZGl0aW9uYWxseSBjb21waWxlIG91dC4KKyAqLworVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JKENoYXIgKmJ1ZiwgVUludCBzaXplKQoreworI2lmZGVmIF9fdGlfXworICAgIEludCBwcmludENvdW50OworICAgIAorICAgIHdoaWxlIChzaXplICE9IDApIHsKKyAgICAgICAgcHJpbnRDb3VudCA9IEhPU1R3cml0ZSgxLCBidWYsIHNpemUpOworICAgICAgICBpZiAoKHByaW50Q291bnQgPD0gMCkgfHwgKHByaW50Q291bnQgPiBzaXplKSkgeworICAgICAgICAgICAgYnJlYWs7ICAvKiBlbnN1cmUgd2UgbmV2ZXIgZ2V0IHN0dWNrIGluIGFuIGluZmluaXRlIGxvb3AgKi8KKyAgICAgICAgfQorICAgICAgICBzaXplIC09IHByaW50Q291bnQ7CisgICAgICAgIGJ1ZiA9IGJ1ZiArIHByaW50Q291bnQ7CisgICAgfSAgICAKKyNlbHNlCisgICAgZndyaXRlKGJ1ZiwgMSwgc2l6ZSwgc3Rkb3V0KTsKKyNlbmRpZgorfQorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBURU1QTEFURSA9PT09PT09PQorICovCisKKworLyoKKyAqICA9PT09PT09PSB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSA9PT09PT09PQorICogIFRoaXMgZnVuY3Rpb24gaXMgaW5kaXJlY3RseSBjYWxsZWQgd2l0aGluIFRleHQuYyB0aHJvdWdoCisgKiAgdGhlIHZpc2l0Um9wZUZ4biBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBvZiB4ZGMucnVudGltZS5UZXh0LgorICovCitWb2lkIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JKHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUsCisgICAgeGRjX0Z4biB2aXNGeG4sIHhkY19QdHIgdmlzU3RhdGUpCit7CisgICAgeGRjX1N0cmluZyBzdGFja1szXTsKKyAgICB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kocm9wZSwgdmlzRnhuLCB2aXNTdGF0ZSwgc3RhY2spOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX18geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwMjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogRV9hc3NlcnRGYWlsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCkzMDkpIDw8IDE2IHwgMCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwMzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEFfaW5pdGlhbGl6ZWRQYXJhbXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtcyB4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMSkgPDwgMTYgfCAxNik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX18geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDQ7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBzZXRNYXNrRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MgPSAwOworCisvKiBkaWN0QmFzZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2UgeGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSkwKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICh4ZGNfVUludDE2KTB4MCwgIC8qIGNvdW50ICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBFX2dlbmVyaWNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpYyB4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCkzMzEpIDw8IDE2IHwgMCk7CisKKy8qIEVfbWVtb3J5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeSB4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTM0OSkgPDwgMTYgfCAwKTsKKworLyogcG9saWN5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9wb2xpY3kgeGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DID0geGRjX3J1bnRpbWVfRXJyb3JfVU5XSU5EOworCisvKiByYWlzZUhvb2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9vayB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2spKCh4ZGNfRnhuKXhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKSk7CisKKy8qIG1heERlcHRoX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aCB4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQyA9ICh4ZGNfVUludDE2KTB4MTA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DOworCisvKiBPYmplY3RfX1BBUkFNU19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MgPSB7CisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAwLCAvKiBfX3NlbGYgKi8KKyAgICAwLCAvKiBfX2Z4bnMgKi8KKyAgICAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyopJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLl9faXBybXMsIC8qIGluc3RhbmNlICovCisgICAgeworICAgICAgICBzaXplb2YgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAgICAgMCwgIC8qIG5hbWUgKi8KKyAgICB9LCAgLyogaW5zdGFuY2UgKi8KK307CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WID0ge3sKKyAgICB7JnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgIC8qIGxpbmsubmV4dCAqLworICAgICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmt9LCAgLyogbGluay5wcmV2ICovCisgICAgKFVDaGFyKikwLCAgLyogaW5zdEFyckJlZyAqLworICAgIChVQ2hhciopKDArLTEpLCAgLyogaW5zdEFyckVuZCAqLworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18pLCAgLyogaW5zdFNpemUgKi8KKyAgICAwLCAgLyogY3VyICovCisgICAgMCwgIC8qIGRpYWdzTWFzayAqLworfX07CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA4OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQyA9IHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyk7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQzsKKworLyogT2JqZWN0X19QQVJBTVNfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyA9IHsKKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgMCwgLyogX19zZWxmICovCisgICAgMCwgLyogX19meG5zICovCisgICAgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLl9faXBybXMsIC8qIGluc3RhbmNlICovCisgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MCkpLCAgLyogc2l6ZSAqLworICAgIHsKKyAgICAgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgICAgIDAsICAvKiBuYW1lICovCisgICAgfSwgIC8qIGluc3RhbmNlICovCit9OworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YgPSB7eworICAgIHsmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssICAvKiBsaW5rLm5leHQgKi8KKyAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmt9LCAgLyogbGluay5wcmV2ICovCisgICAgKFVDaGFyKil4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1YsICAvKiBpbnN0QXJyQmVnICovCisgICAgKFVDaGFyKikoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WKzApLCAgLyogaW5zdEFyckVuZCAqLworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyksICAvKiBpbnN0U2l6ZSAqLworICAgIDAsICAvKiBjdXIgKi8KKyAgICAwLCAgLyogZGlhZ3NNYXNrICovCit9fTsKKworLyogT2JqZWN0X190YWJsZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1ZbMV0gPSB7CisgICAgey8qIGluc3RhbmNlIzAgKi8KKyAgICAgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLAorICAgICAgICAoKHhkY19VQXJnKSgodm9pZCopMHgxMDAwKSksICAvKiByZW1haW5TaXplICovCisgICAgICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDEwMDApKSwgIC8qIHN0YXJ0U2l6ZSAqLworICAgIH0sCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoKHhkY19VQXJnKSgodm9pZCopMHgwKSksICAvKiByZW1haW5SVFNTaXplICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBjOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DID0gMTsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MgPSBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyk7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MgPSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1Y7CisKKy8qIEVfbm9SVFNNZW1vcnlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeSB4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCk0MjEpIDw8IDE2IHwgMCk7CisKKy8qIEFfemVyb1NpemVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpOTUpIDw8IDE2IHwgMTYpOworCisvKiBBX2ludmFsaWRUb3RhbEZyZWVTaXplX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTE0MCkgPDwgMTYgfCAxNik7CisKKy8qIEFfaW52YWxpZEFsaWdubWVudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMjAxKSA8PCAxNiB8IDE2KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIExfY29uc3RydWN0X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTQ2OCkgPDwgMTYgfCA0KTsKKworLyogTF9jcmVhdGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NyZWF0ZSB4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNDkyKSA8PCAxNiB8IDQpOworCisvKiBMX2Rlc3RydWN0X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk1MTMpIDw8IDE2IHwgNCk7CisKKy8qIExfZGVsZXRlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZWxldGUgeGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTUzMikgPDwgMTYgfCA0KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX01haW5fTW9kdWxlX18geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBhOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICh4ZGNfU2l6ZVQpMHg4LCAgLyogbWF4RGVmYXVsdFR5cGVBbGlnbiAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBiOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBkZWZhdWx0SGVhcEluc3RhbmNlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZSB4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyA9ICh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVlswXTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICgoeGRjX0ludCopMCksICAvKiBzdGF0ZVRhYiAqLworICAgIDAsICAvKiBleGVjRmxhZyAqLworICAgIDAsICAvKiBydHNEb25lRmxhZyAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BWzJdID0geworICAgICgoeGRjX0ludCgqKSh4ZGNfSW50KSkoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKSksICAvKiBbMF0gKi8KKyAgICAoKHhkY19JbnQoKikoeGRjX0ludCkpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSkpLCAgLyogWzFdICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FbMl0gPSB7CisgICAgMSwgIC8qIFswXSAqLworICAgIDEsICAvKiBbMV0gKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGQ7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBtYXhQYXNzZXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzIHhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DID0gKHhkY19JbnQpMHgyMDsKKworLyogZmlyc3RGeG5zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQyA9IHswLCAwfTsKKworLyogbGFzdEZ4bnNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyA9IHswLCAwfTsKKworLyogc3RhcnRNb2RzRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4biB4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc19fSSkpOworCisvKiBleGVjSW1wbF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCkoKHhkY19GeG4peGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JKSk7CisKKy8qIHNmeG5UYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIpeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BKTsKKworLyogc2Z4blJ0c19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyl4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfX291dGJ1ZiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BWzEwMjRdOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQSwgIC8qIG91dGJ1ZiAqLworICAgICh4ZGNfVUludCkweDAsICAvKiBvdXRpZHggKi8KKyAgICAwLCAgLyogd3JhcHBlZCAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBmOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBidWZTaXplX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZSB4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyA9ICh4ZGNfU2l6ZVQpMHg0MDA7CisKKy8qIGZsdXNoQXRFeGl0X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DID0gMTsKKworLyogb3V0cHV0RnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuKTApOworCisvKiBvdXRwdXRGdW5jX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYyB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JKSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0FbOF0gPSB7CisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFswXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbMV0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzJdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFszXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbNF0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzVdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs2XSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbN10gKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0EsICAvKiBhdGV4aXRIYW5kbGVycyAqLworICAgICh4ZGNfSW50KTB4MCwgIC8qIG51bUF0ZXhpdEhhbmRsZXJzICovCisgICAgKHhkY19JbnQpMHhjYWZlLCAgLyogZXhpdFN0YXR1cyAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBlOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBBX2Nhbm5vdEZpdEludG9BcmdfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmcgeGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkyNjEpIDw8IDE2IHwgMTYpOworCisvKiBtYXhBdGV4aXRIYW5kbGVyc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQyA9ICh4ZGNfSW50KTB4ODsKKworLyogZXh0ZW5kRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuIHhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1RleHRfTW9kdWxlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoKHhkY19QdHIpKCh2b2lkKikmeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzBdKSksICAvKiBjaGFyQmFzZSAqLworICAgICgoeGRjX1B0cikoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FbMF0pKSwgIC8qIG5vZGVCYXNlICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FbNjYxXSA9IHsKKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzBdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsyXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs4XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTBdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTJdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMTNdICovCisgICAgKHhkY19DaGFyKTB4NTAsICAvKiBbMTRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTVdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTddICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMThdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTldICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMjBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMjJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjNdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjRdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMzBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzFdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMzJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzNdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMzRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzVdICovCisgICAgKHhkY19DaGFyKTB4NTAsICAvKiBbMzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzddICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzldICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNDBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDJdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDVdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDZdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFs1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFs3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs3N10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFs3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFs4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs4N10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFs4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs5M10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzk0XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzk1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzk2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzk3XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzk4XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzk5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzEwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsxMDFdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMTAyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzEwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxMDRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTA1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzEwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMDddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTA4XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsxMTBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTExXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzExMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxMTNdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMTE0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzExNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMTZdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMTE3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzExOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFsxMTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTIwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMjJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTIzXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzEyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMjVdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTI2XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzEyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMjhdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTI5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzEzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxMzFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTMyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFsxMzRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTM1XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzEzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFsxMzddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTM4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMTM5XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzE0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNDFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTQyXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzE0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFsxNDRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTQ1XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzE0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNDddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTQ4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxNTBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTUxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxNTNdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMTU0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNTZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTU3XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzE1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNTldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTYwXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzE2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NiwgIC8qIFsxNjJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTYzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNjVdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMTY2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxNjhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTY5XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxNzFdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTcyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsxNzRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTc1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNzddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTc4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxODBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTgxXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFsxODNdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTg0XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxODZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTg3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxODldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTkwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxOTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTkzXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzE5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxOTVdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTk2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxOThdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTk5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMjAwXSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzIwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMDJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjAzXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzIwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFsyMDVdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjA2XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzIwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsyMDhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjA5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzIxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMTFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjEyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzIxM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMTRdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbMjE1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyMTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjE4XSAqLworICAgICh4ZGNfQ2hhcikweDcxLCAgLyogWzIxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFsyMjBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjIxXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzIyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyMjNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjI0XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzIyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMjZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjI3XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzIyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyMjldICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMjMwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzIzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFsyMzJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjMzXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzIzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyMzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjM2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzIzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyMzhdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjM5XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzI0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNDFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjQyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNDRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjQ1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzI0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyNDddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjQ4XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzI0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNTBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjUxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNTNdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjU0XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzI1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyNTZdICovCisgICAgKHhkY19DaGFyKTB4NzcsICAvKiBbMjU3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyNTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFsyNjBdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMjYxXSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzI2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsyNjNdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjY0XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNjZdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjY3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NiwgIC8qIFsyNjldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjcwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OSwgIC8qIFsyNzJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjczXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyNzVdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMjc2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzI3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsyNzhdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMjc5XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyODFdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjgyXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzI4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyODRdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjg1XSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzI4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFsyODddICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMjg4XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzI4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyOTBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjkxXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFsyOTNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjk0XSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzI5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyOTZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjk3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsyOTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzAwXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzMwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszMDJdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMzAzXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzMwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMDVdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMzA2XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzMwN10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzMwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszMDldICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzEwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMTJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzEzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzMxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMTVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzE2XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzMxN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszMThdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzE5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzMyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMjFdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMzIyXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzMyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzI1XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzMyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMjddICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzI4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzMzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFszMzFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzMyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzMzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMzRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzM1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFszMzddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzM4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNDBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQxXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNDNdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMzQ0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszNDZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzQ3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzQ4XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFszNTBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMzUxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNTNdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzU0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFszNTZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzU3XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzM1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNTldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzYwXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzM2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFszNjJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzYzXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzM2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszNjVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzY2XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzM2N10gKi8KKyAgICAoeGRjX0NoYXIpMHgzZCwgIC8qIFszNjhdICovCisgICAgKHhkY19DaGFyKTB4MzAsICAvKiBbMzY5XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzM3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszNzFdICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbMzcyXSAqLworICAgICh4ZGNfQ2hhcikweDJjLCAgLyogWzM3M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNzRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzc1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFszNzddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzc4XSAqLworICAgICh4ZGNfQ2hhcikweDNkLCAgLyogWzM3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszODBdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMzgxXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzgyXSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzM4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszODRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzg1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFszODddICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbMzg4XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOTBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzkxXSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzM5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszOTNdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMzk0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFszOTZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzk3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszOTldICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDAwXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzQwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0MDJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDAzXSAqLworICAgICh4ZGNfQ2hhcikweDc3LCAgLyogWzQwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0MDVdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDA2XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0MDhdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDA5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzQxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs0MTFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDEyXSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzQxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MTRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDE1XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs0MTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNDE4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1NCwgIC8qIFs0MjFdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDIyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQyM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MjRdICovCisgICAgKHhkY19DaGFyKTB4NTIsICAvKiBbNDI1XSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzQyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs0MjddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDI4XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MzBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDMxXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MzNdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNDM0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MzZdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDM3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MzldICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNDQwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0NDJdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDQzXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzQ0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NDVdICovCisgICAgKHhkY19DaGFyKTB4NDUsICAvKiBbNDQ2XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzQ0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0NDhdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNDQ5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQ1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0NTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDUyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MCwgIC8qIFs0NTRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDU1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQ1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs0NTddICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDU4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs0NjBdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNDYxXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQ2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0NjNdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDY0XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQ2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs0NjZdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0NjddICovCisgICAgKHhkY19DaGFyKTB4M2MsICAvKiBbNDY4XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0NzBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDcxXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0NzNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDc0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQ3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0NzZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDc3XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQ3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0NzldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDgwXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzQ4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0ODJdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNDgzXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQ4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs0ODVdICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNDg2XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzQ4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0ODhdICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNDg5XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzQ5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQ5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYywgIC8qIFs0OTJdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDkzXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0OTVdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDk2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0OThdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDk5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzUwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MDFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNTAyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUwM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1MDRdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTA1XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzUwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs1MDddICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTA4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzUwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs1MTBdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNTExXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTEyXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUxM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MTRdICovCisgICAgKHhkY19DaGFyKTB4M2UsICAvKiBbNTE1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs1MTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTE4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzUxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1MjBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTIxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzUyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs1MjNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTI0XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzUyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MjZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNTI3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzUyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1MjldICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNTMwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTMxXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MzNdICovCisgICAgKHhkY19DaGFyKTB4M2UsICAvKiBbNTM0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs1MzZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTM3XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzUzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MzldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTQwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs1NDJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTQzXSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzU0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1NDVdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTQ2XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzU0N10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFs1NDldICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTUwXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzU1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs1NTJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NTNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTU0XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzU1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs1NTZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTU3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzU1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs1NTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTYwXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzU2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFs1NjNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTY0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NjZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTY3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MywgIC8qIFs1NzBdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNTcxXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NzNdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NzRdICovCisgICAgKHhkY19DaGFyKTB4NDQsICAvKiBbNTc1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFs1NzddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTc4XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzU3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs1ODBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTgxXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg0NCwgIC8qIFs1ODRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNTg1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzU4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs1ODddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTg4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTg5XSAqLworICAgICh4ZGNfQ2hhcikweDQ1LCAgLyogWzU5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OTFdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTkyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzU5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OTRdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1OTVdICovCisgICAgKHhkY19DaGFyKTB4NDcsICAvKiBbNTk2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzU5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1OThdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTk5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjAwXSAqLworICAgICh4ZGNfQ2hhcikweDQ3LCAgLyogWzYwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MDJdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjAzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZSwgIC8qIFs2MDVdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNjA2XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzYwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2MDhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MDldICovCisgICAgKHhkY19DaGFyKTB4NGMsICAvKiBbNjEwXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzYxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs2MTJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MTNdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNjE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs2MTZdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjE3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjE4XSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzYxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MjBdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNjIxXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzYyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs2MjNdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNjI0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjI1XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzYyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MjddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjI4XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzYyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2MzBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjMxXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzYzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2MzRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjM1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs2MzddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjM4XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzYzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs2NDBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NDFdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjQyXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzY0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs2NDRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjQ1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs2NDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NDhdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjQ5XSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzY1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs2NTFdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNjUyXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzY1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2NTRdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NTVdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNjU2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFs2NThdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjU5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjYwXSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X25vZGVUYWIgeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BWzE3XSA9IHsKKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4MCwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgwLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzBdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDIyNSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMmEsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMzMsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyM2EsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbM10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyM2YsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNDgsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNGUsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNTQsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbN10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNTksICAvKiByaWdodCAqLworICAgIH0sICAvKiBbOF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNjIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbOV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNjYsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTBdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjZiLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzExXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI3MiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxMl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyN2EsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTNdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjgyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE0XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI4OSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxNV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyOTAsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTZdICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDEwOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogbmFtZVVua25vd25fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVVua25vd24geGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQyA9ICJ7dW5rbm93bi1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIG5hbWVFbXB0eV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHkgeGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MgPSAie2VtcHR5LWluc3RhbmNlLW5hbWV9IjsKKworLyogbmFtZVN0YXRpY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljIHhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyA9ICJ7c3RhdGljLWluc3RhbmNlLW5hbWV9IjsKKworLyogaXNMb2FkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfaXNMb2FkZWQgeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQyA9IDE7CisKKy8qIGNoYXJUYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIpeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BKTsKKworLyogbm9kZVRhYl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYil4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EpOworCisvKiBjaGFyQ250X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJDbnQgeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DID0gKHhkY19JbnQxNikweDI5NTsKKworLyogbm9kZUNudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250IHhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQyA9ICh4ZGNfSW50MTYpMHgxMTsKKworLyogdmlzaXRSb3BlRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4biB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSkpOworCisvKiB2aXNpdFJvcGVGeG4yX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjIgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kpKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBzZXRNYXNrX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FKCB4ZGNfU3RyaW5nIGNvbnRyb2wgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19GKGNvbnRyb2wpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGNoZWNrX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GKGViKTsKK30KKworLyogZ2V0RGF0YV9fRSAqLworeGRjX3J1bnRpbWVfRXJyb3JfRGF0YSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0YoZWIpOworfQorCisvKiBnZXRDb2RlX19FICovCit4ZGNfVUludDE2IHhkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19GKGViKTsKK30KKworLyogZ2V0SWRfX0UgKi8KK3hkY19ydW50aW1lX0Vycm9yX0lkIHhkY19ydW50aW1lX0Vycm9yX2dldElkX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0YoZWIpOworfQorCisvKiBnZXRNc2dfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19GKGViKTsKK30KKworLyogZ2V0U2l0ZV9fRSAqLworeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0YoZWIpOworfQorCisvKiBpbml0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19GKGViKTsKK30KKworLyogcHJpbnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRihlYik7Cit9CisKKy8qIHJhaXNlWF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIsIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1vZCwgeGRjX1N0cmluZyBmaWxlLCB4ZGNfSW50IGxpbmUsIHhkY19ydW50aW1lX0Vycm9yX0lkIGlkLCB4ZGNfSUFyZyBhcmcxLCB4ZGNfSUFyZyBhcmcyICkgCit7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GKGViLCBtb2QsIGZpbGUsIGxpbmUsIGlkLCBhcmcxLCBhcmcyKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGVudGVyU3lzdGVtX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YoKTsKK30KKworLyogbGVhdmVTeXN0ZW1fX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0UoIHhkY19JQXJnIGtleSApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0Yoa2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRihxdWFsKTsKK30KKworLyogZW50ZXJfX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUgX19pbnN0ICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GKCh2b2lkKilfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSBfX2luc3QsIHhkY19JQXJnIGtleSApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19GKCh2b2lkKilfX2luc3QsIGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBmcmVlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0YoKHZvaWQqKV9faW5zdCwgYmxvY2ssIHNpemUpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0LCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRigodm9pZCopX19pbnN0LCBzdGF0cyk7Cit9CisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YoKHZvaWQqKV9faW5zdCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogaXNCbG9ja2luZ19fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GKCh2b2lkKilfX2luc3QpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBkb1ByaW50X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRSggeGRjX3J1bnRpbWVfTG9nX0V2ZW50UmVjKiBldlJlYyApIAoreworICAgIHhkY19ydW50aW1lX0xvZ19kb1ByaW50X19GKGV2UmVjKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBjYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GKGhlYXAsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9mcmVlX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRihoZWFwLCBibG9jaywgc2l6ZSk7Cit9CisKKy8qIGdldFN0YXRzX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgCit7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19GKGhlYXAsIHN0YXRzKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19JbnQgcXVhbCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0YoaGVhcCwgcXVhbCk7Cit9CisKKy8qIGdldE1heERlZmF1bHRUeXBlQWxpZ25fX0UgKi8KK3hkY19TaXplVCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRigpOworfQorCisvKiB2YWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19DaGFyIHZhbHVlLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgdmFsdWUsIGViKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGV4ZWNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRigpOworfQorCisvKiBydHNEb25lX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19GKCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GKHN0cik7Cit9CisKKy8qIGV4aXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRihzdGF0KTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRigpOworfQorCisvKiBwdXRjaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRihjaCk7Cit9CisKKy8qIHJlYWR5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GKCk7Cit9CisKKy8qIE1vZHVsZV9zdGFydHVwICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSggeGRjX0ludCBzdGF0ZSApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRihzdGF0ZSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GKHN0cik7Cit9CisKKy8qIGF0ZXhpdF9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX0F0ZXhpdEhhbmRsZXIgaGFuZGxlciApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19GKGhhbmRsZXIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0Yoc3RhdCk7Cit9CisKKy8qIHB1dGNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19GKGNoKTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRigpOworfQorCisvKiBwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRSggeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7Cit9CisKKy8qIHByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIGFwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0UoIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKK30KKworLyogYXByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRihmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogc3ByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworfQorCisvKiBzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiBhc3ByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7Cit9CisKKy8qIGFzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIHZwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19GKGZtdCwgdmEpOworfQorCisvKiBhdnByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRihmbXQsIHZhKTsKK30KKworLyogdnNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GKGJ1ZiwgZm10LCB2YSk7Cit9CisKKy8qIGF2c3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRihidWYsIGZtdCwgdmEpOworfQorCisvKiBNb2R1bGVfc3RhcnR1cCAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UoIHhkY19JbnQgc3RhdGUgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0Yoc3RhdGUpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogY29yZFRleHRfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Db3JkQWRkciBjb3JkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0YoY29yZCk7Cit9CisKKy8qIHJvcGVUZXh0X19FICovCit4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRihyb3BlKTsKK30KKworLyogbWF0Y2hSb3BlX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLCB4ZGNfU3RyaW5nIHBhdCwgeGRjX0ludCogbGVucCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRihyb3BlLCBwYXQsIGxlbnApOworfQorCisvKiBwdXRMYWJfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0UoIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0YobGFiLCBidWZwLCBsZW4pOworfQorCisvKiBwdXRNb2RfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0UoIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1pZCwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRihtaWQsIGJ1ZnAsIGxlbik7Cit9CisKKy8qIHB1dFNpdGVfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19FKCB4ZGNfcnVudGltZV9UeXBlc19TaXRlKiBzaXRlLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRihzaXRlLCBidWZwLCBsZW4pOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5HYXRlTnVsbCAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1Mob2EsIG9zeiwgYWEsICh4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0cilwYSwgc2l6ZW9mKHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfUGFyYW1zKSwgZWIpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19kZWxldGVfX1MoIFB0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKGluc3RwKTsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit2b2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKGRzdCwgc3JjLCBwc3osIGlzeik7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlX19sYWJlbF9fUyggUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1Mob2JqLCBsYWIpOworfQorCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeShxdWFsKTsKK30KKworLyogZW50ZXJfX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9lbnRlcl9fRSggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCk7Cit9CisKKy8qIGxlYXZlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UoIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfSUFyZyBrZXkgKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0LCBrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuSGVhcFN0ZCAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TKG9hLCBvc3osIGFhLCAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0cilwYSwgc2l6ZW9mKHhkY19ydW50aW1lX0lIZWFwX1BhcmFtcyksIGViKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfX2RlbGV0ZV9fUyggUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIGNvbnN0IHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtc19faW5pdF9fUyhkc3QsIHNyYywgcHN6LCBpc3opOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGVfX2xhYmVsX19TKCBQdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TKG9iaiwgbGFiKTsKK30KKworLyogYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9hbGxvY19fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9JSGVhcF9hbGxvYygoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogZnJlZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9mcmVlX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkKK3sKKyAgICB4ZGNfcnVudGltZV9JSGVhcF9mcmVlKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0LCBibG9jaywgc2l6ZSk7Cit9CisKKy8qIGlzQmxvY2tpbmdfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0ICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSUhlYXBfaXNCbG9ja2luZygoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCk7Cit9CisKKy8qIGdldFN0YXRzX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKQoreworICAgIHhkY19ydW50aW1lX0lIZWFwX2dldFN0YXRzKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0LCBzdGF0cyk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuR2F0ZU51bGwgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKG9hLCBvc3osIGFhLCAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX1BhcmFtcyksIGViKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19kZWxldGVfX1MoIFB0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKGluc3RwKTsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit2b2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIGNvbnN0IHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoZHN0LCBzcmMsIHBzeiwgaXN6KTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZV9fbGFiZWxfX1MoIFB0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKG9iaiwgbGFiKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeShxdWFsKTsKK30KKworLyogZW50ZXJfX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0ICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXIoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19JQXJnIGtleSApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmUoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QsIGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5TeXNNaW4gKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0KHN0cik7Cit9CisKKy8qIGV4aXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfZXhpdF9fRSggeGRjX0ludCBzdGF0ICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdChzdGF0KTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfZmx1c2hfX0UoIHZvaWQgKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaCgpOworfQorCisvKiBwdXRjaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaChjaCk7Cit9CisKKy8qIHJlYWR5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3JlYWR5X19FKCB2b2lkICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5KCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIE9CSkVDVCBERVNDUklQVE9SID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCit0eXBlZGVmIHN0cnVjdCB7IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXyBzMDsgY2hhciBjOyB9IHhkY19ydW50aW1lX0dhdGVOdWxsX19fUzE7CitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MgPSB7CisgICAgKFB0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DLCAvKiBmeG5UYWIgKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAvKiBtb2RMaW5rICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX19fUzEpIC0gc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXyksIC8qIG9iakFsaWduICovCisgICAgMCwgLyogb2JqSGVhcCAqLworICAgIDAsIC8qIG9iak5hbWUgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fKSwgLyogb2JqU2l6ZSAqLworICAgIChQdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAvKiBwcm1zSW5pdCAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMpLCAvKiBwcm1zU2l6ZSAqLworfTsKKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIE9CSkVDVCBERVNDUklQVE9SID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCit0eXBlZGVmIHN0cnVjdCB7IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fIHMwOyBjaGFyIGM7IH0geGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1MxOworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MgPSB7CisgICAgKFB0cikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MsIC8qIGZ4blRhYiAqLworICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgLyogbW9kTGluayAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX19fUzEpIC0gc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fKSwgLyogb2JqQWxpZ24gKi8KKyAgICAwLCAvKiBvYmpIZWFwICovCisgICAgMCwgLyogb2JqTmFtZSAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyksIC8qIG9ialNpemUgKi8KKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAvKiBwcm1zSW5pdCAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyksIC8qIHBybXNTaXplICovCit9OworCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSAKK3sKKyAgICBsYWItPmhhbmRsZSA9IG9iajsKKyAgICBsYWItPm1vZElkID0gMzI3NzY7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbChsYWIsIDAsIDApOworCisgICAgcmV0dXJuIGxhYjsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgcHJtcywgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnblBhcmFtc19fSShwcm1zLCAoeGRjX1B0cikoc3JjID8gc3JjIDogJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DKSwgcHN6LCBpc3opOworfQorCisvKiBPYmplY3RfX2dldF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYSwgeGRjX0ludCBpICkgCit7CisgICAgaWYgKG9hKSB7CisgICAgICAgIHJldHVybiAoKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKilvYSkgKyBpOworICAgIH0KKworICAgIGlmICh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DID09IDApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18qKXhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MpICsgaTsKK30KKworLyogT2JqZWN0X19maXJzdF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rLm5leHQ7CisKKyAgICBpZiAoaUhkciAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuIGlIZHIgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX25leHRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKilvYmopIC0gMTsKKworICAgIGlmIChpSGRyLT5saW5rLm5leHQgIT0gKHhkY19ydW50aW1lX1R5cGVzX0xpbmsgKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKShpSGRyLT5saW5rLm5leHQpICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMgcHJtczsKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QqIG9iajsKKworICAgIC8qIGNvbW1vbiBpbnN0YW5jZSBpbml0aWFsaXphdGlvbiAqLworICAgIG9iaiA9IHhkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsIG9hLCBvc3osICZwcm1zLCAoeGRjX1B0cilwYSwgcHN6LCBlYik7CisgICAgaWYgKG9iaiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBvYmo7Cit9CisKKy8qIE9iamVjdF9fZGVzdHJ1Y3RfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgb2JqLCBOVUxMLCAtMSwgVFJVRSk7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsICooKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCoqKWluc3RwKSwgTlVMTCwgLTEsIEZBTFNFKTsKKyAgICAqKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUqKWluc3RwKSA9IE5VTEw7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIAoreworICAgIGxhYi0+aGFuZGxlID0gb2JqOworICAgIGxhYi0+bW9kSWQgPSAzMjc4MDsKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsKGxhYiwgMCwgMCk7CisKKyAgICByZXR1cm4gbGFiOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIHBybXMsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kocHJtcywgKHhkY19QdHIpKHNyYyA/IHNyYyA6ICZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DKSwgcHN6LCBpc3opOworfQorCisvKiBPYmplY3RfX2dldF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hLCB4ZGNfSW50IGkgKSAKK3sKKyAgICBpZiAob2EpIHsKKyAgICAgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyopb2EpICsgaTsKKyAgICB9CisKKyAgICBpZiAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DID09IDApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyopeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DKSArIGk7Cit9CisKKy8qIE9iamVjdF9fZmlyc3RfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmsubmV4dDsKKworICAgIGlmIChpSGRyICE9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiBpSGRyICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19uZXh0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKilvYmopIC0gMTsKKworICAgIGlmIChpSGRyLT5saW5rLm5leHQgIT0gKHhkY19ydW50aW1lX1R5cGVzX0xpbmsgKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopKGlIZHItPmxpbmsubmV4dCkgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyBwcm1zOworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0KiBvYmo7CisgICAgaW50IGlTdGF0OworCisgICAgLyogY29tbW9uIGluc3RhbmNlIGluaXRpYWxpemF0aW9uICovCisgICAgb2JqID0geGRjX3J1bnRpbWVfQ29yZV9jcmVhdGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYSwgb3N6LCAmcHJtcywgKHhkY19QdHIpcGEsIHBzeiwgZWIpOworICAgIGlmIChvYmogPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBtb2R1bGUtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gKi8KKyAgICBpU3RhdCA9IHhkY19ydW50aW1lX0hlYXBTdGRfSW5zdGFuY2VfaW5pdF9fRihvYmosICZwcm1zLCBlYik7CisgICAgaWYgKHhkY19ydW50aW1lX0Vycm9yX2NoZWNrKGViKSkgeworICAgICAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsIG9iaiwgTlVMTCwgaVN0YXQsICh4ZGNfQm9vbCkob2EgIT0gTlVMTCkpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gb2JqOworfQorCisvKiBPYmplY3RfX2Rlc3RydWN0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYmosIE5VTEwsIDAsIFRSVUUpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgKigoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QqKilpbnN0cCksIE5VTEwsIDAsIEZBTFNFKTsKKyAgICAqKCh4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSopaW5zdHApID0gTlVMTDsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAxOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fRigpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX0YoKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9Bc3NlcnRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Fzc2VydF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Bc3NlcnRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXMgeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfQ29yZV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0NvcmVfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfRGVmYXVsdHNfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGVmYXVsdHNfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlIHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfRGlhZ3NfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3NfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGlhZ3NfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0UoIHhkY19TdHJpbmcgY29udHJvbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljIHhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5IHhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5IHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9vayB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aCB4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0Vycm9yX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX0Vycm9yX0RhdGEqIHhkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVUludDE2IHhkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9JZCB4ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TdHJpbmcgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX2luaXRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViLCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtb2QsIHhkY19TdHJpbmcgZmlsZSwgeGRjX0ludCBsaW5lLCB4ZGNfcnVudGltZV9FcnJvcl9JZCBpZCwgeGRjX0lBcmcgYXJnMSwgeGRjX0lBcmcgYXJnMiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9HYXRlX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JQXJnIHhkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRSggeGRjX0lBcmcga2V5ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUsIHhkY19JQXJnIGtleSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnkgeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudCB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlIHhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlIHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0xvZ19IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0xvZ19Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19kb1ByaW50X19FKCB4ZGNfcnVudGltZV9Mb2dfRXZlbnRSZWMqIGV2UmVjICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01haW5fSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01haW5fUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZSB4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01lbW9yeV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX0ludCBxdWFsICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TaXplVCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfQ2hhciB2YWx1ZSwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UpOworI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3NlcyB4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N0YXJ0dXBfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9idWZTaXplIHhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0IHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG4geGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3lzTWluX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UpOworI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnIHhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3lzdGVtX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fQXRleGl0SGFuZGxlciBoYW5kbGVyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVVua25vd24geGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5IHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljIHhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfaXNMb2FkZWQgeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25vZGVUYWIgeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250IHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZUNudCB4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4biB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMiB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9UZXh0X0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Db3JkQWRkciBjb3JkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLCB4ZGNfU3RyaW5nIHBhdCwgeGRjX0ludCogbGVucCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TGFiX19FKCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0UoIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1pZCwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRSggeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogc2l0ZSwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSBJTklUSUFMSVpBVElPTiBFTlRSWSBQT0lOVCA9PT09PT09PQorICovCisKK2V4dGVybiBpbnQgX194ZGNfX2luaXQodm9pZCk7CisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpCisjZW5kaWYKKyNlbmRpZgorX19GQVJfXyBpbnQgKCogdm9sYXRpbGUgX194ZGNfX2luaXRfX2FkZHIpKHZvaWQpID0gJl9feGRjX19pbml0OworCisKKy8qCisgKiA9PT09PT09PSBQUk9HUkFNIEdMT0JBTFMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSBDTElOSyBESVJFQ1RJVkVTID09PT09PT09CisgKi8KKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmIyYzM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnCkBAIC0wLDAgKzEsNzg3IEBACisvKgorICogID09PT09PT09IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcgPT09PT09PT0KKyAqICBUaGlzIGdlbmVyYXRlZCBjb25maWd1cmF0aW9uIHNjcmlwdCBydW5zIHRoZSB1c2VyJ3MgY29uZmlndXJhdGlvbiBzY3JpcHQKKyAqICB0aGUgY29udGV4dCBvZiBhIHNwZWNpZmljIHRhcmdldCBhbmQgcGxhdGZvcm0gaW4gb3JkZXIgdG8gZ2VuZXJhdGUKKyAqICBhbGwgdGhlIGZpbGVzIG5lY2Vzc2FyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZTsgZS5nLiwgbGlua2VyIGNvbW1hbmQKKyAqICBmaWxlcywgc3RhdGljIEMvQysrIGRhdGEgc3RydWN0dXJlcywgZXRjLgorICovCisKKy8qCisgKiAgPT09PT09PT0gX3J1bmVzY2FwZSA9PT09PT09PQorICogIFJlY3Vyc2l2ZSB1bmVzY2FwZSB0byBkZWNvZGUgc2VyaWFsaXplZCBzdHJpbmdzCisgKi8KK2Z1bmN0aW9uIF9ydW5lc2NhcGUob2JqKSB7CisgICAgZm9yICh2YXIgaSBpbiBvYmopIHsKKyAgICAgICAgaWYgKG9ialtpXSAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAodHlwZW9mIG9ialtpXSA9PSAnc3RyaW5nJykgeworICAgICAgICAgICAgICAgIG9ialtpXSA9IHVuZXNjYXBlKG9ialtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb2JqW2ldID09ICdvYmplY3QnKSB7CisgICAgICAgICAgICAgICAgX3J1bmVzY2FwZShvYmpbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvKgorICogID09PT09PT09IF9nZXRQbGF0Q2ZnID09PT09PT09CisgKi8KK2Z1bmN0aW9uIF9nZXRQbGF0Q2ZnKCkgeworICAgIHZhciB0bXAgPSB7fTsKKyAgICBfcnVuZXNjYXBlKHRtcCk7CisgICAgcmV0dXJuICh0bXApOworfQorLyoKKyAqICA9PT09PT09PSBfY2ZnaW5pdCA9PT09PT09PQorICovCitmdW5jdGlvbiBfY2ZnaW5pdCgpIHsKKyAgICB4ZGMubG9hZFBhY2thZ2UoJ3hkYy5zZXJ2aWNlcy5pbnRlcm4uY21kJyk7CisgICAgdmFyIHByb2cgPSB4ZGMub21bJ3hkYy5jZmcuUHJvZ3JhbSddOworCisgICAgLyogaW5pdGlhbGl6ZSBwcm9nIGF0dHJzIGZyb20gYnVpbGQgbW9kZWwgKi8KKyAgICB2YXIgYnVpbGQgPSB7CisgICAgICAgIHJlbGVhc2VzOiB7CisgICAgICAgICAgICAwOiB7CisgICAgICAgICAgICAgICAgbmFtZTogImNmZ3NpdGUiLAorICAgICAgICAgICAgICAgIGF0dHJzOiB7CisgICAgICAgICAgICAgICAgICAgIHByZWZpeDogIiIsCisgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAiZGVmYXVsdCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIG90aGVyRmlsZXM6IHt9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHRhcmdldDogeworICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UCIsCisgICAgICAgICAgICBuYW1lOiAiQzY0UCIsCisgICAgICAgICAgICBzdWZmaXg6ICI2NFAiLAorICAgICAgICAgICAgY29tcGF0aWJsZVN1ZmZpeGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9jb21wYXRpYmxlU3VmZml4ZXMiLAorICAgICAgICAgICAgICAgIDA6ICI2NCIsCisgICAgICAgICAgICAgICAgMTogIjYyIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGlzYTogIjY0UCIsCisgICAgICAgICAgICBtb2RlbDogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvbW9kZWwiLAorICAgICAgICAgICAgICAgIGVuZGlhbjogImxpdHRsZSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBydHM6ICJ0aS50YXJnZXRzLnJ0czYwMDAiLAorICAgICAgICAgICAgYmFzZTogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2MiIsCisgICAgICAgICAgICAgICAgbmFtZTogIkM2MiIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiNjIiLAorICAgICAgICAgICAgICAgIGNvbXBhdGlibGVTdWZmaXhlczogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvY29tcGF0aWJsZVN1ZmZpeGVzIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGlzYTogIjYyIiwKKyAgICAgICAgICAgICAgICBtb2RlbDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvbW9kZWwiLAorICAgICAgICAgICAgICAgICAgICBlbmRpYW46ICJsaXR0bGUiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBydHM6ICJ0aS50YXJnZXRzLnJ0czYwMDAiLAorICAgICAgICAgICAgICAgIHBsYXRmb3JtOiAidGkucGxhdGZvcm1zLnNpbTZ4eHglM0FUTVMzMjBDNjIxMSIsCisgICAgICAgICAgICAgICAgcGxhdGZvcm1zOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wbGF0Zm9ybXMiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgYmluYXJ5UGFyc2VyOiAidGkudGFyZ2V0cy5vbWYuY29mLkNvZmYiLAorICAgICAgICAgICAgICAgIGRlYnVnR2VuOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9kZWJ1Z0dlbiIsCisgICAgICAgICAgICAgICAgICAgIGV4ZWNUZW1wbGF0ZTogInRpL3RhcmdldHMvY2NzX2V4ZWMueGR0IiwKKyAgICAgICAgICAgICAgICAgICAgZXhlY1BhdHRlcm46ICIlMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCIsCisgICAgICAgICAgICAgICAgICAgIHBhY2thZ2VUZW1wbGF0ZTogInRpL3RhcmdldHMvY2NzX3BhY2thZ2UueGR0IiwKKyAgICAgICAgICAgICAgICAgICAgcGFja2FnZVBhdHRlcm46ICJwYWNrYWdlLyUyNCUyOHBrZ05hbWUlMjkucGp0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucyIsCisgICAgICAgICAgICAgICAgICAgICIuczYyIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5zNjInIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zNjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmFzbSI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYXNtJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYXNtIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIi5jIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYyIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJjIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmNwcCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3BwJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIi5jeHgiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmN4eCciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmN4eCIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuQyI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuQyciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLkMiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmNjIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jYyciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNjIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdmVyc2lvbk1hcDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvdmVyc2lvbk1hcCIsCisgICAgICAgICAgICAgICAgICAgICJUTVMzMjBDNnhfNC4zMiI6ICIxJTJDMCUyQzQuMzIlMkMwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEM1NXhfMi41NiI6ICIxJTJDMCUyQzIuNTYlMkMwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEM1NHhfMy44MyI6ICIxJTJDMCUyQzMuODMlMkMwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEMyMDAwXzMuMDciOiAiMSUyQzAlMkMzLjA3JTJDMCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGFsaWduRGlyZWN0aXZlU3VwcG9ydGVkOiB0cnVlLAorICAgICAgICAgICAgICAgIHByb2ZpbGVzOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcyIsCisgICAgICAgICAgICAgICAgICAgIGRlYnVnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZzOiAiLURfREVCVUdfJTNEMSIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHJlbGVhc2U6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZSciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1PMiIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWdwIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjb3ZlcmFnZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZSciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZ3AiCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB3aG9sZV9wcm9ncmFtOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItb2UlMjAtTzIlMjAtbW8iCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHdob2xlX3Byb2dyYW1fZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZyciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1vZSUyMC0tc3ltZGVidWclM0Fkd2FyZiUyMC1tbyIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgc2VjdE1hcDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc2VjdE1hcCIsCisgICAgICAgICAgICAgICAgICAgICIudGV4dCI6ICJjb2RlIiwKKyAgICAgICAgICAgICAgICAgICAgIi5zdGFjayI6ICJzdGFjayIsCisgICAgICAgICAgICAgICAgICAgICIuYnNzIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmNpbml0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLnBpbml0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmNvbnN0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmRhdGEiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuc3dpdGNoIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLnN5c21lbSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5mYXIiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuYXJncyI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5jaW8iOiAiZGF0YSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHN0ZEluY2x1ZGU6ICJ0aS90YXJnZXRzL3N0ZC5oIiwKKyAgICAgICAgICAgICAgICBzdGRUeXBlczogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMiLAorICAgICAgICAgICAgICAgICAgICB0X0lBcmc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0lBcmciLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfQ2hhcjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfQ2hhciIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9Eb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0RvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9GbG9hdDogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRmxvYXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfRnhuOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GeG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50ODogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50OCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQxNjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50MzI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDMyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0ludDQwOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ0MCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQ2NDogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NjQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfTG9uZzogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfTG9uZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9MRG91YmxlOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0xMb25nOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MTG9uZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9QdHI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1B0ciIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9TaG9ydDogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfU2hvcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGJpdHNQZXJDaGFyOiA4CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgcGxhdGZvcm06ICJ0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMENETTQyMCIsCisgICAgICAgICAgICBwbGF0Zm9ybXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgMDogInRpLnBsYXRmb3Jtcy5zaW02eHh4JTNBVE1TMzIwQ0RNNDIwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGJpbmFyeVBhcnNlcjogInRpLnRhcmdldHMub21mLmNvZi5Db2ZmIiwKKyAgICAgICAgICAgIHZlcnNpb246ICJ0aS50YXJnZXRzLkM2NFAlN0IxJTJDMCUyQzYuMSUyQzUiLAorICAgICAgICAgICAgZGVidWdHZW46IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2RlYnVnR2VuIiwKKyAgICAgICAgICAgICAgICBleGVjVGVtcGxhdGU6ICJ0aS90YXJnZXRzL2Njc19leGVjLnhkdCIsCisgICAgICAgICAgICAgICAgZXhlY1BhdHRlcm46ICIlMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCIsCisgICAgICAgICAgICAgICAgcGFja2FnZVRlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfcGFja2FnZS54ZHQiLAorICAgICAgICAgICAgICAgIHBhY2thZ2VQYXR0ZXJuOiAicGFja2FnZS8lMjQlMjhwa2dOYW1lJTI5LnBqdCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBleHRlbnNpb25zOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zIiwKKyAgICAgICAgICAgICAgICAiLnM2NFAiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NFAnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLnM2NFAiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLnM2NCI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0JyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zNjQiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLnM2MiI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczYyJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zNjIiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLmFzbSI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYXNtJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5hc20iLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLmMiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmMnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmMiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jcHAiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNwcCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jeHgiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmN4eCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3h4IiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5DIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5DJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5DIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jYyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY2MnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNjIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB2ZXJzaW9uTWFwOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC92ZXJzaW9uTWFwIiwKKyAgICAgICAgICAgICAgICAiVE1TMzIwQzZ4XzQuMzIiOiAiMSUyQzAlMkM0LjMyJTJDMCIsCisgICAgICAgICAgICAgICAgIlRNUzMyMEM1NXhfMi41NiI6ICIxJTJDMCUyQzIuNTYlMkMwIiwKKyAgICAgICAgICAgICAgICAiVE1TMzIwQzU0eF8zLjgzIjogIjElMkMwJTJDMy44MyUyQzAiLAorICAgICAgICAgICAgICAgICJUTVMzMjBDMjAwMF8zLjA3IjogIjElMkMwJTJDMy4wNyUyQzAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYWxpZ25EaXJlY3RpdmVTdXBwb3J0ZWQ6IHRydWUsCisgICAgICAgICAgICByb290RGlyOiAiZCUzQS90aS9jNjAwMC9hbGMiLAorICAgICAgICAgICAgcHJvZmlsZXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzIiwKKyAgICAgICAgICAgICAgICBkZWJ1ZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZyciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWciLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVmczogIi1EX0RFQlVHXyUzRDEiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgcmVsZWFzZTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1PMiIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHByb2ZpbGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZ3AiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjb3ZlcmFnZTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWdwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHdob2xlX3Byb2dyYW06IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItb2UlMjAtTzIlMjAtbW8iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB3aG9sZV9wcm9ncmFtX2RlYnVnOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLW9lJTIwLS1zeW1kZWJ1ZyUzQWR3YXJmJTIwLW1vIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzZWN0TWFwOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zZWN0TWFwIiwKKyAgICAgICAgICAgICAgICAiLnRleHQiOiAiY29kZSIsCisgICAgICAgICAgICAgICAgIi5zdGFjayI6ICJzdGFjayIsCisgICAgICAgICAgICAgICAgIi5ic3MiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5jaW5pdCI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLnBpbml0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuY29uc3QiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5kYXRhIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuc3dpdGNoIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuc3lzbWVtIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuZmFyIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuYXJncyI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmNpbyI6ICJkYXRhIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHN0ZEluY2x1ZGU6ICJ0aS90YXJnZXRzL3N0ZC5oIiwKKyAgICAgICAgICAgIHN0ZFR5cGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcyIsCisgICAgICAgICAgICAgICAgdF9JQXJnOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JQXJnIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfQ2hhcjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfQ2hhciIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAxCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0RvdWJsZTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRmxvYXQ6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Zsb2F0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRnhuOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GeG4iLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDg6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDgiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQxNjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MTYiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAyLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQzMjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MzIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ0MDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NDAiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ2NDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NjQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9Mb25nOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Mb25nIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfTERvdWJsZTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTERvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xMb25nOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X1B0cjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfUHRyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfU2hvcnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1Nob3J0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYml0c1BlckNoYXI6IDgsCisgICAgICAgICAgICBiaW5EaXI6ICIlMjQlMjhyb290RGlyJTI5L2Jpbi8iLAorICAgICAgICAgICAgcGF0aFByZWZpeDogIiIsCisgICAgICAgICAgICBhcjogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvYXIiLAorICAgICAgICAgICAgICAgIGNtZDogImFyNngiLAorICAgICAgICAgICAgICAgIG9wdHM6ICJycSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhck9wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FyT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbG5rOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9sbmsiLAorICAgICAgICAgICAgICAgIGNtZDogImxuazZ4IiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGxua09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2xua09wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIi13JTIwLXElMjAtdSUyMF9jX2ludDAwIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICItYyUyMC1tJTIwJTI0JTI4WERDQ0ZHRElSJTI5LyUyNEAubWFwJTIwLWwlMjAlMjQlMjhyb290RGlyJTI5L2xpYi9ydHM2NHBsdXMubGliIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNjOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9jYyIsCisgICAgICAgICAgICAgICAgY21kOiAiY2w2eCUyMC1jIiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiLW12NjRwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNjT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvY2NPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICItcXElMjAtcGRzdzIyNSIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNjQ29uZmlnT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvY2NDb25maWdPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICIlMjQlMjhjY09wdHMucHJlZml4JTI5JTIwLW1vIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICIlMjQlMjhjY09wdHMuc3VmZml4JTI5IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFzbTogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvYXNtIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICJjbDZ4JTIwLWMiLAorICAgICAgICAgICAgICAgIG9wdHM6ICItbXY2NHAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXNtT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvYXNtT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiLXFxIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdmVyczogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvdmVycyIsCisgICAgICAgICAgICAgICAgY21kOiAiY2w2eCIsCisgICAgICAgICAgICAgICAgb3B0czogIi12ZXJzaW9uIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGluY2x1ZGVPcHRzOiAiLUklMjQlMjhyb290RGlyJTI5L2luY2x1ZGUiCisgICAgICAgIH0sCisgICAgICAgIHRlc3Q6IHt9LAorICAgICAgICBjZmdBcmdzRW5jb2RlZDogdHJ1ZSwKKyAgICAgICAgY2ZnQXJnczogIm51bGwiLAorICAgICAgICBjZmdTY3JpcHQ6ICJEJTNBL3dvcmsvdHV0b3JpYWwvaGVsbG8tcHJvZy9wcm9nLmNmZyIsCisgICAgICAgIGNmZ0hvbWU6ICJjZmdzaXRlIiwKKyAgICAgICAgcHJvZmlsZTogInJlbGVhc2UiCisgICAgfTsKKyAgICBidWlsZC50YXJnZXQuZmluZFN1ZmZpeCA9IGZ1bmN0aW9uIGZpbmRTdWZmaXgocGtnKSB7CisgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUaGUgZnVuY3Rpb24gSVRhcmdldC5maW5kU3VmZml4KCkgcmVxdWlyZXMgYW4gIiArICJhcmd1bWVudCIpOworICAgICAgICB9CisgICAgICAgIHZhciBzdWZmaXhNYXAgPSB7fTsKKyAgICAgICAgaWYgKCJidWlsZCIgaW4gcGtnKSB7CisgICAgICAgICAgICB2YXIgYnVpbGQgPSBwa2cuYnVpbGQ7CisgICAgICAgICAgICBpZiAoYnVpbGQubGlicmFyaWVzLmxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYkRlc2NbMF0uc3VmZml4ICE9IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkLmxpYkRlc2MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeE1hcFtidWlsZC5saWJEZXNjW2ldLnN1ZmZpeF0gPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGQubGliRGVzYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYkRlc2NbaV0udGFyZ2V0ID09IHByb2cuYnVpbGQudGFyZ2V0LiRuYW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4TWFwW3Byb2cuYnVpbGQudGFyZ2V0LnN1ZmZpeF0gPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICgibGVuZ3RoIiBpbiBwa2cpIHsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBrZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzdWZmaXhNYXBbcGtnW2ldXSA9ICIiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbiBpbnZhbGlkIGFyZ3VtZW50IHR5cGUgc3VwcGxpZWQgdG8gIiArICJJVGFyZ2V0LmZpbmRTdWZmaXgoKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZhciBjb21wVGFyZ3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLmNvbXBhdGlibGVTdWZmaXhlcykgeworICAgICAgICAgICAgY29tcFRhcmdzW3Byb3BdID0gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXNbcHJvcF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuc3VmZml4IGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICh0aGlzLnN1ZmZpeCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBUYXJncy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcFRhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29tcFRhcmdzW2ldIGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY29tcFRhcmdzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKG51bGwpOworICAgIH07CisKKyAgICBidWlsZC50YXJnZXQuc2VsZWN0U3VmZml4ID0gZnVuY3Rpb24gc2VsZWN0U3VmZml4KGxpc3QpIHsKKyAgICAgICAgdmFyIHN1ZmZpeE1hcCA9IHt9OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN1ZmZpeE1hcFtsaXN0W2ldXSA9ICIiOworICAgICAgICB9CisgICAgICAgIHZhciBjb21wVGFyZ3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLmNvbXBhdGlibGVTdWZmaXhlcykgeworICAgICAgICAgICAgY29tcFRhcmdzW3Byb3BdID0gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXNbcHJvcF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuc3VmZml4IGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICh0aGlzLnN1ZmZpeCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBUYXJncy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcFRhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29tcFRhcmdzW2ldIGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY29tcFRhcmdzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKG51bGwpOworICAgIH07CisKKyAgICBidWlsZC50YXJnZXQuYXNtTmFtZSA9IGZ1bmN0aW9uIGFzbU5hbWUoY25hbWUpIHsKKyAgICAgICAgcmV0dXJuICgiXyIgKyBjbmFtZSk7CisgICAgfTsKKworICAgIF9ydW5lc2NhcGUoYnVpbGQpOworICAgIGJ1aWxkLmNmZ0FyZ3MgPSBudWxsOworICAgIHByb2cuYnVpbGQgPSBidWlsZDsKKyAgICAKKyAgICBwcm9nLm5hbWUgPSAicHJvZy54NjRQIjsKKworICAgIHByb2cuZW5kaWFuID0gcHJvZy5idWlsZC50YXJnZXQubW9kZWwuZW5kaWFuOworCisgICAgLyogdXNlIHRoZSBwbGF0Zm9ybSBwYWNrYWdlJ3MgUGxhdGZvcm0gbW9kdWxlICovCisgICAgdmFyIFBsYXRmb3JtID0geGRjLnVzZU1vZHVsZSgidGkucGxhdGZvcm1zLnNpbTY0UHh4LlBsYXRmb3JtIik7CisgICAgdmFyIHBsYXRQYXJhbXMgPSBfZ2V0UGxhdENmZygpOworICAgIGZvciAodmFyIHByb3AgaW4gcGxhdFBhcmFtcykgeworICAgICAgICBpZiAoIShwcm9wIGluIFBsYXRmb3JtLlBBUkFNUykpIHsKKyAgICAgICAgICAgIGRlbGV0ZSBwbGF0UGFyYW1zW3Byb3BdOworICAgICAgICB9CisgICAgfQorICAgIHByb2cucGxhdGZvcm1OYW1lID0gInRpLnBsYXRmb3Jtcy5zaW02NFB4eCI7CisgICAgcHJvZy5wbGF0Zm9ybSA9IFBsYXRmb3JtLmNyZWF0ZSgiIiwgX2dldFBsYXRDZmcoKSwgcGxhdFBhcmFtcyk7CisgICAgLyogcmVjb3JkIHRoZSBleGVjdXRhYmxlJ3MgcGFja2FnZSBuYW1lICovCisgICAgcHJvZy5idWlsZFBhY2thZ2UgPSAiY2Znc2l0ZSI7CisKKyAgICAvKiByZWNvcmQgYnVpbGQtbW9kZWwgaW5mb3JtYXRpb24gcmVxdWlyZWQgZHVyaW5nIGNvbmZpZyBnZW5lcmF0aW9uICovCisgICAgcHJvZy4kJGJpbmQoIiQkaXNhc20iLCAwKTsKKyAgICBwcm9nLiQkYmluZCgiJCRpc3JvbSIsIDApOworICAgIHByb2cuJCRiaW5kKCIkJGdlbnRhYiIsIFsKKyAgICBdKTsKKyAgICAKKyAgICAvKiBiaW5kIHByb2cgdG8gYW4gYXBwcm9wcmlhdGUgZXhlY3V0aW9uIGNvbnRleHQgKi8KKyAgICBwcm9nLmNwdSA9IHByb2cucGxhdGZvcm0uZ2V0RXhlQ29udGV4dChwcm9nKTsKKworICAgIC8qIGltcG9ydCB0aGUgdGFyZ2V0J3MgcnVuLXRpbWUgc3VwcG9ydCBwa2cgKi8KKyAgICB4ZGMubG9hZFBhY2thZ2UoInRpLnRhcmdldHMucnRzNjAwMCIpOworfQorICAgIAorLyogZnVuY3Rpb24gdG8gaW1wb3J0IHRoZSBjZmcgc2NyaXB0J3MgcGFja2FnZSAqLworZnVuY3Rpb24gX3VzZXJzY3JpcHQoJCRsZWdhY3ksIHNjcmlwdCkgeworICAgIHZhciBob21lOworICAgIHZhciBzcGF0aDsKKyAgICBob21lID0geGRjLmxvYWRQYWNrYWdlKCJjZmdzaXRlIik7CisgICAgCisgICAgeGRjLm9tLiQkYmluZCgnJGhvbWVwa2cnLCBob21lKTsKKworICAgIGlmIChzY3JpcHQgIT0gbnVsbCkgeworICAgICAgICB1dGlscy5ldmFsdWF0ZVNjcmlwdChzY3JpcHQpOworICAgIH0KKyAgICBlbHNlIHsgCisgICAgICAgIC8qIGxvYWQgJiBydW4gcHJvZ3JhbSBjZmcgc2NyaXB0IGFuZCBtb25pdG9yIGFsbCBsb2FkZWQgZmlsZXMgKi8KKyAgICAgICAgX3J1bkNmZygiRDovd29yay90dXRvcmlhbC9oZWxsby1wcm9nL3Byb2cuY2ZnIiwgc3BhdGgsICJwYWNrYWdlL2NmZy9wcm9nX3g2NFAiLCAgCisgICAgICAgICAgICAgICAgIGZhbHNlLCAKKyAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgIF9nZXRQbGF0Q2ZnKCkpOworICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAKKworCisgICAgLyoKKyAgICAgKiAgPT09PT09PT0gX3J1bkNmZyA9PT09PT09PQorICAgICAqICBSdW4gYSB1c2VyIHN1cHBsaWVkIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGFuZCBwcmV2ZW50IHVzZXIncyBzY3JpcHQgZnJvbQorICAgICAqICBvdmVyd3JpdGluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHByb2cuCisgICAgICovCisgICAgZnVuY3Rpb24gX3J1bkNmZyhjZmdTY3JpcHQsIHBhdGgsIHByb2dyYW1OYW1lLCBsZWdhY3lUY2YsIGxlZ2FjeUNmZywKKyAgICAgICAgcGxhdFBhcmFtcykKKyAgICB7CisgICAgICAgIGlmIChsZWdhY3lUY2YpIHsKKyAgICAgICAgICAgIC8qIHNhdmUgY3VycmVudCBnbG9iYWwgdmFyaWFibGVzICovCisgICAgICAgICAgICB2YXIgJHNhdmUgPSB7cHJvZzogdXRpbHMuZ2xvYmFsLnByb2csIFByb2dyYW06IFByb2dyYW19OworICAgIAorICAgICAgICAgICAgLyogaW5pdGlhbGl6ZSBnbG9iYWwgdmFyaWFibGVzIGZvciBsZWdhY3kgY29uZmlnIHNjcmlwdHMgKi8KKyAgICAgICAgICAgIGVudmlyb25tZW50WyJjb25maWcucHJvZ3JhbU5hbWUiXSA9IHByb2dyYW1OYW1lOworICAgICAgICAgICAgZW52aXJvbm1lbnRbImNvbmZpZy5wbGF0Zm9ybSJdID0gUHJvZ3JhbS5wbGF0Zm9ybU5hbWU7CisgICAgICAgICAgICB1dGlscy5zZWVkUGF0aCA9IGVudmlyb25tZW50WyJjb25maWcuaW1wb3J0UGF0aCJdOworICAgICAgICAgICAgdXRpbHMubG9hZFBsYXRmb3JtLnBhcmFtcyA9IHBsYXRQYXJhbXM7CisgICAgICAgICAgICBQcm9ncmFtID0gJCRsZWdhY3kuUHJvZ3JhbTsgICAgIC8qIGRlZmluZWQgaW4gY2ZnLnRjaSAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiBydW4gbGVnYWN5IGNvbmZpZyBzY3JpcHQgd2l0aCBwcm9nID09IHRvIFJUU0MgUHJvZ3JhbTsgdGhpcworICAgICAgICAgICAgICogYWxsb3dzIGxlZ2FjeSBzY3JpcHQgdG8gcmVhZCBidWlsZCBhdHJpYnV0ZXMgZnJvbSBSVFNDIG1vZGVsCisgICAgICAgICAgICAgKiBiZWZvcmUgcmUtY3JlYXRpbmcgdGhlIHByb2cgb2JqZWN0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHV0aWxzLmxvYWRDYXBzdWxlKGNmZ1NjcmlwdCwgZmFsc2UsIHBhdGgpOyAgCisgICAgCisgICAgICAgICAgICAvKiByZXN0b3JlIGdsb2JhbCB2YXJpYWJsZXM7IG5vdyBwcm9nID09IFRDT00gcHJvZyBiZWNhdXNlCisgICAgICAgICAgICAgKiB1dGlscy5sb2FkUGxhdGZvcm0oKSBjcmVhdGVzIHRoZSBUQ09NIHByb2cgb2JqZWN0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICAkJGxlZ2FjeS5wcm9nID0gdXRpbHMuZ2xvYmFsLnByb2c7ICAvKiBpbiBjYXNlIFhEQyB3YW50cyBpdCAqLworICAgICAgICAgICAgdXRpbHMuZ2xvYmFsLnByb2cgPSAkc2F2ZS5wcm9nOworICAgICAgICAgICAgUHJvZ3JhbSA9ICRzYXZlLlByb2dyYW07CisgICAgCisgICAgICAgICAgICAvKiBydW4gWERDIGNvbmZpZ3VyYXRpb24gc2NyaXB0LCBpZiBpdCBleGlzdHMgKi8KKyAgICAgICAgICAgIGlmIChsZWdhY3lDZmcpIHsKKyAgICAgICAgICAgICAgICB1dGlscy5pbXBvcnRGaWxlKGNmZ1NjcmlwdC5yZXBsYWNlKC9cLnRjZi8sICIuY2ZnIiksIHBhdGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdXRpbHMubG9hZENhcHN1bGUoY2ZnU2NyaXB0LCBmYWxzZSwgcGF0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisgICAgCitmdW5jdGlvbiBfcG9zdGluaXQoKSB7CisKKyAgICB2YXIgY291dCA9IG51bGw7CisKKyAgICB2YXIgcHJvZyA9IHhkYy5vbVsneGRjLmNmZy5Qcm9ncmFtJ107CisgICAgLyogZ2V0IHRoZSBleGVjIGNvbW1hbmQgZm9yIHRoaXMgZXhlY3V0YWJsZSAqLworICAgIGlmIChwcm9nLmV4ZWNDbWQgPT0gbnVsbCkgeworICAgICAgICBwcm9nLmV4ZWNDbWQgPSBwcm9nLnBsYXRmb3JtLmdldEV4ZWNDbWQocHJvZywKKyAgICAgICAgICAgIHhkYy5vbVsidGkucGxhdGZvcm1zLnNpbTY0UHh4Il0ucGFja2FnZUJhc2UpOworICAgIH0KKyAgICB2YXIgY291dCA9ICJkZWZpbmUgRVhFQy4iICsgcHJvZy5uYW1lICsgJ1xuXG4nOworICAgIGNvdXQgKz0gcHJvZy5leGVjQ21kOworICAgIGNvdXQgKz0gIlxuZW5kZWZcblxuIjsKKworICAgIHV0aWxzLmdlbkRlcCgicGFja2FnZS9jZmcvcHJvZ194NjRQIiwgImNmZ3NpdGUiLCB1dGlscy5sb2FkZWRGaWxlcywgY291dCwgbnVsbCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcuZG90IGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLmRvdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMmU2NWZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLmRvdApAQCAtMCwwICsxLDE2NCBAQAorZGlncmFwaCBjb25maWd1cmF0aW9uIHsKKyAgICBzaXplPSI3LjUsMTAiOworICAgIHJhbmtkaXI9TFI7CisgICAgcmFua3NlcD0iLjUwIGVxdWFsbHkiOworICAgIGNvbmNlbnRyYXRlPXRydWU7CisgICAgY29tcG91bmQ9dHJ1ZTsKKyAgICBsYWJlbD0iXG5Db25maWd1cmF0aW9uIGZvciBjZmdzaXRlL3Byb2cueDY0UCIKKyAgbm9kZSBbZm9udD1IZWx2ZXRpY2EsIGZvbnRzaXplPTE0LCBmb250Y29sb3I9YmxhY2tdOyAgc3ViZ3JhcGggY2x1c3RlcjAge2xhYmVsPSIiOyBfX2NmZyBbbGFiZWw9IkQ6L3dvcmsvdHV0b3JpYWwvaGVsbG8tcHJvZy9wcm9nLmNmZyIsIGNvbG9yPXdoaXRlLCBmb250Y29sb3I9Ymx1ZV07CisgICAgbm9kZSBbZm9udD1IZWx2ZXRpY2EsIGZvbnRzaXplPTEwXTsgICAgc3ViZ3JhcGggY2x1c3RlcjEgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjXG4xLCAxLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfY29yZXZlcnNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuY29yZXZlcnNcbjE2LCAwLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmdsb2JhbFxuMSwgMCwgMSIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkNsb2NrIl07CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfX3RvcCAtPiB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9DbG9jayAtPiB4ZGNfc2VydmljZXNfZ2xvYmFsX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2hlbGZfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2hlbGZcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19zcGVjX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLnNwZWNcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI2IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5feHNyX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi54c3JcbjEsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI3IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5fZ2VuX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi5nZW5cbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI4IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5fY21kX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi5jbWRcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI5IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19yb3ZfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucm92XG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcm92X19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB0aV9jYXRhbG9nX2M2MDAwX190b3AgW3NoYXBlPWJveCxsYWJlbD0idGkuY2F0YWxvZy5jNjAwMFxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgdGlfY2F0YWxvZ19jNjAwMF9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB0aV9jYXRhbG9nX2M2MDAwX1RNUzMyMENUQ0k2NDgyIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlRNUzMyMENUQ0k2NDgyIl07CisgICAgICAgIHRpX2NhdGFsb2dfYzYwMDBfX3RvcCAtPiB0aV9jYXRhbG9nX2M2MDAwX1RNUzMyMENUQ0k2NDgyW3N0eWxlPWludmlzXTsKKyAgICAgICAgdGlfY2F0YWxvZ19jNjAwMF9UTVMzMjBDVENJNjQ4MiAtPiB0aV9jYXRhbG9nX2M2MDAwX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTEgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3BsYXRmb3JtX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnBsYXRmb3JtXG4xLCAwLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX0V4ZUNvbnRleHQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRXhlQ29udGV4dCJdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX3RvcCAtPiB4ZGNfcGxhdGZvcm1fRXhlQ29udGV4dFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9FeGVDb250ZXh0IC0+IHhkY19wbGF0Zm9ybV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX1V0aWxzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlV0aWxzIl07CisgICAgICAgIHhkY19wbGF0Zm9ybV9fdG9wIC0+IHhkY19wbGF0Zm9ybV9VdGlsc1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9VdGlscyAtPiB4ZGNfcGxhdGZvcm1fX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfY2ZnX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLmNmZ1xuMSwgMCwgMiwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX2NmZ19fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX1Byb2dyYW0gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iUHJvZ3JhbSJdOworICAgICAgICB4ZGNfY2ZnX190b3AgLT4geGRjX2NmZ19Qcm9ncmFtW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19Qcm9ncmFtIC0+IHhkY19jZmdfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfTWFpbiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNYWluIl07CisgICAgICAgIHhkY19jZmdfX3RvcCAtPiB4ZGNfY2ZnX01haW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX01haW4gLT4geGRjX2NmZ19fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEzIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHRpX3BsYXRmb3Jtc19zaW02NFB4eF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InRpLnBsYXRmb3Jtcy5zaW02NFB4eFxuMSwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgdGlfcGxhdGZvcm1zX3NpbTY0UHh4X19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHRpX3BsYXRmb3Jtc19zaW02NFB4eF9QbGF0Zm9ybSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJQbGF0Zm9ybSJdOworICAgICAgICB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfX3RvcCAtPiB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfUGxhdGZvcm1bc3R5bGU9aW52aXNdOworICAgICAgICB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfUGxhdGZvcm0gLT4gdGlfcGxhdGZvcm1zX3NpbTY0UHh4X19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTQgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucnVudGltZVxuMiwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQXNzZXJ0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkFzc2VydCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0Fzc2VydFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Fzc2VydCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQ29yZSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDb3JlIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfQ29yZVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0NvcmUgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RlZmF1bHRzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkRlZmF1bHRzIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfRGVmYXVsdHNbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EZWZhdWx0cyAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGlhZ3MgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRGlhZ3MiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9EaWFnc1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RpYWdzIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9FcnJvciBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJFcnJvciJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0Vycm9yW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRXJyb3IgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGUgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iR2F0ZSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0dhdGVbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJHYXRlTnVsbCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0dhdGVOdWxsW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGwgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0xvZyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJMb2ciXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9Mb2dbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Mb2cgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW4gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbiJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01haW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWVtb3J5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWVtb3J5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkhlYXBTdGQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9IZWFwU3RkW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3RhcnR1cCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTdGFydHVwIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3RhcnR1cFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N0YXJ0dXAgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW0iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXN0ZW1bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW0gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c01pbiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXNNaW4iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXNNaW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXNNaW4gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1RleHQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iVGV4dCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1RleHRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9UZXh0IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbl9Nb2R1bGVfR2F0ZVByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1lbW9yeV9IZWFwUHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW1fU3VwcG9ydFByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHRpX3RhcmdldHNfcnRzNjAwMF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InRpLnRhcmdldHMucnRzNjAwMFxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE2IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIGNmZ3NpdGVfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJjZmdzaXRlXG4iLCBjb2xvcj13aGl0ZV07CisgICAgfQorICB9CisgIG5vZGUgW2ZvbnQ9SGVsdmV0aWNhLCBmb250c2l6ZT0xMF07CisgICAgdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMF8xNiBbc2hhcGU9cmVjb3JkLGxhYmVsPSJ0aS50YXJnZXRzLkM2NFB8MSwwLDYuMCwxNiIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICB0aV90YXJnZXRzX3J0czYwMDBfX3RvcCAtPiB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18wXzE2IFtsdGFpbD1jbHVzdGVyMTVdOworICAgIHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzFfNSBbc2hhcGU9cmVjb3JkLGxhYmVsPSJ0aS50YXJnZXRzLkM2NFB8MSwwLDYuMSw1IixzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZXldOworICAgIGNmZ3NpdGVfX3RvcCAtPiB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18xXzUgW2x0YWlsPWNsdXN0ZXIxNl07Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTA2NDQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLnhtbApAQCAtMCwwICsxLDIxOTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBUaGlzIGZpbGUgY29uZm9ybXMgdG8gdGhlIERURCB4ZGMvY2ZnL2NvbmZpZ3VyYXRpb24uZHRkIC0tPgorPGNvbmZpZ3VyYXRpb24gbmFtZT0iY2Znc2l0ZS9wcm9nLng2NFAiCisgICAgcGxhdGZvcm1OYW1lPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiCisgICAgZ2xvYmFsU2VjdGlvbj0ibnVsbCIKKyAgICBzeXNTdGFjaz0iNDA5NiIKKyAgICBzdGFjaz0iNDA5NiIKKyAgICBoZWFwPSI0MDk2IgorICAgIGFyZ1NpemU9IjUxMiIKKyAgICBleGVjQ21kPSJFJTNBL3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9wbGF0Zm9ybXMvc2ltNjRQeHgvV2luZG93cy9rZWx2aW4lMjAtcXVpZXQlMjAtbWVtX2lnbm9yZSUyMEQlM0ElNUN3b3JrJTVDdHV0b3JpYWwlNUNoZWxsby1wcm9nJTVDY2Znc2l0ZSU1Q3Byb2cueDY0UCIKKyAgICBlbmRpYW49ImxpdHRsZSIKKyAgICBjb2RlTW9kZWw9Im51bGwiCisgICAgZGF0YU1vZGVsPSJudWxsIj4KKzx0YXJnZXRzPgorICAgIDx0YXJnZXQgbmFtZT0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICAgICAgdmVyc2lvbj0iMSwwLDYuMCwxNiIKKyAgICAgICAgICAgIHVzZWRieT0idGkudGFyZ2V0cy5ydHM2MDAwIi8+CisgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsNi4xLDUiCisgICAgICAgICAgICB1c2VkYnk9ImNmZ3NpdGUiLz4KKzwvdGFyZ2V0cz4KKzxpbXBvcnRzPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYyIgdmVyc2lvbj0iMSwgMSwgMSwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5jb3JldmVycyIgdmVyc2lvbj0iMTYsIDAsIDEsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuZ2xvYmFsIiB2ZXJzaW9uPSIxLCAwLCAxIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuc2VydmljZXMuZ2xvYmFsLkNsb2NrIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImVuYWJsZSIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzaG93TWVtb3J5IiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnNlcnZpY2VzLmdsb2JhbC5UcmFjZSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNoZWxmIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLnNwZWMiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuaW50ZXJuLnhzciIgdmVyc2lvbj0iMSwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5pbnRlcm4uZ2VuIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmludGVybi5jbWQiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucm92IiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92Lk1vZGVsIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuUHJvZ3JhbSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlN0cnVjdHVyZURlY29kZXIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5TdGF0ZVJlYWRlciIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlZpZXdJbmZvIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDUyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RORVRWMjY4NSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDI4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MTEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcxMUIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcxMiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzEzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMTEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIxMUIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDExIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxMyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDE0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDE4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MjEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQyNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcxMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwMFNJTSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0NDIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDQ0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQ0NiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERSQTQ0NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzIyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MjYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcyNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQxNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MzEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDMzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQzNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MzciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDQxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ0MyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0NDYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBETTM1NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0NjciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJJMzAwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODIiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2FjaGVTaXplTDEiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyNzBrJTI3JTJDJTIwMHgwJTVEJTJDJTBBJTVCJTI3NGslMjclMkMlMjAweDEwMDAlNUQlMkMlMEElNUIlMjc4ayUyNyUyQyUyMDB4MjAwMCU1RCUyQyUwQSU1QiUyNzE2ayUyNyUyQyUyMDB4NDAwMCU1RCUyQyUwQSU1QiUyNzMyayUyNyUyQyUyMDB4ODAwMCU1RCUwQSU1RCI+PG1hcCBpZD0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4Mi9jYWNoZVNpemVMMSIgbGVuZ3RoPSI1Ij4NCisgIDxlbnRyeSBrZXk9IjBrIj4weDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iNGsiPjB4MTAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSI4ayI+MHgyMDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjE2ayI+MHg0MDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjMyayI+MHg4MDAwPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNhY2hlU2l6ZUwyIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjcwayUyNyUyQyUyMDB4MCU1RCUyQyUwQSU1QiUyNzMyayUyNyUyQyUyMDB4ODAwMCU1RCUyQyUwQSU1QiUyNzY0ayUyNyUyQyUyMDB4MTAwMDAlNUQlMkMlMEElNUIlMjcxMjhrJTI3JTJDJTIwMHgyMDAwMCU1RCUyQyUwQSU1QiUyNzI1NmslMjclMkMlMjAweDQwMDAwJTVEJTBBJTVEIj48bWFwIGlkPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDgyL2NhY2hlU2l6ZUwyIiBsZW5ndGg9IjUiPg0KKyAgPGVudHJ5IGtleT0iMGsiPjB4MDwvZW50cnk+DQorICA8ZW50cnkga2V5PSIzMmsiPjB4ODAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSI2NGsiPjB4MTAwMDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iMTI4ayI+MHgyMDAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSIyNTZrIj4weDQwMDAwPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4NiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDg3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4NCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDU0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NTUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDMjQzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEMzNDMwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MDEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjAyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMDMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwM0IiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjA1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQwNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0MDIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDA0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQxNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0MTYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRjc2MTk5MCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAyNDMxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDI1MzAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMjUzMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAzNDI1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDM1MjUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMzUzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODA1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MDciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgwOCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODEwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MjgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDcyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NzQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjc0NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzQ1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUEwxMzciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQ1NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnBsYXRmb3JtIiB2ZXJzaW9uPSIxLCAwLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucGxhdGZvcm0uRXhlQ29udGV4dCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5wbGF0Zm9ybS5VdGlscyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuY2ZnIiB2ZXJzaW9uPSIxLCAwLCAyLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuY2ZnLlByb2dyYW0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2VuIiB0eXBlPSJ4ZGMuY2ZnLlByb2dyYW0uR2VuZXJhdGlvbk9wdGlvbnMiIHZhbHVlPSIlN0JkZWJ1Z2dlckZpbGVzJTNBJTIwdW5kZWZpbmVkJTdEIj48c3RydWN0IGlkPSJ4ZGMuY2ZnLlByb2dyYW0vZ2VuIj4NCisgIDxmaWVsZCBuYW1lPSJkZWJ1Z2dlckZpbGVzIj51bmRlZmluZWQ8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2xvYmFsU2VjdGlvbiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3lzU3RhY2siIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN0YWNrIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJoZWFwIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJhcmdTaXplIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI1MTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4ZWNDbWQiIHR5cGU9InN0cmluZyIgdmFsdWU9IkUlM0EvcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9XaW5kb3dzL2tlbHZpbiUyMC1xdWlldCUyMC1tZW1faWdub3JlJTIwRCUzQSU1Q3dvcmslNUN0dXRvcmlhbCU1Q2hlbGxvLXByb2clNUNjZmdzaXRlJTVDcHJvZy54NjRQIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsaW5rVGVtcGxhdGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1haW4iIHR5cGU9InVuZGVmaW5lZCIgdmFsdWU9InVuZGVmaW5lZCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2VjdE1hcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN5c3RlbSIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJwcm9nLng2NFAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1aWxkUGFja2FnZSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iY2Znc2l0ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZW5kaWFuIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJsaXR0bGUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvZGVNb2RlbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGF0YU1vZGVsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJidWlsZCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCb2JqZWN0JTIwT2JqZWN0JTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjcHUiIHR5cGU9InhkYy5wbGF0Zm9ybS5JRXhlQ29udGV4dC5JbnN0YW5jZSIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGNhdGFsb2dOYW1lJTNBJTIwdGkuY2F0YWxvZy5jNjAwMCUyQyUyMGRldmljZU5hbWUlM0ElMjBUTVMzMjBDVENJNjQ4MiUyQyUyMHJldmlzaW9uJTNBJTIwJTJDJTIwY2xvY2tSYXRlJTNBJTIwMHgzZTglMkMlMjBib2FyZCUzQSUyMCU3QmlkJTNBJTIwMCUyQyUyMGJvYXJkTmFtZSUzQSUyMHNpbTY0UHh4JTJDJTIwYm9hcmRGYW1pbHklM0ElMjBzaW02NFB4eCUyQyUyMGJvYXJkUmV2aXNpb24lM0ElMjBudWxsJTdEJTJDJTIwYXR0cnMlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakA0OWNmOWYlM0ElM0ElMjh4ZGMucGxhdGZvcm0uSUNwdURhdGFTaGVldC5JbnN0YW5jZSUyOXRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODIuSW5zdGFuY2UlMjMwJTJDJTIwbWVtb3J5TWFwJTNBJTIwJTVCJTBBJTVCJTI3SVJBTSUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjBJbnRlcm5hbCUyMDJNQiUyMFVNQVAwJTIwbWVtb3J5JTJDJTIwbmFtZSUzQSUyMElSQU0lMkMlMjBzcGFjZSUzQSUyMGNvZGUvZGF0YSUyQyUyMHBhZ2UlM0ElMjB1bmRlZmluZWQlMkMlMjBiYXNlJTNBJTIwMHg4MDAwMDAlMkMlMjBsZW4lM0ElMjAweDIwMDAwMCUyQyUyMGFjY2VzcyUzQSUyMFJXWCU3RCU1RCUyQyUwQSU1QiUyN0REUiUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjB1bmRlZmluZWQlMkMlMjBuYW1lJTNBJTIwRERSJTJDJTIwc3BhY2UlM0ElMjB1bmRlZmluZWQlMkMlMjBwYWdlJTNBJTIwdW5kZWZpbmVkJTJDJTIwYmFzZSUzQSUyMDB4ODAwMDAwMDAlMkMlMjBsZW4lM0ElMjAweDEwMDAwMDAwJTJDJTIwYWNjZXNzJTNBJTIwdW5kZWZpbmVkJTdEJTVEJTBBJTVEJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwbGF0Zm9ybU5hbWUiIHR5cGU9InN0cmluZyIgdmFsdWU9InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icGxhdGZvcm0iIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uSW5zdGFuY2UiIHZhbHVlPSIlN0JleHRlcm5hbE1lbW9yeU1hcCUzQSUyMCU1QiUwQSU1QiUyN0REUiUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjB1bmRlZmluZWQlMkMlMjBuYW1lJTNBJTIwRERSJTJDJTIwc3BhY2UlM0ElMjB1bmRlZmluZWQlMkMlMjBwYWdlJTNBJTIwdW5kZWZpbmVkJTJDJTIwYmFzZSUzQSUyMDB4ODAwMDAwMDAlMkMlMjBsZW4lM0ElMjAweDEwMDAwMDAwJTJDJTIwYWNjZXNzJTNBJTIwdW5kZWZpbmVkJTdEJTVEJTBBJTVEJTJDJTIwY3VzdG9tTWVtb3J5TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcmVuYW1lTWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwZGF0YU1lbW9yeSUzQSUyMEREUiUyQyUyMGNvZGVNZW1vcnklM0ElMjBJUkFNJTJDJTIwc3RhY2tNZW1vcnklM0ElMjBERFIlMkMlMjBzZWN0TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnbG9iYWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeW1ib2wiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MlMjclMkMlMjAweDElNUQlMkMlMEElNUIlMjd4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyUyNyUyQyUyMDB4MSU1RCUwQSU1RCI+PG1hcCBpZD0ieGRjLmNmZy5Qcm9ncmFtL3N5bWJvbCIgbGVuZ3RoPSIyIj4NCisgIDxlbnRyeSBrZXk9InhkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MiPjB4MTwvZW50cnk+DQorICA8ZW50cnkga2V5PSJ4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyI+MHgxPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpeGVkQ29kZUFkZHIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpeGVkRGF0YUFkZHIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxvYWRGaXhlZERhdGFBZGRyIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxvYWRSb20iIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuY2ZnLk1haW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0idGkucGxhdGZvcm1zLnNpbTY0UHh4IiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHguUGxhdGZvcm0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQk9BUkQiIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uQm9hcmQiIHZhbHVlPSIlN0JpZCUzQSUyMDAlMkMlMjBib2FyZE5hbWUlM0ElMjBzaW02NFB4eCUyQyUyMGJvYXJkRmFtaWx5JTNBJTIwc2ltNjRQeHglMkMlMjBib2FyZFJldmlzaW9uJTNBJTIwbnVsbCU3RCI+PHN0cnVjdCBpZD0idGkucGxhdGZvcm1zLnNpbTY0UHh4LlBsYXRmb3JtL0JPQVJEIj4NCisgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmROYW1lIj5zaW02NFB4eDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmRGYW1pbHkiPnNpbTY0UHh4PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZFJldmlzaW9uIj5udWxsPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkNQVSIgdHlwZT0ieGRjLnBsYXRmb3JtLklFeGVDb250ZXh0LkNwdSIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGNhdGFsb2dOYW1lJTNBJTIwdGkuY2F0YWxvZy5jNjAwMCUyQyUyMGRldmljZU5hbWUlM0ElMjBUTVMzMjBDVENJNjQ4MiUyQyUyMHJldmlzaW9uJTNBJTIwJTJDJTIwY2xvY2tSYXRlJTNBJTIwMHgzZTglN0QiPjxzdHJ1Y3QgaWQ9InRpLnBsYXRmb3Jtcy5zaW02NFB4eC5QbGF0Zm9ybS9DUFUiPg0KKyAgPGZpZWxkIG5hbWU9ImlkIj4wPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjYXRhbG9nTmFtZSI+dGkuY2F0YWxvZy5jNjAwMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGV2aWNlTmFtZSI+VE1TMzIwQ1RDSTY0ODI8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJldmlzaW9uIi8+DQorICA8ZmllbGQgbmFtZT0iY2xvY2tSYXRlIj4weDNlODwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucnVudGltZSIgdmVyc2lvbj0iMiwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9hc3NlcnRGYWlsZWQiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBhc3NlcnRpb24lMjBmYWlsdXJlJTI1cyUyNXMlMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzAiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+YXNzZXJ0aW9uIGZhaWx1cmUlcyVzPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Db3JlIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2luaXRpYWxpemVkUGFyYW1zIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwQV9pbml0aWFsaXplZFBhcmFtcyUzQSUyMHVuaW5pdGlhbGl6ZWQlMjBQYXJhbXMlMjBzdHJ1Y3QlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+QV9pbml0aWFsaXplZFBhcmFtczogdW5pbml0aWFsaXplZCBQYXJhbXMgc3RydWN0PC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5EZWZhdWx0cy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5EaWFncyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkRpYWdzL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzczIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFTlRSWSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRVhJVCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTElGRUNZQ0xFIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJJTlRFUk5BTCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQVNTRVJUIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjEiIHR5cGU9Im51bWJlciIgdmFsdWU9IjI1NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjMiIHR5cGU9Im51bWJlciIgdmFsdWU9IjEwMjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI0IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyMDQ4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjYiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgxOTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI3IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNjM4NCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjgiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzY4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBTEwiIHR5cGU9Im51bWJlciIgdmFsdWU9IjY1NTM1Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZXRNYXNrRW5hYmxlZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkaWN0QmFzZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5FcnJvciIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJOVU1BUkdTIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX2dlbmVyaWMiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBnZW5lcmljJTIwZXJyb3IlM0ElMjAlMjVzJTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxIj4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPmdlbmVyaWMgZXJyb3I6ICVzPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9tZW1vcnkiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBvdXQlMjBvZiUyMG1lbW9yeSUzQSUyMGhlYXAlM0QweCUyNXglMkMlMjBzaXplJTNEJTI1dSUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5vdXQgb2YgbWVtb3J5OiBoZWFwPTB4JXgsIHNpemU9JXU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwb2xpY3kiIHR5cGU9Im9iamVjdCIgdmFsdWU9InhkYy5ydW50aW1lLkVycm9yLlVOV0lORCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icmFpc2VIb29rIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4RGVwdGgiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkdhdGUiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuR2F0ZU51bGwiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5HYXRlTnVsbC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9CTE9DS0lORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9QUkVFTVBUSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5VTUFSR1MiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlBSSU5URklEIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2NvbnN0cnVjdCIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAlM0MtLSUyMGNvbnN0cnVjdCUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2NyZWF0ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAlM0MtLSUyMGNyZWF0ZSUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2Rlc3RydWN0IiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMC0tJTNFJTIwZGVzdHJ1Y3QlM0ElMjAlMjglMjVwJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4NDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj4tLT4gZGVzdHJ1Y3Q6ICglcCk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9kZWxldGUiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwLS0lM0UlMjBkZWxldGUlM0ElMjAlMjglMjVwJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4NDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj4tLT4gZGVsZXRlOiAoJXApPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImlkVG9JbmZvIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjclMjM0NjglMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9jb25zdHJ1Y3QlM0ElM0ElM0MtLSUyMGNvbnN0cnVjdCUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTVEJTJDJTBBJTVCJTI3JTIzNDkyJTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlJTNBJTNBJTNDLS0lMjBjcmVhdGUlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU1RCUyQyUwQSU1QiUyNyUyMzUxMyUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0JTNBJTNBLS0lM0UlMjBkZXN0cnVjdCUzQSUyMCUyOCUyNXAlMjklNUQlMkMlMEElNUIlMjclMjM1MzIlMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9kZWxldGUlM0ElM0EtLSUzRSUyMGRlbGV0ZSUzQSUyMCUyOCUyNXAlMjklNUQlMEElNUQiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nZ2VyQnVmIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZ2dlclN5cyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5NYWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfR2F0ZVByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDElMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBRX0JMT0NLSU5HJTNBJTIwMHgxJTJDJTIwUV9QUkVFTVBUSU5HJTNBJTIwMHgyJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxMzIwYTQxJTNBJTNBJTI4eGRjLnJ1bnRpbWUuSUdhdGVQcm92aWRlci5Nb2R1bGUlMjl4ZGMucnVudGltZS5HYXRlTnVsbCUyQyUyMGFic3RyYWN0SW5zdGFuY2VzJTI0JTNBJTIwZmFsc2UlN0QiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTWVtb3J5IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3OSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9CTE9DS0lORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGVmYXVsdEhlYXBJbnN0YW5jZSIgdHlwZT0ieGRjLnJ1bnRpbWUuSUhlYXAuSW5zdGFuY2UiIHZhbHVlPSIlN0IlN0QiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGVmYXVsdEhlYXBTaXplIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJIZWFwUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDIlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDM3ZDQ5MCUzQSUzQSUyOHhkYy5ydW50aW1lLklIZWFwLk1vZHVsZSUyOXhkYy5ydW50aW1lLkhlYXBTdGQlMkMlMjBhYnN0cmFjdEluc3RhbmNlcyUyNCUzQSUyMHRydWUlN0QiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuSGVhcE1pbiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5IZWFwU3RkIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX25vUlRTTWVtb3J5IiB0eXBlPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIiB2YWx1ZT0iJTdCbXNnJTNBJTIwVGhlJTIwUlRTJTIwaGVhcCUyMGlzJTIwdXNlZCUyMHVwLiUyMEV4YW1pbmUlMjBQcm9ncmFtLmhlYXAuJTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyM0Ij4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPlRoZSBSVFMgaGVhcCBpcyB1c2VkIHVwLiBFeGFtaW5lIFByb2dyYW0uaGVhcC48L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX3plcm9TaXplIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwSGVhcFN0ZF9jcmVhdGUlMjBjYW5ub3QlMjBoYXZlJTIwYSUyMHplcm8lMjBzaXplJTIwdmFsdWUlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZF9jcmVhdGUgY2Fubm90IGhhdmUgYSB6ZXJvIHNpemUgdmFsdWU8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9pbnZhbGlkVG90YWxGcmVlU2l6ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEhlYXBTdGQlMjBpbnN0YW5jZSUyMHRvdGFsRnJlZVNpemUlMjBpcyUyMGdyZWF0ZXIlMjB0aGFuJTIwc3RhcnRpbmclMjBzaXplJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMzIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkhlYXBTdGQgaW5zdGFuY2UgdG90YWxGcmVlU2l6ZSBpcyBncmVhdGVyIHRoYW4gc3RhcnRpbmcgc2l6ZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2ludmFsaWRBbGlnbm1lbnQiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBIZWFwU3RkX2FsbG9jJTIwLSUyMHJlcXVlc3RlZCUyMGFsaWdubWVudCUyMGlzJTIwZ3JlYXRlciUyMHRoYW4lMjBhbGxvd2VkJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM0Ij4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkhlYXBTdGRfYWxsb2MgLSByZXF1ZXN0ZWQgYWxpZ25tZW50IGlzIGdyZWF0ZXIgdGhhbiBhbGxvd2VkPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3RhcnR1cCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlN0YXJ0dXAvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRE9ORSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iLTEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5PVERPTkUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1heFBhc3NlcyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpcnN0RnhucyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Imxhc3RGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icmVzZXRGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN0YXJ0TW9kc0Z4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4ZWNJbXBsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNmeG5UYWIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSUyQyUyMCUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2Z4blJ0cyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCdHJ1ZSUyQyUyMHRydWUlNUQiPjx2ZWN0b3IgaWQ9InhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blJ0cyIgbGVuZ3RoPSIyIj4NCisgIDxlbGVtPnRydWU8L2VsZW0+DQorICA8ZWxlbT50cnVlPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXN0ZW0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TeXN0ZW0vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJTVEFUVVNfVU5LTk9XTiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNTE5NjYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfY2Fubm90Rml0SW50b0FyZyIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEFfY2Fubm90Rml0SW50b0FyZyUzQSUyMHNpemVvZiUyOEZsb2F0JTI5JTIwJTNFJTIwc2l6ZW9mJTI4QXJnJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1Ij4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkFfY2Fubm90Rml0SW50b0FyZzogc2l6ZW9mKEZsb2F0KSA+IHNpemVvZihBcmcpPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4dGVuZGVkRm9ybWF0cyIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTI1JTI0TCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iU3VwcG9ydFByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHgzJTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxMzFkZTliJTNBJTNBJTI4eGRjLnJ1bnRpbWUuSVN5c3RlbVN1cHBvcnQuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuU3lzTWluJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYXhBdGV4aXRIYW5kbGVycyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXh0ZW5kRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleGl0RnhucyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9HYXRlUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHg0JTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwUV9CTE9DS0lORyUzQSUyMDB4MSUyQyUyMFFfUFJFRU1QVElORyUzQSUyMDB4MiUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMTNjNTUwZiUzQSUzQSUyOHhkYy5ydW50aW1lLklHYXRlUHJvdmlkZXIuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkMlMjBhYnN0cmFjdEluc3RhbmNlcyUyNCUzQSUyMGZhbHNlJTdEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN5c1N0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXNNaW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgzIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZWaWV3SW5mbyIgdHlwZT0ieGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSIgdmFsdWU9IiU3QnZpZXdNYXAlM0ElMjAlNUIlMEElNUIlMjdNb2R1bGUlMjclMkMlMjAlN0J0eXBlJTNBJTIwTU9EVUxFJTJDJTIwdmlld0luaXRGeG4lM0ElMjB2aWV3SW5pdE1vZHVsZSUyQyUyMHN0cnVjdE5hbWUlM0ElMjBNb2R1bGVWaWV3JTdEJTVEJTJDJTBBJTVCJTI3T3V0cHV0QnVmZmVyJTI3JTJDJTIwJTdCdHlwZSUzQSUyME1PRFVMRV9EQVRBJTJDJTIwdmlld0luaXRGeG4lM0ElMjB2aWV3SW5pdE91dHB1dEJ1ZmZlciUyQyUyMHN0cnVjdE5hbWUlM0ElMjBCdWZmZXJFbnRyeVZpZXclN0QlNUQlMEElNUQlMkMlMjBzaG93UmF3VGFiJTNBJTIwdHJ1ZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVmU2l6ZSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTAyNCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZmx1c2hBdEV4aXQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZWN0aW9uTmFtZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ib3V0cHV0RnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJvdXRwdXRGdW5jIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRleHQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVVbmtub3duIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlN0J1bmtub3duLWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVFbXB0eSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCZW1wdHktaW5zdGFuY2UtbmFtZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZVN0YXRpYyIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCc3RhdGljLWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImlzTG9hZGVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2hhclRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCMHgwJTJDJTIwMHg0MSUyQyUyMDB4NWYlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4NTAlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHg3MyUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDUwJTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NjMlMkMlMjAweDc0JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NGQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg3NiUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4MjAlMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHg1ZiUyQyUyMDB4NjMlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDc2JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHgyMCUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDc2JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2MyUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDQ2JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDY1JTJDJTIwMHg1MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjclMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDVmJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjMlMkMlMjAweDIwJTJDJTIwMHgyZCUyQyUyMDB4MjAlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NzElMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg2NyUyQyUyMDB4NmUlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg3NyUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgwJTJDJTIwMHg0MSUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDQ2JTJDJTIwMHg2OSUyQyUyMDB4NzQlMkMlMjAweDQ5JTJDJTIwMHg2ZSUyQyUyMDB4NzQlMkMlMjAweDZmJTJDJTIwMHg0MSUyQyUyMDB4NzIlMkMlMjAweDY3JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2ZiUyQyUyMDB4NjYlMkMlMjAweDI4JTJDJTIwMHg0NiUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDI5JTJDJTIwMHgyMCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NmYlMkMlMjAweDY2JTJDJTIwMHgyOCUyQyUyMDB4NDElMkMlMjAweDcyJTJDJTIwMHg2NyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDYxJTJDJTIwMHg3MyUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg2NiUyQyUyMDB4NjElMkMlMjAweDY5JTJDJTIwMHg2YyUyQyUyMDB4NzUlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDY3JTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NjklMkMlMjAweDYzJTJDJTIwMHgyMCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NmYlMkMlMjAweDc1JTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDZmJTJDJTIwMHg2NiUyQyUyMDB4MjAlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4NmQlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4NzklMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDNkJTJDJTIwMHgzMCUyQyUyMDB4NzglMkMlMjAweDI1JTJDJTIwMHg3OCUyQyUyMDB4MmMlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4M2QlMkMlMjAweDI1JTJDJTIwMHg3NSUyQyUyMDB4MCUyQyUyMDB4NjYlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjUlMkMlMjAweDI4JTJDJTIwMHgyOSUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NzYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NzclMkMlMjAweDc0JTJDJTIwMHg2OCUyQyUyMDB4MmQlMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4NmMlMkMlMjAweDc5JTJDJTIwMHgyMCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDRkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDAlMkMlMjAweDU0JTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg1MiUyQyUyMDB4NTQlMkMlMjAweDUzJTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDc1JTJDJTIwMHg3MCUyQyUyMDB4MmUlMkMlMjAweDIwJTJDJTIwMHg0NSUyQyUyMDB4NzglMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDUwJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHgyZSUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHgzYyUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI4JTJDJTIwMHgyNyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDNjJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjglMkMlMjAweDI3JTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDI3JTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDY0JTJDJTIwMHg2NSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyOCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDY0JTJDJTIwMHg2NSUyQyUyMDB4NmMlMkMlMjAweDY1JTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjglMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDc4JTJDJTIwMHg2NCUyQyUyMDB4NjMlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDZlJTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDQxJTJDJTIwMHg3MyUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDAlMkMlMjAweDQzJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0NCUyQyUyMDB4NjUlMkMlMjAweDY2JTJDJTIwMHg2MSUyQyUyMDB4NzUlMkMlMjAweDZjJTJDJTIwMHg3NCUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDQ0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDY3JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NDUlMkMlMjAweDcyJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHgwJTJDJTIwMHg0NyUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDclMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDRlJTJDJTIwMHg3NSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHgwJTJDJTIwMHg0YyUyQyUyMDB4NmYlMkMlMjAweDY3JTJDJTIwMHgwJTJDJTIwMHg0ZCUyQyUyMDB4NjElMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MCUyQyUyMDB4NGQlMkMlMjAweDY1JTJDJTIwMHg2ZCUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHg3OSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4NzUlMkMlMjAweDcwJTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzklMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDZkJTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzklMkMlMjAweDczJTJDJTIwMHg0ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgwJTJDJTIwMHg1NCUyQyUyMDB4NjUlMkMlMjAweDc4JTJDJTIwMHg3NCUyQyUyMDB4MCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9jaGFyVGFiIiBsZW5ndGg9IjY2MSI+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc3PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NDk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDQ2PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgzZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4M2Q8L2VsZW0+DQorICA8ZWxlbT4weDMwPC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHgyYzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgzZDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDUyPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDQ1PC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDNjPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4M2M8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ3PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NGU8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDU0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibm9kZVRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTdCbGVmdCUzQSUyMDB4MCUyQyUyMHJpZ2h0JTNBJTIwMHgwJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4MjI1JTJDJTIwcmlnaHQlM0ElMjAweDIyYSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjMzJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyM2ElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDIzZiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjQ4JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNGUlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI1NCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjU5JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNjIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI2NiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjZiJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNzIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI3YSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjgyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyODklN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI5MCU3RCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiIiBsZW5ndGg9IjE3Ij4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MDwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDA8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MjI1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjJhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyMzM8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIzYTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjNmPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNDg8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI0ZTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjU0PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNTk8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2NjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2YjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3YTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4OTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI5MDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2hhckNudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNjYxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJub2RlQ250IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlzaXRSb3BlRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlzaXRSb3BlRnhuMiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UaW1lc3RhbXBOdWxsIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcFN0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UeXBlcyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0idGkudGFyZ2V0cy5ydHM2MDAwIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iY2Znc2l0ZSIgdmVyc2lvbj0iIiByZXBvc2l0b3J5PSJEOi93b3JrL3R1dG9yaWFsL2hlbGxvLXByb2cvIj4KKyAgICA8L3BhY2thZ2U+Cis8L2ltcG9ydHM+Cis8L2NvbmZpZ3VyYXRpb24+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhlNjQ0OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmRlcApAQCAtMCwwICsxLDExMSBAQAorIworIyBUaGUgZm9sbG93aW5nIGlzIGdlbmVyYXRlZCBieSB1dGlscy5nZW5EZXAgZm9yIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UAorIworcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgcGFja2FnZS9jZmcvcHJvZ194NjRQLmggcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbDpwYWNrYWdlLnhzIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcgRDovd29yay90dXRvcmlhbC9oZWxsby1wcm9nL3Byb2cuY2ZnIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JQW50YXJhLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lEYVZpbmNpLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lIaW1hbGF5YS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JT01BUDJ4M3gueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSU9NQVAzeHh4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjQyeC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzEyOEsueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8xTS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzI1NksueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF81MTJLLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngweC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzZ4MXgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENETTY0NjcueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENEUkE0NHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENEUng0MHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENUQ0k2NDg0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4Ni54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0OHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMERBOHh4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDIxLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDI4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDUyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDU0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0MzEueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQ3LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0OC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRjc2MTk5MC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDVE5FVFYyNjg1LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL2M2eC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9wbGF0Zm9ybXMvc2ltNjRQeHgvUGxhdGZvcm0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvTWFpbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vRXhlQ29udGV4dC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0lQbGF0Zm9ybS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL1V0aWxzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Nb2RlbC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Qcm9ncmFtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0YXRlUmVhZGVyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0cnVjdHVyZURlY29kZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBNaW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyQnVmLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJTeXMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RpbWVzdGFtcC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHMgCisKK0Q6L3dvcmsvdHV0b3JpYWwvaGVsbG8tcHJvZy9wcm9nLmNmZzoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaToKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lBbnRhcmEueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JRGFWaW5jaS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lIaW1hbGF5YS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lPTUFQMngzeC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lPTUFQM3h4eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjQyeC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMTI4Sy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMU0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzI1NksueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzUxMksueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzZ4MHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzZ4MXgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RNNjQ2Ny54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDRFJBNDR4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENEUng0MHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0ODQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0ODYueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0OHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwREE4eHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQyMS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDI4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0NTIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQ1NC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0MzEueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRE02NDcueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRE02NDgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRjc2MTk5MC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENUTkVUVjI2ODUueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9jNngueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9QbGF0Zm9ybS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvUHJvZ3JhbS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL29tMi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vRXhlQ29udGV4dC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vSVBsYXRmb3JtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9VdGlscy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L01vZGVsLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvUHJvZ3JhbS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0YXRlUmVhZGVyLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RydWN0dXJlRGVjb2Rlci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwTWluLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyQnVmLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlclN5cy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGltZXN0YW1wLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL1RyYWNlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90ZW1wbGF0ZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaToKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzOgorCisKK2RlZmluZSBFWEVDLnByb2cueDY0UAorCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1dpbmRvd3Mva2VsdmluIC1xdWlldCAtbWVtX2lnbm9yZSBEOlx3b3JrXHR1dG9yaWFsXGhlbGxvLXByb2dcY2Znc2l0ZVxwcm9nLng2NFAKK2VuZGVmCisKKyMKKyMgVGhlIGZvbGxvd2luZyBpcyBnZW5lcmF0ZWQgYnkgamF2YQorIworCitwcm9nLng2NFA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvbGliL3RpLnRhcmdldHMucnRzNjAwMC5hNjRQIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvbGliL2Jvb3QuYTY0UCAKKworcGFja2FnZS9jZmcvcHJvZ194NjRQLmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rY21kLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rY21kLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rVXRpbHMueHMgCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyBwYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsOiAuaW50ZXJmYWNlcyAKKworIworIyBydWxlLWxlc3MgZ29hbHMgZm9yIGZpbGVzIG91dHNpZGUgdGhpcyBwYWNrYWdlCisjICh0aGVzZSBnb2FscyBmb3JjZSBhIHJlLWJ1aWxkIGlmIHRoZXNlIGZpbGVzIGFyZQorIyBtb3ZlZCBvciBkZWxldGVkKQorIworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9saWIvdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFA6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9ydHM2MDAwL2xpYi9ib290LmE2NFA6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua2NtZC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rY21kLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL2xpbmtVdGlscy54czoKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYwZjEyOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgKQEAgLTAsMCArMSwxMyBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworZXh0ZXJuIGludCB4ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DOworCitleHRlcm4gaW50IHhkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DOworCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM4Njk3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLm1hawpAQCAtMCwwICsxLDQ1IEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisjICB0YXJnZXQgY29tcGF0aWJpbGl0eSBrZXkgPSB0aS50YXJnZXRzLkM2NFB7MSwwLDYuMSw1CisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAuZGVwCitlbmRpZgorCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvY2ZnIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDpDX0RJUj0KK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworcGFja2FnZS9jZmcvcHJvZ194NjRQLnM2NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5zNjRQOiBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAtbiAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tbyAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnIC1mcj0uL3BhY2thZ2UvY2ZnIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2NmZyAtcyBvNjRQICQ8IC1DICAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tbyAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnIC1mcj0uL3BhY2thZ2UvY2ZnCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvcHJvZ194NjRQLnM2NFA6Q19ESVI9CitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuczY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuczY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2NsZWFuLDY0UCA6OgorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UAorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuczY0UAorCitwcm9nLng2NFA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKKworY2xlYW46OgorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjIyMjlmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkMmU5MjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQLmRlcApAQCAtMCwwICsxLDQ5IEBACitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDogcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0NvcmUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbWl0cy5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGlvLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkYXJnLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkZGVmLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvc3RkLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19lcGlsb2d1ZS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX2VwaWxvZ3VlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fcHJvbG9ndWUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlX19lcGlsb2d1ZS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19wcm9sb2d1ZS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dfX2VwaWxvZ3VlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5LmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGlua2FnZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oIA0KK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Db3JlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4uaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9saW1pdHMuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpby5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5Lmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbmthZ2UuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5yb3YueHMgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5yb3YueHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc1NDg5MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJvdi54cwpAQCAtMCwwICsxLDQ2NDggQEAKK19fbyA9IG51bGwKK19fb2JqID0gWworICAgIHRoaXMsICAvLyAjMCAKKyAgICB7fSwgICAgLy8gIzEgCisgICAge30sICAgIC8vICMyIHhkYy5ydW50aW1lLkFzc2VydAorICAgIFtdLCAgICAvLyAjMyB4ZGMucnVudGltZS5Bc3NlcnQvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNCB4ZGMucnVudGltZS5FcnJvci5EZXNjIzAKKyAgICB7fSwgICAgLy8gIzUgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzYgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM3IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjOCB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM5IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxMCB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMiB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE0IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxNSB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxNiB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTcgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxOCB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxOSB4ZGMucnVudGltZS5Bc3NlcnQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyMCB4ZGMucnVudGltZS5Db3JlCisgICAgW10sICAgIC8vICMyMSB4ZGMucnVudGltZS5Db3JlLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzIyIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAKKyAgICB7fSwgICAgLy8gIzIzIHhkYy5ydW50aW1lLkNvcmUvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjQgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjUgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjYgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI3IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjggeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjkgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMzMCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMzMSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMzIgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMzMyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMzQgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMzNSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMzNiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMzcgeGRjLnJ1bnRpbWUuQ29yZS92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzM4IHhkYy5ydW50aW1lLkRlZmF1bHRzCisgICAgW10sICAgIC8vICMzOSB4ZGMucnVudGltZS5EZWZhdWx0cy8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM0MCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb21tb24kCisgICAgW10sICAgIC8vICM0MSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNDIgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzQzIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNDQgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjNDUgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzQ2IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzQ3IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICM0OCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzQ5IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzUwIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjNTEgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNTIgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzUzIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjNTQgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICM1NSB4ZGMucnVudGltZS5EaWFncworICAgIFtdLCAgICAvLyAjNTYgeGRjLnJ1bnRpbWUuRGlhZ3MvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNTcgeGRjLnJ1bnRpbWUuRGlhZ3MvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNTggeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzU5IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM2MCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzYxIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzYyIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM2MyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICM2NCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjUgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICM2NiB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICM2NyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzY4IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzY5IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICM3MCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzcxIHhkYy5ydW50aW1lLkRpYWdzL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNzIgeGRjLnJ1bnRpbWUuRXJyb3IKKyAgICBbXSwgICAgLy8gIzczIHhkYy5ydW50aW1lLkVycm9yLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzc0IHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMQorICAgIHt9LCAgICAvLyAjNzUgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMyCisgICAge30sICAgIC8vICM3NiB4ZGMucnVudGltZS5FcnJvci9jb21tb24kCisgICAgW10sICAgIC8vICM3NyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNzggeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzc5IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODAgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjODEgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzgyIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzgzIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICM4NCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzg1IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzg2IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjODcgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODggeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzg5IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjOTAgeGRjLnJ1bnRpbWUuRXJyb3Ivdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICM5MSB4ZGMucnVudGltZS5HYXRlCisgICAgW10sICAgIC8vICM5MiB4ZGMucnVudGltZS5HYXRlLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzkzIHhkYy5ydW50aW1lLkdhdGUvY29tbW9uJAorICAgIFtdLCAgICAvLyAjOTQgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjOTUgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjOTYgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzk3IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjOTggeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjOTkgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMDAgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTAxIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxMDIgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxMDMgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzEwNCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEwNSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxMDYgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzEwNyB4ZGMucnVudGltZS5HYXRlL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTA4IHhkYy5ydW50aW1lLkdhdGVOdWxsCisgICAgW10sICAgIC8vICMxMDkgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTEwIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzExMSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTEyIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxMTMgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxMTQgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTE1IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxMTYgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTE3IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMTggeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxMTkgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTIwIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTIxIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEyMiB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTIzIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTI0IHhkYy5ydW50aW1lLkdhdGVOdWxsL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTI1IHhkYy5ydW50aW1lLkxvZworICAgIFtdLCAgICAvLyAjMTI2IHhkYy5ydW50aW1lLkxvZy8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxMjcgeGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMwCisgICAge30sICAgIC8vICMxMjggeGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMxCisgICAge30sICAgIC8vICMxMjkgeGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMzCisgICAge30sICAgIC8vICMxMzAgeGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMyCisgICAge30sICAgIC8vICMxMzEgeGRjLnJ1bnRpbWUuTG9nL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzEzMiB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzEzMyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzEzNCB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxMzUgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzEzNiB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzNyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTM4IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTM5IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE0MCB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTQxIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE0MiB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTQzIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTQ0IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE0NSB4ZGMucnVudGltZS5Mb2cvaWRUb0luZm8KKyAgICBbXSwgICAgLy8gIzE0NiB4ZGMucnVudGltZS5Mb2cvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxNDcgeGRjLnJ1bnRpbWUuTWFpbgorICAgIFtdLCAgICAvLyAjMTQ4IHhkYy5ydW50aW1lLk1haW4vJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTQ5IHhkYy5ydW50aW1lLk1haW4vY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTUwIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE1MSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxNTIgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1MyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzE1NCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxNTUgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxNTYgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTU3IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxNTggeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxNTkgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE2MCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE2MSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxNjIgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE2MyB4ZGMucnVudGltZS5NYWluL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTY0IHhkYy5ydW50aW1lLk1lbW9yeQorICAgIFtdLCAgICAvLyAjMTY1IHhkYy5ydW50aW1lLk1lbW9yeS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNjYgeGRjLnJ1bnRpbWUuSGVhcFN0ZAorICAgIFtdLCAgICAvLyAjMTY3IHhkYy5ydW50aW1lLkhlYXBTdGQvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTY4IHhkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UjMAorICAgIHt9LCAgICAvLyAjMTY5IHhkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UjMC9pbnN0YW5jZQorICAgIHt9LCAgICAvLyAjMTcwIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQKKyAgICB7fSwgICAgLy8gIzE3MSB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMzCisgICAge30sICAgIC8vICMxNzIgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMgorICAgIHt9LCAgICAvLyAjMTczIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjNAorICAgIHt9LCAgICAvLyAjMTc0IHhkYy5ydW50aW1lLkhlYXBTdGQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTc1IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE3NiB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxNzcgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE3OCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzE3OSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxODAgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxODEgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTgyIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxODMgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxODQgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE4NSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4NiB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxODcgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE4OCB4ZGMucnVudGltZS5IZWFwU3RkL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTg5IHhkYy5ydW50aW1lLk1lbW9yeS9jb21tb24kCisgICAgW10sICAgIC8vICMxOTAgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxOTEgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxOTIgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTkzIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxOTQgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxOTUgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE5NiB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5NyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxOTggeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5OSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyMDAgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIwMSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzIwMiB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyMDMgeGRjLnJ1bnRpbWUuTWVtb3J5L3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjA0IHhkYy5ydW50aW1lLlN0YXJ0dXAKKyAgICBbXSwgICAgLy8gIzIwNSB4ZGMucnVudGltZS5TdGFydHVwLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzIwNiB4ZGMucnVudGltZS5TdGFydHVwL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzIwNyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyMDggeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjA5IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyMTAgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyMTEgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjEyIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjEzIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxNCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjE1IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjE2IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyMTcgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyMTggeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjE5IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyMjAgeGRjLnJ1bnRpbWUuU3RhcnR1cC9maXJzdEZ4bnMKKyAgICBbXSwgICAgLy8gIzIyMSB4ZGMucnVudGltZS5TdGFydHVwL2xhc3RGeG5zCisgICAgW10sICAgIC8vICMyMjIgeGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuUnRzCisgICAgW10sICAgIC8vICMyMjMgeGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuVGFiCisgICAgW10sICAgIC8vICMyMjQgeGRjLnJ1bnRpbWUuU3RhcnR1cC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIyNSB4ZGMucnVudGltZS5TeXN0ZW0KKyAgICBbXSwgICAgLy8gIzIyNiB4ZGMucnVudGltZS5TeXN0ZW0vJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjI3IHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzUKKyAgICB7fSwgICAgLy8gIzIyOCB4ZGMucnVudGltZS5TeXNNaW4KKyAgICBbXSwgICAgLy8gIzIyOSB4ZGMucnVudGltZS5TeXNNaW4vJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjMwIHhkYy5ydW50aW1lLlN5c01pbi9jb21tb24kCisgICAgW10sICAgIC8vICMyMzEgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyMzIgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyMzMgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjM0IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyMzUgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyMzYgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzIzNyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIzOCB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyMzkgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI0MCB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyNDEgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI0MiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzI0MyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAge30sICAgIC8vICMyNDQgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxCisgICAge30sICAgIC8vICMyNDUgeGRjLnJvdi5WaWV3SW5mbworICAgIFtdLCAgICAvLyAjMjQ2IHhkYy5yb3YuVmlld0luZm8vJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjQ3IHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMAorICAgIFtdLCAgICAvLyAjMjQ4IHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMC92aWV3TWFwCisgICAge30sICAgIC8vICMyNDkgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ0Jhc2ljJworICAgIHt9LCAgICAvLyAjMjUwIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMC92aWV3TWFwLydSZWNvcmRzJworICAgIFtdLCAgICAvLyAjMjUxIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwCisgICAge30sICAgIC8vICMyNTIgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ01vZHVsZScKKyAgICB7fSwgICAgLy8gIzI1MyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nT3V0cHV0QnVmZmVyJworICAgIFtdLCAgICAvLyAjMjU0IHhkYy5ydW50aW1lLlN5c01pbi92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI1NSB4ZGMucnVudGltZS5TeXN0ZW0vY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjU2IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjU3IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjU4IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI1OSB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjYwIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjYxIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyNjIgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMyNjMgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjY0IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyNjUgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjY2IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyNjcgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyNjggeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMjY5IHhkYy5ydW50aW1lLlN5c3RlbS9leGl0RnhucworICAgIFtdLCAgICAvLyAjMjcwIHhkYy5ydW50aW1lLlN5c3RlbS92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI3MSB4ZGMucnVudGltZS5UZXh0CisgICAgW10sICAgIC8vICMyNzIgeGRjLnJ1bnRpbWUuVGV4dC8kaW5zdGFuY2VzCisgICAgW10sICAgIC8vICMyNzMgeGRjLnJ1bnRpbWUuVGV4dC9jaGFyVGFiCisgICAge30sICAgIC8vICMyNzQgeGRjLnJ1bnRpbWUuVGV4dC9jb21tb24kCisgICAgW10sICAgIC8vICMyNzUgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjc2IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzI3NyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjc4IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjc5IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4MCB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzI4MSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMyODIgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzI4MyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4NCB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjg1IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjg2IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzI4NyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMjg4IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYgorICAgIHt9LCAgICAvLyAjMjg5IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8wCisgICAge30sICAgIC8vICMyOTAgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEKKyAgICB7fSwgICAgLy8gIzI5MSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMgorICAgIHt9LCAgICAvLyAjMjkyIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8zCisgICAge30sICAgIC8vICMyOTMgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzQKKyAgICB7fSwgICAgLy8gIzI5NCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNQorICAgIHt9LCAgICAvLyAjMjk1IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi82CisgICAge30sICAgIC8vICMyOTYgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzcKKyAgICB7fSwgICAgLy8gIzI5NyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOAorICAgIHt9LCAgICAvLyAjMjk4IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi85CisgICAge30sICAgIC8vICMyOTkgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEwCisgICAge30sICAgIC8vICMzMDAgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzExCisgICAge30sICAgIC8vICMzMDEgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEyCisgICAge30sICAgIC8vICMzMDIgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEzCisgICAge30sICAgIC8vICMzMDMgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE0CisgICAge30sICAgIC8vICMzMDQgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE1CisgICAge30sICAgIC8vICMzMDUgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE2CisgICAgW10sICAgIC8vICMzMDYgeGRjLnJ1bnRpbWUuVGV4dC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzMwNyAKKyAgICB7fSwgICAgLy8gIzMwOCAKKyAgICB7fSwgICAgLy8gIzMwOSAKKyAgICB7fSwgICAgLy8gIzMxMCAKKyAgICB7fSwgICAgLy8gIzMxMSAKKyAgICB7fSwgICAgLy8gIzMxMiB0aS50YXJnZXRzLkM2NFAKKyAgICB7fSwgICAgLy8gIzMxMyB0aS50YXJnZXRzLkM2NFAvYXIKKyAgICB7fSwgICAgLy8gIzMxNCB0aS50YXJnZXRzLkM2NFAvYXJPcHRzCisgICAge30sICAgIC8vICMzMTUgdGkudGFyZ2V0cy5DNjRQL2FzbQorICAgIHt9LCAgICAvLyAjMzE2IHRpLnRhcmdldHMuQzY0UC9hc21PcHRzCisgICAge30sICAgIC8vICMzMTcgdGkudGFyZ2V0cy5DNjIKKyAgICB7fSwgICAgLy8gIzMxOCB0aS50YXJnZXRzLkM2Mi9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICB7fSwgICAgLy8gIzMxOSB0aS50YXJnZXRzLkM2Mi9kZWJ1Z0dlbgorICAgIHt9LCAgICAvLyAjMzIwIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMKKyAgICB7fSwgICAgLy8gIzMyMSB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuQycKKyAgICB7fSwgICAgLy8gIzMyMiB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYXNtJworICAgIHt9LCAgICAvLyAjMzIzIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jJworICAgIHt9LCAgICAvLyAjMzI0IHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jYycKKyAgICB7fSwgICAgLy8gIzMyNSB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3BwJworICAgIHt9LCAgICAvLyAjMzI2IHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jeHgnCisgICAge30sICAgIC8vICMzMjcgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICB7fSwgICAgLy8gIzMyOCB0aS50YXJnZXRzLkM2Mi9tb2RlbAorICAgIHt9LCAgICAvLyAjMzI5IHRpLnRhcmdldHMuQzYyL3BsYXRmb3JtcworICAgIHt9LCAgICAvLyAjMzMwIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzCisgICAge30sICAgIC8vICMzMzEgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIHt9LCAgICAvLyAjMzMyIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzMzMyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzMzNCB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnCisgICAge30sICAgIC8vICMzMzUgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzM2IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzM3IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJworICAgIHt9LCAgICAvLyAjMzM4IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzM5IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNDAgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAge30sICAgIC8vICMzNDEgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzNDIgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM0MyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScKKyAgICB7fSwgICAgLy8gIzM0NCB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM0NSB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzQ2IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJworICAgIHt9LCAgICAvLyAjMzQ3IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzQ4IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNDkgdGkudGFyZ2V0cy5DNjIvc2VjdE1hcAorICAgIHt9LCAgICAvLyAjMzUwIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzCisgICAge30sICAgIC8vICMzNTEgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9DaGFyCisgICAge30sICAgIC8vICMzNTIgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICB7fSwgICAgLy8gIzM1MyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0Zsb2F0CisgICAge30sICAgIC8vICMzNTQgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GeG4KKyAgICB7fSwgICAgLy8gIzM1NSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0lBcmcKKyAgICB7fSwgICAgLy8gIzM1NiB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludAorICAgIHt9LCAgICAvLyAjMzU3IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MTYKKyAgICB7fSwgICAgLy8gIzM1OCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDMyCisgICAge30sICAgIC8vICMzNTkgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ0MAorICAgIHt9LCAgICAvLyAjMzYwIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NjQKKyAgICB7fSwgICAgLy8gIzM2MSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDgKKyAgICB7fSwgICAgLy8gIzM2MiB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xEb3VibGUKKyAgICB7fSwgICAgLy8gIzM2MyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xMb25nCisgICAge30sICAgIC8vICMzNjQgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Mb25nCisgICAge30sICAgIC8vICMzNjUgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9QdHIKKyAgICB7fSwgICAgLy8gIzM2NiB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1Nob3J0CisgICAge30sICAgIC8vICMzNjcgdGkudGFyZ2V0cy5DNjIvdmVyc2lvbk1hcAorICAgIHt9LCAgICAvLyAjMzY4IHRpLnRhcmdldHMuQzY0UC9jYworICAgIHt9LCAgICAvLyAjMzY5IHRpLnRhcmdldHMuQzY0UC9jY0NvbmZpZ09wdHMKKyAgICB7fSwgICAgLy8gIzM3MCB0aS50YXJnZXRzLkM2NFAvY2NPcHRzCisgICAge30sICAgIC8vICMzNzEgdGkudGFyZ2V0cy5DNjRQL2NvbXBhdGlibGVTdWZmaXhlcworICAgIHt9LCAgICAvLyAjMzcyIHRpLnRhcmdldHMuQzY0UC9kZWJ1Z0dlbgorICAgIHt9LCAgICAvLyAjMzczIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zCisgICAge30sICAgIC8vICMzNzQgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5DJworICAgIHt9LCAgICAvLyAjMzc1IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYXNtJworICAgIHt9LCAgICAvLyAjMzc2IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYycKKyAgICB7fSwgICAgLy8gIzM3NyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNjJworICAgIHt9LCAgICAvLyAjMzc4IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3BwJworICAgIHt9LCAgICAvLyAjMzc5IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3h4JworICAgIHt9LCAgICAvLyAjMzgwIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczYyJworICAgIHt9LCAgICAvLyAjMzgxIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0JworICAgIHt9LCAgICAvLyAjMzgyIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0UCcKKyAgICB7fSwgICAgLy8gIzM4MyB0aS50YXJnZXRzLkM2NFAvbG5rCisgICAge30sICAgIC8vICMzODQgdGkudGFyZ2V0cy5DNjRQL2xua09wdHMKKyAgICB7fSwgICAgLy8gIzM4NSB0aS50YXJnZXRzLkM2NFAvbW9kZWwKKyAgICB7fSwgICAgLy8gIzM4NiB0aS50YXJnZXRzLkM2NFAvcGxhdGZvcm1zCisgICAge30sICAgIC8vICMzODcgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzCisgICAge30sICAgIC8vICMzODggdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScKKyAgICB7fSwgICAgLy8gIzM4OSB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzkwIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM5MSB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJworICAgIHt9LCAgICAvLyAjMzkyIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzOTMgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzk0IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScKKyAgICB7fSwgICAgLy8gIzM5NSB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzOTYgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzOTcgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIHt9LCAgICAvLyAjMzk4IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM5OSB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzQwMCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nCisgICAge30sICAgIC8vICM0MDEgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjNDAyIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycworICAgIHt9LCAgICAvLyAjNDAzIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycKKyAgICB7fSwgICAgLy8gIzQwNCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICM0MDUgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzCisgICAge30sICAgIC8vICM0MDYgdGkudGFyZ2V0cy5DNjRQL3NlY3RNYXAKKyAgICB7fSwgICAgLy8gIzQwNyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMKKyAgICB7fSwgICAgLy8gIzQwOCB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9DaGFyCisgICAge30sICAgIC8vICM0MDkgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRG91YmxlCisgICAge30sICAgIC8vICM0MTAgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRmxvYXQKKyAgICB7fSwgICAgLy8gIzQxMSB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GeG4KKyAgICB7fSwgICAgLy8gIzQxMiB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JQXJnCisgICAge30sICAgIC8vICM0MTMgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50CisgICAge30sICAgIC8vICM0MTQgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MTYKKyAgICB7fSwgICAgLy8gIzQxNSB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQzMgorICAgIHt9LCAgICAvLyAjNDE2IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDQwCisgICAge30sICAgIC8vICM0MTcgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NjQKKyAgICB7fSwgICAgLy8gIzQxOCB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ4CisgICAge30sICAgIC8vICM0MTkgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTERvdWJsZQorICAgIHt9LCAgICAvLyAjNDIwIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xMb25nCisgICAge30sICAgIC8vICM0MjEgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTG9uZworICAgIHt9LCAgICAvLyAjNDIyIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1B0cgorICAgIHt9LCAgICAvLyAjNDIzIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1Nob3J0CisgICAge30sICAgIC8vICM0MjQgdGkudGFyZ2V0cy5DNjRQL3ZlcnMKKyAgICB7fSwgICAgLy8gIzQyNSB0aS50YXJnZXRzLkM2NFAvdmVyc2lvbk1hcAorICAgIHt9LCAgICAvLyAjNDI2IAorXQorCitfX28gPSBfX29ialswXSAgCisgICAgX19vWyckbW9kdWxlcyddID0gX19vYmpbMS4wXQorICAgIF9fb1snYnVpbGQnXSA9IF9fb2JqWzMwNy4wXQorCitfX28gPSBfX29ialsxXSAgCisgICAgX19vWycjMzI3NzAnXSA9IF9fb2JqWzIuMF0KKyAgICBfX29bJyMzMjc3MSddID0gX19vYmpbMjAuMF0KKyAgICBfX29bJyMzMjc3MiddID0gX19vYmpbMzguMF0KKyAgICBfX29bJyMzMjc3MyddID0gX19vYmpbNTUuMF0KKyAgICBfX29bJyMzMjc3NCddID0gX19vYmpbNzIuMF0KKyAgICBfX29bJyMzMjc3NSddID0gX19vYmpbOTEuMF0KKyAgICBfX29bJyMzMjc3NiddID0gX19vYmpbMTA4LjBdCisgICAgX19vWycjMzI3NzcnXSA9IF9fb2JqWzEyNS4wXQorICAgIF9fb1snIzMyNzc4J10gPSBfX29ialsxNDcuMF0KKyAgICBfX29bJyMzMjc3OSddID0gX19vYmpbMTY0LjBdCisgICAgX19vWycjMzI3ODAnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snIzMyNzgxJ10gPSBfX29ialsyMDQuMF0KKyAgICBfX29bJyMzMjc4MiddID0gX19vYmpbMjI1LjBdCisgICAgX19vWycjMzI3ODMnXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1snIzMyNzg0J10gPSBfX29ialsyNzEuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkFzc2VydCddID0gX19vYmpbMi4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuQ29yZSddID0gX19vYmpbMjAuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkRlZmF1bHRzJ10gPSBfX29ialszOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuRGlhZ3MnXSA9IF9fb2JqWzU1LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5FcnJvciddID0gX19vYmpbNzIuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkdhdGUnXSA9IF9fb2JqWzkxLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5HYXRlTnVsbCddID0gX19vYmpbMTA4LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5IZWFwU3RkJ10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkxvZyddID0gX19vYmpbMTI1LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5NYWluJ10gPSBfX29ialsxNDcuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLk1lbW9yeSddID0gX19vYmpbMTY0LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TdGFydHVwJ10gPSBfX29ialsyMDQuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlN5c01pbiddID0gX19vYmpbMjI4LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TeXN0ZW0nXSA9IF9fb2JqWzIyNS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuVGV4dCddID0gX19vYmpbMjcxLjBdCisKK19fbyA9IF9fb2JqWzJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzMuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCcsICdVVEYtOCcpKQorICAgIF9fb1snRV9hc3NlcnRGYWlsZWQnXSA9IF9fb2JqWzQuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzcwCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzUuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials2LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxOS4wXQorCitfX28gPSBfX29ialszXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2Fzc2VydGlvbitmYWlsdXJlJTI1cyUyNXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTZdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTddICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjBdICAvLyB4ZGMucnVudGltZS5Db3JlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZScsICdVVEYtOCcpKQorICAgIF9fb1snQV9pbml0aWFsaXplZFBhcmFtcyddID0gX19vYmpbMjIuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyMy4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzI0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszNy4wXQorCitfX28gPSBfX29ialsyMV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBX2luaXRpYWxpemVkUGFyYW1zJTNBK3VuaW5pdGlhbGl6ZWQrUGFyYW1zK3N0cnVjdCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyM10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzI3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialszMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzMzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialszNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjVdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNl0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjldICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzBdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzFdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzJdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszM10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNl0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzM5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials0MC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzQxLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ials1NC4wXQorCitfX28gPSBfX29ialszOV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNDFdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbNDQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzQ2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzQ4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbNTAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzUyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDJdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ1XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0Nl0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ3XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDhdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials0OS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0OV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTBdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials1MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1MV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTJdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTNdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU0XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTVdICAvLyB4ZGMucnVudGltZS5EaWFncworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbNTYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJywgJ1VURi04JykpCisgICAgX19vWydBTEwnXSA9IDY1NTM1CisgICAgX19vWydBU1NFUlQnXSA9IDE2CisgICAgX19vWydFTlRSWSddID0gMQorICAgIF9fb1snRVhJVCddID0gMgorICAgIF9fb1snSU5URVJOQUwnXSA9IDgKKyAgICBfX29bJ0xJRkVDWUNMRSddID0gNAorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydVU0VSMSddID0gMjU2CisgICAgX19vWydVU0VSMiddID0gNTEyCisgICAgX19vWydVU0VSMyddID0gMTAyNAorICAgIF9fb1snVVNFUjQnXSA9IDIwNDgKKyAgICBfX29bJ1VTRVI1J10gPSA0MDk2CisgICAgX19vWydVU0VSNiddID0gODE5MgorICAgIF9fb1snVVNFUjcnXSA9IDE2Mzg0CisgICAgX19vWydVU0VSOCddID0gMzI3NjgKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzU3LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNTguMF0KKyAgICBfX29bJ2RpY3RCYXNlJ10gPSBudWxsCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1snc2V0TWFza0VuYWJsZWQnXSA9IGZhbHNlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzcxLjBdCisKK19fbyA9IF9fb2JqWzU2XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTddICAvLyB4ZGMucnVudGltZS5EaWFncy9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials1OF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbNTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials2MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbNjMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbNjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ials2Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbNjkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1OV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjBdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYxXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjJdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYzXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjRdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2NV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzY2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY2XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2N10gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzY4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY4XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2OV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials3MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3MF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzFdICAvLyB4ZGMucnVudGltZS5EaWFncy92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3Ml0gIC8vIHhkYy5ydW50aW1lLkVycm9yCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ials3My4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3InLCAnVVRGLTgnKSkKKyAgICBfX29bJ0VfZ2VuZXJpYyddID0gX19vYmpbNzQuMF0KKyAgICBfX29bJ0VfbWVtb3J5J10gPSBfX29ials3NS4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydOVU1BUkdTJ10gPSAyCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials3Ni4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzc3LjBdCisgICAgX19vWydtYXhEZXB0aCddID0gMTYKKyAgICBfX29bJ3BvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5VTldJTkQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JhaXNlSG9vayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRScsICdVVEYtOCcpKQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbOTAuMF0KKworX19vID0gX19vYmpbNzNdICAvLyB4ZGMucnVudGltZS5FcnJvci8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3NF0gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnZW5lcmljK2Vycm9yJTNBKyUyNXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzVdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjMyJywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnb3V0K29mK21lbW9yeSUzQStoZWFwJTNEMHglMjV4JTJDK3NpemUlM0QlMjV1JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc2XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNzddICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzg4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzhdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc5XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4MF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzgxXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4Ml0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzgzXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODRdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4NV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODZdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4N10gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODhdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODldICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzkwXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3Ivdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTFdICAvLyB4ZGMucnVudGltZS5HYXRlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ials5Mi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc1CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzkzLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbOTQuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzEwNy4wXQorCitfX28gPSBfX29ials5Ml0gIC8vIHhkYy5ydW50aW1lLkdhdGUvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5M10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials5NF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials5NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzk3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials5OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxMDMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzEwNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTVdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzk2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5Nl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk3XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbOTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk4XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTldICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwMF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDFdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTAyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwMl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwM10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA1XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA2XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA3XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwOF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxMDkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc2CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1FfQkxPQ0tJTkcnXSA9IDEKKyAgICBfX29bJ1FfUFJFRU1QVElORyddID0gMgorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTEwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTExLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxMjQuMF0KKworX19vID0gX19vYmpbMTA5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTEwXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTExXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxMTIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxMTQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzExNi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMTguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxMjAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzEyMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExMl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExM10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE2XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExN10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExOF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzExOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTldICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyMF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEyMS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjFdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyMl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMjMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIzXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjRdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjVdICAvLyB4ZGMucnVudGltZS5Mb2cKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzEyNi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJywgJ1VURi04JykpCisgICAgX19vWydMX2NvbnN0cnVjdCddID0gX19vYmpbMTI3LjBdCisgICAgX19vWydMX2NyZWF0ZSddID0gX19vYmpbMTI4LjBdCisgICAgX19vWydMX2RlbGV0ZSddID0gX19vYmpbMTI5LjBdCisgICAgX19vWydMX2Rlc3RydWN0J10gPSBfX29ialsxMzAuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc3CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ05VTUFSR1MnXSA9IDgKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1BSSU5URklEJ10gPSAwCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxMzEuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxMzIuMF0KKyAgICBfX29bJ2lkVG9JbmZvJ10gPSBfX29ialsxNDUuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzE0Ni4wXQorCitfX28gPSBfX29ialsxMjZdICAvLyB4ZGMucnVudGltZS5Mb2cvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyN10gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclM0MtLStjb25zdHJ1Y3QlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI4XSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMxCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMScsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUzQy0tK2NyZWF0ZSUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjldICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMzJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMwXSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMxXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxMzJdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxMzMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxMzUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzEzNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMzkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxNDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzE0My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzNdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMzQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzNF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzVdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTM2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzZdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM3XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEzOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM4XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzldICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE0MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDBdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQxXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQyXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0M10gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE0NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDRdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ1XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2lkVG9JbmZvCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJyM0NjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfY29uc3RydWN0JTNBJTNBJTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM0NjgnKQorICAgIF9fby5wdXNoKF9fb1snIzQ5MiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUlM0ElM0ElM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzQ5MicpCisgICAgX19vLnB1c2goX19vWycjNTEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0JTNBJTNBLS0lM0UrZGVzdHJ1Y3QlM0ErJTI4JTI1cCUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNTEzJykKKyAgICBfX28ucHVzaChfX29bJyM1MzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfZGVsZXRlJTNBJTNBLS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzUzMicpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZpZFRvSW5mbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDZdICAvLyB4ZGMucnVudGltZS5Mb2cvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0N10gIC8vIHhkYy5ydW50aW1lLk1haW4KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzE0OC4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbicsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX0dhdGVQcm94eSddID0gX19vYmpbMTA4LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzgKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTQ5LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTUwLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxNjMuMF0KKworX19vID0gX19vYmpbMTQ4XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0OV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxNTBdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTUxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTUzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxNTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTU3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1MV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTUyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTJdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTNdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1NF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1NV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU2XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1N10gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU4XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU5XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjBdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjFdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjJdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjNdICAvLyB4ZGMucnVudGltZS5NYWluL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTY0XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNjUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeScsICdVVEYtOCcpKQorICAgIF9fb1snSGVhcFByb3h5J10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc5CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1FfQkxPQ0tJTkcnXSA9IDEKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzE4OS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzE5MC4wXQorICAgIF9fb1snZGVmYXVsdEhlYXBJbnN0YW5jZSddID0gX19vYmpbMTY4LjBdCisgICAgX19vWydkZWZhdWx0SGVhcFNpemUnXSA9IDQwOTYKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzIwMy4wXQorCitfX28gPSBfX29ialsxNjVdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2Nl0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzE2Ny4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCcsICdVVEYtOCcpKQorICAgIF9fb1snQV9pbnZhbGlkQWxpZ25tZW50J10gPSBfX29ialsxNzAuMF0KKyAgICBfX29bJ0FfaW52YWxpZFRvdGFsRnJlZVNpemUnXSA9IF9fb2JqWzE3MS4wXQorICAgIF9fb1snQV96ZXJvU2l6ZSddID0gX19vYmpbMTcyLjBdCisgICAgX19vWydFX25vUlRTTWVtb3J5J10gPSBfX29ialsxNzMuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxNzQuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxNzUuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzE4OC4wXQorCitfX28gPSBfX29ialsxNjddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzE2OC4wXQorCitfX28gPSBfX29ialsxNjhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snJG1vZHVsZSddID0gX19vYmpbMTY2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snaW5zdGFuY2UnXSA9IF9fb2JqWzE2OS4wXQorICAgIF9fb1snc2l6ZSddID0gNDA5NgorCitfX28gPSBfX29ialsxNjldICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAvaW5zdGFuY2UKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UlMjMwJTJGaW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWUnXSA9IG51bGwKKworX19vID0gX19vYmpbMTcwXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjM0JywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0hlYXBTdGRfYWxsb2MrLStyZXF1ZXN0ZWQrYWxpZ25tZW50K2lzK2dyZWF0ZXIrdGhhbithbGxvd2VkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3MV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMycsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkK2luc3RhbmNlK3RvdGFsRnJlZVNpemUraXMrZ3JlYXRlcit0aGFuK3N0YXJ0aW5nK3NpemUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTcyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjMyJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0hlYXBTdGRfY3JlYXRlK2Nhbm5vdCtoYXZlK2EremVybytzaXplK3ZhbHVlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3M10gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdUaGUrUlRTK2hlYXAraXMrdXNlZCt1cC4rRXhhbWluZStQcm9ncmFtLmhlYXAuJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3NF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxNzVdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTc2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3Nl0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTc3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3OV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4MF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTgxXSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4Ml0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTgzXSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg0XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODVdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg5XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxOTBdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxOTEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxOTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzE5NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxOTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxOTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzIwMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTFdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5Ml0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTNdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTk0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTRdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk1XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk2XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTddICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOThdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk5XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAwXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwMV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIwMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDJdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAzXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0RPTkUnXSA9IC0xCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODEKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snTk9URE9ORSddID0gMAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjA2LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjA3LjBdCisgICAgX19vWydleGVjSW1wbCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpcnN0RnhucyddID0gX19vYmpbMjIwLjBdCisgICAgX19vWydsYXN0RnhucyddID0gX19vYmpbMjIxLjBdCisgICAgX19vWydtYXhQYXNzZXMnXSA9IDMyCisgICAgX19vWydyZXNldEZ4biddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3NmeG5SdHMnXSA9IF9fb2JqWzIyMi4wXQorICAgIF9fb1snc2Z4blRhYiddID0gX19vYmpbMjIzLjBdCisgICAgX19vWydzdGFydE1vZHNGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMjI0LjBdCisKK19fbyA9IF9fb2JqWzIwNV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDZdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjA3XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzIwOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzIxMC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjEyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzIxNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzIxNi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjE4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDhdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIwOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA5XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjEwXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjExLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTFdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTJdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxM10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxNV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxNl0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE3XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE4XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE5XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjIwXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9maXJzdEZ4bnMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZmaXJzdEZ4bnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjIxXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9sYXN0RnhucworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmxhc3RGeG5zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMl0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blJ0cworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRnNmeG5SdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IHRydWUKKyAgICBfX29bJzEnXSA9IHRydWUKKworX19vID0gX19vYmpbMjIzXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuVGFiCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGc2Z4blRhYicsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyNF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjVdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzIyNi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJywgJ1VURi04JykpCisgICAgX19vWydBX2Nhbm5vdEZpdEludG9BcmcnXSA9IF9fb2JqWzIyNy4wXQorICAgIF9fb1snTW9kdWxlX0dhdGVQcm94eSddID0gX19vYmpbMTA4LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydTVEFUVVNfVU5LTk9XTiddID0gNTE5NjYKKyAgICBfX29bJ1N1cHBvcnRQcm94eSddID0gX19vYmpbMjI4LjBdCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyNTUuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNTYuMF0KKyAgICBfX29bJ2V4aXRGeG5zJ10gPSBfX29ialsyNjkuMF0KKyAgICBfX29bJ2V4dGVuZEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JJywgJ1VURi04JykpCisgICAgX19vWydleHRlbmRlZEZvcm1hdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI1JTI0TCcsICdVVEYtOCcpKQorICAgIF9fb1snbWF4QXRleGl0SGFuZGxlcnMnXSA9IDgKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzI3MC4wXQorCitfX28gPSBfX29ialsyMjZdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyN10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzNScsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBX2Nhbm5vdEZpdEludG9BcmclM0Erc2l6ZW9mJTI4RmxvYXQlMjkrJTNFK3NpemVvZiUyOEFyZyUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjhdICAvLyB4ZGMucnVudGltZS5TeXNNaW4KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzIyOS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydidWZTaXplJ10gPSAxMDI0CisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyMzAuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyMzEuMF0KKyAgICBfX29bJ2ZsdXNoQXRFeGl0J10gPSB0cnVlCisgICAgX19vWydvdXRwdXRGdW5jJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ291dHB1dEZ4biddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3JvdlZpZXdJbmZvJ10gPSBfX29ialsyNDQuMF0KKyAgICBfX29bJ3NlY3Rpb25OYW1lJ10gPSBudWxsCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzI1NC4wXQorCitfX28gPSBfX29ialsyMjldICAvLyB4ZGMucnVudGltZS5TeXNNaW4vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzMF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjMxXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjMyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjM0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyMzYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjM4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjQwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyNDIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjMyXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjMzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzNdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM0XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM1XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNl0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzN10gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM4XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM5XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0MF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjQxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0MV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDJdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQzXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0NF0gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0luc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyckbW9kdWxlJ10gPSBfX29ialsyNDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJywgJ1VURi04JykpCisgICAgX19vWydzaG93UmF3VGFiJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TWFwJ10gPSBfX29ialsyNTEuMF0KKworX19vID0gX19vYmpbMjQ1XSAgLy8geGRjLnJvdi5WaWV3SW5mbworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjQ2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0Nl0gIC8vIHhkYy5yb3YuVmlld0luZm8vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mbyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gX19vYmpbMjQ3LjBdCisgICAgX19vWycxJ10gPSBfX29ialsyNDQuMF0KKworX19vID0gX19vYmpbMjQ3XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRtb2R1bGUnXSA9IF9fb2JqWzI0NS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Nob3dSYXdUYWInXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdNYXAnXSA9IF9fb2JqWzI0OC4wXQorCitfX28gPSBfX29ialsyNDhdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWydCYXNpYyddID0gX19vYmpbMjQ5LjBdKTsgX19vLiRrZXlzLnB1c2goJ0Jhc2ljJykKKyAgICBfX28ucHVzaChfX29bJ1JlY29yZHMnXSA9IF9fb2JqWzI1MC4wXSk7IF9fby4ka2V5cy5wdXNoKCdSZWNvcmRzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJTJGdmlld01hcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDldICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nQmFzaWMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAlMkYlMjdCYXNpYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdCYXNpY1ZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JTlNUQU5DRScsICdVVEYtOCcpKQorICAgIF9fb1sndmlld0luaXRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndmlld0luaXRCYXNpYycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTBdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nUmVjb3JkcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJTJGdmlld01hcCUyRiUyN1JlY29yZHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnUmVjb3JkVmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLklOU1RBTkNFX0RBVEEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0UmVjb3JkcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTFdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWydNb2R1bGUnXSA9IF9fb2JqWzI1Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCdNb2R1bGUnKQorICAgIF9fby5wdXNoKF9fb1snT3V0cHV0QnVmZmVyJ10gPSBfX29ialsyNTMuMF0pOyBfX28uJGtleXMucHVzaCgnT3V0cHV0QnVmZmVyJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJTJGdmlld01hcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTJdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nTW9kdWxlJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzElMkZ2aWV3TWFwJTJGJTI3TW9kdWxlJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZVZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5NT0RVTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0TW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1M10gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydPdXRwdXRCdWZmZXInCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMSUyRnZpZXdNYXAlMkYlMjdPdXRwdXRCdWZmZXIlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQnVmZmVyRW50cnlWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uTU9EVUxFX0RBVEEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0T3V0cHV0QnVmZmVyJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1NF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNTZdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzI2MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyNjMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyNjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzI2Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTddICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1OF0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTldICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjYwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjBdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYxXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYyXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjNdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjRdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2N10gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjhdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY5XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2V4aXRGeG5zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZleGl0RnhucycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzBdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3MV0gIC8vIHhkYy5ydW50aW1lLlRleHQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzI3Mi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCcsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzg0CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NoYXJDbnQnXSA9IDY2MQorICAgIF9fb1snY2hhclRhYiddID0gX19vYmpbMjczLjBdCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyNzQuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNzUuMF0KKyAgICBfX29bJ2lzTG9hZGVkJ10gPSB0cnVlCisgICAgX19vWyduYW1lRW1wdHknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCZW1wdHktaW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZVN0YXRpYyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclN0JzdGF0aWMtaW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZVVua25vd24nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCdW5rbm93bi1pbnN0YW5jZS1uYW1lJTdEJywgJ1VURi04JykpCisgICAgX19vWydub2RlQ250J10gPSAxNworICAgIF9fb1snbm9kZVRhYiddID0gX19vYmpbMjg4LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszMDYuMF0KKyAgICBfX29bJ3Zpc2l0Um9wZUZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSScsICdVVEYtOCcpKQorICAgIF9fb1sndmlzaXRSb3BlRnhuMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0knLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjcyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3M10gIC8vIHhkYy5ydW50aW1lLlRleHQvY2hhclRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNoYXJUYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IDAKKyAgICBfX29bJzEnXSA9IDY1CisgICAgX19vWycyJ10gPSA5NQorICAgIF9fb1snMyddID0gMTA1CisgICAgX19vWyc0J10gPSAxMTAKKyAgICBfX29bJzUnXSA9IDEwNQorICAgIF9fb1snNiddID0gMTE2CisgICAgX19vWyc3J10gPSAxMDUKKyAgICBfX29bJzgnXSA9IDk3CisgICAgX19vWyc5J10gPSAxMDgKKyAgICBfX29bJzEwJ10gPSAxMDUKKyAgICBfX29bJzExJ10gPSAxMjIKKyAgICBfX29bJzEyJ10gPSAxMDEKKyAgICBfX29bJzEzJ10gPSAxMDAKKyAgICBfX29bJzE0J10gPSA4MAorICAgIF9fb1snMTUnXSA9IDk3CisgICAgX19vWycxNiddID0gMTE0CisgICAgX19vWycxNyddID0gOTcKKyAgICBfX29bJzE4J10gPSAxMDkKKyAgICBfX29bJzE5J10gPSAxMTUKKyAgICBfX29bJzIwJ10gPSA1OAorICAgIF9fb1snMjEnXSA9IDMyCisgICAgX19vWycyMiddID0gMTE3CisgICAgX19vWycyMyddID0gMTEwCisgICAgX19vWycyNCddID0gMTA1CisgICAgX19vWycyNSddID0gMTEwCisgICAgX19vWycyNiddID0gMTA1CisgICAgX19vWycyNyddID0gMTE2CisgICAgX19vWycyOCddID0gMTA1CisgICAgX19vWycyOSddID0gOTcKKyAgICBfX29bJzMwJ10gPSAxMDgKKyAgICBfX29bJzMxJ10gPSAxMDUKKyAgICBfX29bJzMyJ10gPSAxMjIKKyAgICBfX29bJzMzJ10gPSAxMDEKKyAgICBfX29bJzM0J10gPSAxMDAKKyAgICBfX29bJzM1J10gPSAzMgorICAgIF9fb1snMzYnXSA9IDgwCisgICAgX19vWyczNyddID0gOTcKKyAgICBfX29bJzM4J10gPSAxMTQKKyAgICBfX29bJzM5J10gPSA5NworICAgIF9fb1snNDAnXSA9IDEwOQorICAgIF9fb1snNDEnXSA9IDExNQorICAgIF9fb1snNDInXSA9IDMyCisgICAgX19vWyc0MyddID0gMTE1CisgICAgX19vWyc0NCddID0gMTE2CisgICAgX19vWyc0NSddID0gMTE0CisgICAgX19vWyc0NiddID0gMTE3CisgICAgX19vWyc0NyddID0gOTkKKyAgICBfX29bJzQ4J10gPSAxMTYKKyAgICBfX29bJzQ5J10gPSAwCisgICAgX19vWyc1MCddID0gNzIKKyAgICBfX29bJzUxJ10gPSAxMDEKKyAgICBfX29bJzUyJ10gPSA5NworICAgIF9fb1snNTMnXSA9IDExMgorICAgIF9fb1snNTQnXSA9IDc3CisgICAgX19vWyc1NSddID0gMTA1CisgICAgX19vWyc1NiddID0gMTEwCisgICAgX19vWyc1NyddID0gOTUKKyAgICBfX29bJzU4J10gPSA5OQorICAgIF9fb1snNTknXSA9IDExNAorICAgIF9fb1snNjAnXSA9IDEwMQorICAgIF9fb1snNjEnXSA9IDk3CisgICAgX19vWyc2MiddID0gMTE2CisgICAgX19vWyc2MyddID0gMTAxCisgICAgX19vWyc2NCddID0gMzIKKyAgICBfX29bJzY1J10gPSA5OQorICAgIF9fb1snNjYnXSA9IDk3CisgICAgX19vWyc2NyddID0gMTEwCisgICAgX19vWyc2OCddID0gMTEwCisgICAgX19vWyc2OSddID0gMTExCisgICAgX19vWyc3MCddID0gMTE2CisgICAgX19vWyc3MSddID0gMzIKKyAgICBfX29bJzcyJ10gPSAxMDQKKyAgICBfX29bJzczJ10gPSA5NworICAgIF9fb1snNzQnXSA9IDExOAorICAgIF9fb1snNzUnXSA9IDEwMQorICAgIF9fb1snNzYnXSA9IDMyCisgICAgX19vWyc3NyddID0gOTcKKyAgICBfX29bJzc4J10gPSAzMgorICAgIF9fb1snNzknXSA9IDEyMgorICAgIF9fb1snODAnXSA9IDEwMQorICAgIF9fb1snODEnXSA9IDExNAorICAgIF9fb1snODInXSA9IDExMQorICAgIF9fb1snODMnXSA9IDMyCisgICAgX19vWyc4NCddID0gMTE1CisgICAgX19vWyc4NSddID0gMTA1CisgICAgX19vWyc4NiddID0gMTIyCisgICAgX19vWyc4NyddID0gMTAxCisgICAgX19vWyc4OCddID0gMzIKKyAgICBfX29bJzg5J10gPSAxMTgKKyAgICBfX29bJzkwJ10gPSA5NworICAgIF9fb1snOTEnXSA9IDEwOAorICAgIF9fb1snOTInXSA9IDExNworICAgIF9fb1snOTMnXSA9IDEwMQorICAgIF9fb1snOTQnXSA9IDAKKyAgICBfX29bJzk1J10gPSA3MgorICAgIF9fb1snOTYnXSA9IDEwMQorICAgIF9fb1snOTcnXSA9IDk3CisgICAgX19vWyc5OCddID0gMTEyCisgICAgX19vWyc5OSddID0gODMKKyAgICBfX29bJzEwMCddID0gMTE2CisgICAgX19vWycxMDEnXSA9IDEwMAorICAgIF9fb1snMTAyJ10gPSA5NQorICAgIF9fb1snMTAzJ10gPSA5OQorICAgIF9fb1snMTA0J10gPSAxMTQKKyAgICBfX29bJzEwNSddID0gMTAxCisgICAgX19vWycxMDYnXSA9IDk3CisgICAgX19vWycxMDcnXSA9IDExNgorICAgIF9fb1snMTA4J10gPSAxMDEKKyAgICBfX29bJzEwOSddID0gMzIKKyAgICBfX29bJzExMCddID0gOTkKKyAgICBfX29bJzExMSddID0gOTcKKyAgICBfX29bJzExMiddID0gMTEwCisgICAgX19vWycxMTMnXSA9IDExMAorICAgIF9fb1snMTE0J10gPSAxMTEKKyAgICBfX29bJzExNSddID0gMTE2CisgICAgX19vWycxMTYnXSA9IDMyCisgICAgX19vWycxMTcnXSA9IDEwNAorICAgIF9fb1snMTE4J10gPSA5NworICAgIF9fb1snMTE5J10gPSAxMTgKKyAgICBfX29bJzEyMCddID0gMTAxCisgICAgX19vWycxMjEnXSA9IDMyCisgICAgX19vWycxMjInXSA9IDk3CisgICAgX19vWycxMjMnXSA9IDMyCisgICAgX19vWycxMjQnXSA9IDEyMgorICAgIF9fb1snMTI1J10gPSAxMDEKKyAgICBfX29bJzEyNiddID0gMTE0CisgICAgX19vWycxMjcnXSA9IDExMQorICAgIF9fb1snMTI4J10gPSAzMgorICAgIF9fb1snMTI5J10gPSAxMTUKKyAgICBfX29bJzEzMCddID0gMTA1CisgICAgX19vWycxMzEnXSA9IDEyMgorICAgIF9fb1snMTMyJ10gPSAxMDEKKyAgICBfX29bJzEzMyddID0gMzIKKyAgICBfX29bJzEzNCddID0gMTE4CisgICAgX19vWycxMzUnXSA9IDk3CisgICAgX19vWycxMzYnXSA9IDEwOAorICAgIF9fb1snMTM3J10gPSAxMTcKKyAgICBfX29bJzEzOCddID0gMTAxCisgICAgX19vWycxMzknXSA9IDAKKyAgICBfX29bJzE0MCddID0gNzIKKyAgICBfX29bJzE0MSddID0gMTAxCisgICAgX19vWycxNDInXSA9IDk3CisgICAgX19vWycxNDMnXSA9IDExMgorICAgIF9fb1snMTQ0J10gPSA4MworICAgIF9fb1snMTQ1J10gPSAxMTYKKyAgICBfX29bJzE0NiddID0gMTAwCisgICAgX19vWycxNDcnXSA9IDMyCisgICAgX19vWycxNDgnXSA9IDEwNQorICAgIF9fb1snMTQ5J10gPSAxMTAKKyAgICBfX29bJzE1MCddID0gMTE1CisgICAgX19vWycxNTEnXSA9IDExNgorICAgIF9fb1snMTUyJ10gPSA5NworICAgIF9fb1snMTUzJ10gPSAxMTAKKyAgICBfX29bJzE1NCddID0gOTkKKyAgICBfX29bJzE1NSddID0gMTAxCisgICAgX19vWycxNTYnXSA9IDMyCisgICAgX19vWycxNTcnXSA9IDExNgorICAgIF9fb1snMTU4J10gPSAxMTEKKyAgICBfX29bJzE1OSddID0gMTE2CisgICAgX19vWycxNjAnXSA9IDk3CisgICAgX19vWycxNjEnXSA9IDEwOAorICAgIF9fb1snMTYyJ10gPSA3MAorICAgIF9fb1snMTYzJ10gPSAxMTQKKyAgICBfX29bJzE2NCddID0gMTAxCisgICAgX19vWycxNjUnXSA9IDEwMQorICAgIF9fb1snMTY2J10gPSA4MworICAgIF9fb1snMTY3J10gPSAxMDUKKyAgICBfX29bJzE2OCddID0gMTIyCisgICAgX19vWycxNjknXSA9IDEwMQorICAgIF9fb1snMTcwJ10gPSAzMgorICAgIF9fb1snMTcxJ10gPSAxMDUKKyAgICBfX29bJzE3MiddID0gMTE1CisgICAgX19vWycxNzMnXSA9IDMyCisgICAgX19vWycxNzQnXSA9IDEwMworICAgIF9fb1snMTc1J10gPSAxMTQKKyAgICBfX29bJzE3NiddID0gMTAxCisgICAgX19vWycxNzcnXSA9IDk3CisgICAgX19vWycxNzgnXSA9IDExNgorICAgIF9fb1snMTc5J10gPSAxMDEKKyAgICBfX29bJzE4MCddID0gMTE0CisgICAgX19vWycxODEnXSA9IDMyCisgICAgX19vWycxODInXSA9IDExNgorICAgIF9fb1snMTgzJ10gPSAxMDQKKyAgICBfX29bJzE4NCddID0gOTcKKyAgICBfX29bJzE4NSddID0gMTEwCisgICAgX19vWycxODYnXSA9IDMyCisgICAgX19vWycxODcnXSA9IDExNQorICAgIF9fb1snMTg4J10gPSAxMTYKKyAgICBfX29bJzE4OSddID0gOTcKKyAgICBfX29bJzE5MCddID0gMTE0CisgICAgX19vWycxOTEnXSA9IDExNgorICAgIF9fb1snMTkyJ10gPSAxMDUKKyAgICBfX29bJzE5MyddID0gMTEwCisgICAgX19vWycxOTQnXSA9IDEwMworICAgIF9fb1snMTk1J10gPSAzMgorICAgIF9fb1snMTk2J10gPSAxMTUKKyAgICBfX29bJzE5NyddID0gMTA1CisgICAgX19vWycxOTgnXSA9IDEyMgorICAgIF9fb1snMTk5J10gPSAxMDEKKyAgICBfX29bJzIwMCddID0gMAorICAgIF9fb1snMjAxJ10gPSA3MgorICAgIF9fb1snMjAyJ10gPSAxMDEKKyAgICBfX29bJzIwMyddID0gOTcKKyAgICBfX29bJzIwNCddID0gMTEyCisgICAgX19vWycyMDUnXSA9IDgzCisgICAgX19vWycyMDYnXSA9IDExNgorICAgIF9fb1snMjA3J10gPSAxMDAKKyAgICBfX29bJzIwOCddID0gOTUKKyAgICBfX29bJzIwOSddID0gOTcKKyAgICBfX29bJzIxMCddID0gMTA4CisgICAgX19vWycyMTEnXSA9IDEwOAorICAgIF9fb1snMjEyJ10gPSAxMTEKKyAgICBfX29bJzIxMyddID0gOTkKKyAgICBfX29bJzIxNCddID0gMzIKKyAgICBfX29bJzIxNSddID0gNDUKKyAgICBfX29bJzIxNiddID0gMzIKKyAgICBfX29bJzIxNyddID0gMTE0CisgICAgX19vWycyMTgnXSA9IDEwMQorICAgIF9fb1snMjE5J10gPSAxMTMKKyAgICBfX29bJzIyMCddID0gMTE3CisgICAgX19vWycyMjEnXSA9IDEwMQorICAgIF9fb1snMjIyJ10gPSAxMTUKKyAgICBfX29bJzIyMyddID0gMTE2CisgICAgX19vWycyMjQnXSA9IDEwMQorICAgIF9fb1snMjI1J10gPSAxMDAKKyAgICBfX29bJzIyNiddID0gMzIKKyAgICBfX29bJzIyNyddID0gOTcKKyAgICBfX29bJzIyOCddID0gMTA4CisgICAgX19vWycyMjknXSA9IDEwNQorICAgIF9fb1snMjMwJ10gPSAxMDMKKyAgICBfX29bJzIzMSddID0gMTEwCisgICAgX19vWycyMzInXSA9IDEwOQorICAgIF9fb1snMjMzJ10gPSAxMDEKKyAgICBfX29bJzIzNCddID0gMTEwCisgICAgX19vWycyMzUnXSA9IDExNgorICAgIF9fb1snMjM2J10gPSAzMgorICAgIF9fb1snMjM3J10gPSAxMDUKKyAgICBfX29bJzIzOCddID0gMTE1CisgICAgX19vWycyMzknXSA9IDMyCisgICAgX19vWycyNDAnXSA9IDEwMworICAgIF9fb1snMjQxJ10gPSAxMTQKKyAgICBfX29bJzI0MiddID0gMTAxCisgICAgX19vWycyNDMnXSA9IDk3CisgICAgX19vWycyNDQnXSA9IDExNgorICAgIF9fb1snMjQ1J10gPSAxMDEKKyAgICBfX29bJzI0NiddID0gMTE0CisgICAgX19vWycyNDcnXSA9IDMyCisgICAgX19vWycyNDgnXSA9IDExNgorICAgIF9fb1snMjQ5J10gPSAxMDQKKyAgICBfX29bJzI1MCddID0gOTcKKyAgICBfX29bJzI1MSddID0gMTEwCisgICAgX19vWycyNTInXSA9IDMyCisgICAgX19vWycyNTMnXSA9IDk3CisgICAgX19vWycyNTQnXSA9IDEwOAorICAgIF9fb1snMjU1J10gPSAxMDgKKyAgICBfX29bJzI1NiddID0gMTExCisgICAgX19vWycyNTcnXSA9IDExOQorICAgIF9fb1snMjU4J10gPSAxMDEKKyAgICBfX29bJzI1OSddID0gMTAwCisgICAgX19vWycyNjAnXSA9IDAKKyAgICBfX29bJzI2MSddID0gNjUKKyAgICBfX29bJzI2MiddID0gOTUKKyAgICBfX29bJzI2MyddID0gOTkKKyAgICBfX29bJzI2NCddID0gOTcKKyAgICBfX29bJzI2NSddID0gMTEwCisgICAgX19vWycyNjYnXSA9IDExMAorICAgIF9fb1snMjY3J10gPSAxMTEKKyAgICBfX29bJzI2OCddID0gMTE2CisgICAgX19vWycyNjknXSA9IDcwCisgICAgX19vWycyNzAnXSA9IDEwNQorICAgIF9fb1snMjcxJ10gPSAxMTYKKyAgICBfX29bJzI3MiddID0gNzMKKyAgICBfX29bJzI3MyddID0gMTEwCisgICAgX19vWycyNzQnXSA9IDExNgorICAgIF9fb1snMjc1J10gPSAxMTEKKyAgICBfX29bJzI3NiddID0gNjUKKyAgICBfX29bJzI3NyddID0gMTE0CisgICAgX19vWycyNzgnXSA9IDEwMworICAgIF9fb1snMjc5J10gPSA1OAorICAgIF9fb1snMjgwJ10gPSAzMgorICAgIF9fb1snMjgxJ10gPSAxMTUKKyAgICBfX29bJzI4MiddID0gMTA1CisgICAgX19vWycyODMnXSA9IDEyMgorICAgIF9fb1snMjg0J10gPSAxMDEKKyAgICBfX29bJzI4NSddID0gMTExCisgICAgX19vWycyODYnXSA9IDEwMgorICAgIF9fb1snMjg3J10gPSA0MAorICAgIF9fb1snMjg4J10gPSA3MAorICAgIF9fb1snMjg5J10gPSAxMDgKKyAgICBfX29bJzI5MCddID0gMTExCisgICAgX19vWycyOTEnXSA9IDk3CisgICAgX19vWycyOTInXSA9IDExNgorICAgIF9fb1snMjkzJ10gPSA0MQorICAgIF9fb1snMjk0J10gPSAzMgorICAgIF9fb1snMjk1J10gPSA2MgorICAgIF9fb1snMjk2J10gPSAzMgorICAgIF9fb1snMjk3J10gPSAxMTUKKyAgICBfX29bJzI5OCddID0gMTA1CisgICAgX19vWycyOTknXSA9IDEyMgorICAgIF9fb1snMzAwJ10gPSAxMDEKKyAgICBfX29bJzMwMSddID0gMTExCisgICAgX19vWyczMDInXSA9IDEwMgorICAgIF9fb1snMzAzJ10gPSA0MAorICAgIF9fb1snMzA0J10gPSA2NQorICAgIF9fb1snMzA1J10gPSAxMTQKKyAgICBfX29bJzMwNiddID0gMTAzCisgICAgX19vWyczMDcnXSA9IDQxCisgICAgX19vWyczMDgnXSA9IDAKKyAgICBfX29bJzMwOSddID0gOTcKKyAgICBfX29bJzMxMCddID0gMTE1CisgICAgX19vWyczMTEnXSA9IDExNQorICAgIF9fb1snMzEyJ10gPSAxMDEKKyAgICBfX29bJzMxMyddID0gMTE0CisgICAgX19vWyczMTQnXSA9IDExNgorICAgIF9fb1snMzE1J10gPSAxMDUKKyAgICBfX29bJzMxNiddID0gMTExCisgICAgX19vWyczMTcnXSA9IDExMAorICAgIF9fb1snMzE4J10gPSAzMgorICAgIF9fb1snMzE5J10gPSAxMDIKKyAgICBfX29bJzMyMCddID0gOTcKKyAgICBfX29bJzMyMSddID0gMTA1CisgICAgX19vWyczMjInXSA9IDEwOAorICAgIF9fb1snMzIzJ10gPSAxMTcKKyAgICBfX29bJzMyNCddID0gMTE0CisgICAgX19vWyczMjUnXSA9IDEwMQorICAgIF9fb1snMzI2J10gPSAzNworICAgIF9fb1snMzI3J10gPSAxMTUKKyAgICBfX29bJzMyOCddID0gMzcKKyAgICBfX29bJzMyOSddID0gMTE1CisgICAgX19vWyczMzAnXSA9IDAKKyAgICBfX29bJzMzMSddID0gMTAzCisgICAgX19vWyczMzInXSA9IDEwMQorICAgIF9fb1snMzMzJ10gPSAxMTAKKyAgICBfX29bJzMzNCddID0gMTAxCisgICAgX19vWyczMzUnXSA9IDExNAorICAgIF9fb1snMzM2J10gPSAxMDUKKyAgICBfX29bJzMzNyddID0gOTkKKyAgICBfX29bJzMzOCddID0gMzIKKyAgICBfX29bJzMzOSddID0gMTAxCisgICAgX19vWyczNDAnXSA9IDExNAorICAgIF9fb1snMzQxJ10gPSAxMTQKKyAgICBfX29bJzM0MiddID0gMTExCisgICAgX19vWyczNDMnXSA9IDExNAorICAgIF9fb1snMzQ0J10gPSA1OAorICAgIF9fb1snMzQ1J10gPSAzMgorICAgIF9fb1snMzQ2J10gPSAzNworICAgIF9fb1snMzQ3J10gPSAxMTUKKyAgICBfX29bJzM0OCddID0gMAorICAgIF9fb1snMzQ5J10gPSAxMTEKKyAgICBfX29bJzM1MCddID0gMTE3CisgICAgX19vWyczNTEnXSA9IDExNgorICAgIF9fb1snMzUyJ10gPSAzMgorICAgIF9fb1snMzUzJ10gPSAxMTEKKyAgICBfX29bJzM1NCddID0gMTAyCisgICAgX19vWyczNTUnXSA9IDMyCisgICAgX19vWyczNTYnXSA9IDEwOQorICAgIF9fb1snMzU3J10gPSAxMDEKKyAgICBfX29bJzM1OCddID0gMTA5CisgICAgX19vWyczNTknXSA9IDExMQorICAgIF9fb1snMzYwJ10gPSAxMTQKKyAgICBfX29bJzM2MSddID0gMTIxCisgICAgX19vWyczNjInXSA9IDU4CisgICAgX19vWyczNjMnXSA9IDMyCisgICAgX19vWyczNjQnXSA9IDEwNAorICAgIF9fb1snMzY1J10gPSAxMDEKKyAgICBfX29bJzM2NiddID0gOTcKKyAgICBfX29bJzM2NyddID0gMTEyCisgICAgX19vWyczNjgnXSA9IDYxCisgICAgX19vWyczNjknXSA9IDQ4CisgICAgX19vWyczNzAnXSA9IDEyMAorICAgIF9fb1snMzcxJ10gPSAzNworICAgIF9fb1snMzcyJ10gPSAxMjAKKyAgICBfX29bJzM3MyddID0gNDQKKyAgICBfX29bJzM3NCddID0gMzIKKyAgICBfX29bJzM3NSddID0gMTE1CisgICAgX19vWyczNzYnXSA9IDEwNQorICAgIF9fb1snMzc3J10gPSAxMjIKKyAgICBfX29bJzM3OCddID0gMTAxCisgICAgX19vWyczNzknXSA9IDYxCisgICAgX19vWyczODAnXSA9IDM3CisgICAgX19vWyczODEnXSA9IDExNworICAgIF9fb1snMzgyJ10gPSAwCisgICAgX19vWyczODMnXSA9IDEwMgorICAgIF9fb1snMzg0J10gPSAxMTQKKyAgICBfX29bJzM4NSddID0gMTAxCisgICAgX19vWyczODYnXSA9IDEwMQorICAgIF9fb1snMzg3J10gPSA0MAorICAgIF9fb1snMzg4J10gPSA0MQorICAgIF9fb1snMzg5J10gPSAzMgorICAgIF9fb1snMzkwJ10gPSAxMDUKKyAgICBfX29bJzM5MSddID0gMTEwCisgICAgX19vWyczOTInXSA9IDExOAorICAgIF9fb1snMzkzJ10gPSA5NworICAgIF9fb1snMzk0J10gPSAxMDgKKyAgICBfX29bJzM5NSddID0gMTA1CisgICAgX19vWyczOTYnXSA9IDEwMAorICAgIF9fb1snMzk3J10gPSAzMgorICAgIF9fb1snMzk4J10gPSAxMDUKKyAgICBfX29bJzM5OSddID0gMTEwCisgICAgX19vWyc0MDAnXSA9IDMyCisgICAgX19vWyc0MDEnXSA9IDEwMworICAgIF9fb1snNDAyJ10gPSAxMTQKKyAgICBfX29bJzQwMyddID0gMTExCisgICAgX19vWyc0MDQnXSA9IDExOQorICAgIF9fb1snNDA1J10gPSAxMTYKKyAgICBfX29bJzQwNiddID0gMTA0CisgICAgX19vWyc0MDcnXSA9IDQ1CisgICAgX19vWyc0MDgnXSA9IDExMQorICAgIF9fb1snNDA5J10gPSAxMTAKKyAgICBfX29bJzQxMCddID0gMTA4CisgICAgX19vWyc0MTEnXSA9IDEyMQorICAgIF9fb1snNDEyJ10gPSAzMgorICAgIF9fb1snNDEzJ10gPSA3MgorICAgIF9fb1snNDE0J10gPSAxMDEKKyAgICBfX29bJzQxNSddID0gOTcKKyAgICBfX29bJzQxNiddID0gMTEyCisgICAgX19vWyc0MTcnXSA9IDc3CisgICAgX19vWyc0MTgnXSA9IDEwNQorICAgIF9fb1snNDE5J10gPSAxMTAKKyAgICBfX29bJzQyMCddID0gMAorICAgIF9fb1snNDIxJ10gPSA4NAorICAgIF9fb1snNDIyJ10gPSAxMDQKKyAgICBfX29bJzQyMyddID0gMTAxCisgICAgX19vWyc0MjQnXSA9IDMyCisgICAgX19vWyc0MjUnXSA9IDgyCisgICAgX19vWyc0MjYnXSA9IDg0CisgICAgX19vWyc0MjcnXSA9IDgzCisgICAgX19vWyc0MjgnXSA9IDMyCisgICAgX19vWyc0MjknXSA9IDEwNAorICAgIF9fb1snNDMwJ10gPSAxMDEKKyAgICBfX29bJzQzMSddID0gOTcKKyAgICBfX29bJzQzMiddID0gMTEyCisgICAgX19vWyc0MzMnXSA9IDMyCisgICAgX19vWyc0MzQnXSA9IDEwNQorICAgIF9fb1snNDM1J10gPSAxMTUKKyAgICBfX29bJzQzNiddID0gMzIKKyAgICBfX29bJzQzNyddID0gMTE3CisgICAgX19vWyc0MzgnXSA9IDExNQorICAgIF9fb1snNDM5J10gPSAxMDEKKyAgICBfX29bJzQ0MCddID0gMTAwCisgICAgX19vWyc0NDEnXSA9IDMyCisgICAgX19vWyc0NDInXSA9IDExNworICAgIF9fb1snNDQzJ10gPSAxMTIKKyAgICBfX29bJzQ0NCddID0gNDYKKyAgICBfX29bJzQ0NSddID0gMzIKKyAgICBfX29bJzQ0NiddID0gNjkKKyAgICBfX29bJzQ0NyddID0gMTIwCisgICAgX19vWyc0NDgnXSA9IDk3CisgICAgX19vWyc0NDknXSA9IDEwOQorICAgIF9fb1snNDUwJ10gPSAxMDUKKyAgICBfX29bJzQ1MSddID0gMTEwCisgICAgX19vWyc0NTInXSA9IDEwMQorICAgIF9fb1snNDUzJ10gPSAzMgorICAgIF9fb1snNDU0J10gPSA4MAorICAgIF9fb1snNDU1J10gPSAxMTQKKyAgICBfX29bJzQ1NiddID0gMTExCisgICAgX19vWyc0NTcnXSA9IDEwMworICAgIF9fb1snNDU4J10gPSAxMTQKKyAgICBfX29bJzQ1OSddID0gOTcKKyAgICBfX29bJzQ2MCddID0gMTA5CisgICAgX19vWyc0NjEnXSA9IDQ2CisgICAgX19vWyc0NjInXSA9IDEwNAorICAgIF9fb1snNDYzJ10gPSAxMDEKKyAgICBfX29bJzQ2NCddID0gOTcKKyAgICBfX29bJzQ2NSddID0gMTEyCisgICAgX19vWyc0NjYnXSA9IDQ2CisgICAgX19vWyc0NjcnXSA9IDAKKyAgICBfX29bJzQ2OCddID0gNjAKKyAgICBfX29bJzQ2OSddID0gNDUKKyAgICBfX29bJzQ3MCddID0gNDUKKyAgICBfX29bJzQ3MSddID0gMzIKKyAgICBfX29bJzQ3MiddID0gOTkKKyAgICBfX29bJzQ3MyddID0gMTExCisgICAgX19vWyc0NzQnXSA9IDExMAorICAgIF9fb1snNDc1J10gPSAxMTUKKyAgICBfX29bJzQ3NiddID0gMTE2CisgICAgX19vWyc0NzcnXSA9IDExNAorICAgIF9fb1snNDc4J10gPSAxMTcKKyAgICBfX29bJzQ3OSddID0gOTkKKyAgICBfX29bJzQ4MCddID0gMTE2CisgICAgX19vWyc0ODEnXSA9IDU4CisgICAgX19vWyc0ODInXSA9IDMyCisgICAgX19vWyc0ODMnXSA9IDM3CisgICAgX19vWyc0ODQnXSA9IDExMgorICAgIF9fb1snNDg1J10gPSA0MAorICAgIF9fb1snNDg2J10gPSAzOQorICAgIF9fb1snNDg3J10gPSAzNworICAgIF9fb1snNDg4J10gPSAxMTUKKyAgICBfX29bJzQ4OSddID0gMzkKKyAgICBfX29bJzQ5MCddID0gNDEKKyAgICBfX29bJzQ5MSddID0gMAorICAgIF9fb1snNDkyJ10gPSA2MAorICAgIF9fb1snNDkzJ10gPSA0NQorICAgIF9fb1snNDk0J10gPSA0NQorICAgIF9fb1snNDk1J10gPSAzMgorICAgIF9fb1snNDk2J10gPSA5OQorICAgIF9fb1snNDk3J10gPSAxMTQKKyAgICBfX29bJzQ5OCddID0gMTAxCisgICAgX19vWyc0OTknXSA9IDk3CisgICAgX19vWyc1MDAnXSA9IDExNgorICAgIF9fb1snNTAxJ10gPSAxMDEKKyAgICBfX29bJzUwMiddID0gNTgKKyAgICBfX29bJzUwMyddID0gMzIKKyAgICBfX29bJzUwNCddID0gMzcKKyAgICBfX29bJzUwNSddID0gMTEyCisgICAgX19vWyc1MDYnXSA9IDQwCisgICAgX19vWyc1MDcnXSA9IDM5CisgICAgX19vWyc1MDgnXSA9IDM3CisgICAgX19vWyc1MDknXSA9IDExNQorICAgIF9fb1snNTEwJ10gPSAzOQorICAgIF9fb1snNTExJ10gPSA0MQorICAgIF9fb1snNTEyJ10gPSAwCisgICAgX19vWyc1MTMnXSA9IDQ1CisgICAgX19vWyc1MTQnXSA9IDQ1CisgICAgX19vWyc1MTUnXSA9IDYyCisgICAgX19vWyc1MTYnXSA9IDMyCisgICAgX19vWyc1MTcnXSA9IDEwMAorICAgIF9fb1snNTE4J10gPSAxMDEKKyAgICBfX29bJzUxOSddID0gMTE1CisgICAgX19vWyc1MjAnXSA9IDExNgorICAgIF9fb1snNTIxJ10gPSAxMTQKKyAgICBfX29bJzUyMiddID0gMTE3CisgICAgX19vWyc1MjMnXSA9IDk5CisgICAgX19vWyc1MjQnXSA9IDExNgorICAgIF9fb1snNTI1J10gPSA1OAorICAgIF9fb1snNTI2J10gPSAzMgorICAgIF9fb1snNTI3J10gPSA0MAorICAgIF9fb1snNTI4J10gPSAzNworICAgIF9fb1snNTI5J10gPSAxMTIKKyAgICBfX29bJzUzMCddID0gNDEKKyAgICBfX29bJzUzMSddID0gMAorICAgIF9fb1snNTMyJ10gPSA0NQorICAgIF9fb1snNTMzJ10gPSA0NQorICAgIF9fb1snNTM0J10gPSA2MgorICAgIF9fb1snNTM1J10gPSAzMgorICAgIF9fb1snNTM2J10gPSAxMDAKKyAgICBfX29bJzUzNyddID0gMTAxCisgICAgX19vWyc1MzgnXSA9IDEwOAorICAgIF9fb1snNTM5J10gPSAxMDEKKyAgICBfX29bJzU0MCddID0gMTE2CisgICAgX19vWyc1NDEnXSA9IDEwMQorICAgIF9fb1snNTQyJ10gPSA1OAorICAgIF9fb1snNTQzJ10gPSAzMgorICAgIF9fb1snNTQ0J10gPSA0MAorICAgIF9fb1snNTQ1J10gPSAzNworICAgIF9fb1snNTQ2J10gPSAxMTIKKyAgICBfX29bJzU0NyddID0gNDEKKyAgICBfX29bJzU0OCddID0gMAorICAgIF9fb1snNTQ5J10gPSAxMjAKKyAgICBfX29bJzU1MCddID0gMTAwCisgICAgX19vWyc1NTEnXSA9IDk5CisgICAgX19vWyc1NTInXSA9IDQ2CisgICAgX19vWyc1NTMnXSA9IDAKKyAgICBfX29bJzU1NCddID0gMTE0CisgICAgX19vWyc1NTUnXSA9IDExNworICAgIF9fb1snNTU2J10gPSAxMTAKKyAgICBfX29bJzU1NyddID0gMTE2CisgICAgX19vWyc1NTgnXSA9IDEwNQorICAgIF9fb1snNTU5J10gPSAxMDkKKyAgICBfX29bJzU2MCddID0gMTAxCisgICAgX19vWyc1NjEnXSA9IDQ2CisgICAgX19vWyc1NjInXSA9IDAKKyAgICBfX29bJzU2MyddID0gNjUKKyAgICBfX29bJzU2NCddID0gMTE1CisgICAgX19vWyc1NjUnXSA9IDExNQorICAgIF9fb1snNTY2J10gPSAxMDEKKyAgICBfX29bJzU2NyddID0gMTE0CisgICAgX19vWyc1NjgnXSA9IDExNgorICAgIF9fb1snNTY5J10gPSAwCisgICAgX19vWyc1NzAnXSA9IDY3CisgICAgX19vWyc1NzEnXSA9IDExMQorICAgIF9fb1snNTcyJ10gPSAxMTQKKyAgICBfX29bJzU3MyddID0gMTAxCisgICAgX19vWyc1NzQnXSA9IDAKKyAgICBfX29bJzU3NSddID0gNjgKKyAgICBfX29bJzU3NiddID0gMTAxCisgICAgX19vWyc1NzcnXSA9IDEwMgorICAgIF9fb1snNTc4J10gPSA5NworICAgIF9fb1snNTc5J10gPSAxMTcKKyAgICBfX29bJzU4MCddID0gMTA4CisgICAgX19vWyc1ODEnXSA9IDExNgorICAgIF9fb1snNTgyJ10gPSAxMTUKKyAgICBfX29bJzU4MyddID0gMAorICAgIF9fb1snNTg0J10gPSA2OAorICAgIF9fb1snNTg1J10gPSAxMDUKKyAgICBfX29bJzU4NiddID0gOTcKKyAgICBfX29bJzU4NyddID0gMTAzCisgICAgX19vWyc1ODgnXSA9IDExNQorICAgIF9fb1snNTg5J10gPSAwCisgICAgX19vWyc1OTAnXSA9IDY5CisgICAgX19vWyc1OTEnXSA9IDExNAorICAgIF9fb1snNTkyJ10gPSAxMTQKKyAgICBfX29bJzU5MyddID0gMTExCisgICAgX19vWyc1OTQnXSA9IDExNAorICAgIF9fb1snNTk1J10gPSAwCisgICAgX19vWyc1OTYnXSA9IDcxCisgICAgX19vWyc1OTcnXSA9IDk3CisgICAgX19vWyc1OTgnXSA9IDExNgorICAgIF9fb1snNTk5J10gPSAxMDEKKyAgICBfX29bJzYwMCddID0gMAorICAgIF9fb1snNjAxJ10gPSA3MQorICAgIF9fb1snNjAyJ10gPSA5NworICAgIF9fb1snNjAzJ10gPSAxMTYKKyAgICBfX29bJzYwNCddID0gMTAxCisgICAgX19vWyc2MDUnXSA9IDc4CisgICAgX19vWyc2MDYnXSA9IDExNworICAgIF9fb1snNjA3J10gPSAxMDgKKyAgICBfX29bJzYwOCddID0gMTA4CisgICAgX19vWyc2MDknXSA9IDAKKyAgICBfX29bJzYxMCddID0gNzYKKyAgICBfX29bJzYxMSddID0gMTExCisgICAgX19vWyc2MTInXSA9IDEwMworICAgIF9fb1snNjEzJ10gPSAwCisgICAgX19vWyc2MTQnXSA9IDc3CisgICAgX19vWyc2MTUnXSA9IDk3CisgICAgX19vWyc2MTYnXSA9IDEwNQorICAgIF9fb1snNjE3J10gPSAxMTAKKyAgICBfX29bJzYxOCddID0gMAorICAgIF9fb1snNjE5J10gPSA3NworICAgIF9fb1snNjIwJ10gPSAxMDEKKyAgICBfX29bJzYyMSddID0gMTA5CisgICAgX19vWyc2MjInXSA9IDExMQorICAgIF9fb1snNjIzJ10gPSAxMTQKKyAgICBfX29bJzYyNCddID0gMTIxCisgICAgX19vWyc2MjUnXSA9IDAKKyAgICBfX29bJzYyNiddID0gNzIKKyAgICBfX29bJzYyNyddID0gMTAxCisgICAgX19vWyc2MjgnXSA9IDk3CisgICAgX19vWyc2MjknXSA9IDExMgorICAgIF9fb1snNjMwJ10gPSA4MworICAgIF9fb1snNjMxJ10gPSAxMTYKKyAgICBfX29bJzYzMiddID0gMTAwCisgICAgX19vWyc2MzMnXSA9IDAKKyAgICBfX29bJzYzNCddID0gODMKKyAgICBfX29bJzYzNSddID0gMTE2CisgICAgX19vWyc2MzYnXSA9IDk3CisgICAgX19vWyc2MzcnXSA9IDExNAorICAgIF9fb1snNjM4J10gPSAxMTYKKyAgICBfX29bJzYzOSddID0gMTE3CisgICAgX19vWyc2NDAnXSA9IDExMgorICAgIF9fb1snNjQxJ10gPSAwCisgICAgX19vWyc2NDInXSA9IDgzCisgICAgX19vWyc2NDMnXSA9IDEyMQorICAgIF9fb1snNjQ0J10gPSAxMTUKKyAgICBfX29bJzY0NSddID0gMTE2CisgICAgX19vWyc2NDYnXSA9IDEwMQorICAgIF9fb1snNjQ3J10gPSAxMDkKKyAgICBfX29bJzY0OCddID0gMAorICAgIF9fb1snNjQ5J10gPSA4MworICAgIF9fb1snNjUwJ10gPSAxMjEKKyAgICBfX29bJzY1MSddID0gMTE1CisgICAgX19vWyc2NTInXSA9IDc3CisgICAgX19vWyc2NTMnXSA9IDEwNQorICAgIF9fb1snNjU0J10gPSAxMTAKKyAgICBfX29bJzY1NSddID0gMAorICAgIF9fb1snNjU2J10gPSA4NAorICAgIF9fb1snNjU3J10gPSAxMDEKKyAgICBfX29bJzY1OCddID0gMTIwCisgICAgX19vWyc2NTknXSA9IDExNgorICAgIF9fb1snNjYwJ10gPSAwCisKK19fbyA9IF9fb2JqWzI3NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNzVdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjc2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjc3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzddICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzhdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4MF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODVdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODZdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODddICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODhdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsyODkuMF0KKyAgICBfX29bJzEnXSA9IF9fb2JqWzI5MC4wXQorICAgIF9fb1snMiddID0gX19vYmpbMjkxLjBdCisgICAgX19vWyczJ10gPSBfX29ialsyOTIuMF0KKyAgICBfX29bJzQnXSA9IF9fb2JqWzI5My4wXQorICAgIF9fb1snNSddID0gX19vYmpbMjk0LjBdCisgICAgX19vWyc2J10gPSBfX29ialsyOTUuMF0KKyAgICBfX29bJzcnXSA9IF9fb2JqWzI5Ni4wXQorICAgIF9fb1snOCddID0gX19vYmpbMjk3LjBdCisgICAgX19vWyc5J10gPSBfX29ialsyOTguMF0KKyAgICBfX29bJzEwJ10gPSBfX29ialsyOTkuMF0KKyAgICBfX29bJzExJ10gPSBfX29ialszMDAuMF0KKyAgICBfX29bJzEyJ10gPSBfX29ialszMDEuMF0KKyAgICBfX29bJzEzJ10gPSBfX29ialszMDIuMF0KKyAgICBfX29bJzE0J10gPSBfX29ialszMDMuMF0KKyAgICBfX29bJzE1J10gPSBfX29ialszMDQuMF0KKyAgICBfX29bJzE2J10gPSBfX29ialszMDUuMF0KKworX19vID0gX19vYmpbMjg5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMAorICAgIF9fb1sncmlnaHQnXSA9IDAKKworX19vID0gX19vYmpbMjkwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gNTQ5CisgICAgX19vWydyaWdodCddID0gNTU0CisKK19fbyA9IF9fb2JqWzI5MV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTYzCisKK19fbyA9IF9fb2JqWzI5Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTcwCisKK19fbyA9IF9fb2JqWzI5M10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTc1CisKK19fbyA9IF9fb2JqWzI5NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTg0CisKK19fbyA9IF9fb2JqWzI5NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi82CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTkwCisKK19fbyA9IF9fb2JqWzI5Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTk2CisKK19fbyA9IF9fb2JqWzI5N10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjAxCisKK19fbyA9IF9fb2JqWzI5OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi85CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjknLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjEwCisKK19fbyA9IF9fb2JqWzI5OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MTQKKworX19vID0gX19vYmpbMzAwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzExCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjExJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYxOQorCitfX28gPSBfX29ialszMDFdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjI2CisKK19fbyA9IF9fb2JqWzMwMl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MzQKKworX19vID0gX19vYmpbMzAzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE0JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDY0MgorCitfX28gPSBfX29ialszMDRdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjQ5CisKK19fbyA9IF9fb2JqWzMwNV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2NTYKKworX19vID0gX19vYmpbMzA2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMwN10gIAorICAgIF9fb1snY2ZnQXJncyddID0gbnVsbAorICAgIF9fb1snY2ZnQXJnc0VuY29kZWQnXSA9IHRydWUKKyAgICBfX29bJ2NmZ0hvbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2Znc2l0ZScsICdVVEYtOCcpKQorICAgIF9fb1snY2ZnU2NyaXB0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0QlM0ElMkZ3b3JrJTJGdHV0b3JpYWwlMkZoZWxsby1wcm9nJTJGcHJvZy5jZmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Byb2ZpbGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncmVsZWFzZScsICdVVEYtOCcpKQorICAgIF9fb1sncmVsZWFzZXMnXSA9IF9fb2JqWzMwOC4wXQorICAgIF9fb1sndGFyZ2V0J10gPSBfX29ialszMTIuMF0KKyAgICBfX29bJ3Rlc3QnXSA9IF9fb2JqWzQyNi4wXQorCitfX28gPSBfX29ialszMDhdICAKKyAgICBfX29bJzAnXSA9IF9fb2JqWzMwOS4wXQorCitfX28gPSBfX29ialszMDldICAKKyAgICBfX29bJ2F0dHJzJ10gPSBfX29ialszMTAuMF0KKyAgICBfX29bJ25hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2Znc2l0ZScsICdVVEYtOCcpKQorICAgIF9fb1snb3RoZXJGaWxlcyddID0gX19vYmpbMzExLjBdCisKK19fbyA9IF9fb2JqWzMxMF0gIAorICAgIF9fb1snbGFiZWwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGVmYXVsdCcsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTFdICAKKworX19vID0gX19vYmpbMzEyXSAgLy8gdGkudGFyZ2V0cy5DNjRQCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduRGlyZWN0aXZlU3VwcG9ydGVkJ10gPSB0cnVlCisgICAgX19vWydhciddID0gX19vYmpbMzEzLjBdCisgICAgX19vWydhck9wdHMnXSA9IF9fb2JqWzMxNC4wXQorICAgIF9fb1snYXNtJ10gPSBfX29ialszMTUuMF0KKyAgICBfX29bJ2FzbU9wdHMnXSA9IF9fb2JqWzMxNi4wXQorICAgIF9fb1snYmFzZSddID0gX19vYmpbMzE3LjBdCisgICAgX19vWydiaW5EaXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4cm9vdERpciUyOSUyRmJpbiUyRicsICdVVEYtOCcpKQorICAgIF9fb1snYmluYXJ5UGFyc2VyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMub21mLmNvZi5Db2ZmJywgJ1VURi04JykpCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY2MnXSA9IF9fb2JqWzM2OC4wXQorICAgIF9fb1snY2NDb25maWdPcHRzJ10gPSBfX29ialszNjkuMF0KKyAgICBfX29bJ2NjT3B0cyddID0gX19vYmpbMzcwLjBdCisgICAgX19vWydjb21wYXRpYmxlU3VmZml4ZXMnXSA9IF9fb2JqWzM3MS4wXQorICAgIF9fb1snZGVidWdHZW4nXSA9IF9fb2JqWzM3Mi4wXQorICAgIF9fb1snZXh0ZW5zaW9ucyddID0gX19vYmpbMzczLjBdCisgICAgX19vWydpbmNsdWRlT3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctSSUyNCUyOHJvb3REaXIlMjklMkZpbmNsdWRlJywgJ1VURi04JykpCisgICAgX19vWydpc2EnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjRQJywgJ1VURi04JykpCisgICAgX19vWydsbmsnXSA9IF9fb2JqWzM4My4wXQorICAgIF9fb1snbG5rT3B0cyddID0gX19vYmpbMzg0LjBdCisgICAgX19vWydtb2RlbCddID0gX19vYmpbMzg1LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0M2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhdGhQcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMENETTQyMCcsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm1zJ10gPSBfX29ialszODYuMF0KKyAgICBfX29bJ3Byb2ZpbGVzJ10gPSBfX29ialszODcuMF0KKyAgICBfX29bJ3Jvb3REaXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZCUzQSUyRnRpJTJGYzYwMDAlMkZhbGMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3J0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLnJ0czYwMDAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3NlY3RNYXAnXSA9IF9fb2JqWzQwNi4wXQorICAgIF9fb1snc3RkSW5jbHVkZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZzdGQuaCcsICdVVEYtOCcpKQorICAgIF9fb1snc3RkVHlwZXMnXSA9IF9fb2JqWzQwNy4wXQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzY0UCcsICdVVEYtOCcpKQorICAgIF9fb1sndmVycyddID0gX19vYmpbNDI0LjBdCisgICAgX19vWyd2ZXJzaW9uJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCU3QjElMkMwJTJDNi4xJTJDNScsICdVVEYtOCcpKQorICAgIF9fb1sndmVyc2lvbk1hcCddID0gX19vYmpbNDI1LjBdCisKK19fbyA9IF9fb2JqWzMxM10gIC8vIHRpLnRhcmdldHMuQzY0UC9hcgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGYXInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhcjZ4JywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3JxJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxNF0gIC8vIHRpLnRhcmdldHMuQzY0UC9hck9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmFyT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTVdICAvLyB0aS50YXJnZXRzLkM2NFAvYXNtCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZhc20nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjbDZ4Ky1jJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1tdjY0cCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTZdICAvLyB0aS50YXJnZXRzLkM2NFAvYXNtT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGYXNtT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1xcScsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTddICAvLyB0aS50YXJnZXRzLkM2MgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduRGlyZWN0aXZlU3VwcG9ydGVkJ10gPSB0cnVlCisgICAgX19vWydiaW5hcnlQYXJzZXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5vbWYuY29mLkNvZmYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2JpdHNQZXJDaGFyJ10gPSA4CisgICAgX19vWydjb21wYXRpYmxlU3VmZml4ZXMnXSA9IF9fb2JqWzMxOC4wXQorICAgIF9fb1snZGVidWdHZW4nXSA9IF9fb2JqWzMxOS4wXQorICAgIF9fb1snZXh0ZW5zaW9ucyddID0gX19vYmpbMzIwLjBdCisgICAgX19vWydpc2EnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ21vZGVsJ10gPSBfX29ialszMjguMF0KKyAgICBfX29bJ25hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQzYyJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMEM2MjExJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybXMnXSA9IF9fb2JqWzMyOS4wXQorICAgIF9fb1sncHJvZmlsZXMnXSA9IF9fb2JqWzMzMC4wXQorICAgIF9fb1sncnRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMucnRzNjAwMCcsICdVVEYtOCcpKQorICAgIF9fb1snc2VjdE1hcCddID0gX19vYmpbMzQ5LjBdCisgICAgX19vWydzdGRJbmNsdWRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRnN0ZC5oJywgJ1VURi04JykpCisgICAgX19vWydzdGRUeXBlcyddID0gX19vYmpbMzUwLjBdCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZlcnNpb25NYXAnXSA9IF9fb2JqWzM2Ny4wXQorCitfX28gPSBfX29ialszMThdICAvLyB0aS50YXJnZXRzLkM2Mi9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGY29tcGF0aWJsZVN1ZmZpeGVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxOV0gIC8vIHRpLnRhcmdldHMuQzYyL2RlYnVnR2VuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmRlYnVnR2VuJywgJ1VURi04JykpCisgICAgX19vWydleGVjUGF0dGVybiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1RlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19leGVjLnhkdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVBhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncGFja2FnZSUyRiUyNCUyOHBrZ05hbWUlMjkucGp0JywgJ1VURi04JykpCisgICAgX19vWydwYWNrYWdlVGVtcGxhdGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGklMkZ0YXJnZXRzJTJGY2NzX3BhY2thZ2UueGR0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMF0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucycsICdVVEYtOCcpKQorICAgIF9fb1snLkMnXSA9IF9fb2JqWzMyMS4wXQorICAgIF9fb1snLmFzbSddID0gX19vYmpbMzIyLjBdCisgICAgX19vWycuYyddID0gX19vYmpbMzIzLjBdCisgICAgX19vWycuY2MnXSA9IF9fb2JqWzMyNC4wXQorICAgIF9fb1snLmNwcCddID0gX19vYmpbMzI1LjBdCisgICAgX19vWycuY3h4J10gPSBfX29ialszMjYuMF0KKyAgICBfX29bJy5zNjInXSA9IF9fb2JqWzMyNy4wXQorCitfX28gPSBfX29ialszMjFdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuQycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5DJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLkMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzIyXSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5hc20lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYXNtJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyM10gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2MnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI0XSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmNjJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmNjJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNjJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyNV0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jcHAnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuY3BwJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNwcCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjZdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3h4JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmN4eCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jeHgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI3XSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5zNjIlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczYyJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyOF0gIC8vIHRpLnRhcmdldHMuQzYyL21vZGVsCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRm1vZGVsJywgJ1VURi04JykpCisgICAgX19vWydlbmRpYW4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbGl0dGxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyOV0gIC8vIHRpLnRhcmdldHMuQzYyL3BsYXRmb3JtcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwbGF0Zm9ybXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzMwXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvdmVyYWdlJ10gPSBfX29ialszMzEuMF0KKyAgICBfX29bJ2RlYnVnJ10gPSBfX29ialszMzQuMF0KKyAgICBfX29bJ3Byb2ZpbGUnXSA9IF9fb2JqWzMzNy4wXQorICAgIF9fb1sncmVsZWFzZSddID0gX19vYmpbMzQwLjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtJ10gPSBfX29ialszNDMuMF0KKyAgICBfX29bJ3dob2xlX3Byb2dyYW1fZGVidWcnXSA9IF9fb2JqWzM0Ni4wXQorCitfX28gPSBfX29ialszMzFdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszMzIuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzMzMy4wXQorCitfX28gPSBfX29ialszMzJdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWdwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzM10gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzRdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszMzUuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzMzNi4wXQorCitfX28gPSBfX29ialszMzVdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RlZnMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLURfREVCVUdfJTNEMScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzZdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM3XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzMzOC4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzM5LjBdCisKK19fbyA9IF9fb2JqWzMzOF0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWdwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzOV0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQwXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM0MS4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzQyLjBdCisKK19fbyA9IF9fb2JqWzM0MV0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLU8yJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0Ml0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQzXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM0NC4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzQ1LjBdCisKK19fbyA9IF9fb2JqWzM0NF0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW0lMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLW9lKy1PMistbW8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ1XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDZdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzQ3LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszNDguMF0KKworX19vID0gX19vYmpbMzQ3XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbV9kZWJ1ZyUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctb2UrLS1zeW1kZWJ1ZyUzQWR3YXJmKy1tbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDhdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0OV0gIC8vIHRpLnRhcmdldHMuQzYyL3NlY3RNYXAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc2VjdE1hcCcsICdVVEYtOCcpKQorICAgIF9fb1snLmFyZ3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmJzcyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY2luaXQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNpbyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY29uc3QnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmRhdGEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmZhciddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycucGluaXQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnN0YWNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3N0YWNrJywgJ1VURi04JykpCisgICAgX19vWycuc3dpdGNoJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zeXNtZW0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnRleHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29kZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTBdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcycsICdVVEYtOCcpKQorICAgIF9fb1sndF9DaGFyJ10gPSBfX29ialszNTEuMF0KKyAgICBfX29bJ3RfRG91YmxlJ10gPSBfX29ialszNTIuMF0KKyAgICBfX29bJ3RfRmxvYXQnXSA9IF9fb2JqWzM1My4wXQorICAgIF9fb1sndF9GeG4nXSA9IF9fb2JqWzM1NC4wXQorICAgIF9fb1sndF9JQXJnJ10gPSBfX29ialszNTUuMF0KKyAgICBfX29bJ3RfSW50J10gPSBfX29ialszNTYuMF0KKyAgICBfX29bJ3RfSW50MTYnXSA9IF9fb2JqWzM1Ny4wXQorICAgIF9fb1sndF9JbnQzMiddID0gX19vYmpbMzU4LjBdCisgICAgX19vWyd0X0ludDQwJ10gPSBfX29ialszNTkuMF0KKyAgICBfX29bJ3RfSW50NjQnXSA9IF9fb2JqWzM2MC4wXQorICAgIF9fb1sndF9JbnQ4J10gPSBfX29ialszNjEuMF0KKyAgICBfX29bJ3RfTERvdWJsZSddID0gX19vYmpbMzYyLjBdCisgICAgX19vWyd0X0xMb25nJ10gPSBfX29ialszNjMuMF0KKyAgICBfX29bJ3RfTG9uZyddID0gX19vYmpbMzY0LjBdCisgICAgX19vWyd0X1B0ciddID0gX19vYmpbMzY1LjBdCisgICAgX19vWyd0X1Nob3J0J10gPSBfX29ialszNjYuMF0KKworX19vID0gX19vYmpbMzUxXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9DaGFyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9DaGFyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ialszNTJdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0RvdWJsZQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszNTNdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0Zsb2F0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9GbG9hdCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzU0XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GeG4KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0Z4bicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzU1XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JQXJnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JQXJnJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszNTZdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszNTddICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDE2CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQxNicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbMzU4XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQzMgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50MzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM1OV0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NDAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0ludDQwJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszNjBdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDY0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQ2NCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzYxXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ4CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQ4JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ialszNjJdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xEb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0xEb3VibGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzM2M10gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfTExvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0xMb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszNjRdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0xvbmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzM2NV0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfUHRyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9QdHInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM2Nl0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfU2hvcnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X1Nob3J0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMgorICAgIF9fb1snc2l6ZSddID0gMgorCitfX28gPSBfX29ialszNjddICAvLyB0aS50YXJnZXRzLkM2Mi92ZXJzaW9uTWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnZlcnNpb25NYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEMyMDAwXzMuMDcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMzLjA3JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzU0eF8zLjgzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy44MyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NXhfMi41NiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzIuNTYlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNnhfNC4zMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzQuMzIlMkMwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2OF0gIC8vIHRpLnRhcmdldHMuQzY0UC9jYworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGY2MnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjbDZ4Ky1jJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1tdjY0cCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjldICAvLyB0aS50YXJnZXRzLkM2NFAvY2NDb25maWdPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZjY0NvbmZpZ09wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjY09wdHMucHJlZml4JTI5Ky1tbycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNCUyOGNjT3B0cy5zdWZmaXglMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzcwXSAgLy8gdGkudGFyZ2V0cy5DNjRQL2NjT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGY2NPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLXFxKy1wZHN3MjI1JywgJ1VURi04JykpCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3MV0gIC8vIHRpLnRhcmdldHMuQzY0UC9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmNvbXBhdGlibGVTdWZmaXhlcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc2NCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc2MicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzJdICAvLyB0aS50YXJnZXRzLkM2NFAvZGVidWdHZW4KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmRlYnVnR2VuJywgJ1VURi04JykpCisgICAgX19vWydleGVjUGF0dGVybiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1RlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19leGVjLnhkdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVBhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncGFja2FnZSUyRiUyNCUyOHBrZ05hbWUlMjkucGp0JywgJ1VURi04JykpCisgICAgX19vWydwYWNrYWdlVGVtcGxhdGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGklMkZ0YXJnZXRzJTJGY2NzX3BhY2thZ2UueGR0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3M10gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJywgJ1VURi04JykpCisgICAgX19vWycuQyddID0gX19vYmpbMzc0LjBdCisgICAgX19vWycuYXNtJ10gPSBfX29ialszNzUuMF0KKyAgICBfX29bJy5jJ10gPSBfX29ialszNzYuMF0KKyAgICBfX29bJy5jYyddID0gX19vYmpbMzc3LjBdCisgICAgX19vWycuY3BwJ10gPSBfX29ialszNzguMF0KKyAgICBfX29bJy5jeHgnXSA9IF9fb2JqWzM3OS4wXQorICAgIF9fb1snLnM2MiddID0gX19vYmpbMzgwLjBdCisgICAgX19vWycuczY0J10gPSBfX29ialszODEuMF0KKyAgICBfX29bJy5zNjRQJ10gPSBfX29ialszODIuMF0KKworX19vID0gX19vYmpbMzc0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5DJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5DJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLkMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5hc20nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJTJGJTI3LmFzbSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5hc20nLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhc20nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3N10gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY2MnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJTJGJTI3LmNjJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNjJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3OF0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3BwJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jcHAlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY3BwJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3OV0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3h4JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jeHglMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY3h4JywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4MF0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczYyJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5zNjIlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczYyJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4MV0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5zNjQlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczY0JywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4Ml0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0UCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuczY0UCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5zNjRQJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4M10gIC8vIHRpLnRhcmdldHMuQzY0UC9sbmsKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmxuaycsICdVVEYtOCcpKQorICAgIF9fb1snY21kJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2xuazZ4JywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODRdICAvLyB0aS50YXJnZXRzLkM2NFAvbG5rT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGbG5rT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy13Ky1xKy11K19jX2ludDAwJywgJ1VURi04JykpCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWMrLW0rJTI0JTI4WERDQ0ZHRElSJTI5JTJGJTI0JTQwLm1hcCstbCslMjQlMjhyb290RGlyJTI5JTJGbGliJTJGcnRzNjRwbHVzLmxpYicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODVdICAvLyB0aS50YXJnZXRzLkM2NFAvbW9kZWwKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRm1vZGVsJywgJ1VURi04JykpCisgICAgX19vWydlbmRpYW4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbGl0dGxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4Nl0gIC8vIHRpLnRhcmdldHMuQzY0UC9wbGF0Zm9ybXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnBsYXRmb3JtcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMENETTQyMCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODddICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJywgJ1VURi04JykpCisgICAgX19vWydjb3ZlcmFnZSddID0gX19vYmpbMzg4LjBdCisgICAgX19vWydkZWJ1ZyddID0gX19vYmpbMzkxLjBdCisgICAgX19vWydwcm9maWxlJ10gPSBfX29ialszOTQuMF0KKyAgICBfX29bJ3JlbGVhc2UnXSA9IF9fb2JqWzM5Ny4wXQorICAgIF9fb1snd2hvbGVfcHJvZ3JhbSddID0gX19vYmpbNDAwLjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtX2RlYnVnJ10gPSBfX29ials0MDMuMF0KKworX19vID0gX19vYmpbMzg4XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszODkuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM5MC4wXQorCitfX28gPSBfX29ialszODldICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctZ3AnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzkwXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzkxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszOTIuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM5My4wXQorCitfX28gPSBfX29ialszOTJdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctZycsICdVVEYtOCcpKQorICAgIF9fb1snZGVmcyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctRF9ERUJVR18lM0QxJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM5M10gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM5NF0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM5NS4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzk2LjBdCisKK19fbyA9IF9fb2JqWzM5NV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctZ3AnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzk2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM5N10gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM5OC4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzk5LjBdCisKK19fbyA9IF9fb2JqWzM5OF0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctTzInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzk5XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwMF0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzQwMS4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbNDAyLjBdCisKK19fbyA9IF9fb2JqWzQwMV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctb2UrLU8yKy1tbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDJdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDAzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDA0LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0MDUuMF0KKworX19vID0gX19vYmpbNDA0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1vZSstLXN5bWRlYnVnJTNBZHdhcmYrLW1vJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwNV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDZdICAvLyB0aS50YXJnZXRzLkM2NFAvc2VjdE1hcAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc2VjdE1hcCcsICdVVEYtOCcpKQorICAgIF9fb1snLmFyZ3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmJzcyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY2luaXQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNpbyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY29uc3QnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmRhdGEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmZhciddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycucGluaXQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnN0YWNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3N0YWNrJywgJ1VURi04JykpCisgICAgX19vWycuc3dpdGNoJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zeXNtZW0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnRleHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29kZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDddICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJywgJ1VURi04JykpCisgICAgX19vWyd0X0NoYXInXSA9IF9fb2JqWzQwOC4wXQorICAgIF9fb1sndF9Eb3VibGUnXSA9IF9fb2JqWzQwOS4wXQorICAgIF9fb1sndF9GbG9hdCddID0gX19vYmpbNDEwLjBdCisgICAgX19vWyd0X0Z4biddID0gX19vYmpbNDExLjBdCisgICAgX19vWyd0X0lBcmcnXSA9IF9fb2JqWzQxMi4wXQorICAgIF9fb1sndF9JbnQnXSA9IF9fb2JqWzQxMy4wXQorICAgIF9fb1sndF9JbnQxNiddID0gX19vYmpbNDE0LjBdCisgICAgX19vWyd0X0ludDMyJ10gPSBfX29ials0MTUuMF0KKyAgICBfX29bJ3RfSW50NDAnXSA9IF9fb2JqWzQxNi4wXQorICAgIF9fb1sndF9JbnQ2NCddID0gX19vYmpbNDE3LjBdCisgICAgX19vWyd0X0ludDgnXSA9IF9fb2JqWzQxOC4wXQorICAgIF9fb1sndF9MRG91YmxlJ10gPSBfX29ials0MTkuMF0KKyAgICBfX29bJ3RfTExvbmcnXSA9IF9fb2JqWzQyMC4wXQorICAgIF9fb1sndF9Mb25nJ10gPSBfX29ials0MjEuMF0KKyAgICBfX29bJ3RfUHRyJ10gPSBfX29ials0MjIuMF0KKyAgICBfX29bJ3RfU2hvcnQnXSA9IF9fb2JqWzQyMy4wXQorCitfX28gPSBfX29ials0MDhdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9DaGFyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfQ2hhcicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbNDA5XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRG91YmxlCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0MTBdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GbG9hdAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0Zsb2F0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0MTFdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GeG4KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9GeG4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQxMl0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0lBcmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JQXJnJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0MTNdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQxNF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDE2CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSW50MTYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAyCisgICAgX19vWydzaXplJ10gPSAyCisKK19fbyA9IF9fb2JqWzQxNV0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDMyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSW50MzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQxNl0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDQwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSW50NDAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQxN10gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDY0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSW50NjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQxOF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDgKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQ4JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ials0MTldICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MRG91YmxlCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfTERvdWJsZScsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDIwXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTExvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9MTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDIxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTG9uZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0xvbmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQyMl0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1B0cgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X1B0cicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDIzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfU2hvcnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9TaG9ydCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbNDI0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3ZlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnZlcnMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjbDZ4JywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy12ZXJzaW9uJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyNV0gIC8vIHRpLnRhcmdldHMuQzY0UC92ZXJzaW9uTWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZ2ZXJzaW9uTWFwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDMjAwMF8zLjA3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy4wNyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NHhfMy44MyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzMuODMlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNTV4XzIuNTYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMyLjU2JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzZ4XzQuMzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkM0LjMyJTJDMCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjZdICAKKworZGVsZXRlIF9fbworZGVsZXRlIF9fb2JqClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAucnRhLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJ0YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmIzNDhkZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJ0YS54bWwKQEAgLTAsMCArMSwxMDIgQEAKKzx4ZGMucnVudGltZS5UeXBlcy5SdGFEZWNvZGVyRGF0YT4NCisgIDx0YXJnZXROYW1lPnRpLnRhcmdldHMuQzY0UDwvdGFyZ2V0TmFtZT4NCisgIDxiaW5hcnlQYXJzZXI+dGkudGFyZ2V0cy5vbWYuY29mLkNvZmY8L2JpbmFyeVBhcnNlcj4NCisgIDxlbmRpYW4+bGl0dGxlPC9lbmRpYW4+DQorICA8Yml0c1BlckNoYXI+ODwvYml0c1BlckNoYXI+DQorICA8YXJnU2l6ZT40PC9hcmdTaXplPg0KKyAgPGV2ZW50U2l6ZT40ODwvZXZlbnRTaXplPg0KKyAgPGxvZ2dlcnMtbGVuZ3RoPjA8L2xvZ2dlcnMtbGVuZ3RoPg0KKyAgPG1vZE1hcC1sZW5ndGg+MTU8L21vZE1hcC1sZW5ndGg+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuQXNzZXJ0Ij4NCisgICAgPGlkPjMyNzcwPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuQ29yZSI+DQorICAgIDxpZD4zMjc3MTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkRlZmF1bHRzIj4NCisgICAgPGlkPjMyNzcyPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuRGlhZ3MiPg0KKyAgICA8aWQ+MzI3NzM8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5FcnJvciI+DQorICAgIDxpZD4zMjc3NDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkdhdGUiPg0KKyAgICA8aWQ+MzI3NzU8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5HYXRlTnVsbCI+DQorICAgIDxpZD4zMjc3NjwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZyI+DQorICAgIDxpZD4zMjc3NzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLk1haW4iPg0KKyAgICA8aWQ+MzI3Nzg8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5NZW1vcnkiPg0KKyAgICA8aWQ+MzI3Nzk8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5IZWFwU3RkIj4NCisgICAgPGlkPjMyNzgwPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3RhcnR1cCI+DQorICAgIDxpZD4zMjc4MTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLlN5c3RlbSI+DQorICAgIDxpZD4zMjc4MjwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLlN5c01pbiI+DQorICAgIDxpZD4zMjc4MzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLlRleHQiPg0KKyAgICA8aWQ+MzI3ODQ8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxldnRNYXAtbGVuZ3RoPjQ8L2V2dE1hcC1sZW5ndGg+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfY29uc3RydWN0Ij4NCisgICAgPGlkPjQ2ODwvaWQ+DQorICAgIDxtc2c+JTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUiPg0KKyAgICA8aWQ+NDkyPC9pZD4NCisgICAgPG1zZz4lM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0Ij4NCisgICAgPGlkPjUxMzwvaWQ+DQorICAgIDxtc2c+LS0lM0UrZGVzdHJ1Y3QlM0ErJTI4JTI1cCUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfZGVsZXRlIj4NCisgICAgPGlkPjUzMjwvaWQ+DQorICAgIDxtc2c+LS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKzwveGRjLnJ1bnRpbWUuVHlwZXMuUnRhRGVjb2RlckRhdGE+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGJhNjY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRjLmluYwpAQCAtMCwwICsxLDIgQEAKK3BhY2thZ2UueHMKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGQyNmI2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsCkBAIC0wLDAgKzEsMTU4IEBACisvKgorICogRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIHRlbXBsYXRlCisgKiBsaW5rY21kLnhkdCBpbiB0aGUgdGkudGFyZ2V0cyBwYWNrYWdlIGFuZCB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICovCisKKy8qCisgKiBwdXQgJyIncyBhcm91bmQgcGF0aHMgYmVjYXVzZSwgd2l0aG91dCB0aGlzLCB0aGUgbGlua2VyCisgKiBjb25zaWRlcnMgJy0nIGFzIG1pbnVzIG9wZXJhdG9yLCBub3QgYSBmaWxlIG5hbWUgY2hhcmFjdGVyLgorICovCisKKworCistbCJEOlx3b3JrXHR1dG9yaWFsXGhlbGxvLXByb2dcY2Znc2l0ZVxwYWNrYWdlXGNmZ1xwcm9nX3g2NFAubzY0UCIKKy1sIkU6XHJ0c2NceGRjdG9vbHNfM18xNV8wMF8yOVxwYWNrYWdlc1x0aVx0YXJnZXRzXHJ0czYwMDBcbGliXHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIgorLWwiRTpccnRzY1x4ZGN0b29sc18zXzE1XzAwXzI5XHBhY2thZ2VzXHRpXHRhcmdldHNccnRzNjAwMFxsaWJcYm9vdC5hNjRQIgorCisKKy8qIGZ1bmN0aW9uIGFsaWFzZXMgKi8KKy8qIGlnbm9yZSBlcnJvciBhYm91dCBkZWYgYW5kIHJlZiBpbiB0aGUgc2FtZSBmaWxlICovCistLWRpYWdfcmVtYXJrPTEwMjY4CistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRT1feGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19FPV94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRT1feGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0U9X3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19FPV94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0U9X3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FPV94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FPV94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0U9X3hkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FPV94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0U9X3hkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRT1feGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FPV94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FPV94ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0U9X3hkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRT1feGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0U9X3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0U9X3hkY19ydW50aW1lX0Vycm9yX2dldElkX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRT1feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0U9X3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0U9X3hkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRT1feGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRT1feGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0U9X3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRT1feGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV9mcmVlX19FPV94ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0U9X3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0U9X3hkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FPV94ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRT1feGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FPV94ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19FPV94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRT1feGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRT1feGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRT1feGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0U9X3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9leGl0X19FPV94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FPV94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0U9X3hkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRT1feGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRgorCisKKy8qIEVsZiBzeW1ib2xzICovCistLXN5bWJvbF9tYXAgX19fVElfU1RBQ0tfU0laRT1fX1NUQUNLX1NJWkUKKy0tc3ltYm9sX21hcCBfX19USV9TVEFDS19CQVNFPV9fc3RhY2sKKy0tc3ltYm9sX21hcCBfX19USV9TVEFUSUNfQkFTRT1fX19ic3NfXworLS1zeW1ib2xfbWFwIF9fY19pbnQwMD1fY19pbnQwMAorCisKKworCisKKy0tYXJncyAweDIwMAorLWhlYXAgIDB4MTAwMAorLXN0YWNrIDB4MTAwMAorCitNRU1PUlkKK3sKKyAgICBJUkFNIChSV1gpIDogb3JnID0gMHg4MDAwMDAsIGxlbiA9IDB4MjAwMDAwCisgICAgRERSIDogb3JnID0gMHg4MDAwMDAwMCwgbGVuID0gMHgxMDAwMDAwMAorfQorCisvKgorICogTGlua2VyIGNvbW1hbmQgZmlsZSBjb250cmlidXRpb25zIGZyb20gYWxsIGxvYWRlZCBwYWNrYWdlczoKKyAqLworCisvKiBDb250ZW50IGZyb20geGRjIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5jb3JldmVycyAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2VydmljZXMuZ2xvYmFsIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zaGVsZiAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2VydmljZXMuc3BlYyAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2VydmljZXMuaW50ZXJuLnhzciAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2VydmljZXMuaW50ZXJuLmdlbiAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMucm92IChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHRpLmNhdGFsb2cuYzYwMDAgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnBsYXRmb3JtIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5jZmcgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20gdGkucGxhdGZvcm1zLnNpbTY0UHh4IChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5ydW50aW1lIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHRpLnRhcmdldHMucnRzNjAwMCAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSBjZmdzaXRlIChudWxsKTogKi8KKworCisvKgorICogc3ltYm9saWMgYWxpYXNlcyBmb3IgbnVtZXJpYyBjb25zdGFudHMgb3Igc3RhdGljIGluc3RhbmNlIG9iamVjdHMKKyAqLworX3hkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MgPSAxOworX3hkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DID0gMTsKKworU0VDVElPTlMKK3sKKworCisgICAgLnRleHQ6IGxvYWQgPj4gSVJBTQorICAgIC5zd2l0Y2g6IGxvYWQgPj4gRERSCisgICAgLnN0YWNrOiBsb2FkID4gRERSCisgICAgLmFyZ3M6IGxvYWQgPiBERFIgYWxpZ24gPSAweDQsIGZpbGwgPSAwIHtfYXJnc2l6ZSA9IDB4MjAwOyB9CisgICAgeGRjLm5vbG9hZDogbG9hZCA+PiBERFIsIHR5cGUgPSBOT0xPQUQKKyAgICAuc3lzbWVtOiBsb2FkID4gRERSCisgICAgLmZhcjogbG9hZCA+PiBERFIKKyAgICAuZGF0YTogbG9hZCA+PiBERFIKKyAgICAuY2luaXQ6IGxvYWQgPiBERFIKKyAgICAuYnNzOiBsb2FkID4gRERSCisgICAgLmNvbnN0OiBsb2FkID4+IEREUgorICAgIC5waW5pdDogbG9hZCA+IEREUgorICAgIC5jaW86IGxvYWQgPj4gRERSCisKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUuY2NzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUuY2NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiYjFiZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5jY3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUuY2xhc3MgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5jbGFzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGZjMDE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUuamF2YSBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmdzaXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGVlNjgwMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmdzaXRlLmphdmEKQEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgb3JnLm1vemlsbGEuamF2YXNjcmlwdC4qOworaW1wb3J0IHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLio7CitpbXBvcnQgeGRjLnNlcnZpY2VzLnNwZWMuKjsKKworcHVibGljIGNsYXNzIGNmZ3NpdGUKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFZFUlMgPSAiQCgjKSB4ZGMtdDMyXG4iOworCisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfQm9vbCA9IFByb3RvLkVsbS5uZXdCb29sKCk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfTnVtID0gUHJvdG8uRWxtLm5ld051bSgpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX1N0ciA9IFByb3RvLkVsbS5uZXdTdHIoKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9PYmogPSBQcm90by5FbG0ubmV3T2JqKCk7CisKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRnhuICQkVF9NZXQgPSBuZXcgUHJvdG8uRnhuKG51bGwsIG51bGwsIDAsIC0xLCBmYWxzZSk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLk1hcCAkJFRfTWFwID0gbmV3IFByb3RvLk1hcCgkJFRfT2JqKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uQXJyICQkVF9WZWMgPSBuZXcgUHJvdG8uQXJyKCQkVF9PYmopOworCisgICAgc3RhdGljIGZpbmFsIFhTY3JpcHRPICQkREVGQVVMVCA9IFZhbHVlLkRFRkFVTFQ7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJFVOREVGID0gVW5kZWZpbmVkLmluc3RhbmNlOworCisgICAgc3RhdGljIGZpbmFsIFByb3RvLk9iaiAkJFBhY2thZ2UgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkUGFja2FnZSIpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRNb2R1bGUgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkTW9kdWxlIik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLk9iaiAkJEluc3RhbmNlID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJEluc3RhbmNlIik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLk9iaiAkJFBhcmFtcyA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRQYXJhbXMiKTsKKworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRvYmpGbGRHZXQgPSBHbG9iYWwuZ2V0KCIkJG9iakZsZEdldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRvYmpGbGRTZXQgPSBHbG9iYWwuZ2V0KCIkJG9iakZsZFNldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRwcm94eUdldCA9IEdsb2JhbC5nZXQoIiQkcHJveHlHZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkcHJveHlTZXQgPSBHbG9iYWwuZ2V0KCIkJHByb3h5U2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJGRlbGVnR2V0ID0gR2xvYmFsLmdldCgiJCRkZWxlZ0dldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRkZWxlZ1NldCA9IEdsb2JhbC5nZXQoIiQkZGVsZWdTZXQiKTsKKworICAgIFNjcmlwdGFibGUgeGRjTzsKKyAgICBTZXNzaW9uIHNlczsKKyAgICBWYWx1ZS5PYmogb207CisKKyAgICBib29sZWFuIGlzUk9WOworICAgIGJvb2xlYW4gaXNDRkc7CisKKyAgICBQcm90by5PYmogcGtnUDsKKyAgICBWYWx1ZS5PYmogcGtnVjsKKworICAgIEFycmF5TGlzdDxPYmplY3Q+IGltcG9ydHMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBsb2dnYWJsZXMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBtY2ZncyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IHByb3hpZXMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBzaXplcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IHRkZWZzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisKKyAgICB2b2lkICQkSU1QT1JUUygpCisgICAgeworICAgICAgICBHbG9iYWwuY2FsbEZ4bigibG9hZFBhY2thZ2UiLCB4ZGNPLCAieGRjIik7CisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJsb2FkUGFja2FnZSIsIHhkY08sICJ4ZGMuY29yZXZlcnMiKTsKKyAgICB9CisKKyAgICB2b2lkICQkT0JKRUNUUygpCisgICAgeworICAgICAgICBwa2dQID0gKFByb3RvLk9iailvbS5iaW5kKCJjZmdzaXRlLlBhY2thZ2UiLCBuZXcgUHJvdG8uT2JqKCkpOworICAgICAgICBwa2dWID0gKFZhbHVlLk9iailvbS5iaW5kKCJjZmdzaXRlIiwgbmV3IFZhbHVlLk9iaigiY2Znc2l0ZSIsIHBrZ1ApKTsKKyAgICB9CisKKyAgICB2b2lkICQkU0lOR0xFVE9OUygpCisgICAgeworICAgICAgICBwa2dQLmluaXQoImNmZ3NpdGUuUGFja2FnZSIsIChQcm90by5PYmopb20uZmluZCgieGRjLklQYWNrYWdlLk1vZHVsZSIpKTsKKyAgICAgICAgU2NyaXB0YWJsZSBjYXAgPSAoU2NyaXB0YWJsZSlHbG9iYWwuY2FsbEZ4bigibG9hZENhcHN1bGUiLCB4ZGNPLCAiY2Znc2l0ZS9wYWNrYWdlLnhzIik7CisgICAgICAgIG9tLmJpbmQoInhkYy5JUGFja2FnZSQkY2Fwc3VsZSIsIGNhcCk7CisgICAgICAgIE9iamVjdCBmeG47CisgICAgICAgICAgICAgICAgZnhuID0gR2xvYmFsLmdldChjYXAsICJpbml0Iik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwa2dQLmFkZEZ4bigiaW5pdCIsIChQcm90by5GeG4pb20uZmluZCgieGRjLklQYWNrYWdlJCRpbml0IiksIGZ4bik7CisgICAgICAgICAgICAgICAgZnhuID0gR2xvYmFsLmdldChjYXAsICJjbG9zZSIpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgcGtnUC5hZGRGeG4oImNsb3NlIiwgKFByb3RvLkZ4bilvbS5maW5kKCJ4ZGMuSVBhY2thZ2UkJGNsb3NlIiksIGZ4bik7CisgICAgICAgICAgICAgICAgZnhuID0gR2xvYmFsLmdldChjYXAsICJ2YWxpZGF0ZSIpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgcGtnUC5hZGRGeG4oInZhbGlkYXRlIiwgKFByb3RvLkZ4bilvbS5maW5kKCJ4ZGMuSVBhY2thZ2UkJHZhbGlkYXRlIiksIGZ4bik7CisgICAgICAgICAgICAgICAgZnhuID0gR2xvYmFsLmdldChjYXAsICJleGl0Iik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwa2dQLmFkZEZ4bigiZXhpdCIsIChQcm90by5GeG4pb20uZmluZCgieGRjLklQYWNrYWdlJCRleGl0IiksIGZ4bik7CisgICAgICAgICAgICAgICAgZnhuID0gR2xvYmFsLmdldChjYXAsICJnZXRMaWJzIik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwa2dQLmFkZEZ4bigiZ2V0TGlicyIsIChQcm90by5GeG4pb20uZmluZCgieGRjLklQYWNrYWdlJCRnZXRMaWJzIiksIGZ4bik7CisgICAgICAgICAgICAgICAgZnhuID0gR2xvYmFsLmdldChjYXAsICJnZXRTZWN0cyIpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgcGtnUC5hZGRGeG4oImdldFNlY3RzIiwgKFByb3RvLkZ4bilvbS5maW5kKCJ4ZGMuSVBhY2thZ2UkJGdldFNlY3RzIiksIGZ4bik7CisgICAgICAgIHBrZ1AuYmluZCgiJGNhcHN1bGUiLCBjYXApOworICAgICAgICBwa2dWLmluaXQyKHBrZ1AsICJjZmdzaXRlIiwgVmFsdWUuREVGQVVMVCwgZmFsc2UpOworICAgICAgICBwa2dWLmJpbmQoIiRuYW1lIiwgImNmZ3NpdGUiKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkY2F0ZWdvcnkiLCAiUGFja2FnZSIpOworICAgICAgICBwa2dWLmJpbmQoIiQkcW4iLCAiY2Znc2l0ZS4iKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkdmVycyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgVmFsdWUuTWFwIGF0bWFwID0gKFZhbHVlLk1hcClwa2dWLmdldHYoIiRhdHRyIik7CisgICAgICAgIGF0bWFwLnNlYWwoImxlbmd0aCIpOworICAgICAgICBpbXBvcnRzLmNsZWFyKCk7CisgICAgICAgIHBrZ1YuYmluZCgiJGltcG9ydHMiLCBpbXBvcnRzKTsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CisgICAgICAgIHNiLmFwcGVuZCgidmFyIHBrZyA9IHhkYy5vbVsnY2Znc2l0ZSddO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgiaWYgKHBrZy4kdmVycy5sZW5ndGggPj0gMykge1xuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoInBrZy4kdmVycy5wdXNoKFBhY2thZ2VzLnhkYy5zZXJ2aWNlcy5nbG9iYWwuVmVycy5nZXREYXRlKHhkYy5jc2QoKSArICcvLi4nKSk7XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJ9XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJwa2cuYnVpbGQubGlicmFyaWVzID0gW1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgiXTtcbiIpOworICAgICAgICBzYi5hcHBlbmQoInBrZy5idWlsZC5saWJEZXNjID0gW1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgiXTtcbiIpOworICAgICAgICBzYi5hcHBlbmQoImlmKCdzdWZmaXgnIGluIHhkYy5vbVsneGRjLklQYWNrYWdlJCRMaWJEZXNjJ10pIHtcbiIpOworICAgICAgICBzYi5hcHBlbmQoIn1cbiIpOworICAgICAgICBHbG9iYWwuZXZhbChzYi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICB2b2lkICQkSU5JVElBTElaQVRJT04oKQorICAgIHsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIGlmIChpc0NGRykgeworICAgICAgICB9Ly9pc0NGRworICAgICAgICBHbG9iYWwuY2FsbEZ4bigiaW5pdCIsIHBrZ1YpOworICAgICAgICAoKFZhbHVlLkFycilvbS5maW5kKCIkcGFja2FnZXMiKSkuYWRkKHBrZ1YpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGV4ZWMoIFNjcmlwdGFibGUgeGRjTywgU2Vzc2lvbiBzZXMgKQorICAgIHsKKyAgICAgICAgdGhpcy54ZGNPID0geGRjTzsKKyAgICAgICAgdGhpcy5zZXMgPSBzZXM7CisgICAgICAgIG9tID0gKFZhbHVlLk9iail4ZGNPLmdldCgib20iLCBudWxsKTsKKworICAgICAgICBPYmplY3QgbyA9IG9tLmdldG8oIiRuYW1lIik7CisgICAgICAgIFN0cmluZyBzID0gbyBpbnN0YW5jZW9mIFN0cmluZyA/IChTdHJpbmcpbyA6IG51bGw7CisgICAgICAgIGlzQ0ZHID0gcyAhPSBudWxsICYmIHMuZXF1YWxzKCJjZmciKTsKKyAgICAgICAgaXNST1YgPSBzICE9IG51bGwgJiYgcy5lcXVhbHMoInJvdiIpOworCisgICAgICAgICQkSU1QT1JUUygpOworICAgICAgICAkJE9CSkVDVFMoKTsKKyAgICAgICAgaWYgKGlzUk9WKSB7CisgICAgICAgIH0vL2lzUk9WCisgICAgICAgICQkU0lOR0xFVE9OUygpOworICAgICAgICAkJElOSVRJQUxJWkFUSU9OKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUucGp0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUucGp0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliZjc2OGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5wanQKQEAgLTAsMCArMSw4IEBACis7IENvZGUgQ29tcG9zZXIgUHJvamVjdCBGaWxlLCBWZXJzaW9uIDIuMCAoZG8gbm90IG1vZGlmeSBvciByZW1vdmUgdGhpcyBsaW5lKQorW1Byb2plY3QgU2V0dGluZ3NdCitQcm9qZWN0TmFtZT0iY2Znc2l0ZSIKK1Byb2plY3RUeXBlPUV4dGVybmFsCitDUFVGYW1pbHk9VE1TMzIwQzY0WFgKK1Rvb2w9IkN1c3RvbUJ1aWxkZXIiCitDb25maWc9IlBhY2thZ2UiCitbU291cmNlIEZpbGVzXQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUuc2NoIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUuc2NoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5zY2gKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2ZTk0YjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCkBAIC0wLDAgKzEsNzEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBUaGlzIGZpbGUgY29uZm9ybXMgdG8gdGhlIERURCB4ZGMvYmxkL2J1aWxkLmR0ZCAtLT4KKzxwYWNrYWdlIG5hbWU9ImNmZ3NpdGUiIHZlcnNpb249IiIgcHJvZHVjZXJJZD0idW5kZWZpbmVkIj4KKyAgICA8dW5pdHM+CisgICAgPC91bml0cz4KKyAgICA8c291cmNlcz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZ194NjRQLmMiLz4KKyAgICA8L3NvdXJjZXM+CisgICAgPGNvbmZpZ3VyYXRpb25zPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJEOi93b3JrL3R1dG9yaWFsL2hlbGxvLXByb2cvcHJvZy5jZmciLz4KKyAgICA8L2NvbmZpZ3VyYXRpb25zPgorICAgIDxtYWtlZmlsZXM+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UubWFrIiBzcmM9InBhY2thZ2UuYmxkIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS54ZGMuZGVwIiBzcmM9InBhY2thZ2UueGRjIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAuZGVwIiBzcmM9InBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAiIHNyYz0icGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3JlbC9jZmdzaXRlLnRhci5kZXAiIHNyYz0icGFja2FnZS9yZWwvY2Znc2l0ZS54ZGMuaW5jIi8+CisgICAgPC9tYWtlZmlsZXM+CisgICAgPHRhcmdldHM+CisgICAgICAgIDx0YXJnZXQgbmFtZT0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICAgICAgdmVyc2lvbj0idGkudGFyZ2V0cy5DNjRQezEsMCw2LjEsNSIKKyAgICAgICAgICAgIHBsYXRmb3JtPSJ0aS5wbGF0Zm9ybXMuc2ltNnh4eDpUTVMzMjBDRE00MjAiCisgICAgICAgICAgICBpc2E9IjY0UCIKKyAgICAgICAgICAgIHN1ZmZpeD0iNjRQIgorICAgICAgICAgICAgcm9vdERpcj0iZDovdGkvYzYwMDAvYWxjIgorICAgICAgICAgICAgb3M9InVuZGVmaW5lZCIKKyAgICAgICAgICAgIHJ0cz0idGkudGFyZ2V0cy5ydHM2MDAwIj4KKyAgICAgICAgICAgIDxtb2RlbCBlbmRpYW49ImxpdHRsZSIKKyAgICAgICAgICAgICAgICBjb2RlTW9kZWw9InVuZGVmaW5lZCIKKyAgICAgICAgICAgICAgICBkYXRhTW9kZWw9InVuZGVmaW5lZCIvPgorICAgICAgICA8L3RhcmdldD4KKyAgICA8L3RhcmdldHM+CisgICAgPGxpYnJhcmllcz4KKyAgICA8L2xpYnJhcmllcz4KKyAgICA8ZXhlY3V0YWJsZXM+CisgICAgPGV4ZWN1dGFibGUgbmFtZT0icHJvZyIKKyAgICAgICAgcG5hbWU9InByb2cueDY0UCIKKyAgICAgICAgdGFyZ2V0PSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgIHBsYXRmb3JtPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiCisgICAgICAgIHByb2ZpbGU9InJlbGVhc2UiCisgICAgICAgIHhDZmdTY3JpcHQ9InBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmciCisgICAgICAgIHhDZmdQcmVmaXg9InBhY2thZ2UvY2ZnL3Byb2dfeDY0UCIKKyAgICAgICAgY2ZnU2NyaXB0PSJEOi93b3JrL3R1dG9yaWFsL2hlbGxvLXByb2cvcHJvZy5jZmciCisgICAgICAgIGNmZ0FyZ3M9Im51bGwiCisgICAgICAgIC8+CisgICAgPC9leGVjdXRhYmxlcz4KKyAgICA8dGVzdHM+CisgICAgPHRlc3QgZXhlTmFtZT0icHJvZy54NjRQIgorICAgICAgICBhcmdzPSIiCisgICAgICAgIGdyb3VwTmFtZT0icHJvZy54NjRQIgorICAgICAgICByZWZPdXRwdXQ9InVuZGVmaW5lZCIKKyAgICAgICAgcmVmRXhpdENvZGU9IjAiCisgICAgICAgIGV4ZWNBcmdzPSIiCisgICAgICAgIC8+CisgICAgPC90ZXN0cz4KKyAgICA8cmVsZWFzZXMgcmVsRGlyPSJwYWNrYWdlL3JlbC8iPgorICAgIDxyZWxlYXNlIG5hbWU9ImNmZ3NpdGUiCisgICAgICAgIHBuYW1lPSJjZmdzaXRlLnRhciIKKyAgICAgICAgbGFiZWw9ImRlZmF1bHQiCisgICAgPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL2J1aWxkLmNmZyIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UuZXh0LnhtbCIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UueGRjLmluYyIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UuYmxkLnhtbCIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UucmVsLmRvdCIvPgorICAgIDwvcmVsZWFzZT4KKyAgICA8L3JlbGVhc2VzPgorICAgIDxyZXBvc2l0b3JpZXM+CisgICAgPC9yZXBvc2l0b3JpZXM+Cis8L3BhY2thZ2U+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS5kZWZzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU3NDQyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaApAQCAtMCwwICsxLDEzIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaWZuZGVmIGNmZ3NpdGVfXworI2RlZmluZSBjZmdzaXRlX18KKworCisKKyNlbmRpZiAvKiBjZmdzaXRlX18gKi8gCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS5kb2MueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2UuZG9jLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjRhYTg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2UuZG9jLnhtbApAQCAtMCwwICsxLDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cGFja2FnZSBraW5kPSdwYWNrYWdlJyBuYW1lPSdjZmdzaXRlJyBub2RvYz0nMScgcm9vdD0nLi4vJyBzdW1tYXJ5PSdQYWNrYWdlK2dlbmVyYXRlZCtieSt4ZGMudG9vbHMuY29uZmlndXJvJz4KKyAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXBhY2thZ2UlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VjZmdzaXRlJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyU3QicvPgorICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTdEJy8+Cis8L3BhY2thZ2U+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2UueGRjLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNDZkYjRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2UueGRjLmRlcApAQCAtMCwwICsxLDU5IEBACitjbGVhbjo6DQorCSQoUk0pIHBhY2thZ2UvY2Znc2l0ZS5zY2gNCisJJChSTSkgcGFja2FnZS8udmVyc19nMTUwDQorCSQoUk0pIHBhY2thZ2UvLnZlcnNfcjE1MA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX2IxNTANCisJJChSTSkgcGFja2FnZS8udmVyc19jMTUwDQorCSQoUk0pIHBhY2thZ2UvLnhkYy10MzINCisJJChSTSkgcGFja2FnZS9jZmdzaXRlLmphdmENCisJJChSTSkgcGFja2FnZS9jZmdzaXRlLmNsYXNzDQorCSQoUk0pIHBhY2thZ2UvcGFja2FnZV9jZmdzaXRlLmMNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlLmRlZnMuaA0KKwkkKFJNKSBwYWNrYWdlL3BhY2thZ2UuZG9jLnhtbA0KKwkkKFJNKSBwYWNrYWdlL2NmZ3NpdGUuY2NzDQorCisuaW50ZXJmYWNlczogcGFja2FnZS9jZmdzaXRlLnNjaCBwYWNrYWdlLy52ZXJzX2cxNTAgcGFja2FnZS8udmVyc19yMTUwIHBhY2thZ2UvLnZlcnNfYjE1MCBwYWNrYWdlLy52ZXJzX2MxNTAgcGFja2FnZS8ueGRjLXQzMiBwYWNrYWdlL2NmZ3NpdGUuamF2YSBwYWNrYWdlL2NmZ3NpdGUuY2xhc3MgcGFja2FnZS9wYWNrYWdlX2NmZ3NpdGUuYyBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oIHBhY2thZ2UvcGFja2FnZS5kb2MueG1sIHBhY2thZ2UvY2Znc2l0ZS5jY3MgCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19nMTUwCitwYWNrYWdlLy52ZXJzX2cxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19yMTUwCitwYWNrYWdlLy52ZXJzX3IxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19iMTUwCitwYWNrYWdlLy52ZXJzX2IxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19jMTUwCitwYWNrYWdlLy52ZXJzX2MxNTA6CisKKy5pbnRlcmZhY2VzOiAKKworIyBzY2hlbWEgaW5jbHVkZSBmaWxlIGRlcGVuZGVuY2llcworcGFja2FnZS54czoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS54cw0KKworIyBzY2hlbWEgdXBkYXRlIGRlcGVuZGVuY2llcworcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IHhkYy9JUGFja2FnZS54ZGMNCit4ZGMvSVBhY2thZ2UueGRjOg0KK3ZwYXRoIHhkYy9JUGFja2FnZS54ZGMgJChYUEtHVlBBVEgpDQorCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9qcy5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9qcy5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEveGJlYW4uamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEveGJlYW4uamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4veHNyL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL3hzci9qYXZhL3BhY2thZ2UuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3Rhci5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS90YXIuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2NtZC9qYXZhL3BhY2thZ2UuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2FudGxyLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2FudGxyLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvc3BlYy9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL3NwZWMvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2dlbi9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9nZW4vamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9lY2ouamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvZWNqLmphcg0KK2VuZGlmCisjIGdvYWxzIGZvciBmaWxlcyBnZW5lcmF0ZWQgZHVyaW5nIHNjaGVtYSBnZW5lcmF0aW9uIGJ1dCB1bnNwZWNpZmllZCBieSBzY2hlbWEncyBwYXR0ZXJuIHJ1bGUKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2UueGRjLmluYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU2YWZlMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKQEAgLTAsMCArMSwxNCBAQAorcGFja2FnZS54ZGMNCitwYWNrYWdlLnhzDQorcGFja2FnZS9jZmdzaXRlLnNjaA0KK3BhY2thZ2UvLnZlcnNfZzE1MA0KK3BhY2thZ2UvLnZlcnNfcjE1MA0KK3BhY2thZ2UvLnZlcnNfYjE1MA0KK3BhY2thZ2UvLnZlcnNfYzE1MA0KK3BhY2thZ2UvLnhkYy10MzINCitwYWNrYWdlL2NmZ3NpdGUuamF2YQ0KK3BhY2thZ2UvY2Znc2l0ZS5jbGFzcw0KK3BhY2thZ2UvcGFja2FnZV9jZmdzaXRlLmMNCitwYWNrYWdlL3BhY2thZ2UuZGVmcy5oDQorcGFja2FnZS9wYWNrYWdlLmRvYy54bWwNCitwYWNrYWdlL2NmZ3NpdGUuY2NzDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2VfY2Znc2l0ZS5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2VfY2Znc2l0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5N2M4NzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZV9jZmdzaXRlLmMKQEAgLTAsMCArMSwyMSBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworX19GQVJfXyBjaGFyIGNmZ3NpdGVfX2R1bW15X187CisKKyNkZWZpbmUgX194ZGNfUEtHVkVSUyBudWxsCisjZGVmaW5lIF9feGRjX1BLR05BTUUgY2Znc2l0ZQorI2RlZmluZSBfX3hkY19QS0dQUkVGSVggY2Znc2l0ZV8KKworI2lmZGVmIF9feGRjX2JsZF9wa2dfY19fCisjZGVmaW5lIF9fc3RyaW5naWZ5KGEpICNhCisjZGVmaW5lIF9fbG9jYWxfaW5jbHVkZShhKSBfX3N0cmluZ2lmeShhKQorI2luY2x1ZGUgX19sb2NhbF9pbmNsdWRlKF9feGRjX2JsZF9wa2dfY19fKQorI2VuZGlmCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9yZWwvY2Znc2l0ZS54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvY2Znc2l0ZS9wYWNrYWdlL3JlbC9jZmdzaXRlLnhkYy5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2FkMjM5MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL2NmZ3NpdGUvcGFja2FnZS9yZWwvY2Znc2l0ZS54ZGMuaW5jCkBAIC0wLDAgKzEsNSBAQAorcGFja2FnZS9idWlsZC5jZmcKK3BhY2thZ2UvcGFja2FnZS5leHQueG1sCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYworcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKK3BhY2thZ2UvcGFja2FnZS5yZWwuZG90CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9tYWtlZmlsZSBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL21ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5YWYwMzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9tYWtlZmlsZQpAQCAtMCwwICsxLDUxIEBACisjIworIyMgLS0tLS0tLS0gY2hhcmxpZS9zcXJ0bGliL3NhbXBsZXMvbWFrZWZpbGUgLS0tLS0tLS0gIyMKKyMjCisKKyMjIC0tLS0tLS0tIGhvc3Qtc3BlY2lmaWMgcGF0aHMgLS0tLS0tLS0gIyMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgTU9ESUZZIFRIRVNFIFBBVEhTIFBFUiBZT1VSIElOU1RBTExBVElPTgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyBXSU5ET1dTIEhPU1QgLS0gU1VSUk9VTkQgVEhFU0UgUEFUSFMgV0lUSCAiIiAiIiBJRiBUSEVZIENPTlRBSU4gU1BBQ0VTICAKK1hEQ1JPT1QgPSBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkKK0M2WFRPT0xTID0gZDovdGkvYzYwMDAvYWxjCisKKyMjIC0tLS0tLS0tIHJlbW92ZSBjb21tYW5kIC0tLS0tLS0tICMjCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIyBMSU5VWCBIT1NUUyAtLSBSRVBMQUNFICQoWERDUk9PVCkvYmluL3JtIFdJVEggcm0KK1JNQ01EID0gJChYRENST09UKS9iaW4vcm0KKworCisjIyAtLS0tLS0tLWJ1aWxkIHRvb2xzIC0tLS0tLS0tICMjCitDT05GSUdVUk8gPSAkKFhEQ1JPT1QpL3hzIHhkYy50b29scy5jb25maWd1cm8KK0xPQURFUiA9ICQoWERDUk9PVCkveHMgeGRjLnRvb2xzLmxvYWRlcgorQ0MgPSAkKEM2WFRPT0xTKS9iaW4vY2w2eCAtcQorCisjIyAtLS0tLS0tLSBidWlsZCBwYXJhbWV0ZXJzIC0tLS0tLS0tICMjCitDT05GSUcgPSBjZmdzaXRlCitUQVJHRVQgPSB0aS50YXJnZXRzLkM2NFAKK1BMQVRGT1JNID0gdGkucGxhdGZvcm1zLnNpbTY0UHh4CitQUk9HTkFNRSA9IHByb2cKKworCisjIyAtLS0tLS0tLSBhbGwtcnVsZSAtLS0tLS0tLSAjIworYWxsIDogJChQUk9HTkFNRSkub3V0CisKKworIyMgLS0tLS0tLS0gY29uZmlnLXJ1bGUgLS0tLS0tLS0gIyMKKyQoQ09ORklHKS9saW5rZXIuY21kICQoQ09ORklHKS9jb21waWxlci5vcHQgOiAkKFBST0dOQU1FKS5jZmcKKwkkKENPTkZJR1VSTykgLWMgJChDNlhUT09MUykgLXQgJChUQVJHRVQpIC1wICQoUExBVEZPUk0pIC1vICQoQ09ORklHKSAkKFBST0dOQU1FKS5jZmcKKworIyMgLS0tLS0tLS0gY29tcGlsZS1ydWxlIC0tLS0tLS0tICMjCiskKFBST0dOQU1FKS5vYmogOiAkKFBST0dOQU1FKS5jICQoQ09ORklHKS9jb21waWxlci5vcHQKKwkkKENDKSAtQCQoQ09ORklHKS9jb21waWxlci5vcHQgLWMgJChQUk9HTkFNRSkuYworCisjIyAtLS0tLS0tLSBsaW5rLXJ1bGUgLS0tLS0tLS0gIyMKKyQoUFJPR05BTUUpLm91dCA6ICQoUFJPR05BTUUpLm9iaiAkKENPTkZJRykvbGlua2VyLmNtZAorCSQoQ0MpIC16IC1jICReIC1vICQoUFJPR05BTUUpLm91dCAtbCAkKEM2WFRPT0xTKS9saWIvcnRzNjRwbHVzLmxpYgorCisKKyMjIC0tLS0tLS0tIHRlc3QtcnVsZSAtLS0tLS0tLSAjIwordGVzdCA6ICQoUFJPR05BTUUpLm91dAorCSQoTE9BREVSKSAkKFBST0dOQU1FKS5vdXQKKworIyMgLS0tLS0tLS0gY2xlYW4tcnVsZSAtLS0tLS0tLSAjIworY2xlYW4gOgorCSQoWERDUk9PVCkvYmluL3JtIC1yZiAkKENPTkZJRykgKi5vYmogKi5vdXQKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL3Byb2cuYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL3Byb2cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjFmZDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvcHJvZy5jCkBAIC0wLDAgKzEsMTEgQEAKKy8qDQorICogID09PT09PT09IGhlbGxvLXByb2cvcHJvZy5jID09PT09PT09DQorICovDQorDQorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c3RlbS5oPg0KKyANCitpbnQgbWFpbigpDQorew0KKyAgICBTeXN0ZW1fcHJpbnRmKCJIZWxsbyBXb3JsZFxuIik7DQorICAgIHJldHVybiAwOw0KK30NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9wcm9nLmNmZyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9oZWxsby1wcm9nL3Byb2cuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1YWEyOGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9wcm9nLmNmZwpAQCAtMCwwICsxLDUgQEAKKy8qDQorICogID09PT09PT09IGhlbGxvLXByb2cvcHJvZy5jZmcgPT09PT09PT0NCisgKi8NCisNCit2YXIgU3lzdGVtID0geGRjLnVzZU1vZHVsZSgneGRjLnJ1bnRpbWUuU3lzdGVtJyk7DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvcHJvZy5vYmogYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9wcm9nLm9iagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjFhMWQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvcHJvZy5vYmoKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvcHJvZy5vdXQgYi9zcmMvcGFydDEvZXhhbXBsZXMvaGVsbG8tcHJvZy9wcm9nLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZjgyOTMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2hlbGxvLXByb2cvcHJvZy5vdXQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvLmNwcm9qZWN0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvLmNwcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNTAyNjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy8uY3Byb2plY3QKQEAgLTAsMCArMSwyNjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPD9maWxlVmVyc2lvbiA0LjAuMD8+DQorDQorPGNwcm9qZWN0Pg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyI+DQorPGNjb25maWd1cmF0aW9uIGlkPSIwLjEzODg5NjA2NTciPg0KKzxzdG9yYWdlTW9kdWxlIGJ1aWxkU3lzdGVtSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmNvbmZpZ3VyYXRpb25EYXRhUHJvdmlkZXIiIGlkPSIwLjEzODg5NjA2NTciIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyIgbmFtZT0iRGVmYXVsdCI+DQorPGV4dGVybmFsU2V0dGluZ3MvPg0KKzxleHRlbnNpb25zPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLlZDRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkdBU0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5HTERFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuR0NDRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPC9leHRlbnNpb25zPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0iY2R0QnVpbGRTeXN0ZW0iIHZlcnNpb249IjQuMC4wIj4NCis8Y29uZmlndXJhdGlvbiBhcnRpZmFjdE5hbWU9ImlzcXJ0LXByb2ciIGJ1aWxkUHJvcGVydGllcz0iIiBkZXNjcmlwdGlvbj0iIiBpZD0iMC4xMzg4OTYwNjU3IiBuYW1lPSJEZWZhdWx0IiBwYXJlbnQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLmNmZyI+DQorPGZvbGRlckluZm8gaWQ9IjAuMTM4ODk2MDY1Ny4iIG5hbWU9Ii8iIHJlc291cmNlUGF0aD0iIj4NCis8dG9vbENoYWluIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS50b29sY2hhaW4uMTUzOTgxMjMwNCIgbmFtZT0iTm8gVG9vbENoYWluIiByZXNvdXJjZVR5cGVCYXNlZERpc2NvdmVyeT0iZmFsc2UiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLnRvb2xjaGFpbiI+DQorPHRhcmdldFBsYXRmb3JtIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS50b29sY2hhaW4uMTUzOTgxMjMwNC4xMzM1NTMzNDExIiBuYW1lPSIiLz4NCis8YnVpbGRlciBidWlsZFBhdGg9IiIgY29tbWFuZD0iJHtYRENST09UfS9nbWFrZSIgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmRlZmF1bHQuYnVpbGRlci44Nzc2NTk1MDYiIGtlZXBFbnZpcm9ubWVudEluQnVpbGRmaWxlPSJmYWxzZSIgbWFuYWdlZEJ1aWxkT249ImZhbHNlIiBuYW1lPSJHbnUgTWFrZSBCdWlsZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5kZWZhdWx0LmJ1aWxkZXIiLz4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmxpYnMuMTMyMjE1NzEwMCIgbmFtZT0iaG9sZGVyIGZvciBsaWJyYXJ5IHNldHRpbmdzIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIubGlicyIvPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuNTEwNjU4NjYxIiBuYW1lPSJHTlUgQysrIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuMjA4NDgzNjU2MCIgbGFuZ3VhZ2VJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZysrIiBsYW5ndWFnZU5hbWU9IkdOVSBDKysiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5jeHhTb3VyY2Usb3JnLmVjbGlwc2UuY2R0LmNvcmUuY3h4SGVhZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuMTQ2MjU4ODMwMiIgbmFtZT0iR05VIEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS42ODI2OTg0MDciIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmdjYyIgbGFuZ3VhZ2VOYW1lPSJHTlUgQyIgc291cmNlQ29udGVudFR5cGU9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmNTb3VyY2Usb3JnLmVjbGlwc2UuY2R0LmNvcmUuY0hlYWRlciIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZSIvPg0KKzwvdG9vbD4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLjEzNDYyNjQ1OTMiIG5hbWU9IlVQQyIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyIj4NCis8aW5wdXRUeXBlIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlLjY2OTEwNjQ4MCIgbGFuZ3VhZ2VJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGFyc2VyLnVwYy51cGMiIGxhbmd1YWdlTmFtZT0iVVBDIiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGFyc2VyLnVwYy51cGNTb3VyY2UiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUiLz4NCis8L3Rvb2w+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci4xMzcwMDM3NTA5IiBuYW1lPSJBc3NlbWJseSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyIj4NCis8aW5wdXRUeXBlIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlLjE3NzU1NDUwMjciIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmFzc2VtYmx5IiBsYW5ndWFnZU5hbWU9IkFzc2VtYmx5IiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuYXNtU291cmNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzwvdG9vbENoYWluPg0KKzwvZm9sZGVySW5mbz4NCis8L2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0idHJ1ZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJGaWxlUHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bGMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsQyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHNjYW5uZXJDb25maWdCdWlsZEluZm8gaW5zdGFuY2VJZD0iMC4xMzg4OTYwNjU3Ij4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJGaWxlUHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bGMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsQyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9zY2FubmVyQ29uZmlnQnVpbGRJbmZvPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZXh0ZXJuYWxTZXR0aW5ncyIvPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkdGFyZ2V0cyI+DQorPGJ1aWxkVGFyZ2V0cz4NCis8dGFyZ2V0IG5hbWU9InRlc3QiIHBhdGg9IiIgdGFyZ2V0SUQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5NYWtlVGFyZ2V0QnVpbGRlciI+DQorPGJ1aWxkQ29tbWFuZD4ke1hEQ1JPT1R9L2dtYWtlPC9idWlsZENvbW1hbmQ+DQorPGJ1aWxkQXJndW1lbnRzPjwvYnVpbGRBcmd1bWVudHM+DQorPGJ1aWxkVGFyZ2V0PnRlc3Q8L2J1aWxkVGFyZ2V0Pg0KKzxzdG9wT25FcnJvcj50cnVlPC9zdG9wT25FcnJvcj4NCis8dXNlRGVmYXVsdENvbW1hbmQ+ZmFsc2U8L3VzZURlZmF1bHRDb21tYW5kPg0KKzxydW5BbGxCdWlsZGVycz50cnVlPC9ydW5BbGxCdWlsZGVycz4NCis8L3RhcmdldD4NCis8L2J1aWxkVGFyZ2V0cz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jY29uZmlndXJhdGlvbj4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9ImNkdEJ1aWxkU3lzdGVtIiB2ZXJzaW9uPSI0LjAuMCI+DQorPHByb2plY3QgaWQ9ImlzcXJ0LXByb2cubnVsbC4xNjEzNDY0ODQ0IiBuYW1lPSJpc3FydC1wcm9nIi8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvLnByb2plY3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjliNDFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvLnByb2plY3QKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8cHJvamVjdERlc2NyaXB0aW9uPg0KKwk8bmFtZT5pc3FydC1wcm9nPC9uYW1lPg0KKwk8Y29tbWVudD48L2NvbW1lbnQ+DQorCTxwcm9qZWN0cz4NCisJPC9wcm9qZWN0cz4NCisJPGJ1aWxkU3BlYz4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuZ2VubWFrZWJ1aWxkZXI8L25hbWU+DQorCQkJPHRyaWdnZXJzPmNsZWFuLGZ1bGwsaW5jcmVtZW50YWwsPC90cmlnZ2Vycz4NCisJCQk8YXJndW1lbnRzPg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+P25hbWU/PC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5hcHBlbmRfZW52aXJvbm1lbnQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5hdXRvQnVpbGRUYXJnZXQ8L2tleT4NCisJCQkJCTx2YWx1ZT5hbGw8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkQXJndW1lbnRzPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZENvbW1hbmQ8L2tleT4NCisJCQkJCTx2YWx1ZT4ke1hEQ1JPT1R9L2dtYWtlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZExvY2F0aW9uPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5jbGVhbkJ1aWxkVGFyZ2V0PC9rZXk+DQorCQkJCQk8dmFsdWU+Y2xlYW48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmNvbnRlbnRzPC9rZXk+DQorCQkJCQk8dmFsdWU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5hY3RpdmVDb25maWdTZXR0aW5nczwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQXV0b0J1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUNsZWFuQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVGdWxsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5mdWxsQnVpbGRUYXJnZXQ8L2tleT4NCisJCQkJCTx2YWx1ZT5hbGw8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnN0b3BPbkVycm9yPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUudXNlRGVmYXVsdEJ1aWxkQ21kPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuU2Nhbm5lckNvbmZpZ0J1aWxkZXI8L25hbWU+DQorCQkJPGFyZ3VtZW50cz4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwk8L2J1aWxkU3BlYz4NCisJPG5hdHVyZXM+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5jb3JlLmNuYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuU2Nhbm5lckNvbmZpZ05hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5tYW5hZ2VkQnVpbGROYXR1cmU8L25hdHVyZT4NCisJPC9uYXR1cmVzPg0KKzwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvLmludGVyZmFjZXMgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlLy5pbnRlcmZhY2VzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlLy5pbnRlcmZhY2VzCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlLy5saWJyYXJpZXMsNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS8ubGlicmFyaWVzLDY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS8ubGlicmFyaWVzLDY0UApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIwZWQ3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAwCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSBEOi93b3JrL3R1dG9yaWFsL3JlcG8KK292ZXJyaWRlIFhEQ1JPT1QgPSBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkKK292ZXJyaWRlIFhEQ0JVSUxEQ0ZHID0gLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IEQ6L3dvcmsvdHV0b3JpYWwvcmVwbztlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXM7Li4KK0hPU1RPUyA9IFdpbmRvd3MKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL2NvbXBpbGVyLm9wdCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvY29tcGlsZXIub3B0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5M2Y5Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL2NvbXBpbGVyLm9wdApAQCAtMCwwICsxIEBACistbXY2NHAgLUkiRDovd29yay90dXRvcmlhbC9yZXBvIiAtSSJlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMiIC1JIkQ6L3dvcmsvdHV0b3JpYWwvaXNxcnQtcHJvZy9jZmdzaXRlLy4uIiAtSWQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlIC1EeGRjX3RhcmdldF90eXBlc19fPSJ0aS90YXJnZXRzL3N0ZC5oIiAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0iRDovd29yay90dXRvcmlhbC9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgiCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL2NvbmZpZy5ibGQgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL2NvbmZpZy5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM2NjQ2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvY29uZmlnLmJsZApAQCAtMCwwICsxLDYgQEAKKy8qIFRISVMgSVMgQSBHRU5FUkFURUQgRklMRSAtLSBETyBOT1QgRURJVCAqLworLyogY29uZmlndXJvIHdhcyBwYXNzZWQgdGhlIHRhcmdldCdzIG5hbWUgZXhwbGljaXRseSAqLwordmFyIHRhcmdldCAgPSB4ZGMubW9kdWxlKCd0aS50YXJnZXRzLkM2NFAnKTsKK0J1aWxkLnRhcmdldHMgPSBbdGFyZ2V0XTsKKy8qIGNvbmZpZ3VybyB3YXMgcGFzc2VkIHRoZSB0YXJnZXQncyByb290RGlyIGV4cGxpY2l0bHkgKi8KK3RhcmdldC5yb290RGlyID0gJ2Q6L3RpL2M2MDAwL2FsYyc7CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL2N1c3RvbS5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL2N1c3RvbS5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkM2QzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvY3VzdG9tLm1hawpAQCAtMCwwICsxLDcgQEAKKyMjIFRISVMgSVMgQSBHRU5FUkFURUQgRklMRSAtLSBETyBOT1QgRURJVAorLmNvbmZpZ3VybzogbGlua2VyLmNtZAorCitsaW5rZXIuY21kOiBcCisgIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQIFwKKyAgcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbAorCSQoU0VEKSAncyJeXCJcKHBhY2thZ2UvY2ZnL3Byb2dfeDY0UGNmZy5jbWRcKVwiJCIiXCJEOi93b3JrL3R1dG9yaWFsL2lzcXJ0LXByb2cvY2Znc2l0ZS9cMVwiIicgcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbCA+ICRACmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL2xpbmtlci50eHQgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL2xpbmtlci50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWY3ZjIzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvbGlua2VyLnR4dApAQCAtMCwwICsxLDUgQEAKK0ZJTEUgREVMRVRFRA0KKw0KK01pY3Jvc29mdCBGb3JlZnJvbnQgU2VjdXJpdHkgZm9yIEV4Y2hhbmdlIFNlcnZlciByZW1vdmVkIGEgZmlsZSBzaW5jZSBpdCB3YXMgZm91bmQgdG8gbWF0Y2ggYSBmaWx0ZXIuDQorRmlsZSBuYW1lOiAicGFydDEtemlwLmJhay0+bGlua2VyLmNtZCINCitGaWx0ZXIgbmFtZTogIkZJTEUgRklMVEVSPSBGaWxlIFR5cGVzOiAqLkNNRCINCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UuYmxkIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZWUyMjdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlLmJsZApAQCAtMCwwICsxLDg2IEBACisvKiBUSElTIElTIEEgR0VORVJBVEVEIEZJTEUgLS0gRE8gTk9UIEVESVQgKi8KKwordmFyIHRhcmcgPSB4ZGMubW9kdWxlKCd0aS50YXJnZXRzLkM2NFAnKTsKKy8qIGNvbmZpZ3VybyB3YXMgdG9sZCB0aGUgcGxhdGZvcm0gZXhwbGljaXRseSAqLwordmFyIHBsYXRmb3JtID0gJ3RpLnBsYXRmb3Jtcy5zaW02NFB4eCc7CisKKy8qIGRlY2lkZSB3aGV0aGVyIHRvIG1ha2UgYW4gYXNzZW1ibHkgb3IgYW4gZXhlY3V0YWJsZSAqLwordmFyIG1ha2VBc3NlbWJseSA9IGZhbHNlOworCisKK3ZhciBFeGVjdXRhYmxlID0geGRjLm1vZHVsZSgneGRjLmJsZC5FeGVjdXRhYmxlJyk7CisKK3ZhciBleGVPcHRzID0gbmV3IEV4ZWN1dGFibGUuQXR0cnMoeworICAgICAgICBjZmdTY3JpcHQ6ICdEOi93b3JrL3R1dG9yaWFsL2lzcXJ0LXByb2cvcHJvZy5jZmcnLAorICAgICAgICBwcm9maWxlOiAncmVsZWFzZScsCisgICAgICAgIGNmZ0hvbWU6ICdjZmdzaXRlJywKK30pOworCisvKiBpZiB0aGUgYnVpbGQgbW9kZWwgc3VwcG9ydHMgZW5jb2RlZCBjZmdBcmdzLCB1c2UgaXQgKi8KK2lmICgnY2ZnQXJnc0VuY29kZWQnIGluIGV4ZU9wdHMpIHsKKyAgICBleGVPcHRzLmNmZ0FyZ3MgPSAnbnVsbCc7CisgICAgZXhlT3B0cy5jZmdBcmdzRW5jb2RlZCA9IHRydWU7Cit9CitlbHNlIHsKKyAgICAvKiBvdGhlcndpc2UsIHdlIG11c3QgcmlzayBlcnJvcnMgaWYgY2ZnQXJncyBjb250YWlucyBlbWJlZGRlZCAncyAqLworICAgIGV4ZU9wdHMuY2ZnQXJncyA9ICdudWxsJzsKK30KKwordmFyIGV4ZSA9IFBrZ1ttYWtlQXNzZW1ibHkgPyAnYWRkQXNzZW1ibHknOiAnYWRkRXhlY3V0YWJsZSddKAorICAgICdwcm9nJywKKyAgICB0YXJnLAorICAgIHBsYXRmb3JtLAorICAgIGV4ZU9wdHMKKyk7CisKK1BrZy5tYWtlRXBpbG9ndWUgPSAiaW5jbHVkZSBjdXN0b20ubWFrIjsKKworLyoKKyAqIEdlbmVyYXRlIHRoZSBjb21waWxlci5vcHQgZmlsZQorICogRG8gdGhpcyBoZXJlIGluc3RlYWQgb2YgZHVyaW5nIHRoZSBpbml0aWFsIGNyZWF0aW9uIG9mIHRoZSBjb25maWd1cm8KKyAqIHBhY2thZ2UsIGJlY2F1c2UgdGhlIGNvbnRlbnRzIG9mIGFueSBjb25maWcuYmxkIHNjcmlwdCBhcmUgdW5rbm93bgorICogYXQgdGhhdCB0aW1lLiBDb25maWcuYmxkIGNhbid0IGJlIGV4ZWN1dGVkIHVudGlsIHRoZSBYREMgYnVpbGQgcGhhc2UuCisgKi8KK2lmIChtYWtlQXNzZW1ibHkpIHsKKyAgICB2YXIgc3VmZml4ICA9IHRhcmcuZGxsRXh0IHx8ICcucCcgKyB0YXJnLnN1ZmZpeDsKK30KK2Vsc2UgeworICAgIHZhciBzdWZmaXggID0gdGFyZy5leGVjRXh0IHx8ICcueCcgKyB0YXJnLnN1ZmZpeDsKK30KK3ZhciB0aGlzT2JqID0geworICAgIGNmZzogICAgICAgICdwcm9nLmNmZycsCisgICAgb3V0cHV0UGF0aDogJ0Q6L3dvcmsvdHV0b3JpYWwvaXNxcnQtcHJvZy9jZmdzaXRlJywKKyAgICBleGVOYW1lOiAgICAncHJvZycgKyBzdWZmaXgsCisgICAgZXhlSW50TmFtZTogJ3Byb2cnICsgc3VmZml4LnJlcGxhY2UoJy4nLCAnXycpLAorICAgIHRhcmc6ICAgICAgIHRhcmcsCisgICAgbGVnYWN5VGNmOiAgZmFsc2UsCisgICAgYmlvczVJbmNzOiAgZmFsc2UsCisgICAgbGlua2VyQ29tbWFuZEZpbGU6ICdsaW5rZXIuY21kJywKKyAgICBtYWtlQXNzZW1ibHk6IG1ha2VBc3NlbWJseQorfTsKK3ZhciB0bXBsID0geGRjLmxvYWRUZW1wbGF0ZSgneGRjL3Rvb2xzL2NvbmZpZ3Vyby90ZW1wbGF0ZS9jb21waWxlci5vcHQueGR0Jyk7Cit0bXBsLmdlbkZpbGUoJ2NvbXBpbGVyLm9wdCcsIHRoaXNPYmosIFtdLCBmYWxzZSk7CisKKy8qCisgKiBHZW5lcmF0ZSB0aGUgY3VzdG9tIG1ha2VmaWxlLgorICovCit2YXIgdG1wbCA9IHhkYy5sb2FkVGVtcGxhdGUoJ3hkYy90b29scy9jb25maWd1cm8vdGVtcGxhdGUvJyArIAorICAgIChtYWtlQXNzZW1ibHk/ICdjdXN0b20ubWFrLmFzbS54ZHQnIDogJ2N1c3RvbS5tYWsuZXhlLnhkdCcpKTsKK3RtcGwuZ2VuRmlsZSgnY3VzdG9tLm1haycsIHRoaXNPYmosIFtdLCBmYWxzZSk7CitQa2cubWFrZUVwaWxvZ3VlID0gImluY2x1ZGUgY3VzdG9tLm1hayI7CisKKy8qCisgKiBHZW5lcmF0ZSB0aGUgcGFja2FnZSBzY3JpcHQuCisgKi8KK3ZhciB0bXBsID0geGRjLmxvYWRUZW1wbGF0ZSgneGRjL3Rvb2xzL2NvbmZpZ3Vyby90ZW1wbGF0ZS9wYWNrYWdlLnhzLnhkdCcpOwordG1wbC5nZW5GaWxlKCdwYWNrYWdlLnhzJywgdGhpc09iaiwgW10sIGZhbHNlKTsKKworaWYgKG1ha2VBc3NlbWJseSkgeworLyoKKyAqIEdlbmVyYXRlIHRoZSBsaW5rZXIgb3B0aW9ucyBpbnRvIGEgc3RhZ2luZyBmaWxlLCBzbyB0aGF0IHRoZSBwcmVzZW5jZSBvcgorICogYWdlIG9mIHRoZSBhZHZlcnRpc2VkIGxpbmtlciBjb21tYW5kIGZpbGUgY2FuIGJlIHRoZSBtYWtlZmlsZSB0cmlnZ2VyIHRvCisgKiByZWJ1aWxkIHRoZSBwYWNrYWdlIGZyb20gdGhlIHVzZXIncyBjb25maWcgc2NyaXB0LgorICovCisgICAgdmFyIHRtcGwgPSB4ZGMubG9hZFRlbXBsYXRlKCd4ZGMvdG9vbHMvY29uZmlndXJvL3RlbXBsYXRlL2xpbmtlci5jbWQuYXNtLnhkdCcpOworICAgIHRtcGwuZ2VuRmlsZSgnbGlua2VyLmNtZC5jcCcsIHRoaXNPYmosIFtdLCBmYWxzZSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UubWFrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGUwMTUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlLm1hawpAQCAtMCwwICsxLDIyNiBAQAorIworIyAgRG8gbm90IGVkaXQgdGhpcyBmaWxlLiAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIAorIyAgcGFja2FnZS5ibGQuICBBbnkgbW9kaWZpY2F0aW9ucyB0byB0aGlzIGZpbGUgd2lsbCBiZSAKKyMgIG92ZXJ3cml0dGVuIHdoZW5ldmVyIG1ha2VmaWxlcyBhcmUgcmUtZ2VuZXJhdGVkLgorIworCit1bmV4cG9ydCBNQUtFRklMRV9MSVNUCitvdmVycmlkZSBQS0dESVIgPSBjZmdzaXRlCitYRENJTkNTID0gLUkuIC1JJChzdHJpcCAkKHN1YnN0IDssIC1JLCQoc3Vic3QgJChzcGFjZSksXCQoc3BhY2UpLCQoWFBLR1BBVEgpKSkpCitYRENDRkdESVIgPSBwYWNrYWdlL2NmZy8KKworIworIyBUaGUgZm9sbG93aW5nIGRlcGVuZGVuY2llcyBlbnN1cmUgcGFja2FnZS5tYWsgaXMgcmVidWlsdAorIyBpbiB0aGUgZXZlbnQgdGhhdCBzb21lIGluY2x1ZGVkIEJPTSBzY3JpcHQgY2hhbmdlcy4KKyMKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Rvb2xzL2NvbmZpZ3Vyby90ZW1wbGF0ZS9jdXN0b20ubWFrLmV4ZS54ZHQ6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90b29scy9jb25maWd1cm8vdGVtcGxhdGUvY3VzdG9tLm1hay5leGUueGR0CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pby9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW8vcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90b29scy9jb25maWd1cm8vdGVtcGxhdGUvY29tcGlsZXIub3B0LnhkdDoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Rvb2xzL2NvbmZpZ3Vyby90ZW1wbGF0ZS9jb21waWxlci5vcHQueGR0CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9QYWNrYWdlQ29udGVudHMueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUGFja2FnZUNvbnRlbnRzLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54cworcGFja2FnZS5tYWs6IGNvbmZpZy5ibGQKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvSVRhcmdldC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvcGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9wYWNrYWdlLnhzCitwYWNrYWdlLm1hazogcGFja2FnZS5ibGQKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaToKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2kKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaToKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2kKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdG9vbHMvY29uZmlndXJvL3RlbXBsYXRlL3BhY2thZ2UueHMueGR0OgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdG9vbHMvY29uZmlndXJvL3RlbXBsYXRlL3BhY2thZ2UueHMueGR0CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL01TUDQzMC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9NU1A0MzAueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9fZ2VuLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL19nZW4ueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUmVwb3NpdG9yeS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9SZXBvc2l0b3J5LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1NjcmlwdC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9TY3JpcHQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0J1aWxkRW52aXJvbm1lbnQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvQnVpbGRFbnZpcm9ubWVudC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvTGlicmFyeS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9MaWJyYXJ5LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3BhY2thZ2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1V0aWxzLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1V0aWxzLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL29tMi54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL29tMi54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvRXhlY3V0YWJsZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9FeGVjdXRhYmxlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2lvL0ZpbGUueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pby9GaWxlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9JVGFyZ2V0RmlsdGVyLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXRGaWx0ZXIueHMKK2VuZGlmCisKK3RpLnRhcmdldHMuQzY0UC5yb290RGlyID89IGQ6L3RpL2M2MDAwL2FsYwordGkudGFyZ2V0cy5wYWNrYWdlQmFzZSA/PSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy8KKy5QUkVDSU9VUzogJChYRENDRkdESVIpLyUubzY0UAorLlBIT05ZOiBhbGwsNjRQIC5kbGxzLDY0UCAuZXhlY3V0YWJsZXMsNjRQIHRlc3QsNjRQCithbGwsNjRQOiAuZXhlY3V0YWJsZXMsNjRQCisuZXhlY3V0YWJsZXMsNjRQOiAubGlicmFyaWVzLDY0UAorLmV4ZWN1dGFibGVzLDY0UDogLmRsbHMsNjRQCisuZGxscyw2NFA6IC5saWJyYXJpZXMsNjRQCisubGlicmFyaWVzLDY0UDogLmludGVyZmFjZXMKKwlAJChSTSkgJEAKKwlAJChUT1VDSCkgIiRAIgorCisuaGVscDo6CisJQCQoRUNITykgeGRjIHRlc3QsNjRQCisJQCQoRUNITykgeGRjIC5leGVjdXRhYmxlcyw2NFAKKwlAJChFQ0hPKSB4ZGMgLmxpYnJhcmllcyw2NFAKKwlAJChFQ0hPKSB4ZGMgLmRsbHMsNjRQCisKKworYWxsOiAuZXhlY3V0YWJsZXMgCisuZXhlY3V0YWJsZXM6IC5saWJyYXJpZXMgLmRsbHMKKy5saWJyYXJpZXM6IC5pbnRlcmZhY2VzCisKK1BLR0NGR1MgOj0gJCh3aWxkY2FyZCBwYWNrYWdlLnhzKSBwYWNrYWdlL2J1aWxkLmNmZworLmludGVyZmFjZXM6IHBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggcGFja2FnZS54ZGMgJChQS0dDRkdTKQorCistaW5jbHVkZSBwYWNrYWdlL3BhY2thZ2UueGRjLmRlcAorcGFja2FnZS8lLnhkYy5pbmMgcGFja2FnZS8lX2NmZ3NpdGUuYyBwYWNrYWdlLyUuZGVmcy5oOiAlLnhkYyAkKFBLR0NGR1MpCisJQCQoTVNHKSBnZW5lcmF0aW5nIGludGVyZmFjZXMgZm9yIHBhY2thZ2UgY2Znc2l0ZSIgKGJlY2F1c2UgJEAgaXMgb2xkZXIgdGhhbiAkKGZpcnN0d29yZCAkPykpIiAuLi4KKwkkKFhTUlVOKSAtZiB4ZGMvc2VydmljZXMvaW50ZXJuL2NtZC9idWlsZC54cyAkKE1LX0lETE9QVFMpIC1tIHBhY2thZ2UvcGFja2FnZS54ZGMuZGVwIC1pIHBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIHBhY2thZ2UueGRjCisKKy5leGVjdXRhYmxlcyw2NFAgLmV4ZWN1dGFibGVzOiBwcm9nLng2NFAKKworLWluY2x1ZGUgcGFja2FnZS9jZmcvcHJvZ194NjRQLm1haworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAKK2VuZGlmCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UCA6IHwgcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbAorcHJvZy54NjRQOgorCSQoUk0pICRACisJQCQoTVNHKSBsbms2NFAgJEAgLi4uCisJJChSTSkgJChYRENDRkdESVIpLyRALm1hcAorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9sbms2eCAtdyAtcSAtdSBfY19pbnQwMCAgLXEgLW8gJEAgcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAgIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGwgIC1jIC1tICQoWERDQ0ZHRElSKS8kQC5tYXAgLWwgJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvbGliL3J0czY0cGx1cy5saWIKKwkKK3Byb2cueDY0UDpDX0RJUj0KK3Byb2cueDY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwcm9nLng2NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCisKK2lmZXEgKCwkKHdpbGRjYXJkIC5saWJyYXJpZXMsNjRQKSkKK3Byb2cueDY0UCBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYzogLmxpYnJhcmllcyw2NFAKK2VuZGlmCisKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGw6IG92ZXJyaWRlIF9QUk9HX05BTUUgOj0gcHJvZy54NjRQCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYzogcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZworcHJvZy50ZXN0IHRlc3QsNjRQIHRlc3Q6IHByb2cueDY0UC50ZXN0CisKK3Byb2cueDY0UC50ZXN0OjogcHJvZy54NjRQCitpZmVxICgsJChfVEVTVExFVkVMKSkKKwlAJChNQUtFKSAtUiAtciAtLW5vLXByaW50LWRpcmVjdG9yeSAtZiAkKFhEQ1JPT1QpL3BhY2thZ2VzL3hkYy9ibGQveGRjLm1hayBfVEVTVExFVkVMPTEgcHJvZy54NjRQLnRlc3QKK2Vsc2UKKwlAJChNU0cpIHJ1bm5pbmcgJDwgIC4uLgorCSQoY2FsbCBFWEVDLnByb2cueDY0UCwgKSAKK2VuZGlmCisKKworY2xlYW46OiBjbGVhbiw2NFAKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZworCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuZGVwCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGMuaW5jCisKK2NsZWFuLDY0UDo6CisJLSQoUk0pIHByb2cueDY0UAorCS0kKFJNKSAudG1wLHByb2cueDY0UCwqCisKK2NsZWFuOjogCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5wanQKKyUsY29weToKKwlAJChpZiAkPCwsJChNU0cpIGRvblwndCBrbm93IGhvdyB0byBidWlsZCAkKjsgZXhpdCAxKQorCUAkKE1TRykgY3AgJDwgJEAKKwkkKFJNKSAkQAorCSQoQ1ApICQ8ICRACitwcm9nX3g2NFAuczY0UCxjb3B5IDogcGFja2FnZS9jZmcvcHJvZ194NjRQLnM2NFAKK3Byb2dfeDY0UC5vNjRQLGNvcHkgOiBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UAorCiskKFhEQ0NGR0RJUiklLmMgJChYRENDRkdESVIpJS5oICQoWERDQ0ZHRElSKSUueGRsOiAkKFhEQ0NGR0RJUiklLmNmZyAuaW50ZXJmYWNlcyAkKFhEQ1JPT1QpL3BhY2thZ2VzL3hkYy9jZmcvTWFpbi54cworCUAkKE1TRykgImNvbmZpZ3VyaW5nICQoX1BST0dfTkFNRSkgZnJvbSAkPCAuLi4iCisJJChDT05GSUcpICQoX1BST0dfWFNPUFRTKSB4ZGMuY2ZnICQoX1BST0dfTkFNRSkgJChYRENDRkdESVIpJCouY2ZnICQoWERDQ0ZHRElSKSQqCisKKy5QSE9OWTogcmVsZWFzZSxjZmdzaXRlCitjZmdzaXRlLnRhcjogcGFja2FnZS9idWlsZC5jZmcKK2NmZ3NpdGUudGFyOiBwYWNrYWdlL3BhY2thZ2UuZXh0LnhtbAorY2Znc2l0ZS50YXI6IHBhY2thZ2UvcGFja2FnZS54ZGMuaW5jCitjZmdzaXRlLnRhcjogcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKK2NmZ3NpdGUudGFyOiBwYWNrYWdlL3BhY2thZ2UucmVsLmRvdAoraWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvcmVsL2NmZ3NpdGUudGFyLmRlcAorZW5kaWYKK3BhY2thZ2UvcmVsL2NmZ3NpdGUvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2UucmVsLnhtbDoKKworY2Znc2l0ZS50YXI6IHBhY2thZ2UvcmVsL2NmZ3NpdGUueGRjLmluYyBwYWNrYWdlL3JlbC9jZmdzaXRlL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLnJlbC54bWwKKwlAJChNU0cpIG1ha2luZyByZWxlYXNlIGZpbGUgJEAgIihiZWNhdXNlIG9mICQoZmlyc3R3b3JkICQ/KSkiIC4uLgorCS0kKFJNKSAkQAorCSQoY2FsbCBNS1JFTFRBUixwYWNrYWdlL3JlbC9jZmdzaXRlLnhkYy5pbmMscGFja2FnZS9yZWwvY2Znc2l0ZS50YXIuZGVwKQorCisKK3JlbGVhc2UgcmVsZWFzZSxjZmdzaXRlOiBhbGwgY2Znc2l0ZS50YXIKK2NsZWFuOjogLmNsZWFuCisJLSQoUk0pIGNmZ3NpdGUudGFyCisJLSQoUk0pIHBhY2thZ2UvcmVsL2NmZ3NpdGUueGRjLmluYworCS0kKFJNKSBwYWNrYWdlL3JlbC9jZmdzaXRlLnRhci5kZXAKKworY2xlYW46OiAuY2xlYW4KKwktJChSTSkgLmxpYnJhcmllcyAubGlicmFyaWVzLCoKK2NsZWFuOjogCisJLSQoUk0pIC5kbGxzIC5kbGxzLCoKKyMKKyMgVGhlIGZvbGxvd2luZyBjbGVhbiBydWxlIHJlbW92ZXMgdXNlciBzcGVjaWZpZWQKKyMgZ2VuZXJhdGVkIGZpbGVzIG9yIGRpcmVjdG9yaWVzLgorIworCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZSkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvZXh0ZXJuYWwpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9leHRlcm5hbCkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2xpYikpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2xpYikKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2NmZykpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2NmZykKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL3JlbCkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL3JlbCkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2ludGVybmFsKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvaW50ZXJuYWwpCitlbmRpZgorZW5kaWYKK2NsZWFuOjoKKwktJChSTURJUikgcGFja2FnZQorCitpbmNsdWRlIGN1c3RvbS5tYWsKK2NsZWFuOjogCisJLSQoUk0pIHBhY2thZ2UvY2Znc2l0ZS5wanQKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS54ZGMgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxYjUyMDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UueGRjCkBAIC0wLDAgKzEsNyBAQAorLyohCisgKiBQYWNrYWdlIGdlbmVyYXRlZCBieSB4ZGMudG9vbHMuY29uZmlndXJvCisgKgorICogQF9ub2RvYworICovCitwYWNrYWdlIGNmZ3NpdGUgeworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlLnhzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlLnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3ZmE3MzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UueHMKQEAgLTAsMCArMSwxNyBAQAorLyogVEhJUyBJUyBBIEdFTkVSQVRFRCBGSUxFIC0tIERPIE5PVCBFRElUICovCisKKy8qIHJldHVybiB0aGUgbmFtZXMgb2YgdGhlIGdlbmVyYXRlZCBjb25maWcgb2JqZWN0cyAqLworZnVuY3Rpb24gZ2V0TGlicyhwcm9nKSB7CisgICAgLyogZm9yIHByb2dyYW1zLCBwdXNoIHRoZSBnZW5lcmF0ZWQgY29uZmlnIG9iamVjdCBmaWxlIGludG8gdGhlCisgICAgICogZ2VuZXJhdGVkIGxpbmtlciBjb21tYW5kIGZpbGUuCisgICAgICovCisgICAgLyogcmVwbGFjZSB0aGUgbGFzdCBwZXJpb2QgaW4gdGhlIG5hbWUgYnkgYW4gdW5kZXJzY29yZSAqLworICAgIHZhciBuYW1lID0gInBhY2thZ2UvY2ZnLyIgKyBwcm9nLm5hbWUucmVwbGFjZSgvXC4oW14uXSopJC8sIl8kMSIpOworICAgIHZhciBzdWZmaXggPSBwcm9nLmJ1aWxkLnRhcmdldC5zdWZmaXg7CisKKyAgICB2YXIgbGlicyA9IFsKKyAgICAgICAgbmFtZSArICcubycgKyBzdWZmaXgsCisgICAgXTsKKworICAgIHJldHVybiBsaWJzLmpvaW4oJzsnKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS8udmVyc19iMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlLy52ZXJzX2IxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS8udmVyc19iMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvLnZlcnNfYzE1MCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS8udmVyc19jMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvLnZlcnNfYzE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlLy52ZXJzX2cxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvLnZlcnNfZzE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlLy52ZXJzX2cxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS8udmVyc19yMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlLy52ZXJzX3IxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS8udmVyc19yMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvLnhkYy10MzIgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvLnhkYy10MzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS8ueGRjLXQzMgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2J1aWxkLmNmZyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9idWlsZC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc2MzJhMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9idWlsZC5jZmcKQEAgLTAsMCArMSwxMiBAQAoraWYgKHBrZy4kdmVycy5sZW5ndGggPj0gMykgeworICAgIHBrZy4kdmVycy5wdXNoKFBhY2thZ2VzLnhkYy5zZXJ2aWNlcy5nbG9iYWwuVmVycy5nZXREYXRlKHhkYy5jc2QoKSArICcvLi4nKSk7Cit9CisKK3BrZy5idWlsZC5saWJyYXJpZXMgPSBbCitdOworCitwa2cuYnVpbGQubGliRGVzYyA9IFsKK107CitpZiAoJ3N1ZmZpeCcgaW4geGRjLm9tWyd4ZGMuSVBhY2thZ2UkJExpYkRlc2MnXSkgeworfQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzViZmYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuYwpAQCAtMCwwICsxLDc4MDEgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNkZWZpbmUgX19uZXN0ZWRfXworI2RlZmluZSBfX2NvbmZpZ19fCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKKy8qCisgKiA9PT09PT09PSBHRU5FUkFURUQgU0VDVElPTlMgPT09PT09PT0KKyAqICAgICAKKyAqICAgICBNT0RVTEUgSU5DTFVERVMKKyAqICAgICAKKyAqICAgICA8bW9kdWxlLW5hbWU+IElOVEVSTkFMUworICogICAgIDxtb2R1bGUtbmFtZT4gSU5IRVJJVFMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFZUQUJMRQorICogICAgIDxtb2R1bGUtbmFtZT4gUEFUQ0ggVEFCTEUKKyAqICAgICA8bW9kdWxlLW5hbWU+IERFQ0xBUkFUSU9OUworICogICAgIDxtb2R1bGUtbmFtZT4gT0JKRUNUIE9GRlNFVFMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFRFTVBMQVRFUworICogICAgIDxtb2R1bGUtbmFtZT4gSU5JVElBTElaRVJTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBGVU5DVElPTiBTVFVCUworICogICAgIDxtb2R1bGUtbmFtZT4gUFJPWFkgQk9EWQorICogICAgIDxtb2R1bGUtbmFtZT4gT0JKRUNUIERFU0NSSVBUT1IKKyAqICAgICA8bW9kdWxlLW5hbWU+IFNZU1RFTSBGVU5DVElPTlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFBSQUdNQVMKKyAqICAgICAKKyAqICAgICBJTklUSUFMSVpBVElPTiBFTlRSWSBQT0lOVAorICogICAgIFBST0dSQU0gR0xPQkFMUworICogICAgIENMSU5LIERJUkVDVElWRVMKKyAqLworCisKKy8qCisgKiA9PT09PT09PSBNT0RVTEUgSU5DTFVERVMgPT09PT09PT0KKyAqLworCisjaW5jbHVkZSA8YWNtZS91dGlscy9CZW5jaC5oPgorI2luY2x1ZGUgPGFjbWUvdXRpbHMvY2xvY2tzL0Nsb2NrU3RkLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvQXNzZXJ0Lmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvQ29yZS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0RlZmF1bHRzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRGlhZ3MuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0dhdGUuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9HYXRlTnVsbC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0hlYXBTdGQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Mb2cuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9NYWluLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTWVtb3J5Lmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3RhcnR1cC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c01pbi5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c3RlbS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1RleHQuaD4KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX18gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2hfUENsb2NrIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfXyBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfXyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX18geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIE9iamVjdF9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyB7CisgICAgY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfRnhuc19fKiBfX2Z4bnM7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVjsKKworLyogT2JqZWN0X18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geworICAgIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfRnhuc19fKiBfX2Z4bnM7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgcmVtYWluU2l6ZTsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfU2l6ZSBzdGFydFNpemU7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9IZWFwU3RkX19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIDwtLSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX19yb290X19WOworCisvKiA8LS0geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworLyogPC0tIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCAqLworCisvKiBPYmplY3QgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DID0gezB9OworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0MgPSB7KHZvaWQqKSZ4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DID0geyh2b2lkKikmeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0N9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9GeG5zX18gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQywgLyogYmFzZV9fICovCisgICAgJmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FLAorICAgIHsKKyAgICAgICAgTlVMTCwgLyogX19jcmVhdGUgKi8KKyAgICAgICAgTlVMTCwgLyogX19kZWxldGUgKi8KKyAgICAgICAgTlVMTCwgLyogX19sYWJlbCAqLworICAgICAgICAweDgwMTMsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBWVEFCTEUgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX0ZYTlNfX0MgKi8KK2NvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX0Z4bnNfXyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZ4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQywgLyogYmFzZV9fICovCisgICAgJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRSwKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRSwKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSwKKyAgICB7CisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TLAorICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUywKKyAgICAgICAgMHg4MDA4LCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBWVEFCTEUgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX0ZYTlNfX0MgKi8KK2NvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfRnhuc19fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmeGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MuX19zZnhucywgLyogX19zeXNwICovCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSwKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UsCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FLAorICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UsCisgICAgeworICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TLAorICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TLAorICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MsCisgICAgICAgIDB4ODAwYywgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBWVEFCTEUgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX0ZYTlNfX0MgKi8KK2NvbnN0IHhkY19ydW50aW1lX1N5c01pbl9GeG5zX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQywgLyogYmFzZV9fICovCisgICAgJnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MuX19zZnhucywgLyogX19zeXNwICovCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FLAorICAgIHsKKyAgICAgICAgTlVMTCwgLyogX19jcmVhdGUgKi8KKyAgICAgICAgTlVMTCwgLyogX19kZWxldGUgKi8KKyAgICAgICAgTlVMTCwgLyogX19sYWJlbCAqLworICAgICAgICAweDgwMGYsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfU3RyaW5nIGJlZ2luTXNnOworICAgIHhkY19JbnQgYmVnaW5DbG9jazsKKyAgICB4ZGNfSW50IG92ZXJoZWFkOworfSBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCithY21lX3V0aWxzX0JlbmNoX01vZHVsZV9TdGF0ZV9fIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaF9QQ2xvY2sgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfVUludDE2IGNvdW50OworfSB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fdGFibGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzFdOworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgcmVtYWluUlRTU2l6ZTsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1NpemVUIG1heERlZmF1bHRUeXBlQWxpZ247Cit9IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19JbnQqIHN0YXRlVGFiOworICAgIHhkY19Cb29sIGV4ZWNGbGFnOworICAgIHhkY19Cb29sIHJ0c0RvbmVGbGFnOworfSB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKHhkY19JbnQpOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FICovCitleHRlcm4geGRjX0ludCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UoeGRjX0ludCk7CisKKy8qIC0tPiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FICovCitleHRlcm4geGRjX0ludCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FKHhkY19JbnQpOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FbM107CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVszXTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geworICAgIF9fVEFfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fb3V0YnVmIG91dGJ1ZjsKKyAgICB4ZGNfVUludCBvdXRpZHg7CisgICAgeGRjX0Jvb2wgd3JhcHBlZDsKK30geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQVsxMDI0XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSAqLworZXh0ZXJuIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0koeGRjX0NoYXIqLHhkY19VSW50KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX18geworICAgIF9fVEFfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fYXRleGl0SGFuZGxlcnMgYXRleGl0SGFuZGxlcnM7CisgICAgeGRjX0ludCBudW1BdGV4aXRIYW5kbGVyczsKKyAgICB4ZGNfSW50IGV4aXRTdGF0dXM7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXzsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0FbOF07CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kgKi8KK2V4dGVybiB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0koeGRjX0NoYXIqKix4ZGNfQ2hhcioqLHhkY19WYUxpc3QseGRjX3J1bnRpbWVfU3lzdGVtX1BhcnNlRGF0YSopOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19QdHIgY2hhckJhc2U7CisgICAgeGRjX1B0ciBub2RlQmFzZTsKK30geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiIHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVs2OTddOworCisvKiAtLT4geGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FbMjFdOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMuY2ZnLlByb2dyYW0gVEVNUExBVEUgPT09PT09PT0KKyAqLworCisvKgorICogID09PT09PT09IF9fQVNNX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhpcyBwcm9ncmFtJ3MgcGFja2FnZS1wYXRoIHJlbGF0aXZlIGFzc2VtYmx5IGRpcmVjdG9yeQorICovCitfX0ZBUl9fIGNoYXIgKl9fQVNNX18gPSAiQCgjKV9fQVNNX18gPSBEOi93b3JrL3R1dG9yaWFsL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAiOworCisvKgorICogID09PT09PT09IF9fSVNBX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIElTQSBvZiB0aGlzIGV4ZWN1dGFibGUuICBUaGlzIHN5bWJvbCBpcyB1c2VkIGJ5IHBsYXRmb3JtCisgKiAgc3BlY2lmaWMgImV4ZWMiIGNvbW1hbmRzIHRoYXQgc3VwcG9ydCBtb3JlIHRoYW4gb25lIElTQTsgZS5nLiwgZ2RiCisgKi8KK19fRkFSX18gY2hhciAqX19JU0FfXyA9ICJAKCMpX19JU0FfXyA9IDY0UCI7CisKKy8qCisgKiAgPT09PT09PT0gX19QTEFUX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHBsYXRmb3JtIHRoYXQgY2FuIHJ1biB0aGlzIGV4ZWN1dGFibGUuICBUaGlzCisgKiAgc3ltYm9sIGlzIHVzZWQgYnkgcGxhdGZvcm0gaW5kZXBlbmRlbnQgImV4ZWMiIGNvbW1hbmRzCisgKi8KK19fRkFSX18gY2hhciAqX19QTEFUX18gPSAiQCgjKV9fUExBVF9fID0gdGkucGxhdGZvcm1zLnNpbTY0UHh4IjsKKworLyoKKyAqICA9PT09PT09PSBfX1RBUkdfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgdGFyZ2V0IHVzZWQgdG8gYnVpbGQgdGhpcyBleGVjdXRhYmxlLgorICovCitfX0ZBUl9fIGNoYXIgKl9fVEFSR19fID0gIkAoIylfX1RBUkdfXyA9IHRpLnRhcmdldHMuQzY0UCI7CisKKy8qCisgKiAgPT09PT09PT0gX19UUkRSX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIGNsYXNzIHRoYXQgY2FuIHJlYWQvcGFyc2UgdGhpcyBleGVjdXRhYmxlLgorICovCitfX0ZBUl9fIGNoYXIgKl9fVFJEUl9fID0gIkAoIylfX1RSRFJfXyA9IHRpLnRhcmdldHMub21mLmNvZi5Db2ZmIjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMF0gPCAwOworfQoreGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX0Yodm9pZCkgeworICAgIHJldHVybiAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiID09IDAgfHwgKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYlsxXSA8IDA7Cit9Cit4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVfX0Yodm9pZCkgeworICAgIHJldHVybiAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiID09IDAgfHwgKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYlsyXSA8IDA7Cit9CisKKworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JKHZvaWQpCit7CisgICAgeGRjX0ludCBzdGF0ZVs0XTsKKyAgICB4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyhzdGF0ZSwgMyk7Cit9CisKKyNpZmRlZiBfX3RpX18KKyNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kpOworI2VuZGlmCisKKy8qCisgKiAgPT09PT09PT0geGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSSA9PT09PT09PQorICogIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGJvb3RzdHJhcCBpbml0aWFsaXphdGlvbiBjb2RlIGFzIGVhcmx5IGFzCisgKiAgcG9zc2libGUgaW4gdGhlIHN0YXJ0dXAgcHJvY2Vzcy4gIFRoaXMgZnVuY3Rpb24gc2ltcGx5IGNhbGxzIGFueQorICogIGNvbmZpZ3VyZWQgbnVsbC4KKyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSSh2b2lkKQoreworfQorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1R5cGVzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvVGV4dC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Fzc2VydC5oPgorCisvKgorICogID09PT09PT09IFN5c3RlbV9wcmludGZFeHRlbmRfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyBvcHRpb25hbCBleHRlbmRlZCBmb3JtYXRzIG9mIHByaW50Zi4KKyAqLworSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0koQ2hhciAqKnBidWYsIENoYXIgKipwZm10LCAKKyAgICBWYUxpc3QgdmEsIHhkY19ydW50aW1lX1N5c3RlbV9QYXJzZURhdGEgKnBhcnNlKQoreworICAgIENoYXIgICAgKmZtdCA9ICpwZm10OworICAgIEludCAgICAgcmVzOworICAgIENoYXIgICAgYzsKKyAgICBCb29sICAgIGZvdW5kID0gRkFMU0U7CisgICAgCisgICAgcmVzID0gMDsKKworICAgIGMgPSAqZm10Kys7CisgICAgKnBmbXQgPSAqcGZtdCArIDE7CisKKyAgICAKKyAgICBpZiAoYyA9PSAnJCcpIHsKKyAgICAgICAgYyA9ICpmbXQrKzsKKyAgICAgICAgKnBmbXQgPSAqcGZtdCArIDE7CisgICAgICAgIGlmIChjID09ICdMJykgeworICAgICAgICAgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwgKmxhYiA9IHBhcnNlLT5hRmxhZyA/IAorICAgICAgICAgICAgICAgICh4ZGNfcnVudGltZV9UeXBlc19MYWJlbCAqKWlhcmdUb1B0cih2YV9hcmcodmEsIElBcmcpKSA6CisgICAgICAgICAgICAgICAgKHhkY19ydW50aW1lX1R5cGVzX0xhYmVsICopdmFfYXJnKHZhLCB2b2lkICopOworICAgICAgICAgICAgcmVzICs9IHhkY19ydW50aW1lX1RleHRfcHV0TGFiKGxhYiwgcGJ1ZiwgcGFyc2UtPnByZWNpcyk7CisgICAgICAgICAgICBwYXJzZS0+bGVuID0gMDsKKyAgICAgICAgICAgIGZvdW5kID0gVFJVRTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgaWYgKGZvdW5kID09IEZBTFNFKSB7CisgICAgICAgICAvKiBvdGhlciBjaGFyYWN0ZXIgKGxpa2UgJSkgY29weSB0byBvdXRwdXQgKi8KKyAgICAgICAgICoocGFyc2UtPnB0cikgPSBjOworICAgICAgICAgcGFyc2UtPmxlbiA9IDE7CisgICAgfQorCisgICAgcmV0dXJuIChyZXMpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBURU1QTEFURSA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworZXh0ZXJuIGludCBIT1NUd3JpdGUoaW50LCBjaGFyICosIHVuc2lnbmVkKTsKKyNlbHNlCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisvKgorICogID09PT09PT09IFN5c01pbl9vdXRwdXRfX0kgPT09PT09PT0KKyAqICBIT1NUV3JpdGUgb25seSB3cml0ZXMgYSBtYXggb2YgTiBjaGFycyBhdCBhIHRpbWUuIFRoZSBhbW91bnQgaXQgd3JpdGVzCisgKiAgaXMgcmV0dXJuZWQuIFRoaXMgZnVuY3Rpb24gbG9vcHMgdW50aWwgdGhlIGVudGlyZSBidWZmZXIgaXMgd3JpdHRlbi4KKyAqICBCZWluZyBhIHN0YXRpYyBmdW5jdGlvbiBhbGxvd3MgaXQgdG8gY29uZGl0aW9uYWxseSBjb21waWxlIG91dC4KKyAqLworVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JKENoYXIgKmJ1ZiwgVUludCBzaXplKQoreworI2lmZGVmIF9fdGlfXworICAgIEludCBwcmludENvdW50OworICAgIAorICAgIHdoaWxlIChzaXplICE9IDApIHsKKyAgICAgICAgcHJpbnRDb3VudCA9IEhPU1R3cml0ZSgxLCBidWYsIHNpemUpOworICAgICAgICBpZiAoKHByaW50Q291bnQgPD0gMCkgfHwgKHByaW50Q291bnQgPiBzaXplKSkgeworICAgICAgICAgICAgYnJlYWs7ICAvKiBlbnN1cmUgd2UgbmV2ZXIgZ2V0IHN0dWNrIGluIGFuIGluZmluaXRlIGxvb3AgKi8KKyAgICAgICAgfQorICAgICAgICBzaXplIC09IHByaW50Q291bnQ7CisgICAgICAgIGJ1ZiA9IGJ1ZiArIHByaW50Q291bnQ7CisgICAgfSAgICAKKyNlbHNlCisgICAgZndyaXRlKGJ1ZiwgMSwgc2l6ZSwgc3Rkb3V0KTsKKyNlbmRpZgorfQorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBURU1QTEFURSA9PT09PT09PQorICovCisKKworLyoKKyAqICA9PT09PT09PSB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSA9PT09PT09PQorICogIFRoaXMgZnVuY3Rpb24gaXMgaW5kaXJlY3RseSBjYWxsZWQgd2l0aGluIFRleHQuYyB0aHJvdWdoCisgKiAgdGhlIHZpc2l0Um9wZUZ4biBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBvZiB4ZGMucnVudGltZS5UZXh0LgorICovCitWb2lkIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JKHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUsCisgICAgeGRjX0Z4biB2aXNGeG4sIHhkY19QdHIgdmlzU3RhdGUpCit7CisgICAgeGRjX1N0cmluZyBzdGFja1s0XTsKKyAgICB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kocm9wZSwgdmlzRnhuLCB2aXNTdGF0ZSwgc3RhY2spOworfQorCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfXyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlX18gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgIDAsICAvKiBiZWdpbk1zZyAqLworICAgICh4ZGNfSW50KTB4MCwgIC8qIGJlZ2luQ2xvY2sgKi8KKyAgICAoeGRjX0ludCkweDAsICAvKiBvdmVyaGVhZCAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFzayBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmogYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAxNDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjggYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50IGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXAgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZiBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIGVuYWJsZUZsYWdfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZyBhY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0MgPSAxOworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoX1BDbG9jayBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFzayBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtcyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDEzOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmogYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDAyOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBFX2Fzc2VydEZhaWxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkIHhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTMwOSkgPDwgMTYgfCAwKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDAzOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogQV9pbml0aWFsaXplZFBhcmFtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zIHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkxKSA8PCAxNiB8IDE2KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA1OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIHNldE1hc2tFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQyA9IDA7CisKKy8qIGRpY3RCYXNlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSB4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlKTApOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKHhkY19VSW50MTYpMHgwLCAgLyogY291bnQgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA2OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEVfZ2VuZXJpY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljIHhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTMzMSkgPDwgMTYgfCAwKTsKKworLyogRV9tZW1vcnlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5IHhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzQ5KSA8PCAxNiB8IDApOworCisvKiBwb2xpY3lfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeSB4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MgPSB4ZGNfcnVudGltZV9FcnJvcl9VTldJTkQ7CisKKy8qIHJhaXNlSG9va19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9vaykoKHhkY19GeG4peGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UpKTsKKworLyogbWF4RGVwdGhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX21heERlcHRoIHhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DID0gKHhkY19VSW50MTYpMHgxMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA3OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0M7CisKKy8qIE9iamVjdF9fUEFSQU1TX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyA9IHsKKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgIDAsIC8qIF9fc2VsZiAqLworICAgIDAsIC8qIF9fZnhucyAqLworICAgICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MuX19pcHJtcywgLyogaW5zdGFuY2UgKi8KKyAgICB7CisgICAgICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgICAgICAwLCAgLyogbmFtZSAqLworICAgIH0sICAvKiBpbnN0YW5jZSAqLworfTsKKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YgPSB7eworICAgIHsmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAgLyogbGluay5uZXh0ICovCisgICAgJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGlua30sICAvKiBsaW5rLnByZXYgKi8KKyAgICAoVUNoYXIqKTAsICAvKiBpbnN0QXJyQmVnICovCisgICAgKFVDaGFyKikoMCstMSksICAvKiBpbnN0QXJyRW5kICovCisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyksICAvKiBpbnN0U2l6ZSAqLworICAgIDAsICAvKiBjdXIgKi8KKyAgICAwLCAgLyogZGlhZ3NNYXNrICovCit9fTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDg7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DID0gc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKTsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DOworCisvKiBPYmplY3RfX1BBUkFNU19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DID0geworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAwLCAvKiBfX3NlbGYgKi8KKyAgICAwLCAvKiBfX2Z4bnMgKi8KKyAgICAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyopJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MuX19pcHJtcywgLyogaW5zdGFuY2UgKi8KKyAgICAoKHhkY19VQXJnKSgodm9pZCopMHgwKSksICAvKiBzaXplICovCisgICAgeworICAgICAgICBzaXplb2YgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAgICAgMCwgIC8qIG5hbWUgKi8KKyAgICB9LCAgLyogaW5zdGFuY2UgKi8KK307CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fViA9IHt7CisgICAgeyZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgIC8qIGxpbmsubmV4dCAqLworICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGlua30sICAvKiBsaW5rLnByZXYgKi8KKyAgICAoVUNoYXIqKXhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fViwgIC8qIGluc3RBcnJCZWcgKi8KKyAgICAoVUNoYXIqKSh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1YrMCksICAvKiBpbnN0QXJyRW5kICovCisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKSwgIC8qIGluc3RTaXplICovCisgICAgMCwgIC8qIGN1ciAqLworICAgIDAsICAvKiBkaWFnc01hc2sgKi8KK319OworCisvKiBPYmplY3RfX3RhYmxlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVlsxXSA9IHsKKyAgICB7LyogaW5zdGFuY2UjMCAqLworICAgICAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MsCisgICAgICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDEwMDApKSwgIC8qIHJlbWFpblNpemUgKi8KKyAgICAgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MTAwMCkpLCAgLyogc3RhcnRTaXplICovCisgICAgfSwKK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDApKSwgIC8qIHJlbWFpblJUU1NpemUgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGM7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MgPSAxOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQyA9IHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKTsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQyA9IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVjsKKworLyogRV9ub1JUU01lbW9yeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5IHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTQyMSkgPDwgMTYgfCAwKTsKKworLyogQV96ZXJvU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCk5NSkgPDwgMTYgfCAxNik7CisKKy8qIEFfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMTQwKSA8PCAxNiB8IDE2KTsKKworLyogQV9pbnZhbGlkQWxpZ25tZW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudCB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkyMDEpIDw8IDE2IHwgMTYpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwOTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogTF9jb25zdHJ1Y3RfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNDY4KSA8PCAxNiB8IDQpOworCisvKiBMX2NyZWF0ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlIHhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk0OTIpIDw8IDE2IHwgNCk7CisKKy8qIExfZGVzdHJ1Y3RfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTUxMykgPDwgMTYgfCA0KTsKKworLyogTF9kZWxldGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2RlbGV0ZSB4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNTMyKSA8PCAxNiB8IDQpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGE7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKHhkY19TaXplVCkweDgsICAvKiBtYXhEZWZhdWx0VHlwZUFsaWduICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGI7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIGRlZmF1bHRIZWFwSW5zdGFuY2VfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlIHhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DID0gKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSkmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzBdOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfSW50KikwKSwgIC8qIHN0YXRlVGFiICovCisgICAgMCwgIC8qIGV4ZWNGbGFnICovCisgICAgMCwgIC8qIHJ0c0RvbmVGbGFnICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FbM10gPSB7CisgICAgKCh4ZGNfSW50KCopKHhkY19JbnQpKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UpKSwgIC8qIFswXSAqLworICAgICgoeGRjX0ludCgqKSh4ZGNfSW50KSkoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FKSksICAvKiBbMV0gKi8KKyAgICAoKHhkY19JbnQoKikoeGRjX0ludCkpKCh4ZGNfRnhuKWFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UpKSwgIC8qIFsyXSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BWzNdID0geworICAgIDEsICAvKiBbMF0gKi8KKyAgICAxLCAgLyogWzFdICovCisgICAgMCwgIC8qIFsyXSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIG1heFBhc3Nlc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MgPSAoeGRjX0ludCkweDIwOworCisvKiBmaXJzdEZ4bnNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DID0gezAsIDB9OworCisvKiBsYXN0Rnhuc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DID0gezAsIDB9OworCisvKiBzdGFydE1vZHNGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG4pKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JKSk7CisKKy8qIGV4ZWNJbXBsX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0kpKTsKKworLyogc2Z4blRhYl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYil4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EpOworCisvKiBzZnhuUnRzX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzKXhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fb3V0YnVmIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0FbMTAyNF07CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BLCAgLyogb3V0YnVmICovCisgICAgKHhkY19VSW50KTB4MCwgIC8qIG91dGlkeCAqLworICAgIDAsICAvKiB3cmFwcGVkICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGY7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIGJ1ZlNpemVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9idWZTaXplIHhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DID0gKHhkY19TaXplVCkweDQwMDsKKworLyogZmx1c2hBdEV4aXRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MgPSAxOworCisvKiBvdXRwdXRGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG4geGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG4pMCk7CisKKy8qIG91dHB1dEZ1bmNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmMpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0kpKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfX2F0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQVs4XSA9IHsKKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzBdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFsxXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbMl0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzNdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs0XSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbNV0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzZdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs3XSAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXRlX19WID0geworICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQSwgIC8qIGF0ZXhpdEhhbmRsZXJzICovCisgICAgKHhkY19JbnQpMHgwLCAgLyogbnVtQXRleGl0SGFuZGxlcnMgKi8KKyAgICAoeGRjX0ludCkweGNhZmUsICAvKiBleGl0U3RhdHVzICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGU7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEFfY2Fubm90Rml0SW50b0FyZ19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZyB4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTI2MSkgPDwgMTYgfCAxNik7CisKKy8qIG1heEF0ZXhpdEhhbmRsZXJzX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DID0gKHhkY19JbnQpMHg4OworCisvKiBleHRlbmRGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4geGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4pKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kpKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1RleHRfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICgoeGRjX1B0cikoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FbMF0pKSwgIC8qIGNoYXJCYXNlICovCisgICAgKCh4ZGNfUHRyKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVswXSkpLCAgLyogbm9kZUJhc2UgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiIHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVs2OTddID0geworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFsxXSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzJdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzVdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzhdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MCwgIC8qIFsxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFsxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFsyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFsyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFszMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFszMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFszNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MCwgIC8qIFszNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQ5XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzUwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzUyXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzUzXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzU0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzU1XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzU2XSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzU3XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzU4XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYxXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzY0XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzY1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzY2XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY3XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY4XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzY5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzcwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzcxXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzcyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzczXSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzc0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzc1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzc2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzc3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzc4XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzc5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzgwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzgxXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzgyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzgzXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzg0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzg1XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzg2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzg3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzg4XSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzg5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzkwXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzkxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzkyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzkzXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbOTRdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbOTVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbOTZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOTddICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbOThdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbOTldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTAwXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzEwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsxMDJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMTAzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzEwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMDVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTA2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzEwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMDhdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTA5XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzExMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMTFdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTEyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzExM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxMTRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTE1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzExNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFsxMTddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTE4XSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzExOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMjBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTIxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzEyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMjNdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTI0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxMjZdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMTI3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxMjldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTMwXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzEzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMzJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTMzXSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzEzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMzVdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMTM2XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzEzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMzhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFsxMzldICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbMTQwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNDJdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbMTQzXSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzE0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNDVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMTQ2XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxNDhdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTQ5XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNTFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTUyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsxNTRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTU1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNTddICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMTU4XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNjBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMTYxXSAqLworICAgICh4ZGNfQ2hhcikweDQ2LCAgLyogWzE2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxNjNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTY0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFsxNjZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTY3XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzE2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNjldICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTcwXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxNzJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTczXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzE3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxNzVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTc2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTc5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxODFdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTgyXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzE4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxODRdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTg1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxODddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTg4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxOTBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTkxXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxOTNdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMTk0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxOTZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTk3XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzE5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxOTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFsyMDBdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbMjAxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyMDNdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbMjA0XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzIwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyMDZdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMjA3XSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzIwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyMDldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjEwXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzIxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyMTJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMjEzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFsyMTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjE2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzIxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMThdICovCisgICAgKHhkY19DaGFyKTB4NzEsICAvKiBbMjE5XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzIyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMjFdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjIyXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzIyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMjRdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMjI1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyMjddICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjI4XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzIyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsyMzBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjMxXSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzIzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMzNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjM0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzIzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMzZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjM3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzIzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMzldICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMjQwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzI0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyNDJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjQzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyNDVdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjQ2XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNDhdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMjQ5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNTFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjUyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyNTRdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjU1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NywgIC8qIFsyNTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjU4XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzI1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzI2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFsyNjFdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMjYyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzI2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNjRdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjY1XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyNjddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjY4XSAqLworICAgICh4ZGNfQ2hhcikweDQ2LCAgLyogWzI2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyNzBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjcxXSAqLworICAgICh4ZGNfQ2hhcikweDQ5LCAgLyogWzI3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNzNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjc0XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFsyNzZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjc3XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzI3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFsyNzldICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjgwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzI4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyODJdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMjgzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyODVdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMjg2XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzI4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg0NiwgIC8qIFsyODhdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjg5XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyOTFdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjkyXSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzI5M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyOTRdICovCisgICAgKHhkY19DaGFyKTB4M2UsICAvKiBbMjk1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyOTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjk4XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzI5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMDBdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzAxXSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzMwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFszMDNdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMzA0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFszMDZdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbMzA3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzA4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzMwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMTBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzExXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMTNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMzE0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszMTZdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzE3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzMxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszMTldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzIwXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFszMjJdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMzIzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMjVdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzI2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszMjhdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzI5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzMwXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzMzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMzJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzMzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMzVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzM2XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzMzN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszMzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzM5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNDFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzQyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFszNDRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzQ1XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzM0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszNDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszNDhdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzQ5XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzM1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFszNTFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzUyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszNTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzU1XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzM1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszNTddICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMzU4XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNjBdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbMzYxXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzM2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNjNdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMzY0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszNjZdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbMzY3XSAqLworICAgICh4ZGNfQ2hhcikweDNkLCAgLyogWzM2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzMCwgIC8qIFszNjldICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbMzcwXSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzM3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFszNzJdICovCisgICAgKHhkY19DaGFyKTB4MmMsICAvKiBbMzczXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszNzVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzc2XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzM3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszNzhdICovCisgICAgKHhkY19DaGFyKTB4M2QsICAvKiBbMzc5XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzM4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFszODFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszODJdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzgzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszODVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzg2XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzM4N10gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFszODhdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzg5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszOTFdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMzkyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFszOTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzk1XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzM5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszOTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzk4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzM5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MDBdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNDAxXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0MDNdICovCisgICAgKHhkY19DaGFyKTB4NzcsICAvKiBbNDA0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0MDZdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDA3XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0MDldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNDEwXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzQxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MTJdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbNDEzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0MTVdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDE2XSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzQxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs0MThdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDE5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDIwXSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzQyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0MjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDIzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MiwgIC8qIFs0MjVdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNDI2XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzQyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MjhdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDI5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0MzFdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDMyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs0MzRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDM1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0MzddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDM4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs0NDBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDQxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQ0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0NDNdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNDQ0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NSwgIC8qIFs0NDZdICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNDQ3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs0NDldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNDUwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQ1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0NTJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDUzXSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzQ1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NTVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDU2XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzQ1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NThdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDU5XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQ2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs0NjFdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDYyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQ2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0NjRdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDY1XSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzQ2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQ2N10gKi8KKyAgICAoeGRjX0NoYXIpMHgzYywgIC8qIFs0NjhdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDY5XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NzFdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDcyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQ3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0NzRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDc1XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NzddICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDc4XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0ODBdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNDgxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs0ODNdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDg0XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzQ4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs0ODZdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNDg3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQ4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs0ODldICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNDkwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDkxXSAqLworICAgICh4ZGNfQ2hhcikweDNjLCAgLyogWzQ5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0OTNdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDk0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0OTZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDk3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQ5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0OTldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTAwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs1MDJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTAzXSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzUwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1MDVdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNTA2XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzUwN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1MDhdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTA5XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzUxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs1MTFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1MTJdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTEzXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZSwgIC8qIFs1MTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTE2XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzUxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MThdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTE5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzUyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1MjFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNTIyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzUyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1MjRdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNTI1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1MjddICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTI4XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzUyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs1MzBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1MzFdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTMyXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUzM10gKi8KKyAgICAoeGRjX0NoYXIpMHgzZSwgIC8qIFs1MzRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTM1XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzUzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MzddICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNTM4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1NDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTQxXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzU0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1NDNdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNTQ0XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzU0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1NDZdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNTQ3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTQ4XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzU0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs1NTBdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNTUxXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzU1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1NTRdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNTU1XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzU1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1NTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNTU4XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzU1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NjBdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNTYxXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTYyXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzU2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1NjRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTY1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1NjddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTY4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTY5XSAqLworICAgICh4ZGNfQ2hhcikweDQzLCAgLyogWzU3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs1NzFdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTcyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU3M10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NCwgIC8qIFs1NzVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTc2XSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzU3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1NzhdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNTc5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzU4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1ODFdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTgyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTgzXSAqLworICAgICh4ZGNfQ2hhcikweDQ0LCAgLyogWzU4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1ODVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTg2XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzU4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1ODhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1ODldICovCisgICAgKHhkY19DaGFyKTB4NDUsICAvKiBbNTkwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OTJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNTkzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NywgIC8qIFs1OTZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTk3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1OTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MDBdICovCisgICAgKHhkY19DaGFyKTB4NDcsICAvKiBbNjAxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MDNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjA0XSAqLworICAgICh4ZGNfQ2hhcikweDRlLCAgLyogWzYwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs2MDZdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjA3XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzYwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0YywgIC8qIFs2MTBdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjExXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzYxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs2MTRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjE1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzYxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2MTddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MThdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNjE5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs2MjFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjIyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzYyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2MjRdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MjVdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbNjI2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYyN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MjhdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNjI5XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzYzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MzFdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNjMyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjMzXSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzYzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MzVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjM2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzYzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MzhdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNjM5XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzY0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2NDJdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNjQzXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzY0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2NDVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjQ2XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzY0N10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2NDldICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNjUwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzY1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs2NTJdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNjUzXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1NCwgIC8qIFs2NTZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjU3XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzY1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2NTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NjBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjYxXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzY2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs2NjNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjY0XSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzY2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs2NjddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjY4XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzY2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2NzBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjcxXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzY3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2NzRdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjc1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzY3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2NzddICovCisgICAgKHhkY19DaGFyKTB4NmIsICAvKiBbNjc4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzY3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs2ODBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2ODFdICovCisgICAgKHhkY19DaGFyKTB4NDMsICAvKiBbNjgyXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzY4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2ODRdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjg1XSAqLworICAgICh4ZGNfQ2hhcikweDZiLCAgLyogWzY4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2ODddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjg4XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzY4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MiwgIC8qIFs2OTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjkyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2OTRdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNjk1XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjk2XSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X25vZGVUYWIgeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BWzIxXSA9IHsKKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4MCwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgwLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzBdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDIyNSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMmEsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMzMsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyM2EsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbM10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyM2YsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNDgsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNGUsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNTQsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbN10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNTksICAvKiByaWdodCAqLworICAgIH0sICAvKiBbOF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNjIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbOV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNjYsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTBdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjZiLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzExXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI3MiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxMl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyN2EsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTNdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjgyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE0XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI4OSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxNV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyOTAsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTZdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDI5NSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyOWIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTddICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMTEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MmEyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE4XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDEyLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDJhYSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxOV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAxMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyYjMsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMjBdICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDEwOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogbmFtZVVua25vd25fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVVua25vd24geGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQyA9ICJ7dW5rbm93bi1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIG5hbWVFbXB0eV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHkgeGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MgPSAie2VtcHR5LWluc3RhbmNlLW5hbWV9IjsKKworLyogbmFtZVN0YXRpY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljIHhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyA9ICJ7c3RhdGljLWluc3RhbmNlLW5hbWV9IjsKKworLyogaXNMb2FkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfaXNMb2FkZWQgeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQyA9IDE7CisKKy8qIGNoYXJUYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIpeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BKTsKKworLyogbm9kZVRhYl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYil4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EpOworCisvKiBjaGFyQ250X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJDbnQgeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DID0gKHhkY19JbnQxNikweDJiOTsKKworLyogbm9kZUNudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250IHhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQyA9ICh4ZGNfSW50MTYpMHgxNTsKKworLyogdmlzaXRSb3BlRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4biB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSkpOworCisvKiB2aXNpdFJvcGVGeG4yX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjIgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kpKTsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGJlZ2luX19FICovCit4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19FKCB4ZGNfU3RyaW5nIG1zZyApIAoreworICAgIGFjbWVfdXRpbHNfQmVuY2hfYmVnaW5fX0YobXNnKTsKK30KKworLyogZW5kX19FICovCit4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2VuZF9fRSggdm9pZCApIAoreworICAgIGFjbWVfdXRpbHNfQmVuY2hfZW5kX19GKCk7Cit9CisKKy8qIE1vZHVsZV9zdGFydHVwICovCit4ZGNfSW50IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UoIHhkY19JbnQgc3RhdGUgKQoreworICAgIHJldHVybiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19GKHN0YXRlKTsKK30KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBnZXRUaW1lX19FICovCithY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRigpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIHNldE1hc2tfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0UoIHhkY19TdHJpbmcgY29udHJvbCApIAoreworICAgIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0YoY29udHJvbCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogY2hlY2tfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX2NoZWNrX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0YoZWIpOworfQorCisvKiBnZXREYXRhX19FICovCit4ZGNfcnVudGltZV9FcnJvcl9EYXRhKiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRihlYik7Cit9CisKKy8qIGdldENvZGVfX0UgKi8KK3hkY19VSW50MTYgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0YoZWIpOworfQorCisvKiBnZXRJZF9fRSAqLworeGRjX3J1bnRpbWVfRXJyb3JfSWQgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRihlYik7Cit9CisKKy8qIGdldE1zZ19fRSAqLworeGRjX1N0cmluZyB4ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0YoZWIpOworfQorCisvKiBnZXRTaXRlX19FICovCit4ZGNfcnVudGltZV9UeXBlc19TaXRlKiB4ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRihlYik7Cit9CisKKy8qIGluaXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX2luaXRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHhkY19ydW50aW1lX0Vycm9yX2luaXRfX0YoZWIpOworfQorCisvKiBwcmludF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHhkY19ydW50aW1lX0Vycm9yX3ByaW50X19GKGViKTsKK30KKworLyogcmFpc2VYX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiwgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbW9kLCB4ZGNfU3RyaW5nIGZpbGUsIHhkY19JbnQgbGluZSwgeGRjX3J1bnRpbWVfRXJyb3JfSWQgaWQsIHhkY19JQXJnIGFyZzEsIHhkY19JQXJnIGFyZzIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0YoZWIsIG1vZCwgZmlsZSwgbGluZSwgaWQsIGFyZzEsIGFyZzIpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZW50ZXJTeXN0ZW1fX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRigpOworfQorCisvKiBsZWF2ZVN5c3RlbV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRSggeGRjX0lBcmcga2V5ICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRihrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19GKHF1YWwpOworfQorCisvKiBlbnRlcl9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSBfX2luc3QgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0YoKHZvaWQqKV9faW5zdCk7Cit9CisKKy8qIGxlYXZlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlIF9faW5zdCwgeGRjX0lBcmcga2V5ICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YoKHZvaWQqKV9faW5zdCwga2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0LCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIAoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRigodm9pZCopX19pbnN0LCBibG9jaywgc2l6ZSk7Cit9CisKKy8qIGdldFN0YXRzX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19GKCh2b2lkKilfX2luc3QsIHN0YXRzKTsKK30KKworLyogYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0LCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRigodm9pZCopX19pbnN0LCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBpc0Jsb2NraW5nX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0YoKHZvaWQqKV9faW5zdCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGRvUHJpbnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19kb1ByaW50X19FKCB4ZGNfcnVudGltZV9Mb2dfRXZlbnRSZWMqIGV2UmVjICkgCit7CisgICAgeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0YoZXZSZWMpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GKGhlYXAsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGNhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0YoaGVhcCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogZnJlZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIAoreworICAgIHhkY19ydW50aW1lX01lbW9yeV9mcmVlX19GKGhlYXAsIGJsb2NrLCBzaXplKTsKK30KKworLyogZ2V0U3RhdHNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0YoaGVhcCwgc3RhdHMpOworfQorCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX0ludCBxdWFsICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRihoZWFwLCBxdWFsKTsKK30KKworLyogZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSAqLworeGRjX1NpemVUIHhkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GKCk7Cit9CisKKy8qIHZhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX0NoYXIgdmFsdWUsIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GKGhlYXAsIHNpemUsIGFsaWduLCB2YWx1ZSwgZWIpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZXhlY19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GKCk7Cit9CisKKy8qIHJ0c0RvbmVfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0YoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYWJvcnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0Yoc3RyKTsKK30KKworLyogZXhpdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19GKHN0YXQpOworfQorCisvKiBmbHVzaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GKCk7Cit9CisKKy8qIHB1dGNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GKGNoKTsKK30KKworLyogcmVhZHlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0YoKTsKK30KKworLyogTW9kdWxlX3N0YXJ0dXAgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FKCB4ZGNfSW50IHN0YXRlICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19GKHN0YXRlKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYWJvcnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0Yoc3RyKTsKK30KKworLyogYXRleGl0X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fQXRleGl0SGFuZGxlciBoYW5kbGVyICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0YoaGFuZGxlcik7Cit9CisKKy8qIGV4aXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRihzdGF0KTsKK30KKworLyogcHV0Y2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0YoY2gpOworfQorCisvKiBmbHVzaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19GKCk7Cit9CisKKy8qIHByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19FKCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKK30KKworLyogcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRihmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogYXByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRSggeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRihmbXQsIF9fdmEpOworfQorCisvKiBhcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiBzcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7Cit9CisKKy8qIHNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIGFzcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKK30KKworLyogYXNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogdnByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0YoZm10LCB2YSk7Cit9CisKKy8qIGF2cHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19GKGZtdCwgdmEpOworfQorCisvKiB2c3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0YoYnVmLCBmbXQsIHZhKTsKK30KKworLyogYXZzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19GKGJ1ZiwgZm10LCB2YSk7Cit9CisKKy8qIE1vZHVsZV9zdGFydHVwICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSggeGRjX0ludCBzdGF0ZSApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRihzdGF0ZSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBjb3JkVGV4dF9fRSAqLworeGRjX1N0cmluZyB4ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19FKCB4ZGNfcnVudGltZV9UZXh0X0NvcmRBZGRyIGNvcmQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRihjb3JkKTsKK30KKworLyogcm9wZVRleHRfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19GKHJvcGUpOworfQorCisvKiBtYXRjaFJvcGVfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUsIHhkY19TdHJpbmcgcGF0LCB4ZGNfSW50KiBsZW5wICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19GKHJvcGUsIHBhdCwgbGVucCk7Cit9CisKKy8qIHB1dExhYl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRihsYWIsIGJ1ZnAsIGxlbik7Cit9CisKKy8qIHB1dE1vZF9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbWlkLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19GKG1pZCwgYnVmcCwgbGVuKTsKK30KKworLyogcHV0U2l0ZV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0UoIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHNpdGUsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GKHNpdGUsIGJ1ZnAsIGxlbik7Cit9CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2hfUENsb2NrIFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIGdldFRpbWVfX0UgKi8KK2FjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfZ2V0VGltZV9fRSggdm9pZCApCit7CisgICAgcmV0dXJuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWUoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuR2F0ZU51bGwgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKG9hLCBvc3osIGFhLCAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX1BhcmFtcyksIGViKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgY29uc3QgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyhkc3QsIHNyYywgcHN6LCBpc3opOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZV9fbGFiZWxfX1MoIFB0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKG9iaiwgbGFiKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnkocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UoIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0ICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXIoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlX19FKCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX0lBcmcga2V5ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZSgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCwga2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkhlYXBTdGQgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JSGVhcF9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19kZWxldGVfX1MoIFB0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MoaW5zdHApOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoZHN0LCBzcmMsIHBzeiwgaXN6KTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlX19sYWJlbF9fUyggUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfYWxsb2NfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSUhlYXBfYWxsb2MoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfZnJlZV9fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApCit7CisgICAgeGRjX3J1bnRpbWVfSUhlYXBfZnJlZSgoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgYmxvY2ssIHNpemUpOworfQorCisvKiBpc0Jsb2NraW5nX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0lIZWFwX2lzQmxvY2tpbmcoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkKK3sKKyAgICB4ZGNfcnVudGltZV9JSGVhcF9nZXRTdGF0cygoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgc3RhdHMpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkdhdGVOdWxsICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyKXBhLCBzaXplb2YoeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKGRzdCwgc3JjLCBwc3osIGlzeik7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGVfX2xhYmVsX19TKCBQdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnkocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9lbnRlcl9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0KTsKK30KKworLyogbGVhdmVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlX19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfSUFyZyBrZXkgKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0LCBrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuU3lzTWluICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBhYm9ydF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydChzdHIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2V4aXRfX0UoIHhkY19JbnQgc3RhdCApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXQoc3RhdCk7Cit9CisKKy8qIGZsdXNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2ZsdXNoX19FKCB2b2lkICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2goKTsKK30KKworLyogcHV0Y2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2goY2gpOworfQorCisvKiByZWFkeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9yZWFkeV9fRSggdm9pZCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeSgpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBPQkpFQ1QgREVTQ1JJUFRPUiA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLwordHlwZWRlZiBzdHJ1Y3QgeyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18gczA7IGNoYXIgYzsgfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1MxOworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DID0geworICAgIChQdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQywgLyogZnhuVGFiICovCisgICAgJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgLyogbW9kTGluayAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1MxKSAtIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18pLCAvKiBvYmpBbGlnbiAqLworICAgIDAsIC8qIG9iakhlYXAgKi8KKyAgICAwLCAvKiBvYmpOYW1lICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXyksIC8qIG9ialNpemUgKi8KKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgLyogcHJtc0luaXQgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zKSwgLyogcHJtc1NpemUgKi8KK307CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBPQkpFQ1QgREVTQ1JJUFRPUiA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLwordHlwZWRlZiBzdHJ1Y3QgeyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyBzMDsgY2hhciBjOyB9IHhkY19ydW50aW1lX0hlYXBTdGRfX19TMTsKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DID0geworICAgIChQdHIpJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLCAvKiBmeG5UYWIgKi8KKyAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssIC8qIG1vZExpbmsgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1MxKSAtIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyksIC8qIG9iakFsaWduICovCisgICAgMCwgLyogb2JqSGVhcCAqLworICAgIDAsIC8qIG9iak5hbWUgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX18pLCAvKiBvYmpTaXplICovCisgICAgKFB0cikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgLyogcHJtc0luaXQgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMpLCAvKiBwcm1zU2l6ZSAqLworfTsKKworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKCk7Cit9CisKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaF9QQ2xvY2sgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIAoreworICAgIGxhYi0+aGFuZGxlID0gb2JqOworICAgIGxhYi0+bW9kSWQgPSAzMjc3NjsKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsKGxhYiwgMCwgMCk7CisKKyAgICByZXR1cm4gbGFiOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBwcm1zLCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JKHBybXMsICh4ZGNfUHRyKShzcmMgPyBzcmMgOiAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MpLCBwc3osIGlzeik7Cit9CisKKy8qIE9iamVjdF9fZ2V0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hLCB4ZGNfSW50IGkgKSAKK3sKKyAgICBpZiAob2EpIHsKKyAgICAgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18qKW9hKSArIGk7CisgICAgfQorCisgICAgaWYgKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MgPT0gMCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyopeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQykgKyBpOworfQorCisvKiBPYmplY3RfX2ZpcnN0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKil4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmsubmV4dDsKKworICAgIGlmIChpSGRyICE9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gaUhkciArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fbmV4dF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICgoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKW9iaikgLSAxOworCisgICAgaWYgKGlIZHItPmxpbmsubmV4dCAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfTGluayAqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopKGlIZHItPmxpbmsubmV4dCkgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyBwcm1zOworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCogb2JqOworCisgICAgLyogY29tbW9uIGluc3RhbmNlIGluaXRpYWxpemF0aW9uICovCisgICAgb2JqID0geGRjX3J1bnRpbWVfQ29yZV9jcmVhdGVPYmplY3RfX0koJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgb2EsIG9zeiwgJnBybXMsICh4ZGNfUHRyKXBhLCBwc3osIGViKTsKKyAgICBpZiAob2JqID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIG9iajsKK30KKworLyogT2JqZWN0X19kZXN0cnVjdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCBvYmosIE5VTEwsIC0xLCBUUlVFKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgKigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0KiopaW5zdHApLCBOVUxMLCAtMSwgRkFMU0UpOworICAgICooKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSopaW5zdHApID0gTlVMTDsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgCit7CisgICAgbGFiLT5oYW5kbGUgPSBvYmo7CisgICAgbGFiLT5tb2RJZCA9IDMyNzgwOworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduTGFiZWwobGFiLCAwLCAwKTsKKworICAgIHJldHVybiBsYWI7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgcHJtcywgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnblBhcmFtc19fSShwcm1zLCAoeGRjX1B0cikoc3JjID8gc3JjIDogJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MpLCBwc3osIGlzeik7Cit9CisKKy8qIE9iamVjdF9fZ2V0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2EsIHhkY19JbnQgaSApIAoreworICAgIGlmIChvYSkgeworICAgICAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKilvYSkgKyBpOworICAgIH0KKworICAgIGlmICh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MgPT0gMCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKil4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MpICsgaTsKK30KKworLyogT2JqZWN0X19maXJzdF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKil4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGluay5uZXh0OworCisgICAgaWYgKGlIZHIgIT0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuIGlIZHIgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX25leHRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICgoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKW9iaikgLSAxOworCisgICAgaWYgKGlIZHItPmxpbmsubmV4dCAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfTGluayAqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikoaUhkci0+bGluay5uZXh0KSArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zIHBybXM7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QqIG9iajsKKyAgICBpbnQgaVN0YXQ7CisKKyAgICAvKiBjb21tb24gaW5zdGFuY2UgaW5pdGlhbGl6YXRpb24gKi8KKyAgICBvYmogPSB4ZGNfcnVudGltZV9Db3JlX2NyZWF0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsIG9hLCBvc3osICZwcm1zLCAoeGRjX1B0cilwYSwgcHN6LCBlYik7CisgICAgaWYgKG9iaiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIC8qIG1vZHVsZS1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiAqLworICAgIGlTdGF0ID0geGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GKG9iaiwgJnBybXMsIGViKTsKKyAgICBpZiAoeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2soZWIpKSB7CisgICAgICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgb2JqLCBOVUxMLCBpU3RhdCwgKHhkY19Cb29sKShvYSAhPSBOVUxMKSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBvYmo7Cit9CisKKy8qIE9iamVjdF9fZGVzdHJ1Y3RfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsIG9iaiwgTlVMTCwgMCwgVFJVRSk7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCAqKCh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdCoqKWluc3RwKSwgTlVMTCwgMCwgRkFMU0UpOworICAgICooKHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlKilpbnN0cCkgPSBOVUxMOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDE7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKCk7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fRigpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2ggUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZV9fUyk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoYWNtZV91dGlsc19CZW5jaF9lbmRfX0UpOworI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9iaiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtcyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2YgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZSBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWcgYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogYWNtZV91dGlsc19CZW5jaF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19FKCB4ZGNfU3RyaW5nIG1zZyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2VuZF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXMgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9iaiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjggYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9Bc3NlcnRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Fzc2VydF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Bc3NlcnRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXMgeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfQ29yZV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0NvcmVfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfRGVmYXVsdHNfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGVmYXVsdHNfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlIHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfRGlhZ3NfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3NfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGlhZ3NfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0UoIHhkY19TdHJpbmcgY29udHJvbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljIHhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5IHhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5IHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9vayB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aCB4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0Vycm9yX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX0Vycm9yX0RhdGEqIHhkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVUludDE2IHhkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9JZCB4ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TdHJpbmcgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX2luaXRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViLCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtb2QsIHhkY19TdHJpbmcgZmlsZSwgeGRjX0ludCBsaW5lLCB4ZGNfcnVudGltZV9FcnJvcl9JZCBpZCwgeGRjX0lBcmcgYXJnMSwgeGRjX0lBcmcgYXJnMiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9HYXRlX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JQXJnIHhkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRSggeGRjX0lBcmcga2V5ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUsIHhkY19JQXJnIGtleSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnkgeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudCB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlIHhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlIHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0xvZ19IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0xvZ19Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19kb1ByaW50X19FKCB4ZGNfcnVudGltZV9Mb2dfRXZlbnRSZWMqIGV2UmVjICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01haW5fSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01haW5fUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZSB4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01lbW9yeV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX0ludCBxdWFsICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TaXplVCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfQ2hhciB2YWx1ZSwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UpOworI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3NlcyB4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N0YXJ0dXBfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9idWZTaXplIHhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0IHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG4geGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3lzTWluX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UpOworI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnIHhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3lzdGVtX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fQXRleGl0SGFuZGxlciBoYW5kbGVyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVVua25vd24geGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5IHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljIHhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfaXNMb2FkZWQgeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25vZGVUYWIgeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250IHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZUNudCB4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4biB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMiB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9UZXh0X0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Db3JkQWRkciBjb3JkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLCB4ZGNfU3RyaW5nIHBhdCwgeGRjX0ludCogbGVucCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TGFiX19FKCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0UoIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1pZCwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRSggeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogc2l0ZSwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSBJTklUSUFMSVpBVElPTiBFTlRSWSBQT0lOVCA9PT09PT09PQorICovCisKK2V4dGVybiBpbnQgX194ZGNfX2luaXQodm9pZCk7CisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpCisjZW5kaWYKKyNlbmRpZgorX19GQVJfXyBpbnQgKCogdm9sYXRpbGUgX194ZGNfX2luaXRfX2FkZHIpKHZvaWQpID0gJl9feGRjX19pbml0OworCisKKy8qCisgKiA9PT09PT09PSBQUk9HUkFNIEdMT0JBTFMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSBDTElOSyBESVJFQ1RJVkVTID09PT09PT09CisgKi8KKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMzViOTlmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnCkBAIC0wLDAgKzEsNzg3IEBACisvKgorICogID09PT09PT09IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcgPT09PT09PT0KKyAqICBUaGlzIGdlbmVyYXRlZCBjb25maWd1cmF0aW9uIHNjcmlwdCBydW5zIHRoZSB1c2VyJ3MgY29uZmlndXJhdGlvbiBzY3JpcHQKKyAqICB0aGUgY29udGV4dCBvZiBhIHNwZWNpZmljIHRhcmdldCBhbmQgcGxhdGZvcm0gaW4gb3JkZXIgdG8gZ2VuZXJhdGUKKyAqICBhbGwgdGhlIGZpbGVzIG5lY2Vzc2FyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZTsgZS5nLiwgbGlua2VyIGNvbW1hbmQKKyAqICBmaWxlcywgc3RhdGljIEMvQysrIGRhdGEgc3RydWN0dXJlcywgZXRjLgorICovCisKKy8qCisgKiAgPT09PT09PT0gX3J1bmVzY2FwZSA9PT09PT09PQorICogIFJlY3Vyc2l2ZSB1bmVzY2FwZSB0byBkZWNvZGUgc2VyaWFsaXplZCBzdHJpbmdzCisgKi8KK2Z1bmN0aW9uIF9ydW5lc2NhcGUob2JqKSB7CisgICAgZm9yICh2YXIgaSBpbiBvYmopIHsKKyAgICAgICAgaWYgKG9ialtpXSAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAodHlwZW9mIG9ialtpXSA9PSAnc3RyaW5nJykgeworICAgICAgICAgICAgICAgIG9ialtpXSA9IHVuZXNjYXBlKG9ialtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb2JqW2ldID09ICdvYmplY3QnKSB7CisgICAgICAgICAgICAgICAgX3J1bmVzY2FwZShvYmpbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvKgorICogID09PT09PT09IF9nZXRQbGF0Q2ZnID09PT09PT09CisgKi8KK2Z1bmN0aW9uIF9nZXRQbGF0Q2ZnKCkgeworICAgIHZhciB0bXAgPSB7fTsKKyAgICBfcnVuZXNjYXBlKHRtcCk7CisgICAgcmV0dXJuICh0bXApOworfQorLyoKKyAqICA9PT09PT09PSBfY2ZnaW5pdCA9PT09PT09PQorICovCitmdW5jdGlvbiBfY2ZnaW5pdCgpIHsKKyAgICB4ZGMubG9hZFBhY2thZ2UoJ3hkYy5zZXJ2aWNlcy5pbnRlcm4uY21kJyk7CisgICAgdmFyIHByb2cgPSB4ZGMub21bJ3hkYy5jZmcuUHJvZ3JhbSddOworCisgICAgLyogaW5pdGlhbGl6ZSBwcm9nIGF0dHJzIGZyb20gYnVpbGQgbW9kZWwgKi8KKyAgICB2YXIgYnVpbGQgPSB7CisgICAgICAgIHJlbGVhc2VzOiB7CisgICAgICAgICAgICAwOiB7CisgICAgICAgICAgICAgICAgbmFtZTogImNmZ3NpdGUiLAorICAgICAgICAgICAgICAgIGF0dHJzOiB7CisgICAgICAgICAgICAgICAgICAgIHByZWZpeDogIiIsCisgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAiZGVmYXVsdCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIG90aGVyRmlsZXM6IHt9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHRhcmdldDogeworICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UCIsCisgICAgICAgICAgICBuYW1lOiAiQzY0UCIsCisgICAgICAgICAgICBzdWZmaXg6ICI2NFAiLAorICAgICAgICAgICAgY29tcGF0aWJsZVN1ZmZpeGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9jb21wYXRpYmxlU3VmZml4ZXMiLAorICAgICAgICAgICAgICAgIDA6ICI2NCIsCisgICAgICAgICAgICAgICAgMTogIjYyIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGlzYTogIjY0UCIsCisgICAgICAgICAgICBtb2RlbDogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvbW9kZWwiLAorICAgICAgICAgICAgICAgIGVuZGlhbjogImxpdHRsZSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBydHM6ICJ0aS50YXJnZXRzLnJ0czYwMDAiLAorICAgICAgICAgICAgYmFzZTogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2MiIsCisgICAgICAgICAgICAgICAgbmFtZTogIkM2MiIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiNjIiLAorICAgICAgICAgICAgICAgIGNvbXBhdGlibGVTdWZmaXhlczogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvY29tcGF0aWJsZVN1ZmZpeGVzIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGlzYTogIjYyIiwKKyAgICAgICAgICAgICAgICBtb2RlbDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvbW9kZWwiLAorICAgICAgICAgICAgICAgICAgICBlbmRpYW46ICJsaXR0bGUiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBydHM6ICJ0aS50YXJnZXRzLnJ0czYwMDAiLAorICAgICAgICAgICAgICAgIHBsYXRmb3JtOiAidGkucGxhdGZvcm1zLnNpbTZ4eHglM0FUTVMzMjBDNjIxMSIsCisgICAgICAgICAgICAgICAgcGxhdGZvcm1zOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wbGF0Zm9ybXMiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgYmluYXJ5UGFyc2VyOiAidGkudGFyZ2V0cy5vbWYuY29mLkNvZmYiLAorICAgICAgICAgICAgICAgIGRlYnVnR2VuOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9kZWJ1Z0dlbiIsCisgICAgICAgICAgICAgICAgICAgIGV4ZWNUZW1wbGF0ZTogInRpL3RhcmdldHMvY2NzX2V4ZWMueGR0IiwKKyAgICAgICAgICAgICAgICAgICAgZXhlY1BhdHRlcm46ICIlMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCIsCisgICAgICAgICAgICAgICAgICAgIHBhY2thZ2VUZW1wbGF0ZTogInRpL3RhcmdldHMvY2NzX3BhY2thZ2UueGR0IiwKKyAgICAgICAgICAgICAgICAgICAgcGFja2FnZVBhdHRlcm46ICJwYWNrYWdlLyUyNCUyOHBrZ05hbWUlMjkucGp0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucyIsCisgICAgICAgICAgICAgICAgICAgICIuczYyIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5zNjInIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zNjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmFzbSI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYXNtJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYXNtIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIi5jIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYyIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJjIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmNwcCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3BwJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIi5jeHgiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmN4eCciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmN4eCIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuQyI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuQyciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLkMiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmNjIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jYyciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNjIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdmVyc2lvbk1hcDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvdmVyc2lvbk1hcCIsCisgICAgICAgICAgICAgICAgICAgICJUTVMzMjBDNnhfNC4zMiI6ICIxJTJDMCUyQzQuMzIlMkMwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEM1NXhfMi41NiI6ICIxJTJDMCUyQzIuNTYlMkMwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEM1NHhfMy44MyI6ICIxJTJDMCUyQzMuODMlMkMwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEMyMDAwXzMuMDciOiAiMSUyQzAlMkMzLjA3JTJDMCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGFsaWduRGlyZWN0aXZlU3VwcG9ydGVkOiB0cnVlLAorICAgICAgICAgICAgICAgIHByb2ZpbGVzOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcyIsCisgICAgICAgICAgICAgICAgICAgIGRlYnVnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZzOiAiLURfREVCVUdfJTNEMSIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHJlbGVhc2U6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZSciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1PMiIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWdwIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjb3ZlcmFnZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZSciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZ3AiCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB3aG9sZV9wcm9ncmFtOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItb2UlMjAtTzIlMjAtbW8iCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHdob2xlX3Byb2dyYW1fZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZyciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1vZSUyMC0tc3ltZGVidWclM0Fkd2FyZiUyMC1tbyIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgc2VjdE1hcDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc2VjdE1hcCIsCisgICAgICAgICAgICAgICAgICAgICIudGV4dCI6ICJjb2RlIiwKKyAgICAgICAgICAgICAgICAgICAgIi5zdGFjayI6ICJzdGFjayIsCisgICAgICAgICAgICAgICAgICAgICIuYnNzIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmNpbml0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLnBpbml0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmNvbnN0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmRhdGEiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuc3dpdGNoIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLnN5c21lbSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5mYXIiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuYXJncyI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5jaW8iOiAiZGF0YSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHN0ZEluY2x1ZGU6ICJ0aS90YXJnZXRzL3N0ZC5oIiwKKyAgICAgICAgICAgICAgICBzdGRUeXBlczogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMiLAorICAgICAgICAgICAgICAgICAgICB0X0lBcmc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0lBcmciLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfQ2hhcjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfQ2hhciIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9Eb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0RvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9GbG9hdDogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRmxvYXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfRnhuOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GeG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50ODogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50OCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQxNjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50MzI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDMyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0ludDQwOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ0MCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQ2NDogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NjQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfTG9uZzogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfTG9uZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9MRG91YmxlOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0xMb25nOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MTG9uZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9QdHI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1B0ciIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9TaG9ydDogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfU2hvcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGJpdHNQZXJDaGFyOiA4CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgcGxhdGZvcm06ICJ0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMENETTQyMCIsCisgICAgICAgICAgICBwbGF0Zm9ybXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgMDogInRpLnBsYXRmb3Jtcy5zaW02eHh4JTNBVE1TMzIwQ0RNNDIwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGJpbmFyeVBhcnNlcjogInRpLnRhcmdldHMub21mLmNvZi5Db2ZmIiwKKyAgICAgICAgICAgIHZlcnNpb246ICJ0aS50YXJnZXRzLkM2NFAlN0IxJTJDMCUyQzYuMSUyQzUiLAorICAgICAgICAgICAgZGVidWdHZW46IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2RlYnVnR2VuIiwKKyAgICAgICAgICAgICAgICBleGVjVGVtcGxhdGU6ICJ0aS90YXJnZXRzL2Njc19leGVjLnhkdCIsCisgICAgICAgICAgICAgICAgZXhlY1BhdHRlcm46ICIlMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCIsCisgICAgICAgICAgICAgICAgcGFja2FnZVRlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfcGFja2FnZS54ZHQiLAorICAgICAgICAgICAgICAgIHBhY2thZ2VQYXR0ZXJuOiAicGFja2FnZS8lMjQlMjhwa2dOYW1lJTI5LnBqdCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBleHRlbnNpb25zOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zIiwKKyAgICAgICAgICAgICAgICAiLnM2NFAiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NFAnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLnM2NFAiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLnM2NCI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0JyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zNjQiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLnM2MiI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczYyJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zNjIiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLmFzbSI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYXNtJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5hc20iLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLmMiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmMnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmMiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jcHAiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNwcCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jeHgiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmN4eCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3h4IiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5DIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5DJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5DIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jYyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY2MnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNjIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB2ZXJzaW9uTWFwOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC92ZXJzaW9uTWFwIiwKKyAgICAgICAgICAgICAgICAiVE1TMzIwQzZ4XzQuMzIiOiAiMSUyQzAlMkM0LjMyJTJDMCIsCisgICAgICAgICAgICAgICAgIlRNUzMyMEM1NXhfMi41NiI6ICIxJTJDMCUyQzIuNTYlMkMwIiwKKyAgICAgICAgICAgICAgICAiVE1TMzIwQzU0eF8zLjgzIjogIjElMkMwJTJDMy44MyUyQzAiLAorICAgICAgICAgICAgICAgICJUTVMzMjBDMjAwMF8zLjA3IjogIjElMkMwJTJDMy4wNyUyQzAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYWxpZ25EaXJlY3RpdmVTdXBwb3J0ZWQ6IHRydWUsCisgICAgICAgICAgICByb290RGlyOiAiZCUzQS90aS9jNjAwMC9hbGMiLAorICAgICAgICAgICAgcHJvZmlsZXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzIiwKKyAgICAgICAgICAgICAgICBkZWJ1ZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZyciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWciLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVmczogIi1EX0RFQlVHXyUzRDEiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgcmVsZWFzZTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1PMiIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHByb2ZpbGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZ3AiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjb3ZlcmFnZTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWdwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHdob2xlX3Byb2dyYW06IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItb2UlMjAtTzIlMjAtbW8iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB3aG9sZV9wcm9ncmFtX2RlYnVnOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLW9lJTIwLS1zeW1kZWJ1ZyUzQWR3YXJmJTIwLW1vIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzZWN0TWFwOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zZWN0TWFwIiwKKyAgICAgICAgICAgICAgICAiLnRleHQiOiAiY29kZSIsCisgICAgICAgICAgICAgICAgIi5zdGFjayI6ICJzdGFjayIsCisgICAgICAgICAgICAgICAgIi5ic3MiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5jaW5pdCI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLnBpbml0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuY29uc3QiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5kYXRhIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuc3dpdGNoIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuc3lzbWVtIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuZmFyIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuYXJncyI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmNpbyI6ICJkYXRhIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHN0ZEluY2x1ZGU6ICJ0aS90YXJnZXRzL3N0ZC5oIiwKKyAgICAgICAgICAgIHN0ZFR5cGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcyIsCisgICAgICAgICAgICAgICAgdF9JQXJnOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JQXJnIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfQ2hhcjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfQ2hhciIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAxCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0RvdWJsZTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRmxvYXQ6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Zsb2F0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRnhuOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GeG4iLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDg6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDgiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQxNjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MTYiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAyLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQzMjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MzIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ0MDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NDAiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ2NDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NjQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9Mb25nOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Mb25nIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfTERvdWJsZTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTERvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xMb25nOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X1B0cjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfUHRyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfU2hvcnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1Nob3J0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYml0c1BlckNoYXI6IDgsCisgICAgICAgICAgICBiaW5EaXI6ICIlMjQlMjhyb290RGlyJTI5L2Jpbi8iLAorICAgICAgICAgICAgcGF0aFByZWZpeDogIiIsCisgICAgICAgICAgICBhcjogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvYXIiLAorICAgICAgICAgICAgICAgIGNtZDogImFyNngiLAorICAgICAgICAgICAgICAgIG9wdHM6ICJycSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhck9wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FyT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbG5rOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9sbmsiLAorICAgICAgICAgICAgICAgIGNtZDogImxuazZ4IiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGxua09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2xua09wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIi13JTIwLXElMjAtdSUyMF9jX2ludDAwIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICItYyUyMC1tJTIwJTI0JTI4WERDQ0ZHRElSJTI5LyUyNEAubWFwJTIwLWwlMjAlMjQlMjhyb290RGlyJTI5L2xpYi9ydHM2NHBsdXMubGliIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNjOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9jYyIsCisgICAgICAgICAgICAgICAgY21kOiAiY2w2eCUyMC1jIiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiLW12NjRwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNjT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvY2NPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICItcXElMjAtcGRzdzIyNSIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNjQ29uZmlnT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvY2NDb25maWdPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICIlMjQlMjhjY09wdHMucHJlZml4JTI5JTIwLW1vIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICIlMjQlMjhjY09wdHMuc3VmZml4JTI5IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFzbTogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvYXNtIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICJjbDZ4JTIwLWMiLAorICAgICAgICAgICAgICAgIG9wdHM6ICItbXY2NHAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXNtT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvYXNtT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiLXFxIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdmVyczogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvdmVycyIsCisgICAgICAgICAgICAgICAgY21kOiAiY2w2eCIsCisgICAgICAgICAgICAgICAgb3B0czogIi12ZXJzaW9uIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGluY2x1ZGVPcHRzOiAiLUklMjQlMjhyb290RGlyJTI5L2luY2x1ZGUiCisgICAgICAgIH0sCisgICAgICAgIHRlc3Q6IHt9LAorICAgICAgICBjZmdBcmdzRW5jb2RlZDogdHJ1ZSwKKyAgICAgICAgY2ZnQXJnczogIm51bGwiLAorICAgICAgICBjZmdTY3JpcHQ6ICJEJTNBL3dvcmsvdHV0b3JpYWwvaXNxcnQtcHJvZy9wcm9nLmNmZyIsCisgICAgICAgIGNmZ0hvbWU6ICJjZmdzaXRlIiwKKyAgICAgICAgcHJvZmlsZTogInJlbGVhc2UiCisgICAgfTsKKyAgICBidWlsZC50YXJnZXQuZmluZFN1ZmZpeCA9IGZ1bmN0aW9uIGZpbmRTdWZmaXgocGtnKSB7CisgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUaGUgZnVuY3Rpb24gSVRhcmdldC5maW5kU3VmZml4KCkgcmVxdWlyZXMgYW4gIiArICJhcmd1bWVudCIpOworICAgICAgICB9CisgICAgICAgIHZhciBzdWZmaXhNYXAgPSB7fTsKKyAgICAgICAgaWYgKCJidWlsZCIgaW4gcGtnKSB7CisgICAgICAgICAgICB2YXIgYnVpbGQgPSBwa2cuYnVpbGQ7CisgICAgICAgICAgICBpZiAoYnVpbGQubGlicmFyaWVzLmxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYkRlc2NbMF0uc3VmZml4ICE9IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkLmxpYkRlc2MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeE1hcFtidWlsZC5saWJEZXNjW2ldLnN1ZmZpeF0gPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGQubGliRGVzYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYkRlc2NbaV0udGFyZ2V0ID09IHByb2cuYnVpbGQudGFyZ2V0LiRuYW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4TWFwW3Byb2cuYnVpbGQudGFyZ2V0LnN1ZmZpeF0gPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICgibGVuZ3RoIiBpbiBwa2cpIHsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBrZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzdWZmaXhNYXBbcGtnW2ldXSA9ICIiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbiBpbnZhbGlkIGFyZ3VtZW50IHR5cGUgc3VwcGxpZWQgdG8gIiArICJJVGFyZ2V0LmZpbmRTdWZmaXgoKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZhciBjb21wVGFyZ3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLmNvbXBhdGlibGVTdWZmaXhlcykgeworICAgICAgICAgICAgY29tcFRhcmdzW3Byb3BdID0gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXNbcHJvcF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuc3VmZml4IGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICh0aGlzLnN1ZmZpeCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBUYXJncy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcFRhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29tcFRhcmdzW2ldIGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY29tcFRhcmdzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKG51bGwpOworICAgIH07CisKKyAgICBidWlsZC50YXJnZXQuc2VsZWN0U3VmZml4ID0gZnVuY3Rpb24gc2VsZWN0U3VmZml4KGxpc3QpIHsKKyAgICAgICAgdmFyIHN1ZmZpeE1hcCA9IHt9OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN1ZmZpeE1hcFtsaXN0W2ldXSA9ICIiOworICAgICAgICB9CisgICAgICAgIHZhciBjb21wVGFyZ3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLmNvbXBhdGlibGVTdWZmaXhlcykgeworICAgICAgICAgICAgY29tcFRhcmdzW3Byb3BdID0gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXNbcHJvcF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuc3VmZml4IGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICh0aGlzLnN1ZmZpeCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBUYXJncy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcFRhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29tcFRhcmdzW2ldIGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY29tcFRhcmdzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKG51bGwpOworICAgIH07CisKKyAgICBidWlsZC50YXJnZXQuYXNtTmFtZSA9IGZ1bmN0aW9uIGFzbU5hbWUoY25hbWUpIHsKKyAgICAgICAgcmV0dXJuICgiXyIgKyBjbmFtZSk7CisgICAgfTsKKworICAgIF9ydW5lc2NhcGUoYnVpbGQpOworICAgIGJ1aWxkLmNmZ0FyZ3MgPSBudWxsOworICAgIHByb2cuYnVpbGQgPSBidWlsZDsKKyAgICAKKyAgICBwcm9nLm5hbWUgPSAicHJvZy54NjRQIjsKKworICAgIHByb2cuZW5kaWFuID0gcHJvZy5idWlsZC50YXJnZXQubW9kZWwuZW5kaWFuOworCisgICAgLyogdXNlIHRoZSBwbGF0Zm9ybSBwYWNrYWdlJ3MgUGxhdGZvcm0gbW9kdWxlICovCisgICAgdmFyIFBsYXRmb3JtID0geGRjLnVzZU1vZHVsZSgidGkucGxhdGZvcm1zLnNpbTY0UHh4LlBsYXRmb3JtIik7CisgICAgdmFyIHBsYXRQYXJhbXMgPSBfZ2V0UGxhdENmZygpOworICAgIGZvciAodmFyIHByb3AgaW4gcGxhdFBhcmFtcykgeworICAgICAgICBpZiAoIShwcm9wIGluIFBsYXRmb3JtLlBBUkFNUykpIHsKKyAgICAgICAgICAgIGRlbGV0ZSBwbGF0UGFyYW1zW3Byb3BdOworICAgICAgICB9CisgICAgfQorICAgIHByb2cucGxhdGZvcm1OYW1lID0gInRpLnBsYXRmb3Jtcy5zaW02NFB4eCI7CisgICAgcHJvZy5wbGF0Zm9ybSA9IFBsYXRmb3JtLmNyZWF0ZSgiIiwgX2dldFBsYXRDZmcoKSwgcGxhdFBhcmFtcyk7CisgICAgLyogcmVjb3JkIHRoZSBleGVjdXRhYmxlJ3MgcGFja2FnZSBuYW1lICovCisgICAgcHJvZy5idWlsZFBhY2thZ2UgPSAiY2Znc2l0ZSI7CisKKyAgICAvKiByZWNvcmQgYnVpbGQtbW9kZWwgaW5mb3JtYXRpb24gcmVxdWlyZWQgZHVyaW5nIGNvbmZpZyBnZW5lcmF0aW9uICovCisgICAgcHJvZy4kJGJpbmQoIiQkaXNhc20iLCAwKTsKKyAgICBwcm9nLiQkYmluZCgiJCRpc3JvbSIsIDApOworICAgIHByb2cuJCRiaW5kKCIkJGdlbnRhYiIsIFsKKyAgICBdKTsKKyAgICAKKyAgICAvKiBiaW5kIHByb2cgdG8gYW4gYXBwcm9wcmlhdGUgZXhlY3V0aW9uIGNvbnRleHQgKi8KKyAgICBwcm9nLmNwdSA9IHByb2cucGxhdGZvcm0uZ2V0RXhlQ29udGV4dChwcm9nKTsKKworICAgIC8qIGltcG9ydCB0aGUgdGFyZ2V0J3MgcnVuLXRpbWUgc3VwcG9ydCBwa2cgKi8KKyAgICB4ZGMubG9hZFBhY2thZ2UoInRpLnRhcmdldHMucnRzNjAwMCIpOworfQorICAgIAorLyogZnVuY3Rpb24gdG8gaW1wb3J0IHRoZSBjZmcgc2NyaXB0J3MgcGFja2FnZSAqLworZnVuY3Rpb24gX3VzZXJzY3JpcHQoJCRsZWdhY3ksIHNjcmlwdCkgeworICAgIHZhciBob21lOworICAgIHZhciBzcGF0aDsKKyAgICBob21lID0geGRjLmxvYWRQYWNrYWdlKCJjZmdzaXRlIik7CisgICAgCisgICAgeGRjLm9tLiQkYmluZCgnJGhvbWVwa2cnLCBob21lKTsKKworICAgIGlmIChzY3JpcHQgIT0gbnVsbCkgeworICAgICAgICB1dGlscy5ldmFsdWF0ZVNjcmlwdChzY3JpcHQpOworICAgIH0KKyAgICBlbHNlIHsgCisgICAgICAgIC8qIGxvYWQgJiBydW4gcHJvZ3JhbSBjZmcgc2NyaXB0IGFuZCBtb25pdG9yIGFsbCBsb2FkZWQgZmlsZXMgKi8KKyAgICAgICAgX3J1bkNmZygiRDovd29yay90dXRvcmlhbC9pc3FydC1wcm9nL3Byb2cuY2ZnIiwgc3BhdGgsICJwYWNrYWdlL2NmZy9wcm9nX3g2NFAiLCAgCisgICAgICAgICAgICAgICAgIGZhbHNlLCAKKyAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgIF9nZXRQbGF0Q2ZnKCkpOworICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAKKworCisgICAgLyoKKyAgICAgKiAgPT09PT09PT0gX3J1bkNmZyA9PT09PT09PQorICAgICAqICBSdW4gYSB1c2VyIHN1cHBsaWVkIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGFuZCBwcmV2ZW50IHVzZXIncyBzY3JpcHQgZnJvbQorICAgICAqICBvdmVyd3JpdGluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHByb2cuCisgICAgICovCisgICAgZnVuY3Rpb24gX3J1bkNmZyhjZmdTY3JpcHQsIHBhdGgsIHByb2dyYW1OYW1lLCBsZWdhY3lUY2YsIGxlZ2FjeUNmZywKKyAgICAgICAgcGxhdFBhcmFtcykKKyAgICB7CisgICAgICAgIGlmIChsZWdhY3lUY2YpIHsKKyAgICAgICAgICAgIC8qIHNhdmUgY3VycmVudCBnbG9iYWwgdmFyaWFibGVzICovCisgICAgICAgICAgICB2YXIgJHNhdmUgPSB7cHJvZzogdXRpbHMuZ2xvYmFsLnByb2csIFByb2dyYW06IFByb2dyYW19OworICAgIAorICAgICAgICAgICAgLyogaW5pdGlhbGl6ZSBnbG9iYWwgdmFyaWFibGVzIGZvciBsZWdhY3kgY29uZmlnIHNjcmlwdHMgKi8KKyAgICAgICAgICAgIGVudmlyb25tZW50WyJjb25maWcucHJvZ3JhbU5hbWUiXSA9IHByb2dyYW1OYW1lOworICAgICAgICAgICAgZW52aXJvbm1lbnRbImNvbmZpZy5wbGF0Zm9ybSJdID0gUHJvZ3JhbS5wbGF0Zm9ybU5hbWU7CisgICAgICAgICAgICB1dGlscy5zZWVkUGF0aCA9IGVudmlyb25tZW50WyJjb25maWcuaW1wb3J0UGF0aCJdOworICAgICAgICAgICAgdXRpbHMubG9hZFBsYXRmb3JtLnBhcmFtcyA9IHBsYXRQYXJhbXM7CisgICAgICAgICAgICBQcm9ncmFtID0gJCRsZWdhY3kuUHJvZ3JhbTsgICAgIC8qIGRlZmluZWQgaW4gY2ZnLnRjaSAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiBydW4gbGVnYWN5IGNvbmZpZyBzY3JpcHQgd2l0aCBwcm9nID09IHRvIFJUU0MgUHJvZ3JhbTsgdGhpcworICAgICAgICAgICAgICogYWxsb3dzIGxlZ2FjeSBzY3JpcHQgdG8gcmVhZCBidWlsZCBhdHJpYnV0ZXMgZnJvbSBSVFNDIG1vZGVsCisgICAgICAgICAgICAgKiBiZWZvcmUgcmUtY3JlYXRpbmcgdGhlIHByb2cgb2JqZWN0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHV0aWxzLmxvYWRDYXBzdWxlKGNmZ1NjcmlwdCwgZmFsc2UsIHBhdGgpOyAgCisgICAgCisgICAgICAgICAgICAvKiByZXN0b3JlIGdsb2JhbCB2YXJpYWJsZXM7IG5vdyBwcm9nID09IFRDT00gcHJvZyBiZWNhdXNlCisgICAgICAgICAgICAgKiB1dGlscy5sb2FkUGxhdGZvcm0oKSBjcmVhdGVzIHRoZSBUQ09NIHByb2cgb2JqZWN0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICAkJGxlZ2FjeS5wcm9nID0gdXRpbHMuZ2xvYmFsLnByb2c7ICAvKiBpbiBjYXNlIFhEQyB3YW50cyBpdCAqLworICAgICAgICAgICAgdXRpbHMuZ2xvYmFsLnByb2cgPSAkc2F2ZS5wcm9nOworICAgICAgICAgICAgUHJvZ3JhbSA9ICRzYXZlLlByb2dyYW07CisgICAgCisgICAgICAgICAgICAvKiBydW4gWERDIGNvbmZpZ3VyYXRpb24gc2NyaXB0LCBpZiBpdCBleGlzdHMgKi8KKyAgICAgICAgICAgIGlmIChsZWdhY3lDZmcpIHsKKyAgICAgICAgICAgICAgICB1dGlscy5pbXBvcnRGaWxlKGNmZ1NjcmlwdC5yZXBsYWNlKC9cLnRjZi8sICIuY2ZnIiksIHBhdGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdXRpbHMubG9hZENhcHN1bGUoY2ZnU2NyaXB0LCBmYWxzZSwgcGF0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisgICAgCitmdW5jdGlvbiBfcG9zdGluaXQoKSB7CisKKyAgICB2YXIgY291dCA9IG51bGw7CisKKyAgICB2YXIgcHJvZyA9IHhkYy5vbVsneGRjLmNmZy5Qcm9ncmFtJ107CisgICAgLyogZ2V0IHRoZSBleGVjIGNvbW1hbmQgZm9yIHRoaXMgZXhlY3V0YWJsZSAqLworICAgIGlmIChwcm9nLmV4ZWNDbWQgPT0gbnVsbCkgeworICAgICAgICBwcm9nLmV4ZWNDbWQgPSBwcm9nLnBsYXRmb3JtLmdldEV4ZWNDbWQocHJvZywKKyAgICAgICAgICAgIHhkYy5vbVsidGkucGxhdGZvcm1zLnNpbTY0UHh4Il0ucGFja2FnZUJhc2UpOworICAgIH0KKyAgICB2YXIgY291dCA9ICJkZWZpbmUgRVhFQy4iICsgcHJvZy5uYW1lICsgJ1xuXG4nOworICAgIGNvdXQgKz0gcHJvZy5leGVjQ21kOworICAgIGNvdXQgKz0gIlxuZW5kZWZcblxuIjsKKworICAgIHV0aWxzLmdlbkRlcCgicGFja2FnZS9jZmcvcHJvZ194NjRQIiwgImNmZ3NpdGUiLCB1dGlscy5sb2FkZWRGaWxlcywgY291dCwgbnVsbCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcuZG90IGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLmRvdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmM4Y2MyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLmRvdApAQCAtMCwwICsxLDE5NyBAQAorZGlncmFwaCBjb25maWd1cmF0aW9uIHsKKyAgICBzaXplPSI3LjUsMTAiOworICAgIHJhbmtkaXI9TFI7CisgICAgcmFua3NlcD0iLjUwIGVxdWFsbHkiOworICAgIGNvbmNlbnRyYXRlPXRydWU7CisgICAgY29tcG91bmQ9dHJ1ZTsKKyAgICBsYWJlbD0iXG5Db25maWd1cmF0aW9uIGZvciBjZmdzaXRlL3Byb2cueDY0UCIKKyAgbm9kZSBbZm9udD1IZWx2ZXRpY2EsIGZvbnRzaXplPTE0LCBmb250Y29sb3I9YmxhY2tdOyAgc3ViZ3JhcGggY2x1c3RlcjAge2xhYmVsPSIiOyBfX2NmZyBbbGFiZWw9IkQ6L3dvcmsvdHV0b3JpYWwvaXNxcnQtcHJvZy9wcm9nLmNmZyIsIGNvbG9yPXdoaXRlLCBmb250Y29sb3I9Ymx1ZV07CisgICAgbm9kZSBbZm9udD1IZWx2ZXRpY2EsIGZvbnRzaXplPTEwXTsgICAgc3ViZ3JhcGggY2x1c3RlcjEgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjXG4xLCAxLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfY29yZXZlcnNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuY29yZXZlcnNcbjE2LCAwLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmdsb2JhbFxuMSwgMCwgMSIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkNsb2NrIl07CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfX3RvcCAtPiB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9DbG9jayAtPiB4ZGNfc2VydmljZXNfZ2xvYmFsX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2hlbGZfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2hlbGZcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19zcGVjX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLnNwZWNcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI2IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5feHNyX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi54c3JcbjEsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI3IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5fZ2VuX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi5nZW5cbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI4IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5fY21kX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi5jbWRcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI5IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19yb3ZfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucm92XG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcm92X19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBjaGFybGllX3NxcnRsaWJfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJjaGFybGllLnNxcnRsaWJcbjEsIDAsIDIsIDYiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIGNoYXJsaWVfc3FydGxpYl9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICBjaGFybGllX3NxcnRsaWJfU2V0dGluZ3MgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU2V0dGluZ3MiXTsKKyAgICAgICAgY2hhcmxpZV9zcXJ0bGliX190b3AgLT4gY2hhcmxpZV9zcXJ0bGliX1NldHRpbmdzW3N0eWxlPWludmlzXTsKKyAgICAgICAgY2hhcmxpZV9zcXJ0bGliX1NldHRpbmdzIC0+IGNoYXJsaWVfc3FydGxpYl9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjExIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHRpX2NhdGFsb2dfYzYwMDBfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ0aS5jYXRhbG9nLmM2MDAwXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB0aV9jYXRhbG9nX2M2MDAwX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHRpX2NhdGFsb2dfYzYwMDBfVE1TMzIwQ1RDSTY0ODIgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iVE1TMzIwQ1RDSTY0ODIiXTsKKyAgICAgICAgdGlfY2F0YWxvZ19jNjAwMF9fdG9wIC0+IHRpX2NhdGFsb2dfYzYwMDBfVE1TMzIwQ1RDSTY0ODJbc3R5bGU9aW52aXNdOworICAgICAgICB0aV9jYXRhbG9nX2M2MDAwX1RNUzMyMENUQ0k2NDgyIC0+IHRpX2NhdGFsb2dfYzYwMDBfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfcGxhdGZvcm1fX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucGxhdGZvcm1cbjEsIDAsIDEsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19wbGF0Zm9ybV9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcGxhdGZvcm1fRXhlQ29udGV4dCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJFeGVDb250ZXh0Il07CisgICAgICAgIHhkY19wbGF0Zm9ybV9fdG9wIC0+IHhkY19wbGF0Zm9ybV9FeGVDb250ZXh0W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX0V4ZUNvbnRleHQgLT4geGRjX3BsYXRmb3JtX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcGxhdGZvcm1fVXRpbHMgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iVXRpbHMiXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX190b3AgLT4geGRjX3BsYXRmb3JtX1V0aWxzW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX1V0aWxzIC0+IHhkY19wbGF0Zm9ybV9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEzIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19jZmdfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuY2ZnXG4xLCAwLCAyLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfY2ZnX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfUHJvZ3JhbSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJQcm9ncmFtIl07CisgICAgICAgIHhkY19jZmdfX3RvcCAtPiB4ZGNfY2ZnX1Byb2dyYW1bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX1Byb2dyYW0gLT4geGRjX2NmZ19fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19NYWluIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW4iXTsKKyAgICAgICAgeGRjX2NmZ19fdG9wIC0+IHhkY19jZmdfTWFpbltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfTWFpbiAtPiB4ZGNfY2ZnX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTQgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgdGlfcGxhdGZvcm1zX3NpbTY0UHh4X190b3AgW3NoYXBlPWJveCxsYWJlbD0idGkucGxhdGZvcm1zLnNpbTY0UHh4XG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgdGlfcGxhdGZvcm1zX3NpbTY0UHh4X1BsYXRmb3JtIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlBsYXRmb3JtIl07CisgICAgICAgIHRpX3BsYXRmb3Jtc19zaW02NFB4eF9fdG9wIC0+IHRpX3BsYXRmb3Jtc19zaW02NFB4eF9QbGF0Zm9ybVtzdHlsZT1pbnZpc107CisgICAgICAgIHRpX3BsYXRmb3Jtc19zaW02NFB4eF9QbGF0Zm9ybSAtPiB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5ydW50aW1lXG4yLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcnVudGltZV9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Bc3NlcnQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQXNzZXJ0Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfQXNzZXJ0W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQXNzZXJ0IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Db3JlIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkNvcmUiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9Db3JlW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQ29yZSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGVmYXVsdHMgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRGVmYXVsdHMiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9EZWZhdWx0c1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RlZmF1bHRzIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EaWFncyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJEaWFncyJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0RpYWdzW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGlhZ3MgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Vycm9yIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkVycm9yIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfRXJyb3Jbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9FcnJvciAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJHYXRlIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfR2F0ZVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGUgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkdhdGVOdWxsIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfR2F0ZU51bGxbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTG9nIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkxvZyJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0xvZ1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0xvZyAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNYWluIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWFpbltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW4gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01lbW9yeSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNZW1vcnkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NZW1vcnlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iSGVhcFN0ZCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0hlYXBTdGRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TdGFydHVwIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN0YXJ0dXAiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TdGFydHVwW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3RhcnR1cCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c3RlbSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N5c3RlbVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzTWluIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c01pbiJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N5c01pbltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c01pbiAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfVGV4dCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJUZXh0Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfVGV4dFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1RleHQgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNYWluX01vZHVsZV9HYXRlUHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWVtb3J5X0hlYXBQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c3RlbV9TdXBwb3J0UHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzdGVtX01vZHVsZV9HYXRlUHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTYgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgdGlfdGFyZ2V0c19ydHM2MDAwX190b3AgW3NoYXBlPWJveCxsYWJlbD0idGkudGFyZ2V0cy5ydHM2MDAwXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTcgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgYWNtZV91dGlsc19jbG9ja3NfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJhY21lLnV0aWxzLmNsb2Nrc1xuIiwgY29sb3I9d2hpdGVdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDbG9ja1N0ZCJdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19fdG9wIC0+IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkW3N0eWxlPWludmlzXTsKKyAgICAgICAgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGQgLT4gYWNtZV91dGlsc19jbG9ja3NfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxOCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBhY21lX3V0aWxzX190b3AgW3NoYXBlPWJveCxsYWJlbD0iYWNtZS51dGlsc1xuIiwgY29sb3I9d2hpdGVdOworICAgICAgICBhY21lX3V0aWxzX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfQmVuY2ggW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQmVuY2giXTsKKyAgICAgICAgYWNtZV91dGlsc19fdG9wIC0+IGFjbWVfdXRpbHNfQmVuY2hbc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX0JlbmNoIC0+IGFjbWVfdXRpbHNfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkJlbmNoX1BDbG9jayJdOworICAgICAgICBhY21lX3V0aWxzX190b3AgLT4gYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tbc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX0JlbmNoX1BDbG9jayAtPiBhY21lX3V0aWxzX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTkgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgY2Znc2l0ZV9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9ImNmZ3NpdGVcbiIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgIH0KKyAgbm9kZSBbZm9udD1IZWx2ZXRpY2EsIGZvbnRzaXplPTEwXTsKKyAgICB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18xXzUgW3NoYXBlPXJlY29yZCxsYWJlbD0idGkudGFyZ2V0cy5DNjRQfDEsMCw2LjEsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBjaGFybGllX3NxcnRsaWJfX2JvdCAtPiB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18xXzUgW2x0YWlsPWNsdXN0ZXIxMF07CisgICAgdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMF8xNiBbc2hhcGU9cmVjb3JkLGxhYmVsPSJ0aS50YXJnZXRzLkM2NFB8MSwwLDYuMCwxNiIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICB0aV90YXJnZXRzX3J0czYwMDBfX3RvcCAtPiB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18wXzE2IFtsdGFpbD1jbHVzdGVyMTZdOworICAgIHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzFfNSBbc2hhcGU9cmVjb3JkLGxhYmVsPSJ0aS50YXJnZXRzLkM2NFB8MSwwLDYuMSw1IixzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZXldOworICAgIGFjbWVfdXRpbHNfY2xvY2tzX19ib3QgLT4gdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMV81IFtsdGFpbD1jbHVzdGVyMTddOworICAgIHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzFfNSBbc2hhcGU9cmVjb3JkLGxhYmVsPSJ0aS50YXJnZXRzLkM2NFB8MSwwLDYuMSw1IixzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZXldOworICAgIGFjbWVfdXRpbHNfX2JvdCAtPiB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18xXzUgW2x0YWlsPWNsdXN0ZXIxOF07CisgICAgdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMV81IFtzaGFwZT1yZWNvcmQsbGFiZWw9InRpLnRhcmdldHMuQzY0UHwxLDAsNi4xLDUiLHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWxpZ2h0Z3JleV07CisgICAgY2Znc2l0ZV9fdG9wIC0+IHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzFfNSBbbHRhaWw9Y2x1c3RlcjE5XTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZy54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM0YzdjZWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcueG1sCkBAIC0wLDAgKzEsMjM3OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIFRoaXMgZmlsZSBjb25mb3JtcyB0byB0aGUgRFREIHhkYy9jZmcvY29uZmlndXJhdGlvbi5kdGQgLS0+Cis8Y29uZmlndXJhdGlvbiBuYW1lPSJjZmdzaXRlL3Byb2cueDY0UCIKKyAgICBwbGF0Zm9ybU5hbWU9InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICBnbG9iYWxTZWN0aW9uPSJudWxsIgorICAgIHN5c1N0YWNrPSI0MDk2IgorICAgIHN0YWNrPSI0MDk2IgorICAgIGhlYXA9IjQwOTYiCisgICAgYXJnU2l6ZT0iNTEyIgorICAgIGV4ZWNDbWQ9IkUlM0EvcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9XaW5kb3dzL2tlbHZpbiUyMC1xdWlldCUyMC1tZW1faWdub3JlJTIwRCUzQSU1Q3dvcmslNUN0dXRvcmlhbCU1Q2lzcXJ0LXByb2clNUNjZmdzaXRlJTVDcHJvZy54NjRQIgorICAgIGVuZGlhbj0ibGl0dGxlIgorICAgIGNvZGVNb2RlbD0ibnVsbCIKKyAgICBkYXRhTW9kZWw9Im51bGwiPgorPHRhcmdldHM+CisgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsNi4xLDUiCisgICAgICAgICAgICB1c2VkYnk9ImNoYXJsaWUuc3FydGxpYiIvPgorICAgIDx0YXJnZXQgbmFtZT0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICAgICAgdmVyc2lvbj0iMSwwLDYuMCwxNiIKKyAgICAgICAgICAgIHVzZWRieT0idGkudGFyZ2V0cy5ydHM2MDAwIi8+CisgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsNi4xLDUiCisgICAgICAgICAgICB1c2VkYnk9ImFjbWUudXRpbHMuY2xvY2tzIi8+CisgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsNi4xLDUiCisgICAgICAgICAgICB1c2VkYnk9ImFjbWUudXRpbHMiLz4KKyAgICA8dGFyZ2V0IG5hbWU9InRpLnRhcmdldHMuQzY0UCIKKyAgICAgICAgICAgIHZlcnNpb249IjEsMCw2LjEsNSIKKyAgICAgICAgICAgIHVzZWRieT0iY2Znc2l0ZSIvPgorPC90YXJnZXRzPgorPGltcG9ydHM+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjIiB2ZXJzaW9uPSIxLCAxLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLmNvcmV2ZXJzIiB2ZXJzaW9uPSIxNiwgMCwgMSwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwiIHZlcnNpb249IjEsIDAsIDEiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwuQ2xvY2siCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZW5hYmxlIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNob3dNZW1vcnkiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuc2VydmljZXMuZ2xvYmFsLlRyYWNlIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2hlbGYiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuc3BlYyIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyIiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmludGVybi5nZW4iIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5yb3YiIHZlcnNpb249IjEsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuTW9kZWwiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5Qcm9ncmFtIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuU3RydWN0dXJlRGVjb2RlciIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlN0YXRlUmVhZGVyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuVmlld0luZm8iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9ImNoYXJsaWUuc3FydGxpYiIgdmVyc2lvbj0iMSwgMCwgMiwgNiIgcmVwb3NpdG9yeT0iRDovd29yay90dXRvcmlhbC9yZXBvLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im9wdGltaXplIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1RJTUUiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NTIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVE5FVFYyNjg1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MjgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcxMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzExQiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzEyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MTMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIxMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjExQiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDEwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxMiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDEzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDE2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQyMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDI0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RBNzAwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RBNzA1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RBNzA3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RBNzEwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RBNzAwU0lNIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQ0MiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0NDQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDQ2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwRFJBNDQ3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MjIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcyNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzI3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNDE1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNDIwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNDIxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNDI1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNDI2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQzMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MzMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDM1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQzNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0NDEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDQzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ0NiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERNMzU3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ2NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkkzMDAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4MiIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjYWNoZVNpemVMMSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3MGslMjclMkMlMjAweDAlNUQlMkMlMEElNUIlMjc0ayUyNyUyQyUyMDB4MTAwMCU1RCUyQyUwQSU1QiUyNzhrJTI3JTJDJTIwMHgyMDAwJTVEJTJDJTBBJTVCJTI3MTZrJTI3JTJDJTIwMHg0MDAwJTVEJTJDJTBBJTVCJTI3MzJrJTI3JTJDJTIwMHg4MDAwJTVEJTBBJTVEIj48bWFwIGlkPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDgyL2NhY2hlU2l6ZUwxIiBsZW5ndGg9IjUiPg0KKyAgPGVudHJ5IGtleT0iMGsiPjB4MDwvZW50cnk+DQorICA8ZW50cnkga2V5PSI0ayI+MHgxMDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjhrIj4weDIwMDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iMTZrIj4weDQwMDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iMzJrIj4weDgwMDA8L2VudHJ5Pg0KKzwvbWFwPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2FjaGVTaXplTDIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyNzBrJTI3JTJDJTIwMHgwJTVEJTJDJTBBJTVCJTI3MzJrJTI3JTJDJTIwMHg4MDAwJTVEJTJDJTBBJTVCJTI3NjRrJTI3JTJDJTIwMHgxMDAwMCU1RCUyQyUwQSU1QiUyNzEyOGslMjclMkMlMjAweDIwMDAwJTVEJTJDJTBBJTVCJTI3MjU2ayUyNyUyQyUyMDB4NDAwMDAlNUQlMEElNUQiPjxtYXAgaWQ9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODIvY2FjaGVTaXplTDIiIGxlbmd0aD0iNSI+DQorICA8ZW50cnkga2V5PSIwayI+MHgwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjMyayI+MHg4MDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjY0ayI+MHgxMDAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSIxMjhrIj4weDIwMDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjI1NmsiPjB4NDAwMDA8L2VudHJ5Pg0KKzwvbWFwPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDg2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4OCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDg0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NTQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQ1NSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEMyNDMwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzM0MzAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcwMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjAxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMDIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwMyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjAzQiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjA0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMDUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDA2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQwMiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0MDQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDE0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQxNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENGNzYxOTkwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDI0MzEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMjUzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAyNTMxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDM0MjUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMzUyNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAzNTMwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MDUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgwNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODA4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MTAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgyOCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODMwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NzIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQ3NCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzQ3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3NDUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQTDEzNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDU3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucGxhdGZvcm0iIHZlcnNpb249IjEsIDAsIDEsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5wbGF0Zm9ybS5FeGVDb250ZXh0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnBsYXRmb3JtLlV0aWxzIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5jZmciIHZlcnNpb249IjEsIDAsIDIsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5jZmcuUHJvZ3JhbSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnZW4iIHR5cGU9InhkYy5jZmcuUHJvZ3JhbS5HZW5lcmF0aW9uT3B0aW9ucyIgdmFsdWU9IiU3QmRlYnVnZ2VyRmlsZXMlM0ElMjB1bmRlZmluZWQlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5jZmcuUHJvZ3JhbS9nZW4iPg0KKyAgPGZpZWxkIG5hbWU9ImRlYnVnZ2VyRmlsZXMiPnVuZGVmaW5lZDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnbG9iYWxTZWN0aW9uIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeXNTdGFjayIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3RhY2siIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImhlYXAiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImFyZ1NpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXhlY0NtZCIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iRSUzQS9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1dpbmRvd3Mva2VsdmluJTIwLXF1aWV0JTIwLW1lbV9pZ25vcmUlMjBEJTNBJTVDd29yayU1Q3R1dG9yaWFsJTVDaXNxcnQtcHJvZyU1Q2NmZ3NpdGUlNUNwcm9nLng2NFAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxpbmtUZW1wbGF0ZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWFpbiIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZWN0TWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3lzdGVtIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWUiIHR5cGU9InN0cmluZyIgdmFsdWU9InByb2cueDY0UCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVpbGRQYWNrYWdlIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJjZmdzaXRlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJlbmRpYW4iIHR5cGU9InN0cmluZyIgdmFsdWU9ImxpdHRsZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29kZU1vZGVsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkYXRhTW9kZWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1aWxkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUJvYmplY3QlMjBPYmplY3QlNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNwdSIgdHlwZT0ieGRjLnBsYXRmb3JtLklFeGVDb250ZXh0Lkluc3RhbmNlIiB2YWx1ZT0iJTdCaWQlM0ElMjAwJTJDJTIwY2F0YWxvZ05hbWUlM0ElMjB0aS5jYXRhbG9nLmM2MDAwJTJDJTIwZGV2aWNlTmFtZSUzQSUyMFRNUzMyMENUQ0k2NDgyJTJDJTIwcmV2aXNpb24lM0ElMjAlMkMlMjBjbG9ja1JhdGUlM0ElMjAweDNlOCUyQyUyMGJvYXJkJTNBJTIwJTdCaWQlM0ElMjAwJTJDJTIwYm9hcmROYW1lJTNBJTIwc2ltNjRQeHglMkMlMjBib2FyZEZhbWlseSUzQSUyMHNpbTY0UHh4JTJDJTIwYm9hcmRSZXZpc2lvbiUzQSUyMG51bGwlN0QlMkMlMjBhdHRycyUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDE1ZTI5M2ElM0ElM0ElMjh4ZGMucGxhdGZvcm0uSUNwdURhdGFTaGVldC5JbnN0YW5jZSUyOXRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODIuSW5zdGFuY2UlMjMwJTJDJTIwbWVtb3J5TWFwJTNBJTIwJTVCJTBBJTVCJTI3SVJBTSUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjBJbnRlcm5hbCUyMDJNQiUyMFVNQVAwJTIwbWVtb3J5JTJDJTIwbmFtZSUzQSUyMElSQU0lMkMlMjBzcGFjZSUzQSUyMGNvZGUvZGF0YSUyQyUyMHBhZ2UlM0ElMjB1bmRlZmluZWQlMkMlMjBiYXNlJTNBJTIwMHg4MDAwMDAlMkMlMjBsZW4lM0ElMjAweDIwMDAwMCUyQyUyMGFjY2VzcyUzQSUyMFJXWCU3RCU1RCUyQyUwQSU1QiUyN0REUiUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjB1bmRlZmluZWQlMkMlMjBuYW1lJTNBJTIwRERSJTJDJTIwc3BhY2UlM0ElMjB1bmRlZmluZWQlMkMlMjBwYWdlJTNBJTIwdW5kZWZpbmVkJTJDJTIwYmFzZSUzQSUyMDB4ODAwMDAwMDAlMkMlMjBsZW4lM0ElMjAweDEwMDAwMDAwJTJDJTIwYWNjZXNzJTNBJTIwdW5kZWZpbmVkJTdEJTVEJTBBJTVEJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwbGF0Zm9ybU5hbWUiIHR5cGU9InN0cmluZyIgdmFsdWU9InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icGxhdGZvcm0iIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uSW5zdGFuY2UiIHZhbHVlPSIlN0JleHRlcm5hbE1lbW9yeU1hcCUzQSUyMCU1QiUwQSU1QiUyN0REUiUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjB1bmRlZmluZWQlMkMlMjBuYW1lJTNBJTIwRERSJTJDJTIwc3BhY2UlM0ElMjB1bmRlZmluZWQlMkMlMjBwYWdlJTNBJTIwdW5kZWZpbmVkJTJDJTIwYmFzZSUzQSUyMDB4ODAwMDAwMDAlMkMlMjBsZW4lM0ElMjAweDEwMDAwMDAwJTJDJTIwYWNjZXNzJTNBJTIwdW5kZWZpbmVkJTdEJTVEJTBBJTVEJTJDJTIwY3VzdG9tTWVtb3J5TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcmVuYW1lTWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwZGF0YU1lbW9yeSUzQSUyMEREUiUyQyUyMGNvZGVNZW1vcnklM0ElMjBJUkFNJTJDJTIwc3RhY2tNZW1vcnklM0ElMjBERFIlMkMlMjBzZWN0TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnbG9iYWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeW1ib2wiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MlMjclMkMlMjAweDElNUQlMkMlMEElNUIlMjd4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyUyNyUyQyUyMDB4MSU1RCUwQSU1RCI+PG1hcCBpZD0ieGRjLmNmZy5Qcm9ncmFtL3N5bWJvbCIgbGVuZ3RoPSIyIj4NCisgIDxlbnRyeSBrZXk9InhkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MiPjB4MTwvZW50cnk+DQorICA8ZW50cnkga2V5PSJ4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyI+MHgxPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpeGVkQ29kZUFkZHIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpeGVkRGF0YUFkZHIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxvYWRGaXhlZERhdGFBZGRyIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxvYWRSb20iIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuY2ZnLk1haW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0idGkucGxhdGZvcm1zLnNpbTY0UHh4IiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHguUGxhdGZvcm0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQk9BUkQiIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uQm9hcmQiIHZhbHVlPSIlN0JpZCUzQSUyMDAlMkMlMjBib2FyZE5hbWUlM0ElMjBzaW02NFB4eCUyQyUyMGJvYXJkRmFtaWx5JTNBJTIwc2ltNjRQeHglMkMlMjBib2FyZFJldmlzaW9uJTNBJTIwbnVsbCU3RCI+PHN0cnVjdCBpZD0idGkucGxhdGZvcm1zLnNpbTY0UHh4LlBsYXRmb3JtL0JPQVJEIj4NCisgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmROYW1lIj5zaW02NFB4eDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmRGYW1pbHkiPnNpbTY0UHh4PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZFJldmlzaW9uIj5udWxsPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkNQVSIgdHlwZT0ieGRjLnBsYXRmb3JtLklFeGVDb250ZXh0LkNwdSIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGNhdGFsb2dOYW1lJTNBJTIwdGkuY2F0YWxvZy5jNjAwMCUyQyUyMGRldmljZU5hbWUlM0ElMjBUTVMzMjBDVENJNjQ4MiUyQyUyMHJldmlzaW9uJTNBJTIwJTJDJTIwY2xvY2tSYXRlJTNBJTIwMHgzZTglN0QiPjxzdHJ1Y3QgaWQ9InRpLnBsYXRmb3Jtcy5zaW02NFB4eC5QbGF0Zm9ybS9DUFUiPg0KKyAgPGZpZWxkIG5hbWU9ImlkIj4wPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjYXRhbG9nTmFtZSI+dGkuY2F0YWxvZy5jNjAwMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGV2aWNlTmFtZSI+VE1TMzIwQ1RDSTY0ODI8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJldmlzaW9uIi8+DQorICA8ZmllbGQgbmFtZT0iY2xvY2tSYXRlIj4weDNlODwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucnVudGltZSIgdmVyc2lvbj0iMiwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9hc3NlcnRGYWlsZWQiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBhc3NlcnRpb24lMjBmYWlsdXJlJTI1cyUyNXMlMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzAiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+YXNzZXJ0aW9uIGZhaWx1cmUlcyVzPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Db3JlIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2luaXRpYWxpemVkUGFyYW1zIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwQV9pbml0aWFsaXplZFBhcmFtcyUzQSUyMHVuaW5pdGlhbGl6ZWQlMjBQYXJhbXMlMjBzdHJ1Y3QlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+QV9pbml0aWFsaXplZFBhcmFtczogdW5pbml0aWFsaXplZCBQYXJhbXMgc3RydWN0PC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5EZWZhdWx0cy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5EaWFncyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkRpYWdzL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzczIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFTlRSWSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRVhJVCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTElGRUNZQ0xFIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJJTlRFUk5BTCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQVNTRVJUIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjEiIHR5cGU9Im51bWJlciIgdmFsdWU9IjI1NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjMiIHR5cGU9Im51bWJlciIgdmFsdWU9IjEwMjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI0IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyMDQ4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjYiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgxOTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI3IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNjM4NCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjgiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzY4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBTEwiIHR5cGU9Im51bWJlciIgdmFsdWU9IjY1NTM1Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZXRNYXNrRW5hYmxlZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkaWN0QmFzZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5FcnJvciIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJOVU1BUkdTIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX2dlbmVyaWMiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBnZW5lcmljJTIwZXJyb3IlM0ElMjAlMjVzJTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxIj4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPmdlbmVyaWMgZXJyb3I6ICVzPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9tZW1vcnkiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBvdXQlMjBvZiUyMG1lbW9yeSUzQSUyMGhlYXAlM0QweCUyNXglMkMlMjBzaXplJTNEJTI1dSUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5vdXQgb2YgbWVtb3J5OiBoZWFwPTB4JXgsIHNpemU9JXU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwb2xpY3kiIHR5cGU9Im9iamVjdCIgdmFsdWU9InhkYy5ydW50aW1lLkVycm9yLlVOV0lORCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icmFpc2VIb29rIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4RGVwdGgiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkdhdGUiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuR2F0ZU51bGwiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5HYXRlTnVsbC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9CTE9DS0lORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9QUkVFTVBUSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5VTUFSR1MiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlBSSU5URklEIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2NvbnN0cnVjdCIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAlM0MtLSUyMGNvbnN0cnVjdCUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2NyZWF0ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAlM0MtLSUyMGNyZWF0ZSUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2Rlc3RydWN0IiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMC0tJTNFJTIwZGVzdHJ1Y3QlM0ElMjAlMjglMjVwJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4NDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj4tLT4gZGVzdHJ1Y3Q6ICglcCk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9kZWxldGUiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwLS0lM0UlMjBkZWxldGUlM0ElMjAlMjglMjVwJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4NDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj4tLT4gZGVsZXRlOiAoJXApPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImlkVG9JbmZvIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjclMjM0NjglMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9jb25zdHJ1Y3QlM0ElM0ElM0MtLSUyMGNvbnN0cnVjdCUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTVEJTJDJTBBJTVCJTI3JTIzNDkyJTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlJTNBJTNBJTNDLS0lMjBjcmVhdGUlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU1RCUyQyUwQSU1QiUyNyUyMzUxMyUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0JTNBJTNBLS0lM0UlMjBkZXN0cnVjdCUzQSUyMCUyOCUyNXAlMjklNUQlMkMlMEElNUIlMjclMjM1MzIlMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9kZWxldGUlM0ElM0EtLSUzRSUyMGRlbGV0ZSUzQSUyMCUyOCUyNXAlMjklNUQlMEElNUQiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nZ2VyQnVmIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZ2dlclN5cyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5NYWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfR2F0ZVByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDElMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBRX0JMT0NLSU5HJTNBJTIwMHgxJTJDJTIwUV9QUkVFTVBUSU5HJTNBJTIwMHgyJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakA1ZGZhZjElM0ElM0ElMjh4ZGMucnVudGltZS5JR2F0ZVByb3ZpZGVyLk1vZHVsZSUyOXhkYy5ydW50aW1lLkdhdGVOdWxsJTJDJTIwYWJzdHJhY3RJbnN0YW5jZXMlMjQlM0ElMjBmYWxzZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5NZW1vcnkiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5NZW1vcnkvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc5Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJRX0JMT0NLSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkZWZhdWx0SGVhcEluc3RhbmNlIiB0eXBlPSJ4ZGMucnVudGltZS5JSGVhcC5JbnN0YW5jZSIgdmFsdWU9IiU3QiU3RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkZWZhdWx0SGVhcFNpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkhlYXBQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4MiUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMTU5ZTZlOCUzQSUzQSUyOHhkYy5ydW50aW1lLklIZWFwLk1vZHVsZSUyOXhkYy5ydW50aW1lLkhlYXBTdGQlMkMlMjBhYnN0cmFjdEluc3RhbmNlcyUyNCUzQSUyMHRydWUlN0QiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuSGVhcE1pbiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5IZWFwU3RkIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX25vUlRTTWVtb3J5IiB0eXBlPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIiB2YWx1ZT0iJTdCbXNnJTNBJTIwVGhlJTIwUlRTJTIwaGVhcCUyMGlzJTIwdXNlZCUyMHVwLiUyMEV4YW1pbmUlMjBQcm9ncmFtLmhlYXAuJTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyM0Ij4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPlRoZSBSVFMgaGVhcCBpcyB1c2VkIHVwLiBFeGFtaW5lIFByb2dyYW0uaGVhcC48L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX3plcm9TaXplIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwSGVhcFN0ZF9jcmVhdGUlMjBjYW5ub3QlMjBoYXZlJTIwYSUyMHplcm8lMjBzaXplJTIwdmFsdWUlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZF9jcmVhdGUgY2Fubm90IGhhdmUgYSB6ZXJvIHNpemUgdmFsdWU8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9pbnZhbGlkVG90YWxGcmVlU2l6ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEhlYXBTdGQlMjBpbnN0YW5jZSUyMHRvdGFsRnJlZVNpemUlMjBpcyUyMGdyZWF0ZXIlMjB0aGFuJTIwc3RhcnRpbmclMjBzaXplJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMzIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkhlYXBTdGQgaW5zdGFuY2UgdG90YWxGcmVlU2l6ZSBpcyBncmVhdGVyIHRoYW4gc3RhcnRpbmcgc2l6ZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2ludmFsaWRBbGlnbm1lbnQiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBIZWFwU3RkX2FsbG9jJTIwLSUyMHJlcXVlc3RlZCUyMGFsaWdubWVudCUyMGlzJTIwZ3JlYXRlciUyMHRoYW4lMjBhbGxvd2VkJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM0Ij4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkhlYXBTdGRfYWxsb2MgLSByZXF1ZXN0ZWQgYWxpZ25tZW50IGlzIGdyZWF0ZXIgdGhhbiBhbGxvd2VkPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3RhcnR1cCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlN0YXJ0dXAvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRE9ORSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iLTEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5PVERPTkUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1heFBhc3NlcyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpcnN0RnhucyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Imxhc3RGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icmVzZXRGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN0YXJ0TW9kc0Z4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4ZWNJbXBsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNmeG5UYWIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSUyQyUyMCUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSUyQyUyMCUyNmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UlNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNmeG5SdHMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QnRydWUlMkMlMjB0cnVlJTJDJTIwZmFsc2UlNUQiPjx2ZWN0b3IgaWQ9InhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blJ0cyIgbGVuZ3RoPSIzIj4NCisgIDxlbGVtPnRydWU8L2VsZW0+DQorICA8ZWxlbT50cnVlPC9lbGVtPg0KKyAgPGVsZW0+ZmFsc2U8L2VsZW0+DQorPC92ZWN0b3I+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN5c3RlbSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlNUQVRVU19VTktOT1dOIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI1MTk2NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9jYW5ub3RGaXRJbnRvQXJnIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwQV9jYW5ub3RGaXRJbnRvQXJnJTNBJTIwc2l6ZW9mJTI4RmxvYXQlMjklMjAlM0UlMjBzaXplb2YlMjhBcmclMjklN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzUiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+QV9jYW5ub3RGaXRJbnRvQXJnOiBzaXplb2YoRmxvYXQpID4gc2l6ZW9mKEFyZyk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXh0ZW5kZWRGb3JtYXRzIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlMjUlMjRMIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJTdXBwb3J0UHJveHkiIHR5cGU9InhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDMlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDdhOTIyNCUzQSUzQSUyOHhkYy5ydW50aW1lLklTeXN0ZW1TdXBwb3J0Lk1vZHVsZSUyOXhkYy5ydW50aW1lLlN5c01pbiU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4QXRleGl0SGFuZGxlcnMiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4dGVuZEZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXhpdEZ4bnMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfR2F0ZVByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4NCUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMFFfQkxPQ0tJTkclM0ElMjAweDElMkMlMjBRX1BSRUVNUFRJTkclM0ElMjAweDIlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDFmZTQxNjklM0ElM0ElMjh4ZGMucnVudGltZS5JR2F0ZVByb3ZpZGVyLk1vZHVsZSUyOXhkYy5ydW50aW1lLkdhdGVOdWxsJTJDJTIwYWJzdHJhY3RJbnN0YW5jZXMlMjQlM0ElMjBmYWxzZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXNTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3lzTWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuU3lzTWluL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92Vmlld0luZm8iIHR5cGU9InhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UiIHZhbHVlPSIlN0J2aWV3TWFwJTNBJTIwJTVCJTBBJTVCJTI3TW9kdWxlJTI3JTJDJTIwJTdCdHlwZSUzQSUyME1PRFVMRSUyQyUyMHZpZXdJbml0RnhuJTNBJTIwdmlld0luaXRNb2R1bGUlMkMlMjBzdHJ1Y3ROYW1lJTNBJTIwTW9kdWxlVmlldyU3RCU1RCUyQyUwQSU1QiUyN091dHB1dEJ1ZmZlciUyNyUyQyUyMCU3QnR5cGUlM0ElMjBNT0RVTEVfREFUQSUyQyUyMHZpZXdJbml0RnhuJTNBJTIwdmlld0luaXRPdXRwdXRCdWZmZXIlMkMlMjBzdHJ1Y3ROYW1lJTNBJTIwQnVmZmVyRW50cnlWaWV3JTdEJTVEJTBBJTVEJTJDJTIwc2hvd1Jhd1RhYiUzQSUyMHRydWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1ZlNpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjEwMjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZsdXNoQXRFeGl0IiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2VjdGlvbk5hbWUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im91dHB1dEZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ib3V0cHV0RnVuYyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UZXh0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzg0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lVW5rbm93biIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCdW5rbm93bi1pbnN0YW5jZS1uYW1lJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lRW1wdHkiIHR5cGU9InN0cmluZyIgdmFsdWU9IiU3QmVtcHR5LWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVTdGF0aWMiIHR5cGU9InN0cmluZyIgdmFsdWU9IiU3QnN0YXRpYy1pbnN0YW5jZS1uYW1lJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJpc0xvYWRlZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNoYXJUYWIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QjB4MCUyQyUyMDB4NDElMkMlMjAweDVmJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDUwJTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NzMlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4NzUlMkMlMjAweDZlJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg1MCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg2MSUyQyUyMDB4NmQlMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDRkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDVmJTJDJTIwMHg2MyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4NmUlMkMlMjAweDZmJTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NzYlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjElMkMlMjAweDIwJTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NzYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NzUlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2NCUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg3NiUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4MjAlMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4NjMlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDZmJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg0NiUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2NSUyQyUyMDB4NTMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg2NyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4MjAlMkMlMjAweDc0JTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY3JTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHg1ZiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2YyUyQyUyMDB4NmYlMkMlMjAweDYzJTJDJTIwMHgyMCUyQyUyMDB4MmQlMkMlMjAweDIwJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDcxJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4NjclMkMlMjAweDZlJTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDZlJTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NzclMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MCUyQyUyMDB4NDElMkMlMjAweDVmJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHg0NiUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg0OSUyQyUyMDB4NmUlMkMlMjAweDc0JTJDJTIwMHg2ZiUyQyUyMDB4NDElMkMlMjAweDcyJTJDJTIwMHg2NyUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NmYlMkMlMjAweDY2JTJDJTIwMHgyOCUyQyUyMDB4NDYlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHgyOSUyQyUyMDB4MjAlMkMlMjAweDNlJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDZmJTJDJTIwMHg2NiUyQyUyMDB4MjglMkMlMjAweDQxJTJDJTIwMHg3MiUyQyUyMDB4NjclMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHg2MSUyQyUyMDB4NzMlMkMlMjAweDczJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NmYlMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NjYlMkMlMjAweDYxJTJDJTIwMHg2OSUyQyUyMDB4NmMlMkMlMjAweDc1JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgwJTJDJTIwMHg2NyUyQyUyMDB4NjUlMkMlMjAweDZlJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDY5JTJDJTIwMHg2MyUyQyUyMDB4MjAlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDZmJTJDJTIwMHg3NSUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2ZiUyQyUyMDB4NjYlMkMlMjAweDIwJTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDZkJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDc5JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHgzZCUyQyUyMDB4MzAlMkMlMjAweDc4JTJDJTIwMHgyNSUyQyUyMDB4NzglMkMlMjAweDJjJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDNkJTJDJTIwMHgyNSUyQyUyMDB4NzUlMkMlMjAweDAlMkMlMjAweDY2JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDY1JTJDJTIwMHgyOCUyQyUyMDB4MjklMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDc2JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDc3JTJDJTIwMHg3NCUyQyUyMDB4NjglMkMlMjAweDJkJTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDZjJTJDJTIwMHg3OSUyQyUyMDB4MjAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg0ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgwJTJDJTIwMHg1NCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NTIlMkMlMjAweDU0JTJDJTIwMHg1MyUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NzUlMkMlMjAweDczJTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NzAlMkMlMjAweDJlJTJDJTIwMHgyMCUyQyUyMDB4NDUlMkMlMjAweDc4JTJDJTIwMHg2MSUyQyUyMDB4NmQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg1MCUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg2NyUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4MmUlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4M2MlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2MyUyQyUyMDB4NzQlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOCUyQyUyMDB4MjclMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MjclMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHgzYyUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI4JTJDJTIwMHgyNyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg2NCUyQyUyMDB4NjUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2MyUyQyUyMDB4NzQlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjglMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg2NCUyQyUyMDB4NjUlMkMlMjAweDZjJTJDJTIwMHg2NSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI4JTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHg3OCUyQyUyMDB4NjQlMkMlMjAweDYzJTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2ZSUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg0MSUyQyUyMDB4NzMlMkMlMjAweDczJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHgwJTJDJTIwMHg0MyUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDQlMkMlMjAweDY1JTJDJTIwMHg2NiUyQyUyMDB4NjElMkMlMjAweDc1JTJDJTIwMHg2YyUyQyUyMDB4NzQlMkMlMjAweDczJTJDJTIwMHgwJTJDJTIwMHg0NCUyQyUyMDB4NjklMkMlMjAweDYxJTJDJTIwMHg2NyUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDQ1JTJDJTIwMHg3MiUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4MCUyQyUyMDB4NDclMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ3JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg0ZSUyQyUyMDB4NzUlMkMlMjAweDZjJTJDJTIwMHg2YyUyQyUyMDB4MCUyQyUyMDB4NGMlMkMlMjAweDZmJTJDJTIwMHg2NyUyQyUyMDB4MCUyQyUyMDB4NGQlMkMlMjAweDYxJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDAlMkMlMjAweDRkJTJDJTIwMHg2NSUyQyUyMDB4NmQlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4NzklMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDc1JTJDJTIwMHg3MCUyQyUyMDB4MCUyQyUyMDB4NTMlMkMlMjAweDc5JTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg2ZCUyQyUyMDB4MCUyQyUyMDB4NTMlMkMlMjAweDc5JTJDJTIwMHg3MyUyQyUyMDB4NGQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MCUyQyUyMDB4NTQlMkMlMjAweDY1JTJDJTIwMHg3OCUyQyUyMDB4NzQlMkMlMjAweDAlMkMlMjAweDYxJTJDJTIwMHg2MyUyQyUyMDB4NmQlMkMlMjAweDY1JTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4NzUlMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NmMlMkMlMjAweDczJTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4NjMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjMlMkMlMjAweDZiJTJDJTIwMHg3MyUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDQzJTJDJTIwMHg2YyUyQyUyMDB4NmYlMkMlMjAweDYzJTJDJTIwMHg2YiUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2NCUyQyUyMDB4MCUyQyUyMDB4NDIlMkMlMjAweDY1JTJDJTIwMHg2ZSUyQyUyMDB4NjMlMkMlMjAweDY4JTJDJTIwMHgwJTVEIj48dmVjdG9yIGlkPSJ4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIiIGxlbmd0aD0iNjk3Ij4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDUwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg0NjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Nzc8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg0NjwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg0OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgzZDwvZWxlbT4NCisgIDxlbGVtPjB4MzA8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDJjPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDNkPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc3PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTI8L2VsZW0+DQorICA8ZWxlbT4weDU0PC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NDU8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4M2M8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgzYzwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNzwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyNzwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4M2U8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4M2U8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDc8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ3PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg0ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NGM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDZiPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQzPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2YjwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibm9kZVRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTdCbGVmdCUzQSUyMDB4MCUyQyUyMHJpZ2h0JTNBJTIwMHgwJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4MjI1JTJDJTIwcmlnaHQlM0ElMjAweDIyYSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjMzJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyM2ElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDIzZiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjQ4JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNGUlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI1NCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjU5JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNjIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI2NiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjZiJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNzIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI3YSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjgyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyODklN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI5MCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDI5NSUyQyUyMHJpZ2h0JTNBJTIwMHgyOWIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDExJTJDJTIwcmlnaHQlM0ElMjAweDJhMiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMTIlMkMlMjByaWdodCUzQSUyMDB4MmFhJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAxMSUyQyUyMHJpZ2h0JTNBJTIwMHgyYjMlN0QlNUQiPjx2ZWN0b3IgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYiIgbGVuZ3RoPSIyMSI+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDA8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgwPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDIyNTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIyYTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjMzPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzMiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyM2E8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIzZjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjQ4PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzYiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNGU8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI1NDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjU5PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzkiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNjI8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTAiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNjY8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTEiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNmI8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNzI8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTMiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyN2E8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTQiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyODI8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyODk8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTYiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyOTA8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTciPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDI5NTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI5YjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xOCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAxMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDJhMjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xOSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAxMjwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDJhYTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAxMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDJiMzwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2hhckNudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNjk3Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJub2RlQ250IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlzaXRSb3BlRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlzaXRSb3BlRnhuMiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UaW1lc3RhbXBOdWxsIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcFN0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UeXBlcyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0idGkudGFyZ2V0cy5ydHM2MDAwIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iYWNtZS51dGlscy5jbG9ja3MiIHZlcnNpb249IiIgcmVwb3NpdG9yeT0iRDovd29yay90dXRvcmlhbC9yZXBvLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4NyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iYWNtZS51dGlscyIgdmVyc2lvbj0iIiByZXBvc2l0b3J5PSJEOi93b3JrL3R1dG9yaWFsL3JlcG8vIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJhY21lLnV0aWxzLkJlbmNoIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0iYWNtZS51dGlscy5CZW5jaC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzg4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJQQ2xvY2siIHR5cGU9ImFjbWUudXRpbHMuQmVuY2hfUENsb2NrLk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHg1JTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxYjdiNDA3JTNBJTNBJTI4YWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLk1vZHVsZSUyOWFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJlbmFibGVGbGFnIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iY2Znc2l0ZSIgdmVyc2lvbj0iIiByZXBvc2l0b3J5PSJEOi93b3JrL3R1dG9yaWFsL2lzcXJ0LXByb2cvIj4KKyAgICA8L3BhY2thZ2U+Cis8L2ltcG9ydHM+Cis8L2NvbmZpZ3VyYXRpb24+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQxNjVmYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmRlcApAQCAtMCwwICsxLDExOSBAQAorIworIyBUaGUgZm9sbG93aW5nIGlzIGdlbmVyYXRlZCBieSB1dGlscy5nZW5EZXAgZm9yIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UAorIworcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgcGFja2FnZS9jZmcvcHJvZ194NjRQLmggcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbDpwYWNrYWdlLnhzIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcgRDovd29yay90dXRvcmlhbC9pc3FydC1wcm9nL3Byb2cuY2ZnIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL0JlbmNoLnhzIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2kgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSUFudGFyYS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JRGFWaW5jaS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JSGltYWxheWEueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSU9NQVAyeDN4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lPTUFQM3h4eC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0MngueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8xMjhLLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMU0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8yNTZLLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfNTEySy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzZ4MHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2eDF4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDRE02NDY3LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDRFJBNDR4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDRFJ4NDB4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4NC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0ODYueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENUQ0k2NDh4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBEQTh4eC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQyMS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQyOC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQ1Mi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQ1NC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRE02NDMxLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0Ny54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRE02NDgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0Y3NjE5OTAueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ1RORVRWMjY4NS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9jNngueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1BsYXRmb3JtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL01haW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvUHJvZ3JhbS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0V4ZUNvbnRleHQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9JUGxhdGZvcm0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9VdGlscy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvTW9kZWwueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvUHJvZ3JhbS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdGF0ZVJlYWRlci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdHJ1Y3R1cmVEZWNvZGVyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwTWluLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlckJ1Zi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyU3lzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UaW1lc3RhbXAueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvQ2xvY2sueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90ZW1wbGF0ZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2kgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzIAorCitEOi93b3JrL3R1dG9yaWFsL2lzcXJ0LXByb2cvcHJvZy5jZmc6CitEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9CZW5jaC54czoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaToKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lBbnRhcmEueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JRGFWaW5jaS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lIaW1hbGF5YS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lPTUFQMngzeC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lPTUFQM3h4eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjQyeC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMTI4Sy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMU0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzI1NksueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzUxMksueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzZ4MHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzZ4MXgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RNNjQ2Ny54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDRFJBNDR4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENEUng0MHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0ODQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0ODYueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0OHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwREE4eHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQyMS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDI4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0NTIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQ1NC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0MzEueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRE02NDcueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRE02NDgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRjc2MTk5MC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENUTkVUVjI2ODUueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9jNngueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9QbGF0Zm9ybS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvUHJvZ3JhbS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL29tMi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vRXhlQ29udGV4dC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vSVBsYXRmb3JtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9VdGlscy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L01vZGVsLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvUHJvZ3JhbS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0YXRlUmVhZGVyLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RydWN0dXJlRGVjb2Rlci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwTWluLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyQnVmLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlclN5cy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGltZXN0YW1wLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL1RyYWNlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90ZW1wbGF0ZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaToKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzOgorCisKK2RlZmluZSBFWEVDLnByb2cueDY0UAorCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1dpbmRvd3Mva2VsdmluIC1xdWlldCAtbWVtX2lnbm9yZSBEOlx3b3JrXHR1dG9yaWFsXGlzcXJ0LXByb2dcY2Znc2l0ZVxwcm9nLng2NFAKK2VuZGVmCisKKyMKKyMgVGhlIGZvbGxvd2luZyBpcyBnZW5lcmF0ZWQgYnkgamF2YQorIworCitwcm9nLng2NFA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2xpYi9hY21lLnV0aWxzLmE2NFAgRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvbGliL3RpLnRhcmdldHMucnRzNjAwMC5hNjRQIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvbGliL2Jvb3QuYTY0UCBEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF91bnJvbGwuYTY0UCAKKworcGFja2FnZS9jZmcvcHJvZ194NjRQLmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rY21kLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rY21kLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rVXRpbHMueHMgCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyBwYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsOiBEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy5pbnRlcmZhY2VzIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy8uaW50ZXJmYWNlcyBEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy8uaW50ZXJmYWNlcyAuaW50ZXJmYWNlcyAKKworIworIyBydWxlLWxlc3MgZ29hbHMgZm9yIGZpbGVzIG91dHNpZGUgdGhpcyBwYWNrYWdlCisjICh0aGVzZSBnb2FscyBmb3JjZSBhIHJlLWJ1aWxkIGlmIHRoZXNlIGZpbGVzIGFyZQorIyBtb3ZlZCBvciBkZWxldGVkKQorIworRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvbGliL2FjbWUudXRpbHMuYTY0UDoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9saWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvbGliL3RpLnRhcmdldHMucnRzNjAwMC5hNjRQOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9saWIvYm9vdC5hNjRQOgorRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfdW5yb2xsLmE2NFA6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua2NtZC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rY21kLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL2xpbmtVdGlscy54czoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvLmludGVyZmFjZXM6CitEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLmludGVyZmFjZXM6CitEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy8uaW50ZXJmYWNlczoKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYwZjEyOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgKQEAgLTAsMCArMSwxMyBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworZXh0ZXJuIGludCB4ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DOworCitleHRlcm4gaW50IHhkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DOworCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM4Njk3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLm1hawpAQCAtMCwwICsxLDQ1IEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisjICB0YXJnZXQgY29tcGF0aWJpbGl0eSBrZXkgPSB0aS50YXJnZXRzLkM2NFB7MSwwLDYuMSw1CisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAuZGVwCitlbmRpZgorCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvY2ZnIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDpDX0RJUj0KK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworcGFja2FnZS9jZmcvcHJvZ194NjRQLnM2NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5zNjRQOiBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAtbiAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tbyAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnIC1mcj0uL3BhY2thZ2UvY2ZnIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2NmZyAtcyBvNjRQICQ8IC1DICAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tbyAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnIC1mcj0uL3BhY2thZ2UvY2ZnCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvcHJvZ194NjRQLnM2NFA6Q19ESVI9CitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuczY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuczY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2NsZWFuLDY0UCA6OgorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UAorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuczY0UAorCitwcm9nLng2NFA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKKworY2xlYW46OgorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGEwMmZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1YjdmMWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQLmRlcApAQCAtMCwwICsxLDU1IEBACitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDogcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCBEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9CZW5jaC5oIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9DbG9ja1N0ZC5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQ29yZS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGltaXRzLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW8uaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmggRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaCBEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL0JlbmNoX1BDbG9jay5oIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5LmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbmthZ2UuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCANCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYzoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oOg0KK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL0JlbmNoLmg6DQorRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL0Nsb2NrU3RkLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Db3JlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4uaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9saW1pdHMuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpby5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaDoNCitEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmg6DQorRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay5oOg0KK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvQmVuY2hfUENsb2NrLmg6DQorRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19lcGlsb2d1ZS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX2VwaWxvZ3VlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fcHJvbG9ndWUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlX19lcGlsb2d1ZS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19wcm9sb2d1ZS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dfX2VwaWxvZ3VlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5Lmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGlua2FnZS5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJvdi54cyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJvdi54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmJhYjg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAucm92LnhzCkBAIC0wLDAgKzEsNTA4NCBAQAorX19vID0gbnVsbAorX19vYmogPSBbCisgICAgdGhpcywgIC8vICMwIAorICAgIHt9LCAgICAvLyAjMSAKKyAgICB7fSwgICAgLy8gIzIgeGRjLnJ1bnRpbWUuQXNzZXJ0CisgICAgW10sICAgIC8vICMzIHhkYy5ydW50aW1lLkFzc2VydC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM0IHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMAorICAgIHt9LCAgICAvLyAjNSB4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNiB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzcgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM4IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzkgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzEwIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTEgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEyIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTMgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTQgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE2IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE4IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE5IHhkYy5ydW50aW1lLkFzc2VydC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwIHhkYy5ydW50aW1lLkNvcmUKKyAgICBbXSwgICAgLy8gIzIxIHhkYy5ydW50aW1lLkNvcmUvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjIgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMAorICAgIHt9LCAgICAvLyAjMjMgeGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kCisgICAgW10sICAgIC8vICMyNCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjcgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyOCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyOSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzMwIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMzMiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMzIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzNCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzM1IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzM2IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzNyB4ZGMucnVudGltZS5Db3JlL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzggeGRjLnJ1bnRpbWUuRGVmYXVsdHMKKyAgICBbXSwgICAgLy8gIzM5IHhkYy5ydW50aW1lLkRlZmF1bHRzLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzQwIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzQxIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM0MiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNDMgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM0NCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM0NSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNDYgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjNDcgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzQ4IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjNDkgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNTAgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM1MSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM1MiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjNTMgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM1NCB4ZGMucnVudGltZS5EZWZhdWx0cy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzU1IHhkYy5ydW50aW1lLkRpYWdzCisgICAgW10sICAgIC8vICM1NiB4ZGMucnVudGltZS5EaWFncy8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM1NyB4ZGMucnVudGltZS5EaWFncy9jb21tb24kCisgICAgW10sICAgIC8vICM1OCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNTkgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzYwIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjEgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjNjIgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzYzIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzY0IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICM2NSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzY2IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzY3IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjNjggeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjkgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzcwIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjNzEgeGRjLnJ1bnRpbWUuRGlhZ3Mvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICM3MiB4ZGMucnVudGltZS5FcnJvcgorICAgIFtdLCAgICAvLyAjNzMgeGRjLnJ1bnRpbWUuRXJyb3IvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNzQgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxCisgICAge30sICAgIC8vICM3NSB4ZGMucnVudGltZS5FcnJvci5EZXNjIzIKKyAgICB7fSwgICAgLy8gIzc2IHhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzc3IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM3OCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNzkgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM4MCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM4MSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODIgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjODMgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzg0IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjODUgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODYgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM4NyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM4OCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjODkgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM5MCB4ZGMucnVudGltZS5FcnJvci92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzkxIHhkYy5ydW50aW1lLkdhdGUKKyAgICBbXSwgICAgLy8gIzkyIHhkYy5ydW50aW1lLkdhdGUvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjOTMgeGRjLnJ1bnRpbWUuR2F0ZS9jb21tb24kCisgICAgW10sICAgIC8vICM5NCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM5NSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM5NiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjOTcgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM5OCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM5OSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEwMCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMDEgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzEwMiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEwMyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTA0IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTA1IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzEwNiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTA3IHhkYy5ydW50aW1lLkdhdGUvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxMDggeGRjLnJ1bnRpbWUuR2F0ZU51bGwKKyAgICBbXSwgICAgLy8gIzEwOSB4ZGMucnVudGltZS5HYXRlTnVsbC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxMTAgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTExIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxMTIgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzExMyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExNCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxMTUgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExNiB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMTcgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExOCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzExOSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxMjAgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxMjEgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTIyIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxMjMgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxMjQgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxMjUgeGRjLnJ1bnRpbWUuTG9nCisgICAgW10sICAgIC8vICMxMjYgeGRjLnJ1bnRpbWUuTG9nLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzEyNyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzAKKyAgICB7fSwgICAgLy8gIzEyOCB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzEKKyAgICB7fSwgICAgLy8gIzEyOSB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMKKyAgICB7fSwgICAgLy8gIzEzMCB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIKKyAgICB7fSwgICAgLy8gIzEzMSB4ZGMucnVudGltZS5Mb2cvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTMyIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTMzIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTM0IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzNSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTM2IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTM3IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMzggeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMzkgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTQwIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxNDEgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTQyIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNDMgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxNDQgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTQ1IHhkYy5ydW50aW1lLkxvZy9pZFRvSW5mbworICAgIFtdLCAgICAvLyAjMTQ2IHhkYy5ydW50aW1lLkxvZy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE0NyB4ZGMucnVudGltZS5NYWluCisgICAgW10sICAgIC8vICMxNDggeGRjLnJ1bnRpbWUuTWFpbi8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNDkgeGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kCisgICAgW10sICAgIC8vICMxNTAgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTUxIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE1MiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTUzIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTU0IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1NSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE1NiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxNTcgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE1OCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1OSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTYwIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTYxIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE2MiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTYzIHhkYy5ydW50aW1lLk1haW4vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxNjQgeGRjLnJ1bnRpbWUuTWVtb3J5CisgICAgW10sICAgIC8vICMxNjUgeGRjLnJ1bnRpbWUuTWVtb3J5LyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE2NiB4ZGMucnVudGltZS5IZWFwU3RkCisgICAgW10sICAgIC8vICMxNjcgeGRjLnJ1bnRpbWUuSGVhcFN0ZC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNjggeGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwCisgICAge30sICAgIC8vICMxNjkgeGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwL2luc3RhbmNlCisgICAge30sICAgIC8vICMxNzAgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNAorICAgIHt9LCAgICAvLyAjMTcxIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMKKyAgICB7fSwgICAgLy8gIzE3MiB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMyCisgICAge30sICAgIC8vICMxNzMgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyM0CisgICAge30sICAgIC8vICMxNzQgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb21tb24kCisgICAgW10sICAgIC8vICMxNzUgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTc2IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE3NyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTc4IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTc5IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4MCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE4MSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxODIgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE4MyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4NCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTg1IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTg2IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE4NyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTg4IHhkYy5ydW50aW1lLkhlYXBTdGQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxODkgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE5MCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE5MSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE5MiB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxOTMgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzE5NCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5NSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTk2IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk3IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE5OCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk5IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzIwMCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjAxIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjAyIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzIwMyB4ZGMucnVudGltZS5NZW1vcnkvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyMDQgeGRjLnJ1bnRpbWUuU3RhcnR1cAorICAgIFtdLCAgICAvLyAjMjA1IHhkYy5ydW50aW1lLlN0YXJ0dXAvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjA2IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjA3IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwOCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyMDkgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxMCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzIxMSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyMTIgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyMTMgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjE0IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyMTUgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyMTYgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzIxNyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxOCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyMTkgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzIyMCB4ZGMucnVudGltZS5TdGFydHVwL2ZpcnN0RnhucworICAgIFtdLCAgICAvLyAjMjIxIHhkYy5ydW50aW1lLlN0YXJ0dXAvbGFzdEZ4bnMKKyAgICBbXSwgICAgLy8gIzIyMiB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMKKyAgICBbXSwgICAgLy8gIzIyMyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5UYWIKKyAgICBbXSwgICAgLy8gIzIyNCB4ZGMucnVudGltZS5TdGFydHVwL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjI1IHhkYy5ydW50aW1lLlN5c3RlbQorICAgIFtdLCAgICAvLyAjMjI2IHhkYy5ydW50aW1lLlN5c3RlbS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMjcgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNQorICAgIHt9LCAgICAvLyAjMjI4IHhkYy5ydW50aW1lLlN5c01pbgorICAgIFtdLCAgICAvLyAjMjI5IHhkYy5ydW50aW1lLlN5c01pbi8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMzAgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzIzMSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIzMiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzIzMyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyMzQgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzIzNSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIzNiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjM3IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjM4IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzIzOSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQwIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI0MSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQyIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjQzIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI0NCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEKKyAgICB7fSwgICAgLy8gIzI0NSB4ZGMucm92LlZpZXdJbmZvCisgICAgW10sICAgIC8vICMyNDYgeGRjLnJvdi5WaWV3SW5mby8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyNDcgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwCisgICAgW10sICAgIC8vICMyNDggeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAKKyAgICB7fSwgICAgLy8gIzI0OSB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nQmFzaWMnCisgICAge30sICAgIC8vICMyNTAgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ1JlY29yZHMnCisgICAgW10sICAgIC8vICMyNTEgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAKKyAgICB7fSwgICAgLy8gIzI1MiB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nTW9kdWxlJworICAgIHt9LCAgICAvLyAjMjUzIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydPdXRwdXRCdWZmZXInCisgICAgW10sICAgIC8vICMyNTQgeGRjLnJ1bnRpbWUuU3lzTWluL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjU1IHhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kCisgICAgW10sICAgIC8vICMyNTYgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNTcgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNTggeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjU5IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyNjAgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyNjEgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzI2MiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2MyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyNjQgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2NSB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyNjYgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2NyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzI2OCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyNjkgeGRjLnJ1bnRpbWUuU3lzdGVtL2V4aXRGeG5zCisgICAgW10sICAgIC8vICMyNzAgeGRjLnJ1bnRpbWUuU3lzdGVtL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjcxIHhkYy5ydW50aW1lLlRleHQKKyAgICBbXSwgICAgLy8gIzI3MiB4ZGMucnVudGltZS5UZXh0LyRpbnN0YW5jZXMKKyAgICBbXSwgICAgLy8gIzI3MyB4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIKKyAgICB7fSwgICAgLy8gIzI3NCB4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI3NSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNzYgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjc3IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNzggeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyNzkgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjgwIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjgxIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4MiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjgzIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjg0IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyODUgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyODYgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjg3IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyODggeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiCisgICAge30sICAgIC8vICMyODkgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAKKyAgICB7fSwgICAgLy8gIzI5MCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMQorICAgIHt9LCAgICAvLyAjMjkxIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yCisgICAge30sICAgIC8vICMyOTIgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzMKKyAgICB7fSwgICAgLy8gIzI5MyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNAorICAgIHt9LCAgICAvLyAjMjk0IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81CisgICAge30sICAgIC8vICMyOTUgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzYKKyAgICB7fSwgICAgLy8gIzI5NiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNworICAgIHt9LCAgICAvLyAjMjk3IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84CisgICAge30sICAgIC8vICMyOTggeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzkKKyAgICB7fSwgICAgLy8gIzI5OSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTAKKyAgICB7fSwgICAgLy8gIzMwMCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTEKKyAgICB7fSwgICAgLy8gIzMwMSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIKKyAgICB7fSwgICAgLy8gIzMwMiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTMKKyAgICB7fSwgICAgLy8gIzMwMyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTQKKyAgICB7fSwgICAgLy8gIzMwNCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUKKyAgICB7fSwgICAgLy8gIzMwNSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTYKKyAgICB7fSwgICAgLy8gIzMwNiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTcKKyAgICB7fSwgICAgLy8gIzMwNyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTgKKyAgICB7fSwgICAgLy8gIzMwOCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTkKKyAgICB7fSwgICAgLy8gIzMwOSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMjAKKyAgICBbXSwgICAgLy8gIzMxMCB4ZGMucnVudGltZS5UZXh0L3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzExIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkCisgICAgW10sICAgIC8vICMzMTIgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMzEzIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzMxNCBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzE1IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMzMTYgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMzMTcgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMzE4IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMzMTkgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMzIwIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMzMjEgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMzMjIgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzIzIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMzI0IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMyNSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMzI2IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMzI3IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzI4IGFjbWUudXRpbHMuQmVuY2gKKyAgICBbXSwgICAgLy8gIzMyOSBhY21lLnV0aWxzLkJlbmNoLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzMzMCBhY21lLnV0aWxzLkJlbmNoL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzMzMSBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMzMzIgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMzMzIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMzMzQgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMzMzUgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzM2IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMzM3IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMzOCBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMzM5IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzQwIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzNDEgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMzNDIgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMzQzIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzNDQgYWNtZS51dGlscy5CZW5jaC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzM0NSAKKyAgICB7fSwgICAgLy8gIzM0NiAKKyAgICB7fSwgICAgLy8gIzM0NyAKKyAgICB7fSwgICAgLy8gIzM0OCAKKyAgICB7fSwgICAgLy8gIzM0OSAKKyAgICB7fSwgICAgLy8gIzM1MCB0aS50YXJnZXRzLkM2NFAKKyAgICB7fSwgICAgLy8gIzM1MSB0aS50YXJnZXRzLkM2NFAvYXIKKyAgICB7fSwgICAgLy8gIzM1MiB0aS50YXJnZXRzLkM2NFAvYXJPcHRzCisgICAge30sICAgIC8vICMzNTMgdGkudGFyZ2V0cy5DNjRQL2FzbQorICAgIHt9LCAgICAvLyAjMzU0IHRpLnRhcmdldHMuQzY0UC9hc21PcHRzCisgICAge30sICAgIC8vICMzNTUgdGkudGFyZ2V0cy5DNjIKKyAgICB7fSwgICAgLy8gIzM1NiB0aS50YXJnZXRzLkM2Mi9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICB7fSwgICAgLy8gIzM1NyB0aS50YXJnZXRzLkM2Mi9kZWJ1Z0dlbgorICAgIHt9LCAgICAvLyAjMzU4IHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMKKyAgICB7fSwgICAgLy8gIzM1OSB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuQycKKyAgICB7fSwgICAgLy8gIzM2MCB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYXNtJworICAgIHt9LCAgICAvLyAjMzYxIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jJworICAgIHt9LCAgICAvLyAjMzYyIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jYycKKyAgICB7fSwgICAgLy8gIzM2MyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3BwJworICAgIHt9LCAgICAvLyAjMzY0IHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jeHgnCisgICAge30sICAgIC8vICMzNjUgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICB7fSwgICAgLy8gIzM2NiB0aS50YXJnZXRzLkM2Mi9tb2RlbAorICAgIHt9LCAgICAvLyAjMzY3IHRpLnRhcmdldHMuQzYyL3BsYXRmb3JtcworICAgIHt9LCAgICAvLyAjMzY4IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzCisgICAge30sICAgIC8vICMzNjkgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIHt9LCAgICAvLyAjMzcwIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM3MSB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM3MiB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnCisgICAge30sICAgIC8vICMzNzMgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzc0IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzc1IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJworICAgIHt9LCAgICAvLyAjMzc2IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzc3IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNzggdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAge30sICAgIC8vICMzNzkgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzODAgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM4MSB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScKKyAgICB7fSwgICAgLy8gIzM4MiB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM4MyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzg0IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJworICAgIHt9LCAgICAvLyAjMzg1IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzg2IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzODcgdGkudGFyZ2V0cy5DNjIvc2VjdE1hcAorICAgIHt9LCAgICAvLyAjMzg4IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzCisgICAge30sICAgIC8vICMzODkgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9DaGFyCisgICAge30sICAgIC8vICMzOTAgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICB7fSwgICAgLy8gIzM5MSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0Zsb2F0CisgICAge30sICAgIC8vICMzOTIgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GeG4KKyAgICB7fSwgICAgLy8gIzM5MyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0lBcmcKKyAgICB7fSwgICAgLy8gIzM5NCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludAorICAgIHt9LCAgICAvLyAjMzk1IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MTYKKyAgICB7fSwgICAgLy8gIzM5NiB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDMyCisgICAge30sICAgIC8vICMzOTcgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ0MAorICAgIHt9LCAgICAvLyAjMzk4IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NjQKKyAgICB7fSwgICAgLy8gIzM5OSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDgKKyAgICB7fSwgICAgLy8gIzQwMCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xEb3VibGUKKyAgICB7fSwgICAgLy8gIzQwMSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xMb25nCisgICAge30sICAgIC8vICM0MDIgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Mb25nCisgICAge30sICAgIC8vICM0MDMgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9QdHIKKyAgICB7fSwgICAgLy8gIzQwNCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1Nob3J0CisgICAge30sICAgIC8vICM0MDUgdGkudGFyZ2V0cy5DNjIvdmVyc2lvbk1hcAorICAgIHt9LCAgICAvLyAjNDA2IHRpLnRhcmdldHMuQzY0UC9jYworICAgIHt9LCAgICAvLyAjNDA3IHRpLnRhcmdldHMuQzY0UC9jY0NvbmZpZ09wdHMKKyAgICB7fSwgICAgLy8gIzQwOCB0aS50YXJnZXRzLkM2NFAvY2NPcHRzCisgICAge30sICAgIC8vICM0MDkgdGkudGFyZ2V0cy5DNjRQL2NvbXBhdGlibGVTdWZmaXhlcworICAgIHt9LCAgICAvLyAjNDEwIHRpLnRhcmdldHMuQzY0UC9kZWJ1Z0dlbgorICAgIHt9LCAgICAvLyAjNDExIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zCisgICAge30sICAgIC8vICM0MTIgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5DJworICAgIHt9LCAgICAvLyAjNDEzIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYXNtJworICAgIHt9LCAgICAvLyAjNDE0IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYycKKyAgICB7fSwgICAgLy8gIzQxNSB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNjJworICAgIHt9LCAgICAvLyAjNDE2IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3BwJworICAgIHt9LCAgICAvLyAjNDE3IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3h4JworICAgIHt9LCAgICAvLyAjNDE4IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczYyJworICAgIHt9LCAgICAvLyAjNDE5IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0JworICAgIHt9LCAgICAvLyAjNDIwIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0UCcKKyAgICB7fSwgICAgLy8gIzQyMSB0aS50YXJnZXRzLkM2NFAvbG5rCisgICAge30sICAgIC8vICM0MjIgdGkudGFyZ2V0cy5DNjRQL2xua09wdHMKKyAgICB7fSwgICAgLy8gIzQyMyB0aS50YXJnZXRzLkM2NFAvbW9kZWwKKyAgICB7fSwgICAgLy8gIzQyNCB0aS50YXJnZXRzLkM2NFAvcGxhdGZvcm1zCisgICAge30sICAgIC8vICM0MjUgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzCisgICAge30sICAgIC8vICM0MjYgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScKKyAgICB7fSwgICAgLy8gIzQyNyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjNDI4IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzQyOSB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJworICAgIHt9LCAgICAvLyAjNDMwIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICM0MzEgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjNDMyIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScKKyAgICB7fSwgICAgLy8gIzQzMyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICM0MzQgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAge30sICAgIC8vICM0MzUgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIHt9LCAgICAvLyAjNDM2IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzQzNyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzQzOCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nCisgICAge30sICAgIC8vICM0MzkgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjNDQwIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycworICAgIHt9LCAgICAvLyAjNDQxIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycKKyAgICB7fSwgICAgLy8gIzQ0MiB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICM0NDMgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzCisgICAge30sICAgIC8vICM0NDQgdGkudGFyZ2V0cy5DNjRQL3NlY3RNYXAKKyAgICB7fSwgICAgLy8gIzQ0NSB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMKKyAgICB7fSwgICAgLy8gIzQ0NiB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9DaGFyCisgICAge30sICAgIC8vICM0NDcgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRG91YmxlCisgICAge30sICAgIC8vICM0NDggdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRmxvYXQKKyAgICB7fSwgICAgLy8gIzQ0OSB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GeG4KKyAgICB7fSwgICAgLy8gIzQ1MCB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JQXJnCisgICAge30sICAgIC8vICM0NTEgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50CisgICAge30sICAgIC8vICM0NTIgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MTYKKyAgICB7fSwgICAgLy8gIzQ1MyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQzMgorICAgIHt9LCAgICAvLyAjNDU0IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDQwCisgICAge30sICAgIC8vICM0NTUgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NjQKKyAgICB7fSwgICAgLy8gIzQ1NiB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ4CisgICAge30sICAgIC8vICM0NTcgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTERvdWJsZQorICAgIHt9LCAgICAvLyAjNDU4IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xMb25nCisgICAge30sICAgIC8vICM0NTkgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTG9uZworICAgIHt9LCAgICAvLyAjNDYwIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1B0cgorICAgIHt9LCAgICAvLyAjNDYxIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1Nob3J0CisgICAge30sICAgIC8vICM0NjIgdGkudGFyZ2V0cy5DNjRQL3ZlcnMKKyAgICB7fSwgICAgLy8gIzQ2MyB0aS50YXJnZXRzLkM2NFAvdmVyc2lvbk1hcAorICAgIHt9LCAgICAvLyAjNDY0IAorXQorCitfX28gPSBfX29ialswXSAgCisgICAgX19vWyckbW9kdWxlcyddID0gX19vYmpbMS4wXQorICAgIF9fb1snYnVpbGQnXSA9IF9fb2JqWzM0NS4wXQorCitfX28gPSBfX29ialsxXSAgCisgICAgX19vWycjMzI3NzAnXSA9IF9fb2JqWzIuMF0KKyAgICBfX29bJyMzMjc3MSddID0gX19vYmpbMjAuMF0KKyAgICBfX29bJyMzMjc3MiddID0gX19vYmpbMzguMF0KKyAgICBfX29bJyMzMjc3MyddID0gX19vYmpbNTUuMF0KKyAgICBfX29bJyMzMjc3NCddID0gX19vYmpbNzIuMF0KKyAgICBfX29bJyMzMjc3NSddID0gX19vYmpbOTEuMF0KKyAgICBfX29bJyMzMjc3NiddID0gX19vYmpbMTA4LjBdCisgICAgX19vWycjMzI3NzcnXSA9IF9fb2JqWzEyNS4wXQorICAgIF9fb1snIzMyNzc4J10gPSBfX29ialsxNDcuMF0KKyAgICBfX29bJyMzMjc3OSddID0gX19vYmpbMTY0LjBdCisgICAgX19vWycjMzI3ODAnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snIzMyNzgxJ10gPSBfX29ialsyMDQuMF0KKyAgICBfX29bJyMzMjc4MiddID0gX19vYmpbMjI1LjBdCisgICAgX19vWycjMzI3ODMnXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1snIzMyNzg0J10gPSBfX29ialsyNzEuMF0KKyAgICBfX29bJyMzMjc4NyddID0gX19vYmpbMzExLjBdCisgICAgX19vWycjMzI3ODgnXSA9IF9fb2JqWzMyOC4wXQorICAgIF9fb1snYWNtZS51dGlscy5CZW5jaCddID0gX19vYmpbMzI4LjBdCisgICAgX19vWydhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCddID0gX19vYmpbMzExLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Bc3NlcnQnXSA9IF9fb2JqWzIuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkNvcmUnXSA9IF9fb2JqWzIwLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5EZWZhdWx0cyddID0gX19vYmpbMzguMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkRpYWdzJ10gPSBfX29ials1NS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuRXJyb3InXSA9IF9fb2JqWzcyLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5HYXRlJ10gPSBfX29ials5MS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuR2F0ZU51bGwnXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuSGVhcFN0ZCddID0gX19vYmpbMTY2LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Mb2cnXSA9IF9fb2JqWzEyNS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuTWFpbiddID0gX19vYmpbMTQ3LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5NZW1vcnknXSA9IF9fb2JqWzE2NC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3RhcnR1cCddID0gX19vYmpbMjA0LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TeXNNaW4nXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3lzdGVtJ10gPSBfX29ialsyMjUuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlRleHQnXSA9IF9fb2JqWzI3MS4wXQorCitfX28gPSBfX29ialsyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszLjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0VfYXNzZXJ0RmFpbGVkJ10gPSBfX29ials0LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials1LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNi4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTkuMF0KKworX19vID0gX19vYmpbM10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNF0gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhc3NlcnRpb24rZmFpbHVyZSUyNXMlMjVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzVdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzZdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbN10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzhdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTBdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTFdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxM10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTRdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTVdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMThdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTldICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwXSAgLy8geGRjLnJ1bnRpbWUuQ29yZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjEuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfaW5pdGlhbGl6ZWRQYXJhbXMnXSA9IF9fb2JqWzIyLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzEKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjMuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzcuMF0KKworX19vID0gX19vYmpbMjFdICAvLyB4ZGMucnVudGltZS5Db3JlLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQV9pbml0aWFsaXplZFBhcmFtcyUzQSt1bmluaXRpYWxpemVkK1BhcmFtcytzdHJ1Y3QnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjNdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjRdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMzEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialszMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMzUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjZdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyN10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyOF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI5XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMwXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzNdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzRdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzZdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszN10gIC8vIHhkYy5ydW50aW1lLkNvcmUvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszOS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzIKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNDAuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials0MS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbNTQuMF0KKworX19vID0gX19vYmpbMzldICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzQxXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials0Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzQ0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials0Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials0OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzUwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials1Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0M10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDRdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDZdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0N10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ4XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDldICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUwXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNTEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTFdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUyXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzUzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUzXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1NF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU1XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzU2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncycsICdVVEYtOCcpKQorICAgIF9fb1snQUxMJ10gPSA2NTUzNQorICAgIF9fb1snQVNTRVJUJ10gPSAxNgorICAgIF9fb1snRU5UUlknXSA9IDEKKyAgICBfX29bJ0VYSVQnXSA9IDIKKyAgICBfX29bJ0lOVEVSTkFMJ10gPSA4CisgICAgX19vWydMSUZFQ1lDTEUnXSA9IDQKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzMKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snVVNFUjEnXSA9IDI1NgorICAgIF9fb1snVVNFUjInXSA9IDUxMgorICAgIF9fb1snVVNFUjMnXSA9IDEwMjQKKyAgICBfX29bJ1VTRVI0J10gPSAyMDQ4CisgICAgX19vWydVU0VSNSddID0gNDA5NgorICAgIF9fb1snVVNFUjYnXSA9IDgxOTIKKyAgICBfX29bJ1VTRVI3J10gPSAxNjM4NAorICAgIF9fb1snVVNFUjgnXSA9IDMyNzY4CisgICAgX19vWydjb21tb24kJ10gPSBfX29ials1Ny4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzU4LjBdCisgICAgX19vWydkaWN0QmFzZSddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3NldE1hc2tFbmFibGVkJ10gPSBmYWxzZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ials3MS4wXQorCitfX28gPSBfX29ials1Nl0gIC8vIHhkYy5ydW50aW1lLkRpYWdzLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU3XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNThdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzYzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzY1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbNjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzY5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTldICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYwXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2MV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYyXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2M10gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY0XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjVdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2Nl0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjddICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2OF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjldICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNzAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzBdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzcxXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3Mvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzJdICAvLyB4ZGMucnVudGltZS5FcnJvcgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbNzMuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJywgJ1VURi04JykpCisgICAgX19vWydFX2dlbmVyaWMnXSA9IF9fb2JqWzc0LjBdCisgICAgX19vWydFX21lbW9yeSddID0gX19vYmpbNzUuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzQKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snTlVNQVJHUyddID0gMgorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNzYuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials3Ny4wXQorICAgIF9fb1snbWF4RGVwdGgnXSA9IDE2CisgICAgX19vWydwb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuVU5XSU5EJywgJ1VURi04JykpCisgICAgX19vWydyYWlzZUhvb2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzkwLjBdCisKK19fbyA9IF9fb2JqWzczXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzRdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjMxJywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ2VuZXJpYytlcnJvciUzQSslMjVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc1XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ291dCtvZittZW1vcnklM0EraGVhcCUzRDB4JTI1eCUyQytzaXplJTNEJTI1dScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3Nl0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzc3XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials4OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc4XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3OV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODBdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzgxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4MV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODJdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4M10gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg0XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODVdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg2XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODddICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg4XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzg5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg5XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5MF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzkxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbOTIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials5My4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzk0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxMDcuMF0KKworX19vID0gX19vYmpbOTJdICAvLyB4ZGMucnVudGltZS5HYXRlLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTNdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbOTRdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbOTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials5Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbOTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTAxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTAzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxMDUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk1XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials5Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTZdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5N10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzk4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5OF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTAwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDBdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTAxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDJdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDNdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTA0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNV0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTA2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwN10gIC8vIHhkYy5ydW50aW1lLkdhdGUvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDhdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTA5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCcsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydRX0JMT0NLSU5HJ10gPSAxCisgICAgX19vWydRX1BSRUVNUFRJTkcnXSA9IDIKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzExMC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzExMS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTI0LjBdCisKK19fbyA9IF9fb2JqWzEwOV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExMF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzExMV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTEyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTE0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMTYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTE4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTIwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxMjIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTJdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTEzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTNdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTVdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTddICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMThdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjBdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMjEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjJdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyM10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI1XSAgLy8geGRjLnJ1bnRpbWUuTG9nCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxMjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZycsICdVVEYtOCcpKQorICAgIF9fb1snTF9jb25zdHJ1Y3QnXSA9IF9fb2JqWzEyNy4wXQorICAgIF9fb1snTF9jcmVhdGUnXSA9IF9fb2JqWzEyOC4wXQorICAgIF9fb1snTF9kZWxldGUnXSA9IF9fb2JqWzEyOS4wXQorICAgIF9fb1snTF9kZXN0cnVjdCddID0gX19vYmpbMTMwLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydOVU1BUkdTJ10gPSA4CisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydQUklOVEZJRCddID0gMAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTMxLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTMyLjBdCisgICAgX19vWydpZFRvSW5mbyddID0gX19vYmpbMTQ1LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxNDYuMF0KKworX19vID0gX19vYmpbMTI2XSAgLy8geGRjLnJ1bnRpbWUuTG9nLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjddICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMwJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyOF0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI5XSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMycsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzMF0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctLSUzRStkZXN0cnVjdCUzQSslMjglMjVwJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzMV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTMyXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTMzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTM1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMzcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTM5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTQxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNDMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMzXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTM0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzRdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM1XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEzNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM2XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzN10gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMzguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzOF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM5XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQwXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0MV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0Ml0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDNdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ0XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0NV0gIC8vIHhkYy5ydW50aW1lLkxvZy9pZFRvSW5mbworICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWycjNDY4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2NvbnN0cnVjdCUzQSUzQSUzQy0tK2NvbnN0cnVjdCUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNDY4JykKKyAgICBfX28ucHVzaChfX29bJyM0OTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlJTNBJTNBJTNDLS0rY3JlYXRlJTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM0OTInKQorICAgIF9fby5wdXNoKF9fb1snIzUxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9kZXN0cnVjdCUzQSUzQS0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzUxMycpCisgICAgX19vLnB1c2goX19vWycjNTMyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2RlbGV0ZSUzQSUzQS0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM1MzInKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGaWRUb0luZm8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ2XSAgLy8geGRjLnJ1bnRpbWUuTG9nL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDddICAvLyB4ZGMucnVudGltZS5NYWluCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNDguMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9HYXRlUHJveHknXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc4CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzE0OS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzE1MC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTYzLjBdCisKK19fbyA9IF9fb2JqWzE0OF0gIC8vIHhkYy5ydW50aW1lLk1haW4vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDldICAvLyB4ZGMucnVudGltZS5NYWluL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTUwXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE1MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE1My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTU1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE1Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE1OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTYxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTFdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUyXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUzXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTRdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTVdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1Nl0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTddICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1OF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1OV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYwXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYxXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYyXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYzXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2NF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTY1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnknLCAnVVRGLTgnKSkKKyAgICBfX29bJ0hlYXBQcm94eSddID0gX19vYmpbMTY2LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3OQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydRX0JMT0NLSU5HJ10gPSAxCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxODkuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxOTAuMF0KKyAgICBfX29bJ2RlZmF1bHRIZWFwSW5zdGFuY2UnXSA9IF9fb2JqWzE2OC4wXQorICAgIF9fb1snZGVmYXVsdEhlYXBTaXplJ10gPSA0MDk2CisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyMDMuMF0KKworX19vID0gX19vYmpbMTY1XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5LyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNjcuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfaW52YWxpZEFsaWdubWVudCddID0gX19vYmpbMTcwLjBdCisgICAgX19vWydBX2ludmFsaWRUb3RhbEZyZWVTaXplJ10gPSBfX29ialsxNzEuMF0KKyAgICBfX29bJ0FfemVyb1NpemUnXSA9IF9fb2JqWzE3Mi4wXQorICAgIF9fb1snRV9ub1JUU01lbW9yeSddID0gX19vYmpbMTczLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODAKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTc0LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTc1LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxODguMF0KKworX19vID0gX19vYmpbMTY3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsxNjguMF0KKworX19vID0gX19vYmpbMTY4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRtb2R1bGUnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2luc3RhbmNlJ10gPSBfX29ialsxNjkuMF0KKyAgICBfX29bJ3NpemUnXSA9IDQwOTYKKworX19vID0gX19vYmpbMTY5XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwL2luc3RhbmNlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlJTIzMCUyRmluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyduYW1lJ10gPSBudWxsCisKK19fbyA9IF9fb2JqWzE3MF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzNCcsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkX2FsbG9jKy0rcmVxdWVzdGVkK2FsaWdubWVudCtpcytncmVhdGVyK3RoYW4rYWxsb3dlZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzFdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSGVhcFN0ZCtpbnN0YW5jZSt0b3RhbEZyZWVTaXplK2lzK2dyZWF0ZXIrdGhhbitzdGFydGluZytzaXplJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3Ml0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkX2NyZWF0ZStjYW5ub3QraGF2ZSthK3plcm8rc2l6ZSt2YWx1ZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzNdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjM0JywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVGhlK1JUUytoZWFwK2lzK3VzZWQrdXAuK0V4YW1pbmUrUHJvZ3JhbS5oZWFwLicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzRdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTc1XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE3Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE3Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzldICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODBdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4MV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODJdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4M10gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4NF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg1XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg2XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4OV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTkwXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTkxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTkzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxOTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTk3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTk5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyMDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkxXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTkyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTJdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkzXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk0XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5NV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5Nl0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk3XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk4XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5OV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjAwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwMF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDFdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAyXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwM10gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjA1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJywgJ1VURi04JykpCisgICAgX19vWydET05FJ10gPSAtMQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzgxCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ05PVERPTkUnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzIwNi4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzIwNy4wXQorICAgIF9fb1snZXhlY0ltcGwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JJywgJ1VURi04JykpCisgICAgX19vWydmaXJzdEZ4bnMnXSA9IF9fb2JqWzIyMC4wXQorICAgIF9fb1snbGFzdEZ4bnMnXSA9IF9fb2JqWzIyMS4wXQorICAgIF9fb1snbWF4UGFzc2VzJ10gPSAzMgorICAgIF9fb1sncmVzZXRGeG4nXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydzZnhuUnRzJ10gPSBfX29ialsyMjIuMF0KKyAgICBfX29bJ3NmeG5UYWInXSA9IF9fb2JqWzIyMy4wXQorICAgIF9fb1snc3RhcnRNb2RzRnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzIyNC4wXQorCitfX28gPSBfX29ialsyMDVdICAvLyB4ZGMucnVudGltZS5TdGFydHVwLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA2XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIwN10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyMDguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyMTAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzIxMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyMTQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyMTYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzIxOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA4XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwOV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxMF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxMS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjExXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjEyXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjEzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTNdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTVdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTZdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxN10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxOF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxOV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvZmlyc3RGeG5zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGZmlyc3RGeG5zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvbGFzdEZ4bnMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZsYXN0RnhucycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjJdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZzZnhuUnRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSB0cnVlCisgICAgX19vWycxJ10gPSB0cnVlCisgICAgX19vWycyJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyMjNdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5UYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZzZnhuVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbScsICdVVEYtOCcpKQorICAgIF9fb1snQV9jYW5ub3RGaXRJbnRvQXJnJ10gPSBfX29ialsyMjcuMF0KKyAgICBfX29bJ01vZHVsZV9HYXRlUHJveHknXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODIKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snU1RBVFVTX1VOS05PV04nXSA9IDUxOTY2CisgICAgX19vWydTdXBwb3J0UHJveHknXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjU1LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjU2LjBdCisgICAgX19vWydleGl0RnhucyddID0gX19vYmpbMjY5LjBdCisgICAgX19vWydleHRlbmRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSScsICdVVEYtOCcpKQorICAgIF9fb1snZXh0ZW5kZWRGb3JtYXRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNSUyNEwnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21heEF0ZXhpdEhhbmRsZXJzJ10gPSA4CisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyNzAuMF0KKworX19vID0gX19vYmpbMjI2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjddICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQV9jYW5ub3RGaXRJbnRvQXJnJTNBK3NpemVvZiUyOEZsb2F0JTI5KyUzRStzaXplb2YlMjhBcmclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI4XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMjkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbicsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODMKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snYnVmU2l6ZSddID0gMTAyNAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjMwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjMxLjBdCisgICAgX19vWydmbHVzaEF0RXhpdCddID0gdHJ1ZQorICAgIF9fb1snb3V0cHV0RnVuYyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JJywgJ1VURi04JykpCisgICAgX19vWydvdXRwdXRGeG4nXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydyb3ZWaWV3SW5mbyddID0gX19vYmpbMjQ0LjBdCisgICAgX19vWydzZWN0aW9uTmFtZSddID0gbnVsbAorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyNTQuMF0KKworX19vID0gX19vYmpbMjI5XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzBdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIzMV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzIzMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzIzNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjM2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzIzOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzI0MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzMl0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjMzXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzZdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzddICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzOF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzOV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDBdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI0MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDFdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQyXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0M10gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDRdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snJG1vZHVsZSddID0gX19vYmpbMjQ1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMScsICdVVEYtOCcpKQorICAgIF9fb1snc2hvd1Jhd1RhYiddID0gdHJ1ZQorICAgIF9fb1sndmlld01hcCddID0gX19vYmpbMjUxLjBdCisKK19fbyA9IF9fb2JqWzI0NV0gIC8vIHhkYy5yb3YuVmlld0luZm8KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzI0Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDZdICAvLyB4ZGMucm92LlZpZXdJbmZvLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8lMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzI0Ny4wXQorICAgIF9fb1snMSddID0gX19vYmpbMjQ0LjBdCisKK19fbyA9IF9fb2JqWzI0N10gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0luc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyckbW9kdWxlJ10gPSBfX29ialsyNDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJywgJ1VURi04JykpCisgICAgX19vWydzaG93UmF3VGFiJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TWFwJ10gPSBfX29ialsyNDguMF0KKworX19vID0gX19vYmpbMjQ4XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snQmFzaWMnXSA9IF9fb2JqWzI0OS4wXSk7IF9fby4ka2V5cy5wdXNoKCdCYXNpYycpCisgICAgX19vLnB1c2goX19vWydSZWNvcmRzJ10gPSBfX29ialsyNTAuMF0pOyBfX28uJGtleXMucHVzaCgnUmVjb3JkcycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQ5XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ0Jhc2ljJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAlMkZ2aWV3TWFwJTJGJTI3QmFzaWMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQmFzaWNWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSU5TVEFOQ0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0QmFzaWMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUwXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ1JlY29yZHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAlMkYlMjdSZWNvcmRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1JlY29yZFZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JTlNUQU5DRV9EQVRBJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdFJlY29yZHMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUxXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snTW9kdWxlJ10gPSBfX29ialsyNTIuMF0pOyBfX28uJGtleXMucHVzaCgnTW9kdWxlJykKKyAgICBfX28ucHVzaChfX29bJ091dHB1dEJ1ZmZlciddID0gX19vYmpbMjUzLjBdKTsgX19vLiRrZXlzLnB1c2goJ091dHB1dEJ1ZmZlcicpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMSUyRnZpZXdNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUyXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ01vZHVsZScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJTJGdmlld01hcCUyRiUyN01vZHVsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGVWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uTU9EVUxFJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdE1vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTNdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nT3V0cHV0QnVmZmVyJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzElMkZ2aWV3TWFwJTJGJTI3T3V0cHV0QnVmZmVyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0J1ZmZlckVudHJ5VmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLk1PRFVMRV9EQVRBJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdE91dHB1dEJ1ZmZlcicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTRdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1NV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjU2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjU3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjYzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjY1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyNjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU3XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjU4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNThdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU5XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYwXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2MV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2Ml0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYzXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY0XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2NV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjY2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2Nl0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjddICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY4XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2OV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9leGl0RnhucworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGZXhpdEZ4bnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjcwXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzFdICAvLyB4ZGMucnVudGltZS5UZXh0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyNzIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4NAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjaGFyQ250J10gPSA2OTcKKyAgICBfX29bJ2NoYXJUYWInXSA9IF9fb2JqWzI3My4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjc0LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjc1LjBdCisgICAgX19vWydpc0xvYWRlZCddID0gdHJ1ZQorICAgIF9fb1snbmFtZUVtcHR5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QmVtcHR5LWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVTdGF0aWMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCc3RhdGljLWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVVbmtub3duJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QnVua25vd24taW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbm9kZUNudCddID0gMjEKKyAgICBfX29bJ25vZGVUYWInXSA9IF9fb2JqWzI4OC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzEwLjBdCisgICAgX19vWyd2aXNpdFJvcGVGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Zpc2l0Um9wZUZ4bjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzNdICAvLyB4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjaGFyVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSAwCisgICAgX19vWycxJ10gPSA2NQorICAgIF9fb1snMiddID0gOTUKKyAgICBfX29bJzMnXSA9IDEwNQorICAgIF9fb1snNCddID0gMTEwCisgICAgX19vWyc1J10gPSAxMDUKKyAgICBfX29bJzYnXSA9IDExNgorICAgIF9fb1snNyddID0gMTA1CisgICAgX19vWyc4J10gPSA5NworICAgIF9fb1snOSddID0gMTA4CisgICAgX19vWycxMCddID0gMTA1CisgICAgX19vWycxMSddID0gMTIyCisgICAgX19vWycxMiddID0gMTAxCisgICAgX19vWycxMyddID0gMTAwCisgICAgX19vWycxNCddID0gODAKKyAgICBfX29bJzE1J10gPSA5NworICAgIF9fb1snMTYnXSA9IDExNAorICAgIF9fb1snMTcnXSA9IDk3CisgICAgX19vWycxOCddID0gMTA5CisgICAgX19vWycxOSddID0gMTE1CisgICAgX19vWycyMCddID0gNTgKKyAgICBfX29bJzIxJ10gPSAzMgorICAgIF9fb1snMjInXSA9IDExNworICAgIF9fb1snMjMnXSA9IDExMAorICAgIF9fb1snMjQnXSA9IDEwNQorICAgIF9fb1snMjUnXSA9IDExMAorICAgIF9fb1snMjYnXSA9IDEwNQorICAgIF9fb1snMjcnXSA9IDExNgorICAgIF9fb1snMjgnXSA9IDEwNQorICAgIF9fb1snMjknXSA9IDk3CisgICAgX19vWyczMCddID0gMTA4CisgICAgX19vWyczMSddID0gMTA1CisgICAgX19vWyczMiddID0gMTIyCisgICAgX19vWyczMyddID0gMTAxCisgICAgX19vWyczNCddID0gMTAwCisgICAgX19vWyczNSddID0gMzIKKyAgICBfX29bJzM2J10gPSA4MAorICAgIF9fb1snMzcnXSA9IDk3CisgICAgX19vWyczOCddID0gMTE0CisgICAgX19vWyczOSddID0gOTcKKyAgICBfX29bJzQwJ10gPSAxMDkKKyAgICBfX29bJzQxJ10gPSAxMTUKKyAgICBfX29bJzQyJ10gPSAzMgorICAgIF9fb1snNDMnXSA9IDExNQorICAgIF9fb1snNDQnXSA9IDExNgorICAgIF9fb1snNDUnXSA9IDExNAorICAgIF9fb1snNDYnXSA9IDExNworICAgIF9fb1snNDcnXSA9IDk5CisgICAgX19vWyc0OCddID0gMTE2CisgICAgX19vWyc0OSddID0gMAorICAgIF9fb1snNTAnXSA9IDcyCisgICAgX19vWyc1MSddID0gMTAxCisgICAgX19vWyc1MiddID0gOTcKKyAgICBfX29bJzUzJ10gPSAxMTIKKyAgICBfX29bJzU0J10gPSA3NworICAgIF9fb1snNTUnXSA9IDEwNQorICAgIF9fb1snNTYnXSA9IDExMAorICAgIF9fb1snNTcnXSA9IDk1CisgICAgX19vWyc1OCddID0gOTkKKyAgICBfX29bJzU5J10gPSAxMTQKKyAgICBfX29bJzYwJ10gPSAxMDEKKyAgICBfX29bJzYxJ10gPSA5NworICAgIF9fb1snNjInXSA9IDExNgorICAgIF9fb1snNjMnXSA9IDEwMQorICAgIF9fb1snNjQnXSA9IDMyCisgICAgX19vWyc2NSddID0gOTkKKyAgICBfX29bJzY2J10gPSA5NworICAgIF9fb1snNjcnXSA9IDExMAorICAgIF9fb1snNjgnXSA9IDExMAorICAgIF9fb1snNjknXSA9IDExMQorICAgIF9fb1snNzAnXSA9IDExNgorICAgIF9fb1snNzEnXSA9IDMyCisgICAgX19vWyc3MiddID0gMTA0CisgICAgX19vWyc3MyddID0gOTcKKyAgICBfX29bJzc0J10gPSAxMTgKKyAgICBfX29bJzc1J10gPSAxMDEKKyAgICBfX29bJzc2J10gPSAzMgorICAgIF9fb1snNzcnXSA9IDk3CisgICAgX19vWyc3OCddID0gMzIKKyAgICBfX29bJzc5J10gPSAxMjIKKyAgICBfX29bJzgwJ10gPSAxMDEKKyAgICBfX29bJzgxJ10gPSAxMTQKKyAgICBfX29bJzgyJ10gPSAxMTEKKyAgICBfX29bJzgzJ10gPSAzMgorICAgIF9fb1snODQnXSA9IDExNQorICAgIF9fb1snODUnXSA9IDEwNQorICAgIF9fb1snODYnXSA9IDEyMgorICAgIF9fb1snODcnXSA9IDEwMQorICAgIF9fb1snODgnXSA9IDMyCisgICAgX19vWyc4OSddID0gMTE4CisgICAgX19vWyc5MCddID0gOTcKKyAgICBfX29bJzkxJ10gPSAxMDgKKyAgICBfX29bJzkyJ10gPSAxMTcKKyAgICBfX29bJzkzJ10gPSAxMDEKKyAgICBfX29bJzk0J10gPSAwCisgICAgX19vWyc5NSddID0gNzIKKyAgICBfX29bJzk2J10gPSAxMDEKKyAgICBfX29bJzk3J10gPSA5NworICAgIF9fb1snOTgnXSA9IDExMgorICAgIF9fb1snOTknXSA9IDgzCisgICAgX19vWycxMDAnXSA9IDExNgorICAgIF9fb1snMTAxJ10gPSAxMDAKKyAgICBfX29bJzEwMiddID0gOTUKKyAgICBfX29bJzEwMyddID0gOTkKKyAgICBfX29bJzEwNCddID0gMTE0CisgICAgX19vWycxMDUnXSA9IDEwMQorICAgIF9fb1snMTA2J10gPSA5NworICAgIF9fb1snMTA3J10gPSAxMTYKKyAgICBfX29bJzEwOCddID0gMTAxCisgICAgX19vWycxMDknXSA9IDMyCisgICAgX19vWycxMTAnXSA9IDk5CisgICAgX19vWycxMTEnXSA9IDk3CisgICAgX19vWycxMTInXSA9IDExMAorICAgIF9fb1snMTEzJ10gPSAxMTAKKyAgICBfX29bJzExNCddID0gMTExCisgICAgX19vWycxMTUnXSA9IDExNgorICAgIF9fb1snMTE2J10gPSAzMgorICAgIF9fb1snMTE3J10gPSAxMDQKKyAgICBfX29bJzExOCddID0gOTcKKyAgICBfX29bJzExOSddID0gMTE4CisgICAgX19vWycxMjAnXSA9IDEwMQorICAgIF9fb1snMTIxJ10gPSAzMgorICAgIF9fb1snMTIyJ10gPSA5NworICAgIF9fb1snMTIzJ10gPSAzMgorICAgIF9fb1snMTI0J10gPSAxMjIKKyAgICBfX29bJzEyNSddID0gMTAxCisgICAgX19vWycxMjYnXSA9IDExNAorICAgIF9fb1snMTI3J10gPSAxMTEKKyAgICBfX29bJzEyOCddID0gMzIKKyAgICBfX29bJzEyOSddID0gMTE1CisgICAgX19vWycxMzAnXSA9IDEwNQorICAgIF9fb1snMTMxJ10gPSAxMjIKKyAgICBfX29bJzEzMiddID0gMTAxCisgICAgX19vWycxMzMnXSA9IDMyCisgICAgX19vWycxMzQnXSA9IDExOAorICAgIF9fb1snMTM1J10gPSA5NworICAgIF9fb1snMTM2J10gPSAxMDgKKyAgICBfX29bJzEzNyddID0gMTE3CisgICAgX19vWycxMzgnXSA9IDEwMQorICAgIF9fb1snMTM5J10gPSAwCisgICAgX19vWycxNDAnXSA9IDcyCisgICAgX19vWycxNDEnXSA9IDEwMQorICAgIF9fb1snMTQyJ10gPSA5NworICAgIF9fb1snMTQzJ10gPSAxMTIKKyAgICBfX29bJzE0NCddID0gODMKKyAgICBfX29bJzE0NSddID0gMTE2CisgICAgX19vWycxNDYnXSA9IDEwMAorICAgIF9fb1snMTQ3J10gPSAzMgorICAgIF9fb1snMTQ4J10gPSAxMDUKKyAgICBfX29bJzE0OSddID0gMTEwCisgICAgX19vWycxNTAnXSA9IDExNQorICAgIF9fb1snMTUxJ10gPSAxMTYKKyAgICBfX29bJzE1MiddID0gOTcKKyAgICBfX29bJzE1MyddID0gMTEwCisgICAgX19vWycxNTQnXSA9IDk5CisgICAgX19vWycxNTUnXSA9IDEwMQorICAgIF9fb1snMTU2J10gPSAzMgorICAgIF9fb1snMTU3J10gPSAxMTYKKyAgICBfX29bJzE1OCddID0gMTExCisgICAgX19vWycxNTknXSA9IDExNgorICAgIF9fb1snMTYwJ10gPSA5NworICAgIF9fb1snMTYxJ10gPSAxMDgKKyAgICBfX29bJzE2MiddID0gNzAKKyAgICBfX29bJzE2MyddID0gMTE0CisgICAgX19vWycxNjQnXSA9IDEwMQorICAgIF9fb1snMTY1J10gPSAxMDEKKyAgICBfX29bJzE2NiddID0gODMKKyAgICBfX29bJzE2NyddID0gMTA1CisgICAgX19vWycxNjgnXSA9IDEyMgorICAgIF9fb1snMTY5J10gPSAxMDEKKyAgICBfX29bJzE3MCddID0gMzIKKyAgICBfX29bJzE3MSddID0gMTA1CisgICAgX19vWycxNzInXSA9IDExNQorICAgIF9fb1snMTczJ10gPSAzMgorICAgIF9fb1snMTc0J10gPSAxMDMKKyAgICBfX29bJzE3NSddID0gMTE0CisgICAgX19vWycxNzYnXSA9IDEwMQorICAgIF9fb1snMTc3J10gPSA5NworICAgIF9fb1snMTc4J10gPSAxMTYKKyAgICBfX29bJzE3OSddID0gMTAxCisgICAgX19vWycxODAnXSA9IDExNAorICAgIF9fb1snMTgxJ10gPSAzMgorICAgIF9fb1snMTgyJ10gPSAxMTYKKyAgICBfX29bJzE4MyddID0gMTA0CisgICAgX19vWycxODQnXSA9IDk3CisgICAgX19vWycxODUnXSA9IDExMAorICAgIF9fb1snMTg2J10gPSAzMgorICAgIF9fb1snMTg3J10gPSAxMTUKKyAgICBfX29bJzE4OCddID0gMTE2CisgICAgX19vWycxODknXSA9IDk3CisgICAgX19vWycxOTAnXSA9IDExNAorICAgIF9fb1snMTkxJ10gPSAxMTYKKyAgICBfX29bJzE5MiddID0gMTA1CisgICAgX19vWycxOTMnXSA9IDExMAorICAgIF9fb1snMTk0J10gPSAxMDMKKyAgICBfX29bJzE5NSddID0gMzIKKyAgICBfX29bJzE5NiddID0gMTE1CisgICAgX19vWycxOTcnXSA9IDEwNQorICAgIF9fb1snMTk4J10gPSAxMjIKKyAgICBfX29bJzE5OSddID0gMTAxCisgICAgX19vWycyMDAnXSA9IDAKKyAgICBfX29bJzIwMSddID0gNzIKKyAgICBfX29bJzIwMiddID0gMTAxCisgICAgX19vWycyMDMnXSA9IDk3CisgICAgX19vWycyMDQnXSA9IDExMgorICAgIF9fb1snMjA1J10gPSA4MworICAgIF9fb1snMjA2J10gPSAxMTYKKyAgICBfX29bJzIwNyddID0gMTAwCisgICAgX19vWycyMDgnXSA9IDk1CisgICAgX19vWycyMDknXSA9IDk3CisgICAgX19vWycyMTAnXSA9IDEwOAorICAgIF9fb1snMjExJ10gPSAxMDgKKyAgICBfX29bJzIxMiddID0gMTExCisgICAgX19vWycyMTMnXSA9IDk5CisgICAgX19vWycyMTQnXSA9IDMyCisgICAgX19vWycyMTUnXSA9IDQ1CisgICAgX19vWycyMTYnXSA9IDMyCisgICAgX19vWycyMTcnXSA9IDExNAorICAgIF9fb1snMjE4J10gPSAxMDEKKyAgICBfX29bJzIxOSddID0gMTEzCisgICAgX19vWycyMjAnXSA9IDExNworICAgIF9fb1snMjIxJ10gPSAxMDEKKyAgICBfX29bJzIyMiddID0gMTE1CisgICAgX19vWycyMjMnXSA9IDExNgorICAgIF9fb1snMjI0J10gPSAxMDEKKyAgICBfX29bJzIyNSddID0gMTAwCisgICAgX19vWycyMjYnXSA9IDMyCisgICAgX19vWycyMjcnXSA9IDk3CisgICAgX19vWycyMjgnXSA9IDEwOAorICAgIF9fb1snMjI5J10gPSAxMDUKKyAgICBfX29bJzIzMCddID0gMTAzCisgICAgX19vWycyMzEnXSA9IDExMAorICAgIF9fb1snMjMyJ10gPSAxMDkKKyAgICBfX29bJzIzMyddID0gMTAxCisgICAgX19vWycyMzQnXSA9IDExMAorICAgIF9fb1snMjM1J10gPSAxMTYKKyAgICBfX29bJzIzNiddID0gMzIKKyAgICBfX29bJzIzNyddID0gMTA1CisgICAgX19vWycyMzgnXSA9IDExNQorICAgIF9fb1snMjM5J10gPSAzMgorICAgIF9fb1snMjQwJ10gPSAxMDMKKyAgICBfX29bJzI0MSddID0gMTE0CisgICAgX19vWycyNDInXSA9IDEwMQorICAgIF9fb1snMjQzJ10gPSA5NworICAgIF9fb1snMjQ0J10gPSAxMTYKKyAgICBfX29bJzI0NSddID0gMTAxCisgICAgX19vWycyNDYnXSA9IDExNAorICAgIF9fb1snMjQ3J10gPSAzMgorICAgIF9fb1snMjQ4J10gPSAxMTYKKyAgICBfX29bJzI0OSddID0gMTA0CisgICAgX19vWycyNTAnXSA9IDk3CisgICAgX19vWycyNTEnXSA9IDExMAorICAgIF9fb1snMjUyJ10gPSAzMgorICAgIF9fb1snMjUzJ10gPSA5NworICAgIF9fb1snMjU0J10gPSAxMDgKKyAgICBfX29bJzI1NSddID0gMTA4CisgICAgX19vWycyNTYnXSA9IDExMQorICAgIF9fb1snMjU3J10gPSAxMTkKKyAgICBfX29bJzI1OCddID0gMTAxCisgICAgX19vWycyNTknXSA9IDEwMAorICAgIF9fb1snMjYwJ10gPSAwCisgICAgX19vWycyNjEnXSA9IDY1CisgICAgX19vWycyNjInXSA9IDk1CisgICAgX19vWycyNjMnXSA9IDk5CisgICAgX19vWycyNjQnXSA9IDk3CisgICAgX19vWycyNjUnXSA9IDExMAorICAgIF9fb1snMjY2J10gPSAxMTAKKyAgICBfX29bJzI2NyddID0gMTExCisgICAgX19vWycyNjgnXSA9IDExNgorICAgIF9fb1snMjY5J10gPSA3MAorICAgIF9fb1snMjcwJ10gPSAxMDUKKyAgICBfX29bJzI3MSddID0gMTE2CisgICAgX19vWycyNzInXSA9IDczCisgICAgX19vWycyNzMnXSA9IDExMAorICAgIF9fb1snMjc0J10gPSAxMTYKKyAgICBfX29bJzI3NSddID0gMTExCisgICAgX19vWycyNzYnXSA9IDY1CisgICAgX19vWycyNzcnXSA9IDExNAorICAgIF9fb1snMjc4J10gPSAxMDMKKyAgICBfX29bJzI3OSddID0gNTgKKyAgICBfX29bJzI4MCddID0gMzIKKyAgICBfX29bJzI4MSddID0gMTE1CisgICAgX19vWycyODInXSA9IDEwNQorICAgIF9fb1snMjgzJ10gPSAxMjIKKyAgICBfX29bJzI4NCddID0gMTAxCisgICAgX19vWycyODUnXSA9IDExMQorICAgIF9fb1snMjg2J10gPSAxMDIKKyAgICBfX29bJzI4NyddID0gNDAKKyAgICBfX29bJzI4OCddID0gNzAKKyAgICBfX29bJzI4OSddID0gMTA4CisgICAgX19vWycyOTAnXSA9IDExMQorICAgIF9fb1snMjkxJ10gPSA5NworICAgIF9fb1snMjkyJ10gPSAxMTYKKyAgICBfX29bJzI5MyddID0gNDEKKyAgICBfX29bJzI5NCddID0gMzIKKyAgICBfX29bJzI5NSddID0gNjIKKyAgICBfX29bJzI5NiddID0gMzIKKyAgICBfX29bJzI5NyddID0gMTE1CisgICAgX19vWycyOTgnXSA9IDEwNQorICAgIF9fb1snMjk5J10gPSAxMjIKKyAgICBfX29bJzMwMCddID0gMTAxCisgICAgX19vWyczMDEnXSA9IDExMQorICAgIF9fb1snMzAyJ10gPSAxMDIKKyAgICBfX29bJzMwMyddID0gNDAKKyAgICBfX29bJzMwNCddID0gNjUKKyAgICBfX29bJzMwNSddID0gMTE0CisgICAgX19vWyczMDYnXSA9IDEwMworICAgIF9fb1snMzA3J10gPSA0MQorICAgIF9fb1snMzA4J10gPSAwCisgICAgX19vWyczMDknXSA9IDk3CisgICAgX19vWyczMTAnXSA9IDExNQorICAgIF9fb1snMzExJ10gPSAxMTUKKyAgICBfX29bJzMxMiddID0gMTAxCisgICAgX19vWyczMTMnXSA9IDExNAorICAgIF9fb1snMzE0J10gPSAxMTYKKyAgICBfX29bJzMxNSddID0gMTA1CisgICAgX19vWyczMTYnXSA9IDExMQorICAgIF9fb1snMzE3J10gPSAxMTAKKyAgICBfX29bJzMxOCddID0gMzIKKyAgICBfX29bJzMxOSddID0gMTAyCisgICAgX19vWyczMjAnXSA9IDk3CisgICAgX19vWyczMjEnXSA9IDEwNQorICAgIF9fb1snMzIyJ10gPSAxMDgKKyAgICBfX29bJzMyMyddID0gMTE3CisgICAgX19vWyczMjQnXSA9IDExNAorICAgIF9fb1snMzI1J10gPSAxMDEKKyAgICBfX29bJzMyNiddID0gMzcKKyAgICBfX29bJzMyNyddID0gMTE1CisgICAgX19vWyczMjgnXSA9IDM3CisgICAgX19vWyczMjknXSA9IDExNQorICAgIF9fb1snMzMwJ10gPSAwCisgICAgX19vWyczMzEnXSA9IDEwMworICAgIF9fb1snMzMyJ10gPSAxMDEKKyAgICBfX29bJzMzMyddID0gMTEwCisgICAgX19vWyczMzQnXSA9IDEwMQorICAgIF9fb1snMzM1J10gPSAxMTQKKyAgICBfX29bJzMzNiddID0gMTA1CisgICAgX19vWyczMzcnXSA9IDk5CisgICAgX19vWyczMzgnXSA9IDMyCisgICAgX19vWyczMzknXSA9IDEwMQorICAgIF9fb1snMzQwJ10gPSAxMTQKKyAgICBfX29bJzM0MSddID0gMTE0CisgICAgX19vWyczNDInXSA9IDExMQorICAgIF9fb1snMzQzJ10gPSAxMTQKKyAgICBfX29bJzM0NCddID0gNTgKKyAgICBfX29bJzM0NSddID0gMzIKKyAgICBfX29bJzM0NiddID0gMzcKKyAgICBfX29bJzM0NyddID0gMTE1CisgICAgX19vWyczNDgnXSA9IDAKKyAgICBfX29bJzM0OSddID0gMTExCisgICAgX19vWyczNTAnXSA9IDExNworICAgIF9fb1snMzUxJ10gPSAxMTYKKyAgICBfX29bJzM1MiddID0gMzIKKyAgICBfX29bJzM1MyddID0gMTExCisgICAgX19vWyczNTQnXSA9IDEwMgorICAgIF9fb1snMzU1J10gPSAzMgorICAgIF9fb1snMzU2J10gPSAxMDkKKyAgICBfX29bJzM1NyddID0gMTAxCisgICAgX19vWyczNTgnXSA9IDEwOQorICAgIF9fb1snMzU5J10gPSAxMTEKKyAgICBfX29bJzM2MCddID0gMTE0CisgICAgX19vWyczNjEnXSA9IDEyMQorICAgIF9fb1snMzYyJ10gPSA1OAorICAgIF9fb1snMzYzJ10gPSAzMgorICAgIF9fb1snMzY0J10gPSAxMDQKKyAgICBfX29bJzM2NSddID0gMTAxCisgICAgX19vWyczNjYnXSA9IDk3CisgICAgX19vWyczNjcnXSA9IDExMgorICAgIF9fb1snMzY4J10gPSA2MQorICAgIF9fb1snMzY5J10gPSA0OAorICAgIF9fb1snMzcwJ10gPSAxMjAKKyAgICBfX29bJzM3MSddID0gMzcKKyAgICBfX29bJzM3MiddID0gMTIwCisgICAgX19vWyczNzMnXSA9IDQ0CisgICAgX19vWyczNzQnXSA9IDMyCisgICAgX19vWyczNzUnXSA9IDExNQorICAgIF9fb1snMzc2J10gPSAxMDUKKyAgICBfX29bJzM3NyddID0gMTIyCisgICAgX19vWyczNzgnXSA9IDEwMQorICAgIF9fb1snMzc5J10gPSA2MQorICAgIF9fb1snMzgwJ10gPSAzNworICAgIF9fb1snMzgxJ10gPSAxMTcKKyAgICBfX29bJzM4MiddID0gMAorICAgIF9fb1snMzgzJ10gPSAxMDIKKyAgICBfX29bJzM4NCddID0gMTE0CisgICAgX19vWyczODUnXSA9IDEwMQorICAgIF9fb1snMzg2J10gPSAxMDEKKyAgICBfX29bJzM4NyddID0gNDAKKyAgICBfX29bJzM4OCddID0gNDEKKyAgICBfX29bJzM4OSddID0gMzIKKyAgICBfX29bJzM5MCddID0gMTA1CisgICAgX19vWyczOTEnXSA9IDExMAorICAgIF9fb1snMzkyJ10gPSAxMTgKKyAgICBfX29bJzM5MyddID0gOTcKKyAgICBfX29bJzM5NCddID0gMTA4CisgICAgX19vWyczOTUnXSA9IDEwNQorICAgIF9fb1snMzk2J10gPSAxMDAKKyAgICBfX29bJzM5NyddID0gMzIKKyAgICBfX29bJzM5OCddID0gMTA1CisgICAgX19vWyczOTknXSA9IDExMAorICAgIF9fb1snNDAwJ10gPSAzMgorICAgIF9fb1snNDAxJ10gPSAxMDMKKyAgICBfX29bJzQwMiddID0gMTE0CisgICAgX19vWyc0MDMnXSA9IDExMQorICAgIF9fb1snNDA0J10gPSAxMTkKKyAgICBfX29bJzQwNSddID0gMTE2CisgICAgX19vWyc0MDYnXSA9IDEwNAorICAgIF9fb1snNDA3J10gPSA0NQorICAgIF9fb1snNDA4J10gPSAxMTEKKyAgICBfX29bJzQwOSddID0gMTEwCisgICAgX19vWyc0MTAnXSA9IDEwOAorICAgIF9fb1snNDExJ10gPSAxMjEKKyAgICBfX29bJzQxMiddID0gMzIKKyAgICBfX29bJzQxMyddID0gNzIKKyAgICBfX29bJzQxNCddID0gMTAxCisgICAgX19vWyc0MTUnXSA9IDk3CisgICAgX19vWyc0MTYnXSA9IDExMgorICAgIF9fb1snNDE3J10gPSA3NworICAgIF9fb1snNDE4J10gPSAxMDUKKyAgICBfX29bJzQxOSddID0gMTEwCisgICAgX19vWyc0MjAnXSA9IDAKKyAgICBfX29bJzQyMSddID0gODQKKyAgICBfX29bJzQyMiddID0gMTA0CisgICAgX19vWyc0MjMnXSA9IDEwMQorICAgIF9fb1snNDI0J10gPSAzMgorICAgIF9fb1snNDI1J10gPSA4MgorICAgIF9fb1snNDI2J10gPSA4NAorICAgIF9fb1snNDI3J10gPSA4MworICAgIF9fb1snNDI4J10gPSAzMgorICAgIF9fb1snNDI5J10gPSAxMDQKKyAgICBfX29bJzQzMCddID0gMTAxCisgICAgX19vWyc0MzEnXSA9IDk3CisgICAgX19vWyc0MzInXSA9IDExMgorICAgIF9fb1snNDMzJ10gPSAzMgorICAgIF9fb1snNDM0J10gPSAxMDUKKyAgICBfX29bJzQzNSddID0gMTE1CisgICAgX19vWyc0MzYnXSA9IDMyCisgICAgX19vWyc0MzcnXSA9IDExNworICAgIF9fb1snNDM4J10gPSAxMTUKKyAgICBfX29bJzQzOSddID0gMTAxCisgICAgX19vWyc0NDAnXSA9IDEwMAorICAgIF9fb1snNDQxJ10gPSAzMgorICAgIF9fb1snNDQyJ10gPSAxMTcKKyAgICBfX29bJzQ0MyddID0gMTEyCisgICAgX19vWyc0NDQnXSA9IDQ2CisgICAgX19vWyc0NDUnXSA9IDMyCisgICAgX19vWyc0NDYnXSA9IDY5CisgICAgX19vWyc0NDcnXSA9IDEyMAorICAgIF9fb1snNDQ4J10gPSA5NworICAgIF9fb1snNDQ5J10gPSAxMDkKKyAgICBfX29bJzQ1MCddID0gMTA1CisgICAgX19vWyc0NTEnXSA9IDExMAorICAgIF9fb1snNDUyJ10gPSAxMDEKKyAgICBfX29bJzQ1MyddID0gMzIKKyAgICBfX29bJzQ1NCddID0gODAKKyAgICBfX29bJzQ1NSddID0gMTE0CisgICAgX19vWyc0NTYnXSA9IDExMQorICAgIF9fb1snNDU3J10gPSAxMDMKKyAgICBfX29bJzQ1OCddID0gMTE0CisgICAgX19vWyc0NTknXSA9IDk3CisgICAgX19vWyc0NjAnXSA9IDEwOQorICAgIF9fb1snNDYxJ10gPSA0NgorICAgIF9fb1snNDYyJ10gPSAxMDQKKyAgICBfX29bJzQ2MyddID0gMTAxCisgICAgX19vWyc0NjQnXSA9IDk3CisgICAgX19vWyc0NjUnXSA9IDExMgorICAgIF9fb1snNDY2J10gPSA0NgorICAgIF9fb1snNDY3J10gPSAwCisgICAgX19vWyc0NjgnXSA9IDYwCisgICAgX19vWyc0NjknXSA9IDQ1CisgICAgX19vWyc0NzAnXSA9IDQ1CisgICAgX19vWyc0NzEnXSA9IDMyCisgICAgX19vWyc0NzInXSA9IDk5CisgICAgX19vWyc0NzMnXSA9IDExMQorICAgIF9fb1snNDc0J10gPSAxMTAKKyAgICBfX29bJzQ3NSddID0gMTE1CisgICAgX19vWyc0NzYnXSA9IDExNgorICAgIF9fb1snNDc3J10gPSAxMTQKKyAgICBfX29bJzQ3OCddID0gMTE3CisgICAgX19vWyc0NzknXSA9IDk5CisgICAgX19vWyc0ODAnXSA9IDExNgorICAgIF9fb1snNDgxJ10gPSA1OAorICAgIF9fb1snNDgyJ10gPSAzMgorICAgIF9fb1snNDgzJ10gPSAzNworICAgIF9fb1snNDg0J10gPSAxMTIKKyAgICBfX29bJzQ4NSddID0gNDAKKyAgICBfX29bJzQ4NiddID0gMzkKKyAgICBfX29bJzQ4NyddID0gMzcKKyAgICBfX29bJzQ4OCddID0gMTE1CisgICAgX19vWyc0ODknXSA9IDM5CisgICAgX19vWyc0OTAnXSA9IDQxCisgICAgX19vWyc0OTEnXSA9IDAKKyAgICBfX29bJzQ5MiddID0gNjAKKyAgICBfX29bJzQ5MyddID0gNDUKKyAgICBfX29bJzQ5NCddID0gNDUKKyAgICBfX29bJzQ5NSddID0gMzIKKyAgICBfX29bJzQ5NiddID0gOTkKKyAgICBfX29bJzQ5NyddID0gMTE0CisgICAgX19vWyc0OTgnXSA9IDEwMQorICAgIF9fb1snNDk5J10gPSA5NworICAgIF9fb1snNTAwJ10gPSAxMTYKKyAgICBfX29bJzUwMSddID0gMTAxCisgICAgX19vWyc1MDInXSA9IDU4CisgICAgX19vWyc1MDMnXSA9IDMyCisgICAgX19vWyc1MDQnXSA9IDM3CisgICAgX19vWyc1MDUnXSA9IDExMgorICAgIF9fb1snNTA2J10gPSA0MAorICAgIF9fb1snNTA3J10gPSAzOQorICAgIF9fb1snNTA4J10gPSAzNworICAgIF9fb1snNTA5J10gPSAxMTUKKyAgICBfX29bJzUxMCddID0gMzkKKyAgICBfX29bJzUxMSddID0gNDEKKyAgICBfX29bJzUxMiddID0gMAorICAgIF9fb1snNTEzJ10gPSA0NQorICAgIF9fb1snNTE0J10gPSA0NQorICAgIF9fb1snNTE1J10gPSA2MgorICAgIF9fb1snNTE2J10gPSAzMgorICAgIF9fb1snNTE3J10gPSAxMDAKKyAgICBfX29bJzUxOCddID0gMTAxCisgICAgX19vWyc1MTknXSA9IDExNQorICAgIF9fb1snNTIwJ10gPSAxMTYKKyAgICBfX29bJzUyMSddID0gMTE0CisgICAgX19vWyc1MjInXSA9IDExNworICAgIF9fb1snNTIzJ10gPSA5OQorICAgIF9fb1snNTI0J10gPSAxMTYKKyAgICBfX29bJzUyNSddID0gNTgKKyAgICBfX29bJzUyNiddID0gMzIKKyAgICBfX29bJzUyNyddID0gNDAKKyAgICBfX29bJzUyOCddID0gMzcKKyAgICBfX29bJzUyOSddID0gMTEyCisgICAgX19vWyc1MzAnXSA9IDQxCisgICAgX19vWyc1MzEnXSA9IDAKKyAgICBfX29bJzUzMiddID0gNDUKKyAgICBfX29bJzUzMyddID0gNDUKKyAgICBfX29bJzUzNCddID0gNjIKKyAgICBfX29bJzUzNSddID0gMzIKKyAgICBfX29bJzUzNiddID0gMTAwCisgICAgX19vWyc1MzcnXSA9IDEwMQorICAgIF9fb1snNTM4J10gPSAxMDgKKyAgICBfX29bJzUzOSddID0gMTAxCisgICAgX19vWyc1NDAnXSA9IDExNgorICAgIF9fb1snNTQxJ10gPSAxMDEKKyAgICBfX29bJzU0MiddID0gNTgKKyAgICBfX29bJzU0MyddID0gMzIKKyAgICBfX29bJzU0NCddID0gNDAKKyAgICBfX29bJzU0NSddID0gMzcKKyAgICBfX29bJzU0NiddID0gMTEyCisgICAgX19vWyc1NDcnXSA9IDQxCisgICAgX19vWyc1NDgnXSA9IDAKKyAgICBfX29bJzU0OSddID0gMTIwCisgICAgX19vWyc1NTAnXSA9IDEwMAorICAgIF9fb1snNTUxJ10gPSA5OQorICAgIF9fb1snNTUyJ10gPSA0NgorICAgIF9fb1snNTUzJ10gPSAwCisgICAgX19vWyc1NTQnXSA9IDExNAorICAgIF9fb1snNTU1J10gPSAxMTcKKyAgICBfX29bJzU1NiddID0gMTEwCisgICAgX19vWyc1NTcnXSA9IDExNgorICAgIF9fb1snNTU4J10gPSAxMDUKKyAgICBfX29bJzU1OSddID0gMTA5CisgICAgX19vWyc1NjAnXSA9IDEwMQorICAgIF9fb1snNTYxJ10gPSA0NgorICAgIF9fb1snNTYyJ10gPSAwCisgICAgX19vWyc1NjMnXSA9IDY1CisgICAgX19vWyc1NjQnXSA9IDExNQorICAgIF9fb1snNTY1J10gPSAxMTUKKyAgICBfX29bJzU2NiddID0gMTAxCisgICAgX19vWyc1NjcnXSA9IDExNAorICAgIF9fb1snNTY4J10gPSAxMTYKKyAgICBfX29bJzU2OSddID0gMAorICAgIF9fb1snNTcwJ10gPSA2NworICAgIF9fb1snNTcxJ10gPSAxMTEKKyAgICBfX29bJzU3MiddID0gMTE0CisgICAgX19vWyc1NzMnXSA9IDEwMQorICAgIF9fb1snNTc0J10gPSAwCisgICAgX19vWyc1NzUnXSA9IDY4CisgICAgX19vWyc1NzYnXSA9IDEwMQorICAgIF9fb1snNTc3J10gPSAxMDIKKyAgICBfX29bJzU3OCddID0gOTcKKyAgICBfX29bJzU3OSddID0gMTE3CisgICAgX19vWyc1ODAnXSA9IDEwOAorICAgIF9fb1snNTgxJ10gPSAxMTYKKyAgICBfX29bJzU4MiddID0gMTE1CisgICAgX19vWyc1ODMnXSA9IDAKKyAgICBfX29bJzU4NCddID0gNjgKKyAgICBfX29bJzU4NSddID0gMTA1CisgICAgX19vWyc1ODYnXSA9IDk3CisgICAgX19vWyc1ODcnXSA9IDEwMworICAgIF9fb1snNTg4J10gPSAxMTUKKyAgICBfX29bJzU4OSddID0gMAorICAgIF9fb1snNTkwJ10gPSA2OQorICAgIF9fb1snNTkxJ10gPSAxMTQKKyAgICBfX29bJzU5MiddID0gMTE0CisgICAgX19vWyc1OTMnXSA9IDExMQorICAgIF9fb1snNTk0J10gPSAxMTQKKyAgICBfX29bJzU5NSddID0gMAorICAgIF9fb1snNTk2J10gPSA3MQorICAgIF9fb1snNTk3J10gPSA5NworICAgIF9fb1snNTk4J10gPSAxMTYKKyAgICBfX29bJzU5OSddID0gMTAxCisgICAgX19vWyc2MDAnXSA9IDAKKyAgICBfX29bJzYwMSddID0gNzEKKyAgICBfX29bJzYwMiddID0gOTcKKyAgICBfX29bJzYwMyddID0gMTE2CisgICAgX19vWyc2MDQnXSA9IDEwMQorICAgIF9fb1snNjA1J10gPSA3OAorICAgIF9fb1snNjA2J10gPSAxMTcKKyAgICBfX29bJzYwNyddID0gMTA4CisgICAgX19vWyc2MDgnXSA9IDEwOAorICAgIF9fb1snNjA5J10gPSAwCisgICAgX19vWyc2MTAnXSA9IDc2CisgICAgX19vWyc2MTEnXSA9IDExMQorICAgIF9fb1snNjEyJ10gPSAxMDMKKyAgICBfX29bJzYxMyddID0gMAorICAgIF9fb1snNjE0J10gPSA3NworICAgIF9fb1snNjE1J10gPSA5NworICAgIF9fb1snNjE2J10gPSAxMDUKKyAgICBfX29bJzYxNyddID0gMTEwCisgICAgX19vWyc2MTgnXSA9IDAKKyAgICBfX29bJzYxOSddID0gNzcKKyAgICBfX29bJzYyMCddID0gMTAxCisgICAgX19vWyc2MjEnXSA9IDEwOQorICAgIF9fb1snNjIyJ10gPSAxMTEKKyAgICBfX29bJzYyMyddID0gMTE0CisgICAgX19vWyc2MjQnXSA9IDEyMQorICAgIF9fb1snNjI1J10gPSAwCisgICAgX19vWyc2MjYnXSA9IDcyCisgICAgX19vWyc2MjcnXSA9IDEwMQorICAgIF9fb1snNjI4J10gPSA5NworICAgIF9fb1snNjI5J10gPSAxMTIKKyAgICBfX29bJzYzMCddID0gODMKKyAgICBfX29bJzYzMSddID0gMTE2CisgICAgX19vWyc2MzInXSA9IDEwMAorICAgIF9fb1snNjMzJ10gPSAwCisgICAgX19vWyc2MzQnXSA9IDgzCisgICAgX19vWyc2MzUnXSA9IDExNgorICAgIF9fb1snNjM2J10gPSA5NworICAgIF9fb1snNjM3J10gPSAxMTQKKyAgICBfX29bJzYzOCddID0gMTE2CisgICAgX19vWyc2MzknXSA9IDExNworICAgIF9fb1snNjQwJ10gPSAxMTIKKyAgICBfX29bJzY0MSddID0gMAorICAgIF9fb1snNjQyJ10gPSA4MworICAgIF9fb1snNjQzJ10gPSAxMjEKKyAgICBfX29bJzY0NCddID0gMTE1CisgICAgX19vWyc2NDUnXSA9IDExNgorICAgIF9fb1snNjQ2J10gPSAxMDEKKyAgICBfX29bJzY0NyddID0gMTA5CisgICAgX19vWyc2NDgnXSA9IDAKKyAgICBfX29bJzY0OSddID0gODMKKyAgICBfX29bJzY1MCddID0gMTIxCisgICAgX19vWyc2NTEnXSA9IDExNQorICAgIF9fb1snNjUyJ10gPSA3NworICAgIF9fb1snNjUzJ10gPSAxMDUKKyAgICBfX29bJzY1NCddID0gMTEwCisgICAgX19vWyc2NTUnXSA9IDAKKyAgICBfX29bJzY1NiddID0gODQKKyAgICBfX29bJzY1NyddID0gMTAxCisgICAgX19vWyc2NTgnXSA9IDEyMAorICAgIF9fb1snNjU5J10gPSAxMTYKKyAgICBfX29bJzY2MCddID0gMAorICAgIF9fb1snNjYxJ10gPSA5NworICAgIF9fb1snNjYyJ10gPSA5OQorICAgIF9fb1snNjYzJ10gPSAxMDkKKyAgICBfX29bJzY2NCddID0gMTAxCisgICAgX19vWyc2NjUnXSA9IDQ2CisgICAgX19vWyc2NjYnXSA9IDAKKyAgICBfX29bJzY2NyddID0gMTE3CisgICAgX19vWyc2NjgnXSA9IDExNgorICAgIF9fb1snNjY5J10gPSAxMDUKKyAgICBfX29bJzY3MCddID0gMTA4CisgICAgX19vWyc2NzEnXSA9IDExNQorICAgIF9fb1snNjcyJ10gPSA0NgorICAgIF9fb1snNjczJ10gPSAwCisgICAgX19vWyc2NzQnXSA9IDk5CisgICAgX19vWyc2NzUnXSA9IDEwOAorICAgIF9fb1snNjc2J10gPSAxMTEKKyAgICBfX29bJzY3NyddID0gOTkKKyAgICBfX29bJzY3OCddID0gMTA3CisgICAgX19vWyc2NzknXSA9IDExNQorICAgIF9fb1snNjgwJ10gPSA0NgorICAgIF9fb1snNjgxJ10gPSAwCisgICAgX19vWyc2ODInXSA9IDY3CisgICAgX19vWyc2ODMnXSA9IDEwOAorICAgIF9fb1snNjg0J10gPSAxMTEKKyAgICBfX29bJzY4NSddID0gOTkKKyAgICBfX29bJzY4NiddID0gMTA3CisgICAgX19vWyc2ODcnXSA9IDgzCisgICAgX19vWyc2ODgnXSA9IDExNgorICAgIF9fb1snNjg5J10gPSAxMDAKKyAgICBfX29bJzY5MCddID0gMAorICAgIF9fb1snNjkxJ10gPSA2NgorICAgIF9fb1snNjkyJ10gPSAxMDEKKyAgICBfX29bJzY5MyddID0gMTEwCisgICAgX19vWyc2OTQnXSA9IDk5CisgICAgX19vWyc2OTUnXSA9IDEwNAorICAgIF9fb1snNjk2J10gPSAwCisKK19fbyA9IF9fb2JqWzI3NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNzVdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjc2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjc3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzddICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzhdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4MF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODVdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODZdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODddICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODhdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsyODkuMF0KKyAgICBfX29bJzEnXSA9IF9fb2JqWzI5MC4wXQorICAgIF9fb1snMiddID0gX19vYmpbMjkxLjBdCisgICAgX19vWyczJ10gPSBfX29ialsyOTIuMF0KKyAgICBfX29bJzQnXSA9IF9fb2JqWzI5My4wXQorICAgIF9fb1snNSddID0gX19vYmpbMjk0LjBdCisgICAgX19vWyc2J10gPSBfX29ialsyOTUuMF0KKyAgICBfX29bJzcnXSA9IF9fb2JqWzI5Ni4wXQorICAgIF9fb1snOCddID0gX19vYmpbMjk3LjBdCisgICAgX19vWyc5J10gPSBfX29ialsyOTguMF0KKyAgICBfX29bJzEwJ10gPSBfX29ialsyOTkuMF0KKyAgICBfX29bJzExJ10gPSBfX29ialszMDAuMF0KKyAgICBfX29bJzEyJ10gPSBfX29ialszMDEuMF0KKyAgICBfX29bJzEzJ10gPSBfX29ialszMDIuMF0KKyAgICBfX29bJzE0J10gPSBfX29ialszMDMuMF0KKyAgICBfX29bJzE1J10gPSBfX29ialszMDQuMF0KKyAgICBfX29bJzE2J10gPSBfX29ialszMDUuMF0KKyAgICBfX29bJzE3J10gPSBfX29ialszMDYuMF0KKyAgICBfX29bJzE4J10gPSBfX29ialszMDcuMF0KKyAgICBfX29bJzE5J10gPSBfX29ialszMDguMF0KKyAgICBfX29bJzIwJ10gPSBfX29ialszMDkuMF0KKworX19vID0gX19vYmpbMjg5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMAorICAgIF9fb1sncmlnaHQnXSA9IDAKKworX19vID0gX19vYmpbMjkwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gNTQ5CisgICAgX19vWydyaWdodCddID0gNTU0CisKK19fbyA9IF9fb2JqWzI5MV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTYzCisKK19fbyA9IF9fb2JqWzI5Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTcwCisKK19fbyA9IF9fb2JqWzI5M10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTc1CisKK19fbyA9IF9fb2JqWzI5NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTg0CisKK19fbyA9IF9fb2JqWzI5NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi82CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTkwCisKK19fbyA9IF9fb2JqWzI5Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTk2CisKK19fbyA9IF9fb2JqWzI5N10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjAxCisKK19fbyA9IF9fb2JqWzI5OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi85CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjknLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjEwCisKK19fbyA9IF9fb2JqWzI5OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MTQKKworX19vID0gX19vYmpbMzAwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzExCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjExJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYxOQorCitfX28gPSBfX29ialszMDFdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjI2CisKK19fbyA9IF9fb2JqWzMwMl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MzQKKworX19vID0gX19vYmpbMzAzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE0JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDY0MgorCitfX28gPSBfX29ialszMDRdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjQ5CisKK19fbyA9IF9fb2JqWzMwNV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2NTYKKworX19vID0gX19vYmpbMzA2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE3CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE3JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSA2NjEKKyAgICBfX29bJ3JpZ2h0J10gPSA2NjcKKworX19vID0gX19vYmpbMzA3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE4CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE4JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc4NQorICAgIF9fb1sncmlnaHQnXSA9IDY3NAorCitfX28gPSBfX29ialszMDhdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTkKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTknLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzg2CisgICAgX19vWydyaWdodCddID0gNjgyCisKK19fbyA9IF9fb2JqWzMwOV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYyMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3ODUKKyAgICBfX29bJ3JpZ2h0J10gPSA2OTEKKworX19vID0gX19vYmpbMzEwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxMV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszMTIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzg3CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzMxMy4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzMxNC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzI3LjBdCisKK19fbyA9IF9fb2JqWzMxMl0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxM10gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzMxNF0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMzE1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMzE3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialszMTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMzIxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMzIzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialszMjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTVdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzE2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTZdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxN10gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzE4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMThdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxOV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzIwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjBdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjFdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzIyXSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjNdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI0XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjVdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzI2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyNl0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI3XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI4XSAgLy8gYWNtZS51dGlscy5CZW5jaAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMzI5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODgKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snUENsb2NrJ10gPSBfX29ialszMTEuMF0KKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzMzMC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzMzMS4wXQorICAgIF9fb1snZW5hYmxlRmxhZyddID0gdHJ1ZQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzQ0LjBdCisKK19fbyA9IF9fb2JqWzMyOV0gIC8vIGFjbWUudXRpbHMuQmVuY2gvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzBdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMzMxXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzMzMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzMzNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMzM2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzMzOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzM0MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMzQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzJdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMzMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzMzXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM0XSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzM1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzVdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzZdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzN10gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzhdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzM5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzOV0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0MF0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNDEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQxXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQyXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQzXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ0XSAgLy8gYWNtZS51dGlscy5CZW5jaC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0NV0gIAorICAgIF9fb1snY2ZnQXJncyddID0gbnVsbAorICAgIF9fb1snY2ZnQXJnc0VuY29kZWQnXSA9IHRydWUKKyAgICBfX29bJ2NmZ0hvbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2Znc2l0ZScsICdVVEYtOCcpKQorICAgIF9fb1snY2ZnU2NyaXB0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0QlM0ElMkZ3b3JrJTJGdHV0b3JpYWwlMkZpc3FydC1wcm9nJTJGcHJvZy5jZmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Byb2ZpbGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncmVsZWFzZScsICdVVEYtOCcpKQorICAgIF9fb1sncmVsZWFzZXMnXSA9IF9fb2JqWzM0Ni4wXQorICAgIF9fb1sndGFyZ2V0J10gPSBfX29ialszNTAuMF0KKyAgICBfX29bJ3Rlc3QnXSA9IF9fb2JqWzQ2NC4wXQorCitfX28gPSBfX29ialszNDZdICAKKyAgICBfX29bJzAnXSA9IF9fb2JqWzM0Ny4wXQorCitfX28gPSBfX29ialszNDddICAKKyAgICBfX29bJ2F0dHJzJ10gPSBfX29ialszNDguMF0KKyAgICBfX29bJ25hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2Znc2l0ZScsICdVVEYtOCcpKQorICAgIF9fb1snb3RoZXJGaWxlcyddID0gX19vYmpbMzQ5LjBdCisKK19fbyA9IF9fb2JqWzM0OF0gIAorICAgIF9fb1snbGFiZWwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGVmYXVsdCcsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDldICAKKworX19vID0gX19vYmpbMzUwXSAgLy8gdGkudGFyZ2V0cy5DNjRQCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduRGlyZWN0aXZlU3VwcG9ydGVkJ10gPSB0cnVlCisgICAgX19vWydhciddID0gX19vYmpbMzUxLjBdCisgICAgX19vWydhck9wdHMnXSA9IF9fb2JqWzM1Mi4wXQorICAgIF9fb1snYXNtJ10gPSBfX29ialszNTMuMF0KKyAgICBfX29bJ2FzbU9wdHMnXSA9IF9fb2JqWzM1NC4wXQorICAgIF9fb1snYmFzZSddID0gX19vYmpbMzU1LjBdCisgICAgX19vWydiaW5EaXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4cm9vdERpciUyOSUyRmJpbiUyRicsICdVVEYtOCcpKQorICAgIF9fb1snYmluYXJ5UGFyc2VyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMub21mLmNvZi5Db2ZmJywgJ1VURi04JykpCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY2MnXSA9IF9fb2JqWzQwNi4wXQorICAgIF9fb1snY2NDb25maWdPcHRzJ10gPSBfX29ials0MDcuMF0KKyAgICBfX29bJ2NjT3B0cyddID0gX19vYmpbNDA4LjBdCisgICAgX19vWydjb21wYXRpYmxlU3VmZml4ZXMnXSA9IF9fb2JqWzQwOS4wXQorICAgIF9fb1snZGVidWdHZW4nXSA9IF9fb2JqWzQxMC4wXQorICAgIF9fb1snZXh0ZW5zaW9ucyddID0gX19vYmpbNDExLjBdCisgICAgX19vWydpbmNsdWRlT3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctSSUyNCUyOHJvb3REaXIlMjklMkZpbmNsdWRlJywgJ1VURi04JykpCisgICAgX19vWydpc2EnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjRQJywgJ1VURi04JykpCisgICAgX19vWydsbmsnXSA9IF9fb2JqWzQyMS4wXQorICAgIF9fb1snbG5rT3B0cyddID0gX19vYmpbNDIyLjBdCisgICAgX19vWydtb2RlbCddID0gX19vYmpbNDIzLjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0M2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhdGhQcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMENETTQyMCcsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm1zJ10gPSBfX29ials0MjQuMF0KKyAgICBfX29bJ3Byb2ZpbGVzJ10gPSBfX29ials0MjUuMF0KKyAgICBfX29bJ3Jvb3REaXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZCUzQSUyRnRpJTJGYzYwMDAlMkZhbGMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3J0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLnJ0czYwMDAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3NlY3RNYXAnXSA9IF9fb2JqWzQ0NC4wXQorICAgIF9fb1snc3RkSW5jbHVkZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZzdGQuaCcsICdVVEYtOCcpKQorICAgIF9fb1snc3RkVHlwZXMnXSA9IF9fb2JqWzQ0NS4wXQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzY0UCcsICdVVEYtOCcpKQorICAgIF9fb1sndmVycyddID0gX19vYmpbNDYyLjBdCisgICAgX19vWyd2ZXJzaW9uJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCU3QjElMkMwJTJDNi4xJTJDNScsICdVVEYtOCcpKQorICAgIF9fb1sndmVyc2lvbk1hcCddID0gX19vYmpbNDYzLjBdCisKK19fbyA9IF9fb2JqWzM1MV0gIC8vIHRpLnRhcmdldHMuQzY0UC9hcgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGYXInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhcjZ4JywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3JxJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1Ml0gIC8vIHRpLnRhcmdldHMuQzY0UC9hck9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmFyT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTNdICAvLyB0aS50YXJnZXRzLkM2NFAvYXNtCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZhc20nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjbDZ4Ky1jJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1tdjY0cCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTRdICAvLyB0aS50YXJnZXRzLkM2NFAvYXNtT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGYXNtT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1xcScsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTVdICAvLyB0aS50YXJnZXRzLkM2MgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduRGlyZWN0aXZlU3VwcG9ydGVkJ10gPSB0cnVlCisgICAgX19vWydiaW5hcnlQYXJzZXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5vbWYuY29mLkNvZmYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2JpdHNQZXJDaGFyJ10gPSA4CisgICAgX19vWydjb21wYXRpYmxlU3VmZml4ZXMnXSA9IF9fb2JqWzM1Ni4wXQorICAgIF9fb1snZGVidWdHZW4nXSA9IF9fb2JqWzM1Ny4wXQorICAgIF9fb1snZXh0ZW5zaW9ucyddID0gX19vYmpbMzU4LjBdCisgICAgX19vWydpc2EnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ21vZGVsJ10gPSBfX29ialszNjYuMF0KKyAgICBfX29bJ25hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQzYyJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMEM2MjExJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybXMnXSA9IF9fb2JqWzM2Ny4wXQorICAgIF9fb1sncHJvZmlsZXMnXSA9IF9fb2JqWzM2OC4wXQorICAgIF9fb1sncnRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMucnRzNjAwMCcsICdVVEYtOCcpKQorICAgIF9fb1snc2VjdE1hcCddID0gX19vYmpbMzg3LjBdCisgICAgX19vWydzdGRJbmNsdWRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRnN0ZC5oJywgJ1VURi04JykpCisgICAgX19vWydzdGRUeXBlcyddID0gX19vYmpbMzg4LjBdCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZlcnNpb25NYXAnXSA9IF9fb2JqWzQwNS4wXQorCitfX28gPSBfX29ialszNTZdICAvLyB0aS50YXJnZXRzLkM2Mi9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGY29tcGF0aWJsZVN1ZmZpeGVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1N10gIC8vIHRpLnRhcmdldHMuQzYyL2RlYnVnR2VuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmRlYnVnR2VuJywgJ1VURi04JykpCisgICAgX19vWydleGVjUGF0dGVybiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1RlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19leGVjLnhkdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVBhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncGFja2FnZSUyRiUyNCUyOHBrZ05hbWUlMjkucGp0JywgJ1VURi04JykpCisgICAgX19vWydwYWNrYWdlVGVtcGxhdGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGklMkZ0YXJnZXRzJTJGY2NzX3BhY2thZ2UueGR0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1OF0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucycsICdVVEYtOCcpKQorICAgIF9fb1snLkMnXSA9IF9fb2JqWzM1OS4wXQorICAgIF9fb1snLmFzbSddID0gX19vYmpbMzYwLjBdCisgICAgX19vWycuYyddID0gX19vYmpbMzYxLjBdCisgICAgX19vWycuY2MnXSA9IF9fb2JqWzM2Mi4wXQorICAgIF9fb1snLmNwcCddID0gX19vYmpbMzYzLjBdCisgICAgX19vWycuY3h4J10gPSBfX29ialszNjQuMF0KKyAgICBfX29bJy5zNjInXSA9IF9fb2JqWzM2NS4wXQorCitfX28gPSBfX29ialszNTldICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuQycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5DJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLkMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzYwXSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5hc20lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYXNtJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2MV0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2MnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzYyXSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmNjJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmNjJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNjJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2M10gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jcHAnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuY3BwJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNwcCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjRdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3h4JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmN4eCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jeHgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY1XSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5zNjIlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczYyJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2Nl0gIC8vIHRpLnRhcmdldHMuQzYyL21vZGVsCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRm1vZGVsJywgJ1VURi04JykpCisgICAgX19vWydlbmRpYW4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbGl0dGxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2N10gIC8vIHRpLnRhcmdldHMuQzYyL3BsYXRmb3JtcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwbGF0Zm9ybXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY4XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvdmVyYWdlJ10gPSBfX29ialszNjkuMF0KKyAgICBfX29bJ2RlYnVnJ10gPSBfX29ialszNzIuMF0KKyAgICBfX29bJ3Byb2ZpbGUnXSA9IF9fb2JqWzM3NS4wXQorICAgIF9fb1sncmVsZWFzZSddID0gX19vYmpbMzc4LjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtJ10gPSBfX29ialszODEuMF0KKyAgICBfX29bJ3dob2xlX3Byb2dyYW1fZGVidWcnXSA9IF9fb2JqWzM4NC4wXQorCitfX28gPSBfX29ialszNjldICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNzAuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM3MS4wXQorCitfX28gPSBfX29ialszNzBdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWdwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3MV0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzJdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNzMuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM3NC4wXQorCitfX28gPSBfX29ialszNzNdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RlZnMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLURfREVCVUdfJTNEMScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzRdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc1XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM3Ni4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzc3LjBdCisKK19fbyA9IF9fb2JqWzM3Nl0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWdwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3N10gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc4XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM3OS4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzgwLjBdCisKK19fbyA9IF9fb2JqWzM3OV0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLU8yJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4MF0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzgxXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM4Mi4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzgzLjBdCisKK19fbyA9IF9fb2JqWzM4Ml0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW0lMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLW9lKy1PMistbW8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzgzXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODRdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzg1LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszODYuMF0KKworX19vID0gX19vYmpbMzg1XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbV9kZWJ1ZyUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctb2UrLS1zeW1kZWJ1ZyUzQWR3YXJmKy1tbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODZdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4N10gIC8vIHRpLnRhcmdldHMuQzYyL3NlY3RNYXAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc2VjdE1hcCcsICdVVEYtOCcpKQorICAgIF9fb1snLmFyZ3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmJzcyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY2luaXQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNpbyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY29uc3QnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmRhdGEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmZhciddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycucGluaXQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnN0YWNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3N0YWNrJywgJ1VURi04JykpCisgICAgX19vWycuc3dpdGNoJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zeXNtZW0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnRleHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29kZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODhdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcycsICdVVEYtOCcpKQorICAgIF9fb1sndF9DaGFyJ10gPSBfX29ialszODkuMF0KKyAgICBfX29bJ3RfRG91YmxlJ10gPSBfX29ialszOTAuMF0KKyAgICBfX29bJ3RfRmxvYXQnXSA9IF9fb2JqWzM5MS4wXQorICAgIF9fb1sndF9GeG4nXSA9IF9fb2JqWzM5Mi4wXQorICAgIF9fb1sndF9JQXJnJ10gPSBfX29ialszOTMuMF0KKyAgICBfX29bJ3RfSW50J10gPSBfX29ialszOTQuMF0KKyAgICBfX29bJ3RfSW50MTYnXSA9IF9fb2JqWzM5NS4wXQorICAgIF9fb1sndF9JbnQzMiddID0gX19vYmpbMzk2LjBdCisgICAgX19vWyd0X0ludDQwJ10gPSBfX29ialszOTcuMF0KKyAgICBfX29bJ3RfSW50NjQnXSA9IF9fb2JqWzM5OC4wXQorICAgIF9fb1sndF9JbnQ4J10gPSBfX29ialszOTkuMF0KKyAgICBfX29bJ3RfTERvdWJsZSddID0gX19vYmpbNDAwLjBdCisgICAgX19vWyd0X0xMb25nJ10gPSBfX29ials0MDEuMF0KKyAgICBfX29bJ3RfTG9uZyddID0gX19vYmpbNDAyLjBdCisgICAgX19vWyd0X1B0ciddID0gX19vYmpbNDAzLjBdCisgICAgX19vWyd0X1Nob3J0J10gPSBfX29ials0MDQuMF0KKworX19vID0gX19vYmpbMzg5XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9DaGFyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9DaGFyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ialszOTBdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0RvdWJsZQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszOTFdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0Zsb2F0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9GbG9hdCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzkyXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GeG4KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0Z4bicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzkzXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JQXJnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JQXJnJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszOTRdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszOTVdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDE2CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQxNicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbMzk2XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQzMgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50MzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM5N10gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NDAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0ludDQwJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszOThdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDY0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQ2NCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzk5XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ4CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQ4JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ials0MDBdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xEb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0xEb3VibGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQwMV0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfTExvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0xMb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0MDJdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0xvbmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQwM10gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfUHRyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9QdHInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQwNF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfU2hvcnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X1Nob3J0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMgorICAgIF9fb1snc2l6ZSddID0gMgorCitfX28gPSBfX29ials0MDVdICAvLyB0aS50YXJnZXRzLkM2Mi92ZXJzaW9uTWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnZlcnNpb25NYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEMyMDAwXzMuMDcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMzLjA3JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzU0eF8zLjgzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy44MyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NXhfMi41NiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzIuNTYlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNnhfNC4zMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzQuMzIlMkMwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwNl0gIC8vIHRpLnRhcmdldHMuQzY0UC9jYworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGY2MnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjbDZ4Ky1jJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1tdjY0cCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDddICAvLyB0aS50YXJnZXRzLkM2NFAvY2NDb25maWdPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZjY0NvbmZpZ09wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjY09wdHMucHJlZml4JTI5Ky1tbycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNCUyOGNjT3B0cy5zdWZmaXglMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDA4XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2NjT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGY2NPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLXFxKy1wZHN3MjI1JywgJ1VURi04JykpCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwOV0gIC8vIHRpLnRhcmdldHMuQzY0UC9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmNvbXBhdGlibGVTdWZmaXhlcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc2NCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc2MicsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MTBdICAvLyB0aS50YXJnZXRzLkM2NFAvZGVidWdHZW4KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmRlYnVnR2VuJywgJ1VURi04JykpCisgICAgX19vWydleGVjUGF0dGVybiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1RlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19leGVjLnhkdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVBhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncGFja2FnZSUyRiUyNCUyOHBrZ05hbWUlMjkucGp0JywgJ1VURi04JykpCisgICAgX19vWydwYWNrYWdlVGVtcGxhdGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGklMkZ0YXJnZXRzJTJGY2NzX3BhY2thZ2UueGR0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxMV0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJywgJ1VURi04JykpCisgICAgX19vWycuQyddID0gX19vYmpbNDEyLjBdCisgICAgX19vWycuYXNtJ10gPSBfX29ials0MTMuMF0KKyAgICBfX29bJy5jJ10gPSBfX29ials0MTQuMF0KKyAgICBfX29bJy5jYyddID0gX19vYmpbNDE1LjBdCisgICAgX19vWycuY3BwJ10gPSBfX29ials0MTYuMF0KKyAgICBfX29bJy5jeHgnXSA9IF9fb2JqWzQxNy4wXQorICAgIF9fb1snLnM2MiddID0gX19vYmpbNDE4LjBdCisgICAgX19vWycuczY0J10gPSBfX29ials0MTkuMF0KKyAgICBfX29bJy5zNjRQJ10gPSBfX29ials0MjAuMF0KKworX19vID0gX19vYmpbNDEyXSAgLy8gdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5DJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5DJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLkMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDEzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5hc20nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJTJGJTI3LmFzbSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5hc20nLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhc20nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDE0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxNV0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY2MnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJTJGJTI3LmNjJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNjJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxNl0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3BwJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jcHAlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY3BwJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxN10gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3h4JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jeHglMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY3h4JywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxOF0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczYyJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5zNjIlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczYyJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxOV0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5zNjQlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczY0JywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyMF0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0UCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuczY0UCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5zNjRQJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyMV0gIC8vIHRpLnRhcmdldHMuQzY0UC9sbmsKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmxuaycsICdVVEYtOCcpKQorICAgIF9fb1snY21kJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2xuazZ4JywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjJdICAvLyB0aS50YXJnZXRzLkM2NFAvbG5rT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGbG5rT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy13Ky1xKy11K19jX2ludDAwJywgJ1VURi04JykpCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWMrLW0rJTI0JTI4WERDQ0ZHRElSJTI5JTJGJTI0JTQwLm1hcCstbCslMjQlMjhyb290RGlyJTI5JTJGbGliJTJGcnRzNjRwbHVzLmxpYicsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjNdICAvLyB0aS50YXJnZXRzLkM2NFAvbW9kZWwKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRm1vZGVsJywgJ1VURi04JykpCisgICAgX19vWydlbmRpYW4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbGl0dGxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyNF0gIC8vIHRpLnRhcmdldHMuQzY0UC9wbGF0Zm9ybXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnBsYXRmb3JtcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMENETTQyMCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjVdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJywgJ1VURi04JykpCisgICAgX19vWydjb3ZlcmFnZSddID0gX19vYmpbNDI2LjBdCisgICAgX19vWydkZWJ1ZyddID0gX19vYmpbNDI5LjBdCisgICAgX19vWydwcm9maWxlJ10gPSBfX29ials0MzIuMF0KKyAgICBfX29bJ3JlbGVhc2UnXSA9IF9fb2JqWzQzNS4wXQorICAgIF9fb1snd2hvbGVfcHJvZ3JhbSddID0gX19vYmpbNDM4LjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtX2RlYnVnJ10gPSBfX29ials0NDEuMF0KKworX19vID0gX19vYmpbNDI2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ials0MjcuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzQyOC4wXQorCitfX28gPSBfX29ials0MjddICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctZ3AnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDI4XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDI5XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ials0MzAuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzQzMS4wXQorCitfX28gPSBfX29ials0MzBdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctZycsICdVVEYtOCcpKQorICAgIF9fb1snZGVmcyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctRF9ERUJVR18lM0QxJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzMV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzMl0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzQzMy4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbNDM0LjBdCisKK19fbyA9IF9fb2JqWzQzM10gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctZ3AnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDM0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzNV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzQzNi4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbNDM3LjBdCisKK19fbyA9IF9fb2JqWzQzNl0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctTzInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDM3XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzOF0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzQzOS4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbNDQwLjBdCisKK19fbyA9IF9fb2JqWzQzOV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctb2UrLU8yKy1tbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NDBdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDQxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDQyLjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0NDMuMF0KKworX19vID0gX19vYmpbNDQyXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1vZSstLXN5bWRlYnVnJTNBZHdhcmYrLW1vJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ0M10gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NDRdICAvLyB0aS50YXJnZXRzLkM2NFAvc2VjdE1hcAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc2VjdE1hcCcsICdVVEYtOCcpKQorICAgIF9fb1snLmFyZ3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmJzcyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY2luaXQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNpbyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY29uc3QnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmRhdGEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmZhciddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycucGluaXQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnN0YWNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3N0YWNrJywgJ1VURi04JykpCisgICAgX19vWycuc3dpdGNoJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zeXNtZW0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnRleHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29kZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NDVdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJywgJ1VURi04JykpCisgICAgX19vWyd0X0NoYXInXSA9IF9fb2JqWzQ0Ni4wXQorICAgIF9fb1sndF9Eb3VibGUnXSA9IF9fb2JqWzQ0Ny4wXQorICAgIF9fb1sndF9GbG9hdCddID0gX19vYmpbNDQ4LjBdCisgICAgX19vWyd0X0Z4biddID0gX19vYmpbNDQ5LjBdCisgICAgX19vWyd0X0lBcmcnXSA9IF9fb2JqWzQ1MC4wXQorICAgIF9fb1sndF9JbnQnXSA9IF9fb2JqWzQ1MS4wXQorICAgIF9fb1sndF9JbnQxNiddID0gX19vYmpbNDUyLjBdCisgICAgX19vWyd0X0ludDMyJ10gPSBfX29ials0NTMuMF0KKyAgICBfX29bJ3RfSW50NDAnXSA9IF9fb2JqWzQ1NC4wXQorICAgIF9fb1sndF9JbnQ2NCddID0gX19vYmpbNDU1LjBdCisgICAgX19vWyd0X0ludDgnXSA9IF9fb2JqWzQ1Ni4wXQorICAgIF9fb1sndF9MRG91YmxlJ10gPSBfX29ials0NTcuMF0KKyAgICBfX29bJ3RfTExvbmcnXSA9IF9fb2JqWzQ1OC4wXQorICAgIF9fb1sndF9Mb25nJ10gPSBfX29ials0NTkuMF0KKyAgICBfX29bJ3RfUHRyJ10gPSBfX29ials0NjAuMF0KKyAgICBfX29bJ3RfU2hvcnQnXSA9IF9fb2JqWzQ2MS4wXQorCitfX28gPSBfX29ials0NDZdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9DaGFyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfQ2hhcicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbNDQ3XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRG91YmxlCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0NDhdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GbG9hdAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0Zsb2F0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0NDldICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GeG4KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9GeG4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQ1MF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0lBcmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JQXJnJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0NTFdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQ1Ml0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDE2CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSW50MTYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAyCisgICAgX19vWydzaXplJ10gPSAyCisKK19fbyA9IF9fb2JqWzQ1M10gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDMyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSW50MzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQ1NF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDQwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSW50NDAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQ1NV0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDY0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSW50NjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQ1Nl0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDgKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQ4JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ials0NTddICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MRG91YmxlCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfTERvdWJsZScsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDU4XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTExvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9MTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDU5XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTG9uZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0xvbmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQ2MF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1B0cgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X1B0cicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDYxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfU2hvcnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9TaG9ydCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbNDYyXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3ZlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnZlcnMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjbDZ4JywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy12ZXJzaW9uJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ2M10gIC8vIHRpLnRhcmdldHMuQzY0UC92ZXJzaW9uTWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZ2ZXJzaW9uTWFwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDMjAwMF8zLjA3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy4wNyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NHhfMy44MyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzMuODMlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNTV4XzIuNTYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMyLjU2JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzZ4XzQuMzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkM0LjMyJTJDMCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NjRdICAKKworZGVsZXRlIF9fbworZGVsZXRlIF9fb2JqClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAucnRhLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJ0YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjM0ZjMzNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJ0YS54bWwKQEAgLTAsMCArMSwxMTIgQEAKKzx4ZGMucnVudGltZS5UeXBlcy5SdGFEZWNvZGVyRGF0YT4NCisgIDx0YXJnZXROYW1lPnRpLnRhcmdldHMuQzY0UDwvdGFyZ2V0TmFtZT4NCisgIDxiaW5hcnlQYXJzZXI+dGkudGFyZ2V0cy5vbWYuY29mLkNvZmY8L2JpbmFyeVBhcnNlcj4NCisgIDxlbmRpYW4+bGl0dGxlPC9lbmRpYW4+DQorICA8Yml0c1BlckNoYXI+ODwvYml0c1BlckNoYXI+DQorICA8YXJnU2l6ZT40PC9hcmdTaXplPg0KKyAgPGV2ZW50U2l6ZT40ODwvZXZlbnRTaXplPg0KKyAgPGxvZ2dlcnMtbGVuZ3RoPjA8L2xvZ2dlcnMtbGVuZ3RoPg0KKyAgPG1vZE1hcC1sZW5ndGg+MTc8L21vZE1hcC1sZW5ndGg+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuQXNzZXJ0Ij4NCisgICAgPGlkPjMyNzcwPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuQ29yZSI+DQorICAgIDxpZD4zMjc3MTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkRlZmF1bHRzIj4NCisgICAgPGlkPjMyNzcyPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuRGlhZ3MiPg0KKyAgICA8aWQ+MzI3NzM8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5FcnJvciI+DQorICAgIDxpZD4zMjc3NDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkdhdGUiPg0KKyAgICA8aWQ+MzI3NzU8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5HYXRlTnVsbCI+DQorICAgIDxpZD4zMjc3NjwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZyI+DQorICAgIDxpZD4zMjc3NzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLk1haW4iPg0KKyAgICA8aWQ+MzI3Nzg8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5NZW1vcnkiPg0KKyAgICA8aWQ+MzI3Nzk8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5IZWFwU3RkIj4NCisgICAgPGlkPjMyNzgwPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3RhcnR1cCI+DQorICAgIDxpZD4zMjc4MTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLlN5c3RlbSI+DQorICAgIDxpZD4zMjc4MjwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLlN5c01pbiI+DQorICAgIDxpZD4zMjc4MzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLlRleHQiPg0KKyAgICA8aWQ+MzI3ODQ8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCI+DQorICAgIDxpZD4zMjc4NzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9ImFjbWUudXRpbHMuQmVuY2giPg0KKyAgICA8aWQ+MzI3ODg8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxldnRNYXAtbGVuZ3RoPjQ8L2V2dE1hcC1sZW5ndGg+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfY29uc3RydWN0Ij4NCisgICAgPGlkPjQ2ODwvaWQ+DQorICAgIDxtc2c+JTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUiPg0KKyAgICA8aWQ+NDkyPC9pZD4NCisgICAgPG1zZz4lM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0Ij4NCisgICAgPGlkPjUxMzwvaWQ+DQorICAgIDxtc2c+LS0lM0UrZGVzdHJ1Y3QlM0ErJTI4JTI1cCUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfZGVsZXRlIj4NCisgICAgPGlkPjUzMjwvaWQ+DQorICAgIDxtc2c+LS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKzwveGRjLnJ1bnRpbWUuVHlwZXMuUnRhRGVjb2RlckRhdGE+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOGJhNjY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRjLmluYwpAQCAtMCwwICsxLDIgQEAKK3BhY2thZ2UueHMKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYTllNGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsCkBAIC0wLDAgKzEsMTcwIEBACisvKgorICogRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIHRlbXBsYXRlCisgKiBsaW5rY21kLnhkdCBpbiB0aGUgdGkudGFyZ2V0cyBwYWNrYWdlIGFuZCB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICovCisKKy8qCisgKiBwdXQgJyIncyBhcm91bmQgcGF0aHMgYmVjYXVzZSwgd2l0aG91dCB0aGlzLCB0aGUgbGlua2VyCisgKiBjb25zaWRlcnMgJy0nIGFzIG1pbnVzIG9wZXJhdG9yLCBub3QgYSBmaWxlIG5hbWUgY2hhcmFjdGVyLgorICovCisKKworCistbCJEOlx3b3JrXHR1dG9yaWFsXGlzcXJ0LXByb2dcY2Znc2l0ZVxwYWNrYWdlXGNmZ1xwcm9nX3g2NFAubzY0UCIKKy1sIkQ6XHdvcmtcdHV0b3JpYWxccmVwb1xhY21lXHV0aWxzXGxpYlxhY21lLnV0aWxzLmE2NFAiCistbCJEOlx3b3JrXHR1dG9yaWFsXHJlcG9cYWNtZVx1dGlsc1xjbG9ja3NcbGliXGFjbWUudXRpbHMuY2xvY2tzLmE2NFAiCistbCJFOlxydHNjXHhkY3Rvb2xzXzNfMTVfMDBfMjlccGFja2FnZXNcdGlcdGFyZ2V0c1xydHM2MDAwXGxpYlx0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCIKKy1sIkU6XHJ0c2NceGRjdG9vbHNfM18xNV8wMF8yOVxwYWNrYWdlc1x0aVx0YXJnZXRzXHJ0czYwMDBcbGliXGJvb3QuYTY0UCIKKy1sIkQ6XHdvcmtcdHV0b3JpYWxccmVwb1xjaGFybGllXHNxcnRsaWJcbGliXGlzcXJ0X3Vucm9sbC5hNjRQIgorCisKKy8qIGZ1bmN0aW9uIGFsaWFzZXMgKi8KKy8qIGlnbm9yZSBlcnJvciBhYm91dCBkZWYgYW5kIHJlZiBpbiB0aGUgc2FtZSBmaWxlICovCistLWRpYWdfcmVtYXJrPTEwMjY4CistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRT1feGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19FPV94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRT1feGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0U9X3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19FPV94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0U9X3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FPV94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FPV94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GCistLXN5bWJvbF9tYXAgX2FjbWVfdXRpbHNfQmVuY2hfZW5kX19FPV9hY21lX3V0aWxzX0JlbmNoX2VuZF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRT1feGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0U9X3hkY19ydW50aW1lX0xvZ19kb1ByaW50X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRT1feGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRT1feGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FPV94ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0U9X3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9pbml0X19FPV94ZGNfcnVudGltZV9FcnJvcl9pbml0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2dldElkX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0U9X3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FPV94ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0U9X3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0U9X3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19FPV94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0U9X3hkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRgorLS1zeW1ib2xfbWFwIF9hY21lX3V0aWxzX0JlbmNoX2JlZ2luX19FPV9hY21lX3V0aWxzX0JlbmNoX2JlZ2luX19GCistLXN5bWJvbF9tYXAgX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0U9X2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0U9X3hkY19ydW50aW1lX01lbW9yeV9mcmVlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRT1feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRT1feGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0U9X3hkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9leGl0X19FPV94ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0U9X3hkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0U9X3hkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0U9X3hkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19FPV94ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19FPV94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19FPV94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRT1feGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0U9X3hkY19ydW50aW1lX1N5c01pbl9leGl0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0U9X3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRT1feGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FPV94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19GCisKKworLyogRWxmIHN5bWJvbHMgKi8KKy0tc3ltYm9sX21hcCBfX19USV9TVEFDS19TSVpFPV9fU1RBQ0tfU0laRQorLS1zeW1ib2xfbWFwIF9fX1RJX1NUQUNLX0JBU0U9X19zdGFjaworLS1zeW1ib2xfbWFwIF9fX1RJX1NUQVRJQ19CQVNFPV9fX2Jzc19fCistLXN5bWJvbF9tYXAgX19jX2ludDAwPV9jX2ludDAwCisKKworCisKKworLS1hcmdzIDB4MjAwCistaGVhcCAgMHgxMDAwCistc3RhY2sgMHgxMDAwCisKK01FTU9SWQoreworICAgIElSQU0gKFJXWCkgOiBvcmcgPSAweDgwMDAwMCwgbGVuID0gMHgyMDAwMDAKKyAgICBERFIgOiBvcmcgPSAweDgwMDAwMDAwLCBsZW4gPSAweDEwMDAwMDAwCit9CisKKy8qCisgKiBMaW5rZXIgY29tbWFuZCBmaWxlIGNvbnRyaWJ1dGlvbnMgZnJvbSBhbGwgbG9hZGVkIHBhY2thZ2VzOgorICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLmNvcmV2ZXJzIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5nbG9iYWwgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnNoZWxmIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5zcGVjIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5pbnRlcm4uZ2VuIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5pbnRlcm4uY21kIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5yb3YgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20gY2hhcmxpZS5zcXJ0bGliIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHRpLmNhdGFsb2cuYzYwMDAgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnBsYXRmb3JtIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5jZmcgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20gdGkucGxhdGZvcm1zLnNpbTY0UHh4IChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5ydW50aW1lIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHRpLnRhcmdldHMucnRzNjAwMCAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSBhY21lLnV0aWxzLmNsb2NrcyAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSBhY21lLnV0aWxzIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIGNmZ3NpdGUgKG51bGwpOiAqLworCisKKy8qCisgKiBzeW1ib2xpYyBhbGlhc2VzIGZvciBudW1lcmljIGNvbnN0YW50cyBvciBzdGF0aWMgaW5zdGFuY2Ugb2JqZWN0cworICovCitfeGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQyA9IDE7CitfeGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MgPSAxOworCitTRUNUSU9OUworeworCisKKyAgICAudGV4dDogbG9hZCA+PiBJUkFNCisgICAgLnN3aXRjaDogbG9hZCA+PiBERFIKKyAgICAuc3RhY2s6IGxvYWQgPiBERFIKKyAgICAuYXJnczogbG9hZCA+IEREUiBhbGlnbiA9IDB4NCwgZmlsbCA9IDAge19hcmdzaXplID0gMHgyMDA7IH0KKyAgICB4ZGMubm9sb2FkOiBsb2FkID4+IEREUiwgdHlwZSA9IE5PTE9BRAorICAgIC5zeXNtZW06IGxvYWQgPiBERFIKKyAgICAuZmFyOiBsb2FkID4+IEREUgorICAgIC5kYXRhOiBsb2FkID4+IEREUgorICAgIC5jaW5pdDogbG9hZCA+IEREUgorICAgIC5ic3M6IGxvYWQgPiBERFIKKyAgICAuY29uc3Q6IGxvYWQgPj4gRERSCisgICAgLnBpbml0OiBsb2FkID4gRERSCisgICAgLmNpbzogbG9hZCA+PiBERFIKKworfQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5jY3MgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5jY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDViMjA0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmdzaXRlLmNjcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5jbGFzcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmdzaXRlLmNsYXNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwZmMwMTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5qYXZhIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWU2ODAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL2NmZ3NpdGUuamF2YQpAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBvcmcubW96aWxsYS5qYXZhc2NyaXB0Lio7CitpbXBvcnQgeGRjLnNlcnZpY2VzLmludGVybi54c3IuKjsKK2ltcG9ydCB4ZGMuc2VydmljZXMuc3BlYy4qOworCitwdWJsaWMgY2xhc3MgY2Znc2l0ZQoreworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgVkVSUyA9ICJAKCMpIHhkYy10MzJcbiI7CisKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9Cb29sID0gUHJvdG8uRWxtLm5ld0Jvb2woKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9OdW0gPSBQcm90by5FbG0ubmV3TnVtKCk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfU3RyID0gUHJvdG8uRWxtLm5ld1N0cigpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX09iaiA9IFByb3RvLkVsbS5uZXdPYmooKTsKKworICAgIHN0YXRpYyBmaW5hbCBQcm90by5GeG4gJCRUX01ldCA9IG5ldyBQcm90by5GeG4obnVsbCwgbnVsbCwgMCwgLTEsIGZhbHNlKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uTWFwICQkVF9NYXAgPSBuZXcgUHJvdG8uTWFwKCQkVF9PYmopOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5BcnIgJCRUX1ZlYyA9IG5ldyBQcm90by5BcnIoJCRUX09iaik7CisKKyAgICBzdGF0aWMgZmluYWwgWFNjcmlwdE8gJCRERUZBVUxUID0gVmFsdWUuREVGQVVMVDsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkVU5ERUYgPSBVbmRlZmluZWQuaW5zdGFuY2U7CisKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkUGFja2FnZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRQYWNrYWdlIik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLk9iaiAkJE1vZHVsZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRNb2R1bGUiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkSW5zdGFuY2UgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkSW5zdGFuY2UiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkUGFyYW1zID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJFBhcmFtcyIpOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJG9iakZsZEdldCA9IEdsb2JhbC5nZXQoIiQkb2JqRmxkR2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJG9iakZsZFNldCA9IEdsb2JhbC5nZXQoIiQkb2JqRmxkU2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJHByb3h5R2V0ID0gR2xvYmFsLmdldCgiJCRwcm94eUdldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRwcm94eVNldCA9IEdsb2JhbC5nZXQoIiQkcHJveHlTZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkZGVsZWdHZXQgPSBHbG9iYWwuZ2V0KCIkJGRlbGVnR2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJGRlbGVnU2V0ID0gR2xvYmFsLmdldCgiJCRkZWxlZ1NldCIpOworCisgICAgU2NyaXB0YWJsZSB4ZGNPOworICAgIFNlc3Npb24gc2VzOworICAgIFZhbHVlLk9iaiBvbTsKKworICAgIGJvb2xlYW4gaXNST1Y7CisgICAgYm9vbGVhbiBpc0NGRzsKKworICAgIFByb3RvLk9iaiBwa2dQOworICAgIFZhbHVlLk9iaiBwa2dWOworCisgICAgQXJyYXlMaXN0PE9iamVjdD4gaW1wb3J0cyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IGxvZ2dhYmxlcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IG1jZmdzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gcHJveGllcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IHNpemVzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gdGRlZnMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKworICAgIHZvaWQgJCRJTVBPUlRTKCkKKyAgICB7CisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJsb2FkUGFja2FnZSIsIHhkY08sICJ4ZGMiKTsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImxvYWRQYWNrYWdlIiwgeGRjTywgInhkYy5jb3JldmVycyIpOworICAgIH0KKworICAgIHZvaWQgJCRPQkpFQ1RTKCkKKyAgICB7CisgICAgICAgIHBrZ1AgPSAoUHJvdG8uT2JqKW9tLmJpbmQoImNmZ3NpdGUuUGFja2FnZSIsIG5ldyBQcm90by5PYmooKSk7CisgICAgICAgIHBrZ1YgPSAoVmFsdWUuT2JqKW9tLmJpbmQoImNmZ3NpdGUiLCBuZXcgVmFsdWUuT2JqKCJjZmdzaXRlIiwgcGtnUCkpOworICAgIH0KKworICAgIHZvaWQgJCRTSU5HTEVUT05TKCkKKyAgICB7CisgICAgICAgIHBrZ1AuaW5pdCgiY2Znc2l0ZS5QYWNrYWdlIiwgKFByb3RvLk9iailvbS5maW5kKCJ4ZGMuSVBhY2thZ2UuTW9kdWxlIikpOworICAgICAgICBTY3JpcHRhYmxlIGNhcCA9IChTY3JpcHRhYmxlKUdsb2JhbC5jYWxsRnhuKCJsb2FkQ2Fwc3VsZSIsIHhkY08sICJjZmdzaXRlL3BhY2thZ2UueHMiKTsKKyAgICAgICAgb20uYmluZCgieGRjLklQYWNrYWdlJCRjYXBzdWxlIiwgY2FwKTsKKyAgICAgICAgT2JqZWN0IGZ4bjsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgImluaXQiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIHBrZ1AuYWRkRnhuKCJpbml0IiwgKFByb3RvLkZ4bilvbS5maW5kKCJ4ZGMuSVBhY2thZ2UkJGluaXQiKSwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgImNsb3NlIik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwa2dQLmFkZEZ4bigiY2xvc2UiLCAoUHJvdG8uRnhuKW9tLmZpbmQoInhkYy5JUGFja2FnZSQkY2xvc2UiKSwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgInZhbGlkYXRlIik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwa2dQLmFkZEZ4bigidmFsaWRhdGUiLCAoUHJvdG8uRnhuKW9tLmZpbmQoInhkYy5JUGFja2FnZSQkdmFsaWRhdGUiKSwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgImV4aXQiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIHBrZ1AuYWRkRnhuKCJleGl0IiwgKFByb3RvLkZ4bilvbS5maW5kKCJ4ZGMuSVBhY2thZ2UkJGV4aXQiKSwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgImdldExpYnMiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIHBrZ1AuYWRkRnhuKCJnZXRMaWJzIiwgKFByb3RvLkZ4bilvbS5maW5kKCJ4ZGMuSVBhY2thZ2UkJGdldExpYnMiKSwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgImdldFNlY3RzIik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwa2dQLmFkZEZ4bigiZ2V0U2VjdHMiLCAoUHJvdG8uRnhuKW9tLmZpbmQoInhkYy5JUGFja2FnZSQkZ2V0U2VjdHMiKSwgZnhuKTsKKyAgICAgICAgcGtnUC5iaW5kKCIkY2Fwc3VsZSIsIGNhcCk7CisgICAgICAgIHBrZ1YuaW5pdDIocGtnUCwgImNmZ3NpdGUiLCBWYWx1ZS5ERUZBVUxULCBmYWxzZSk7CisgICAgICAgIHBrZ1YuYmluZCgiJG5hbWUiLCAiY2Znc2l0ZSIpOworICAgICAgICBwa2dWLmJpbmQoIiRjYXRlZ29yeSIsICJQYWNrYWdlIik7CisgICAgICAgIHBrZ1YuYmluZCgiJCRxbiIsICJjZmdzaXRlLiIpOworICAgICAgICBwa2dWLmJpbmQoIiR2ZXJzIiwgR2xvYmFsLm5ld0FycmF5KCkpOworICAgICAgICBWYWx1ZS5NYXAgYXRtYXAgPSAoVmFsdWUuTWFwKXBrZ1YuZ2V0digiJGF0dHIiKTsKKyAgICAgICAgYXRtYXAuc2VhbCgibGVuZ3RoIik7CisgICAgICAgIGltcG9ydHMuY2xlYXIoKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkaW1wb3J0cyIsIGltcG9ydHMpOworICAgICAgICBTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKyAgICAgICAgc2IuYXBwZW5kKCJ2YXIgcGtnID0geGRjLm9tWydjZmdzaXRlJ107XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJpZiAocGtnLiR2ZXJzLmxlbmd0aCA+PSAzKSB7XG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgicGtnLiR2ZXJzLnB1c2goUGFja2FnZXMueGRjLnNlcnZpY2VzLmdsb2JhbC5WZXJzLmdldERhdGUoeGRjLmNzZCgpICsgJy8uLicpKTtcbiIpOworICAgICAgICBzYi5hcHBlbmQoIn1cbiIpOworICAgICAgICBzYi5hcHBlbmQoInBrZy5idWlsZC5saWJyYXJpZXMgPSBbXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2MgPSBbXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgiaWYoJ3N1ZmZpeCcgaW4geGRjLm9tWyd4ZGMuSVBhY2thZ2UkJExpYkRlc2MnXSkge1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgifVxuIik7CisgICAgICAgIEdsb2JhbC5ldmFsKHNiLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHZvaWQgJCRJTklUSUFMSVpBVElPTigpCisgICAgeworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgaWYgKGlzQ0ZHKSB7CisgICAgICAgIH0vL2lzQ0ZHCisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJpbml0IiwgcGtnVik7CisgICAgICAgICgoVmFsdWUuQXJyKW9tLmZpbmQoIiRwYWNrYWdlcyIpKS5hZGQocGtnVik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXhlYyggU2NyaXB0YWJsZSB4ZGNPLCBTZXNzaW9uIHNlcyApCisgICAgeworICAgICAgICB0aGlzLnhkY08gPSB4ZGNPOworICAgICAgICB0aGlzLnNlcyA9IHNlczsKKyAgICAgICAgb20gPSAoVmFsdWUuT2JqKXhkY08uZ2V0KCJvbSIsIG51bGwpOworCisgICAgICAgIE9iamVjdCBvID0gb20uZ2V0bygiJG5hbWUiKTsKKyAgICAgICAgU3RyaW5nIHMgPSBvIGluc3RhbmNlb2YgU3RyaW5nID8gKFN0cmluZylvIDogbnVsbDsKKyAgICAgICAgaXNDRkcgPSBzICE9IG51bGwgJiYgcy5lcXVhbHMoImNmZyIpOworICAgICAgICBpc1JPViA9IHMgIT0gbnVsbCAmJiBzLmVxdWFscygicm92Iik7CisKKyAgICAgICAgJCRJTVBPUlRTKCk7CisgICAgICAgICQkT0JKRUNUUygpOworICAgICAgICBpZiAoaXNST1YpIHsKKyAgICAgICAgfS8vaXNST1YKKyAgICAgICAgJCRTSU5HTEVUT05TKCk7CisgICAgICAgICQkSU5JVElBTElaQVRJT04oKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5wanQgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5wanQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJmNzY4YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmdzaXRlLnBqdApAQCAtMCwwICsxLDggQEAKKzsgQ29kZSBDb21wb3NlciBQcm9qZWN0IEZpbGUsIFZlcnNpb24gMi4wIChkbyBub3QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGxpbmUpCitbUHJvamVjdCBTZXR0aW5nc10KK1Byb2plY3ROYW1lPSJjZmdzaXRlIgorUHJvamVjdFR5cGU9RXh0ZXJuYWwKK0NQVUZhbWlseT1UTVMzMjBDNjRYWAorVG9vbD0iQ3VzdG9tQnVpbGRlciIKK0NvbmZpZz0iUGFja2FnZSIKK1tTb3VyY2UgRmlsZXNdCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5zY2ggYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvY2Znc2l0ZS5zY2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9jZmdzaXRlLnNjaApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2UuYmxkLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEzNDk2OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKQEAgLTAsMCArMSw3MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIFRoaXMgZmlsZSBjb25mb3JtcyB0byB0aGUgRFREIHhkYy9ibGQvYnVpbGQuZHRkIC0tPgorPHBhY2thZ2UgbmFtZT0iY2Znc2l0ZSIgdmVyc2lvbj0iIiBwcm9kdWNlcklkPSJ1bmRlZmluZWQiPgorICAgIDx1bml0cz4KKyAgICA8L3VuaXRzPgorICAgIDxzb3VyY2VzPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyIvPgorICAgIDwvc291cmNlcz4KKyAgICA8Y29uZmlndXJhdGlvbnM+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9IkQ6L3dvcmsvdHV0b3JpYWwvaXNxcnQtcHJvZy9wcm9nLmNmZyIvPgorICAgIDwvY29uZmlndXJhdGlvbnM+CisgICAgPG1ha2VmaWxlcz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLnhkYy5kZXAiIHNyYz0icGFja2FnZS54ZGMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZ194NjRQLm1hayIgc3JjPSJwYWNrYWdlLmJsZCIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UC5kZXAiIHNyYz0icGFja2FnZS9jZmcvcHJvZ194NjRQLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZ194NjRQLmRlcCIgc3JjPSJwYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvcmVsL2NmZ3NpdGUudGFyLmRlcCIgc3JjPSJwYWNrYWdlL3JlbC9jZmdzaXRlLnhkYy5pbmMiLz4KKyAgICA8L21ha2VmaWxlcz4KKyAgICA8dGFyZ2V0cz4KKyAgICAgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSJ0aS50YXJnZXRzLkM2NFB7MSwwLDYuMSw1IgorICAgICAgICAgICAgcGxhdGZvcm09InRpLnBsYXRmb3Jtcy5zaW02eHh4OlRNUzMyMENETTQyMCIKKyAgICAgICAgICAgIGlzYT0iNjRQIgorICAgICAgICAgICAgc3VmZml4PSI2NFAiCisgICAgICAgICAgICByb290RGlyPSJkOi90aS9jNjAwMC9hbGMiCisgICAgICAgICAgICBvcz0idW5kZWZpbmVkIgorICAgICAgICAgICAgcnRzPSJ0aS50YXJnZXRzLnJ0czYwMDAiPgorICAgICAgICAgICAgPG1vZGVsIGVuZGlhbj0ibGl0dGxlIgorICAgICAgICAgICAgICAgIGNvZGVNb2RlbD0idW5kZWZpbmVkIgorICAgICAgICAgICAgICAgIGRhdGFNb2RlbD0idW5kZWZpbmVkIi8+CisgICAgICAgIDwvdGFyZ2V0PgorICAgIDwvdGFyZ2V0cz4KKyAgICA8bGlicmFyaWVzPgorICAgIDwvbGlicmFyaWVzPgorICAgIDxleGVjdXRhYmxlcz4KKyAgICA8ZXhlY3V0YWJsZSBuYW1lPSJwcm9nIgorICAgICAgICBwbmFtZT0icHJvZy54NjRQIgorICAgICAgICB0YXJnZXQ9InRpLnRhcmdldHMuQzY0UCIKKyAgICAgICAgcGxhdGZvcm09InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICAgICAgcHJvZmlsZT0icmVsZWFzZSIKKyAgICAgICAgeENmZ1NjcmlwdD0icGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZyIKKyAgICAgICAgeENmZ1ByZWZpeD0icGFja2FnZS9jZmcvcHJvZ194NjRQIgorICAgICAgICBjZmdTY3JpcHQ9IkQ6L3dvcmsvdHV0b3JpYWwvaXNxcnQtcHJvZy9wcm9nLmNmZyIKKyAgICAgICAgY2ZnQXJncz0ibnVsbCIKKyAgICAgICAgLz4KKyAgICA8L2V4ZWN1dGFibGVzPgorICAgIDx0ZXN0cz4KKyAgICA8dGVzdCBleGVOYW1lPSJwcm9nLng2NFAiCisgICAgICAgIGFyZ3M9IiIKKyAgICAgICAgZ3JvdXBOYW1lPSJwcm9nLng2NFAiCisgICAgICAgIHJlZk91dHB1dD0idW5kZWZpbmVkIgorICAgICAgICByZWZFeGl0Q29kZT0iMCIKKyAgICAgICAgZXhlY0FyZ3M9IiIKKyAgICAgICAgLz4KKyAgICA8L3Rlc3RzPgorICAgIDxyZWxlYXNlcyByZWxEaXI9InBhY2thZ2UvcmVsLyI+CisgICAgPHJlbGVhc2UgbmFtZT0iY2Znc2l0ZSIKKyAgICAgICAgcG5hbWU9ImNmZ3NpdGUudGFyIgorICAgICAgICBsYWJlbD0iZGVmYXVsdCIKKyAgICA+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvYnVpbGQuY2ZnIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5leHQueG1sIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5ibGQueG1sIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5yZWwuZG90Ii8+CisgICAgPC9yZWxlYXNlPgorICAgIDwvcmVsZWFzZXM+CisgICAgPHJlcG9zaXRvcmllcz4KKyAgICA8L3JlcG9zaXRvcmllcz4KKzwvcGFja2FnZT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTc0NDI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oCkBAIC0wLDAgKzEsMTMgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpZm5kZWYgY2Znc2l0ZV9fCisjZGVmaW5lIGNmZ3NpdGVfXworCisKKworI2VuZGlmIC8qIGNmZ3NpdGVfXyAqLyAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLmRvYy54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS5kb2MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyNGFhODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS5kb2MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwYWNrYWdlIGtpbmQ9J3BhY2thZ2UnIG5hbWU9J2NmZ3NpdGUnIG5vZG9jPScxJyByb290PScuLi8nIHN1bW1hcnk9J1BhY2thZ2UrZ2VuZXJhdGVkK2J5K3hkYy50b29scy5jb25maWd1cm8nPgorICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFcGFja2FnZSUzQyUyRnNwYW4lM0UrJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWNmZ3NpdGUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTdCJy8+CisgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclN0QnLz4KKzwvcGFja2FnZT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliY2YwMTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwCkBAIC0wLDAgKzEsNTkgQEAKK2NsZWFuOjoNCisJJChSTSkgcGFja2FnZS9jZmdzaXRlLnNjaA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX2cxNTANCisJJChSTSkgcGFja2FnZS8udmVyc19yMTUwDQorCSQoUk0pIHBhY2thZ2UvLnZlcnNfYjE1MA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX2MxNTANCisJJChSTSkgcGFja2FnZS8ueGRjLXQzMg0KKwkkKFJNKSBwYWNrYWdlL2NmZ3NpdGUuamF2YQ0KKwkkKFJNKSBwYWNrYWdlL2NmZ3NpdGUuY2xhc3MNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlX2NmZ3NpdGUuYw0KKwkkKFJNKSBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oDQorCSQoUk0pIHBhY2thZ2UvcGFja2FnZS5kb2MueG1sDQorCSQoUk0pIHBhY2thZ2UvY2Znc2l0ZS5jY3MNCisKKy5pbnRlcmZhY2VzOiBwYWNrYWdlL2NmZ3NpdGUuc2NoIHBhY2thZ2UvLnZlcnNfZzE1MCBwYWNrYWdlLy52ZXJzX3IxNTAgcGFja2FnZS8udmVyc19iMTUwIHBhY2thZ2UvLnZlcnNfYzE1MCBwYWNrYWdlLy54ZGMtdDMyIHBhY2thZ2UvY2Znc2l0ZS5qYXZhIHBhY2thZ2UvY2Znc2l0ZS5jbGFzcyBwYWNrYWdlL3BhY2thZ2VfY2Znc2l0ZS5jIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggcGFja2FnZS9wYWNrYWdlLmRvYy54bWwgcGFja2FnZS9jZmdzaXRlLmNjcyAKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2cxNTAKK3BhY2thZ2UvLnZlcnNfZzE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX3IxNTAKK3BhY2thZ2UvLnZlcnNfcjE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2IxNTAKK3BhY2thZ2UvLnZlcnNfYjE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2MxNTAKK3BhY2thZ2UvLnZlcnNfYzE1MDoKKworLmludGVyZmFjZXM6IAorCisjIHNjaGVtYSBpbmNsdWRlIGZpbGUgZGVwZW5kZW5jaWVzCitwYWNrYWdlLnhzOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLnhzDQorCisjIHNjaGVtYSB1cGRhdGUgZGVwZW5kZW5jaWVzCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogeGRjL0lQYWNrYWdlLnhkYw0KK3hkYy9JUGFja2FnZS54ZGM6DQordnBhdGggeGRjL0lQYWNrYWdlLnhkYyAkKFhQS0dWUEFUSCkNCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9jbWQvamF2YS9wYWNrYWdlLmphcg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi94c3IvamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL3hzci9qYXZhL3BhY2thZ2UuamFyDQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS90YXIuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3Rhci5qYXINCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2Vjai5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvZWNqLmphcg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvanMuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2pzLmphcg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9nZW4vamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2dlbi9qYXZhL3BhY2thZ2UuamFyDQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS94YmVhbi5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3NoZWxmL2phdmEveGJlYW4uamFyDQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9qYXZhL3BhY2thZ2UuamFyDQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9hbnRsci5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvYW50bHIuamFyDQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvc2VydmljZXMvc3BlYy9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9zcGVjL2phdmEvcGFja2FnZS5qYXINCitlbmRpZgorIyBnb2FscyBmb3IgZmlsZXMgZ2VuZXJhdGVkIGR1cmluZyBzY2hlbWEgZ2VuZXJhdGlvbiBidXQgdW5zcGVjaWZpZWQgYnkgc2NoZW1hJ3MgcGF0dGVybiBydWxlCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1NmFmZTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jCkBAIC0wLDAgKzEsMTQgQEAKK3BhY2thZ2UueGRjDQorcGFja2FnZS54cw0KK3BhY2thZ2UvY2Znc2l0ZS5zY2gNCitwYWNrYWdlLy52ZXJzX2cxNTANCitwYWNrYWdlLy52ZXJzX3IxNTANCitwYWNrYWdlLy52ZXJzX2IxNTANCitwYWNrYWdlLy52ZXJzX2MxNTANCitwYWNrYWdlLy54ZGMtdDMyDQorcGFja2FnZS9jZmdzaXRlLmphdmENCitwYWNrYWdlL2NmZ3NpdGUuY2xhc3MNCitwYWNrYWdlL3BhY2thZ2VfY2Znc2l0ZS5jDQorcGFja2FnZS9wYWNrYWdlLmRlZnMuaA0KK3BhY2thZ2UvcGFja2FnZS5kb2MueG1sDQorcGFja2FnZS9jZmdzaXRlLmNjcw0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlX2NmZ3NpdGUuYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9wYWNrYWdlX2NmZ3NpdGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTdjODc4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvY2Znc2l0ZS9wYWNrYWdlL3BhY2thZ2VfY2Znc2l0ZS5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKK19fRkFSX18gY2hhciBjZmdzaXRlX19kdW1teV9fOworCisjZGVmaW5lIF9feGRjX1BLR1ZFUlMgbnVsbAorI2RlZmluZSBfX3hkY19QS0dOQU1FIGNmZ3NpdGUKKyNkZWZpbmUgX194ZGNfUEtHUFJFRklYIGNmZ3NpdGVfCisKKyNpZmRlZiBfX3hkY19ibGRfcGtnX2NfXworI2RlZmluZSBfX3N0cmluZ2lmeShhKSAjYQorI2RlZmluZSBfX2xvY2FsX2luY2x1ZGUoYSkgX19zdHJpbmdpZnkoYSkKKyNpbmNsdWRlIF9fbG9jYWxfaW5jbHVkZShfX3hkY19ibGRfcGtnX2NfXykKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvcmVsL2NmZ3NpdGUueGRjLmluYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL2NmZ3NpdGUvcGFja2FnZS9yZWwvY2Znc2l0ZS54ZGMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhZDIzOTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9jZmdzaXRlL3BhY2thZ2UvcmVsL2NmZ3NpdGUueGRjLmluYwpAQCAtMCwwICsxLDUgQEAKK3BhY2thZ2UvYnVpbGQuY2ZnCitwYWNrYWdlL3BhY2thZ2UuZXh0LnhtbAorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKK3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCitwYWNrYWdlL3BhY2thZ2UucmVsLmRvdApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvbWFrZWZpbGUgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9tYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDY4MGVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvbWFrZWZpbGUKQEAgLTAsMCArMSw1MiBAQAorIyMKKyMjIC0tLS0tLS0tIGNoYXJsaWUvc3FydGxpYi9zYW1wbGVzL21ha2VmaWxlIC0tLS0tLS0tICMjCisjIworCisjIyAtLS0tLS0tLSBob3N0LXNwZWNpZmljIHBhdGhzIC0tLS0tLS0tICMjCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMjIE1PRElGWSBUSEVTRSBQQVRIUyBQRVIgWU9VUiBJTlNUQUxMQVRJT04KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgV0lORE9XUyBIT1NUIC0tIFNVUlJPVU5EIFRIRVNFIFBBVEhTIFdJVEggIiIgIiIgSUYgVEhFWSBDT05UQUlOIFNQQUNFUyAgCitYRENST09UID0gZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5CitYRENQQVRIID0gZDovd29yay90dXRvcmlhbC9yZXBvCitDNlhUT09MUyA9IGQ6L3RpL2M2MDAwL2FsYworCisjIyAtLS0tLS0tLSByZW1vdmUgY29tbWFuZCAtLS0tLS0tLSAjIworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyMgTElOVVggSE9TVFMgLS0gUkVQTEFDRSAkKFhEQ1JPT1QpL2Jpbi9ybSBXSVRIIHJtCitSTUNNRCA9ICQoWERDUk9PVCkvYmluL3JtCisKKworIyMgLS0tLS0tLS1idWlsZCB0b29scyAtLS0tLS0tLSAjIworQ09ORklHVVJPID0gJChYRENST09UKS94cyAtLXhkY3BhdGggJHtYRENQQVRIfSB4ZGMudG9vbHMuY29uZmlndXJvCitMT0FERVIgPSAkKFhEQ1JPT1QpL3hzIHhkYy50b29scy5sb2FkZXIKK0NDID0gJChDNlhUT09MUykvYmluL2NsNnggLXEKKworIyMgLS0tLS0tLS0gYnVpbGQgcGFyYW1ldGVycyAtLS0tLS0tLSAjIworQ09ORklHID0gY2Znc2l0ZQorVEFSR0VUID0gdGkudGFyZ2V0cy5DNjRQCitQTEFURk9STSA9IHRpLnBsYXRmb3Jtcy5zaW02NFB4eAorUFJPR05BTUUgPSBwcm9nCisKKworIyMgLS0tLS0tLS0gYWxsLXJ1bGUgLS0tLS0tLS0gIyMKK2FsbCA6ICQoUFJPR05BTUUpLm91dAorCisKKyMjIC0tLS0tLS0tIGNvbmZpZy1ydWxlIC0tLS0tLS0tICMjCiskKENPTkZJRykvbGlua2VyLmNtZCAkKENPTkZJRykvY29tcGlsZXIub3B0IDogJChQUk9HTkFNRSkuY2ZnCisJJChDT05GSUdVUk8pIC1jICQoQzZYVE9PTFMpIC10ICQoVEFSR0VUKSAtcCAkKFBMQVRGT1JNKSAtbyAkKENPTkZJRykgJChQUk9HTkFNRSkuY2ZnCisKKyMjIC0tLS0tLS0tIGNvbXBpbGUtcnVsZSAtLS0tLS0tLSAjIworJChQUk9HTkFNRSkub2JqIDogJChQUk9HTkFNRSkuYyAkKENPTkZJRykvY29tcGlsZXIub3B0CisJJChDQykgLUAkKENPTkZJRykvY29tcGlsZXIub3B0IC1jICQoUFJPR05BTUUpLmMKKworIyMgLS0tLS0tLS0gbGluay1ydWxlIC0tLS0tLS0tICMjCiskKFBST0dOQU1FKS5vdXQgOiAkKFBST0dOQU1FKS5vYmogJChDT05GSUcpL2xpbmtlci5jbWQKKwkkKENDKSAteiAtYyAkXiAtbyAkKFBST0dOQU1FKS5vdXQgLWwgJChDNlhUT09MUykvbGliL3J0czY0cGx1cy5saWIKKworCisjIyAtLS0tLS0tLSB0ZXN0LXJ1bGUgLS0tLS0tLS0gIyMKK3Rlc3QgOiAkKFBST0dOQU1FKS5vdXQKKwkkKExPQURFUikgJChQUk9HTkFNRSkub3V0CisKKyMjIC0tLS0tLS0tIGNsZWFuLXJ1bGUgLS0tLS0tLS0gIyMKK2NsZWFuIDoKKwkkKFhEQ1JPT1QpL2Jpbi9ybSAtcmYgJChDT05GSUcpICoub2JqICoub3V0CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9wcm9nLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9wcm9nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzU3MjExNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9pc3FydC1wcm9nL3Byb2cuYwpAQCAtMCwwICsxLDIyIEBACisvKg0KKyAqICA9PT09PT09PSBpc3FydC1wcm9nL3Byb2cuYyA9PT09PT09PQ0KKyAqLw0KKw0KKyNpbmNsdWRlIDxhY21lL3V0aWxzL0JlbmNoLmg+DQorI2luY2x1ZGUgPGNoYXJsaWUvc3FydGxpYi9pc3FydC5oPg0KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4NCisgDQoraW50IG1haW4oKQ0KK3sNCisgICAgdW5zaWduZWQgaW50IHgsIHk7DQorDQorICAgIHggPSAxMDAwOw0KKyAgICBTeXN0ZW1fcHJpbnRmKCI9PT4gaXNxcnQoJWQpXG4iLCB4KTsNCisNCisgICAgQmVuY2hfYmVnaW4oImN5Y2xlIGNvdW50OiIpOw0KKyAgICB5ID0gaXNxcnQoeCk7DQorICAgIEJlbmNoX2VuZCgpOw0KKw0KKyAgICBTeXN0ZW1fcHJpbnRmKCI8PT0gJWRcbiIsIHkpOw0KKyAgICByZXR1cm4gMDsNCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvcHJvZy5jZmcgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9wcm9nLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNDg5ZmExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvcHJvZy5jZmcKQEAgLTAsMCArMSwxMiBAQAorLyoNCisgKiAgPT09PT09PT0gaXNxcnQtcHJvZy9wcm9nLmNmZyA9PT09PT09PQ0KKyAqLw0KKw0KK3ZhciBCZW5jaCA9IHhkYy51c2VNb2R1bGUoJ2FjbWUudXRpbHMuQmVuY2gnKTsNCit2YXIgU3lzdGVtID0geGRjLnVzZU1vZHVsZSgneGRjLnJ1bnRpbWUuU3lzdGVtJyk7DQorIA0KK3ZhciBQcm9ncmFtID0geGRjLnVzZU1vZHVsZSgneGRjLmNmZy5Qcm9ncmFtJyk7DQordmFyIFNldHRpbmdzID0geGRjLnVzZU1vZHVsZSgnY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzJyk7DQorDQorQmVuY2guZW5hYmxlRmxhZyA9IChQcm9ncmFtLmJ1aWxkLnRhcmdldC5pc2EgPT0gIjY0UCIpOw0KK1NldHRpbmdzLm9wdGltaXplID0gU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1RJTUU7DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvcHJvZy5vYmogYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9wcm9nLm9iagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMWVmZTVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvcHJvZy5vYmoKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvcHJvZy5vdXQgYi9zcmMvcGFydDEvZXhhbXBsZXMvaXNxcnQtcHJvZy9wcm9nLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYjhhNTViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL2lzcXJ0LXByb2cvcHJvZy5vdXQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy8uY3Byb2plY3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzLy5jcHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjFjNzMwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy8uY3Byb2plY3QKQEAgLTAsMCArMSwyNTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPD9maWxlVmVyc2lvbiA0LjAuMD8+DQorDQorPGNwcm9qZWN0Pg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyI+DQorPGNjb25maWd1cmF0aW9uIGlkPSIwLjU4ODM2MjQyOSI+DQorPHN0b3JhZ2VNb2R1bGUgYnVpbGRTeXN0ZW1JZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuY29uZmlndXJhdGlvbkRhdGFQcm92aWRlciIgaWQ9IjAuNTg4MzYyNDI5IiBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiIG5hbWU9IkRlZmF1bHQiPg0KKzxleHRlcm5hbFNldHRpbmdzLz4NCis8ZXh0ZW5zaW9ucz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5WQ0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5HQVNFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuR0xERXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkdDQ0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5NYWtlRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzwvZXh0ZW5zaW9ucz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9ImNkdEJ1aWxkU3lzdGVtIiB2ZXJzaW9uPSI0LjAuMCI+DQorPGNvbmZpZ3VyYXRpb24gYXJ0aWZhY3ROYW1lPSJhY21lLnV0aWxzIiBidWlsZFByb3BlcnRpZXM9IiIgZGVzY3JpcHRpb249IiIgaWQ9IjAuNTg4MzYyNDI5IiBuYW1lPSJEZWZhdWx0IiBwYXJlbnQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLmNmZyI+DQorPGZvbGRlckluZm8gaWQ9IjAuNTg4MzYyNDI5LiIgbmFtZT0iLyIgcmVzb3VyY2VQYXRoPSIiPg0KKzx0b29sQ2hhaW4gaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLnRvb2xjaGFpbi4xNzM0MTgyNTcyIiBuYW1lPSJObyBUb29sQ2hhaW4iIHJlc291cmNlVHlwZUJhc2VkRGlzY292ZXJ5PSJmYWxzZSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUucHJlZmJhc2UudG9vbGNoYWluIj4NCis8dGFyZ2V0UGxhdGZvcm0gaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLnRvb2xjaGFpbi4xNzM0MTgyNTcyLjE2OTQ5MjcwMTciIG5hbWU9IiIvPg0KKzxidWlsZGVyIGJ1aWxkUGF0aD0iIiBjb21tYW5kPSIke1hEQ1JPT1R9L3hkYyIgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmRlZmF1bHQuYnVpbGRlci4xOTU4OTg2MTI5IiBrZWVwRW52aXJvbm1lbnRJbkJ1aWxkZmlsZT0iZmFsc2UiIG1hbmFnZWRCdWlsZE9uPSJmYWxzZSIgbmFtZT0iR251IE1ha2UgQnVpbGRlciIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuZGVmYXVsdC5idWlsZGVyIi8+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5saWJzLjE3NzgxNDMyNSIgbmFtZT0iaG9sZGVyIGZvciBsaWJyYXJ5IHNldHRpbmdzIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIubGlicyIvPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuNjkwODY4OSIgbmFtZT0iR05VIEMrKyIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyIj4NCis8aW5wdXRUeXBlIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlLjExMjY2NzA4NDAiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmcrKyIgbGFuZ3VhZ2VOYW1lPSJHTlUgQysrIiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuY3h4U291cmNlLG9yZy5lY2xpcHNlLmNkdC5jb3JlLmN4eEhlYWRlciIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZSIvPg0KKzwvdG9vbD4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLjMzNTc5MDg2MCIgbmFtZT0iR05VIEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS4xNTk4Njc3NDAxIiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5nY2MiIGxhbmd1YWdlTmFtZT0iR05VIEMiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5jU291cmNlLG9yZy5lY2xpcHNlLmNkdC5jb3JlLmNIZWFkZXIiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUiLz4NCis8L3Rvb2w+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci4xNzk0OTk2Mjg3IiBuYW1lPSJVUEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS40NjU2OTEwMiIgbGFuZ3VhZ2VJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGFyc2VyLnVwYy51cGMiIGxhbmd1YWdlTmFtZT0iVVBDIiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGFyc2VyLnVwYy51cGNTb3VyY2UiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUiLz4NCis8L3Rvb2w+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci43NDkwMzIyMzIiIG5hbWU9IkFzc2VtYmx5IiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuMjQyMDg3NTMiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmFzc2VtYmx5IiBsYW5ndWFnZU5hbWU9IkFzc2VtYmx5IiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuYXNtU291cmNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzwvdG9vbENoYWluPg0KKzwvZm9sZGVySW5mbz4NCis8L2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0idHJ1ZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJGaWxlUHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bGMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsQyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHNjYW5uZXJDb25maWdCdWlsZEluZm8gaW5zdGFuY2VJZD0iMC41ODgzNjI0MjkiPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlckZpbGVQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJtYWtlZmlsZUdlbmVyYXRvciI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1mICR7cHJvamVjdF9uYW1lfV9zY2QubWsiIGNvbW1hbmQ9Im1ha2UiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci54bGMuY29yZS5YTENNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC12ICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSIke1hMX2NvbXBpbGVyUm9vdH0veGxDIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L3NjYW5uZXJDb25maWdCdWlsZEluZm8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5leHRlcm5hbFNldHRpbmdzIi8+DQorPC9jY29uZmlndXJhdGlvbj4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9ImNkdEJ1aWxkU3lzdGVtIiB2ZXJzaW9uPSI0LjAuMCI+DQorPHByb2plY3QgaWQ9ImFjbWUudXRpbHMubnVsbC4xNjUyMTM4Mjg3IiBuYW1lPSJhY21lLnV0aWxzIi8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy8uZGxscyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvLmRsbHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvLmRsbHMKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvLmV4ZWN1dGFibGVzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy8uZXhlY3V0YWJsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvLmV4ZWN1dGFibGVzCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzLy5pbnRlcmZhY2VzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy8uaW50ZXJmYWNlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy8uaW50ZXJmYWNlcwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy8ubGlicmFyaWVzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy8ubGlicmFyaWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzLy5saWJyYXJpZXMKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvLnByb2plY3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlY2M2OTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzLy5wcm9qZWN0CkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+YWNtZS51dGlsczwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmdlbm1ha2VidWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pj9uYW1lPzwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXV0b0J1aWxkVGFyZ2V0PC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZEFyZ3VtZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGRDb21tYW5kPC9rZXk+DQorCQkJCQk8dmFsdWU+JHtYRENST09UfS94ZGM8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkTG9jYXRpb248L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmNsZWFuQnVpbGRUYXJnZXQ8L2tleT4NCisJCQkJCTx2YWx1ZT5jbGVhbjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuY29udGVudHM8L2tleT4NCisJCQkJCTx2YWx1ZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFjdGl2ZUNvbmZpZ1NldHRpbmdzPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVBdXRvQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUZ1bGxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmZ1bGxCdWlsZFRhcmdldDwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS51c2VEZWZhdWx0QnVpbGRDbWQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5TY2FubmVyQ29uZmlnQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCTwvYnVpbGRTcGVjPg0KKwk8bmF0dXJlcz4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0LmNvcmUuY25hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5TY2FubmVyQ29uZmlnTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLm1hbmFnZWRCdWlsZE5hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAxYzk1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAwCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSAKK292ZXJyaWRlIFhEQ1JPT1QgPSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkKK292ZXJyaWRlIFhEQ0JVSUxEQ0ZHID0gLi4vLi4vY29uZmlnLmJsZAorZW5kaWYKK2lmbmVxICgsJChmaW5kc3RyaW5nIGFyZ3MsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDQVJHUyA9IAorb3ZlcnJpZGUgWERDVEFSR0VUUyA9IAorZW5kaWYKKyMKK2lmZXEgKDAsMSkKK1BLR1BBVEggPSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXM7Li4vLi4KK0hPU1RPUyA9IFdpbmRvd3MKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL0JlbmNoLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL0JlbmNoLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU4YWJmMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvQmVuY2guYwpAQCAtMCwwICsxLDM3IEBACisvKg0KKyAqICA9PT09PT09PSBhY21lL3V0aWxzL0JlbmNoLmMgPT09PT09PT0NCisgKi8NCisNCisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3RhcnR1cC5oPg0KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4NCisjaW5jbHVkZSAicGFja2FnZS9pbnRlcm5hbC9CZW5jaC54ZGMuaCINCisgDQorSW50IEJlbmNoX01vZHVsZV9zdGFydHVwKEludCBzdGF0ZSkNCit7DQorICAgIEJlbmNoX2JlZ2luKE5VTEwpOw0KKyAgICBCZW5jaF9lbmQoKTsgIAkvKiBmaXJzdC10aW1lIGNhbGlicmF0aW9uIGJlbmNobWFyayAqLw0KKyANCisgICAgcmV0dXJuIFN0YXJ0dXBfRE9ORTsNCit9DQorIA0KK1ZvaWQgQmVuY2hfYmVnaW4oU3RyaW5nIG1zZykNCit7DQorICAgIGlmIChCZW5jaF9lbmFibGVGbGFnKSB7DQorICAgICAgICBtb2R1bGUtPmJlZ2luQ2xvY2sgPSBCZW5jaF9QQ2xvY2tfZ2V0VGltZSgpOw0KKyAgICAgICAgbW9kdWxlLT5iZWdpbk1zZyA9IG1zZzsNCisgICAgfQ0KK30NCisgDQorVm9pZCBCZW5jaF9lbmQoKQ0KK3sNCisgICAgaWYgKEJlbmNoX2VuYWJsZUZsYWcpIHsNCisgICAgICAgIEludCBlbGFwc2VkID0gQmVuY2hfUENsb2NrX2dldFRpbWUoKSAtIG1vZHVsZS0+YmVnaW5DbG9jazsgLyogZWxhcHNlZCB0aW1lIGJldHdlZW4gbm93IGFuZCBsYXN0IGJlZ2luKCkgKi8NCisgICAgICAgIGlmIChtb2R1bGUtPmJlZ2luTXNnID09IE5VTEwpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZmlyc3QtdGltZSBjYWxpYnJhdGlvbiBjYWxsICovDQorICAgICAgICAgICAgbW9kdWxlLT5vdmVyaGVhZCA9IGVsYXBzZWQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHJldGFpbiBlbGFwc2VkIHRpbWUgZm9yIGxhdGVyIGNvcnJlY3Rpb24gKi8NCisgICAgICAgIH0NCisgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY29ycmVjdCBlbGFwc2VkIHRpbWUgYW5kIHByaW50IHJlc3VsdCAqLw0KKyAgICAgICAgICAgIGVsYXBzZWQgLT0gbW9kdWxlLT5vdmVyaGVhZDsNCisgICAgICAgICAgICBTeXN0ZW1fcHJpbnRmKCIlcyBbJWRdXG4iLCBtb2R1bGUtPmJlZ2luTXNnLCBlbGFwc2VkKTsNCisgICAgICAgIH0NCisgICAgfQ0KK30NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL0JlbmNoLmggYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL0JlbmNoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTYwNTA1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvQmVuY2guaApAQCAtMCwwICsxLDQyMSBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworLyoKKyAqID09PT09PT09IEdFTkVSQVRFRCBTRUNUSU9OUyA9PT09PT09PQorICogICAgIAorICogICAgIFBST0xPR1VFCisgKiAgICAgSU5DTFVERVMKKyAqICAgICAKKyAqICAgICBJTlRFUk5BTCBERUZJTklUSU9OUworICogICAgIE1PRFVMRS1XSURFIENPTkZJR1MKKyAqICAgICBGVU5DVElPTiBERUNMQVJBVElPTlMKKyAqICAgICBTWVNURU0gRlVOQ1RJT05TCisgKiAgICAgQysrIENMSUVOVCBXUkFQUEVSIFtleHBlcmltZW50YWxdCisgKiAgICAgCisgKiAgICAgRVBJTE9HVUUKKyAqICAgICBTVEFURSBTVFJVQ1RVUkVTCisgKiAgICAgUFJFRklYIEFMSUFTRVMKKyAqICAgICBDKysgU1VQUExJRVIgV1JBUFBFUiBbZXhwZXJpbWVudGFsXQorICovCisKKworLyoKKyAqID09PT09PT09IFBST0xPR1VFID09PT09PT09CisgKi8KKworI2lmbmRlZiBhY21lX3V0aWxzX0JlbmNoX19pbmNsdWRlCisjZGVmaW5lIGFjbWVfdXRpbHNfQmVuY2hfX2luY2x1ZGUKKworI2lmbmRlZiBfX25lc3RlZF9fCisjZGVmaW5lIF9fbmVzdGVkX18KKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9fdG9wX18KKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKKyNkZWZpbmUgX19leHRlcm4gZXh0ZXJuICJDIgorI2Vsc2UKKyNkZWZpbmUgX19leHRlcm4gZXh0ZXJuCisjZW5kaWYKKworI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX19fVkVSUyAxNTAKKworCisvKgorICogPT09PT09PT0gSU5DTFVERVMgPT09PT09PT0KKyAqLworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCisjaW5jbHVkZSA8eGRjL3J1bnRpbWUveGRjLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvVHlwZXMuaD4KKyNpbmNsdWRlIDxhY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg+CisKKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9JTW9kdWxlLmg+CisjaW5jbHVkZSA8YWNtZS91dGlscy9jbG9ja3MvSUNsb2NrLmg+CisjaW5jbHVkZSA8YWNtZS91dGlscy9wYWNrYWdlL0JlbmNoX1BDbG9jay5oPgorCisKKy8qCisgKiA9PT09PT09PSBBVVhJTElBUlkgREVGSU5JVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSBJTlRFUk5BTCBERUZJTklUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IE1PRFVMRS1XSURFIENPTkZJR1MgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZCAqLwordHlwZWRlZiB4ZGNfQml0czMyIENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWQgKi8KK3R5cGVkZWYgeGRjX0JpdHMzMiBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQzsKKworLyogTW9kdWxlX19kaWFnc01hc2sgKi8KK3R5cGVkZWYgeGRjX0JpdHMxNiogQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2s7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0M7CisKKy8qIE1vZHVsZV9fZ2F0ZU9iaiAqLwordHlwZWRlZiB4ZGNfUHRyIENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9iajsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DOworCisvKiBNb2R1bGVfX2dhdGVQcm1zICovCit0eXBlZGVmIHhkY19QdHIgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtczsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtcyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0M7CisKKy8qIE1vZHVsZV9faWQgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWRfX0M7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZCAqLwordHlwZWRlZiB4ZGNfQm9vbCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQzsKKworLyogTW9kdWxlX19sb2dnZXJPYmogKi8KK3R5cGVkZWYgeGRjX1B0ciBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9iajsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmogYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQzsKKworLyogTW9kdWxlX19sb2dnZXJGeG40ICovCit0eXBlZGVmIHhkY19ydW50aW1lX1R5cGVzX0xvZ2dlckZ4bjQgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40OworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0M7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9UeXBlc19Mb2dnZXJGeG44IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuODsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuICovCit0eXBlZGVmIHhkY19Cb29sICgqQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikodm9pZCk7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DOworCisvKiBPYmplY3RfX2NvdW50ICovCit0eXBlZGVmIHhkY19JbnQgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0M7CisKKy8qIE9iamVjdF9faGVhcCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXAgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0M7CisKKy8qIE9iamVjdF9fc2l6ZW9mICovCit0eXBlZGVmIHhkY19TaXplVCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZjsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2YgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQzsKKworLyogT2JqZWN0X190YWJsZSAqLwordHlwZWRlZiB4ZGNfUHRyIENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGU7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGUgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DOworCisvKiBlbmFibGVGbGFnICovCisjZGVmaW5lIGFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZyAoYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DKQordHlwZWRlZiB4ZGNfQm9vbCBDVF9fYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnIGFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQzsKKworCisvKgorICogPT09PT09PT0gRlVOQ1RJT04gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX3N0YXJ0dXAgKi8KKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UsICJhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwIikKK19fZXh0ZXJuIHhkY19JbnQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRSggeGRjX0ludCBzdGF0ZSApOworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19GLCAiYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cCIpCitfX2V4dGVybiB4ZGNfSW50IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0YoIHhkY19JbnQgc3RhdGUgKTsKK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fUiwgImFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXAiKQorX19leHRlcm4geGRjX0ludCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19SKCB4ZGNfSW50IHN0YXRlICk7CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9IYW5kbGVfX2xhYmVsX19TLCAiYWNtZV91dGlsc19CZW5jaF9IYW5kbGVfX2xhYmVsIikKK19fZXh0ZXJuIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBhY21lX3V0aWxzX0JlbmNoX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TLCAiYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lIikKK19fZXh0ZXJuIHhkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApOworCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY3JlYXRlX19TLCAiYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NyZWF0ZSIpCitfX2V4dGVybiB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApOworCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZGVsZXRlX19TLCAiYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2RlbGV0ZSIpCitfX2V4dGVybiB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICk7CisKKy8qIE9iamVjdF9fZGVzdHJ1Y3RfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2Rlc3RydWN0X19TLCAiYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2Rlc3RydWN0IikKK19fZXh0ZXJuIHhkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICk7CisKKy8qIE9iamVjdF9fZ2V0X19TICovCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19nZXRfX1MsICJhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZ2V0IikKK19fZXh0ZXJuIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKTsKKworLyogT2JqZWN0X19maXJzdF9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZmlyc3RfX1MsICJhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZmlyc3QiKQorX19leHRlcm4geGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKTsKKworLyogT2JqZWN0X19uZXh0X19TICovCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19uZXh0X19TLCAiYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX25leHQiKQorX19leHRlcm4geGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKTsKKworLyogUGFyYW1zX19pbml0X19TICovCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfQmVuY2hfUGFyYW1zX19pbml0X19TLCAiYWNtZV91dGlsc19CZW5jaF9QYXJhbXNfX2luaXQiKQorX19leHRlcm4geGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApOworCisvKiBQcm94eV9fYWJzdHJhY3RfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9Qcm94eV9fYWJzdHJhY3RfX1MsICJhY21lX3V0aWxzX0JlbmNoX1Byb3h5X19hYnN0cmFjdCIpCitfX2V4dGVybiB4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApOworCisvKiBQcm94eV9fZGVsZWdhdGVfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9Qcm94eV9fZGVsZWdhdGVfX1MsICJhY21lX3V0aWxzX0JlbmNoX1Byb3h5X19kZWxlZ2F0ZSIpCitfX2V4dGVybiB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICk7CisKKy8qIGJlZ2luX19FICovCisjZGVmaW5lIGFjbWVfdXRpbHNfQmVuY2hfYmVnaW4gYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRQoreGRjX19DT0RFU0VDVChhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19FLCAiYWNtZV91dGlsc19CZW5jaF9iZWdpbiIpCitfX2V4dGVybiB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19FKCB4ZGNfU3RyaW5nIG1zZyApOworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19GLCAiYWNtZV91dGlsc19CZW5jaF9iZWdpbiIpCitfX2V4dGVybiB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19GKCB4ZGNfU3RyaW5nIG1zZyApOworX19leHRlcm4geGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fUiggeGRjX1N0cmluZyBtc2cgKTsKKworLyogZW5kX19FICovCisjZGVmaW5lIGFjbWVfdXRpbHNfQmVuY2hfZW5kIGFjbWVfdXRpbHNfQmVuY2hfZW5kX19FCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfQmVuY2hfZW5kX19FLCAiYWNtZV91dGlsc19CZW5jaF9lbmQiKQorX19leHRlcm4geGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9lbmRfX0UoIHZvaWQgKTsKK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9lbmRfX0YsICJhY21lX3V0aWxzX0JlbmNoX2VuZCIpCitfX2V4dGVybiB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2VuZF9fRiggdm9pZCApOworX19leHRlcm4geGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9lbmRfX1IoIHZvaWQgKTsKKworCisvKgorICogPT09PT09PT0gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9zdGFydHVwRG9uZSAqLworI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwRG9uZSgpIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpCisKKy8qIE9iamVjdF9oZWFwICovCisjZGVmaW5lIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X2hlYXAoKSBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQworCisvKiBNb2R1bGVfaGVhcCAqLworI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9oZWFwKCkgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0MKKworLyogTW9kdWxlX2lkICovCitzdGF0aWMgaW5saW5lIENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfaWQoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DOworfQorCisvKiBNb2R1bGVfaGFzTWFzayAqLworc3RhdGljIGlubGluZSB4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9oYXNNYXNrKCB2b2lkICkgCit7CisgICAgcmV0dXJuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MgIT0gTlVMTDsKK30KKworLyogTW9kdWxlX2dldE1hc2sgKi8KK3N0YXRpYyBpbmxpbmUgeGRjX0JpdHMxNiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9nZXRNYXNrKCB2b2lkICkgCit7CisgICAgcmV0dXJuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MgIT0gTlVMTCA/ICphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DIDogMDsKK30KKworLyogTW9kdWxlX3NldE1hc2sgKi8KK3N0YXRpYyBpbmxpbmUgeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc2V0TWFzayggeGRjX0JpdHMxNiBtYXNrICkgCit7CisgICAgaWYgKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MgIT0gTlVMTCkgKmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MgPSBtYXNrOworfQorCisKKy8qCisgKiA9PT09PT09PSBDKysgQ0xJRU5UIFdSQVBQRVIgW2V4cGVyaW1lbnRhbF0gPT09PT09PT0KKyAqLworCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKK25hbWVzcGFjZSBhY21lX3V0aWxzIHsgbmFtZXNwYWNlIEJlbmNoIHsKKworLyogQmVuY2g6OlBDbG9jayAqLworbmFtZXNwYWNlIFBDbG9jayB7CisKKworLyogQmVuY2g6OlBDbG9jazo6VGltZVZhbHVlICovCit0eXBlZGVmIHhkY19CaXRzMzIgVGltZVZhbHVlOworCisvKiBCZW5jaDo6UENsb2NrOjpnZXRUaW1lICovCitzdGF0aWMgaW5saW5lIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgZ2V0VGltZSggICkKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfZ2V0VGltZSgpOworfQorCit9CisKKy8qIEJlbmNoOjplbmFibGVGbGFnICovCitzdGF0aWMgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZyYgZW5hYmxlRmxhZyA9IGFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQzsKKworLyogQmVuY2g6OmJlZ2luICovCitzdGF0aWMgaW5saW5lIHhkY19Wb2lkIGJlZ2luKCB4ZGNfU3RyaW5nIG1zZyApCit7CisgICAgYWNtZV91dGlsc19CZW5jaF9iZWdpbihtc2cpOworfQorCisvKiBCZW5jaDo6ZW5kICovCitzdGF0aWMgaW5saW5lIHhkY19Wb2lkIGVuZCggICkKK3sKKyAgICBhY21lX3V0aWxzX0JlbmNoX2VuZCgpOworfQorCit9fQorI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCisKKworLyoKKyAqID09PT09PT09IEVQSUxPR1VFID09PT09PT09CisgKi8KKworI2lmZGVmIGFjbWVfdXRpbHNfQmVuY2hfX3RvcF9fCisjdW5kZWYgX19uZXN0ZWRfXworI2VuZGlmCisKKyNlbmRpZiAvKiBhY21lX3V0aWxzX0JlbmNoX19pbmNsdWRlICovCisKKworLyoKKyAqID09PT09PT09IFNUQVRFIFNUUlVDVFVSRVMgPT09PT09PT0KKyAqLworCisjaWYgZGVmaW5lZChfX2NvbmZpZ19fKSB8fCAoIWRlZmluZWQoX19uZXN0ZWRfXykgJiYgZGVmaW5lZChhY21lX3V0aWxzX0JlbmNoX19pbnRlcm5hbGFjY2VzcykpCisKKyNpZm5kZWYgYWNtZV91dGlsc19CZW5jaF9faW5jbHVkZV9zdGF0ZQorI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX19pbmNsdWRlX3N0YXRlCisKKy8qIE1vZHVsZV9TdGF0ZSAqLworc3RydWN0IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlIHsKKyAgICB4ZGNfU3RyaW5nIGJlZ2luTXNnOworICAgIHhkY19JbnQgYmVnaW5DbG9jazsKKyAgICB4ZGNfSW50IG92ZXJoZWFkOworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworI2lmZGVmIF9fY29uZmlnX18KK2V4dGVybiBzdHJ1Y3QgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfU3RhdGVfXyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhdGVfX1Y7CisjZWxzZQorZXh0ZXJuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGF0ZV9fVjsKKyNlbmRpZgorCisvKiBDKysgd3JhcHBlciAqLworI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCituYW1lc3BhY2UgYWNtZV91dGlscyB7IG5hbWVzcGFjZSBCZW5jaCB7CisKKworLyogQmVuY2g6Ok1vZHVsZV9TdGF0ZSAqLworc3RydWN0IE1vZHVsZV9TdGF0ZSB7CisgICAgeGRjX1N0cmluZyBiZWdpbk1zZzsKKyAgICB4ZGNfSW50IGJlZ2luQ2xvY2s7CisgICAgeGRjX0ludCBvdmVyaGVhZDsKK307CisKKy8qIEJlbmNoOjptb2R1bGUgKi8KK3N0YXRpYyBNb2R1bGVfU3RhdGUqIGNvbnN0IG1vZHVsZSA9IChNb2R1bGVfU3RhdGUqKSZhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhdGVfX1Y7CisKK319CisjZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KKworI2VuZGlmIC8qIGFjbWVfdXRpbHNfQmVuY2hfX2luY2x1ZGVfc3RhdGUgKi8KKworI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IFBSRUZJWCBBTElBU0VTID09PT09PT09CisgKi8KKworI2lmICFkZWZpbmVkKF9fbmVzdGVkX18pICYmICFkZWZpbmVkKGFjbWVfdXRpbHNfQmVuY2hfX25vbG9jYWxuYW1lcykKKworLyogbW9kdWxlIHByZWZpeCAqLworI2RlZmluZSBCZW5jaF9Nb2R1bGVfU3RhdGUgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfU3RhdGUKKyNkZWZpbmUgQmVuY2hfZW5hYmxlRmxhZyBhY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWcKKyNkZWZpbmUgQmVuY2hfYmVnaW4gYWNtZV91dGlsc19CZW5jaF9iZWdpbgorI2RlZmluZSBCZW5jaF9lbmQgYWNtZV91dGlsc19CZW5jaF9lbmQKKyNkZWZpbmUgQmVuY2hfTW9kdWxlX25hbWUgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfbmFtZQorI2RlZmluZSBCZW5jaF9Nb2R1bGVfaWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfaWQKKyNkZWZpbmUgQmVuY2hfTW9kdWxlX3N0YXJ0dXAgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cAorI2RlZmluZSBCZW5jaF9Nb2R1bGVfc3RhcnR1cERvbmUgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cERvbmUKKyNkZWZpbmUgQmVuY2hfTW9kdWxlX2hhc01hc2sgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfaGFzTWFzaworI2RlZmluZSBCZW5jaF9Nb2R1bGVfZ2V0TWFzayBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9nZXRNYXNrCisjZGVmaW5lIEJlbmNoX01vZHVsZV9zZXRNYXNrIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3NldE1hc2sKKyNkZWZpbmUgQmVuY2hfT2JqZWN0X2hlYXAgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfaGVhcAorI2RlZmluZSBCZW5jaF9Nb2R1bGVfaGVhcCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9oZWFwCisKKy8qIHByb3hpZXMgKi8KKyNpbmNsdWRlIDxhY21lL3V0aWxzL3BhY2thZ2UvQmVuY2hfUENsb2NrLmg+CisKKy8qIEMrKyB3cmFwcGVyICovCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykgJiYgIWRlZmluZWQoYWNtZV91dGlsc19CZW5jaF9fSU5URVJOQUxfXykKK25hbWVzcGFjZSBCZW5jaCA9IGFjbWVfdXRpbHM6OkJlbmNoOworI2VuZGlmCisKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSBDKysgU1VQUExJRVIgV1JBUFBFUiBbZXhwZXJpbWVudGFsXSA9PT09PT09PQorICovCisKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiBkZWZpbmVkKGFjbWVfdXRpbHNfQmVuY2hfX0lOVEVSTkFMX18pCituYW1lc3BhY2UgQmVuY2ggeworICAgIHVzaW5nIGFjbWVfdXRpbHM6OkJlbmNoOjplbmFibGVGbGFnOworICAgIHVzaW5nIGFjbWVfdXRpbHM6OkJlbmNoOjpNb2R1bGVfU3RhdGU7CisgICAgdXNpbmcgYWNtZV91dGlsczo6QmVuY2g6Om1vZHVsZTsKKyAgICBuYW1lc3BhY2UgUENsb2NrID0gYWNtZV91dGlsczo6QmVuY2g6OlBDbG9jazsKKworLyogQmVuY2g6Ok1vZHVsZV9zdGFydHVwICovCitpbmxpbmUgaW50IE1vZHVsZV9zdGFydHVwKCBpbnQgc3RhdGUgKTsKKyNkZWZpbmUgREVGSU5FX19Nb2R1bGVfc3RhcnR1cFwKKyAgICBpbnQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cCggaW50IHN0YXRlIClcCisgICAge1wKKyAgICAgICAgcmV0dXJuIEJlbmNoOjpNb2R1bGVfc3RhcnR1cChzdGF0ZSk7XAorICAgIH1cCisKKy8qIEJlbmNoOjpiZWdpbiAqLworaW5saW5lIHhkY19Wb2lkIGJlZ2luKCB4ZGNfU3RyaW5nIG1zZyApOworI2RlZmluZSBERUZJTkVfX2JlZ2luXAorICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfYmVnaW4oIHhkY19TdHJpbmcgbXNnIClcCisgICAge1wKKyAgICAgICAgQmVuY2g6OmJlZ2luKG1zZyk7XAorICAgIH1cCisKKy8qIEJlbmNoOjplbmQgKi8KK2lubGluZSB4ZGNfVm9pZCBlbmQoICApOworI2RlZmluZSBERUZJTkVfX2VuZFwKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2VuZCggdm9pZCApXAorICAgIHtcCisgICAgICAgIEJlbmNoOjplbmQoKTtcCisgICAgfVwKKworfQorI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL0JlbmNoLnhkYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvQmVuY2gueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2MDg0Y2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL0JlbmNoLnhkYwpAQCAtMCwwICsxLDMwIEBACisvKg0KKyAqICA9PT09PT09PSBhY21lL3V0aWxzL0JlbmNoLnhkYyA9PT09PT09PQ0KKyAqLw0KKw0KK2ltcG9ydCBhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2s7DQorDQorLyohIEJlbmNobWFyayB0aW1pbmcgc3VwcG9ydCAqLw0KK0BNb2R1bGVTdGFydHVwDQorbW9kdWxlIEJlbmNoIHsNCisgDQorICAgIC8qISBTZWxlY3RhYmxlIElDbG9jayBzZXJ2aWNlIHByb3ZpZGVyICovDQorICAgIHByb3h5IFBDbG9jayBpbmhlcml0cyBJQ2xvY2s7DQorIA0KKyAgICAvKiEgRW5hYmxlL2Rpc2FibGUgYmVuY2htYXJrIGZ1bmN0aW9ucyAqLw0KKyAgICBjb25maWcgQm9vbCBlbmFibGVGbGFnID0gdHJ1ZTsNCisgDQorICAgIC8qISBTdGFydCB0aGUgYmVuY2htYXJrICovDQorICAgIFZvaWQgYmVnaW4oU3RyaW5nIG1zZyk7DQorIA0KKyAgICAvKiEgRW5kIHRoZSBiZW5jaG1hcmsgYW5kIHByaW50IHRoZSBjdXJyZW50IHRpbWUgKi8NCisgICAgVm9pZCBlbmQoKTsNCisgDQoraW50ZXJuYWw6DQorIA0KKyAgICBzdHJ1Y3QgTW9kdWxlX1N0YXRlIHsNCisgICAgICAgIFN0cmluZyBiZWdpbk1zZzsgICAgLyogY3VycmVudCBiZWdpbigpIG1lc3NhZ2UgKi8NCisgICAgICAgIEludCBiZWdpbkNsb2NrOyAgICAgLyogYmVnaW4oKSBzdGFydCB0aW1lICovDQorICAgICAgICBJbnQgb3ZlcmhlYWQ7ICAgICAgIC8qIHRpbWluZyBvdmVyaGVhZCBmYWN0b3IgKi8NCisgICAgfTsNCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9CZW5jaC54cyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvQmVuY2gueHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBhMGY1NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvQmVuY2gueHMKQEAgLTAsMCArMSwyMyBAQAorLyoNCisgKiAgPT09PT09PT0gYWNtZS91dGlscy9CZW5jaC54cyA9PT09PT09PQ0KKyAqLw0KKw0KK2Z1bmN0aW9uIG1vZHVsZSR1c2UoKQ0KK3sNCisgICAgeGRjLnVzZU1vZHVsZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCcpOw0KKyAgICB4ZGMudXNlTW9kdWxlKCd4ZGMucnVudGltZS5TeXN0ZW0nKTsNCisgDQorICAgIHZhciBCZW5jaCA9IHhkYy51c2VNb2R1bGUoJ2FjbWUudXRpbHMuQmVuY2gnKTsNCisNCisgICAgaWYgKEJlbmNoLlBDbG9jayA9PSBudWxsKSB7DQorICAgICAgICB2YXIgQ2xvY2tTdGQgPSB4ZGMudXNlTW9kdWxlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCcpOw0KKyAgICAgICAgQmVuY2guUENsb2NrID0gQ2xvY2tTdGQ7DQorICAgIH0NCit9DQorIA0KK2Z1bmN0aW9uIG1vZHVsZSRzdGF0aWMkaW5pdChvYmosIHBhcmFtcykNCit7DQorICAgIG9iai5iZWdpbk1zZyA9IG51bGw7DQorICAgIG9iai5iZWdpbkNsb2NrID0gMDsNCisgICAgb2JqLm92ZXJoZWFkID0gMDsNCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLmNwcm9qZWN0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLmNwcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1M2VmYWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy8uY3Byb2plY3QKQEAgLTAsMCArMSwyNTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPD9maWxlVmVyc2lvbiA0LjAuMD8+DQorDQorPGNwcm9qZWN0Pg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyI+DQorPGNjb25maWd1cmF0aW9uIGlkPSIwLjE5ODQzMzg3NzQiPg0KKzxzdG9yYWdlTW9kdWxlIGJ1aWxkU3lzdGVtSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmNvbmZpZ3VyYXRpb25EYXRhUHJvdmlkZXIiIGlkPSIwLjE5ODQzMzg3NzQiIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyIgbmFtZT0iRGVmYXVsdCI+DQorPGV4dGVybmFsU2V0dGluZ3MvPg0KKzxleHRlbnNpb25zPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLlZDRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkdBU0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5HTERFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuR0NDRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPC9leHRlbnNpb25zPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0iY2R0QnVpbGRTeXN0ZW0iIHZlcnNpb249IjQuMC4wIj4NCis8Y29uZmlndXJhdGlvbiBhcnRpZmFjdE5hbWU9ImFjbWUudXRpbHMuY2xvY2tzIiBidWlsZFByb3BlcnRpZXM9IiIgZGVzY3JpcHRpb249IiIgaWQ9IjAuMTk4NDMzODc3NCIgbmFtZT0iRGVmYXVsdCIgcGFyZW50PSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS5jZmciPg0KKzxmb2xkZXJJbmZvIGlkPSIwLjE5ODQzMzg3NzQuIiBuYW1lPSIvIiByZXNvdXJjZVBhdGg9IiI+DQorPHRvb2xDaGFpbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUucHJlZmJhc2UudG9vbGNoYWluLjM4NjQ0MjQxNyIgbmFtZT0iTm8gVG9vbENoYWluIiByZXNvdXJjZVR5cGVCYXNlZERpc2NvdmVyeT0iZmFsc2UiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLnRvb2xjaGFpbiI+DQorPHRhcmdldFBsYXRmb3JtIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS50b29sY2hhaW4uMzg2NDQyNDE3LjU4Mzk0MzczNyIgbmFtZT0iIi8+DQorPGJ1aWxkZXIgYnVpbGRQYXRoPSIiIGNvbW1hbmQ9IiR7WERDUk9PVH0veGRjIiBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuZGVmYXVsdC5idWlsZGVyLjExOTkyMjMyNzQiIGtlZXBFbnZpcm9ubWVudEluQnVpbGRmaWxlPSJmYWxzZSIgbWFuYWdlZEJ1aWxkT249ImZhbHNlIiBuYW1lPSJHbnUgTWFrZSBCdWlsZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5kZWZhdWx0LmJ1aWxkZXIiLz4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmxpYnMuMTMxMjI4MTM3OSIgbmFtZT0iaG9sZGVyIGZvciBsaWJyYXJ5IHNldHRpbmdzIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIubGlicyIvPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuOTg1NjM4ODkwIiBuYW1lPSJHTlUgQysrIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuODM1MTg2OTkiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmcrKyIgbGFuZ3VhZ2VOYW1lPSJHTlUgQysrIiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuY3h4U291cmNlLG9yZy5lY2xpcHNlLmNkdC5jb3JlLmN4eEhlYWRlciIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZSIvPg0KKzwvdG9vbD4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLjE4NDc1NjU3NTUiIG5hbWU9IkdOVSBDIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuNDM4MDI4NjA0IiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5nY2MiIGxhbmd1YWdlTmFtZT0iR05VIEMiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5jU291cmNlLG9yZy5lY2xpcHNlLmNkdC5jb3JlLmNIZWFkZXIiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUiLz4NCis8L3Rvb2w+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci4xNzYxMTE2NzM1IiBuYW1lPSJVUEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS4yMDYwNTEzNzIxIiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXJzZXIudXBjLnVwYyIgbGFuZ3VhZ2VOYW1lPSJVUEMiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXJzZXIudXBjLnVwY1NvdXJjZSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZSIvPg0KKzwvdG9vbD4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLjU1MzAyMTI1MyIgbmFtZT0iQXNzZW1ibHkiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS44MTAzMzM5MzIiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmFzc2VtYmx5IiBsYW5ndWFnZU5hbWU9IkFzc2VtYmx5IiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuYXNtU291cmNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzwvdG9vbENoYWluPg0KKzwvZm9sZGVySW5mbz4NCis8L2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0idHJ1ZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJGaWxlUHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bGMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsQyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHNjYW5uZXJDb25maWdCdWlsZEluZm8gaW5zdGFuY2VJZD0iMC4xOTg0MzM4Nzc0Ij4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJGaWxlUHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bGMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsQyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9zY2FubmVyQ29uZmlnQnVpbGRJbmZvPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZXh0ZXJuYWxTZXR0aW5ncyIvPg0KKzwvY2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJjZHRCdWlsZFN5c3RlbSIgdmVyc2lvbj0iNC4wLjAiPg0KKzxwcm9qZWN0IGlkPSJhY21lLnV0aWxzLmNsb2Nrcy5udWxsLjExNjM5MTA3NTciIG5hbWU9ImFjbWUudXRpbHMuY2xvY2tzIi8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLmRsbHMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy8uZGxscwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLmRsbHMKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5leGVjdXRhYmxlcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5leGVjdXRhYmxlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLmV4ZWN1dGFibGVzCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy8uaW50ZXJmYWNlcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5pbnRlcmZhY2VzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy8uaW50ZXJmYWNlcwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLmxpYnJhcmllcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5saWJyYXJpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5saWJyYXJpZXMKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5wcm9qZWN0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmRjYjU0MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5wcm9qZWN0CkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+YWNtZS51dGlscy5jbG9ja3M8L25hbWU+DQorCTxjb21tZW50PjwvY29tbWVudD4NCisJPHByb2plY3RzPg0KKwk8L3Byb2plY3RzPg0KKwk8YnVpbGRTcGVjPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5nZW5tYWtlYnVpbGRlcjwvbmFtZT4NCisJCQk8dHJpZ2dlcnM+Y2xlYW4sZnVsbCxpbmNyZW1lbnRhbCw8L3RyaWdnZXJzPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT4/bmFtZT88L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFwcGVuZF9lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmF1dG9CdWlsZFRhcmdldDwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGRBcmd1bWVudHM8L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkQ29tbWFuZDwva2V5Pg0KKwkJCQkJPHZhbHVlPiR7WERDUk9PVH0veGRjPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZExvY2F0aW9uPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5jbGVhbkJ1aWxkVGFyZ2V0PC9rZXk+DQorCQkJCQk8dmFsdWU+Y2xlYW48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmNvbnRlbnRzPC9rZXk+DQorCQkJCQk8dmFsdWU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5hY3RpdmVDb25maWdTZXR0aW5nczwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQXV0b0J1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUNsZWFuQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVGdWxsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5mdWxsQnVpbGRUYXJnZXQ8L2tleT4NCisJCQkJCTx2YWx1ZT5hbGw8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnN0b3BPbkVycm9yPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUudXNlRGVmYXVsdEJ1aWxkQ21kPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuU2Nhbm5lckNvbmZpZ0J1aWxkZXI8L25hbWU+DQorCQkJPGFyZ3VtZW50cz4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwk8L2J1aWxkU3BlYz4NCisJPG5hdHVyZXM+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5jb3JlLmNuYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuU2Nhbm5lckNvbmZpZ05hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5tYW5hZ2VkQnVpbGROYXR1cmU8L25hdHVyZT4NCisJPC9uYXR1cmVzPg0KKzwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy54ZGNlbnYubWFrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODllZmIwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy54ZGNlbnYubWFrCkBAIC0wLDAgKzEsMTYgQEAKKyMKK19YRENCVUlMRENPVU5UID0gMAoraWZuZXEgKCwkKGZpbmRzdHJpbmcgcGF0aCwkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENQQVRIID0gCitvdmVycmlkZSBYRENST09UID0gRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5CitvdmVycmlkZSBYRENCVUlMRENGRyA9IC4uLy4uLy4uL2NvbmZpZy5ibGQKK2VuZGlmCitpZm5lcSAoLCQoZmluZHN0cmluZyBhcmdzLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ0FSR1MgPSAKK292ZXJyaWRlIFhEQ1RBUkdFVFMgPSAKK2VuZGlmCisjCitpZmVxICgwLDEpCitQS0dQQVRIID0gRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzOy4uLy4uLy4uCitIT1NUT1MgPSBXaW5kb3dzCitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL0Nsb2NrU3RkLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDY1OTM1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL0Nsb2NrU3RkLmMKQEAgLTAsMCArMSwxMiBAQAorLyoNCisgKiAgPT09PT09PT0gYWNtZS91dGlscy9DbG9ja1N0ZC5jID09PT09PT09DQorICovDQorDQorI2luY2x1ZGUgInBhY2thZ2UvaW50ZXJuYWwvQ2xvY2tTdGQueGRjLmgiDQorIA0KKyNpbmNsdWRlIDx0aW1lLmg+DQorIA0KK0Nsb2NrU3RkX1RpbWVWYWx1ZSBDbG9ja1N0ZF9nZXRUaW1lKCkNCit7DQorICAgIHJldHVybiAoQ2xvY2tTdGRfVGltZVZhbHVlKSBjbG9jaygpOw0KK30NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9DbG9ja1N0ZC5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTA1OTVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuaApAQCAtMCwwICsxLDM3OCBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworLyoKKyAqID09PT09PT09IEdFTkVSQVRFRCBTRUNUSU9OUyA9PT09PT09PQorICogICAgIAorICogICAgIFBST0xPR1VFCisgKiAgICAgSU5DTFVERVMKKyAqICAgICAKKyAqICAgICBJTlRFUk5BTCBERUZJTklUSU9OUworICogICAgIE1PRFVMRS1XSURFIENPTkZJR1MKKyAqICAgICBWSVJUVUFMIEZVTkNUSU9OUworICogICAgIEZVTkNUSU9OIERFQ0xBUkFUSU9OUworICogICAgIENPTlZFUlRPUlMKKyAqICAgICBTWVNURU0gRlVOQ1RJT05TCisgKiAgICAgQysrIENMSUVOVCBXUkFQUEVSIFtleHBlcmltZW50YWxdCisgKiAgICAgCisgKiAgICAgRVBJTE9HVUUKKyAqICAgICBTVEFURSBTVFJVQ1RVUkVTCisgKiAgICAgUFJFRklYIEFMSUFTRVMKKyAqICAgICBDKysgU1VQUExJRVIgV1JBUFBFUiBbZXhwZXJpbWVudGFsXQorICovCisKKworLyoKKyAqID09PT09PT09IFBST0xPR1VFID09PT09PT09CisgKi8KKworI2lmbmRlZiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9faW5jbHVkZQorI2RlZmluZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9faW5jbHVkZQorCisjaWZuZGVmIF9fbmVzdGVkX18KKyNkZWZpbmUgX19uZXN0ZWRfXworI2RlZmluZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9fdG9wX18KKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKKyNkZWZpbmUgX19leHRlcm4gZXh0ZXJuICJDIgorI2Vsc2UKKyNkZWZpbmUgX19leHRlcm4gZXh0ZXJuCisjZW5kaWYKKworI2RlZmluZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9fX1ZFUlMgMTUwCisKKworLyoKKyAqID09PT09PT09IElOQ0xVREVTID09PT09PT09CisgKi8KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworI2luY2x1ZGUgPHhkYy9ydW50aW1lL3hkYy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1R5cGVzLmg+CisjaW5jbHVkZSA8YWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaD4KKworI2luY2x1ZGUgPGFjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay5oPgorCisKKy8qCisgKiA9PT09PT09PSBBVVhJTElBUlkgREVGSU5JVElPTlMgPT09PT09PT0KKyAqLworCisvKiBUaW1lVmFsdWUgKi8KK3R5cGVkZWYgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9UaW1lVmFsdWU7CisKKworLyoKKyAqID09PT09PT09IElOVEVSTkFMIERFRklOSVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gTU9EVUxFLVdJREUgQ09ORklHUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkICovCit0eXBlZGVmIHhkY19CaXRzMzIgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0M7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZCAqLwordHlwZWRlZiB4ZGNfQml0czMyIENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DOworCisvKiBNb2R1bGVfX2RpYWdzTWFzayAqLwordHlwZWRlZiB4ZGNfQml0czE2KiBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2s7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFzayBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQzsKKworLyogTW9kdWxlX19nYXRlT2JqICovCit0eXBlZGVmIHhkY19QdHIgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9iajsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9iaiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0M7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXMgKi8KK3R5cGVkZWYgeGRjX1B0ciBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtczsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXMgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQzsKKworLyogTW9kdWxlX19pZCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkICovCit0eXBlZGVmIHhkY19Cb29sIENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DOworCisvKiBNb2R1bGVfX2xvZ2dlck9iaiAqLwordHlwZWRlZiB4ZGNfUHRyIENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9iajsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjQgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfVHlwZXNfTG9nZ2VyRnhuNCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40OworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQzsKKworLyogTW9kdWxlX19sb2dnZXJGeG44ICovCit0eXBlZGVmIHhkY19ydW50aW1lX1R5cGVzX0xvZ2dlckZ4bjggQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuODsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0M7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG4gKi8KK3R5cGVkZWYgeGRjX0Jvb2wgKCpDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikodm9pZCk7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0M7CisKKy8qIE9iamVjdF9fY291bnQgKi8KK3R5cGVkZWYgeGRjX0ludCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQzsKKworLyogT2JqZWN0X19oZWFwICovCit0eXBlZGVmIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQzsKKworLyogT2JqZWN0X19zaXplb2YgKi8KK3R5cGVkZWYgeGRjX1NpemVUIENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZjsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DOworCisvKiBPYmplY3RfX3RhYmxlICovCit0eXBlZGVmIHhkY19QdHIgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGU7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0M7CisKKworLyoKKyAqID09PT09PT09IFZJUlRVQUwgRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogRnhuc19fICovCitzdHJ1Y3QgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfRnhuc19fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19CYXNlKiBfX2Jhc2U7CisgICAgY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfU3lzRnhuczIqIF9fc3lzcDsKKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlICgqZ2V0VGltZSkodm9pZCk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfU3lzRnhuczIgX19zZnhuczsKK307CisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworX19leHRlcm4gY29uc3QgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfRnhuc19fIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQzsKKworCisvKgorICogPT09PT09PT0gRlVOQ1RJT04gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX3N0YXJ0dXAgKi8KKyNkZWZpbmUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX3N0YXJ0dXAoIHN0YXRlICkgLTEKKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9IYW5kbGVfX2xhYmVsX19TLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfSGFuZGxlX19sYWJlbCIpCitfX2V4dGVybiB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZSIpCitfX2V4dGVybiB4ZGNfQm9vbCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICk7CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY3JlYXRlX19TLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jcmVhdGUiKQorX19leHRlcm4geGRjX1B0ciBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICk7CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZGVsZXRlX19TLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19kZWxldGUiKQorX19leHRlcm4geGRjX1ZvaWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKTsKKworLyogT2JqZWN0X19kZXN0cnVjdF9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2Rlc3RydWN0X19TLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19kZXN0cnVjdCIpCitfX2V4dGVybiB4ZGNfVm9pZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKTsKKworLyogT2JqZWN0X19nZXRfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19nZXRfX1MsICJhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2dldCIpCitfX2V4dGVybiB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApOworCisvKiBPYmplY3RfX2ZpcnN0X19TICovCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZmlyc3RfX1MsICJhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2ZpcnN0IikKK19fZXh0ZXJuIHhkY19QdHIgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApOworCisvKiBPYmplY3RfX25leHRfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19uZXh0X19TLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19uZXh0IikKK19fZXh0ZXJuIHhkY19QdHIgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApOworCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfUGFyYW1zX19pbml0X19TLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfUGFyYW1zX19pbml0IikKK19fZXh0ZXJuIHhkY19Wb2lkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICk7CisKKy8qIFByb3h5X19hYnN0cmFjdF9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Qcm94eV9fYWJzdHJhY3RfX1MsICJhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Qcm94eV9fYWJzdHJhY3QiKQorX19leHRlcm4geGRjX0Jvb2wgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICk7CisKKy8qIFByb3h5X19kZWxlZ2F0ZV9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Qcm94eV9fZGVsZWdhdGVfX1MsICJhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Qcm94eV9fZGVsZWdhdGUiKQorX19leHRlcm4geGRjX1B0ciBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKTsKKworLyogZ2V0VGltZV9fRSAqLworI2RlZmluZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UKK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRSwgImFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWUiKQorX19leHRlcm4gYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FKCB2b2lkICk7Cit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0YsICJhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lIikKK19fZXh0ZXJuIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRiggdm9pZCApOworX19leHRlcm4gYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19SKCB2b2lkICk7CisKKworLyoKKyAqID09PT09PT09IENPTlZFUlRPUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfdXBDYXN0ICovCitzdGF0aWMgaW5saW5lIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19Nb2R1bGUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX3VwQ2FzdCggdm9pZCApCit7CisgICAgcmV0dXJuIChhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfTW9kdWxlKSZhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKy8qIE1vZHVsZV90b19hY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2sgKi8KKyNkZWZpbmUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX3RvX2FjbWVfdXRpbHNfY2xvY2tzX0lDbG9jayBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfdXBDYXN0CisKKworLyoKKyAqID09PT09PT09IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfc3RhcnR1cERvbmUgKi8KKyNkZWZpbmUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX3N0YXJ0dXBEb25lKCkgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpCisKKy8qIE9iamVjdF9oZWFwICovCisjZGVmaW5lIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9oZWFwKCkgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwX19DCisKKy8qIE1vZHVsZV9oZWFwICovCisjZGVmaW5lIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9oZWFwKCkgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwX19DCisKKy8qIE1vZHVsZV9pZCAqLworc3RhdGljIGlubGluZSBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfaWQoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQzsKK30KKworLyogTW9kdWxlX2hhc01hc2sgKi8KK3N0YXRpYyBpbmxpbmUgeGRjX0Jvb2wgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX2hhc01hc2soIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgIT0gTlVMTDsKK30KKworLyogTW9kdWxlX2dldE1hc2sgKi8KK3N0YXRpYyBpbmxpbmUgeGRjX0JpdHMxNiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfZ2V0TWFzayggdm9pZCApIAoreworICAgIHJldHVybiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyAhPSBOVUxMID8gKmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIDogMDsKK30KKworLyogTW9kdWxlX3NldE1hc2sgKi8KK3N0YXRpYyBpbmxpbmUgeGRjX1ZvaWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX3NldE1hc2soIHhkY19CaXRzMTYgbWFzayApIAoreworICAgIGlmIChhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyAhPSBOVUxMKSAqYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSBtYXNrOworfQorCisKKy8qCisgKiA9PT09PT09PSBDKysgQ0xJRU5UIFdSQVBQRVIgW2V4cGVyaW1lbnRhbF0gPT09PT09PT0KKyAqLworCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKK25hbWVzcGFjZSBhY21lX3V0aWxzX2Nsb2NrcyB7IG5hbWVzcGFjZSBDbG9ja1N0ZCB7CisKKy8qIENsb2NrU3RkOjpUaW1lVmFsdWUgKi8KK3R5cGVkZWYgeGRjX0JpdHMzMiBUaW1lVmFsdWU7CisKKy8qIENsb2NrU3RkOjpnZXRUaW1lICovCitzdGF0aWMgaW5saW5lIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgZ2V0VGltZSggICkKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZSgpOworfQorCisvKiBDbG9ja1N0ZDo6TW9kdWxlICovCitjbGFzcyBNb2R1bGUgeworICAgIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZSBfX21vZDsKK3B1YmxpYzoKKyAgICBNb2R1bGUoKSB7IF9fbW9kID0gJmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQzsgfQorICAgIG9wZXJhdG9yIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZSgpIHsgcmV0dXJuIF9fbW9kOyB9CisgICAgb3BlcmF0b3IgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZSgpIHsgcmV0dXJuIChhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfTW9kdWxlKV9fbW9kOyB9CisgICAgb3BlcmF0b3IgYWNtZV91dGlsc19jbG9ja3M6OklDbG9jazo6TW9kdWxlJigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8YWNtZV91dGlsc19jbG9ja3M6OklDbG9jazo6TW9kdWxlJj4oKnRoaXMpOyB9Cit9OworCit9fQorI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCisKKworLyoKKyAqID09PT09PT09IEVQSUxPR1VFID09PT09PT09CisgKi8KKworI2lmZGVmIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX190b3BfXworI3VuZGVmIF9fbmVzdGVkX18KKyNlbmRpZgorCisjZW5kaWYgLyogYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfX2luY2x1ZGUgKi8KKworCisvKgorICogPT09PT09PT0gU1RBVEUgU1RSVUNUVVJFUyA9PT09PT09PQorICovCisKKyNpZiBkZWZpbmVkKF9fY29uZmlnX18pIHx8ICghZGVmaW5lZChfX25lc3RlZF9fKSAmJiBkZWZpbmVkKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX19pbnRlcm5hbGFjY2VzcykpCisKKyNpZm5kZWYgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfX2luY2x1ZGVfc3RhdGUKKyNkZWZpbmUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfX2luY2x1ZGVfc3RhdGUKKworLyogQysrIHdyYXBwZXIgKi8KKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorbmFtZXNwYWNlIGFjbWVfdXRpbHNfY2xvY2tzIHsgbmFtZXNwYWNlIENsb2NrU3RkIHsKKworCit9fQorI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCisKKyNlbmRpZiAvKiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9faW5jbHVkZV9zdGF0ZSAqLworCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0gUFJFRklYIEFMSUFTRVMgPT09PT09PT0KKyAqLworCisjaWYgIWRlZmluZWQoX19uZXN0ZWRfXykgJiYgIWRlZmluZWQoYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfX25vbG9jYWxuYW1lcykKKworLyogbW9kdWxlIHByZWZpeCAqLworI2RlZmluZSBDbG9ja1N0ZF9UaW1lVmFsdWUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfVGltZVZhbHVlCisjZGVmaW5lIENsb2NrU3RkX2dldFRpbWUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZQorI2RlZmluZSBDbG9ja1N0ZF9Nb2R1bGVfbmFtZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfbmFtZQorI2RlZmluZSBDbG9ja1N0ZF9Nb2R1bGVfaWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX2lkCisjZGVmaW5lIENsb2NrU3RkX01vZHVsZV9zdGFydHVwIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9zdGFydHVwCisjZGVmaW5lIENsb2NrU3RkX01vZHVsZV9zdGFydHVwRG9uZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfc3RhcnR1cERvbmUKKyNkZWZpbmUgQ2xvY2tTdGRfTW9kdWxlX2hhc01hc2sgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX2hhc01hc2sKKyNkZWZpbmUgQ2xvY2tTdGRfTW9kdWxlX2dldE1hc2sgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX2dldE1hc2sKKyNkZWZpbmUgQ2xvY2tTdGRfTW9kdWxlX3NldE1hc2sgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX3NldE1hc2sKKyNkZWZpbmUgQ2xvY2tTdGRfT2JqZWN0X2hlYXAgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X2hlYXAKKyNkZWZpbmUgQ2xvY2tTdGRfTW9kdWxlX2hlYXAgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX2hlYXAKKyNkZWZpbmUgQ2xvY2tTdGRfTW9kdWxlX3VwQ2FzdCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfdXBDYXN0CisjZGVmaW5lIENsb2NrU3RkX01vZHVsZV90b19hY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2sgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX3RvX2FjbWVfdXRpbHNfY2xvY2tzX0lDbG9jaworCisvKiBDKysgd3JhcHBlciAqLworI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpICYmICFkZWZpbmVkKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX19JTlRFUk5BTF9fKQorbmFtZXNwYWNlIENsb2NrU3RkID0gYWNtZV91dGlsc19jbG9ja3M6OkNsb2NrU3RkOworI2VuZGlmCisKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSBDKysgU1VQUExJRVIgV1JBUFBFUiBbZXhwZXJpbWVudGFsXSA9PT09PT09PQorICovCisKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiBkZWZpbmVkKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX19JTlRFUk5BTF9fKQorbmFtZXNwYWNlIENsb2NrU3RkIHsKKyAgICB1c2luZyBhY21lX3V0aWxzX2Nsb2Nrczo6Q2xvY2tTdGQ6OlRpbWVWYWx1ZTsKKworLyogQ2xvY2tTdGQ6OmdldFRpbWUgKi8KK2lubGluZSBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIGdldFRpbWUoICApOworI2RlZmluZSBERUZJTkVfX2dldFRpbWVcCisgICAgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lKCB2b2lkIClcCisgICAge1wKKyAgICAgICAgcmV0dXJuIENsb2NrU3RkOjpnZXRUaW1lKCk7XAorICAgIH1cCisKK30KKyNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQueGRjIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRjNzhjMmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9DbG9ja1N0ZC54ZGMKQEAgLTAsMCArMSw4IEBACisvKg0KKyAqICA9PT09PT09PSBhY21lL3V0aWxzL0Nsb2NrU3RkLnhkYyA9PT09PT09PQ0KKyAqLw0KKw0KKy8qISBQb3J0YWJsZSBJQ2xvY2sgbW9kdWxlICovDQorbW9kdWxlIENsb2NrU3RkIGluaGVyaXRzIElDbG9jayB7DQorICAgIC8qIG5vIGFkZGl0aW9uYWwgZmVhdHVyZXMgb3IgaW50ZXJuYWwgZGV0YWlscyAqLw0KK30NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4MmQ3NWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaApAQCAtMCwwICsxLDE3MSBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworLyoKKyAqID09PT09PT09IEdFTkVSQVRFRCBTRUNUSU9OUyA9PT09PT09PQorICogICAgIAorICogICAgIFBST0xPR1VFCisgKiAgICAgSU5DTFVERVMKKyAqICAgICAKKyAqICAgICBWSVJUVUFMIEZVTkNUSU9OUworICogICAgIEZVTkNUSU9OIFNUVUJTCisgKiAgICAgRlVOQ1RJT04gU0VMRUNUT1JTCisgKiAgICAgQysrIENMSUVOVCBXUkFQUEVSIFtleHBlcmltZW50YWxdCisgKiAgICAgCisgKiAgICAgRVBJTE9HVUUKKyAqICAgICBQUkVGSVggQUxJQVNFUworICovCisKKworLyoKKyAqID09PT09PT09IFBST0xPR1VFID09PT09PT09CisgKi8KKworI2lmbmRlZiBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfX2luY2x1ZGUKKyNkZWZpbmUgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX19pbmNsdWRlCisKKyNpZm5kZWYgX19uZXN0ZWRfXworI2RlZmluZSBfX25lc3RlZF9fCisjZGVmaW5lIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19fdG9wX18KKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKKyNkZWZpbmUgX19leHRlcm4gZXh0ZXJuICJDIgorI2Vsc2UKKyNkZWZpbmUgX19leHRlcm4gZXh0ZXJuCisjZW5kaWYKKworI2RlZmluZSBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfX19WRVJTIDE1MAorCisKKy8qCisgKiA9PT09PT09PSBJTkNMVURFUyA9PT09PT09PQorICovCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKKyNpbmNsdWRlIDx4ZGMvcnVudGltZS94ZGMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UeXBlcy5oPgorI2luY2x1ZGUgPGFjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg+CisKKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9JTW9kdWxlLmg+CisKKworLyoKKyAqID09PT09PT09IEFVWElMSUFSWSBERUZJTklUSU9OUyA9PT09PT09PQorICovCisKKy8qIFRpbWVWYWx1ZSAqLwordHlwZWRlZiB4ZGNfQml0czMyIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWU7CisKKworLyoKKyAqID09PT09PT09IFZJUlRVQUwgRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogRnhuc19fICovCitzdHJ1Y3QgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0Z4bnNfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSogX19iYXNlOworICAgIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX1N5c0Z4bnMyKiBfX3N5c3A7CisgICAgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSAoKmdldFRpbWUpKHZvaWQpOworICAgIHhkY19ydW50aW1lX1R5cGVzX1N5c0Z4bnMyIF9fc2Z4bnM7Cit9OworCisvKiBJbnRlcmZhY2VfX0JBU0VfX0MgKi8KK19fZXh0ZXJuIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQzsKKworCisvKgorICogPT09PT09PT0gRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfaWQgKi8KK3N0YXRpYyBpbmxpbmUgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZV9pZCggYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZSBtb2QgKQoreworICAgIHJldHVybiBtb2QtPl9fc3lzcC0+X19taWQ7Cit9CisKKy8qIGdldFRpbWUgKi8KK3N0YXRpYyBpbmxpbmUgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfZ2V0VGltZSggYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZSBfX2luc3QgKQoreworICAgIHJldHVybiBfX2luc3QtPmdldFRpbWUoKTsKK30KKworCisvKgorICogPT09PT09PT0gRlVOQ1RJT04gU0VMRUNUT1JTID09PT09PT09CisgKi8KKworLyogZ2V0VGltZV97RnhuVCxmeG5QfSAqLwordHlwZWRlZiBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlICgqYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX2dldFRpbWVfRnhuVCkodm9pZCk7CitzdGF0aWMgaW5saW5lIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19nZXRUaW1lX0Z4blQgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX2dldFRpbWVfZnhuUCggYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZSBfX2luc3QgKQoreworICAgIHJldHVybiAoYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX2dldFRpbWVfRnhuVClfX2luc3QtPmdldFRpbWU7Cit9CisKKworLyoKKyAqID09PT09PT09IEMrKyBDTElFTlQgV1JBUFBFUiBbZXhwZXJpbWVudGFsXSA9PT09PT09PQorICovCisKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorbmFtZXNwYWNlIGFjbWVfdXRpbHNfY2xvY2tzIHsgbmFtZXNwYWNlIElDbG9jayB7CisKKy8qIElDbG9jazo6VGltZVZhbHVlICovCit0eXBlZGVmIHhkY19CaXRzMzIgVGltZVZhbHVlOworCisvKiBJQ2xvY2s6Ok1vZHVsZSAqLworY2xhc3MgTW9kdWxlIHsKKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfTW9kdWxlIF9fbW9kOworcHVibGljOgorICAgIE1vZHVsZSgpIHsgX19tb2QgPSBOVUxMOyB9CisgICAgTW9kdWxlKCBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfTW9kdWxlIG0gKSB7IF9fbW9kID0gbTsgfQorICAgIE1vZHVsZSYgb3BlcmF0b3IgPSggYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZSBtICkgeyBfX21vZCA9IG07IHJldHVybiAqdGhpczsgfQorICAgIG9wZXJhdG9yIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19Nb2R1bGUoKSB7IHJldHVybiBfX21vZDsgfQorCisvKiBJQ2xvY2s6Ok1vZHVsZTo6Z2V0VGltZSAqLworICAgIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgZ2V0VGltZSggICkKKyAgICB7CisgICAgICAgIHJldHVybiBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfZ2V0VGltZShfX21vZCk7CisgICAgfQorfTsKKworfX0KKyNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLworCisKKy8qCisgKiA9PT09PT09PSBFUElMT0dVRSA9PT09PT09PQorICovCisKKyNpZmRlZiBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfX3RvcF9fCisjdW5kZWYgX19uZXN0ZWRfXworI2VuZGlmCisKKyNlbmRpZiAvKiBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfX2luY2x1ZGUgKi8KKworCisvKgorICogPT09PT09PT0gUFJFRklYIEFMSUFTRVMgPT09PT09PT0KKyAqLworCisjaWYgIWRlZmluZWQoX19uZXN0ZWRfXykgJiYgIWRlZmluZWQoYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX19ub2xvY2FsbmFtZXMpCisKKy8qIG1vZHVsZSBwcmVmaXggKi8KKyNkZWZpbmUgSUNsb2NrX01vZHVsZSBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfTW9kdWxlCisjZGVmaW5lIElDbG9ja19UaW1lVmFsdWUgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZQorI2RlZmluZSBJQ2xvY2tfZ2V0VGltZSBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfZ2V0VGltZQorI2RlZmluZSBJQ2xvY2tfZ2V0VGltZV9meG5QIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19nZXRUaW1lX2Z4blAKKyNkZWZpbmUgSUNsb2NrX2dldFRpbWVfRnhuVCBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfZ2V0VGltZV9GeG5UCisjZGVmaW5lIElDbG9ja19Nb2R1bGVfbmFtZSBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfTW9kdWxlX25hbWUKKworLyogQysrIHdyYXBwZXIgKi8KKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiAhZGVmaW5lZChhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfX0lOVEVSTkFMX18pCituYW1lc3BhY2UgSUNsb2NrID0gYWNtZV91dGlsc19jbG9ja3M6OklDbG9jazsKKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay54ZGMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2sueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlNTZjNmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2sueGRjCkBAIC0wLDAgKzEsMTMgQEAKKy8qDQorICogID09PT09PT09IGFjbWUvdXRpbHMvSUNsb2NrLnhkYyA9PT09PT09PQ0KKyAqLw0KKw0KKy8qISBBYnN0cmFjdCBjbG9jayAqLw0KK2ludGVyZmFjZSBJQ2xvY2sgew0KKyANCisgICAvKiEgVGltZSB2YWx1ZSB0eXBlICovDQorICAgdHlwZWRlZiBCaXRzMzIgVGltZVZhbHVlOw0KKyANCisgICAvKiEgR2V0IHRoZSBjdXJyZW50IHRpbWUgKi8NCisgICBUaW1lVmFsdWUgZ2V0VGltZSgpOw0KK30NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9saWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0YmUxNGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9saWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9saWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UC5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9saWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UC5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWIxOWVlZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQLm1hawpAQCAtMCwwICsxLDc3IEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisjICB0YXJnZXQgY29tcGF0aWJpbGl0eSBrZXkgPSB0aS50YXJnZXRzLkM2NFB7MSwwLDYuMSw1CisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL0Nsb2NrU3RkLm82NFAuZGVwCitlbmRpZgorCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL0Nsb2NrU3RkLm82NFA6IENsb2NrU3RkLmMgbGliL2FjbWUudXRpbHMuY2xvY2tzLmE2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2NrcyAtZnI9Li9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2NrcyAtcyBvNjRQICQ8IC1DICAgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2NrcyAtZnI9Li9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL0Nsb2NrU3RkLnM2NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5zNjRQOiBDbG9ja1N0ZC5jIGxpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgLW4gJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MgLWZyPS4vcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MgLXMgbzY0UCAkPCAtQyAgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MgLWZyPS4vcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL0Nsb2NrU3RkLnM2NFA6Q19ESVI9CitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQuczY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQuczY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm82NFAuZGVwCitlbmRpZgorCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm82NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MubzY0UDogcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLmMgbGliL2FjbWUudXRpbHMuY2xvY2tzLmE2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZSAtcyBvNjRQICQ8IC1DICAgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vNjRQOkNfRElSPQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MubzY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MuczY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5zNjRQOiBwYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MuYyBsaWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQIC1uICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UgLWZyPS4vcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UgLWZyPS4vcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLnM2NFA6Q19ESVI9CitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLnM2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5zNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworY2xlYW4sNjRQIDo6CisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vNjRQCisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MubzY0UAorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQuczY0UAorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLnM2NFAKKworbGliL2FjbWUudXRpbHMuY2xvY2tzLmE2NFA6IHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vNjRQIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MubzY0UCBsaWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UC5tYWsKKworY2xlYW46OgorCS0kKFJNKSBsaWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UC5tYWsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMmE2NzYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvbGliL2FjbWUudXRpbHMuY2xvY2tzLmE4NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVy5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9saWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiNWZlOWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9saWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cubWFrCkBAIC0wLDAgKzEsNzcgQEAKKyMKKyMgIERvIG5vdCBlZGl0IHRoaXMgZmlsZS4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSAKKyMgIHBhY2thZ2UuYmxkLiAgQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBmaWxlIHdpbGwgYmUgCisjICBvdmVyd3JpdHRlbiB3aGVuZXZlciBtYWtlZmlsZXMgYXJlIHJlLWdlbmVyYXRlZC4KKyMKKyMgIHRhcmdldCBjb21wYXRpYmlsaXR5IGtleSA9IGdudS50YXJnZXRzLk1pbmd3ezEsMCwzLjQsNQorIworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vODZHVy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL0Nsb2NrU3RkLm84NkdXOiBDbG9ja1N0ZC5jIGxpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjICAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL0Nsb2NrU3RkLm84NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQuczg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5zODZHVzogQ2xvY2tTdGQuYyBsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDg2R1cgLVMgJDwgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAtYyAgLXggYyAtUyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL0Nsb2NrU3RkLnM4NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5zODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQuczg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vODZHVy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3Mubzg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3Mubzg2R1c6IHBhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5jIGxpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjICAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm84NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3Mubzg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3Muczg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3Muczg2R1c6IHBhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5jIGxpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAtUyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjIC1TIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgIC1vICRAICQ8CisJJChNS0RFUCkgLW8gJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlLyAtcyBvODZHVyAkPCAtQyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpIAorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3Muczg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5zODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLnM4NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworY2xlYW4sODZHVyA6OgorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzg2R1cKKwktJChSTSkgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vODZHVworCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQuczg2R1cKKwktJChSTSkgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5zODZHVworCitsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1c6IHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vODZHVyBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm84NkdXIGxpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVy5tYWsKKworY2xlYW46OgorCS0kKFJNKSBsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cubWFrCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLmJsZCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UuYmxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NDZmMzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLmJsZApAQCAtMCwwICsxLDE0IEBACisvKg0KKyAqICA9PT09PT09PSBhY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLmJsZCA9PT09PT09PQ0KKyAqLw0KKw0KK3ZhciBCdWlsZCA9IHhkYy51c2VNb2R1bGUoJ3hkYy5ibGQuQnVpbGRFbnZpcm9ubWVudCcpOw0KK3ZhciBQa2cgPSB4ZGMudXNlTW9kdWxlKCd4ZGMuYmxkLlBhY2thZ2VDb250ZW50cycpOw0KKyANCit2YXIgTElCX05BTUUgPSAibGliLyIgKyBQa2cubmFtZTsNCit2YXIgTElCX1NSQ1MgPSBbIkNsb2NrU3RkLmMiXTsNCisgDQorZm9yIGVhY2ggKHZhciB0YXJnIGluIEJ1aWxkLnRhcmdldHMpIHsNCisgICAgUGtnLmFkZExpYnJhcnkoTElCX05BTUUsIHRhcmcpLmFkZE9iamVjdHMoTElCX1NSQ1MpOw0KK30NCisNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3N2NkY2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLm1hawpAQCAtMCwwICsxLDI1NyBAQAorIworIyAgRG8gbm90IGVkaXQgdGhpcyBmaWxlLiAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIAorIyAgcGFja2FnZS5ibGQuICBBbnkgbW9kaWZpY2F0aW9ucyB0byB0aGlzIGZpbGUgd2lsbCBiZSAKKyMgIG92ZXJ3cml0dGVuIHdoZW5ldmVyIG1ha2VmaWxlcyBhcmUgcmUtZ2VuZXJhdGVkLgorIworCit1bmV4cG9ydCBNQUtFRklMRV9MSVNUCitvdmVycmlkZSBQS0dESVIgPSBhY21lL3V0aWxzL2Nsb2NrcworWERDSU5DUyA9IC1JLiAtSSQoc3RyaXAgJChzdWJzdCA7LCAtSSwkKHN1YnN0ICQoc3BhY2UpLFwkKHNwYWNlKSwkKFhQS0dQQVRIKSkpKQorWERDQ0ZHRElSID0gcGFja2FnZS9jZmcvCisKKyMKKyMgVGhlIGZvbGxvd2luZyBkZXBlbmRlbmNpZXMgZW5zdXJlIHBhY2thZ2UubWFrIGlzIHJlYnVpbHQKKyMgaW4gdGhlIGV2ZW50IHRoYXQgc29tZSBpbmNsdWRlZCBCT00gc2NyaXB0IGNoYW5nZXMuCisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0lUYXJnZXQueHMKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9jb25maWcuYmxkOgorcGFja2FnZS5tYWs6IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9jb25maWcuYmxkCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUGFja2FnZUNvbnRlbnRzLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1BhY2thZ2VDb250ZW50cy54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9MaW51eDg2LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9MaW51eDg2LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9JVGFyZ2V0LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL0lUYXJnZXQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9NaW5ndy54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvTWluZ3cueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL01WQXJtOS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvTVZBcm05LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2k6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2k6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvVUNBcm05LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9VQ0FybTkueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90ZW1wbGF0ZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvTVNQNDMwLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL01TUDQzMC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9fZ2VuLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL19nZW4ueHMKK3BhY2thZ2UubWFrOiBwYWNrYWdlLmJsZAorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9JVGFyZ2V0LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9SZXBvc2l0b3J5LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1JlcG9zaXRvcnkueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvU2NyaXB0LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1NjcmlwdC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvQnVpbGRFbnZpcm9ubWVudC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9CdWlsZEVudmlyb25tZW50LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9MaWJyYXJ5LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0xpYnJhcnkueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvVXRpbHMueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvVXRpbHMueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9FeGVjdXRhYmxlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0V4ZWN1dGFibGUueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXRGaWx0ZXIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldEZpbHRlci54cworZW5kaWYKKwordGkudGFyZ2V0cy5DNjRQLnJvb3REaXIgPz0gZDovdGkvYzYwMDAvYWxjCit0aS50YXJnZXRzLnBhY2thZ2VCYXNlID89IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzLworZ251LnRhcmdldHMuTWluZ3cucm9vdERpciA/PSBlOi9ydHNjL21pbmd3CitnbnUudGFyZ2V0cy5wYWNrYWdlQmFzZSA/PSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvCisuUFJFQ0lPVVM6ICQoWERDQ0ZHRElSKS8lLm82NFAKKy5QSE9OWTogYWxsLDY0UCAuZGxscyw2NFAgLmV4ZWN1dGFibGVzLDY0UCB0ZXN0LDY0UAorYWxsLDY0UDogLmV4ZWN1dGFibGVzLDY0UAorLmV4ZWN1dGFibGVzLDY0UDogLmxpYnJhcmllcyw2NFAKKy5leGVjdXRhYmxlcyw2NFA6IC5kbGxzLDY0UAorLmRsbHMsNjRQOiAubGlicmFyaWVzLDY0UAorLmxpYnJhcmllcyw2NFA6IC5pbnRlcmZhY2VzCisJQCQoUk0pICRACisJQCQoVE9VQ0gpICIkQCIKKworLmhlbHA6OgorCUAkKEVDSE8pIHhkYyB0ZXN0LDY0UAorCUAkKEVDSE8pIHhkYyAuZXhlY3V0YWJsZXMsNjRQCisJQCQoRUNITykgeGRjIC5saWJyYXJpZXMsNjRQCisJQCQoRUNITykgeGRjIC5kbGxzLDY0UAorCisuUFJFQ0lPVVM6ICQoWERDQ0ZHRElSKS8lLm84NkdXCisuUEhPTlk6IGFsbCw4NkdXIC5kbGxzLDg2R1cgLmV4ZWN1dGFibGVzLDg2R1cgdGVzdCw4NkdXCithbGwsODZHVzogLmV4ZWN1dGFibGVzLDg2R1cKKy5leGVjdXRhYmxlcyw4NkdXOiAubGlicmFyaWVzLDg2R1cKKy5leGVjdXRhYmxlcyw4NkdXOiAuZGxscyw4NkdXCisuZGxscyw4NkdXOiAubGlicmFyaWVzLDg2R1cKKy5saWJyYXJpZXMsODZHVzogLmludGVyZmFjZXMKKwlAJChSTSkgJEAKKwlAJChUT1VDSCkgIiRAIgorCisuaGVscDo6CisJQCQoRUNITykgeGRjIHRlc3QsODZHVworCUAkKEVDSE8pIHhkYyAuZXhlY3V0YWJsZXMsODZHVworCUAkKEVDSE8pIHhkYyAubGlicmFyaWVzLDg2R1cKKwlAJChFQ0hPKSB4ZGMgLmRsbHMsODZHVworCisKK2FsbDogLmV4ZWN1dGFibGVzIAorLmV4ZWN1dGFibGVzOiAubGlicmFyaWVzIC5kbGxzCisubGlicmFyaWVzOiAuaW50ZXJmYWNlcworCitQS0dDRkdTIDo9ICQod2lsZGNhcmQgcGFja2FnZS54cykgcGFja2FnZS9idWlsZC5jZmcKKy5pbnRlcmZhY2VzOiBwYWNrYWdlL3BhY2thZ2UueGRjLmluYyBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oIHBhY2thZ2UueGRjICQoUEtHQ0ZHUykKKworLWluY2x1ZGUgcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAKK3BhY2thZ2UvJS54ZGMuaW5jIHBhY2thZ2UvJV9hY21lLnV0aWxzLmNsb2Nrcy5jIHBhY2thZ2UvJS5kZWZzLmg6ICUueGRjICQoUEtHQ0ZHUykKKwlAJChNU0cpIGdlbmVyYXRpbmcgaW50ZXJmYWNlcyBmb3IgcGFja2FnZSBhY21lLnV0aWxzLmNsb2NrcyIgKGJlY2F1c2UgJEAgaXMgb2xkZXIgdGhhbiAkKGZpcnN0d29yZCAkPykpIiAuLi4KKwkkKFhTUlVOKSAtZiB4ZGMvc2VydmljZXMvaW50ZXJuL2NtZC9idWlsZC54cyAkKE1LX0lETE9QVFMpIC1tIHBhY2thZ2UvcGFja2FnZS54ZGMuZGVwIC1pIHBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIHBhY2thZ2UueGRjCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL3BhY2thZ2UuY2ZnLmRlcAorZW5kaWYKKworcGFja2FnZS9wYWNrYWdlLmV4dC54bWw6IHBhY2thZ2UvcGFja2FnZS5jZmcueGRjLmluYworcGFja2FnZS9wYWNrYWdlLmNmZy54ZGMuaW5jOiAkKFhEQ1JPT1QpL3BhY2thZ2VzL3hkYy9jZmcvY2ZnaW5jLmpzIHBhY2thZ2UueGRjCisJQCQoTVNHKSBnZW5lcmF0aW5nIHNjaGVtYSBpbmNsdWRlIGZpbGUgbGlzdCAuLi4KKwkkKENPTkZJRykgLWYgJChYRENST09UKS9wYWNrYWdlcy94ZGMvY2ZnL2NmZ2luYy5qcyBhY21lLnV0aWxzLmNsb2NrcyAkQAorCisubGlicmFyaWVzLDg2R1cgLmxpYnJhcmllczogbGliL2FjbWUudXRpbHMuY2xvY2tzLmE4NkdXCisKKy1pbmNsdWRlIGxpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVy5tYWsKK2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVzogCisJJChSTSkgJEAKKwlAJChNU0cpIGFyY2hpdmluZyBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzg2R1cgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vODZHVyAgaW50byAkQCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL21pbmd3MzIvYmluL2FyICBjciAkQCAgIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vODZHVyBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm84NkdXIAorbGliL2FjbWUudXRpbHMuY2xvY2tzLmE4NkdXOkxEX0xJQlJBUllfUEFUSD0KK2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitjbGVhbiw4NkdXIGNsZWFuOjoKKwktJChSTSkgbGliL2FjbWUudXRpbHMuY2xvY2tzLmE4NkdXCisubGlicmFyaWVzLDY0UCAubGlicmFyaWVzOiBsaWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UAorCistaW5jbHVkZSBsaWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UC5tYWsKK2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQOiAKKwkkKFJNKSAkQAorCUAkKE1TRykgYXJjaGl2aW5nIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vNjRQIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MubzY0UCAgaW50byAkQCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vYXI2eCAgcnEgJEAgICBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzY0UCBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm82NFAgCitsaWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UDpDX0RJUj0KK2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworY2xlYW4sNjRQIGNsZWFuOjoKKwktJChSTSkgbGliL2FjbWUudXRpbHMuY2xvY2tzLmE2NFAKK3Rlc3Q6OworJSxjb3B5OgorCUAkKGlmICQ8LCwkKE1TRykgZG9uXCd0IGtub3cgaG93IHRvIGJ1aWxkICQqOyBleGl0IDEpCisJQCQoTVNHKSBjcCAkPCAkQAorCSQoUk0pICRACisJJChDUCkgJDwgJEAKK0Nsb2NrU3RkLm82NFAsY29weSA6IHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vNjRQCitwYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLnM4NkdXLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLnM4NkdXCitDbG9ja1N0ZC5zNjRQLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQuczY0UAorcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vODZHVyxjb3B5IDogcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vODZHVworQ2xvY2tTdGQuczg2R1csY29weSA6IHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5zODZHVworQ2xvY2tTdGQubzg2R1csY29weSA6IHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vODZHVworcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vNjRQLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm82NFAKK3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MuczY0UCxjb3B5IDogcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5zNjRQCisKKyQoWERDQ0ZHRElSKSUuYyAkKFhEQ0NGR0RJUiklLmggJChYRENDRkdESVIpJS54ZGw6ICQoWERDQ0ZHRElSKSUuY2ZnIC5pbnRlcmZhY2VzICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzCisJQCQoTVNHKSAiY29uZmlndXJpbmcgJChfUFJPR19OQU1FKSBmcm9tICQ8IC4uLiIKKwkkKENPTkZJRykgJChfUFJPR19YU09QVFMpIHhkYy5jZmcgJChfUFJPR19OQU1FKSAkKFhEQ0NGR0RJUikkKi5jZmcgJChYRENDRkdESVIpJCoKKworLlBIT05ZOiByZWxlYXNlLGFjbWVfdXRpbHNfY2xvY2tzCithY21lX3V0aWxzX2Nsb2Nrcy50YXI6IGxpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQCithY21lX3V0aWxzX2Nsb2Nrcy50YXI6IHBhY2thZ2UvYnVpbGQuY2ZnCithY21lX3V0aWxzX2Nsb2Nrcy50YXI6IHBhY2thZ2UvcGFja2FnZS5jZmcueGRjLmluYworYWNtZV91dGlsc19jbG9ja3MudGFyOiBwYWNrYWdlL3BhY2thZ2UuZXh0LnhtbAorYWNtZV91dGlsc19jbG9ja3MudGFyOiBwYWNrYWdlL3BhY2thZ2UueGRjLmluYworYWNtZV91dGlsc19jbG9ja3MudGFyOiBsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cKK2FjbWVfdXRpbHNfY2xvY2tzLnRhcjogcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKK2FjbWVfdXRpbHNfY2xvY2tzLnRhcjogcGFja2FnZS9wYWNrYWdlLnJlbC5kb3QKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL3JlbC9hY21lX3V0aWxzX2Nsb2Nrcy50YXIuZGVwCitlbmRpZgorcGFja2FnZS9yZWwvYWNtZV91dGlsc19jbG9ja3MvYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLnJlbC54bWw6CisKK2FjbWVfdXRpbHNfY2xvY2tzLnRhcjogcGFja2FnZS9yZWwvYWNtZV91dGlsc19jbG9ja3MueGRjLmluYyBwYWNrYWdlL3JlbC9hY21lX3V0aWxzX2Nsb2Nrcy9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UucmVsLnhtbAorCUAkKE1TRykgbWFraW5nIHJlbGVhc2UgZmlsZSAkQCAiKGJlY2F1c2Ugb2YgJChmaXJzdHdvcmQgJD8pKSIgLi4uCisJLSQoUk0pICRACisJJChjYWxsIE1LUkVMVEFSLHBhY2thZ2UvcmVsL2FjbWVfdXRpbHNfY2xvY2tzLnhkYy5pbmMscGFja2FnZS9yZWwvYWNtZV91dGlsc19jbG9ja3MudGFyLmRlcCkKKworCityZWxlYXNlIHJlbGVhc2UsYWNtZV91dGlsc19jbG9ja3M6IGFsbCBhY21lX3V0aWxzX2Nsb2Nrcy50YXIKK2NsZWFuOjogLmNsZWFuCisJLSQoUk0pIGFjbWVfdXRpbHNfY2xvY2tzLnRhcgorCS0kKFJNKSBwYWNrYWdlL3JlbC9hY21lX3V0aWxzX2Nsb2Nrcy54ZGMuaW5jCisJLSQoUk0pIHBhY2thZ2UvcmVsL2FjbWVfdXRpbHNfY2xvY2tzLnRhci5kZXAKKworY2xlYW46OiAuY2xlYW4KKwktJChSTSkgLmxpYnJhcmllcyAubGlicmFyaWVzLCoKK2NsZWFuOjogCisJLSQoUk0pIC5kbGxzIC5kbGxzLCoKKyMKKyMgVGhlIGZvbGxvd2luZyBjbGVhbiBydWxlIHJlbW92ZXMgdXNlciBzcGVjaWZpZWQKKyMgZ2VuZXJhdGVkIGZpbGVzIG9yIGRpcmVjdG9yaWVzLgorIworCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQoraWZlcSAoLCQod2lsZGNhcmQgbGliKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIGxpYikKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9leHRlcm5hbCkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2V4dGVybmFsKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvbGliKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliL2xpYikpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2xpYi9saWIpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2NrcykKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZSkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZSkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL3JlbCkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL3JlbCkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2NmZykpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2NmZykKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2ludGVybmFsKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvaW50ZXJuYWwpCitlbmRpZgorZW5kaWYKK2NsZWFuOjoKKwktJChSTURJUikgcGFja2FnZQorCisKK2NsZWFuOjogCisJLSQoUk0pIHBhY2thZ2UvYWNtZS51dGlscy5jbG9ja3MucGp0CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLnhkYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwMThhYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLnhkYwpAQCAtMCwwICsxLDEwIEBACisvKg0KKyAqICA9PT09PT09PSBhY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLnhkYyA9PT09PT09PQ0KKyAqLw0KKw0KKy8qISBBYnN0cmFjdCBjbG9jayBzdXBwb3J0IFtSVFNDIEludGVyZmFjZSBQcmltZXJdICovDQorcGFja2FnZSBhY21lLnV0aWxzLmNsb2NrcyB7DQorICAgICBpbnRlcmZhY2UgSUNsb2NrOw0KKyAgICAgbW9kdWxlIENsb2NrU3RkOw0KK30NCisgDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS8udmVyc19iMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS8udmVyc19iMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLy52ZXJzX2IxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvLnZlcnNfYzE1MCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvLnZlcnNfYzE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS8udmVyc19jMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLy52ZXJzX2cxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLy52ZXJzX2cxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvLnZlcnNfZzE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS8udmVyc19yMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS8udmVyc19yMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLy52ZXJzX3IxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvLnhkYy10MjYgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLy54ZGMtdDI2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLy54ZGMtdDI2CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlLy54ZGMtdDMyIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS8ueGRjLXQzMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS8ueGRjLXQzMgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9hY21lLnV0aWxzLmNsb2Nrcy5jY3MgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2FjbWUudXRpbHMuY2xvY2tzLmNjcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjUzYWNlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9hY21lLnV0aWxzLmNsb2Nrcy5jY3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9hY21lLnV0aWxzLmNsb2Nrcy5wanQgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2FjbWUudXRpbHMuY2xvY2tzLnBqdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjJiZGZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9hY21lLnV0aWxzLmNsb2Nrcy5wanQKQEAgLTAsMCArMSwxMCBAQAorOyBDb2RlIENvbXBvc2VyIFByb2plY3QgRmlsZSwgVmVyc2lvbiAyLjAgKGRvIG5vdCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgbGluZSkKK1tQcm9qZWN0IFNldHRpbmdzXQorUHJvamVjdE5hbWU9ImFjbWUudXRpbHMuY2xvY2tzIgorUHJvamVjdFR5cGU9RXh0ZXJuYWwKK0NQVUZhbWlseT1UTVMzMjBDNjRYWAorVG9vbD0iQ3VzdG9tQnVpbGRlciIKK0NvbmZpZz0iUGFja2FnZSIKK1tTb3VyY2UgRmlsZXNdCitTb3VyY2U9Ii4uL0Nsb2NrU3RkLmMiCitTb3VyY2U9Ii4uL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5jIgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9hY21lLnV0aWxzLmNsb2Nrcy5zY2ggYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2FjbWUudXRpbHMuY2xvY2tzLnNjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9hY21lLnV0aWxzLmNsb2Nrcy5zY2gKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvYWNtZV91dGlsc19jbG9ja3MuY2xhc3MgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2FjbWVfdXRpbHNfY2xvY2tzLmNsYXNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjMWMyMzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2FjbWVfdXRpbHNfY2xvY2tzLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvYWNtZV91dGlsc19jbG9ja3MuamF2YSBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvYWNtZV91dGlsc19jbG9ja3MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMDhkNzdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9hY21lX3V0aWxzX2Nsb2Nrcy5qYXZhCkBAIC0wLDAgKzEsMzU3IEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IG9yZy5tb3ppbGxhLmphdmFzY3JpcHQuKjsKK2ltcG9ydCB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci4qOworaW1wb3J0IHhkYy5zZXJ2aWNlcy5zcGVjLio7CisKK3B1YmxpYyBjbGFzcyBhY21lX3V0aWxzX2Nsb2NrcworeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgVkVSUyA9ICJAKCMpIHhkYy10MzJcbiI7CisKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9Cb29sID0gUHJvdG8uRWxtLm5ld0Jvb2woKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9OdW0gPSBQcm90by5FbG0ubmV3TnVtKCk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfU3RyID0gUHJvdG8uRWxtLm5ld1N0cigpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX09iaiA9IFByb3RvLkVsbS5uZXdPYmooKTsKKworICAgIHN0YXRpYyBmaW5hbCBQcm90by5GeG4gJCRUX01ldCA9IG5ldyBQcm90by5GeG4obnVsbCwgbnVsbCwgMCwgLTEsIGZhbHNlKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uTWFwICQkVF9NYXAgPSBuZXcgUHJvdG8uTWFwKCQkVF9PYmopOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5BcnIgJCRUX1ZlYyA9IG5ldyBQcm90by5BcnIoJCRUX09iaik7CisKKyAgICBzdGF0aWMgZmluYWwgWFNjcmlwdE8gJCRERUZBVUxUID0gVmFsdWUuREVGQVVMVDsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkVU5ERUYgPSBVbmRlZmluZWQuaW5zdGFuY2U7CisKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkUGFja2FnZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRQYWNrYWdlIik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLk9iaiAkJE1vZHVsZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRNb2R1bGUiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkSW5zdGFuY2UgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkSW5zdGFuY2UiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkUGFyYW1zID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJFBhcmFtcyIpOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJG9iakZsZEdldCA9IEdsb2JhbC5nZXQoIiQkb2JqRmxkR2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJG9iakZsZFNldCA9IEdsb2JhbC5nZXQoIiQkb2JqRmxkU2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJHByb3h5R2V0ID0gR2xvYmFsLmdldCgiJCRwcm94eUdldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRwcm94eVNldCA9IEdsb2JhbC5nZXQoIiQkcHJveHlTZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkZGVsZWdHZXQgPSBHbG9iYWwuZ2V0KCIkJGRlbGVnR2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJGRlbGVnU2V0ID0gR2xvYmFsLmdldCgiJCRkZWxlZ1NldCIpOworCisgICAgU2NyaXB0YWJsZSB4ZGNPOworICAgIFNlc3Npb24gc2VzOworICAgIFZhbHVlLk9iaiBvbTsKKworICAgIGJvb2xlYW4gaXNST1Y7CisgICAgYm9vbGVhbiBpc0NGRzsKKworICAgIFByb3RvLk9iaiBwa2dQOworICAgIFZhbHVlLk9iaiBwa2dWOworCisgICAgQXJyYXlMaXN0PE9iamVjdD4gaW1wb3J0cyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IGxvZ2dhYmxlcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IG1jZmdzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gcHJveGllcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IHNpemVzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gdGRlZnMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKworICAgIHZvaWQgJCRJTVBPUlRTKCkKKyAgICB7CisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJsb2FkUGFja2FnZSIsIHhkY08sICJ4ZGMiKTsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImxvYWRQYWNrYWdlIiwgeGRjTywgInhkYy5jb3JldmVycyIpOworICAgICAgICBHbG9iYWwuY2FsbEZ4bigibG9hZFBhY2thZ2UiLCB4ZGNPLCAieGRjLnJ1bnRpbWUiKTsKKyAgICB9CisKKyAgICB2b2lkICQkT0JKRUNUUygpCisgICAgeworICAgICAgICBwa2dQID0gKFByb3RvLk9iailvbS5iaW5kKCJhY21lLnV0aWxzLmNsb2Nrcy5QYWNrYWdlIiwgbmV3IFByb3RvLk9iaigpKTsKKyAgICAgICAgcGtnViA9IChWYWx1ZS5PYmopb20uYmluZCgiYWNtZS51dGlscy5jbG9ja3MiLCBuZXcgVmFsdWUuT2JqKCJhY21lLnV0aWxzLmNsb2NrcyIsIHBrZ1ApKTsKKyAgICB9CisKKyAgICB2b2lkIElDbG9jayQkT0JKRUNUUygpCisgICAgeworICAgICAgICBQcm90by5PYmogcG8sIHNwbzsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIHBvID0gKFByb3RvLk9iailvbS5iaW5kKCJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2suTW9kdWxlIiwgbmV3IFByb3RvLk9iaigpKTsKKyAgICAgICAgdm8gPSAoVmFsdWUuT2JqKW9tLmJpbmQoImFjbWUudXRpbHMuY2xvY2tzLklDbG9jayIsIG5ldyBWYWx1ZS5PYmooImFjbWUudXRpbHMuY2xvY2tzLklDbG9jayIsIHBvKSk7CisgICAgICAgIHBrZ1YuYmluZCgiSUNsb2NrIiwgdm8pOworICAgICAgICAvLyBkZWNscyAKKyAgICB9CisKKyAgICB2b2lkIENsb2NrU3RkJCRPQkpFQ1RTKCkKKyAgICB7CisgICAgICAgIFByb3RvLk9iaiBwbywgc3BvOworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgcG8gPSAoUHJvdG8uT2JqKW9tLmJpbmQoImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkLk1vZHVsZSIsIG5ldyBQcm90by5PYmooKSk7CisgICAgICAgIHZvID0gKFZhbHVlLk9iailvbS5iaW5kKCJhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCIsIG5ldyBWYWx1ZS5PYmooImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIiwgcG8pKTsKKyAgICAgICAgcGtnVi5iaW5kKCJDbG9ja1N0ZCIsIHZvKTsKKyAgICAgICAgLy8gZGVjbHMgCisgICAgfQorCisgICAgdm9pZCBJQ2xvY2skJENPTlNUUygpCisgICAgeworICAgICAgICAvLyBpbnRlcmZhY2UgSUNsb2NrCisgICAgfQorCisgICAgdm9pZCBDbG9ja1N0ZCQkQ09OU1RTKCkKKyAgICB7CisgICAgICAgIC8vIG1vZHVsZSBDbG9ja1N0ZAorICAgICAgICBvbS5iaW5kKCJhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC5nZXRUaW1lIiwgbmV3IEV4dGVybigiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRSIsICJ4ZGNfQml0czMyKCopKHhkY19Wb2lkKSIsIHRydWUsIGZhbHNlLCAiYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQuZ2V0VGltZSIpKTsKKyAgICB9CisKKyAgICB2b2lkIElDbG9jayQkQ1JFQVRFUygpCisgICAgeworICAgICAgICBQcm90by5GeG4gZnhuOworICAgICAgICBTdHJpbmdCdWlsZGVyIHNiOworCisgICAgfQorCisgICAgdm9pZCBDbG9ja1N0ZCQkQ1JFQVRFUygpCisgICAgeworICAgICAgICBQcm90by5GeG4gZnhuOworICAgICAgICBTdHJpbmdCdWlsZGVyIHNiOworCisgICAgfQorCisgICAgdm9pZCBJQ2xvY2skJEZVTkNUSU9OUygpCisgICAgeworICAgICAgICBQcm90by5GeG4gZnhuOworCisgICAgfQorCisgICAgdm9pZCBDbG9ja1N0ZCQkRlVOQ1RJT05TKCkKKyAgICB7CisgICAgICAgIFByb3RvLkZ4biBmeG47CisKKyAgICB9CisKKyAgICB2b2lkIElDbG9jayQkU0laRVMoKQorICAgIHsKKyAgICAgICAgUHJvdG8uU3RyIHNvOworICAgICAgICBPYmplY3QgZnhuOworCisgICAgfQorCisgICAgdm9pZCBDbG9ja1N0ZCQkU0laRVMoKQorICAgIHsKKyAgICAgICAgUHJvdG8uU3RyIHNvOworICAgICAgICBPYmplY3QgZnhuOworCisgICAgfQorCisgICAgdm9pZCBJQ2xvY2skJFRZUEVTKCkKKyAgICB7CisgICAgICAgIFNjcmlwdGFibGUgY2FwOworICAgICAgICBQcm90by5PYmogcG87CisgICAgICAgIFByb3RvLlN0ciBwczsKKyAgICAgICAgUHJvdG8uVHlwZWRlZiBwdDsKKyAgICAgICAgT2JqZWN0IGZ4bjsKKworICAgICAgICBwbyA9IChQcm90by5PYmopb20uZmluZCgiYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLk1vZHVsZSIpOworICAgICAgICBwby5pbml0KCJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2suTW9kdWxlIiwgb20uZmluZCgieGRjLnJ1bnRpbWUuSU1vZHVsZS5Nb2R1bGUiKSk7CisgICAgICAgICAgICAgICAgcG8uYWRkRmxkKCIkaG9zdG9ubHkiLCAkJFRfTnVtLCAwLCAiciIpOworICAgICAgICBpZiAoaXNDRkcpIHsKKyAgICAgICAgfS8vaXNDRkcKKyAgICAgICAgLy8gdHlwZWRlZiBJQ2xvY2suVGltZVZhbHVlCisgICAgICAgIG9tLmJpbmQoImFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5UaW1lVmFsdWUiLCBQcm90by5FbG0ubmV3Q051bSgiKHhkY19CaXRzMzIpIikpOworICAgIH0KKworICAgIHZvaWQgQ2xvY2tTdGQkJFRZUEVTKCkKKyAgICB7CisgICAgICAgIFNjcmlwdGFibGUgY2FwOworICAgICAgICBQcm90by5PYmogcG87CisgICAgICAgIFByb3RvLlN0ciBwczsKKyAgICAgICAgUHJvdG8uVHlwZWRlZiBwdDsKKyAgICAgICAgT2JqZWN0IGZ4bjsKKworICAgICAgICBwbyA9IChQcm90by5PYmopb20uZmluZCgiYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQuTW9kdWxlIik7CisgICAgICAgIHBvLmluaXQoImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkLk1vZHVsZSIsIG9tLmZpbmQoImFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5Nb2R1bGUiKSk7CisgICAgICAgICAgICAgICAgcG8uYWRkRmxkKCIkaG9zdG9ubHkiLCAkJFRfTnVtLCAwLCAiciIpOworICAgICAgICBpZiAoaXNDRkcpIHsKKyAgICAgICAgfS8vaXNDRkcKKyAgICB9CisKKyAgICB2b2lkIElDbG9jayQkUk9WKCkKKyAgICB7CisgICAgICAgIFByb3RvLk9iaiBwbzsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIHZvID0gKFZhbHVlLk9iailvbS5maW5kKCJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2siKTsKKyAgICB9CisKKyAgICB2b2lkIENsb2NrU3RkJCRST1YoKQorICAgIHsKKyAgICAgICAgUHJvdG8uT2JqIHBvOworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgdm8gPSAoVmFsdWUuT2JqKW9tLmZpbmQoImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIik7CisgICAgfQorCisgICAgdm9pZCAkJFNJTkdMRVRPTlMoKQorICAgIHsKKyAgICAgICAgcGtnUC5pbml0KCJhY21lLnV0aWxzLmNsb2Nrcy5QYWNrYWdlIiwgKFByb3RvLk9iailvbS5maW5kKCJ4ZGMuSVBhY2thZ2UuTW9kdWxlIikpOworICAgICAgICBwa2dQLmJpbmQoIiRjYXBzdWxlIiwgJCRVTkRFRik7CisgICAgICAgIHBrZ1YuaW5pdDIocGtnUCwgImFjbWUudXRpbHMuY2xvY2tzIiwgVmFsdWUuREVGQVVMVCwgZmFsc2UpOworICAgICAgICBwa2dWLmJpbmQoIiRuYW1lIiwgImFjbWUudXRpbHMuY2xvY2tzIik7CisgICAgICAgIHBrZ1YuYmluZCgiJGNhdGVnb3J5IiwgIlBhY2thZ2UiKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkJHFuIiwgImFjbWUudXRpbHMuY2xvY2tzLiIpOworICAgICAgICBwa2dWLmJpbmQoIiR2ZXJzIiwgR2xvYmFsLm5ld0FycmF5KCkpOworICAgICAgICBWYWx1ZS5NYXAgYXRtYXAgPSAoVmFsdWUuTWFwKXBrZ1YuZ2V0digiJGF0dHIiKTsKKyAgICAgICAgYXRtYXAuc2VhbCgibGVuZ3RoIik7CisgICAgICAgIGltcG9ydHMuY2xlYXIoKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkaW1wb3J0cyIsIGltcG9ydHMpOworICAgICAgICBTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKyAgICAgICAgc2IuYXBwZW5kKCJ2YXIgcGtnID0geGRjLm9tWydhY21lLnV0aWxzLmNsb2NrcyddO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgiaWYgKHBrZy4kdmVycy5sZW5ndGggPj0gMykge1xuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoInBrZy4kdmVycy5wdXNoKFBhY2thZ2VzLnhkYy5zZXJ2aWNlcy5nbG9iYWwuVmVycy5nZXREYXRlKHhkYy5jc2QoKSArICcvLi4nKSk7XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJ9XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJwa2cuYnVpbGQubGlicmFyaWVzID0gW1xuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoIidsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cnLFxuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoIidsaWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UCcsXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2MgPSBbXG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiWydsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cnLCB7dGFyZ2V0OiAnZ251LnRhcmdldHMuTWluZ3cnfV0sXG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiWydsaWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UCcsIHt0YXJnZXQ6ICd0aS50YXJnZXRzLkM2NFAnfV0sXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgiaWYoJ3N1ZmZpeCcgaW4geGRjLm9tWyd4ZGMuSVBhY2thZ2UkJExpYkRlc2MnXSkge1xuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoInBrZy5idWlsZC5saWJEZXNjWydsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cnXS5zdWZmaXggPSAnODZHVyc7XG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2NbJ2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQJ10uc3VmZml4ID0gJzY0UCc7XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJ9XG4iKTsKKyAgICAgICAgR2xvYmFsLmV2YWwoc2IudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgdm9pZCBJQ2xvY2skJFNJTkdMRVRPTlMoKQorICAgIHsKKyAgICAgICAgUHJvdG8uT2JqIHBvOworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgdm8gPSAoVmFsdWUuT2JqKW9tLmZpbmQoImFjbWUudXRpbHMuY2xvY2tzLklDbG9jayIpOworICAgICAgICBwbyA9IChQcm90by5PYmopb20uZmluZCgiYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLk1vZHVsZSIpOworICAgICAgICB2by5pbml0MihwbywgImFjbWUudXRpbHMuY2xvY2tzLklDbG9jayIsICQkREVGQVVMVCwgZmFsc2UpOworICAgICAgICB2by5iaW5kKCJNb2R1bGUiLCBwbyk7CisgICAgICAgIHZvLmJpbmQoIiRjYXRlZ29yeSIsICJJbnRlcmZhY2UiKTsKKyAgICAgICAgdm8uYmluZCgiJGNhcHN1bGUiLCAkJFVOREVGKTsKKyAgICAgICAgdm8uYmluZCgiJHBhY2thZ2UiLCBvbS5maW5kKCJhY21lLnV0aWxzLmNsb2NrcyIpKTsKKyAgICAgICAgdGRlZnMuY2xlYXIoKTsKKyAgICAgICAgcHJveGllcy5jbGVhcigpOworICAgICAgICB2by5iaW5kKCJUaW1lVmFsdWUiLCBvbS5maW5kKCJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2suVGltZVZhbHVlIikpOworICAgICAgICB2by5iaW5kKCIkJHRkZWZzIiwgR2xvYmFsLm5ld0FycmF5KHRkZWZzLnRvQXJyYXkoKSkpOworICAgICAgICB2by5iaW5kKCIkJHByb3hpZXMiLCBHbG9iYWwubmV3QXJyYXkocHJveGllcy50b0FycmF5KCkpKTsKKyAgICAgICAgKChWYWx1ZS5BcnIpcGtnVi5nZXR2KCIkaW50ZXJmYWNlcyIpKS5hZGQodm8pOworICAgICAgICBwa2dWLmJpbmQoIklDbG9jayIsIHZvKTsKKyAgICAgICAgKChWYWx1ZS5BcnIpcGtnVi5nZXR2KCIkdW5pdE5hbWVzIikpLmFkZCgiSUNsb2NrIik7CisgICAgICAgIHZvLnNlYWwobnVsbCk7CisgICAgfQorCisgICAgdm9pZCBDbG9ja1N0ZCQkU0lOR0xFVE9OUygpCisgICAgeworICAgICAgICBQcm90by5PYmogcG87CisgICAgICAgIFZhbHVlLk9iaiB2bzsKKworICAgICAgICB2byA9IChWYWx1ZS5PYmopb20uZmluZCgiYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQiKTsKKyAgICAgICAgcG8gPSAoUHJvdG8uT2JqKW9tLmZpbmQoImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkLk1vZHVsZSIpOworICAgICAgICB2by5pbml0MihwbywgImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIiwgJCRERUZBVUxULCBmYWxzZSk7CisgICAgICAgIHZvLmJpbmQoIk1vZHVsZSIsIHBvKTsKKyAgICAgICAgdm8uYmluZCgiJGNhdGVnb3J5IiwgIk1vZHVsZSIpOworICAgICAgICB2by5iaW5kKCIkY2Fwc3VsZSIsICQkVU5ERUYpOworICAgICAgICB2by5iaW5kKCIkcGFja2FnZSIsIG9tLmZpbmQoImFjbWUudXRpbHMuY2xvY2tzIikpOworICAgICAgICB0ZGVmcy5jbGVhcigpOworICAgICAgICBwcm94aWVzLmNsZWFyKCk7CisgICAgICAgIG1jZmdzLmNsZWFyKCk7CisgICAgICAgIG1jZmdzLmFkZCgiTW9kdWxlX19kaWFnc0VuYWJsZWQiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2RpYWdzTWFzayIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fZ2F0ZU9iaiIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fZ2F0ZVBybXMiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2lkIik7CisgICAgICAgIG1jZmdzLmFkZCgiTW9kdWxlX19sb2dnZXJEZWZpbmVkIik7CisgICAgICAgIG1jZmdzLmFkZCgiTW9kdWxlX19sb2dnZXJPYmoiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2xvZ2dlckZ4bjQiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2xvZ2dlckZ4bjgiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIik7CisgICAgICAgIG1jZmdzLmFkZCgiT2JqZWN0X19jb3VudCIpOworICAgICAgICBtY2Zncy5hZGQoIk9iamVjdF9faGVhcCIpOworICAgICAgICBtY2Zncy5hZGQoIk9iamVjdF9fc2l6ZW9mIik7CisgICAgICAgIG1jZmdzLmFkZCgiT2JqZWN0X190YWJsZSIpOworICAgICAgICB2by5iaW5kKCJUaW1lVmFsdWUiLCBvbS5maW5kKCJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2suVGltZVZhbHVlIikpOworICAgICAgICB2by5iaW5kKCIkJHRkZWZzIiwgR2xvYmFsLm5ld0FycmF5KHRkZWZzLnRvQXJyYXkoKSkpOworICAgICAgICB2by5iaW5kKCIkJHByb3hpZXMiLCBHbG9iYWwubmV3QXJyYXkocHJveGllcy50b0FycmF5KCkpKTsKKyAgICAgICAgdm8uYmluZCgiJCRtY2ZncyIsIEdsb2JhbC5uZXdBcnJheShtY2Zncy50b0FycmF5KCkpKTsKKyAgICAgICAgKChWYWx1ZS5BcnIpcGtnVi5nZXR2KCIkbW9kdWxlcyIpKS5hZGQodm8pOworICAgICAgICAoKFZhbHVlLkFycilvbS5maW5kKCIkbW9kdWxlcyIpKS5hZGQodm8pOworICAgICAgICB2by5iaW5kKCIkJGluc3RmbGFnIiwgMCk7CisgICAgICAgIHZvLmJpbmQoIiQkaW9iamZsYWciLCAwKTsKKyAgICAgICAgdm8uYmluZCgiJCRzaXplZmxhZyIsIDEpOworICAgICAgICB2by5iaW5kKCIkJGRsZ2ZsYWciLCAwKTsKKyAgICAgICAgdm8uYmluZCgiJCRpZmxhZyIsIDEpOworICAgICAgICB2by5iaW5kKCIkJHJvbWNmZ3MiLCAifCIpOworICAgICAgICBpZiAoaXNDRkcpIHsKKyAgICAgICAgICAgIFByb3RvLlN0ciBwcyA9IChQcm90by5TdHIpdm8uZmluZCgiTW9kdWxlX1N0YXRlIik7CisgICAgICAgICAgICBpZiAocHMgIT0gbnVsbCkgdm8uYmluZCgiJG9iamVjdCIsIHBzLm5ld0luc3RhbmNlKCkpOworICAgICAgICAgICAgdm8uYmluZCgiJCRtZXRhX2lvYmoiLCAxKTsKKyAgICAgICAgfS8vaXNDRkcKKyAgICAgICAgdm8uYmluZCgiZ2V0VGltZSIsIG9tLmZpbmQoImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkLmdldFRpbWUiKSk7CisgICAgICAgIHZvLmJpbmQoIiQkZnhudGFiIiwgR2xvYmFsLm5ld0FycmF5KCJhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9IYW5kbGVfX2xhYmVsX19FIiwgImFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX0UiLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jcmVhdGVfX0UiLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19kZWxldGVfX0UiLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19kZXN0cnVjdF9fRSIsICJhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2dldF9fRSIsICJhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2ZpcnN0X19FIiwgImFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fbmV4dF9fRSIsICJhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9QYXJhbXNfX2luaXRfX0UiLCAiYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfUHJveHlfX2Fic3RyYWN0X19FIiwgImFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX1Byb3h5X19kZWxlZ2F0ZV9fRSIsICJhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FIikpOworICAgICAgICB2by5iaW5kKCIkJGxvZ0V2dENmZ3MiLCBHbG9iYWwubmV3QXJyYXkoKSk7CisgICAgICAgIHZvLmJpbmQoIiQkZXJyb3JEZXNjQ2ZncyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgdm8uYmluZCgiJCRhc3NlcnREZXNjQ2ZncyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgVmFsdWUuTWFwIGF0bWFwID0gKFZhbHVlLk1hcCl2by5nZXR2KCIkYXR0ciIpOworICAgICAgICBhdG1hcC5zZWFsKCJsZW5ndGgiKTsKKyAgICAgICAgdm8uYmluZCgiTU9EVUxFX1NUQVJUVVAkIiwgMCk7CisgICAgICAgIHZvLmJpbmQoIlBST1hZJCIsIDApOworICAgICAgICBsb2dnYWJsZXMuY2xlYXIoKTsKKyAgICAgICAgbG9nZ2FibGVzLmFkZChHbG9iYWwubmV3T2JqZWN0KCJuYW1lIiwgImdldFRpbWUiLCAiZW50cnkiLCAiIiwgImV4aXQiLCAiJWQiKSk7CisgICAgICAgIHZvLmJpbmQoIiQkbG9nZ2FibGVzIiwgbG9nZ2FibGVzLnRvQXJyYXkoKSk7CisgICAgICAgIHBrZ1YuYmluZCgiQ2xvY2tTdGQiLCB2byk7CisgICAgICAgICgoVmFsdWUuQXJyKXBrZ1YuZ2V0digiJHVuaXROYW1lcyIpKS5hZGQoIkNsb2NrU3RkIik7CisgICAgfQorCisgICAgdm9pZCAkJElOSVRJQUxJWkFUSU9OKCkKKyAgICB7CisgICAgICAgIFZhbHVlLk9iaiB2bzsKKworICAgICAgICBpZiAoaXNDRkcpIHsKKyAgICAgICAgfS8vaXNDRkcKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oIm1vZHVsZSRtZXRhJGluaXQiLCAoU2NyaXB0YWJsZSlvbS5maW5kKCJhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCIpKTsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImluaXQiLCBwa2dWKTsKKyAgICAgICAgKChWYWx1ZS5PYmopb20uZ2V0digiYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrIikpLmJsZXNzKCk7CisgICAgICAgICgoVmFsdWUuT2JqKW9tLmdldHYoImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIikpLmJsZXNzKCk7CisgICAgICAgICgoVmFsdWUuQXJyKW9tLmZpbmQoIiRwYWNrYWdlcyIpKS5hZGQocGtnVik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXhlYyggU2NyaXB0YWJsZSB4ZGNPLCBTZXNzaW9uIHNlcyApCisgICAgeworICAgICAgICB0aGlzLnhkY08gPSB4ZGNPOworICAgICAgICB0aGlzLnNlcyA9IHNlczsKKyAgICAgICAgb20gPSAoVmFsdWUuT2JqKXhkY08uZ2V0KCJvbSIsIG51bGwpOworCisgICAgICAgIE9iamVjdCBvID0gb20uZ2V0bygiJG5hbWUiKTsKKyAgICAgICAgU3RyaW5nIHMgPSBvIGluc3RhbmNlb2YgU3RyaW5nID8gKFN0cmluZylvIDogbnVsbDsKKyAgICAgICAgaXNDRkcgPSBzICE9IG51bGwgJiYgcy5lcXVhbHMoImNmZyIpOworICAgICAgICBpc1JPViA9IHMgIT0gbnVsbCAmJiBzLmVxdWFscygicm92Iik7CisKKyAgICAgICAgJCRJTVBPUlRTKCk7CisgICAgICAgICQkT0JKRUNUUygpOworICAgICAgICBJQ2xvY2skJE9CSkVDVFMoKTsKKyAgICAgICAgQ2xvY2tTdGQkJE9CSkVDVFMoKTsKKyAgICAgICAgSUNsb2NrJCRDT05TVFMoKTsKKyAgICAgICAgQ2xvY2tTdGQkJENPTlNUUygpOworICAgICAgICBJQ2xvY2skJENSRUFURVMoKTsKKyAgICAgICAgQ2xvY2tTdGQkJENSRUFURVMoKTsKKyAgICAgICAgSUNsb2NrJCRGVU5DVElPTlMoKTsKKyAgICAgICAgQ2xvY2tTdGQkJEZVTkNUSU9OUygpOworICAgICAgICBJQ2xvY2skJFNJWkVTKCk7CisgICAgICAgIENsb2NrU3RkJCRTSVpFUygpOworICAgICAgICBJQ2xvY2skJFRZUEVTKCk7CisgICAgICAgIENsb2NrU3RkJCRUWVBFUygpOworICAgICAgICBpZiAoaXNST1YpIHsKKyAgICAgICAgICAgIElDbG9jayQkUk9WKCk7CisgICAgICAgICAgICBDbG9ja1N0ZCQkUk9WKCk7CisgICAgICAgIH0vL2lzUk9WCisgICAgICAgICQkU0lOR0xFVE9OUygpOworICAgICAgICBJQ2xvY2skJFNJTkdMRVRPTlMoKTsKKyAgICAgICAgQ2xvY2tTdGQkJFNJTkdMRVRPTlMoKTsKKyAgICAgICAgJCRJTklUSUFMSVpBVElPTigpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvYnVpbGQuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9idWlsZC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjc3NDI0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvYnVpbGQuY2ZnCkBAIC0wLDAgKzEsMjggQEAKK2lmIChwa2cuJHZlcnMubGVuZ3RoID49IDMpIHsKKyAgICBwa2cuJHZlcnMucHVzaChQYWNrYWdlcy54ZGMuc2VydmljZXMuZ2xvYmFsLlZlcnMuZ2V0RGF0ZSh4ZGMuY3NkKCkgKyAnLy4uJykpOworfQorCitwa2cuYnVpbGQubGlicmFyaWVzID0gWworICAgICdsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cnLAorICAgICdsaWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UCcsCitdOworCitwa2cuYnVpbGQubGliRGVzYyA9IFsKKyAgICBbCisgICAgICAgICdsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cnLAorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQ6ICdnbnUudGFyZ2V0cy5NaW5ndycKKyAgICAgICAgfQorICAgIF0sCisgICAgWworICAgICAgICAnbGliL2FjbWUudXRpbHMuY2xvY2tzLmE2NFAnLAorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQ6ICd0aS50YXJnZXRzLkM2NFAnCisgICAgICAgIH0KKyAgICBdLAorXTsKK2lmICgnc3VmZml4JyBpbiB4ZGMub21bJ3hkYy5JUGFja2FnZSQkTGliRGVzYyddKSB7CisgICAgcGtnLmJ1aWxkLmxpYkRlc2NbJ2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVyddLnN1ZmZpeCA9ICc4NkdXJzsKKyAgICBwa2cuYnVpbGQubGliRGVzY1snbGliL2FjbWUudXRpbHMuY2xvY2tzLmE2NFAnXS5zdWZmaXggPSAnNjRQJzsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9pbnRlcm5hbC9DbG9ja1N0ZC54ZGMuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvaW50ZXJuYWwvQ2xvY2tTdGQueGRjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVmY2Y4NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvaW50ZXJuYWwvQ2xvY2tTdGQueGRjLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2lmbmRlZiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9fSU5URVJOQUxfXworI2RlZmluZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9fSU5URVJOQUxfXworCisjaWZuZGVmIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX19pbnRlcm5hbGFjY2VzcworI2RlZmluZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9faW50ZXJuYWxhY2Nlc3MKKyNlbmRpZgorCisjaW5jbHVkZSA8YWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuaD4KKworI3VuZGVmIHhkY19GSUxFX18KKyNpZm5kZWYgeGRjX0ZJTEUKKyNkZWZpbmUgeGRjX0ZJTEVfXyBOVUxMCisjZWxzZQorI2RlZmluZSB4ZGNfRklMRV9fIHhkY19GSUxFCisjZW5kaWYKKworLyogZ2V0VGltZSAqLworI3VuZGVmIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWUKKyNkZWZpbmUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19GCisKKy8qIE1vZHVsZV9zdGFydHVwICovCisjdW5kZWYgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX3N0YXJ0dXAKKyNkZWZpbmUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX3N0YXJ0dXAgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX3N0YXJ0dXBfX0YKKworLyogSW5zdGFuY2VfaW5pdCAqLworI3VuZGVmIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX0luc3RhbmNlX2luaXQKKyNkZWZpbmUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfSW5zdGFuY2VfaW5pdCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9JbnN0YW5jZV9pbml0X19GCisKKy8qIEluc3RhbmNlX2ZpbmFsaXplICovCisjdW5kZWYgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfSW5zdGFuY2VfZmluYWxpemUKKyNkZWZpbmUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfSW5zdGFuY2VfZmluYWxpemUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfSW5zdGFuY2VfZmluYWxpemVfX0YKKworLyogcGVyLW1vZHVsZSBydW50aW1lIHN5bWJvbHMgKi8KKyN1bmRlZiBNb2R1bGVfX01JRAorI2RlZmluZSBNb2R1bGVfX01JRCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DCisjdW5kZWYgTW9kdWxlX19ER1NJTkNMCisjZGVmaW5lIE1vZHVsZV9fREdTSU5DTCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MKKyN1bmRlZiBNb2R1bGVfX0RHU0VOQUIKKyNkZWZpbmUgTW9kdWxlX19ER1NFTkFCIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DCisjdW5kZWYgTW9kdWxlX19ER1NNQVNLCisjZGVmaW5lIE1vZHVsZV9fREdTTUFTSyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQworI3VuZGVmIE1vZHVsZV9fTE9HREVGCisjZGVmaW5lIE1vZHVsZV9fTE9HREVGIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQworI3VuZGVmIE1vZHVsZV9fTE9HT0JKCisjZGVmaW5lIE1vZHVsZV9fTE9HT0JKIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DCisjdW5kZWYgTW9kdWxlX19MT0dGWE40CisjZGVmaW5lIE1vZHVsZV9fTE9HRlhONCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MKKyN1bmRlZiBNb2R1bGVfX0xPR0ZYTjgKKyNkZWZpbmUgTW9kdWxlX19MT0dGWE44IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQworI3VuZGVmIE1vZHVsZV9fR19PQkoKKyNkZWZpbmUgTW9kdWxlX19HX09CSiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MKKyN1bmRlZiBNb2R1bGVfX0dfUFJNUworI2RlZmluZSBNb2R1bGVfX0dfUFJNUyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DCisjdW5kZWYgTW9kdWxlX19HUF9jcmVhdGUKKyNkZWZpbmUgTW9kdWxlX19HUF9jcmVhdGUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX0dhdGVQcm94eV9jcmVhdGUKKyN1bmRlZiBNb2R1bGVfX0dQX2RlbGV0ZQorI2RlZmluZSBNb2R1bGVfX0dQX2RlbGV0ZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfR2F0ZVByb3h5X2RlbGV0ZQorI3VuZGVmIE1vZHVsZV9fR1BfZW50ZXIKKyNkZWZpbmUgTW9kdWxlX19HUF9lbnRlciBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyCisjdW5kZWYgTW9kdWxlX19HUF9sZWF2ZQorI2RlZmluZSBNb2R1bGVfX0dQX2xlYXZlIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9HYXRlUHJveHlfbGVhdmUKKyN1bmRlZiBNb2R1bGVfX0dQX3F1ZXJ5CisjZGVmaW5lIE1vZHVsZV9fR1BfcXVlcnkgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX0dhdGVQcm94eV9xdWVyeQorCisKKyNlbmRpZiAvKiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9fSU5URVJOQUxfX19fICovCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vNjRQCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmZTEyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzY0UC5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjM1MmVhNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vNjRQLmRlcApAQCAtMCwwICsxLDI5IEBACitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzY0UDogQ2xvY2tTdGQuYyAuL3BhY2thZ2UvaW50ZXJuYWwvQ2xvY2tTdGQueGRjLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvdGltZS5oIENsb2NrU3RkLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGlua2FnZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggSUNsb2NrLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkYXJnLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkZGVmLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oIA0KK0Nsb2NrU3RkLmM6DQorLi9wYWNrYWdlL2ludGVybmFsL0Nsb2NrU3RkLnhkYy5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3RpbWUuaDoNCitDbG9ja1N0ZC5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbmthZ2UuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaDoNCitwYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0lDbG9jay5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzg2R1cgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzg2R1cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc0ZmZlZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvQ2xvY2tTdGQubzg2R1cuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL0Nsb2NrU3RkLm84NkdXLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWI4ZDViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL0Nsb2NrU3RkLm84NkdXLmRlcApAQCAtMCwwICsxLDI0IEBACitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvL0Nsb2NrU3RkLm84NkdXOiBDbG9ja1N0ZC5jIC4vcGFja2FnZS9pbnRlcm5hbC9DbG9ja1N0ZC54ZGMuaCBkOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3N0ZC5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8xNy9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaCBkOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBkOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvSUNsb2NrLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzE3L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8xNy9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzE3L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzE3L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oIGU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8xNy9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzE3L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5LmggZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzE3L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaCBlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaCANCitDbG9ja1N0ZC5jOg0KKy4vcGFja2FnZS9pbnRlcm5hbC9DbG9ja1N0ZC54ZGMuaDoNCitkOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3N0ZC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8xNy9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaDoNCitkOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitkOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvSUNsb2NrLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzE3L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8xNy9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzE3L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzE3L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oOg0KK2U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8xNy9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5Lmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzE3L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5Lmg6DQorZTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzE3L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitlOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMTcvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm82NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm82NFAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAyM2VlMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MubzY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm82NFAuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vNjRQLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjhiZmM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vNjRQLmRlcApAQCAtMCwwICsxLDcgQEAKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MubzY0UDogcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLmMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCANCitwYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MuYzoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3Mubzg2R1cgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm84NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlNmQ5MTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm84NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3Mubzg2R1cuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vODZHVy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWYxZGI1YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3Mubzg2R1cuZGVwCkBAIC0wLDAgKzEsNCBAQAorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3Mubzg2R1c6IHBhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5jIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oIA0KK3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5jOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5ibGQueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMDc4YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCkBAIC0wLDAgKzEsODMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBUaGlzIGZpbGUgY29uZm9ybXMgdG8gdGhlIERURCB4ZGMvYmxkL2J1aWxkLmR0ZCAtLT4KKzxwYWNrYWdlIG5hbWU9ImFjbWUudXRpbHMuY2xvY2tzIiB2ZXJzaW9uPSIiIHByb2R1Y2VySWQ9InVuZGVmaW5lZCI+CisgICAgPHVuaXRzPgorICAgICAgICA8aW50ZXJmYWNlIG5hbWU9IklDbG9jayIvPgorICAgICAgICA8bW9kdWxlIG5hbWU9IkNsb2NrU3RkIi8+CisgICAgPC91bml0cz4KKyAgICA8c291cmNlcz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0iQ2xvY2tTdGQuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MuYyIvPgorICAgIDwvc291cmNlcz4KKyAgICA8Y29uZmlndXJhdGlvbnM+CisgICAgPC9jb25maWd1cmF0aW9ucz4KKyAgICA8bWFrZWZpbGVzPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlLm1hayIgc3JjPSJwYWNrYWdlLmJsZCIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UueGRjLmRlcCIgc3JjPSJwYWNrYWdlLnhkYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UuY2ZnLmRlcCIgc3JjPSJwYWNrYWdlLnhkYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJsaWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cubWFrIiBzcmM9InBhY2thZ2UuYmxkIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy9DbG9ja1N0ZC5vODZHVy5kZXAiIHNyYz0iQ2xvY2tTdGQuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLm84NkdXLmRlcCIgc3JjPSJwYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJsaWIvYWNtZS51dGlscy5jbG9ja3MuYTY0UC5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL0Nsb2NrU3RkLm82NFAuZGVwIiBzcmM9IkNsb2NrU3RkLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMuY2xvY2tzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5vNjRQLmRlcCIgc3JjPSJwYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3JlbC9hY21lX3V0aWxzX2Nsb2Nrcy50YXIuZGVwIiBzcmM9InBhY2thZ2UvcmVsL2FjbWVfdXRpbHNfY2xvY2tzLnhkYy5pbmMiLz4KKyAgICA8L21ha2VmaWxlcz4KKyAgICA8dGFyZ2V0cz4KKyAgICAgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSJ0aS50YXJnZXRzLkM2NFB7MSwwLDYuMSw1IgorICAgICAgICAgICAgcGxhdGZvcm09InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICAgICAgICAgIGlzYT0iNjRQIgorICAgICAgICAgICAgc3VmZml4PSI2NFAiCisgICAgICAgICAgICByb290RGlyPSJkOi90aS9jNjAwMC9hbGMiCisgICAgICAgICAgICBvcz0idW5kZWZpbmVkIgorICAgICAgICAgICAgcnRzPSJ0aS50YXJnZXRzLnJ0czYwMDAiPgorICAgICAgICAgICAgPG1vZGVsIGVuZGlhbj0ibGl0dGxlIgorICAgICAgICAgICAgICAgIGNvZGVNb2RlbD0idW5kZWZpbmVkIgorICAgICAgICAgICAgICAgIGRhdGFNb2RlbD0idW5kZWZpbmVkIi8+CisgICAgICAgIDwvdGFyZ2V0PgorICAgICAgICA8dGFyZ2V0IG5hbWU9ImdudS50YXJnZXRzLk1pbmd3IgorICAgICAgICAgICAgdmVyc2lvbj0iZ251LnRhcmdldHMuTWluZ3d7MSwwLDMuNCw1IgorICAgICAgICAgICAgcGxhdGZvcm09Imhvc3QucGxhdGZvcm1zLlBDIgorICAgICAgICAgICAgaXNhPSJ4ODYiCisgICAgICAgICAgICBzdWZmaXg9Ijg2R1ciCisgICAgICAgICAgICByb290RGlyPSJlOi9ydHNjL21pbmd3IgorICAgICAgICAgICAgb3M9IldpbmRvd3MiCisgICAgICAgICAgICBydHM9ImdudS50YXJnZXRzLnJ0czg2R1ciPgorICAgICAgICAgICAgPG1vZGVsIGVuZGlhbj0ibGl0dGxlIgorICAgICAgICAgICAgICAgIGNvZGVNb2RlbD0idW5kZWZpbmVkIgorICAgICAgICAgICAgICAgIGRhdGFNb2RlbD0idW5kZWZpbmVkIi8+CisgICAgICAgIDwvdGFyZ2V0PgorICAgIDwvdGFyZ2V0cz4KKyAgICA8bGlicmFyaWVzPgorICAgIDxsaWJyYXJ5IG5hbWU9ImxpYi9hY21lLnV0aWxzLmNsb2NrcyIKKyAgICAgICAgcG5hbWU9ImxpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVyIKKyAgICAgICAgcHJvZmlsZT0icmVsZWFzZSIKKyAgICAgICAgdGFyZ2V0PSJnbnUudGFyZ2V0cy5NaW5ndyIvPgorICAgIDxsaWJyYXJ5IG5hbWU9ImxpYi9hY21lLnV0aWxzLmNsb2NrcyIKKyAgICAgICAgcG5hbWU9ImxpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQIgorICAgICAgICBwcm9maWxlPSJyZWxlYXNlIgorICAgICAgICB0YXJnZXQ9InRpLnRhcmdldHMuQzY0UCIvPgorICAgIDwvbGlicmFyaWVzPgorICAgIDxleGVjdXRhYmxlcz4KKyAgICA8L2V4ZWN1dGFibGVzPgorICAgIDx0ZXN0cz4KKyAgICA8L3Rlc3RzPgorICAgIDxyZWxlYXNlcyByZWxEaXI9InBhY2thZ2UvcmVsLyI+CisgICAgPHJlbGVhc2UgbmFtZT0iYWNtZV91dGlsc19jbG9ja3MiCisgICAgICAgIHBuYW1lPSJhY21lX3V0aWxzX2Nsb2Nrcy50YXIiCisgICAgICAgIGxhYmVsPSJkZWZhdWx0IgorICAgID4KKyAgICAgICAgPGZpbGUgbmFtZT0ibGliL2FjbWUudXRpbHMuY2xvY2tzLmE2NFAiLz4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9idWlsZC5jZmciLz4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLmNmZy54ZGMuaW5jIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5leHQueG1sIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIi8+CisgICAgICAgIDxmaWxlIG5hbWU9ImxpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVyIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UuYmxkLnhtbCIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UucmVsLmRvdCIvPgorICAgIDwvcmVsZWFzZT4KKyAgICA8L3JlbGVhc2VzPgorICAgIDxyZXBvc2l0b3JpZXM+CisgICAgPC9yZXBvc2l0b3JpZXM+Cis8L3BhY2thZ2U+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjU1Y2IyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaApAQCAtMCwwICsxLDI3IEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaWZuZGVmIGFjbWVfdXRpbHNfY2xvY2tzX18KKyNkZWZpbmUgYWNtZV91dGlsc19jbG9ja3NfXworCisKKy8qCisgKiA9PT09PT09PSBpbnRlcmZhY2UgYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrID09PT09PT09CisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0Z4bnNfXyBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfRnhuc19fOwordHlwZWRlZiBjb25zdCBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfRnhuc19fKiBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfTW9kdWxlOworCisvKgorICogPT09PT09PT0gbW9kdWxlIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkID09PT09PT09CisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfRnhuc19fIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX0Z4bnNfXzsKK3R5cGVkZWYgY29uc3QgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfRnhuc19fKiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGU7CisKKworI2VuZGlmIC8qIGFjbWVfdXRpbHNfY2xvY2tzX18gKi8gCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZG9jLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5kb2MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4ZTk2ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZG9jLnhtbApAQCAtMCwwICsxLDQ2MSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwYWNrYWdlIGtpbmQ9J3BhY2thZ2UnIG5hbWU9J2FjbWUudXRpbHMuY2xvY2tzJyBub2RvYz0nMCcgcm9vdD0nLi4vLi4vLi4vJyBzdW1tYXJ5PSdBYnN0cmFjdCtjbG9jaytzdXBwb3J0KyU1QlJUU0MrSW50ZXJmYWNlK1ByaW1lciU1RCc+CisgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VwYWNrYWdlJTNDJTJGc3BhbiUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFYWNtZS51dGlscy5jbG9ja3MlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTdCJy8+CisgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclN0QnLz4KKyAgICA8dW5pdCBuYW1lPSdJQ2xvY2snIGtpbmQ9J2ludGVyZmFjZScgbm9kb2M9JzAnIG1ldGFvbmx5PScwJyBzdW1tYXJ5PSdBYnN0cmFjdCtjbG9jayc+CisgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXBhY2thZ2UlM0MlMkZzcGFuJTNFKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRmFjbWUlMkZ1dGlscyUyRmNsb2NrcyUyRnBhY2thZ2UuaHRtbCUyMit0aXRsZSUzRCUyMmFjbWUudXRpbHMuY2xvY2tzJTIyJTNFYWNtZS51dGlscy5jbG9ja3MlM0MlMkZhJTNFJTNCJy8+CisgICAgICAgICAgICA8bGluZSBibGFuaz0nMScgYWx3YXlzPScwJy8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWludGVyZmFjZSUzQyUyRnNwYW4lM0UrJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRUlDbG9jayUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslN0InLz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTdEJy8+CisgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICA8c3BlY0luZm8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWludGVyZmFjZSUzQyUyRnNwYW4lM0UrJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRUlDbG9jayUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslN0IlM0NiJTNFJTI2bmJzcCUzQiUyNm5ic3AlM0IuLi4lM0MlMkZiJTNFJy8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbW1lbnQ9J2luaGVyaXRzKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZJTW9kdWxlLmh0bWwlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlJTIyJTNFeGRjLnJ1bnRpbWUuSU1vZHVsZSUzQyUyRmElM0UnLz4KKyAgICAgICAgPC9zcGVjSW5mbz4KKyAgICAgICAgPGdyb3VwIG5hbWU9J2xvY2FsIHByb3h5IG1vZHVsZXMnPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8Z3JvdXAgbmFtZT0nbW9kdWxlLXdpZGUgY29uc3RhbnRzICZhbXA7IHR5cGVzJz4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wga2luZD0ndHlwZWRlZicgbmFtZT0nVGltZVZhbHVlJyBhbmNob3I9Jy5UaW1lLlZhbHVlJyBhbHRleHQ9J2FjbWUudXRpbHMuY2xvY2tzLklDbG9jay5UaW1lVmFsdWUnIG5vZG9jPScwJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9J1RpbWUrdmFsdWUrdHlwZSc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0V0eXBlZGVmJTNDJTJGc3BhbiUzRSslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VCaXRzMzIlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VUaW1lVmFsdWUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGNvbmZpZyBwYXJhbWV0ZXJzJz4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wga2luZD0nY29uZmlnJyBuYW1lPSdjb25maWdOYW1lTWFwJCcgYW5jaG9yPSdjb25maWcuTmFtZS5NYXAkJyBhbHRleHQ9J2FjbWUudXRpbHMuY2xvY2tzLklDbG9jay5jb25maWdOYW1lTWFwJCcgbm9kb2M9JzEnIGV4dGVybmFsPScxJyBvdmVycmlkZXM9JzAnIHJlYWRvbmx5PScxJyBpbnN0YW5jZT0nMCcgc3VtbWFyeT0nJyBvcmlnaW49JyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZJTW9kdWxlLmh0bWwlMjNjb25maWcuTmFtZS5NYXAlMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlLmNvbmZpZ05hbWVNYXAlMjQlMjIlM0VJTW9kdWxlJTNDJTJGYSUzRScgbWV0YW9ubHk9JzEnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbWV0YW9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXJlYWRvbmx5KyUzQyUyRnNwYW4lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25maWclM0MlMkZzcGFuJTNFKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLlZpZXcuSW5mbyUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLlZpZXdJbmZvJTIyJTNFVHlwZXMuVmlld0luZm8lM0MlMkZhJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vjb25maWdOYW1lTWFwJTI0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTVCJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFc3RyaW5nJTNDJTJGc3BhbiUzRSU1RCslM0QrJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRk1lbW9yeSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZUhlYXAlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZVNlY3Rpb24lMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5tZW1vcnlQb2xpY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5uYW1lZE1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lm5hbWVkSW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5meG50YWIlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5yb21QYXRjaFRhYmxlJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRGlhZ25vc3RpY3MlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQubG9nZ2VyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfQVNTRVJUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfRU5UUlklMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19FWElUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfSU5URVJOQUwlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19MSUZFQ1lDTEUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSMSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVIyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI1JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjYlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI4JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQ29uY3VycmVuY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZ2F0ZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmdhdGVQYXJhbXMlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZMb2clMkJFdmVudHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGTG9nJTJCRXZlbnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQXNzZXJ0cyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJBc3NlcnQuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZBc3NlcnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyQXNzZXJ0LklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkVycm9yLklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyRXJyb3IuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUyNTVEJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wga2luZD0nY29uZmlnJyBuYW1lPSdjb21tb24kJyBhbmNob3I9J2NvbW1vbiQnIGFsdGV4dD0nYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLmNvbW1vbiQnIG5vZG9jPScwJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9J0NvbW1vbittb2R1bGUrY29uZmlndXJhdGlvbitwYXJhbWV0ZXJzJyBvcmlnaW49JyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZJTW9kdWxlLmh0bWwlMjNjb21tb24lMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlLmNvbW1vbiUyNCUyMiUzRUlNb2R1bGUlM0MlMkZhJTNFJyBtZXRhb25seT0nMSc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VtZXRhb25seSslM0MlMkZzcGFuJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFY29uZmlnJTNDJTJGc3BhbiUzRSslM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGVHlwZXMuaHRtbCUyMy5Db21tb24lMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQlMjIlM0VUeXBlcy5Db21tb24lMjQlM0MlMkZhJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vjb21tb24lMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICA8ZG9jU2VjdCBuYW1lPSdkZXRhaWxzJz4KKyAgICAgICAgICAgICAgICAgICAgPGRvY1BhcmEgY29udGVudD0nQWxsK21vZHVsZXMraGF2ZSt0aGlzK2NvbmZpZ3VyYXRpb24rcGFyYW1ldGVyLisrSXRzK25hbWUlMEErK2NvbnRhaW5zK3RoZSslMjclMjQlMjcrY2hhcmFjdGVyK3RvK2Vuc3VyZStpdCtkb2VzK25vdCtjb25mbGljdCt3aXRoJTBBKytjb25maWd1cmF0aW9uK3BhcmFtZXRlcnMrZGVjbGFyZWQrYnkrdGhlK21vZHVsZS4rK1RoaXMrYWxsb3dzJTBBKytuZXcrY29uZmlndXJhdGlvbitwYXJhbWV0ZXJzK3RvK2JlK2FkZGVkK2luK3RoZStmdXR1cmUrd2l0aG91dCUwQSsrYW55K2NoYW5jZStvZiticmVha2luZytleGlzdGluZyttb2R1bGVzLicvPgorICAgICAgICAgICAgICAgIDwvZG9jU2VjdD4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2NvbmZpZycgbmFtZT0ncm92U2hvd1Jhd1RhYiQnIGFuY2hvcj0ncm92LlNob3cuUmF3LlRhYiQnIGFsdGV4dD0nYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLnJvdlNob3dSYXdUYWIkJyBub2RvYz0nMScgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzAnIGluc3RhbmNlPScwJyBzdW1tYXJ5PScnIG9yaWdpbj0nJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklNb2R1bGUuaHRtbCUyM3Jvdi5TaG93LlJhdy5UYWIlMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlLnJvdlNob3dSYXdUYWIlMjQlMjIlM0VJTW9kdWxlJTNDJTJGYSUzRScgbWV0YW9ubHk9JzEnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbWV0YW9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbmZpZyUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFQm9vbCUzQyUyRnNwYW4lM0UlMjZuYnNwJTNCJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRXJvdlNob3dSYXdUYWIlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUyNTNDc3BhbiUyQmNsYXNzJTI1M0QlMjUyMnhkb2Mta3cyJTI1MjIlMjUzRXRydWUlMjUzQyUyNTJGc3BhbiUyNTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBraW5kPSdjb25maWcnIG5hbWU9J3ZpZXdOYW1lTWFwJCcgYW5jaG9yPSd2aWV3Lk5hbWUuTWFwJCcgYWx0ZXh0PSdhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2sudmlld05hbWVNYXAkJyBub2RvYz0nMScgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzAnIGluc3RhbmNlPScwJyBzdW1tYXJ5PSdTcGVjaWZpZXMrdGhlK1JPVit2aWV3cytmb3IrdGhlK21vZHVsZScgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGSU1vZHVsZS5odG1sJTIzdmlldy5OYW1lLk1hcCUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLklNb2R1bGUudmlld05hbWVNYXAlMjQlMjIlM0VJTW9kdWxlJTNDJTJGYSUzRScgbWV0YW9ubHk9JzEnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbWV0YW9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbmZpZyUzQyUyRnNwYW4lM0UrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRlR5cGVzLmh0bWwlMjMuVmlldy5JbmZvJTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuVHlwZXMuVmlld0luZm8lMjIlM0VUeXBlcy5WaWV3SW5mbyUzQyUyRmElM0UlMjZuYnNwJTNCJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRXZpZXdOYW1lTWFwJTI0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTVCJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFc3RyaW5nJTNDJTJGc3BhbiUzRSU1RCUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICAgICAgPC9kZWNsPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8Z3JvdXAgbmFtZT0nbW9kdWxlLXdpZGUgZnVuY3Rpb25zJz4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2Z4bicgbmFtZT0nZ2V0VGltZScgYW5jaG9yPSdnZXQuVGltZScgYWx0ZXh0PSdhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2suZ2V0VGltZScgbm9kb2M9JzAnIGV4dGVybmFsPScxJyBvdmVycmlkZXM9JzAnIHJlYWRvbmx5PScwJyBpbnN0YW5jZT0nMCcgc3VtbWFyeT0nR2V0K3RoZStjdXJyZW50K3RpbWUnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGY2xvY2tzJTJGSUNsb2NrLmh0bWwlMjMuVGltZS5WYWx1ZSUyMit0aXRsZSUzRCUyMmFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5UaW1lVmFsdWUlMjIlM0VJQ2xvY2suVGltZVZhbHVlJTNDJTJGYSUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFZ2V0VGltZSUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUyOCsrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgPC9ncm91cD4KKyAgICA8L3VuaXQ+CisgICAgPHVuaXQgbmFtZT0nQ2xvY2tTdGQnIGtpbmQ9J21vZHVsZScgbm9kb2M9JzAnIG1ldGFvbmx5PScwJyBzdW1tYXJ5PSdQb3J0YWJsZStJQ2xvY2srbW9kdWxlJyBpbmhlcml0cz0nYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrJz4KKyAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFcGFja2FnZSUzQyUyRnNwYW4lM0UrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGY2xvY2tzJTJGcGFja2FnZS5odG1sJTIyK3RpdGxlJTNEJTIyYWNtZS51dGlscy5jbG9ja3MlMjIlM0VhY21lLnV0aWxzLmNsb2NrcyUzQyUyRmElM0UlM0InLz4KKyAgICAgICAgICAgIDxsaW5lIGJsYW5rPScxJyBhbHdheXM9JzAnLz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbW9kdWxlJTNDJTJGc3BhbiUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFQ2xvY2tTdGQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0UraW5oZXJpdHMrJTNDJTJGc3BhbiUzRSUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRmFjbWUlMkZ1dGlscyUyRmNsb2NrcyUyRklDbG9jay5odG1sJTIyK3RpdGxlJTNEJTIyYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrJTIyJTNFSUNsb2NrJTNDJTJGYSUzRSslN0InLz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTdEJy8+CisgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICA8c3BlY0luZm8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRW1vZHVsZSUzQyUyRnNwYW4lM0UrJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRUNsb2NrU3RkJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyU3QiUzQ2IlM0UlMjZuYnNwJTNCJTI2bmJzcCUzQi4uLiUzQyUyRmIlM0UnLz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29tbWVudD0naW5oZXJpdHMrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGY2xvY2tzJTJGSUNsb2NrLmh0bWwlMjIrdGl0bGUlM0QlMjJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2slMjIlM0VhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2slM0MlMkZhJTNFJy8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbW1lbnQ9J2luaGVyaXRzKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZJTW9kdWxlLmh0bWwlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlJTIyJTNFeGRjLnJ1bnRpbWUuSU1vZHVsZSUzQyUyRmElM0UnLz4KKyAgICAgICAgPC9zcGVjSW5mbz4KKyAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFdmFyJTNDJTJGc3BhbiUzRStDbG9ja1N0ZCslM0QrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3czJTIyJTNFeGRjLnVzZU1vZHVsZSUzQyUyRnNwYW4lM0UlMjglM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRSUyN2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTI3JTNDJTJGc3BhbiUzRSUyOSUzQicvPgorICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3czJTIyJTNFJTIzaW5jbHVkZSUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0UlMjZsdCUzQmFjbWUlMkZ1dGlscyUyRmNsb2NrcyUyRkNsb2NrU3RkLmglMjZndCUzQiUzQyUyRnNwYW4lM0UnLz4KKyAgICAgICAgPC9zeW5vcFRhcmc+CisgICAgICAgIDxncm91cCBuYW1lPSdsb2NhbCBwcm94eSBtb2R1bGVzJz4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGNvbnN0YW50cyAmYW1wOyB0eXBlcyc+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J3R5cGVkZWYnIG5hbWU9J1RpbWVWYWx1ZScgYW5jaG9yPScuVGltZS5WYWx1ZScgYWx0ZXh0PSdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC5UaW1lVmFsdWUnIG5vZG9jPScwJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9J1RpbWUrdmFsdWUrdHlwZScgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGLi4lMkZhY21lJTJGdXRpbHMlMkZjbG9ja3MlMkZJQ2xvY2suaHRtbCUyMy5UaW1lLlZhbHVlJTIyK3RpdGxlJTNEJTIyYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLlRpbWVWYWx1ZSUyMiUzRUlDbG9jayUzQyUyRmElM0UnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFdHlwZWRlZiUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFQml0czMyJTNDJTJGc3BhbiUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFVGltZVZhbHVlJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0V0eXBlZGVmJTNDJTJGc3BhbiUzRSslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VCaXRzMzIlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VDbG9ja1N0ZF9UaW1lVmFsdWUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wVGFyZz4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGNvbmZpZyBwYXJhbWV0ZXJzJz4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wga2luZD0nY29uZmlnJyBuYW1lPSdjb25maWdOYW1lTWFwJCcgYW5jaG9yPSdjb25maWcuTmFtZS5NYXAkJyBhbHRleHQ9J2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkLmNvbmZpZ05hbWVNYXAkJyBub2RvYz0nMScgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzEnIGluc3RhbmNlPScwJyBzdW1tYXJ5PScnIG9yaWdpbj0nJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklNb2R1bGUuaHRtbCUyM2NvbmZpZy5OYW1lLk1hcCUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLklNb2R1bGUuY29uZmlnTmFtZU1hcCUyNCUyMiUzRUlNb2R1bGUlM0MlMkZhJTNFJyBtZXRhb25seT0nMSc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VtZXRhb25seSslM0MlMkZzcGFuJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFcmVhZG9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbmZpZyUzQyUyRnNwYW4lM0UrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRlR5cGVzLmh0bWwlMjMuVmlldy5JbmZvJTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuVHlwZXMuVmlld0luZm8lMjIlM0VUeXBlcy5WaWV3SW5mbyUzQyUyRmElM0UlMjZuYnNwJTNCJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWNvbmZpZ05hbWVNYXAlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlNUIlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VzdHJpbmclM0MlMkZzcGFuJTNFJTVEKyUzRCslMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGTWVtb3J5JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lmluc3RhbmNlSGVhcCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lmluc3RhbmNlU2VjdGlvbiUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lm1lbW9yeVBvbGljeSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lm5hbWVkTW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQubmFtZWRJbnN0YW5jZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmZ4bnRhYiUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LnJvbVBhdGNoVGFibGUlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZEaWFnbm9zdGljcyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5sb2dnZXIlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19BU1NFUlQlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19FTlRSWSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX0VYSVQlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19JTlRFUk5BTCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX0xJRkVDWUNMRSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVIxJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjIlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSMyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI0JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNiUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI3JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjglMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZDb25jdXJyZW5jeSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5nYXRlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZ2F0ZVBhcmFtcyUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRkxvZyUyQkV2ZW50cyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJMb2cuRXZlbnQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZMb2clMkJFdmVudHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJpbnN0YW5jZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJMb2cuRXZlbnQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZBc3NlcnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkFzc2VydC5JZCUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRkFzc2VydHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJpbnN0YW5jZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJBc3NlcnQuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZFcnJvcnMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyRXJyb3IuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZFcnJvcnMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJpbnN0YW5jZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJFcnJvci5JZCUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTI1NUQlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICA8c3lub3BNZXRhPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbnN0JTNDJTJGc3BhbiUzRSslM0NnbyUzRUNsb2NrU3RkLiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFY29uZmlnTmFtZU1hcCUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrJTNDaSUzRSUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLlZpZXcuSW5mbyUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLlZpZXdJbmZvJTIyJTNFVHlwZXMuVmlld0luZm8lM0MlMkZhJTNFJTVCJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFc3RyaW5nJTNDJTJGc3BhbiUzRSU1RCUzQyUyRmklM0UrJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRk1lbW9yeSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZUhlYXAlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZVNlY3Rpb24lMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5tZW1vcnlQb2xpY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5uYW1lZE1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lm5hbWVkSW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5meG50YWIlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5yb21QYXRjaFRhYmxlJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRGlhZ25vc3RpY3MlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQubG9nZ2VyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfQVNTRVJUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfRU5UUlklMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19FWElUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfSU5URVJOQUwlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19MSUZFQ1lDTEUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSMSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVIyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI1JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjYlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI4JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQ29uY3VycmVuY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZ2F0ZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmdhdGVQYXJhbXMlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZMb2clMkJFdmVudHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGTG9nJTJCRXZlbnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQXNzZXJ0cyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJBc3NlcnQuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZBc3NlcnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyQXNzZXJ0LklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkVycm9yLklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyRXJyb3IuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUyNTVEJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcE1ldGE+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wga2luZD0nY29uZmlnJyBuYW1lPSdjb21tb24kJyBhbmNob3I9J2NvbW1vbiQnIGFsdGV4dD0nYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQuY29tbW9uJCcgbm9kb2M9JzAnIGV4dGVybmFsPScxJyBvdmVycmlkZXM9JzAnIHJlYWRvbmx5PScwJyBpbnN0YW5jZT0nMCcgc3VtbWFyeT0nQ29tbW9uK21vZHVsZStjb25maWd1cmF0aW9uK3BhcmFtZXRlcnMnIG9yaWdpbj0nJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklNb2R1bGUuaHRtbCUyM2NvbW1vbiUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLklNb2R1bGUuY29tbW9uJTI0JTIyJTNFSU1vZHVsZSUzQyUyRmElM0UnIG1ldGFvbmx5PScxJz4KKyAgICAgICAgICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRW1ldGFvbmx5KyUzQyUyRnNwYW4lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25maWclM0MlMkZzcGFuJTNFKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLkNvbW1vbiUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCUyMiUzRVR5cGVzLkNvbW1vbiUyNCUzQyUyRmElM0UlMjZuYnNwJTNCJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWNvbW1vbiUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICAgICAgICAgIDxzeW5vcE1ldGE+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDZ28lM0VDbG9ja1N0ZC4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWNvbW1vbiUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrJTNDaSUzRSUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLkNvbW1vbiUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCUyMiUzRVR5cGVzLkNvbW1vbiUyNCUzQyUyRmElM0UlM0MlMkZpJTNFKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRXVuZGVmaW5lZCUzQyUyRnNwYW4lM0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICA8ZG9jU2VjdCBuYW1lPSdkZXRhaWxzJz4KKyAgICAgICAgICAgICAgICAgICAgPGRvY1BhcmEgY29udGVudD0nQWxsK21vZHVsZXMraGF2ZSt0aGlzK2NvbmZpZ3VyYXRpb24rcGFyYW1ldGVyLisrSXRzK25hbWUlMEErK2NvbnRhaW5zK3RoZSslMjclMjQlMjcrY2hhcmFjdGVyK3RvK2Vuc3VyZStpdCtkb2VzK25vdCtjb25mbGljdCt3aXRoJTBBKytjb25maWd1cmF0aW9uK3BhcmFtZXRlcnMrZGVjbGFyZWQrYnkrdGhlK21vZHVsZS4rK1RoaXMrYWxsb3dzJTBBKytuZXcrY29uZmlndXJhdGlvbitwYXJhbWV0ZXJzK3RvK2JlK2FkZGVkK2luK3RoZStmdXR1cmUrd2l0aG91dCUwQSsrYW55K2NoYW5jZStvZiticmVha2luZytleGlzdGluZyttb2R1bGVzLicvPgorICAgICAgICAgICAgICAgIDwvZG9jU2VjdD4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2NvbmZpZycgbmFtZT0ncm92U2hvd1Jhd1RhYiQnIGFuY2hvcj0ncm92LlNob3cuUmF3LlRhYiQnIGFsdGV4dD0nYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQucm92U2hvd1Jhd1RhYiQnIG5vZG9jPScxJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9Jycgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGSU1vZHVsZS5odG1sJTIzcm92LlNob3cuUmF3LlRhYiUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLklNb2R1bGUucm92U2hvd1Jhd1RhYiUyNCUyMiUzRUlNb2R1bGUlM0MlMkZhJTNFJyBtZXRhb25seT0nMSc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VtZXRhb25seSslM0MlMkZzcGFuJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFY29uZmlnJTNDJTJGc3BhbiUzRSslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VCb29sJTNDJTJGc3BhbiUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFcm92U2hvd1Jhd1RhYiUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrJTI1M0NzcGFuJTJCY2xhc3MlMjUzRCUyNTIyeGRvYy1rdzIlMjUyMiUyNTNFdHJ1ZSUyNTNDJTI1MkZzcGFuJTI1M0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICA8c3lub3BNZXRhPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ2dvJTNFQ2xvY2tTdGQuJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vyb3ZTaG93UmF3VGFiJTI0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyUzRCslM0NpJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFQm9vbCUzQyUyRnNwYW4lM0UlM0MlMkZpJTNFKyUyNTNDc3BhbiUyQmNsYXNzJTI1M0QlMjUyMnhkb2Mta3cyJTI1MjIlMjUzRXRydWUlMjUzQyUyNTJGc3BhbiUyNTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcE1ldGE+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBraW5kPSdjb25maWcnIG5hbWU9J3ZpZXdOYW1lTWFwJCcgYW5jaG9yPSd2aWV3Lk5hbWUuTWFwJCcgYWx0ZXh0PSdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC52aWV3TmFtZU1hcCQnIG5vZG9jPScxJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9J1NwZWNpZmllcyt0aGUrUk9WK3ZpZXdzK2Zvcit0aGUrbW9kdWxlJyBvcmlnaW49JyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZJTW9kdWxlLmh0bWwlMjN2aWV3Lk5hbWUuTWFwJTI0JTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuSU1vZHVsZS52aWV3TmFtZU1hcCUyNCUyMiUzRUlNb2R1bGUlM0MlMkZhJTNFJyBtZXRhb25seT0nMSc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VtZXRhb25seSslM0MlMkZzcGFuJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFY29uZmlnJTNDJTJGc3BhbiUzRSslM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGVHlwZXMuaHRtbCUyMy5WaWV3LkluZm8lMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5UeXBlcy5WaWV3SW5mbyUyMiUzRVR5cGVzLlZpZXdJbmZvJTNDJTJGYSUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFdmlld05hbWVNYXAlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlNUIlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VzdHJpbmclM0MlMkZzcGFuJTNFJTVEJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NnbyUzRUNsb2NrU3RkLiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFdmlld05hbWVNYXAlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUzQ2klM0UlM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGVHlwZXMuaHRtbCUyMy5WaWV3LkluZm8lMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5UeXBlcy5WaWV3SW5mbyUyMiUzRVR5cGVzLlZpZXdJbmZvJTNDJTJGYSUzRSU1QiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXN0cmluZyUzQyUyRnNwYW4lM0UlNUQlM0MlMkZpJTNFKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRXVuZGVmaW5lZCUzQyUyRnNwYW4lM0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGZ1bmN0aW9ucyc+CisgICAgICAgICAgICA8ZGVjbCBraW5kPSdmeG4nIG5hbWU9J2dldFRpbWUnIGFuY2hvcj0nZ2V0LlRpbWUnIGFsdGV4dD0nYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQuZ2V0VGltZScgbm9kb2M9JzAnIGV4dGVybmFsPScxJyBvdmVycmlkZXM9JzAnIHJlYWRvbmx5PScwJyBpbnN0YW5jZT0nMCcgc3VtbWFyeT0nR2V0K3RoZStjdXJyZW50K3RpbWUnIG9yaWdpbj0nJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGY2xvY2tzJTJGSUNsb2NrLmh0bWwlMjNnZXQuVGltZSUyMit0aXRsZSUzRCUyMmFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5nZXRUaW1lJTIyJTNFSUNsb2NrJTNDJTJGYSUzRSc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGLi4lMkZhY21lJTJGdXRpbHMlMkZjbG9ja3MlMkZJQ2xvY2suaHRtbCUyMy5UaW1lLlZhbHVlJTIyK3RpdGxlJTNEJTIyYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLlRpbWVWYWx1ZSUyMiUzRUlDbG9jay5UaW1lVmFsdWUlM0MlMkZhJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VnZXRUaW1lJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTI4KyslMjklM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICA8c3lub3BUYXJnPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ2klM0UlM0MlMkZpJTNFJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGY2xvY2tzJTJGSUNsb2NrLmh0bWwlMjMuVGltZS5WYWx1ZSUyMit0aXRsZSUzRCUyMmFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5UaW1lVmFsdWUlMjIlM0VJQ2xvY2tfVGltZVZhbHVlJTNDJTJGYSUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFQ2xvY2tTdGRfZ2V0VGltZSUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUyOCsrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFRhcmc+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGJ1aWx0LWlucyc+CisgICAgICAgICAgICA8c3lub3BUYXJnPgorICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29tbWVudD0nR2V0K3RoaXMrbW9kdWxlJTI3cyt1bmlxdWUraWQnIGNvbnRlbnQ9JyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLk1vZHVsZS5JZCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLk1vZHVsZUlkJTIyJTNFVHlwZXNfTW9kdWxlSWQlM0MlMkZhJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VDbG9ja1N0ZF9Nb2R1bGVfaWQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlMjgrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPGxpbmUgYmxhbms9JzEnIGFsd2F5cz0nMCcvPgorICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29tbWVudD0nVGVzdCtpZit0aGlzK21vZHVsZStoYXMrY29tcGxldGVkK3N0YXJ0dXAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRUJvb2wlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VDbG9ja1N0ZF9Nb2R1bGVfc3RhcnR1cERvbmUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlMjgrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb21tZW50PSdUaGUraGVhcCtmcm9tK3doaWNoK3RoaXMrbW9kdWxlK2FsbG9jYXRlcyttZW1vcnknIGNvbnRlbnQ9JyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZJSGVhcC5odG1sJTIzcGVyLWluc3RhbmNlX29iamVjdF90eXBlcyUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLklIZWFwLkhhbmRsZSUyMiUzRUlIZWFwX0hhbmRsZSUzQyUyRmElM0UrJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRUNsb2NrU3RkX01vZHVsZV9oZWFwJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTI4KyUyOSUzQicvPgorICAgICAgICAgICAgICAgIDxsaW5lIGJsYW5rPScxJyBhbHdheXM9JzAnLz4KKyAgICAgICAgICAgIDwvc3lub3BUYXJnPgorICAgICAgICA8L2dyb3VwPgorICAgIDwvdW5pdD4KKzwvcGFja2FnZT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdlMzk4OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwCkBAIC0wLDAgKzEsNjggQEAKK2NsZWFuOjoNCisJJChSTSkgcGFja2FnZS9hY21lLnV0aWxzLmNsb2Nrcy5zY2gNCisJJChSTSkgcGFja2FnZS8udmVyc19nMTUwDQorCSQoUk0pIHBhY2thZ2UvLnZlcnNfcjE1MA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX2IxNTANCisJJChSTSkgcGFja2FnZS8udmVyc19jMTUwDQorCSQoUk0pIHBhY2thZ2UvLnhkYy10MzINCisJJChSTSkgcGFja2FnZS9hY21lX3V0aWxzX2Nsb2Nrcy5qYXZhDQorCSQoUk0pIHBhY2thZ2UvYWNtZV91dGlsc19jbG9ja3MuY2xhc3MNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLmMNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlLmRlZnMuaA0KKwkkKFJNKSBJQ2xvY2suaA0KKwkkKFJNKSBDbG9ja1N0ZC5oDQorCSQoUk0pIHBhY2thZ2UvaW50ZXJuYWwvQ2xvY2tTdGQueGRjLmgNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlLmRvYy54bWwNCisJJChSTSkgcGFja2FnZS9hY21lLnV0aWxzLmNsb2Nrcy5jY3MNCisKKy5pbnRlcmZhY2VzOiBwYWNrYWdlL2FjbWUudXRpbHMuY2xvY2tzLnNjaCBwYWNrYWdlLy52ZXJzX2cxNTAgcGFja2FnZS8udmVyc19yMTUwIHBhY2thZ2UvLnZlcnNfYjE1MCBwYWNrYWdlLy52ZXJzX2MxNTAgcGFja2FnZS8ueGRjLXQzMiBwYWNrYWdlL2FjbWVfdXRpbHNfY2xvY2tzLmphdmEgcGFja2FnZS9hY21lX3V0aWxzX2Nsb2Nrcy5jbGFzcyBwYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MuYyBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oIElDbG9jay5oIENsb2NrU3RkLmggcGFja2FnZS9pbnRlcm5hbC9DbG9ja1N0ZC54ZGMuaCBwYWNrYWdlL3BhY2thZ2UuZG9jLnhtbCBwYWNrYWdlL2FjbWUudXRpbHMuY2xvY2tzLmNjcyAKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2cxNTAKK3BhY2thZ2UvLnZlcnNfZzE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX3IxNTAKK3BhY2thZ2UvLnZlcnNfcjE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2IxNTAKK3BhY2thZ2UvLnZlcnNfYjE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2MxNTAKK3BhY2thZ2UvLnZlcnNfYzE1MDoKKworLmludGVyZmFjZXM6IENsb2NrU3RkLnhkYyBJQ2xvY2sueGRjIAorCisjIHNjaGVtYSBpbmNsdWRlIGZpbGUgZGVwZW5kZW5jaWVzCisKKyMgc2NoZW1hIHVwZGF0ZSBkZXBlbmRlbmNpZXMKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBDbG9ja1N0ZC54ZGMNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogSUNsb2NrLnhkYw0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiB4ZGMvSVBhY2thZ2UueGRjDQoreGRjL0lQYWNrYWdlLnhkYzoNCit2cGF0aCB4ZGMvSVBhY2thZ2UueGRjICQoWFBLR1ZQQVRIKQ0KKworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvanMuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvanMuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3hiZWFuLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3hiZWFuLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL3hzci9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi94c3IvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS90YXIuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvdGFyLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2NtZC9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9jbWQvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9hbnRsci5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9hbnRsci5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL3NwZWMvamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9zcGVjL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9nZW4vamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vZ2VuL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvZWNqLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2Vjai5qYXINCitlbmRpZgorIyBnb2FscyBmb3IgZmlsZXMgZ2VuZXJhdGVkIGR1cmluZyBzY2hlbWEgZ2VuZXJhdGlvbiBidXQgdW5zcGVjaWZpZWQgYnkgc2NoZW1hJ3MgcGF0dGVybiBydWxlCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogSUNsb2NrLmgNCitJQ2xvY2suaDoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogQ2xvY2tTdGQuaA0KK0Nsb2NrU3RkLmg6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IHBhY2thZ2UvaW50ZXJuYWwvQ2xvY2tTdGQueGRjLmgNCitwYWNrYWdlL2ludGVybmFsL0Nsb2NrU3RkLnhkYy5oOg0KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzNjMDI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKQEAgLTAsMCArMSwxOCBAQAorcGFja2FnZS54ZGMNCitJQ2xvY2sueGRjDQorQ2xvY2tTdGQueGRjDQorcGFja2FnZS9hY21lLnV0aWxzLmNsb2Nrcy5zY2gNCitwYWNrYWdlLy52ZXJzX2cxNTANCitwYWNrYWdlLy52ZXJzX3IxNTANCitwYWNrYWdlLy52ZXJzX2IxNTANCitwYWNrYWdlLy52ZXJzX2MxNTANCitwYWNrYWdlLy54ZGMtdDMyDQorcGFja2FnZS9hY21lX3V0aWxzX2Nsb2Nrcy5qYXZhDQorcGFja2FnZS9hY21lX3V0aWxzX2Nsb2Nrcy5jbGFzcw0KK3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmNsb2Nrcy5jDQorcGFja2FnZS9wYWNrYWdlLmRlZnMuaA0KK0lDbG9jay5oDQorQ2xvY2tTdGQuaA0KK3BhY2thZ2UvaW50ZXJuYWwvQ2xvY2tTdGQueGRjLmgNCitwYWNrYWdlL3BhY2thZ2UuZG9jLnhtbA0KK3BhY2thZ2UvYWNtZS51dGlscy5jbG9ja3MuY2NzDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jbG9ja3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNjU2ZmJhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuY2xvY2tzLmMKQEAgLTAsMCArMSwyMSBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworX19GQVJfXyBjaGFyIGFjbWVfdXRpbHNfY2xvY2tzX19kdW1teV9fOworCisjZGVmaW5lIF9feGRjX1BLR1ZFUlMgbnVsbAorI2RlZmluZSBfX3hkY19QS0dOQU1FIGFjbWUudXRpbHMuY2xvY2tzCisjZGVmaW5lIF9feGRjX1BLR1BSRUZJWCBhY21lX3V0aWxzX2Nsb2Nrc18KKworI2lmZGVmIF9feGRjX2JsZF9wa2dfY19fCisjZGVmaW5lIF9fc3RyaW5naWZ5KGEpICNhCisjZGVmaW5lIF9fbG9jYWxfaW5jbHVkZShhKSBfX3N0cmluZ2lmeShhKQorI2luY2x1ZGUgX19sb2NhbF9pbmNsdWRlKF9feGRjX2JsZF9wa2dfY19fKQorI2VuZGlmCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcmVsL2FjbWVfdXRpbHNfY2xvY2tzLnhkYy5pbmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3JlbC9hY21lX3V0aWxzX2Nsb2Nrcy54ZGMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzMzBjYmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3JlbC9hY21lX3V0aWxzX2Nsb2Nrcy54ZGMuaW5jCkBAIC0wLDAgKzEsOCBAQAorbGliL2FjbWUudXRpbHMuY2xvY2tzLmE2NFAKK3BhY2thZ2UvYnVpbGQuY2ZnCitwYWNrYWdlL3BhY2thZ2UuY2ZnLnhkYy5pbmMKK3BhY2thZ2UvcGFja2FnZS5leHQueG1sCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYworbGliL2FjbWUudXRpbHMuY2xvY2tzLmE4NkdXCitwYWNrYWdlL3BhY2thZ2UuYmxkLnhtbAorcGFja2FnZS9wYWNrYWdlLnJlbC5kb3QKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvbGliL2FjbWUudXRpbHMuYTY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvbGliL2FjbWUudXRpbHMuYTY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZWY5MWY3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9saWIvYWNtZS51dGlscy5hNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvbGliL2FjbWUudXRpbHMuYTY0UC5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2xpYi9hY21lLnV0aWxzLmE2NFAubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwZGY1MWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2xpYi9hY21lLnV0aWxzLmE2NFAubWFrCkBAIC0wLDAgKzEsNzcgQEAKKyMKKyMgIERvIG5vdCBlZGl0IHRoaXMgZmlsZS4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSAKKyMgIHBhY2thZ2UuYmxkLiAgQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBmaWxlIHdpbGwgYmUgCisjICBvdmVyd3JpdHRlbiB3aGVuZXZlciBtYWtlZmlsZXMgYXJlIHJlLWdlbmVyYXRlZC4KKyMKKyMgIHRhcmdldCBjb21wYXRpYmlsaXR5IGtleSA9IHRpLnRhcmdldHMuQzY0UHsxLDAsNi4xLDUKKyMKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vNjRQLmRlcAorZW5kaWYKKworcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzY0UDogcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYyBsaWIvYWNtZS51dGlscy5hNjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV93aG9sZV9wcm9ncmFtIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLW9lIC1PMiAtbW8gICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UgLWZyPS4vcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZSAtZmMgJDwKKwkkKE1LREVQKSAtYSAkQC5kZXAgLXAgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZSAtcyBvNjRQICQ8IC1DICAgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3dob2xlX3Byb2dyYW0gLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtb2UgLU8yIC1tbyAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZSAtZnI9Li9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm82NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLnM2NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLnM2NFA6IHBhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmMgbGliL2FjbWUudXRpbHMuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQIC1uICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfd2hvbGVfcHJvZ3JhbSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1vZSAtTzIgLW1vICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UgLXMgbzY0UCAkPCAtQyAgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV93aG9sZV9wcm9ncmFtIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLW9lIC1PMiAtbW8gICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UgLWZyPS4vcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZQorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLnM2NFA6Q19ESVI9CitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5zNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLnM2NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2gubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm82NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm82NFA6IEJlbmNoLmMgbGliL2FjbWUudXRpbHMuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfd2hvbGVfcHJvZ3JhbSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1vZSAtTzIgLW1vICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscyAtZnI9Li9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscyAtZmMgJDwKKwkkKE1LREVQKSAtYSAkQC5kZXAgLXAgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMgLXMgbzY0UCAkPCAtQyAgIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV93aG9sZV9wcm9ncmFtIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLW9lIC1PMiAtbW8gICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2gubzY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm82NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2gubzY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLnM2NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLnM2NFA6IEJlbmNoLmMgbGliL2FjbWUudXRpbHMuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQIC1uICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfd2hvbGVfcHJvZ3JhbSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1vZSAtTzIgLW1vICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscyAtZnI9Li9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscyAtZmMgJDwKKwkkKE1LREVQKSAtYSAkQC5kZXAgLXAgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMgLXMgbzY0UCAkPCAtQyAgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV93aG9sZV9wcm9ncmFtIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLW9lIC1PMiAtbW8gICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2guczY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLnM2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2guczY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2NsZWFuLDY0UCA6OgorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vNjRQCisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm82NFAKKwktJChSTSkgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuczY0UAorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5zNjRQCisKK2xpYi9hY21lLnV0aWxzLmE2NFA6IHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm82NFAgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2gubzY0UCBsaWIvYWNtZS51dGlscy5hNjRQLm1haworCitjbGVhbjo6CisJLSQoUk0pIGxpYi9hY21lLnV0aWxzLmE2NFAubWFrCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2xpYi9hY21lLnV0aWxzLmE4NkdXIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9saWIvYWNtZS51dGlscy5hODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDE2OTYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9saWIvYWNtZS51dGlscy5hODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2xpYi9hY21lLnV0aWxzLmE4NkdXLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvbGliL2FjbWUudXRpbHMuYTg2R1cubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZTVhMGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL2xpYi9hY21lLnV0aWxzLmE4NkdXLm1hawpAQCAtMCwwICsxLDc3IEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisjICB0YXJnZXQgY29tcGF0aWJpbGl0eSBrZXkgPSBnbnUudGFyZ2V0cy5NaW5nd3sxLDAsMy40LDUKKyMKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vODZHVy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm84NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vODZHVzogcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYyBsaWIvYWNtZS51dGlscy5hODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjICAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV93aG9sZV9wcm9ncmFtIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlLyAtcyBvODZHVyAkPCAtQyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV93aG9sZV9wcm9ncmFtIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgICAkKFhEQ0lOQ1MpIAorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm84NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm84NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm84NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuczg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLnM4NkdXOiBwYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jIGxpYi9hY21lLnV0aWxzLmE4NkdXLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w4NkdXIC1TICQ8IC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgLWMgIC14IGMgLVMgLVd1bnVzZWQgIC1EZmFyPSAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfd2hvbGVfcHJvZ3JhbSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81ICAgJChYRENJTkNTKSAgLW8gJEAgJDwKKwkkKE1LREVQKSAtbyAkQC5kZXAgLXAgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfd2hvbGVfcHJvZ3JhbSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81ICAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5zODZHVzpMRF9MSUJSQVJZX1BBVEg9CitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5zODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5zODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vODZHVy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm84NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vODZHVzogQmVuY2guYyBsaWIvYWNtZS51dGlscy5hODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjICAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV93aG9sZV9wcm9ncmFtIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfd2hvbGVfcHJvZ3JhbSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81ICAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vODZHVzpMRF9MSUJSQVJZX1BBVEg9CitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLnM4NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5zODZHVzogQmVuY2guYyBsaWIvYWNtZS51dGlscy5hODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAtUyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjIC1TIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3dob2xlX3Byb2dyYW0gLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAgICQoWERDSU5DUykgIC1vICRAICQ8CisJJChNS0RFUCkgLW8gJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzLyAtcyBvODZHVyAkPCAtQyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV93aG9sZV9wcm9ncmFtIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgICAkKFhEQ0lOQ1MpIAorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLnM4NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLnM4NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLnM4NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworY2xlYW4sODZHVyA6OgorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vODZHVworCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vODZHVworCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5zODZHVworCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5zODZHVworCitsaWIvYWNtZS51dGlscy5hODZHVzogcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzg2R1cgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2gubzg2R1cgbGliL2FjbWUudXRpbHMuYTg2R1cubWFrCisKK2NsZWFuOjoKKwktJChSTSkgbGliL2FjbWUudXRpbHMuYTg2R1cubWFrCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UuYmxkIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWYwODVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlLmJsZApAQCAtMCwwICsxLDE0IEBACisvKg0KKyAqICA9PT09PT09PSBhY21lL3V0aWxzL3BhY2thZ2UuYmxkID09PT09PT09DQorICovDQorDQordmFyIEJ1aWxkID0geGRjLnVzZU1vZHVsZSgneGRjLmJsZC5CdWlsZEVudmlyb25tZW50Jyk7DQordmFyIFBrZyA9IHhkYy51c2VNb2R1bGUoJ3hkYy5ibGQuUGFja2FnZUNvbnRlbnRzJyk7DQorIA0KK3ZhciBMSUJfTkFNRSA9ICJsaWIvIiArIFBrZy5uYW1lOw0KK3ZhciBMSUJfU1JDUyA9IFsiQmVuY2guYyJdOw0KKyANCitmb3IgZWFjaCAodmFyIHRhcmcgaW4gQnVpbGQudGFyZ2V0cykgew0KKyAgICBQa2cuYWRkTGlicmFyeShMSUJfTkFNRSwgdGFyZywge3Byb2ZpbGU6ICd3aG9sZV9wcm9ncmFtJ30pLmFkZE9iamVjdHMoTElCX1NSQ1MpOw0KK30NCisNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UubWFrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODk3MjQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlLm1hawpAQCAtMCwwICsxLDI1NyBAQAorIworIyAgRG8gbm90IGVkaXQgdGhpcyBmaWxlLiAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIAorIyAgcGFja2FnZS5ibGQuICBBbnkgbW9kaWZpY2F0aW9ucyB0byB0aGlzIGZpbGUgd2lsbCBiZSAKKyMgIG92ZXJ3cml0dGVuIHdoZW5ldmVyIG1ha2VmaWxlcyBhcmUgcmUtZ2VuZXJhdGVkLgorIworCit1bmV4cG9ydCBNQUtFRklMRV9MSVNUCitvdmVycmlkZSBQS0dESVIgPSBhY21lL3V0aWxzCitYRENJTkNTID0gLUkuIC1JJChzdHJpcCAkKHN1YnN0IDssIC1JLCQoc3Vic3QgJChzcGFjZSksXCQoc3BhY2UpLCQoWFBLR1BBVEgpKSkpCitYRENDRkdESVIgPSBwYWNrYWdlL2NmZy8KKworIworIyBUaGUgZm9sbG93aW5nIGRlcGVuZGVuY2llcyBlbnN1cmUgcGFja2FnZS5tYWsgaXMgcmVidWlsdAorIyBpbiB0aGUgZXZlbnQgdGhhdCBzb21lIGluY2x1ZGVkIEJPTSBzY3JpcHQgY2hhbmdlcy4KKyMKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvSVRhcmdldC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvSVRhcmdldC54cworRDovd29yay90dXRvcmlhbC9yZXBvL2NvbmZpZy5ibGQ6CitwYWNrYWdlLm1hazogRDovd29yay90dXRvcmlhbC9yZXBvL2NvbmZpZy5ibGQKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9QYWNrYWdlQ29udGVudHMueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUGFja2FnZUNvbnRlbnRzLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0xpbnV4ODYueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0xpbnV4ODYueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvSVRhcmdldC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL01pbmd3LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9NaW5ndy54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvcGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvTVZBcm05LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9NVkFybTkueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaToKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2kKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaToKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2kKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9VQ0FybTkueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL1VDQXJtOS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90ZW1wbGF0ZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9NU1A0MzAueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvTVNQNDMwLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3BhY2thZ2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL19nZW4ueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvX2dlbi54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9JVGFyZ2V0LnhzCitwYWNrYWdlLm1hazogcGFja2FnZS5ibGQKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1JlcG9zaXRvcnkueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUmVwb3NpdG9yeS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9TY3JpcHQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvU2NyaXB0LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9CdWlsZEVudmlyb25tZW50LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0J1aWxkRW52aXJvbm1lbnQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0xpYnJhcnkueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvTGlicmFyeS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9VdGlscy54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9VdGlscy54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0V4ZWN1dGFibGUueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvRXhlY3V0YWJsZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldEZpbHRlci54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9JVGFyZ2V0RmlsdGVyLnhzCitlbmRpZgorCit0aS50YXJnZXRzLkM2NFAucm9vdERpciA/PSBkOi90aS9jNjAwMC9hbGMKK3RpLnRhcmdldHMucGFja2FnZUJhc2UgPz0gRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvCitnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyID89IGU6L3J0c2MvbWluZ3cKK2dudS50YXJnZXRzLnBhY2thZ2VCYXNlID89IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy8KKy5QUkVDSU9VUzogJChYRENDRkdESVIpLyUubzY0UAorLlBIT05ZOiBhbGwsNjRQIC5kbGxzLDY0UCAuZXhlY3V0YWJsZXMsNjRQIHRlc3QsNjRQCithbGwsNjRQOiAuZXhlY3V0YWJsZXMsNjRQCisuZXhlY3V0YWJsZXMsNjRQOiAubGlicmFyaWVzLDY0UAorLmV4ZWN1dGFibGVzLDY0UDogLmRsbHMsNjRQCisuZGxscyw2NFA6IC5saWJyYXJpZXMsNjRQCisubGlicmFyaWVzLDY0UDogLmludGVyZmFjZXMKKwlAJChSTSkgJEAKKwlAJChUT1VDSCkgIiRAIgorCisuaGVscDo6CisJQCQoRUNITykgeGRjIHRlc3QsNjRQCisJQCQoRUNITykgeGRjIC5leGVjdXRhYmxlcyw2NFAKKwlAJChFQ0hPKSB4ZGMgLmxpYnJhcmllcyw2NFAKKwlAJChFQ0hPKSB4ZGMgLmRsbHMsNjRQCisKKy5QUkVDSU9VUzogJChYRENDRkdESVIpLyUubzg2R1cKKy5QSE9OWTogYWxsLDg2R1cgLmRsbHMsODZHVyAuZXhlY3V0YWJsZXMsODZHVyB0ZXN0LDg2R1cKK2FsbCw4NkdXOiAuZXhlY3V0YWJsZXMsODZHVworLmV4ZWN1dGFibGVzLDg2R1c6IC5saWJyYXJpZXMsODZHVworLmV4ZWN1dGFibGVzLDg2R1c6IC5kbGxzLDg2R1cKKy5kbGxzLDg2R1c6IC5saWJyYXJpZXMsODZHVworLmxpYnJhcmllcyw4NkdXOiAuaW50ZXJmYWNlcworCUAkKFJNKSAkQAorCUAkKFRPVUNIKSAiJEAiCisKKy5oZWxwOjoKKwlAJChFQ0hPKSB4ZGMgdGVzdCw4NkdXCisJQCQoRUNITykgeGRjIC5leGVjdXRhYmxlcyw4NkdXCisJQCQoRUNITykgeGRjIC5saWJyYXJpZXMsODZHVworCUAkKEVDSE8pIHhkYyAuZGxscyw4NkdXCisKKworYWxsOiAuZXhlY3V0YWJsZXMgCisuZXhlY3V0YWJsZXM6IC5saWJyYXJpZXMgLmRsbHMKKy5saWJyYXJpZXM6IC5pbnRlcmZhY2VzCisKK1BLR0NGR1MgOj0gJCh3aWxkY2FyZCBwYWNrYWdlLnhzKSBwYWNrYWdlL2J1aWxkLmNmZworLmludGVyZmFjZXM6IHBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggcGFja2FnZS54ZGMgJChQS0dDRkdTKQorCistaW5jbHVkZSBwYWNrYWdlL3BhY2thZ2UueGRjLmRlcAorcGFja2FnZS8lLnhkYy5pbmMgcGFja2FnZS8lX2FjbWUudXRpbHMuYyBwYWNrYWdlLyUuZGVmcy5oOiAlLnhkYyAkKFBLR0NGR1MpCisJQCQoTVNHKSBnZW5lcmF0aW5nIGludGVyZmFjZXMgZm9yIHBhY2thZ2UgYWNtZS51dGlscyIgKGJlY2F1c2UgJEAgaXMgb2xkZXIgdGhhbiAkKGZpcnN0d29yZCAkPykpIiAuLi4KKwkkKFhTUlVOKSAtZiB4ZGMvc2VydmljZXMvaW50ZXJuL2NtZC9idWlsZC54cyAkKE1LX0lETE9QVFMpIC1tIHBhY2thZ2UvcGFja2FnZS54ZGMuZGVwIC1pIHBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIHBhY2thZ2UueGRjCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL3BhY2thZ2UuY2ZnLmRlcAorZW5kaWYKKworcGFja2FnZS9wYWNrYWdlLmV4dC54bWw6IHBhY2thZ2UvcGFja2FnZS5jZmcueGRjLmluYworcGFja2FnZS9wYWNrYWdlLmNmZy54ZGMuaW5jOiAkKFhEQ1JPT1QpL3BhY2thZ2VzL3hkYy9jZmcvY2ZnaW5jLmpzIHBhY2thZ2UueGRjCisJQCQoTVNHKSBnZW5lcmF0aW5nIHNjaGVtYSBpbmNsdWRlIGZpbGUgbGlzdCAuLi4KKwkkKENPTkZJRykgLWYgJChYRENST09UKS9wYWNrYWdlcy94ZGMvY2ZnL2NmZ2luYy5qcyBhY21lLnV0aWxzICRACisKKy5saWJyYXJpZXMsNjRQIC5saWJyYXJpZXM6IGxpYi9hY21lLnV0aWxzLmE2NFAKKworLWluY2x1ZGUgbGliL2FjbWUudXRpbHMuYTY0UC5tYWsKK2xpYi9hY21lLnV0aWxzLmE2NFA6IAorCSQoUk0pICRACisJQCQoTVNHKSBhcmNoaXZpbmcgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzY0UCBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vNjRQICBpbnRvICRAIC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9hcjZ4ICBycSAkQCAgIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm82NFAgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2gubzY0UCAKK2xpYi9hY21lLnV0aWxzLmE2NFA6Q19ESVI9CitsaWIvYWNtZS51dGlscy5hNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK2xpYi9hY21lLnV0aWxzLmE2NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitjbGVhbiw2NFAgY2xlYW46OgorCS0kKFJNKSBsaWIvYWNtZS51dGlscy5hNjRQCisubGlicmFyaWVzLDg2R1cgLmxpYnJhcmllczogbGliL2FjbWUudXRpbHMuYTg2R1cKKworLWluY2x1ZGUgbGliL2FjbWUudXRpbHMuYTg2R1cubWFrCitsaWIvYWNtZS51dGlscy5hODZHVzogCisJJChSTSkgJEAKKwlAJChNU0cpIGFyY2hpdmluZyBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vODZHVyBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vODZHVyAgaW50byAkQCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL21pbmd3MzIvYmluL2FyICBjciAkQCAgIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm84NkdXIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm84NkdXIAorbGliL2FjbWUudXRpbHMuYTg2R1c6TERfTElCUkFSWV9QQVRIPQorbGliL2FjbWUudXRpbHMuYTg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorbGliL2FjbWUudXRpbHMuYTg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitjbGVhbiw4NkdXIGNsZWFuOjoKKwktJChSTSkgbGliL2FjbWUudXRpbHMuYTg2R1cKK3Rlc3Q6OworJSxjb3B5OgorCUAkKGlmICQ8LCwkKE1TRykgZG9uXCd0IGtub3cgaG93IHRvIGJ1aWxkICQqOyBleGl0IDEpCisJQCQoTVNHKSBjcCAkPCAkQAorCSQoUk0pICRACisJJChDUCkgJDwgJEAKK3BhY2thZ2VfYWNtZS51dGlscy5vNjRQLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vNjRQCitwYWNrYWdlX2FjbWUudXRpbHMuczY0UCxjb3B5IDogcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuczY0UAorQmVuY2guczg2R1csY29weSA6IHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLnM4NkdXCitCZW5jaC5vNjRQLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vNjRQCitCZW5jaC5vODZHVyxjb3B5IDogcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2gubzg2R1cKK0JlbmNoLnM2NFAsY29weSA6IHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLnM2NFAKK3BhY2thZ2VfYWNtZS51dGlscy5zODZHVyxjb3B5IDogcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuczg2R1cKK3BhY2thZ2VfYWNtZS51dGlscy5vODZHVyxjb3B5IDogcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzg2R1cKKworJChYRENDRkdESVIpJS5jICQoWERDQ0ZHRElSKSUuaCAkKFhEQ0NGR0RJUiklLnhkbDogJChYRENDRkdESVIpJS5jZmcgLmludGVyZmFjZXMgJChYRENST09UKS9wYWNrYWdlcy94ZGMvY2ZnL01haW4ueHMKKwlAJChNU0cpICJjb25maWd1cmluZyAkKF9QUk9HX05BTUUpIGZyb20gJDwgLi4uIgorCSQoQ09ORklHKSAkKF9QUk9HX1hTT1BUUykgeGRjLmNmZyAkKF9QUk9HX05BTUUpICQoWERDQ0ZHRElSKSQqLmNmZyAkKFhEQ0NGR0RJUikkKgorCisuUEhPTlk6IHJlbGVhc2UsYWNtZV91dGlscworYWNtZV91dGlscy50YXI6IHBhY2thZ2UvYnVpbGQuY2ZnCithY21lX3V0aWxzLnRhcjogcGFja2FnZS9wYWNrYWdlLmNmZy54ZGMuaW5jCithY21lX3V0aWxzLnRhcjogcGFja2FnZS9wYWNrYWdlLmV4dC54bWwKK2FjbWVfdXRpbHMudGFyOiBwYWNrYWdlL3BhY2thZ2UueGRjLmluYworYWNtZV91dGlscy50YXI6IGxpYi9hY21lLnV0aWxzLmE2NFAKK2FjbWVfdXRpbHMudGFyOiBwYWNrYWdlL3BhY2thZ2UuYmxkLnhtbAorYWNtZV91dGlscy50YXI6IGxpYi9hY21lLnV0aWxzLmE4NkdXCithY21lX3V0aWxzLnRhcjogcGFja2FnZS9wYWNrYWdlLnJlbC5kb3QKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL3JlbC9hY21lX3V0aWxzLnRhci5kZXAKK2VuZGlmCitwYWNrYWdlL3JlbC9hY21lX3V0aWxzL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLnJlbC54bWw6CisKK2FjbWVfdXRpbHMudGFyOiBwYWNrYWdlL3JlbC9hY21lX3V0aWxzLnhkYy5pbmMgcGFja2FnZS9yZWwvYWNtZV91dGlscy9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5yZWwueG1sCisJQCQoTVNHKSBtYWtpbmcgcmVsZWFzZSBmaWxlICRAICIoYmVjYXVzZSBvZiAkKGZpcnN0d29yZCAkPykpIiAuLi4KKwktJChSTSkgJEAKKwkkKGNhbGwgTUtSRUxUQVIscGFja2FnZS9yZWwvYWNtZV91dGlscy54ZGMuaW5jLHBhY2thZ2UvcmVsL2FjbWVfdXRpbHMudGFyLmRlcCkKKworCityZWxlYXNlIHJlbGVhc2UsYWNtZV91dGlsczogYWxsIGFjbWVfdXRpbHMudGFyCitjbGVhbjo6IC5jbGVhbgorCS0kKFJNKSBhY21lX3V0aWxzLnRhcgorCS0kKFJNKSBwYWNrYWdlL3JlbC9hY21lX3V0aWxzLnhkYy5pbmMKKwktJChSTSkgcGFja2FnZS9yZWwvYWNtZV91dGlscy50YXIuZGVwCisKK2NsZWFuOjogLmNsZWFuCisJLSQoUk0pIC5saWJyYXJpZXMgLmxpYnJhcmllcywqCitjbGVhbjo6IAorCS0kKFJNKSAuZGxscyAuZGxscywqCisjCisjIFRoZSBmb2xsb3dpbmcgY2xlYW4gcnVsZSByZW1vdmVzIHVzZXIgc3BlY2lmaWVkCisjIGdlbmVyYXRlZCBmaWxlcyBvciBkaXJlY3Rvcmllcy4KKyMKKworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKK2lmZXEgKCwkKHdpbGRjYXJkIGxpYikpCisgICAgJChzaGVsbCAkKE1LRElSKSBsaWIpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZSkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvZXh0ZXJuYWwpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9leHRlcm5hbCkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2xpYikpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2xpYikKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2xpYi9saWIpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9saWIvbGliKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvcmVsKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvcmVsKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZSkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2NmZykpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2NmZykKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2ludGVybmFsKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvaW50ZXJuYWwpCitlbmRpZgorZW5kaWYKK2NsZWFuOjoKKwktJChSTURJUikgcGFja2FnZQorCisKK2NsZWFuOjogCisJLSQoUk0pIHBhY2thZ2UvYWNtZS51dGlscy5wanQKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS54ZGMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkZTM3M2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UueGRjCkBAIC0wLDAgKzEsMTEgQEAKKy8qDQorICogID09PT09PT09IGFjbWUvdXRpbHMvcGFja2FnZS54ZGMgPT09PT09PT0NCisgKi8NCisNCityZXF1aXJlcyBhY21lLnV0aWxzLmNsb2NrczsNCisNCisvKiEgQ29sbGVjdGlvbiBvZiB1dGlsaXR5IG1vZHVsZXMgKi8NCitwYWNrYWdlIGFjbWUudXRpbHMgew0KKyAgICAgbW9kdWxlIEJlbmNoOw0KK30NCisgDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlLy52ZXJzX2IxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvLnZlcnNfYjE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlLy52ZXJzX2IxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS8udmVyc19jMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlLy52ZXJzX2MxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS8udmVyc19jMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvLnZlcnNfZzE1MCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS8udmVyc19nMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvLnZlcnNfZzE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlLy52ZXJzX3IxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvLnZlcnNfcjE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlLy52ZXJzX3IxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS8ueGRjLXQzMiBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS8ueGRjLXQzMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlLy54ZGMtdDMyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvQmVuY2hfUENsb2NrLmggYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvQmVuY2hfUENsb2NrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzAzYWFhMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9CZW5jaF9QQ2xvY2suaApAQCAtMCwwICsxLDI4NyBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworLyoKKyAqID09PT09PT09IEdFTkVSQVRFRCBTRUNUSU9OUyA9PT09PT09PQorICogICAgIAorICogICAgIFBST0xPR1VFCisgKiAgICAgSU5DTFVERVMKKyAqICAgICAKKyAqICAgICBNT0RVTEUtV0lERSBDT05GSUdTCisgKiAgICAgVklSVFVBTCBGVU5DVElPTlMKKyAqICAgICBGVU5DVElPTiBERUNMQVJBVElPTlMKKyAqICAgICBDT05WRVJUT1JTCisgKiAgICAgU1lTVEVNIEZVTkNUSU9OUworICogICAgIEMrKyBDTElFTlQgV1JBUFBFUiBbZXhwZXJpbWVudGFsXQorICogICAgIAorICogICAgIEVQSUxPR1VFCisgKiAgICAgUFJFRklYIEFMSUFTRVMKKyAqLworCisKKy8qCisgKiA9PT09PT09PSBQUk9MT0dVRSA9PT09PT09PQorICovCisKKyNpZm5kZWYgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfX2luY2x1ZGUKKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfX2luY2x1ZGUKKworI2lmbmRlZiBfX25lc3RlZF9fCisjZGVmaW5lIF9fbmVzdGVkX18KKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfX3RvcF9fCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCisjZGVmaW5lIF9fZXh0ZXJuIGV4dGVybiAiQyIKKyNlbHNlCisjZGVmaW5lIF9fZXh0ZXJuIGV4dGVybgorI2VuZGlmCisKKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfX19WRVJTIDE1MAorCisKKy8qCisgKiA9PT09PT09PSBJTkNMVURFUyA9PT09PT09PQorICovCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKKyNpbmNsdWRlIDx4ZGMvcnVudGltZS94ZGMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UeXBlcy5oPgorI2luY2x1ZGUgPGFjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRlZnMuaD4KKworI2luY2x1ZGUgPGFjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay5oPgorCisKKy8qCisgKiA9PT09PT09PSBBVVhJTElBUlkgREVGSU5JVElPTlMgPT09PT09PT0KKyAqLworCisvKiBUaW1lVmFsdWUgKi8KK3R5cGVkZWYgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19UaW1lVmFsdWU7CisKKworLyoKKyAqID09PT09PT09IE1PRFVMRS1XSURFIENPTkZJR1MgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZCAqLwordHlwZWRlZiB4ZGNfQml0czMyIENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2RpYWdzRW5hYmxlZDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fZGlhZ3NFbmFibGVkIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWQgKi8KK3R5cGVkZWYgeGRjX0JpdHMzMiBDVF9fYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19kaWFnc0luY2x1ZGVkOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQzsKKworLyogTW9kdWxlX19kaWFnc01hc2sgKi8KK3R5cGVkZWYgeGRjX0JpdHMxNiogQ1RfX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fZGlhZ3NNYXNrOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19kaWFnc01hc2sgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19kaWFnc01hc2tfX0M7CisKKy8qIE1vZHVsZV9fZ2F0ZU9iaiAqLwordHlwZWRlZiB4ZGNfUHRyIENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2dhdGVPYmo7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2dhdGVPYmogYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19nYXRlT2JqX19DOworCisvKiBNb2R1bGVfX2dhdGVQcm1zICovCit0eXBlZGVmIHhkY19QdHIgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fZ2F0ZVBybXM7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2dhdGVQcm1zIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fZ2F0ZVBybXNfX0M7CisKKy8qIE1vZHVsZV9faWQgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9faWQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2lkIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9faWRfX0M7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZCAqLwordHlwZWRlZiB4ZGNfQm9vbCBDVF9fYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19sb2dnZXJEZWZpbmVkOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19sb2dnZXJEZWZpbmVkIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQzsKKworLyogTW9kdWxlX19sb2dnZXJPYmogKi8KK3R5cGVkZWYgeGRjX1B0ciBDVF9fYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19sb2dnZXJPYmo7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2xvZ2dlck9iaiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2xvZ2dlck9ial9fQzsKKworLyogTW9kdWxlX19sb2dnZXJGeG40ICovCit0eXBlZGVmIHhkY19ydW50aW1lX1R5cGVzX0xvZ2dlckZ4bjQgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fbG9nZ2VyRnhuNDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fbG9nZ2VyRnhuNCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0M7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9UeXBlc19Mb2dnZXJGeG44IENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2xvZ2dlckZ4bjg7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2xvZ2dlckZ4bjggYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19sb2dnZXJGeG44X19DOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuICovCit0eXBlZGVmIHhkY19Cb29sICgqQ1RfX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pKHZvaWQpOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19zdGFydHVwRG9uZUZ4biBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DOworCisvKiBPYmplY3RfX2NvdW50ICovCit0eXBlZGVmIHhkY19JbnQgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fY291bnQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19PYmplY3RfX2NvdW50IGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fY291bnRfX0M7CisKKy8qIE9iamVjdF9faGVhcCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9faGVhcDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9faGVhcCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19PYmplY3RfX2hlYXBfX0M7CisKKy8qIE9iamVjdF9fc2l6ZW9mICovCit0eXBlZGVmIHhkY19TaXplVCBDVF9fYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfT2JqZWN0X19zaXplb2Y7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19PYmplY3RfX3NpemVvZiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19PYmplY3RfX3NpemVvZl9fQzsKKworLyogT2JqZWN0X190YWJsZSAqLwordHlwZWRlZiB4ZGNfUHRyIENUX19hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19PYmplY3RfX3RhYmxlOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfT2JqZWN0X190YWJsZSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19PYmplY3RfX3RhYmxlX19DOworCisKKy8qCisgKiA9PT09PT09PSBWSVJUVUFMIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIEZ4bnNfXyAqLworc3RydWN0IGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0Z4bnNfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSogX19iYXNlOworICAgIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX1N5c0Z4bnMyKiBfX3N5c3A7CisgICAgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSAoKmdldFRpbWUpKHZvaWQpOworICAgIHhkY19ydW50aW1lX1R5cGVzX1N5c0Z4bnMyIF9fc2Z4bnM7Cit9OworCisvKiBNb2R1bGVfX0ZYTlNfX0MgKi8KK19fZXh0ZXJuIGNvbnN0IGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0Z4bnNfXyBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX0ZYTlNfX0M7CisKKworLyoKKyAqID09PT09PT09IEZVTkNUSU9OIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9zdGFydHVwICovCisjZGVmaW5lIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9zdGFydHVwKCBzdGF0ZSApIC0xCisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfSGFuZGxlX19sYWJlbF9fUywgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0hhbmRsZV9fbGFiZWwiKQorX19leHRlcm4geGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19zdGFydHVwRG9uZV9fUywgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fc3RhcnR1cERvbmUiKQorX19leHRlcm4geGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApOworCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19PYmplY3RfX2NyZWF0ZV9fUywgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fY3JlYXRlIikKK19fZXh0ZXJuIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApOworCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19PYmplY3RfX2RlbGV0ZV9fUywgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fZGVsZXRlIikKK19fZXh0ZXJuIHhkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICk7CisKKy8qIE9iamVjdF9fZGVzdHJ1Y3RfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfT2JqZWN0X19kZXN0cnVjdF9fUywgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fZGVzdHJ1Y3QiKQorX19leHRlcm4geGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICk7CisKKy8qIE9iamVjdF9fZ2V0X19TICovCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fZ2V0X19TLCAiYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfT2JqZWN0X19nZXQiKQorX19leHRlcm4geGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKTsKKworLyogT2JqZWN0X19maXJzdF9fUyAqLworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19PYmplY3RfX2ZpcnN0X19TLCAiYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfT2JqZWN0X19maXJzdCIpCitfX2V4dGVybiB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKTsKKworLyogT2JqZWN0X19uZXh0X19TICovCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fbmV4dF9fUywgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fbmV4dCIpCitfX2V4dGVybiB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKTsKKworLyogUGFyYW1zX19pbml0X19TICovCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX1BhcmFtc19faW5pdF9fUywgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX1BhcmFtc19faW5pdCIpCitfX2V4dGVybiB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApOworCisvKiBQcm94eV9fYWJzdHJhY3RfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfUHJveHlfX2Fic3RyYWN0X19TLCAiYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfUHJveHlfX2Fic3RyYWN0IikKK19fZXh0ZXJuIHhkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApOworCisvKiBQcm94eV9fZGVsZWdhdGVfX1MgKi8KK3hkY19fQ09ERVNFQ1QoYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfUHJveHlfX2RlbGVnYXRlX19TLCAiYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfUHJveHlfX2RlbGVnYXRlIikKK19fZXh0ZXJuIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICk7CisKKy8qIGdldFRpbWVfX0UgKi8KKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfZ2V0VGltZSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19nZXRUaW1lX19FCit4ZGNfX0NPREVTRUNUKGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX2dldFRpbWVfX0UsICJhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19nZXRUaW1lIikKK19fZXh0ZXJuIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfZ2V0VGltZV9fRSggdm9pZCApOworeGRjX19DT0RFU0VDVChhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19nZXRUaW1lX19SLCAiYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfZ2V0VGltZSIpCitfX2V4dGVybiBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX2dldFRpbWVfX1IoIHZvaWQgKTsKKworCisvKgorICogPT09PT09PT0gQ09OVkVSVE9SUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV91cENhc3QgKi8KK3N0YXRpYyBpbmxpbmUgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfdXBDYXN0KCB2b2lkICkKK3sKKyAgICByZXR1cm4gKGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19Nb2R1bGUpYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfUHJveHlfX2RlbGVnYXRlX19TKCk7Cit9CisKKy8qIE1vZHVsZV90b19hY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2sgKi8KKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX3RvX2FjbWVfdXRpbHNfY2xvY2tzX0lDbG9jayBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfdXBDYXN0CisKKworLyoKKyAqID09PT09PT09IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfc3RhcnR1cERvbmUgKi8KKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX3N0YXJ0dXBEb25lKCkgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpCisKKy8qIE9iamVjdF9oZWFwICovCisjZGVmaW5lIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX09iamVjdF9oZWFwKCkgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfT2JqZWN0X19oZWFwX19DCisKKy8qIE1vZHVsZV9oZWFwICovCisjZGVmaW5lIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9oZWFwKCkgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfT2JqZWN0X19oZWFwX19DCisKKy8qIE1vZHVsZV9pZCAqLworc3RhdGljIGlubGluZSBDVF9fYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19pZCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfaWQoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19pZF9fQzsKK30KKworLyogUHJveHlfYWJzdHJhY3QgKi8KKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfUHJveHlfYWJzdHJhY3QoKSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Qcm94eV9fYWJzdHJhY3RfX1MoKQorCisvKiBQcm94eV9kZWxlZ2F0ZSAqLworI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Qcm94eV9kZWxlZ2F0ZSgpICgoYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZSlhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Qcm94eV9fZGVsZWdhdGVfX1MoKSkKKworCisvKgorICogPT09PT09PT0gQysrIENMSUVOVCBXUkFQUEVSIFtleHBlcmltZW50YWxdID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gRVBJTE9HVUUgPT09PT09PT0KKyAqLworCisjaWZkZWYgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfX3RvcF9fCisjdW5kZWYgX19uZXN0ZWRfXworI2VuZGlmCisKKyNlbmRpZiAvKiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19faW5jbHVkZSAqLworCisKKy8qCisgKiA9PT09PT09PSBQUkVGSVggQUxJQVNFUyA9PT09PT09PQorICovCisKKyNpZiAhZGVmaW5lZChfX25lc3RlZF9fKSAmJiAhZGVmaW5lZChhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19fbm9sb2NhbG5hbWVzKQorCisvKiBtb2R1bGUgcHJlZml4ICovCisjZGVmaW5lIEJlbmNoX1BDbG9ja19UaW1lVmFsdWUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfVGltZVZhbHVlCisjZGVmaW5lIEJlbmNoX1BDbG9ja19nZXRUaW1lIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX2dldFRpbWUKKyNkZWZpbmUgQmVuY2hfUENsb2NrX01vZHVsZV9uYW1lIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9uYW1lCisjZGVmaW5lIEJlbmNoX1BDbG9ja19Nb2R1bGVfaWQgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX2lkCisjZGVmaW5lIEJlbmNoX1BDbG9ja19Nb2R1bGVfc3RhcnR1cCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfc3RhcnR1cAorI2RlZmluZSBCZW5jaF9QQ2xvY2tfTW9kdWxlX3N0YXJ0dXBEb25lIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9zdGFydHVwRG9uZQorI2RlZmluZSBCZW5jaF9QQ2xvY2tfTW9kdWxlX2hhc01hc2sgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX2hhc01hc2sKKyNkZWZpbmUgQmVuY2hfUENsb2NrX01vZHVsZV9nZXRNYXNrIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9nZXRNYXNrCisjZGVmaW5lIEJlbmNoX1BDbG9ja19Nb2R1bGVfc2V0TWFzayBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfc2V0TWFzaworI2RlZmluZSBCZW5jaF9QQ2xvY2tfT2JqZWN0X2hlYXAgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfT2JqZWN0X2hlYXAKKyNkZWZpbmUgQmVuY2hfUENsb2NrX01vZHVsZV9oZWFwIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9oZWFwCisjZGVmaW5lIEJlbmNoX1BDbG9ja19Qcm94eV9hYnN0cmFjdCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Qcm94eV9hYnN0cmFjdAorI2RlZmluZSBCZW5jaF9QQ2xvY2tfUHJveHlfZGVsZWdhdGUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfUHJveHlfZGVsZWdhdGUKKyNkZWZpbmUgQmVuY2hfUENsb2NrX01vZHVsZV91cENhc3QgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX3VwQ2FzdAorI2RlZmluZSBCZW5jaF9QQ2xvY2tfTW9kdWxlX3RvX2FjbWVfdXRpbHNfY2xvY2tzX0lDbG9jayBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfdG9fYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2FjbWUudXRpbHMuY2NzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2FjbWUudXRpbHMuY2NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3YWVmZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvYWNtZS51dGlscy5jY3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2FjbWUudXRpbHMucGp0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2FjbWUudXRpbHMucGp0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjODAwNmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvYWNtZS51dGlscy5wanQKQEAgLTAsMCArMSwxMCBAQAorOyBDb2RlIENvbXBvc2VyIFByb2plY3QgRmlsZSwgVmVyc2lvbiAyLjAgKGRvIG5vdCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgbGluZSkKK1tQcm9qZWN0IFNldHRpbmdzXQorUHJvamVjdE5hbWU9ImFjbWUudXRpbHMiCitQcm9qZWN0VHlwZT1FeHRlcm5hbAorQ1BVRmFtaWx5PVRNUzMyMEM2NFhYCitUb29sPSJDdXN0b21CdWlsZGVyIgorQ29uZmlnPSJQYWNrYWdlIgorW1NvdXJjZSBGaWxlc10KK1NvdXJjZT0iLi4vQmVuY2guYyIKK1NvdXJjZT0iLi4vcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYyIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9hY21lLnV0aWxzLnNjaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9hY21lLnV0aWxzLnNjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2FjbWUudXRpbHMuc2NoCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvYWNtZV91dGlscy5jbGFzcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9hY21lX3V0aWxzLmNsYXNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzZTRjNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvYWNtZV91dGlscy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvYWNtZV91dGlscy5qYXZhIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2FjbWVfdXRpbHMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTYyZWYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2FjbWVfdXRpbHMuamF2YQpAQCAtMCwwICsxLDQzMSBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBvcmcubW96aWxsYS5qYXZhc2NyaXB0Lio7CitpbXBvcnQgeGRjLnNlcnZpY2VzLmludGVybi54c3IuKjsKK2ltcG9ydCB4ZGMuc2VydmljZXMuc3BlYy4qOworCitwdWJsaWMgY2xhc3MgYWNtZV91dGlscworeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgVkVSUyA9ICJAKCMpIHhkYy10MzJcbiI7CisKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9Cb29sID0gUHJvdG8uRWxtLm5ld0Jvb2woKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9OdW0gPSBQcm90by5FbG0ubmV3TnVtKCk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfU3RyID0gUHJvdG8uRWxtLm5ld1N0cigpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX09iaiA9IFByb3RvLkVsbS5uZXdPYmooKTsKKworICAgIHN0YXRpYyBmaW5hbCBQcm90by5GeG4gJCRUX01ldCA9IG5ldyBQcm90by5GeG4obnVsbCwgbnVsbCwgMCwgLTEsIGZhbHNlKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uTWFwICQkVF9NYXAgPSBuZXcgUHJvdG8uTWFwKCQkVF9PYmopOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5BcnIgJCRUX1ZlYyA9IG5ldyBQcm90by5BcnIoJCRUX09iaik7CisKKyAgICBzdGF0aWMgZmluYWwgWFNjcmlwdE8gJCRERUZBVUxUID0gVmFsdWUuREVGQVVMVDsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkVU5ERUYgPSBVbmRlZmluZWQuaW5zdGFuY2U7CisKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkUGFja2FnZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRQYWNrYWdlIik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLk9iaiAkJE1vZHVsZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRNb2R1bGUiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkSW5zdGFuY2UgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkSW5zdGFuY2UiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkUGFyYW1zID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJFBhcmFtcyIpOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJG9iakZsZEdldCA9IEdsb2JhbC5nZXQoIiQkb2JqRmxkR2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJG9iakZsZFNldCA9IEdsb2JhbC5nZXQoIiQkb2JqRmxkU2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJHByb3h5R2V0ID0gR2xvYmFsLmdldCgiJCRwcm94eUdldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRwcm94eVNldCA9IEdsb2JhbC5nZXQoIiQkcHJveHlTZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkZGVsZWdHZXQgPSBHbG9iYWwuZ2V0KCIkJGRlbGVnR2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJGRlbGVnU2V0ID0gR2xvYmFsLmdldCgiJCRkZWxlZ1NldCIpOworCisgICAgU2NyaXB0YWJsZSB4ZGNPOworICAgIFNlc3Npb24gc2VzOworICAgIFZhbHVlLk9iaiBvbTsKKworICAgIGJvb2xlYW4gaXNST1Y7CisgICAgYm9vbGVhbiBpc0NGRzsKKworICAgIFByb3RvLk9iaiBwa2dQOworICAgIFZhbHVlLk9iaiBwa2dWOworCisgICAgQXJyYXlMaXN0PE9iamVjdD4gaW1wb3J0cyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IGxvZ2dhYmxlcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IG1jZmdzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gcHJveGllcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IHNpemVzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gdGRlZnMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKworICAgIHZvaWQgJCRJTVBPUlRTKCkKKyAgICB7CisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJsb2FkUGFja2FnZSIsIHhkY08sICJhY21lLnV0aWxzLmNsb2NrcyIpOworICAgICAgICBHbG9iYWwuY2FsbEZ4bigibG9hZFBhY2thZ2UiLCB4ZGNPLCAieGRjIik7CisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJsb2FkUGFja2FnZSIsIHhkY08sICJ4ZGMuY29yZXZlcnMiKTsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImxvYWRQYWNrYWdlIiwgeGRjTywgInhkYy5ydW50aW1lIik7CisgICAgfQorCisgICAgdm9pZCAkJE9CSkVDVFMoKQorICAgIHsKKyAgICAgICAgcGtnUCA9IChQcm90by5PYmopb20uYmluZCgiYWNtZS51dGlscy5QYWNrYWdlIiwgbmV3IFByb3RvLk9iaigpKTsKKyAgICAgICAgcGtnViA9IChWYWx1ZS5PYmopb20uYmluZCgiYWNtZS51dGlscyIsIG5ldyBWYWx1ZS5PYmooImFjbWUudXRpbHMiLCBwa2dQKSk7CisgICAgfQorCisgICAgdm9pZCBCZW5jaCQkT0JKRUNUUygpCisgICAgeworICAgICAgICBQcm90by5PYmogcG8sIHNwbzsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIHBvID0gKFByb3RvLk9iailvbS5iaW5kKCJhY21lLnV0aWxzLkJlbmNoLk1vZHVsZSIsIG5ldyBQcm90by5PYmooKSk7CisgICAgICAgIHZvID0gKFZhbHVlLk9iailvbS5iaW5kKCJhY21lLnV0aWxzLkJlbmNoIiwgbmV3IFZhbHVlLk9iaigiYWNtZS51dGlscy5CZW5jaCIsIHBvKSk7CisgICAgICAgIHBrZ1YuYmluZCgiQmVuY2giLCB2byk7CisgICAgICAgIC8vIGRlY2xzIAorICAgICAgICBzcG8gPSAoUHJvdG8uT2JqKW9tLmJpbmQoImFjbWUudXRpbHMuQmVuY2gkJE1vZHVsZV9TdGF0ZSIsIG5ldyBQcm90by5PYmooKSk7CisgICAgICAgIG9tLmJpbmQoImFjbWUudXRpbHMuQmVuY2guTW9kdWxlX1N0YXRlIiwgbmV3IFByb3RvLlN0cihzcG8sIGZhbHNlKSk7CisgICAgfQorCisgICAgdm9pZCBCZW5jaF9QQ2xvY2skJE9CSkVDVFMoKQorICAgIHsKKyAgICAgICAgUHJvdG8uT2JqIHBvLCBzcG87CisgICAgICAgIFZhbHVlLk9iaiB2bzsKKworICAgICAgICBwbyA9IChQcm90by5PYmopb20uYmluZCgiYWNtZS51dGlscy5CZW5jaF9QQ2xvY2suTW9kdWxlIiwgbmV3IFByb3RvLk9iaigpKTsKKyAgICAgICAgdm8gPSAoVmFsdWUuT2JqKW9tLmJpbmQoImFjbWUudXRpbHMuQmVuY2hfUENsb2NrIiwgbmV3IFZhbHVlLk9iaigiYWNtZS51dGlscy5CZW5jaF9QQ2xvY2siLCBwbykpOworICAgICAgICBwa2dWLmJpbmQoIkJlbmNoX1BDbG9jayIsIHZvKTsKKyAgICAgICAgLy8gZGVjbHMgCisgICAgfQorCisgICAgdm9pZCBCZW5jaCQkQ09OU1RTKCkKKyAgICB7CisgICAgICAgIC8vIG1vZHVsZSBCZW5jaAorICAgICAgICBvbS5iaW5kKCJhY21lLnV0aWxzLkJlbmNoLmJlZ2luIiwgbmV3IEV4dGVybigiYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRSIsICJ4ZGNfVm9pZCgqKSh4ZGNfU3RyaW5nKSIsIHRydWUsIGZhbHNlLCAiYWNtZS51dGlscy5CZW5jaC5iZWdpbiIpKTsKKyAgICAgICAgb20uYmluZCgiYWNtZS51dGlscy5CZW5jaC5lbmQiLCBuZXcgRXh0ZXJuKCJhY21lX3V0aWxzX0JlbmNoX2VuZF9fRSIsICJ4ZGNfVm9pZCgqKSh4ZGNfVm9pZCkiLCB0cnVlLCBmYWxzZSwgImFjbWUudXRpbHMuQmVuY2guZW5kIikpOworICAgIH0KKworICAgIHZvaWQgQmVuY2hfUENsb2NrJCRDT05TVFMoKQorICAgIHsKKyAgICAgICAgLy8gbW9kdWxlIEJlbmNoX1BDbG9jaworICAgICAgICBvbS5iaW5kKCJhY21lLnV0aWxzLkJlbmNoX1BDbG9jay5nZXRUaW1lIiwgbmV3IEV4dGVybigiYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfZ2V0VGltZV9fRSIsICJ4ZGNfQml0czMyKCopKHhkY19Wb2lkKSIsIHRydWUsIGZhbHNlLCAiYWNtZS51dGlscy5CZW5jaF9QQ2xvY2suZ2V0VGltZSIpKTsKKyAgICB9CisKKyAgICB2b2lkIEJlbmNoJCRDUkVBVEVTKCkKKyAgICB7CisgICAgICAgIFByb3RvLkZ4biBmeG47CisgICAgICAgIFN0cmluZ0J1aWxkZXIgc2I7CisKKyAgICB9CisKKyAgICB2b2lkIEJlbmNoX1BDbG9jayQkQ1JFQVRFUygpCisgICAgeworICAgICAgICBQcm90by5GeG4gZnhuOworICAgICAgICBTdHJpbmdCdWlsZGVyIHNiOworCisgICAgfQorCisgICAgdm9pZCBCZW5jaCQkRlVOQ1RJT05TKCkKKyAgICB7CisgICAgICAgIFByb3RvLkZ4biBmeG47CisKKyAgICB9CisKKyAgICB2b2lkIEJlbmNoX1BDbG9jayQkRlVOQ1RJT05TKCkKKyAgICB7CisgICAgICAgIFByb3RvLkZ4biBmeG47CisKKyAgICB9CisKKyAgICB2b2lkIEJlbmNoJCRTSVpFUygpCisgICAgeworICAgICAgICBQcm90by5TdHIgc287CisgICAgICAgIE9iamVjdCBmeG47CisKKyAgICAgICAgc28gPSAoUHJvdG8uU3RyKW9tLmZpbmQoImFjbWUudXRpbHMuQmVuY2guTW9kdWxlX1N0YXRlIik7CisgICAgICAgIHNpemVzLmNsZWFyKCk7CisgICAgICAgIHNpemVzLmFkZChHbG9iYWwubmV3QXJyYXkoImJlZ2luTXNnIiwgIlVQdHIiKSk7CisgICAgICAgIHNpemVzLmFkZChHbG9iYWwubmV3QXJyYXkoImJlZ2luQ2xvY2siLCAiVEludCIpKTsKKyAgICAgICAgc2l6ZXMuYWRkKEdsb2JhbC5uZXdBcnJheSgib3ZlcmhlYWQiLCAiVEludCIpKTsKKyAgICAgICAgc28uYmluZCgiJCRzaXplcyIsIEdsb2JhbC5uZXdBcnJheShzaXplcy50b0FycmF5KCkpKTsKKyAgICAgICAgZnhuID0gR2xvYmFsLmV2YWwoImZ1bmN0aW9uKCkgeyByZXR1cm4gJCRzaXplb2YoeGRjLm9tWydhY21lLnV0aWxzLkJlbmNoLk1vZHVsZV9TdGF0ZSddKTsgfSIpOworICAgICAgICBzby5iaW5kKCIkc2l6ZW9mIiwgZnhuKTsKKyAgICAgICAgZnhuID0gR2xvYmFsLmV2YWwoImZ1bmN0aW9uKCkgeyByZXR1cm4gJCRhbGlnbm9mKHhkYy5vbVsnYWNtZS51dGlscy5CZW5jaC5Nb2R1bGVfU3RhdGUnXSk7IH0iKTsKKyAgICAgICAgc28uYmluZCgiJGFsaWdub2YiLCBmeG4pOworICAgICAgICBmeG4gPSBHbG9iYWwuZXZhbCgiZnVuY3Rpb24oZmxkKSB7IHJldHVybiAkJG9mZnNldG9mKHhkYy5vbVsnYWNtZS51dGlscy5CZW5jaC5Nb2R1bGVfU3RhdGUnXSwgZmxkKTsgfSIpOworICAgICAgICBzby5iaW5kKCIkb2Zmc2V0b2YiLCBmeG4pOworICAgIH0KKworICAgIHZvaWQgQmVuY2hfUENsb2NrJCRTSVpFUygpCisgICAgeworICAgICAgICBQcm90by5TdHIgc287CisgICAgICAgIE9iamVjdCBmeG47CisKKyAgICB9CisKKyAgICB2b2lkIEJlbmNoJCRUWVBFUygpCisgICAgeworICAgICAgICBTY3JpcHRhYmxlIGNhcDsKKyAgICAgICAgUHJvdG8uT2JqIHBvOworICAgICAgICBQcm90by5TdHIgcHM7CisgICAgICAgIFByb3RvLlR5cGVkZWYgcHQ7CisgICAgICAgIE9iamVjdCBmeG47CisKKyAgICAgICAgY2FwID0gKFNjcmlwdGFibGUpR2xvYmFsLmNhbGxGeG4oImxvYWRDYXBzdWxlIiwgeGRjTywgImFjbWUvdXRpbHMvQmVuY2gueHMiKTsKKyAgICAgICAgb20uYmluZCgiYWNtZS51dGlscy5CZW5jaCQkY2Fwc3VsZSIsIGNhcCk7CisgICAgICAgIHBvID0gKFByb3RvLk9iailvbS5maW5kKCJhY21lLnV0aWxzLkJlbmNoLk1vZHVsZSIpOworICAgICAgICBwby5pbml0KCJhY21lLnV0aWxzLkJlbmNoLk1vZHVsZSIsIG9tLmZpbmQoInhkYy5ydW50aW1lLklNb2R1bGUuTW9kdWxlIikpOworICAgICAgICAgICAgICAgIHBvLmFkZEZsZCgiJGhvc3Rvbmx5IiwgJCRUX051bSwgMCwgInIiKTsKKyAgICAgICAgaWYgKGlzQ0ZHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwby5hZGRGbGRWKCJQQ2xvY2siLCAoUHJvdG8pb20uZmluZCgiYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLk1vZHVsZSIpLCBudWxsLCAid2giLCAkJGRlbGVnR2V0LCAkJGRlbGVnU2V0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvLmFkZEZsZCgiZW5hYmxlRmxhZyIsICQkVF9Cb29sLCB0cnVlLCAidyIpOworICAgICAgICB9Ly9pc0NGRworICAgICAgICAgICAgICAgIGZ4biA9IEdsb2JhbC5nZXQoY2FwLCAibW9kdWxlJHVzZSIpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgb20uYmluZCgiYWNtZS51dGlscy5CZW5jaCQkbW9kdWxlJHVzZSIsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgcG8uYWRkRnhuKCJtb2R1bGUkdXNlIiwgJCRUX01ldCwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgIm1vZHVsZSRtZXRhJGluaXQiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIG9tLmJpbmQoImFjbWUudXRpbHMuQmVuY2gkJG1vZHVsZSRtZXRhJGluaXQiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIHBvLmFkZEZ4bigibW9kdWxlJG1ldGEkaW5pdCIsICQkVF9NZXQsIGZ4bik7CisgICAgICAgICAgICAgICAgZnhuID0gR2xvYmFsLmdldChjYXAsICJtb2R1bGUkc3RhdGljJGluaXQiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIG9tLmJpbmQoImFjbWUudXRpbHMuQmVuY2gkJG1vZHVsZSRzdGF0aWMkaW5pdCIsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgcG8uYWRkRnhuKCJtb2R1bGUkc3RhdGljJGluaXQiLCAkJFRfTWV0LCBmeG4pOworICAgICAgICAgICAgICAgIGZ4biA9IEdsb2JhbC5nZXQoY2FwLCAibW9kdWxlJHZhbGlkYXRlIik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBvbS5iaW5kKCJhY21lLnV0aWxzLkJlbmNoJCRtb2R1bGUkdmFsaWRhdGUiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIHBvLmFkZEZ4bigibW9kdWxlJHZhbGlkYXRlIiwgJCRUX01ldCwgZnhuKTsKKyAgICAgICAgLy8gc3RydWN0IEJlbmNoLk1vZHVsZV9TdGF0ZQorICAgICAgICBwbyA9IChQcm90by5PYmopb20uZmluZCgiYWNtZS51dGlscy5CZW5jaCQkTW9kdWxlX1N0YXRlIik7CisgICAgICAgIHBvLmluaXQoImFjbWUudXRpbHMuQmVuY2guTW9kdWxlX1N0YXRlIiwgbnVsbCk7CisgICAgICAgICAgICAgICAgcG8uYWRkRmxkKCIkaG9zdG9ubHkiLCAkJFRfTnVtLCAwLCAiciIpOworICAgICAgICAgICAgICAgIHBvLmFkZEZsZCgiYmVnaW5Nc2ciLCAkJFRfU3RyLCAkJFVOREVGLCAidyIpOworICAgICAgICAgICAgICAgIHBvLmFkZEZsZCgiYmVnaW5DbG9jayIsIFByb3RvLkVsbS5uZXdDTnVtKCIoeGRjX0ludCkiKSwgJCRVTkRFRiwgInciKTsKKyAgICAgICAgICAgICAgICBwby5hZGRGbGQoIm92ZXJoZWFkIiwgUHJvdG8uRWxtLm5ld0NOdW0oIih4ZGNfSW50KSIpLCAkJFVOREVGLCAidyIpOworICAgIH0KKworICAgIHZvaWQgQmVuY2hfUENsb2NrJCRUWVBFUygpCisgICAgeworICAgICAgICBTY3JpcHRhYmxlIGNhcDsKKyAgICAgICAgUHJvdG8uT2JqIHBvOworICAgICAgICBQcm90by5TdHIgcHM7CisgICAgICAgIFByb3RvLlR5cGVkZWYgcHQ7CisgICAgICAgIE9iamVjdCBmeG47CisKKyAgICAgICAgcG8gPSAoUHJvdG8uT2JqKW9tLmZpbmQoImFjbWUudXRpbHMuQmVuY2hfUENsb2NrLk1vZHVsZSIpOworICAgICAgICBwby5pbml0KCJhY21lLnV0aWxzLkJlbmNoX1BDbG9jay5Nb2R1bGUiLCBvbS5maW5kKCJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2suTW9kdWxlIikpOworICAgICAgICAgICAgICAgIHBvLmFkZEZsZCgiZGVsZWdhdGUkIiwgKFByb3RvKW9tLmZpbmQoImFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5Nb2R1bGUiKSwgbnVsbCwgIndoIik7CisgICAgICAgICAgICAgICAgcG8uYWRkRmxkKCIkaG9zdG9ubHkiLCAkJFRfTnVtLCAwLCAiciIpOworICAgICAgICBpZiAoaXNDRkcpIHsKKyAgICAgICAgfS8vaXNDRkcKKyAgICB9CisKKyAgICB2b2lkIEJlbmNoJCRST1YoKQorICAgIHsKKyAgICAgICAgUHJvdG8uT2JqIHBvOworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgdm8gPSAoVmFsdWUuT2JqKW9tLmZpbmQoImFjbWUudXRpbHMuQmVuY2giKTsKKyAgICAgICAgdm8uYmluZCgiTW9kdWxlX1N0YXRlJGZldGNoRGVzYyIsIEdsb2JhbC5uZXdPYmplY3QoInR5cGUiLCAiYWNtZS51dGlscy5CZW5jaC5Nb2R1bGVfU3RhdGUiLCAiaXNTY2FsYXIiLCBmYWxzZSkpOworICAgICAgICBwbyA9IChQcm90by5PYmopb20uZmluZCgiYWNtZS51dGlscy5CZW5jaCQkTW9kdWxlX1N0YXRlIik7CisgICAgfQorCisgICAgdm9pZCBCZW5jaF9QQ2xvY2skJFJPVigpCisgICAgeworICAgICAgICBQcm90by5PYmogcG87CisgICAgICAgIFZhbHVlLk9iaiB2bzsKKworICAgICAgICB2byA9IChWYWx1ZS5PYmopb20uZmluZCgiYWNtZS51dGlscy5CZW5jaF9QQ2xvY2siKTsKKyAgICB9CisKKyAgICB2b2lkICQkU0lOR0xFVE9OUygpCisgICAgeworICAgICAgICBwa2dQLmluaXQoImFjbWUudXRpbHMuUGFja2FnZSIsIChQcm90by5PYmopb20uZmluZCgieGRjLklQYWNrYWdlLk1vZHVsZSIpKTsKKyAgICAgICAgcGtnUC5iaW5kKCIkY2Fwc3VsZSIsICQkVU5ERUYpOworICAgICAgICBwa2dWLmluaXQyKHBrZ1AsICJhY21lLnV0aWxzIiwgVmFsdWUuREVGQVVMVCwgZmFsc2UpOworICAgICAgICBwa2dWLmJpbmQoIiRuYW1lIiwgImFjbWUudXRpbHMiKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkY2F0ZWdvcnkiLCAiUGFja2FnZSIpOworICAgICAgICBwa2dWLmJpbmQoIiQkcW4iLCAiYWNtZS51dGlscy4iKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkdmVycyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgVmFsdWUuTWFwIGF0bWFwID0gKFZhbHVlLk1hcClwa2dWLmdldHYoIiRhdHRyIik7CisgICAgICAgIGF0bWFwLnNlYWwoImxlbmd0aCIpOworICAgICAgICBpbXBvcnRzLmNsZWFyKCk7CisgICAgICAgIGltcG9ydHMuYWRkKEdsb2JhbC5uZXdBcnJheSgiYWNtZS51dGlscy5jbG9ja3MiLCBHbG9iYWwubmV3QXJyYXkoKSkpOworICAgICAgICBwa2dWLmJpbmQoIiRpbXBvcnRzIiwgaW1wb3J0cyk7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworICAgICAgICBzYi5hcHBlbmQoInZhciBwa2cgPSB4ZGMub21bJ2FjbWUudXRpbHMnXTtcbiIpOworICAgICAgICBzYi5hcHBlbmQoImlmIChwa2cuJHZlcnMubGVuZ3RoID49IDMpIHtcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCJwa2cuJHZlcnMucHVzaChQYWNrYWdlcy54ZGMuc2VydmljZXMuZ2xvYmFsLlZlcnMuZ2V0RGF0ZSh4ZGMuY3NkKCkgKyAnLy4uJykpO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgifVxuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYnJhcmllcyA9IFtcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCInbGliL2FjbWUudXRpbHMuYTY0UCcsXG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiJ2xpYi9hY21lLnV0aWxzLmE4NkdXJyxcbiIpOworICAgICAgICBzYi5hcHBlbmQoIl07XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJwa2cuYnVpbGQubGliRGVzYyA9IFtcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCJbJ2xpYi9hY21lLnV0aWxzLmE2NFAnLCB7dGFyZ2V0OiAndGkudGFyZ2V0cy5DNjRQJ31dLFxuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoIlsnbGliL2FjbWUudXRpbHMuYTg2R1cnLCB7dGFyZ2V0OiAnZ251LnRhcmdldHMuTWluZ3cnfV0sXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgiaWYoJ3N1ZmZpeCcgaW4geGRjLm9tWyd4ZGMuSVBhY2thZ2UkJExpYkRlc2MnXSkge1xuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoInBrZy5idWlsZC5saWJEZXNjWydsaWIvYWNtZS51dGlscy5hNjRQJ10uc3VmZml4ID0gJzY0UCc7XG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2NbJ2xpYi9hY21lLnV0aWxzLmE4NkdXJ10uc3VmZml4ID0gJzg2R1cnO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgifVxuIik7CisgICAgICAgIEdsb2JhbC5ldmFsKHNiLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHZvaWQgQmVuY2gkJFNJTkdMRVRPTlMoKQorICAgIHsKKyAgICAgICAgUHJvdG8uT2JqIHBvOworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgdm8gPSAoVmFsdWUuT2JqKW9tLmZpbmQoImFjbWUudXRpbHMuQmVuY2giKTsKKyAgICAgICAgcG8gPSAoUHJvdG8uT2JqKW9tLmZpbmQoImFjbWUudXRpbHMuQmVuY2guTW9kdWxlIik7CisgICAgICAgIHZvLmluaXQyKHBvLCAiYWNtZS51dGlscy5CZW5jaCIsICQkREVGQVVMVCwgZmFsc2UpOworICAgICAgICB2by5iaW5kKCJNb2R1bGUiLCBwbyk7CisgICAgICAgIHZvLmJpbmQoIiRjYXRlZ29yeSIsICJNb2R1bGUiKTsKKyAgICAgICAgdm8uYmluZCgiJGNhcHN1bGUiLCBvbS5maW5kKCJhY21lLnV0aWxzLkJlbmNoJCRjYXBzdWxlIikpOworICAgICAgICB2by5iaW5kKCIkcGFja2FnZSIsIG9tLmZpbmQoImFjbWUudXRpbHMiKSk7CisgICAgICAgIHRkZWZzLmNsZWFyKCk7CisgICAgICAgIHByb3hpZXMuY2xlYXIoKTsKKyAgICAgICAgbWNmZ3MuY2xlYXIoKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2RpYWdzRW5hYmxlZCIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fZGlhZ3NNYXNrIik7CisgICAgICAgIG1jZmdzLmFkZCgiTW9kdWxlX19nYXRlT2JqIik7CisgICAgICAgIG1jZmdzLmFkZCgiTW9kdWxlX19nYXRlUHJtcyIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9faWQiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2xvZ2dlckRlZmluZWQiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2xvZ2dlck9iaiIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fbG9nZ2VyRnhuNCIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fbG9nZ2VyRnhuOCIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fc3RhcnR1cERvbmVGeG4iKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJPYmplY3RfX2NvdW50Iik7CisgICAgICAgIG1jZmdzLmFkZCgiT2JqZWN0X19oZWFwIik7CisgICAgICAgIG1jZmdzLmFkZCgiT2JqZWN0X19zaXplb2YiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJPYmplY3RfX3RhYmxlIik7CisgICAgICAgIHZvLmJpbmQoIlBDbG9jayRwcm94eSIsIG9tLmZpbmQoImFjbWUudXRpbHMuQmVuY2hfUENsb2NrIikpOworICAgICAgICBwcm94aWVzLmFkZCgiUENsb2NrIik7CisgICAgICAgIG1jZmdzLmFkZCgiZW5hYmxlRmxhZyIpOworICAgICAgICB2by5iaW5kKCJNb2R1bGVfU3RhdGUiLCBvbS5maW5kKCJhY21lLnV0aWxzLkJlbmNoLk1vZHVsZV9TdGF0ZSIpKTsKKyAgICAgICAgdGRlZnMuYWRkKG9tLmZpbmQoImFjbWUudXRpbHMuQmVuY2guTW9kdWxlX1N0YXRlIikpOworICAgICAgICB2by5iaW5kKCIkJHRkZWZzIiwgR2xvYmFsLm5ld0FycmF5KHRkZWZzLnRvQXJyYXkoKSkpOworICAgICAgICB2by5iaW5kKCIkJHByb3hpZXMiLCBHbG9iYWwubmV3QXJyYXkocHJveGllcy50b0FycmF5KCkpKTsKKyAgICAgICAgdm8uYmluZCgiJCRtY2ZncyIsIEdsb2JhbC5uZXdBcnJheShtY2Zncy50b0FycmF5KCkpKTsKKyAgICAgICAgKChWYWx1ZS5BcnIpcGtnVi5nZXR2KCIkbW9kdWxlcyIpKS5hZGQodm8pOworICAgICAgICAoKFZhbHVlLkFycilvbS5maW5kKCIkbW9kdWxlcyIpKS5hZGQodm8pOworICAgICAgICB2by5iaW5kKCIkJGluc3RmbGFnIiwgMCk7CisgICAgICAgIHZvLmJpbmQoIiQkaW9iamZsYWciLCAwKTsKKyAgICAgICAgdm8uYmluZCgiJCRzaXplZmxhZyIsIDEpOworICAgICAgICB2by5iaW5kKCIkJGRsZ2ZsYWciLCAwKTsKKyAgICAgICAgdm8uYmluZCgiJCRpZmxhZyIsIDApOworICAgICAgICB2by5iaW5kKCIkJHJvbWNmZ3MiLCAifCIpOworICAgICAgICBpZiAoaXNDRkcpIHsKKyAgICAgICAgICAgIFByb3RvLlN0ciBwcyA9IChQcm90by5TdHIpdm8uZmluZCgiTW9kdWxlX1N0YXRlIik7CisgICAgICAgICAgICBpZiAocHMgIT0gbnVsbCkgdm8uYmluZCgiJG9iamVjdCIsIHBzLm5ld0luc3RhbmNlKCkpOworICAgICAgICAgICAgdm8uYmluZCgiJCRtZXRhX2lvYmoiLCAxKTsKKyAgICAgICAgfS8vaXNDRkcKKyAgICAgICAgdm8uYmluZCgiYmVnaW4iLCBvbS5maW5kKCJhY21lLnV0aWxzLkJlbmNoLmJlZ2luIikpOworICAgICAgICB2by5iaW5kKCJlbmQiLCBvbS5maW5kKCJhY21lLnV0aWxzLkJlbmNoLmVuZCIpKTsKKyAgICAgICAgdm8uYmluZCgiJCRmeG50YWIiLCBHbG9iYWwubmV3QXJyYXkoImFjbWVfdXRpbHNfQmVuY2hfSGFuZGxlX19sYWJlbF9fRSIsICJhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVfX0UiLCAiYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NyZWF0ZV9fRSIsICJhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZGVsZXRlX19FIiwgImFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19kZXN0cnVjdF9fRSIsICJhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZ2V0X19FIiwgImFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19maXJzdF9fRSIsICJhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fbmV4dF9fRSIsICJhY21lX3V0aWxzX0JlbmNoX1BhcmFtc19faW5pdF9fRSIsICJhY21lX3V0aWxzX0JlbmNoX1Byb3h5X19hYnN0cmFjdF9fRSIsICJhY21lX3V0aWxzX0JlbmNoX1Byb3h5X19kZWxlZ2F0ZV9fRSIsICJhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19FIiwgImFjbWVfdXRpbHNfQmVuY2hfZW5kX19FIikpOworICAgICAgICB2by5iaW5kKCIkJGxvZ0V2dENmZ3MiLCBHbG9iYWwubmV3QXJyYXkoKSk7CisgICAgICAgIHZvLmJpbmQoIiQkZXJyb3JEZXNjQ2ZncyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgdm8uYmluZCgiJCRhc3NlcnREZXNjQ2ZncyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgVmFsdWUuTWFwIGF0bWFwID0gKFZhbHVlLk1hcCl2by5nZXR2KCIkYXR0ciIpOworICAgICAgICBhdG1hcC5zZXRFbGVtKCIiLCB0cnVlKTsKKyAgICAgICAgYXRtYXAuc2VhbCgibGVuZ3RoIik7CisgICAgICAgIHZvLmJpbmQoIk1PRFVMRV9TVEFSVFVQJCIsIDEpOworICAgICAgICB2by5iaW5kKCJQUk9YWSQiLCAwKTsKKyAgICAgICAgbG9nZ2FibGVzLmNsZWFyKCk7CisgICAgICAgIGxvZ2dhYmxlcy5hZGQoR2xvYmFsLm5ld09iamVjdCgibmFtZSIsICJiZWdpbiIsICJlbnRyeSIsICJcIiVzXCIiLCAiZXhpdCIsICIiKSk7CisgICAgICAgIGxvZ2dhYmxlcy5hZGQoR2xvYmFsLm5ld09iamVjdCgibmFtZSIsICJlbmQiLCAiZW50cnkiLCAiIiwgImV4aXQiLCAiIikpOworICAgICAgICB2by5iaW5kKCIkJGxvZ2dhYmxlcyIsIGxvZ2dhYmxlcy50b0FycmF5KCkpOworICAgICAgICBwa2dWLmJpbmQoIkJlbmNoIiwgdm8pOworICAgICAgICAoKFZhbHVlLkFycilwa2dWLmdldHYoIiR1bml0TmFtZXMiKSkuYWRkKCJCZW5jaCIpOworICAgIH0KKworICAgIHZvaWQgQmVuY2hfUENsb2NrJCRTSU5HTEVUT05TKCkKKyAgICB7CisgICAgICAgIFByb3RvLk9iaiBwbzsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIHZvID0gKFZhbHVlLk9iailvbS5maW5kKCJhY21lLnV0aWxzLkJlbmNoX1BDbG9jayIpOworICAgICAgICBwbyA9IChQcm90by5PYmopb20uZmluZCgiYWNtZS51dGlscy5CZW5jaF9QQ2xvY2suTW9kdWxlIik7CisgICAgICAgIHZvLmluaXQyKHBvLCAiYWNtZS51dGlscy5CZW5jaF9QQ2xvY2siLCAkJERFRkFVTFQsIGZhbHNlKTsKKyAgICAgICAgdm8uYmluZCgiTW9kdWxlIiwgcG8pOworICAgICAgICB2by5iaW5kKCIkY2F0ZWdvcnkiLCAiTW9kdWxlIik7CisgICAgICAgIHZvLmJpbmQoIiRjYXBzdWxlIiwgJCRVTkRFRik7CisgICAgICAgIHZvLmJpbmQoIiRwYWNrYWdlIiwgb20uZmluZCgiYWNtZS51dGlscyIpKTsKKyAgICAgICAgdGRlZnMuY2xlYXIoKTsKKyAgICAgICAgcHJveGllcy5jbGVhcigpOworICAgICAgICBwcm94aWVzLmFkZCgiZGVsZWdhdGUkIik7CisgICAgICAgIHZvLmJpbmQoIlRpbWVWYWx1ZSIsIG9tLmZpbmQoImFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5UaW1lVmFsdWUiKSk7CisgICAgICAgIHZvLmJpbmQoIiQkdGRlZnMiLCBHbG9iYWwubmV3QXJyYXkodGRlZnMudG9BcnJheSgpKSk7CisgICAgICAgIHZvLmJpbmQoIiQkcHJveGllcyIsIEdsb2JhbC5uZXdBcnJheShwcm94aWVzLnRvQXJyYXkoKSkpOworICAgICAgICAoKFZhbHVlLkFycilwa2dWLmdldHYoIiRtb2R1bGVzIikpLmFkZCh2byk7CisgICAgICAgICgoVmFsdWUuQXJyKW9tLmZpbmQoIiRtb2R1bGVzIikpLmFkZCh2byk7CisgICAgICAgIHZvLmJpbmQoIiQkaW5zdGZsYWciLCAwKTsKKyAgICAgICAgdm8uYmluZCgiJCRpb2JqZmxhZyIsIDApOworICAgICAgICB2by5iaW5kKCIkJHNpemVmbGFnIiwgMCk7CisgICAgICAgIHZvLmJpbmQoIiQkZGxnZmxhZyIsIDApOworICAgICAgICB2by5iaW5kKCIkJGlmbGFnIiwgMSk7CisgICAgICAgIHZvLmJpbmQoIiQkcm9tY2ZncyIsICJ8Iik7CisgICAgICAgIGlmIChpc0NGRykgeworICAgICAgICAgICAgUHJvdG8uU3RyIHBzID0gKFByb3RvLlN0cil2by5maW5kKCJNb2R1bGVfU3RhdGUiKTsKKyAgICAgICAgICAgIGlmIChwcyAhPSBudWxsKSB2by5iaW5kKCIkb2JqZWN0IiwgcHMubmV3SW5zdGFuY2UoKSk7CisgICAgICAgICAgICB2by5iaW5kKCIkJG1ldGFfaW9iaiIsIDEpOworICAgICAgICB9Ly9pc0NGRworICAgICAgICB2by5iaW5kKCJnZXRUaW1lIiwgb20uZmluZCgiYWNtZS51dGlscy5CZW5jaF9QQ2xvY2suZ2V0VGltZSIpKTsKKyAgICAgICAgdm8uYmluZCgiJCRmeG50YWIiLCBHbG9iYWwubmV3QXJyYXkoImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0RFTEVHQVRFX19IYW5kbGVfX2xhYmVsIiwgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0RFTEVHQVRFX19Nb2R1bGVfX3N0YXJ0dXBEb25lIiwgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0RFTEVHQVRFX19PYmplY3RfX2NyZWF0ZSIsICJhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19ERUxFR0FURV9fT2JqZWN0X19kZWxldGUiLCAiYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfREVMRUdBVEVfX09iamVjdF9fZGVzdHJ1Y3QiLCAiYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfREVMRUdBVEVfX09iamVjdF9fZ2V0IiwgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0RFTEVHQVRFX19PYmplY3RfX2ZpcnN0IiwgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0RFTEVHQVRFX19PYmplY3RfX25leHQiLCAiYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfREVMRUdBVEVfX1BhcmFtc19faW5pdCIsICJhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19ERUxFR0FURV9fUHJveHlfX2Fic3RyYWN0IiwgImFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0RFTEVHQVRFX19Qcm94eV9fZGVsZWdhdGUiLCAiYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfREVMRUdBVEVfX2dldFRpbWUiKSk7CisgICAgICAgIHZvLmJpbmQoIiQkbG9nRXZ0Q2ZncyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgdm8uYmluZCgiJCRlcnJvckRlc2NDZmdzIiwgR2xvYmFsLm5ld0FycmF5KCkpOworICAgICAgICB2by5iaW5kKCIkJGFzc2VydERlc2NDZmdzIiwgR2xvYmFsLm5ld0FycmF5KCkpOworICAgICAgICBWYWx1ZS5NYXAgYXRtYXAgPSAoVmFsdWUuTWFwKXZvLmdldHYoIiRhdHRyIik7CisgICAgICAgIGF0bWFwLnNlYWwoImxlbmd0aCIpOworICAgICAgICB2by5iaW5kKCJNT0RVTEVfU1RBUlRVUCQiLCAwKTsKKyAgICAgICAgdm8uYmluZCgiUFJPWFkkIiwgMSk7CisgICAgICAgIGxvZ2dhYmxlcy5jbGVhcigpOworICAgICAgICBsb2dnYWJsZXMuYWRkKEdsb2JhbC5uZXdPYmplY3QoIm5hbWUiLCAiZ2V0VGltZSIsICJlbnRyeSIsICIiLCAiZXhpdCIsICIlZCIpKTsKKyAgICAgICAgdm8uYmluZCgiJCRsb2dnYWJsZXMiLCBsb2dnYWJsZXMudG9BcnJheSgpKTsKKyAgICAgICAgcGtnVi5iaW5kKCJCZW5jaF9QQ2xvY2siLCB2byk7CisgICAgICAgICgoVmFsdWUuQXJyKXBrZ1YuZ2V0digiJHVuaXROYW1lcyIpKS5hZGQoIkJlbmNoX1BDbG9jayIpOworICAgIH0KKworICAgIHZvaWQgJCRJTklUSUFMSVpBVElPTigpCisgICAgeworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgaWYgKGlzQ0ZHKSB7CisgICAgICAgIH0vL2lzQ0ZHCisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJtb2R1bGUkbWV0YSRpbml0IiwgKFNjcmlwdGFibGUpb20uZmluZCgiYWNtZS51dGlscy5CZW5jaCIpKTsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oIm1vZHVsZSRtZXRhJGluaXQiLCAoU2NyaXB0YWJsZSlvbS5maW5kKCJhY21lLnV0aWxzLkJlbmNoX1BDbG9jayIpKTsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImluaXQiLCBwa2dWKTsKKyAgICAgICAgKChWYWx1ZS5PYmopb20uZ2V0digiYWNtZS51dGlscy5CZW5jaCIpKS5ibGVzcygpOworICAgICAgICAoKFZhbHVlLk9iailvbS5nZXR2KCJhY21lLnV0aWxzLkJlbmNoX1BDbG9jayIpKS5ibGVzcygpOworICAgICAgICAoKFZhbHVlLkFycilvbS5maW5kKCIkcGFja2FnZXMiKSkuYWRkKHBrZ1YpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIGV4ZWMoIFNjcmlwdGFibGUgeGRjTywgU2Vzc2lvbiBzZXMgKQorICAgIHsKKyAgICAgICAgdGhpcy54ZGNPID0geGRjTzsKKyAgICAgICAgdGhpcy5zZXMgPSBzZXM7CisgICAgICAgIG9tID0gKFZhbHVlLk9iail4ZGNPLmdldCgib20iLCBudWxsKTsKKworICAgICAgICBPYmplY3QgbyA9IG9tLmdldG8oIiRuYW1lIik7CisgICAgICAgIFN0cmluZyBzID0gbyBpbnN0YW5jZW9mIFN0cmluZyA/IChTdHJpbmcpbyA6IG51bGw7CisgICAgICAgIGlzQ0ZHID0gcyAhPSBudWxsICYmIHMuZXF1YWxzKCJjZmciKTsKKyAgICAgICAgaXNST1YgPSBzICE9IG51bGwgJiYgcy5lcXVhbHMoInJvdiIpOworCisgICAgICAgICQkSU1QT1JUUygpOworICAgICAgICAkJE9CSkVDVFMoKTsKKyAgICAgICAgQmVuY2gkJE9CSkVDVFMoKTsKKyAgICAgICAgQmVuY2hfUENsb2NrJCRPQkpFQ1RTKCk7CisgICAgICAgIEJlbmNoJCRDT05TVFMoKTsKKyAgICAgICAgQmVuY2hfUENsb2NrJCRDT05TVFMoKTsKKyAgICAgICAgQmVuY2gkJENSRUFURVMoKTsKKyAgICAgICAgQmVuY2hfUENsb2NrJCRDUkVBVEVTKCk7CisgICAgICAgIEJlbmNoJCRGVU5DVElPTlMoKTsKKyAgICAgICAgQmVuY2hfUENsb2NrJCRGVU5DVElPTlMoKTsKKyAgICAgICAgQmVuY2gkJFNJWkVTKCk7CisgICAgICAgIEJlbmNoX1BDbG9jayQkU0laRVMoKTsKKyAgICAgICAgQmVuY2gkJFRZUEVTKCk7CisgICAgICAgIEJlbmNoX1BDbG9jayQkVFlQRVMoKTsKKyAgICAgICAgaWYgKGlzUk9WKSB7CisgICAgICAgICAgICBCZW5jaCQkUk9WKCk7CisgICAgICAgICAgICBCZW5jaF9QQ2xvY2skJFJPVigpOworICAgICAgICB9Ly9pc1JPVgorICAgICAgICAkJFNJTkdMRVRPTlMoKTsKKyAgICAgICAgQmVuY2gkJFNJTkdMRVRPTlMoKTsKKyAgICAgICAgQmVuY2hfUENsb2NrJCRTSU5HTEVUT05TKCk7CisgICAgICAgICQkSU5JVElBTElaQVRJT04oKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvYnVpbGQuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2J1aWxkLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2VjMDQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2J1aWxkLmNmZwpAQCAtMCwwICsxLDI4IEBACitpZiAocGtnLiR2ZXJzLmxlbmd0aCA+PSAzKSB7CisgICAgcGtnLiR2ZXJzLnB1c2goUGFja2FnZXMueGRjLnNlcnZpY2VzLmdsb2JhbC5WZXJzLmdldERhdGUoeGRjLmNzZCgpICsgJy8uLicpKTsKK30KKworcGtnLmJ1aWxkLmxpYnJhcmllcyA9IFsKKyAgICAnbGliL2FjbWUudXRpbHMuYTY0UCcsCisgICAgJ2xpYi9hY21lLnV0aWxzLmE4NkdXJywKK107CisKK3BrZy5idWlsZC5saWJEZXNjID0gWworICAgIFsKKyAgICAgICAgJ2xpYi9hY21lLnV0aWxzLmE2NFAnLAorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQ6ICd0aS50YXJnZXRzLkM2NFAnCisgICAgICAgIH0KKyAgICBdLAorICAgIFsKKyAgICAgICAgJ2xpYi9hY21lLnV0aWxzLmE4NkdXJywKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0OiAnZ251LnRhcmdldHMuTWluZ3cnCisgICAgICAgIH0KKyAgICBdLAorXTsKK2lmICgnc3VmZml4JyBpbiB4ZGMub21bJ3hkYy5JUGFja2FnZSQkTGliRGVzYyddKSB7CisgICAgcGtnLmJ1aWxkLmxpYkRlc2NbJ2xpYi9hY21lLnV0aWxzLmE2NFAnXS5zdWZmaXggPSAnNjRQJzsKKyAgICBwa2cuYnVpbGQubGliRGVzY1snbGliL2FjbWUudXRpbHMuYTg2R1cnXS5zdWZmaXggPSAnODZHVyc7Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9pbnRlcm5hbC9CZW5jaC54ZGMuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9pbnRlcm5hbC9CZW5jaC54ZGMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjJhMjk3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2ludGVybmFsL0JlbmNoLnhkYy5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpZm5kZWYgYWNtZV91dGlsc19CZW5jaF9fSU5URVJOQUxfXworI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX19JTlRFUk5BTF9fCisKKyNpZm5kZWYgYWNtZV91dGlsc19CZW5jaF9faW50ZXJuYWxhY2Nlc3MKKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9faW50ZXJuYWxhY2Nlc3MKKyNlbmRpZgorCisjaW5jbHVkZSA8YWNtZS91dGlscy9CZW5jaC5oPgorCisjdW5kZWYgeGRjX0ZJTEVfXworI2lmbmRlZiB4ZGNfRklMRQorI2RlZmluZSB4ZGNfRklMRV9fIE5VTEwKKyNlbHNlCisjZGVmaW5lIHhkY19GSUxFX18geGRjX0ZJTEUKKyNlbmRpZgorCisvKiBiZWdpbiAqLworI3VuZGVmIGFjbWVfdXRpbHNfQmVuY2hfYmVnaW4KKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9iZWdpbiBhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19GCisKKy8qIGVuZCAqLworI3VuZGVmIGFjbWVfdXRpbHNfQmVuY2hfZW5kCisjZGVmaW5lIGFjbWVfdXRpbHNfQmVuY2hfZW5kIGFjbWVfdXRpbHNfQmVuY2hfZW5kX19GCisKKy8qIE1vZHVsZV9zdGFydHVwICovCisjdW5kZWYgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cAorI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0YKKworLyogSW5zdGFuY2VfaW5pdCAqLworI3VuZGVmIGFjbWVfdXRpbHNfQmVuY2hfSW5zdGFuY2VfaW5pdAorI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX0luc3RhbmNlX2luaXQgYWNtZV91dGlsc19CZW5jaF9JbnN0YW5jZV9pbml0X19GCisKKy8qIEluc3RhbmNlX2ZpbmFsaXplICovCisjdW5kZWYgYWNtZV91dGlsc19CZW5jaF9JbnN0YW5jZV9maW5hbGl6ZQorI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX0luc3RhbmNlX2ZpbmFsaXplIGFjbWVfdXRpbHNfQmVuY2hfSW5zdGFuY2VfZmluYWxpemVfX0YKKworLyogbW9kdWxlICovCisjZGVmaW5lIEJlbmNoX21vZHVsZSAoKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlICopKHhkY19fTU9ET0JKQUREUl9fKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGF0ZV9fVikpKQorI2lmICFkZWZpbmVkKF9fY3BsdXNwbHVzKSB8fCAhZGVmaW5lZChhY21lX3V0aWxzX0JlbmNoX19jcGx1c3BsdXMpCisjZGVmaW5lIG1vZHVsZSAoKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlICopKHhkY19fTU9ET0JKQUREUl9fKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGF0ZV9fVikpKQorI2VuZGlmCisvKiBwZXItbW9kdWxlIHJ1bnRpbWUgc3ltYm9scyAqLworI3VuZGVmIE1vZHVsZV9fTUlECisjZGVmaW5lIE1vZHVsZV9fTUlEIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQworI3VuZGVmIE1vZHVsZV9fREdTSU5DTAorI2RlZmluZSBNb2R1bGVfX0RHU0lOQ0wgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MKKyN1bmRlZiBNb2R1bGVfX0RHU0VOQUIKKyNkZWZpbmUgTW9kdWxlX19ER1NFTkFCIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MKKyN1bmRlZiBNb2R1bGVfX0RHU01BU0sKKyNkZWZpbmUgTW9kdWxlX19ER1NNQVNLIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MKKyN1bmRlZiBNb2R1bGVfX0xPR0RFRgorI2RlZmluZSBNb2R1bGVfX0xPR0RFRiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQworI3VuZGVmIE1vZHVsZV9fTE9HT0JKCisjZGVmaW5lIE1vZHVsZV9fTE9HT0JKIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0MKKyN1bmRlZiBNb2R1bGVfX0xPR0ZYTjQKKyNkZWZpbmUgTW9kdWxlX19MT0dGWE40IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DCisjdW5kZWYgTW9kdWxlX19MT0dGWE44CisjZGVmaW5lIE1vZHVsZV9fTE9HRlhOOCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQworI3VuZGVmIE1vZHVsZV9fR19PQkoKKyNkZWZpbmUgTW9kdWxlX19HX09CSiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQworI3VuZGVmIE1vZHVsZV9fR19QUk1TCisjZGVmaW5lIE1vZHVsZV9fR19QUk1TIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQworI3VuZGVmIE1vZHVsZV9fR1BfY3JlYXRlCisjZGVmaW5lIE1vZHVsZV9fR1BfY3JlYXRlIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX0dhdGVQcm94eV9jcmVhdGUKKyN1bmRlZiBNb2R1bGVfX0dQX2RlbGV0ZQorI2RlZmluZSBNb2R1bGVfX0dQX2RlbGV0ZSBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9HYXRlUHJveHlfZGVsZXRlCisjdW5kZWYgTW9kdWxlX19HUF9lbnRlcgorI2RlZmluZSBNb2R1bGVfX0dQX2VudGVyIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX0dhdGVQcm94eV9lbnRlcgorI3VuZGVmIE1vZHVsZV9fR1BfbGVhdmUKKyNkZWZpbmUgTW9kdWxlX19HUF9sZWF2ZSBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9HYXRlUHJveHlfbGVhdmUKKyN1bmRlZiBNb2R1bGVfX0dQX3F1ZXJ5CisjZGVmaW5lIE1vZHVsZV9fR1BfcXVlcnkgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfR2F0ZVByb3h5X3F1ZXJ5CisKKworI2VuZGlmIC8qIGFjbWVfdXRpbHNfQmVuY2hfX0lOVEVSTkFMX19fXyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2ludGVybmFsL0JlbmNoX1BDbG9jay54ZGMuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9pbnRlcm5hbC9CZW5jaF9QQ2xvY2sueGRjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRkNDI3MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9pbnRlcm5hbC9CZW5jaF9QQ2xvY2sueGRjLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2lmbmRlZiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19fSU5URVJOQUxfXworI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19fSU5URVJOQUxfXworCisjaWZuZGVmIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX19pbnRlcm5hbGFjY2VzcworI2RlZmluZSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19faW50ZXJuYWxhY2Nlc3MKKyNlbmRpZgorCisjaW5jbHVkZSA8YWNtZS91dGlscy9CZW5jaF9QQ2xvY2suaD4KKworI3VuZGVmIHhkY19GSUxFX18KKyNpZm5kZWYgeGRjX0ZJTEUKKyNkZWZpbmUgeGRjX0ZJTEVfXyBOVUxMCisjZWxzZQorI2RlZmluZSB4ZGNfRklMRV9fIHhkY19GSUxFCisjZW5kaWYKKworLyogZ2V0VGltZSAqLworI3VuZGVmIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX2dldFRpbWUKKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfZ2V0VGltZSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19nZXRUaW1lX19GCisKKy8qIE1vZHVsZV9zdGFydHVwICovCisjdW5kZWYgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX3N0YXJ0dXAKKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX3N0YXJ0dXAgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX3N0YXJ0dXBfX0YKKworLyogSW5zdGFuY2VfaW5pdCAqLworI3VuZGVmIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0luc3RhbmNlX2luaXQKKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfSW5zdGFuY2VfaW5pdCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19JbnN0YW5jZV9pbml0X19GCisKKy8qIEluc3RhbmNlX2ZpbmFsaXplICovCisjdW5kZWYgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfSW5zdGFuY2VfZmluYWxpemUKKyNkZWZpbmUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfSW5zdGFuY2VfZmluYWxpemUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfSW5zdGFuY2VfZmluYWxpemVfX0YKKworLyogcGVyLW1vZHVsZSBydW50aW1lIHN5bWJvbHMgKi8KKyN1bmRlZiBNb2R1bGVfX01JRAorI2RlZmluZSBNb2R1bGVfX01JRCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2lkX19DCisjdW5kZWYgTW9kdWxlX19ER1NJTkNMCisjZGVmaW5lIE1vZHVsZV9fREdTSU5DTCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MKKyN1bmRlZiBNb2R1bGVfX0RHU0VOQUIKKyNkZWZpbmUgTW9kdWxlX19ER1NFTkFCIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DCisjdW5kZWYgTW9kdWxlX19ER1NNQVNLCisjZGVmaW5lIE1vZHVsZV9fREdTTUFTSyBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2RpYWdzTWFza19fQworI3VuZGVmIE1vZHVsZV9fTE9HREVGCisjZGVmaW5lIE1vZHVsZV9fTE9HREVGIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQworI3VuZGVmIE1vZHVsZV9fTE9HT0JKCisjZGVmaW5lIE1vZHVsZV9fTE9HT0JKIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fbG9nZ2VyT2JqX19DCisjdW5kZWYgTW9kdWxlX19MT0dGWE40CisjZGVmaW5lIE1vZHVsZV9fTE9HRlhONCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MKKyN1bmRlZiBNb2R1bGVfX0xPR0ZYTjgKKyNkZWZpbmUgTW9kdWxlX19MT0dGWE44IGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fbG9nZ2VyRnhuOF9fQworI3VuZGVmIE1vZHVsZV9fR19PQkoKKyNkZWZpbmUgTW9kdWxlX19HX09CSiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2dhdGVPYmpfX0MKKyN1bmRlZiBNb2R1bGVfX0dfUFJNUworI2RlZmluZSBNb2R1bGVfX0dfUFJNUyBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX2dhdGVQcm1zX19DCisjdW5kZWYgTW9kdWxlX19HUF9jcmVhdGUKKyNkZWZpbmUgTW9kdWxlX19HUF9jcmVhdGUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX0dhdGVQcm94eV9jcmVhdGUKKyN1bmRlZiBNb2R1bGVfX0dQX2RlbGV0ZQorI2RlZmluZSBNb2R1bGVfX0dQX2RlbGV0ZSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfR2F0ZVByb3h5X2RlbGV0ZQorI3VuZGVmIE1vZHVsZV9fR1BfZW50ZXIKKyNkZWZpbmUgTW9kdWxlX19HUF9lbnRlciBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfR2F0ZVByb3h5X2VudGVyCisjdW5kZWYgTW9kdWxlX19HUF9sZWF2ZQorI2RlZmluZSBNb2R1bGVfX0dQX2xlYXZlIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9HYXRlUHJveHlfbGVhdmUKKyN1bmRlZiBNb2R1bGVfX0dQX3F1ZXJ5CisjZGVmaW5lIE1vZHVsZV9fR1BfcXVlcnkgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX0dhdGVQcm94eV9xdWVyeQorCisKKyNlbmRpZiAvKiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19fSU5URVJOQUxfX19fICovCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm82NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm82NFAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU3ZmJkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2gubzY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm82NFAuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vNjRQLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWQ0NTMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vNjRQLmRlcApAQCAtMCwwICsxLDQwIEBACitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vNjRQOiBCZW5jaC5jIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oIC4vcGFja2FnZS9pbnRlcm5hbC9CZW5jaC54ZGMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5oIEJlbmNoLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkYXJnLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkZGVmLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggY2xvY2tzL0lDbG9jay5oIHBhY2thZ2UvQmVuY2hfUENsb2NrLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW50LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oIGNsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaCANCitCZW5jaC5jOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oOg0KKy4vcGFja2FnZS9pbnRlcm5hbC9CZW5jaC54ZGMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5oOg0KK0JlbmNoLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkYXJnLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkZGVmLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oOg0KK3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorY2xvY2tzL0lDbG9jay5oOg0KK3BhY2thZ2UvQmVuY2hfUENsb2NrLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW50Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm84NkdXIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzMzNGFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm84NkdXLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvQmVuY2gubzg2R1cuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkZWUwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL0JlbmNoLm84NkdXLmRlcApAQCAtMCwwICsxLDM3IEBACitwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy8vQmVuY2gubzg2R1c6IEJlbmNoLmMgRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaCAuL3BhY2thZ2UvaW50ZXJuYWwvQmVuY2gueGRjLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvc3RkLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5LmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5LmggQmVuY2guaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggY2xvY2tzL0lDbG9jay5oIHBhY2thZ2UvQmVuY2hfUENsb2NrLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oIGNsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5LmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oIA0KK0JlbmNoLmM6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaDoNCisuL3BhY2thZ2UvaW50ZXJuYWwvQmVuY2gueGRjLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvc3RkLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0Lmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5Lmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Lmg6DQorQmVuY2guaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oOg0KK3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorY2xvY2tzL0lDbG9jay5oOg0KK3BhY2thZ2UvQmVuY2hfUENsb2NrLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5Lmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YzdmMTQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZGMwZDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm82NFAuZGVwCkBAIC0wLDAgKzEsNyBAQAorcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzY0UDogcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oIA0KK3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmM6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm84NkdXIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjQ3MWNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm84NkdXLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzg2R1cuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhMDc1NDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLm84NkdXLmRlcApAQCAtMCwwICsxLDQgQEAKK3BhY2thZ2UvbGliL2xpYi9hY21lLnV0aWxzL3BhY2thZ2UvL3BhY2thZ2VfYWNtZS51dGlscy5vODZHVzogcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9zdGQuaCANCitwYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1NGE4OTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCkBAIC0wLDAgKzEsODIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBUaGlzIGZpbGUgY29uZm9ybXMgdG8gdGhlIERURCB4ZGMvYmxkL2J1aWxkLmR0ZCAtLT4KKzxwYWNrYWdlIG5hbWU9ImFjbWUudXRpbHMiIHZlcnNpb249IiIgcHJvZHVjZXJJZD0idW5kZWZpbmVkIj4KKyAgICA8dW5pdHM+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iQmVuY2giLz4KKyAgICA8L3VuaXRzPgorICAgIDxzb3VyY2VzPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJCZW5jaC5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmMiLz4KKyAgICA8L3NvdXJjZXM+CisgICAgPGNvbmZpZ3VyYXRpb25zPgorICAgIDwvY29uZmlndXJhdGlvbnM+CisgICAgPG1ha2VmaWxlcz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLnhkYy5kZXAiIHNyYz0icGFja2FnZS54ZGMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLmNmZy5kZXAiIHNyYz0icGFja2FnZS54ZGMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0ibGliL2FjbWUudXRpbHMuYTY0UC5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9saWIvbGliL2FjbWUudXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMubzY0UC5kZXAiIHNyYz0icGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vNjRQLmRlcCIgc3JjPSJCZW5jaC5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9ImxpYi9hY21lLnV0aWxzLmE4NkdXLm1hayIgc3JjPSJwYWNrYWdlLmJsZCIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5vODZHVy5kZXAiIHNyYz0icGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2xpYi9saWIvYWNtZS51dGlscy9CZW5jaC5vODZHVy5kZXAiIHNyYz0iQmVuY2guYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3JlbC9hY21lX3V0aWxzLnRhci5kZXAiIHNyYz0icGFja2FnZS9yZWwvYWNtZV91dGlscy54ZGMuaW5jIi8+CisgICAgPC9tYWtlZmlsZXM+CisgICAgPHRhcmdldHM+CisgICAgICAgIDx0YXJnZXQgbmFtZT0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICAgICAgdmVyc2lvbj0idGkudGFyZ2V0cy5DNjRQezEsMCw2LjEsNSIKKyAgICAgICAgICAgIHBsYXRmb3JtPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiCisgICAgICAgICAgICBpc2E9IjY0UCIKKyAgICAgICAgICAgIHN1ZmZpeD0iNjRQIgorICAgICAgICAgICAgcm9vdERpcj0iZDovdGkvYzYwMDAvYWxjIgorICAgICAgICAgICAgb3M9InVuZGVmaW5lZCIKKyAgICAgICAgICAgIHJ0cz0idGkudGFyZ2V0cy5ydHM2MDAwIj4KKyAgICAgICAgICAgIDxtb2RlbCBlbmRpYW49ImxpdHRsZSIKKyAgICAgICAgICAgICAgICBjb2RlTW9kZWw9InVuZGVmaW5lZCIKKyAgICAgICAgICAgICAgICBkYXRhTW9kZWw9InVuZGVmaW5lZCIvPgorICAgICAgICA8L3RhcmdldD4KKyAgICAgICAgPHRhcmdldCBuYW1lPSJnbnUudGFyZ2V0cy5NaW5ndyIKKyAgICAgICAgICAgIHZlcnNpb249ImdudS50YXJnZXRzLk1pbmd3ezEsMCwzLjQsNSIKKyAgICAgICAgICAgIHBsYXRmb3JtPSJob3N0LnBsYXRmb3Jtcy5QQyIKKyAgICAgICAgICAgIGlzYT0ieDg2IgorICAgICAgICAgICAgc3VmZml4PSI4NkdXIgorICAgICAgICAgICAgcm9vdERpcj0iZTovcnRzYy9taW5ndyIKKyAgICAgICAgICAgIG9zPSJXaW5kb3dzIgorICAgICAgICAgICAgcnRzPSJnbnUudGFyZ2V0cy5ydHM4NkdXIj4KKyAgICAgICAgICAgIDxtb2RlbCBlbmRpYW49ImxpdHRsZSIKKyAgICAgICAgICAgICAgICBjb2RlTW9kZWw9InVuZGVmaW5lZCIKKyAgICAgICAgICAgICAgICBkYXRhTW9kZWw9InVuZGVmaW5lZCIvPgorICAgICAgICA8L3RhcmdldD4KKyAgICA8L3RhcmdldHM+CisgICAgPGxpYnJhcmllcz4KKyAgICA8bGlicmFyeSBuYW1lPSJsaWIvYWNtZS51dGlscyIKKyAgICAgICAgcG5hbWU9ImxpYi9hY21lLnV0aWxzLmE2NFAiCisgICAgICAgIHByb2ZpbGU9Indob2xlX3Byb2dyYW0iCisgICAgICAgIHRhcmdldD0idGkudGFyZ2V0cy5DNjRQIi8+CisgICAgPGxpYnJhcnkgbmFtZT0ibGliL2FjbWUudXRpbHMiCisgICAgICAgIHBuYW1lPSJsaWIvYWNtZS51dGlscy5hODZHVyIKKyAgICAgICAgcHJvZmlsZT0id2hvbGVfcHJvZ3JhbSIKKyAgICAgICAgdGFyZ2V0PSJnbnUudGFyZ2V0cy5NaW5ndyIvPgorICAgIDwvbGlicmFyaWVzPgorICAgIDxleGVjdXRhYmxlcz4KKyAgICA8L2V4ZWN1dGFibGVzPgorICAgIDx0ZXN0cz4KKyAgICA8L3Rlc3RzPgorICAgIDxyZWxlYXNlcyByZWxEaXI9InBhY2thZ2UvcmVsLyI+CisgICAgPHJlbGVhc2UgbmFtZT0iYWNtZV91dGlscyIKKyAgICAgICAgcG5hbWU9ImFjbWVfdXRpbHMudGFyIgorICAgICAgICBsYWJlbD0iZGVmYXVsdCIKKyAgICA+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvYnVpbGQuY2ZnIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5jZmcueGRjLmluYyIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UuZXh0LnhtbCIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UueGRjLmluYyIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJsaWIvYWNtZS51dGlscy5hNjRQIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5ibGQueG1sIi8+CisgICAgICAgIDxmaWxlIG5hbWU9ImxpYi9hY21lLnV0aWxzLmE4NkdXIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5yZWwuZG90Ii8+CisgICAgPC9yZWxlYXNlPgorICAgIDwvcmVsZWFzZXM+CisgICAgPHJlcG9zaXRvcmllcz4KKyAgICA8L3JlcG9zaXRvcmllcz4KKzwvcGFja2FnZT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRlZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjVkY2MzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oCkBAIC0wLDAgKzEsMjYgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpZm5kZWYgYWNtZV91dGlsc19fCisjZGVmaW5lIGFjbWVfdXRpbHNfXworCisKKy8qCisgKiA9PT09PT09PSBtb2R1bGUgYWNtZS51dGlscy5CZW5jaCA9PT09PT09PQorICovCisKK3R5cGVkZWYgc3RydWN0IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlOworCisvKgorICogPT09PT09PT0gbW9kdWxlIGFjbWUudXRpbHMuQmVuY2hfUENsb2NrID09PT09PT09CisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfRnhuc19fIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX0Z4bnNfXzsKK3R5cGVkZWYgY29uc3QgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfRnhuc19fKiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGU7CisKKworI2VuZGlmIC8qIGFjbWVfdXRpbHNfXyAqLyAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRvYy54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5kb2MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmOWRjZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5kb2MueG1sCkBAIC0wLDAgKzEsMzU1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHBhY2thZ2Uga2luZD0ncGFja2FnZScgbmFtZT0nYWNtZS51dGlscycgbm9kb2M9JzAnIHJvb3Q9Jy4uLy4uLycgc3VtbWFyeT0nQ29sbGVjdGlvbitvZit1dGlsaXR5K21vZHVsZXMnPgorICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFcmVxdWlyZXMlM0MlMkZzcGFuJTNFKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZhY21lJTJGdXRpbHMlMkZjbG9ja3MlMkZwYWNrYWdlLmh0bWwlMjIrdGl0bGUlM0QlMjJhY21lLnV0aWxzLmNsb2NrcyUyMiUzRWFjbWUudXRpbHMuY2xvY2tzJTNDJTJGYSUzRSUzQicvPgorICAgIDxsaW5lIGJsYW5rPScxJyBhbHdheXM9JzAnLz4KKyAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXBhY2thZ2UlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VhY21lLnV0aWxzJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyU3QicvPgorICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTdEJy8+CisgICAgPHVuaXQgbmFtZT0nQmVuY2gnIGtpbmQ9J21vZHVsZScgbm9kb2M9JzAnIG1ldGFvbmx5PScwJyBzdW1tYXJ5PSdCZW5jaG1hcmsrdGltaW5nK3N1cHBvcnQnPgorICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VwYWNrYWdlJTNDJTJGc3BhbiUzRSslM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGcGFja2FnZS5odG1sJTIyK3RpdGxlJTNEJTIyYWNtZS51dGlscyUyMiUzRWFjbWUudXRpbHMlM0MlMkZhJTNFJTNCJy8+CisgICAgICAgICAgICA8bGluZSBibGFuaz0nMScgYWx3YXlzPScwJy8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MyUyMiUzRSU0ME1vZHVsZVN0YXJ0dXArJTNDJTJGc3BhbiUzRScvPgorICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vtb2R1bGUlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VCZW5jaCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslN0InLz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTdEJy8+CisgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICA8c3BlY0luZm8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MyUyMiUzRSU0ME1vZHVsZVN0YXJ0dXArJTNDJTJGc3BhbiUzRScvPgorICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vtb2R1bGUlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VCZW5jaCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslN0IlM0NiJTNFJTI2bmJzcCUzQiUyNm5ic3AlM0IuLi4lM0MlMkZiJTNFJy8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbW1lbnQ9J2luaGVyaXRzKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGSU1vZHVsZS5odG1sJTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuSU1vZHVsZSUyMiUzRXhkYy5ydW50aW1lLklNb2R1bGUlM0MlMkZhJTNFJy8+CisgICAgICAgIDwvc3BlY0luZm8+CisgICAgICAgIDxzeW5vcE1ldGE+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXZhciUzQyUyRnNwYW4lM0UrQmVuY2grJTNEKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MyUyMiUzRXhkYy51c2VNb2R1bGUlM0MlMkZzcGFuJTNFJTI4JTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0UlMjdhY21lLnV0aWxzLkJlbmNoJTI3JTNDJTJGc3BhbiUzRSUyOSUzQicvPgorICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3czJTIyJTNFJTIzaW5jbHVkZSUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0UlMjZsdCUzQmFjbWUlMkZ1dGlscyUyRkJlbmNoLmglMjZndCUzQiUzQyUyRnNwYW4lM0UnLz4KKyAgICAgICAgPC9zeW5vcFRhcmc+CisgICAgICAgIDxncm91cCBuYW1lPSdsb2NhbCBwcm94eSBtb2R1bGVzJz4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wga2luZD0ncHJveHknIG5hbWU9J1BDbG9jaycgYW5jaG9yPScuUC5DbG9jaycgYWx0ZXh0PSdhY21lLnV0aWxzLkJlbmNoLlBDbG9jaycgbm9kb2M9JzAnIGV4dGVybmFsPScxJyBvdmVycmlkZXM9JzAnIHJlYWRvbmx5PScwJyBpbnN0YW5jZT0nMCcgc3VtbWFyeT0nU2VsZWN0YWJsZStJQ2xvY2src2VydmljZStwcm92aWRlcic+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vwcm94eSUzQyUyRnNwYW4lM0UrUENsb2NrKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWluaGVyaXRzJTNDJTJGc3BhbiUzRSslM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGY2xvY2tzJTJGSUNsb2NrLmh0bWwlMjIrdGl0bGUlM0QlMjJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2slMjIlM0VJQ2xvY2slM0MlMkZhJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NnbyUzRUJlbmNoLiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFUENsb2NrJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyUzRCslM0NpJTNFJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRmFjbWUlMkZ1dGlscyUyRmNsb2NrcyUyRklDbG9jay5odG1sJTIyK3RpdGxlJTNEJTIyYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrJTIyJTNFSUNsb2NrJTNDJTJGYSUzRS5Nb2R1bGUlM0MlMkZpJTNFKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRW51bGwlM0MlMkZzcGFuJTNFJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIGVsZW09JzEnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb21tZW50PSdzb21lK2RlbGVnYXRlK21vZHVsZStpbmhlcml0aW5nK3RoZSslM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGY2xvY2tzJTJGSUNsb2NrLmh0bWwlMjIrdGl0bGUlM0QlMjJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2slMjIlM0VJQ2xvY2slM0MlMkZhJTNFK2ludGVyZmFjZScvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSBlbGVtPScwJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTNDZ28lM0VCZW5jaC4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRVBDbG9jayUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRS5kZWxlZ2F0ZSUyNCslM0QrJTNDaSUzRSUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZhY21lJTJGdXRpbHMlMkZjbG9ja3MlMkZJQ2xvY2suaHRtbCUyMit0aXRsZSUzRCUyMmFjbWUudXRpbHMuY2xvY2tzLklDbG9jayUyMiUzRUlDbG9jayUzQyUyRmElM0UuTW9kdWxlJTNDJTJGaSUzRSslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VudWxsJTNDJTJGc3BhbiUzRScvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSBlbGVtPScxJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29tbWVudD0nZXhwbGljaXQrYWNjZXNzK3RvK3RoZStjdXJyZW50bHkrYm91bmQrZGVsZWdhdGUrbW9kdWxlJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIGVsZW09JzAnLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGNvbnN0YW50cyAmYW1wOyB0eXBlcyc+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wga2luZD0nc3RydWN0JyBuYW1lPSdNb2R1bGVfU3RhdGUnIGFuY2hvcj0nLk1vZHVsZV8uU3RhdGUnIGFsdGV4dD0nYWNtZS51dGlscy5CZW5jaC5Nb2R1bGVfU3RhdGUnIG5vZG9jPScwJyBleHRlcm5hbD0nMCcgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9Jyc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VzdHJ1Y3QlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VNb2R1bGVfU3RhdGUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFU3RyaW5nJTNDJTJGc3BhbiUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFYmVnaW5Nc2clM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VJbnQlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0ViZWdpbkNsb2NrJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFSW50JTNDJTJGc3BhbiUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFb3ZlcmhlYWQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclN0QlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICA8c3lub3BNZXRhPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXZhciUzQyUyRnNwYW4lM0UrJTNDaSUzRW9iaiUzQyUyRmklM0UrJTNEKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRW5ldyUzQyUyRnNwYW4lM0UrJTNDZ28lM0VCZW5jaC4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRU1vZHVsZV9TdGF0ZSUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUzQicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSBibGFuaz0nMScgYWx3YXlzPScwJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTNDaSUzRW9iaiUzQyUyRmklM0UuJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWJlZ2luTXNnJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyUzRCslM0NpJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFU3RyaW5nJTNDJTJGc3BhbiUzRSUzQyUyRmklM0UlM0NiJTNFJTI2bmJzcCUzQiUyNm5ic3AlM0IuLi4lM0MlMkZiJTNFJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTNDaSUzRW9iaiUzQyUyRmklM0UuJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWJlZ2luQ2xvY2slM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUzQ2klM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VJbnQlM0MlMkZzcGFuJTNFJTNDJTJGaSUzRSUzQ2IlM0UlMjZuYnNwJTNCJTI2bmJzcCUzQi4uLiUzQyUyRmIlM0UnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclM0NpJTNFb2JqJTNDJTJGaSUzRS4lM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFb3ZlcmhlYWQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUzQ2klM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VJbnQlM0MlMkZzcGFuJTNFJTNDJTJGaSUzRSUzQ2IlM0UlMjZuYnNwJTNCJTI2bmJzcCUzQi4uLiUzQyUyRmIlM0UnLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICA8c3lub3BUYXJnPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXR5cGVkZWYlM0MlMkZzcGFuJTNFKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXN0cnVjdCUzQyUyRnNwYW4lM0UrJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRUJlbmNoX01vZHVsZV9TdGF0ZSUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslN0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VTdHJpbmclM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0UlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFYmVnaW5Nc2clM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VJbnQlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0UlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFYmVnaW5DbG9jayUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUzQicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRUludCUzQyUyRnNwYW4lM0UlMjZuYnNwJTNCJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRSUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VvdmVyaGVhZCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUzQicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyU3RCslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFQmVuY2hfTW9kdWxlX1N0YXRlJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFRhcmc+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgIDwvZ3JvdXA+CisgICAgICAgIDxncm91cCBuYW1lPSdtb2R1bGUtd2lkZSBjb25maWcgcGFyYW1ldGVycyc+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2NvbmZpZycgbmFtZT0nY29uZmlnTmFtZU1hcCQnIGFuY2hvcj0nY29uZmlnLk5hbWUuTWFwJCcgYWx0ZXh0PSdhY21lLnV0aWxzLkJlbmNoLmNvbmZpZ05hbWVNYXAkJyBub2RvYz0nMScgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzEnIGluc3RhbmNlPScwJyBzdW1tYXJ5PScnIG9yaWdpbj0nJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZJTW9kdWxlLmh0bWwlMjNjb25maWcuTmFtZS5NYXAlMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlLmNvbmZpZ05hbWVNYXAlMjQlMjIlM0VJTW9kdWxlJTNDJTJGYSUzRScgbWV0YW9ubHk9JzEnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbWV0YW9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXJlYWRvbmx5KyUzQyUyRnNwYW4lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25maWclM0MlMkZzcGFuJTNFKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGVHlwZXMuaHRtbCUyMy5WaWV3LkluZm8lMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5UeXBlcy5WaWV3SW5mbyUyMiUzRVR5cGVzLlZpZXdJbmZvJTNDJTJGYSUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFY29uZmlnTmFtZU1hcCUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSU1QiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXN0cmluZyUzQyUyRnNwYW4lM0UlNUQrJTNEKyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZNZW1vcnklMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuaW5zdGFuY2VIZWFwJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuaW5zdGFuY2VTZWN0aW9uJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQubWVtb3J5UG9saWN5JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQubmFtZWRNb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5uYW1lZEluc3RhbmNlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZnhudGFiJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQucm9tUGF0Y2hUYWJsZSUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRkRpYWdub3N0aWNzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmxvZ2dlciUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX0FTU0VSVCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX0VOVFJZJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfRVhJVCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX0lOVEVSTkFMJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfTElGRUNZQ0xFJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjElMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSMiUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVIzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjQlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI2JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjclMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSOCUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRkNvbmN1cnJlbmN5JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmdhdGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5nYXRlUGFyYW1zJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGTG9nJTJCRXZlbnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkxvZy5FdmVudCUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRkxvZyUyQkV2ZW50cyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMmluc3RhbmNlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkxvZy5FdmVudCUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRkFzc2VydHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyQXNzZXJ0LklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQXNzZXJ0cyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMmluc3RhbmNlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkFzc2VydC5JZCUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRkVycm9ycyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJFcnJvci5JZCUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRkVycm9ycyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMmluc3RhbmNlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkVycm9yLklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclMjU1RCUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICAgICAgICAgIDxzeW5vcE1ldGE+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFY29uc3QlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFQmVuY2guJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vjb25maWdOYW1lTWFwJTI0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyUzRCslM0NpJTNFJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLlZpZXcuSW5mbyUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLlZpZXdJbmZvJTIyJTNFVHlwZXMuVmlld0luZm8lM0MlMkZhJTNFJTVCJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFc3RyaW5nJTNDJTJGc3BhbiUzRSU1RCUzQyUyRmklM0UrJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRk1lbW9yeSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZUhlYXAlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZVNlY3Rpb24lMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5tZW1vcnlQb2xpY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5uYW1lZE1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lm5hbWVkSW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5meG50YWIlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5yb21QYXRjaFRhYmxlJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRGlhZ25vc3RpY3MlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQubG9nZ2VyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfQVNTRVJUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfRU5UUlklMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19FWElUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfSU5URVJOQUwlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19MSUZFQ1lDTEUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSMSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVIyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI1JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjYlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI4JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQ29uY3VycmVuY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZ2F0ZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmdhdGVQYXJhbXMlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZMb2clMkJFdmVudHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGTG9nJTJCRXZlbnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQXNzZXJ0cyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJBc3NlcnQuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZBc3NlcnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyQXNzZXJ0LklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkVycm9yLklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyRXJyb3IuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUyNTVEJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcE1ldGE+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2NvbmZpZycgbmFtZT0nZW5hYmxlRmxhZycgYW5jaG9yPSdlbmFibGUuRmxhZycgYWx0ZXh0PSdhY21lLnV0aWxzLkJlbmNoLmVuYWJsZUZsYWcnIG5vZG9jPScwJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9J0VuYWJsZSUyRmRpc2FibGUrYmVuY2htYXJrK2Z1bmN0aW9ucyc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25maWclM0MlMkZzcGFuJTNFKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRUJvb2wlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VlbmFibGVGbGFnJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyUzRCslMjUzQ3NwYW4lMkJjbGFzcyUyNTNEJTI1MjJ4ZG9jLWt3MiUyNTIyJTI1M0V0cnVlJTI1M0MlMjUyRnNwYW4lMjUzRSUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICAgICAgICAgIDxzeW5vcE1ldGE+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDZ28lM0VCZW5jaC4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWVuYWJsZUZsYWclM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUzQ2klM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VCb29sJTNDJTJGc3BhbiUzRSUzQyUyRmklM0UrJTI1M0NzcGFuJTJCY2xhc3MlMjUzRCUyNTIyeGRvYy1rdzIlMjUyMiUyNTNFdHJ1ZSUyNTNDJTI1MkZzcGFuJTI1M0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICA8c3lub3BUYXJnPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWV4dGVybitjb25zdCUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFQm9vbCUzQyUyRnNwYW4lM0UlMjZuYnNwJTNCJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRUJlbmNoX2VuYWJsZUZsYWclM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wVGFyZz4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wga2luZD0nY29uZmlnJyBuYW1lPSdjb21tb24kJyBhbmNob3I9J2NvbW1vbiQnIGFsdGV4dD0nYWNtZS51dGlscy5CZW5jaC5jb21tb24kJyBub2RvYz0nMCcgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzAnIGluc3RhbmNlPScwJyBzdW1tYXJ5PSdDb21tb24rbW9kdWxlK2NvbmZpZ3VyYXRpb24rcGFyYW1ldGVycycgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklNb2R1bGUuaHRtbCUyM2NvbW1vbiUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLklNb2R1bGUuY29tbW9uJTI0JTIyJTNFSU1vZHVsZSUzQyUyRmElM0UnIG1ldGFvbmx5PScxJz4KKyAgICAgICAgICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRW1ldGFvbmx5KyUzQyUyRnNwYW4lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25maWclM0MlMkZzcGFuJTNFKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGVHlwZXMuaHRtbCUyMy5Db21tb24lMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQlMjIlM0VUeXBlcy5Db21tb24lMjQlM0MlMkZhJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vjb21tb24lMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICA8c3lub3BNZXRhPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ2dvJTNFQmVuY2guJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vjb21tb24lMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUzQ2klM0UlM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRlR5cGVzLmh0bWwlMjMuQ29tbW9uJTI0JTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0JTIyJTNFVHlwZXMuQ29tbW9uJTI0JTNDJTJGYSUzRSUzQyUyRmklM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFdW5kZWZpbmVkJTNDJTJGc3BhbiUzRSUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BNZXRhPgorICAgICAgICAgICAgICAgIDxkb2NTZWN0IG5hbWU9J2RldGFpbHMnPgorICAgICAgICAgICAgICAgICAgICA8ZG9jUGFyYSBjb250ZW50PSdBbGwrbW9kdWxlcytoYXZlK3RoaXMrY29uZmlndXJhdGlvbitwYXJhbWV0ZXIuKytJdHMrbmFtZSUwQSsrY29udGFpbnMrdGhlKyUyNyUyNCUyNytjaGFyYWN0ZXIrdG8rZW5zdXJlK2l0K2RvZXMrbm90K2NvbmZsaWN0K3dpdGglMEErK2NvbmZpZ3VyYXRpb24rcGFyYW1ldGVycytkZWNsYXJlZCtieSt0aGUrbW9kdWxlLisrVGhpcythbGxvd3MlMEErK25ldytjb25maWd1cmF0aW9uK3BhcmFtZXRlcnMrdG8rYmUrYWRkZWQraW4rdGhlK2Z1dHVyZSt3aXRob3V0JTBBKythbnkrY2hhbmNlK29mK2JyZWFraW5nK2V4aXN0aW5nK21vZHVsZXMuJy8+CisgICAgICAgICAgICAgICAgPC9kb2NTZWN0PgorICAgICAgICAgICAgPC9kZWNsPgorICAgICAgICAgICAgPGRlY2wga2luZD0nY29uZmlnJyBuYW1lPSdyb3ZTaG93UmF3VGFiJCcgYW5jaG9yPSdyb3YuU2hvdy5SYXcuVGFiJCcgYWx0ZXh0PSdhY21lLnV0aWxzLkJlbmNoLnJvdlNob3dSYXdUYWIkJyBub2RvYz0nMScgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzAnIGluc3RhbmNlPScwJyBzdW1tYXJ5PScnIG9yaWdpbj0nJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZJTW9kdWxlLmh0bWwlMjNyb3YuU2hvdy5SYXcuVGFiJTI0JTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuSU1vZHVsZS5yb3ZTaG93UmF3VGFiJTI0JTIyJTNFSU1vZHVsZSUzQyUyRmElM0UnIG1ldGFvbmx5PScxJz4KKyAgICAgICAgICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRW1ldGFvbmx5KyUzQyUyRnNwYW4lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25maWclM0MlMkZzcGFuJTNFKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRUJvb2wlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vyb3ZTaG93UmF3VGFiJTI0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyUzRCslMjUzQ3NwYW4lMkJjbGFzcyUyNTNEJTI1MjJ4ZG9jLWt3MiUyNTIyJTI1M0V0cnVlJTI1M0MlMjUyRnNwYW4lMjUzRSUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICAgICAgICAgIDxzeW5vcE1ldGE+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDZ28lM0VCZW5jaC4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRXJvdlNob3dSYXdUYWIlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUzQ2klM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VCb29sJTNDJTJGc3BhbiUzRSUzQyUyRmklM0UrJTI1M0NzcGFuJTJCY2xhc3MlMjUzRCUyNTIyeGRvYy1rdzIlMjUyMiUyNTNFdHJ1ZSUyNTNDJTI1MkZzcGFuJTI1M0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2NvbmZpZycgbmFtZT0ndmlld05hbWVNYXAkJyBhbmNob3I9J3ZpZXcuTmFtZS5NYXAkJyBhbHRleHQ9J2FjbWUudXRpbHMuQmVuY2gudmlld05hbWVNYXAkJyBub2RvYz0nMScgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzAnIGluc3RhbmNlPScwJyBzdW1tYXJ5PSdTcGVjaWZpZXMrdGhlK1JPVit2aWV3cytmb3IrdGhlK21vZHVsZScgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklNb2R1bGUuaHRtbCUyM3ZpZXcuTmFtZS5NYXAlMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlLnZpZXdOYW1lTWFwJTI0JTIyJTNFSU1vZHVsZSUzQyUyRmElM0UnIG1ldGFvbmx5PScxJz4KKyAgICAgICAgICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRW1ldGFvbmx5KyUzQyUyRnNwYW4lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25maWclM0MlMkZzcGFuJTNFKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGVHlwZXMuaHRtbCUyMy5WaWV3LkluZm8lMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5UeXBlcy5WaWV3SW5mbyUyMiUzRVR5cGVzLlZpZXdJbmZvJTNDJTJGYSUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFdmlld05hbWVNYXAlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlNUIlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VzdHJpbmclM0MlMkZzcGFuJTNFJTVEJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NnbyUzRUJlbmNoLiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFdmlld05hbWVNYXAlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUzQ2klM0UlM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRlR5cGVzLmh0bWwlMjMuVmlldy5JbmZvJTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuVHlwZXMuVmlld0luZm8lMjIlM0VUeXBlcy5WaWV3SW5mbyUzQyUyRmElM0UlNUIlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VzdHJpbmclM0MlMkZzcGFuJTNFJTVEJTNDJTJGaSUzRSslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0V1bmRlZmluZWQlM0MlMkZzcGFuJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcE1ldGE+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgIDwvZ3JvdXA+CisgICAgICAgIDxncm91cCBuYW1lPSdtb2R1bGUtd2lkZSBmdW5jdGlvbnMnPgorICAgICAgICAgICAgPGRlY2wga2luZD0nZnhuJyBuYW1lPSdiZWdpbicgYW5jaG9yPSdiZWdpbicgYWx0ZXh0PSdhY21lLnV0aWxzLkJlbmNoLmJlZ2luJyBub2RvYz0nMCcgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzAnIGluc3RhbmNlPScwJyBzdW1tYXJ5PSdTdGFydCt0aGUrYmVuY2htYXJrJz4KKyAgICAgICAgICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRVZvaWQlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0ViZWdpbiUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUyOCslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VTdHJpbmclM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vtc2clM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NpJTNFJTNDJTJGaSUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRVZvaWQlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VCZW5jaF9iZWdpbiUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUyOCslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VTdHJpbmclM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vtc2clM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFRhcmc+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBraW5kPSdmeG4nIG5hbWU9J2VuZCcgYW5jaG9yPSdlbmQnIGFsdGV4dD0nYWNtZS51dGlscy5CZW5jaC5lbmQnIG5vZG9jPScwJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9J0VuZCt0aGUrYmVuY2htYXJrK2FuZCtwcmludCt0aGUrY3VycmVudCt0aW1lJz4KKyAgICAgICAgICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRVZvaWQlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VlbmQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlMjgrKyUyOSUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICAgICAgICAgIDxzeW5vcFRhcmc+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDaSUzRSUzQyUyRmklM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VWb2lkJTNDJTJGc3BhbiUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFQmVuY2hfZW5kJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTI4KyslMjklM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wVGFyZz4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8Z3JvdXAgbmFtZT0nbW9kdWxlLXdpZGUgYnVpbHQtaW5zJz4KKyAgICAgICAgICAgIDxzeW5vcFRhcmc+CisgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb21tZW50PSdHZXQrdGhpcyttb2R1bGUlMjdzK3VuaXF1ZStpZCcgY29udGVudD0nJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLk1vZHVsZS5JZCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLk1vZHVsZUlkJTIyJTNFVHlwZXNfTW9kdWxlSWQlM0MlMkZhJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VCZW5jaF9Nb2R1bGVfaWQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlMjgrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPGxpbmUgYmxhbms9JzEnIGFsd2F5cz0nMCcvPgorICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29tbWVudD0nVGVzdCtpZit0aGlzK21vZHVsZStoYXMrY29tcGxldGVkK3N0YXJ0dXAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRUJvb2wlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VCZW5jaF9Nb2R1bGVfc3RhcnR1cERvbmUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlMjgrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb21tZW50PSdUaGUraGVhcCtmcm9tK3doaWNoK3RoaXMrbW9kdWxlK2FsbG9jYXRlcyttZW1vcnknIGNvbnRlbnQ9JyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGSUhlYXAuaHRtbCUyM3Blci1pbnN0YW5jZV9vYmplY3RfdHlwZXMlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JSGVhcC5IYW5kbGUlMjIlM0VJSGVhcF9IYW5kbGUlM0MlMkZhJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VCZW5jaF9Nb2R1bGVfaGVhcCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUyOCslMjklM0InLz4KKyAgICAgICAgICAgICAgICA8bGluZSBibGFuaz0nMScgYWx3YXlzPScwJy8+CisgICAgICAgICAgICA8L3N5bm9wVGFyZz4KKyAgICAgICAgPC9ncm91cD4KKyAgICA8L3VuaXQ+Cis8L3BhY2thZ2U+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL3BhY2thZ2UueGRjLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjNiMTEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL3BhY2thZ2UueGRjLmRlcApAQCAtMCwwICsxLDc1IEBACitjbGVhbjo6DQorCSQoUk0pIHBhY2thZ2UvYWNtZS51dGlscy5zY2gNCisJJChSTSkgcGFja2FnZS8udmVyc19nMTUwDQorCSQoUk0pIHBhY2thZ2UvLnZlcnNfcjE1MA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX2IxNTANCisJJChSTSkgcGFja2FnZS8udmVyc19jMTUwDQorCSQoUk0pIHBhY2thZ2UvLnhkYy10MzINCisJJChSTSkgcGFja2FnZS9hY21lX3V0aWxzLmphdmENCisJJChSTSkgcGFja2FnZS9hY21lX3V0aWxzLmNsYXNzDQorCSQoUk0pIHBhY2thZ2UvcGFja2FnZV9hY21lLnV0aWxzLmMNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlLmRlZnMuaA0KKwkkKFJNKSBCZW5jaC5oDQorCSQoUk0pIHBhY2thZ2UvaW50ZXJuYWwvQmVuY2gueGRjLmgNCisJJChSTSkgcGFja2FnZS9CZW5jaF9QQ2xvY2suaA0KKwkkKFJNKSBwYWNrYWdlL2ludGVybmFsL0JlbmNoX1BDbG9jay54ZGMuaA0KKwkkKFJNKSBwYWNrYWdlL3BhY2thZ2UuZG9jLnhtbA0KKwkkKFJNKSBwYWNrYWdlL2FjbWUudXRpbHMuY2NzDQorCisuaW50ZXJmYWNlczogcGFja2FnZS9hY21lLnV0aWxzLnNjaCBwYWNrYWdlLy52ZXJzX2cxNTAgcGFja2FnZS8udmVyc19yMTUwIHBhY2thZ2UvLnZlcnNfYjE1MCBwYWNrYWdlLy52ZXJzX2MxNTAgcGFja2FnZS8ueGRjLXQzMiBwYWNrYWdlL2FjbWVfdXRpbHMuamF2YSBwYWNrYWdlL2FjbWVfdXRpbHMuY2xhc3MgcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYyBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEJlbmNoLmggcGFja2FnZS9pbnRlcm5hbC9CZW5jaC54ZGMuaCBwYWNrYWdlL0JlbmNoX1BDbG9jay5oIHBhY2thZ2UvaW50ZXJuYWwvQmVuY2hfUENsb2NrLnhkYy5oIHBhY2thZ2UvcGFja2FnZS5kb2MueG1sIHBhY2thZ2UvYWNtZS51dGlscy5jY3MgCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19nMTUwCitwYWNrYWdlLy52ZXJzX2cxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19yMTUwCitwYWNrYWdlLy52ZXJzX3IxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19iMTUwCitwYWNrYWdlLy52ZXJzX2IxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19jMTUwCitwYWNrYWdlLy52ZXJzX2MxNTA6CisKKy5pbnRlcmZhY2VzOiBCZW5jaC54ZGMgCisKKyMgc2NoZW1hIGluY2x1ZGUgZmlsZSBkZXBlbmRlbmNpZXMKK0JlbmNoLnhzOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBCZW5jaC54cw0KKworIyBzY2hlbWEgdXBkYXRlIGRlcGVuZGVuY2llcworcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEJlbmNoLnhkYw0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiB4ZGMvSVBhY2thZ2UueGRjDQoreGRjL0lQYWNrYWdlLnhkYzoNCit2cGF0aCB4ZGMvSVBhY2thZ2UueGRjICQoWFBLR1ZQQVRIKQ0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBhY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2sueGRjDQorYWNtZS91dGlscy9jbG9ja3MvSUNsb2NrLnhkYzoNCit2cGF0aCBhY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2sueGRjICQoWFBLR1ZQQVRIKQ0KKworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvanMuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvanMuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3hiZWFuLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3hiZWFuLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL3hzci9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi94c3IvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS90YXIuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvdGFyLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2NtZC9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9jbWQvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9hbnRsci5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9hbnRsci5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL3NwZWMvamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9zcGVjL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9nZW4vamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vZ2VuL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvZWNqLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2Vjai5qYXINCitlbmRpZgorIyBnb2FscyBmb3IgZmlsZXMgZ2VuZXJhdGVkIGR1cmluZyBzY2hlbWEgZ2VuZXJhdGlvbiBidXQgdW5zcGVjaWZpZWQgYnkgc2NoZW1hJ3MgcGF0dGVybiBydWxlCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogQmVuY2guaA0KK0JlbmNoLmg6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IHBhY2thZ2UvaW50ZXJuYWwvQmVuY2gueGRjLmgNCitwYWNrYWdlL2ludGVybmFsL0JlbmNoLnhkYy5oOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlL0JlbmNoX1BDbG9jay5oDQorcGFja2FnZS9CZW5jaF9QQ2xvY2suaDoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS9pbnRlcm5hbC9CZW5jaF9QQ2xvY2sueGRjLmgNCitwYWNrYWdlL2ludGVybmFsL0JlbmNoX1BDbG9jay54ZGMuaDoNCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4MjhmMGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jCkBAIC0wLDAgKzEsMTkgQEAKK3BhY2thZ2UueGRjDQorQmVuY2gueGRjDQorQmVuY2gueHMNCitwYWNrYWdlL2FjbWUudXRpbHMuc2NoDQorcGFja2FnZS8udmVyc19nMTUwDQorcGFja2FnZS8udmVyc19yMTUwDQorcGFja2FnZS8udmVyc19iMTUwDQorcGFja2FnZS8udmVyc19jMTUwDQorcGFja2FnZS8ueGRjLXQzMg0KK3BhY2thZ2UvYWNtZV91dGlscy5qYXZhDQorcGFja2FnZS9hY21lX3V0aWxzLmNsYXNzDQorcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYw0KK3BhY2thZ2UvcGFja2FnZS5kZWZzLmgNCitCZW5jaC5oDQorcGFja2FnZS9pbnRlcm5hbC9CZW5jaC54ZGMuaA0KK3BhY2thZ2UvQmVuY2hfUENsb2NrLmgNCitwYWNrYWdlL2ludGVybmFsL0JlbmNoX1BDbG9jay54ZGMuaA0KK3BhY2thZ2UvcGFja2FnZS5kb2MueG1sDQorcGFja2FnZS9hY21lLnV0aWxzLmNjcw0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlX2FjbWUudXRpbHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmIyMDM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vYWNtZS91dGlscy9wYWNrYWdlL3BhY2thZ2VfYWNtZS51dGlscy5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKK19fRkFSX18gY2hhciBhY21lX3V0aWxzX19kdW1teV9fOworCisjZGVmaW5lIF9feGRjX1BLR1ZFUlMgbnVsbAorI2RlZmluZSBfX3hkY19QS0dOQU1FIGFjbWUudXRpbHMKKyNkZWZpbmUgX194ZGNfUEtHUFJFRklYIGFjbWVfdXRpbHNfCisKKyNpZmRlZiBfX3hkY19ibGRfcGtnX2NfXworI2RlZmluZSBfX3N0cmluZ2lmeShhKSAjYQorI2RlZmluZSBfX2xvY2FsX2luY2x1ZGUoYSkgX19zdHJpbmdpZnkoYSkKKyNpbmNsdWRlIF9fbG9jYWxfaW5jbHVkZShfX3hkY19ibGRfcGtnX2NfXykKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvcmVsL2FjbWVfdXRpbHMueGRjLmluYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2FjbWUvdXRpbHMvcGFja2FnZS9yZWwvYWNtZV91dGlscy54ZGMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxOTkyZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9hY21lL3V0aWxzL3BhY2thZ2UvcmVsL2FjbWVfdXRpbHMueGRjLmluYwpAQCAtMCwwICsxLDggQEAKK3BhY2thZ2UvYnVpbGQuY2ZnCitwYWNrYWdlL3BhY2thZ2UuY2ZnLnhkYy5pbmMKK3BhY2thZ2UvcGFja2FnZS5leHQueG1sCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYworbGliL2FjbWUudXRpbHMuYTY0UAorcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKK2xpYi9hY21lLnV0aWxzLmE4NkdXCitwYWNrYWdlL3BhY2thZ2UucmVsLmRvdApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy5jcHJvamVjdCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi8uY3Byb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc4MTBkZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi8uY3Byb2plY3QKQEAgLTAsMCArMSwyNTIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPD9maWxlVmVyc2lvbiA0LjAuMD8+DQorDQorPGNwcm9qZWN0Pg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyI+DQorPGNjb25maWd1cmF0aW9uIGlkPSIwLjE0MTQ0NTc0NjciPg0KKzxzdG9yYWdlTW9kdWxlIGJ1aWxkU3lzdGVtSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmNvbmZpZ3VyYXRpb25EYXRhUHJvdmlkZXIiIGlkPSIwLjE0MTQ0NTc0NjciIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyIgbmFtZT0iRGVmYXVsdCI+DQorPGV4dGVybmFsU2V0dGluZ3MvPg0KKzxleHRlbnNpb25zPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLlZDRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkdBU0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5HTERFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuR0NDRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPC9leHRlbnNpb25zPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0iY2R0QnVpbGRTeXN0ZW0iIHZlcnNpb249IjQuMC4wIj4NCis8Y29uZmlndXJhdGlvbiBhcnRpZmFjdE5hbWU9ImNoYXJsaWUuc3FydGxpYiIgYnVpbGRQcm9wZXJ0aWVzPSIiIGRlc2NyaXB0aW9uPSIiIGlkPSIwLjE0MTQ0NTc0NjciIG5hbWU9IkRlZmF1bHQiIHBhcmVudD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUucHJlZmJhc2UuY2ZnIj4NCis8Zm9sZGVySW5mbyBpZD0iMC4xNDE0NDU3NDY3LiIgbmFtZT0iLyIgcmVzb3VyY2VQYXRoPSIiPg0KKzx0b29sQ2hhaW4gaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLnRvb2xjaGFpbi42MjMyMDY2NDQiIG5hbWU9Ik5vIFRvb2xDaGFpbiIgcmVzb3VyY2VUeXBlQmFzZWREaXNjb3Zlcnk9ImZhbHNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS50b29sY2hhaW4iPg0KKzx0YXJnZXRQbGF0Zm9ybSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUucHJlZmJhc2UudG9vbGNoYWluLjYyMzIwNjY0NC4xMjI4OTczNzYxIiBuYW1lPSIiLz4NCis8YnVpbGRlciBidWlsZFBhdGg9IiIgY29tbWFuZD0iJHtYRENST09UfS94ZGMiIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5kZWZhdWx0LmJ1aWxkZXIuNTAwNTA2NDYxIiBrZWVwRW52aXJvbm1lbnRJbkJ1aWxkZmlsZT0iZmFsc2UiIG1hbmFnZWRCdWlsZE9uPSJmYWxzZSIgbmFtZT0iR251IE1ha2UgQnVpbGRlciIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuZGVmYXVsdC5idWlsZGVyIi8+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5saWJzLjYyNzM3ODk2MSIgbmFtZT0iaG9sZGVyIGZvciBsaWJyYXJ5IHNldHRpbmdzIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIubGlicyIvPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuOTA5ODExODg5IiBuYW1lPSJHTlUgQysrIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuMTQ4MjczMzg5NCIgbGFuZ3VhZ2VJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZysrIiBsYW5ndWFnZU5hbWU9IkdOVSBDKysiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5jeHhTb3VyY2Usb3JnLmVjbGlwc2UuY2R0LmNvcmUuY3h4SGVhZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuMTY2ODgxODAxNCIgbmFtZT0iR05VIEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS4xMzk1NzI2MTY5IiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5nY2MiIGxhbmd1YWdlTmFtZT0iR05VIEMiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5jU291cmNlLG9yZy5lY2xpcHNlLmNkdC5jb3JlLmNIZWFkZXIiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUiLz4NCis8L3Rvb2w+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci4xNDIzMDYyMjYzIiBuYW1lPSJVUEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS4xNDI3NjIwNTA4IiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXJzZXIudXBjLnVwYyIgbGFuZ3VhZ2VOYW1lPSJVUEMiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXJzZXIudXBjLnVwY1NvdXJjZSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZSIvPg0KKzwvdG9vbD4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLjEzNDQ3NTM4NDEiIG5hbWU9IkFzc2VtYmx5IiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuMTY4NTgwNTE0MyIgbGFuZ3VhZ2VJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuYXNzZW1ibHkiIGxhbmd1YWdlTmFtZT0iQXNzZW1ibHkiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5hc21Tb3VyY2UiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUiLz4NCis8L3Rvb2w+DQorPC90b29sQ2hhaW4+DQorPC9mb2xkZXJJbmZvPg0KKzwvY29uZmlndXJhdGlvbj4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJ0cnVlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlckZpbGVQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJtYWtlZmlsZUdlbmVyYXRvciI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1mICR7cHJvamVjdF9uYW1lfV9zY2QubWsiIGNvbW1hbmQ9Im1ha2UiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci54bGMuY29yZS5YTENNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC12ICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSIke1hMX2NvbXBpbGVyUm9vdH0veGxDIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8c2Nhbm5lckNvbmZpZ0J1aWxkSW5mbyBpbnN0YW5jZUlkPSIwLjE0MTQ0NTc0NjciPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlckZpbGVQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJtYWtlZmlsZUdlbmVyYXRvciI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1mICR7cHJvamVjdF9uYW1lfV9zY2QubWsiIGNvbW1hbmQ9Im1ha2UiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci54bGMuY29yZS5YTENNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC12ICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSIke1hMX2NvbXBpbGVyUm9vdH0veGxDIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L3NjYW5uZXJDb25maWdCdWlsZEluZm8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5leHRlcm5hbFNldHRpbmdzIi8+DQorPC9jY29uZmlndXJhdGlvbj4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9ImNkdEJ1aWxkU3lzdGVtIiB2ZXJzaW9uPSI0LjAuMCI+DQorPHByb2plY3QgaWQ9ImNoYXJsaWUuc3FydGxpYi5udWxsLjExODc0MDg5OTEiIG5hbWU9ImNoYXJsaWUuc3FydGxpYiIvPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Nwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi8uZGxscyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi8uZGxscwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy5kbGxzCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvLmV4ZWN1dGFibGVzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy5leGVjdXRhYmxlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy5leGVjdXRhYmxlcwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy5pbnRlcmZhY2VzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy5pbnRlcmZhY2VzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvLmludGVyZmFjZXMKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi8ubGlicmFyaWVzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy5saWJyYXJpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi8ubGlicmFyaWVzCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvLnByb2plY3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWEwYmY4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi8ucHJvamVjdApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPmNoYXJsaWUuc3FydGxpYjwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmdlbm1ha2VidWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pj9uYW1lPzwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXV0b0J1aWxkVGFyZ2V0PC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZEFyZ3VtZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGRDb21tYW5kPC9rZXk+DQorCQkJCQk8dmFsdWU+JHtYRENST09UfS94ZGM8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkTG9jYXRpb248L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmNsZWFuQnVpbGRUYXJnZXQ8L2tleT4NCisJCQkJCTx2YWx1ZT5jbGVhbjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuY29udGVudHM8L2tleT4NCisJCQkJCTx2YWx1ZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFjdGl2ZUNvbmZpZ1NldHRpbmdzPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVBdXRvQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUZ1bGxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmZ1bGxCdWlsZFRhcmdldDwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS51c2VEZWZhdWx0QnVpbGRDbWQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5TY2FubmVyQ29uZmlnQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCTwvYnVpbGRTcGVjPg0KKwk8bmF0dXJlcz4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0LmNvcmUuY25hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5TY2FubmVyQ29uZmlnTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLm1hbmFnZWRCdWlsZE5hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy54ZGNlbnYubWFrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy54ZGNlbnYubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzN2Y5N2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSA0MAoraWZuZXEgKCwkKGZpbmRzdHJpbmcgcGF0aCwkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENQQVRIID0gCitvdmVycmlkZSBYRENST09UID0gRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5CitvdmVycmlkZSBYRENCVUlMRENGRyA9IC4uLy4uL2NvbmZpZy5ibGQKK2VuZGlmCitpZm5lcSAoLCQoZmluZHN0cmluZyBhcmdzLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ0FSR1MgPSAKK292ZXJyaWRlIFhEQ1RBUkdFVFMgPSAKK2VuZGlmCisjCitpZmVxICgwLDEpCitQS0dQQVRIID0gRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzOy4uLy4uCitIT1NUT1MgPSBXaW5kb3dzCitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL1NldHRpbmdzLnhkYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9TZXR0aW5ncy54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZkMjY2NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9TZXR0aW5ncy54ZGMKQEAgLTAsMCArMSwxMyBAQAorLyoNCisgKiAgPT09PT09PT0gY2hhcmxpZS9zcXJ0bGliL1NldHRpbmdzLnhkYyA9PT09PT09PQ0KKyAqLw0KKw0KK21ldGFvbmx5IG1vZHVsZSBTZXR0aW5ncyB7DQorDQorICAgIGVudW0gT3B0VHlwZSB7DQorICAgICAgICBPUFRJTUlaRV9GT1JfU1BBQ0UsDQorICAgICAgICBPUFRJTUlaRV9GT1JfVElNRQ0KKyAgICB9Ow0KKw0KKyAgICBjb25maWcgT3B0VHlwZSBvcHRpbWl6ZSA9IE9QVElNSVpFX0ZPUl9USU1FOw0KK30NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvaXNxcnQuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9pc3FydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxZDUxZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvaXNxcnQuaApAQCAtMCwwICsxLDUgQEAKKy8qDQorICogID09PT09PT09IGNoYXJsaWUvc3FydGxpYi9pc3FydC5oID09PT09PT09DQorICovDQorDQorZXh0ZXJuIHVuc2lnbmVkIGludCBpc3FydCggdW5zaWduZWQgbG9uZyB2YWwgKTsNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvaXNxcnRfbG9vcC5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2lzcXJ0X2xvb3AuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmY1Y2E2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2lzcXJ0X2xvb3AuYwpAQCAtMCwwICsxLDEwIEBACit1bnNpZ25lZCBpbnQgaXNxcnQoIHVuc2lnbmVkIGxvbmcgdmFsICkgew0KKyAgICB1bnNpZ25lZCBsb25nIHRlbXAsIGcgPSAwLCBiID0gMHg4MDAwLCBic2hmdCA9IDE1Ow0KKyAgICBkbyB7DQorICAgICAgICBpZiAodmFsID49ICh0ZW1wID0gKCgoZyA8PCAxKSArIGIpIDw8IGJzaGZ0LS0pKSkgew0KKyAgICAgICAgICAgZyArPSBiOw0KKyAgICAgICAgICAgdmFsIC09IHRlbXA7DQorICAgICAgICB9DQorICAgIH0gd2hpbGUgKGIgPj49IDEpOw0KKyAgICByZXR1cm4gZzsNCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2lzcXJ0X3Vucm9sbC5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2lzcXJ0X3Vucm9sbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlYjNlMWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvaXNxcnRfdW5yb2xsLmMKQEAgLTAsMCArMSw4MCBAQAordW5zaWduZWQgaW50IGlzcXJ0KCB1bnNpZ25lZCBsb25nIHggKSB7DQorICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHNxcV90YWJsZVtdID0gew0KKyAgICAgICAwLCAgMTYsICAyMiwgIDI3LCAgMzIsICAzNSwgIDM5LCAgNDIsICA0NSwgIDQ4LCAgNTAsICA1MywgIDU1LCAgNTcsDQorICAgICAgNTksICA2MSwgIDY0LCAgNjUsICA2NywgIDY5LCAgNzEsICA3MywgIDc1LCAgNzYsICA3OCwgIDgwLCAgODEsICA4MywNCisgICAgICA4NCwgIDg2LCAgODcsICA4OSwgIDkwLCAgOTEsICA5MywgIDk0LCAgOTYsICA5NywgIDk4LCAgOTksIDEwMSwgMTAyLA0KKyAgICAgMTAzLCAxMDQsIDEwNiwgMTA3LCAxMDgsIDEwOSwgMTEwLCAxMTIsIDExMywgMTE0LCAxMTUsIDExNiwgMTE3LCAxMTgsDQorICAgICAxMTksIDEyMCwgMTIxLCAxMjIsIDEyMywgMTI0LCAxMjUsIDEyNiwgMTI4LCAxMjgsIDEyOSwgMTMwLCAxMzEsIDEzMiwNCisgICAgIDEzMywgMTM0LCAxMzUsIDEzNiwgMTM3LCAxMzgsIDEzOSwgMTQwLCAxNDEsIDE0MiwgMTQzLCAxNDQsIDE0NCwgMTQ1LA0KKyAgICAgMTQ2LCAxNDcsIDE0OCwgMTQ5LCAxNTAsIDE1MCwgMTUxLCAxNTIsIDE1MywgMTU0LCAxNTUsIDE1NSwgMTU2LCAxNTcsDQorICAgICAxNTgsIDE1OSwgMTYwLCAxNjAsIDE2MSwgMTYyLCAxNjMsIDE2MywgMTY0LCAxNjUsIDE2NiwgMTY3LCAxNjcsIDE2OCwNCisgICAgIDE2OSwgMTcwLCAxNzAsIDE3MSwgMTcyLCAxNzMsIDE3MywgMTc0LCAxNzUsIDE3NiwgMTc2LCAxNzcsIDE3OCwgMTc4LA0KKyAgICAgMTc5LCAxODAsIDE4MSwgMTgxLCAxODIsIDE4MywgMTgzLCAxODQsIDE4NSwgMTg1LCAxODYsIDE4NywgMTg3LCAxODgsDQorICAgICAxODksIDE4OSwgMTkwLCAxOTEsIDE5MiwgMTkyLCAxOTMsIDE5MywgMTk0LCAxOTUsIDE5NSwgMTk2LCAxOTcsIDE5NywNCisgICAgIDE5OCwgMTk5LCAxOTksIDIwMCwgMjAxLCAyMDEsIDIwMiwgMjAzLCAyMDMsIDIwNCwgMjA0LCAyMDUsIDIwNiwgMjA2LA0KKyAgICAgMjA3LCAyMDgsIDIwOCwgMjA5LCAyMDksIDIxMCwgMjExLCAyMTEsIDIxMiwgMjEyLCAyMTMsIDIxNCwgMjE0LCAyMTUsDQorICAgICAyMTUsIDIxNiwgMjE3LCAyMTcsIDIxOCwgMjE4LCAyMTksIDIxOSwgMjIwLCAyMjEsIDIyMSwgMjIyLCAyMjIsIDIyMywNCisgICAgIDIyNCwgMjI0LCAyMjUsIDIyNSwgMjI2LCAyMjYsIDIyNywgMjI3LCAyMjgsIDIyOSwgMjI5LCAyMzAsIDIzMCwgMjMxLA0KKyAgICAgMjMxLCAyMzIsIDIzMiwgMjMzLCAyMzQsIDIzNCwgMjM1LCAyMzUsIDIzNiwgMjM2LCAyMzcsIDIzNywgMjM4LCAyMzgsDQorICAgICAyMzksIDI0MCwgMjQwLCAyNDEsIDI0MSwgMjQyLCAyNDIsIDI0MywgMjQzLCAyNDQsIDI0NCwgMjQ1LCAyNDUsIDI0NiwNCisgICAgIDI0NiwgMjQ3LCAyNDcsIDI0OCwgMjQ4LCAyNDksIDI0OSwgMjUwLCAyNTAsIDI1MSwgMjUxLCAyNTIsIDI1MiwgMjUzLA0KKyAgICAgMjUzLCAyNTQsIDI1NCwgMjU1DQorICAgIH07DQorDQorICAgIHVuc2lnbmVkIGxvbmcgeG47DQorDQorICAgIGlmICh4ID49IDB4MTAwMDApDQorICAgICAgICBpZiAoeCA+PSAweDEwMDAwMDApDQorICAgICAgICAgICAgaWYgKHggPj0gMHgxMDAwMDAwMCkNCisgICAgICAgICAgICAgICAgaWYgKHggPj0gMHg0MDAwMDAwMCkgew0KKyAgICAgICAgICAgICAgICAgICAgaWYgKHggPj0gNjU1MzVVTCo2NTUzNVVMKQ0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA2NTUzNTsNCisgICAgICAgICAgICAgICAgICAgIHhuID0gc3FxX3RhYmxlW3g+PjI0XSA8PCA4Ow0KKyAgICAgICAgICAgICAgICB9IGVsc2UNCisgICAgICAgICAgICAgICAgICAgIHhuID0gc3FxX3RhYmxlW3g+PjIyXSA8PCA3Ow0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgaWYgKHggPj0gMHg0MDAwMDAwKQ0KKyAgICAgICAgICAgICAgICAgICAgeG4gPSBzcXFfdGFibGVbeD4+MjBdIDw8IDY7DQorICAgICAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgICAgIHhuID0gc3FxX3RhYmxlW3g+PjE4XSA8PCA1Ow0KKyAgICAgICAgZWxzZSB7DQorICAgICAgICAgICAgaWYgKHggPj0gMHgxMDAwMDApDQorICAgICAgICAgICAgICAgIGlmICh4ID49IDB4NDAwMDAwKQ0KKyAgICAgICAgICAgICAgICAgICAgeG4gPSBzcXFfdGFibGVbeD4+MTZdIDw8IDQ7DQorICAgICAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgICAgIHhuID0gc3FxX3RhYmxlW3g+PjE0XSA8PCAzOw0KKyAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgaWYgKHggPj0gMHg0MDAwMCkNCisgICAgICAgICAgICAgICAgICAgIHhuID0gc3FxX3RhYmxlW3g+PjEyXSA8PCAyOw0KKyAgICAgICAgICAgICAgICBlbHNlDQorICAgICAgICAgICAgICAgICAgICB4biA9IHNxcV90YWJsZVt4Pj4xMF0gPDwgMTsNCisNCisgICAgICAgICAgICBnb3RvIG5yMTsNCisgICAgICAgIH0NCisgICAgZWxzZQ0KKyAgICAgICAgaWYgKHggPj0gMHgxMDApIHsNCisgICAgICAgICAgICBpZiAoeCA+PSAweDEwMDApDQorICAgICAgICAgICAgICAgIGlmICh4ID49IDB4NDAwMCkNCisgICAgICAgICAgICAgICAgICAgIHhuID0gKHNxcV90YWJsZVt4Pj44XSA+PiAwKSArIDE7DQorICAgICAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgICAgIHhuID0gKHNxcV90YWJsZVt4Pj42XSA+PiAxKSArIDE7DQorICAgICAgICAgICAgZWxzZQ0KKyAgICAgICAgICAgICAgICBpZiAoeCA+PSAweDQwMCkNCisgICAgICAgICAgICAgICAgICAgIHhuID0gKHNxcV90YWJsZVt4Pj40XSA+PiAyKSArIDE7DQorICAgICAgICAgICAgICAgIGVsc2UNCisgICAgICAgICAgICAgICAgICAgIHhuID0gKHNxcV90YWJsZVt4Pj4yXSA+PiAzKSArIDE7DQorDQorICAgICAgICAgICAgZ290byBhZGo7DQorICAgICAgICB9IGVsc2UNCisgICAgICAgICAgICByZXR1cm4gc3FxX3RhYmxlW3hdID4+IDQ7DQorDQorICAgIHhuID0gKHhuICsgMSArIHggLyB4bikgLyAyOw0KK25yMToNCisgICAgeG4gPSAoeG4gKyAxICsgeCAvIHhuKSAvIDI7DQorYWRqOg0KKw0KKyAgICBpZiAoeG4gKiB4biA+IHgpDQorICAgICAgIHhuLS07DQorDQorICAgIHJldHVybiB4bjsNCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF9sb29wLmE2NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvbGliL2lzcXJ0X2xvb3AuYTY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTQ4ZmIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF9sb29wLmE2NFAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF9sb29wLmE2NFAubWFrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF9sb29wLmE2NFAubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwMDI3MTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvbGliL2lzcXJ0X2xvb3AuYTY0UC5tYWsKQEAgLTAsMCArMSw3NyBAQAorIworIyAgRG8gbm90IGVkaXQgdGhpcyBmaWxlLiAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIAorIyAgcGFja2FnZS5ibGQuICBBbnkgbW9kaWZpY2F0aW9ucyB0byB0aGlzIGZpbGUgd2lsbCBiZSAKKyMgIG92ZXJ3cml0dGVuIHdoZW5ldmVyIG1ha2VmaWxlcyBhcmUgcmUtZ2VuZXJhdGVkLgorIworIyAgdGFyZ2V0IGNvbXBhdGliaWxpdHkga2V5ID0gdGkudGFyZ2V0cy5DNjRQezEsMCw2LjEsNQorIworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3AubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3AubzY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vNjRQOiBpc3FydF9sb29wLmMgbGliL2lzcXJ0X2xvb3AuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AgLWZyPS4vcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AgLWZyPS4vcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm82NFA6Q19ESVI9CitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm82NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5zNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLnM2NFA6IGlzcXJ0X2xvb3AuYyBsaWIvaXNxcnRfbG9vcC5hNjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgLW4gJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcCAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcCAtZmMgJDwKKwkkKE1LREVQKSAtYSAkQC5kZXAgLXAgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AgLXMgbzY0UCAkPCAtQyAgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcCAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcAorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3AuczY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3AuczY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLnM2NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQLmRlcAorZW5kaWYKKworcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFA6IHBhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYyBsaWIvaXNxcnRfbG9vcC5hNjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UgLXMgbzY0UCAkPCAtQyAgIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFA6Q19ESVI9CitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM2NFA6IHBhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYyBsaWIvaXNxcnRfbG9vcC5hNjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgLW4gJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UgLXMgbzY0UCAkPCAtQyAgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM2NFA6Q19ESVI9CitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworY2xlYW4sNjRQIDo6CisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3AubzY0UAorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFAKKwktJChSTSkgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5zNjRQCisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczY0UAorCitsaWIvaXNxcnRfbG9vcC5hNjRQOiBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm82NFAgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQIGxpYi9pc3FydF9sb29wLmE2NFAubWFrCisKK2NsZWFuOjoKKwktJChSTSkgbGliL2lzcXJ0X2xvb3AuYTY0UC5tYWsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfbG9vcC5hODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfbG9vcC5hODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOWIzYWVlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF9sb29wLmE4NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfbG9vcC5hODZHVy5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvbGliL2lzcXJ0X2xvb3AuYTg2R1cubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzYmRlMzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvbGliL2lzcXJ0X2xvb3AuYTg2R1cubWFrCkBAIC0wLDAgKzEsNzcgQEAKKyMKKyMgIERvIG5vdCBlZGl0IHRoaXMgZmlsZS4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSAKKyMgIHBhY2thZ2UuYmxkLiAgQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBmaWxlIHdpbGwgYmUgCisjICBvdmVyd3JpdHRlbiB3aGVuZXZlciBtYWtlZmlsZXMgYXJlIHJlLWdlbmVyYXRlZC4KKyMKKyMgIHRhcmdldCBjb21wYXRpYmlsaXR5IGtleSA9IGdudS50YXJnZXRzLk1pbmd3ezEsMCwzLjQsNQorIworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3Aubzg2R1cuZGVwCitlbmRpZgorCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm84NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm84NkdXOiBpc3FydF9sb29wLmMgbGliL2lzcXJ0X2xvb3AuYTg2R1cubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDg2R1cgJDwgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAtYyAgLXggYyAgLVd1bnVzZWQgIC1EZmFyPSAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAgLW8gJEAgJDwKKwkkKE1LREVQKSAtbyAkQC5kZXAgLXAgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vODZHVzpMRF9MSUJSQVJZX1BBVEg9CitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm84NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3Aubzg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLnM4NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLnM4NkdXOiBpc3FydF9sb29wLmMgbGliL2lzcXJ0X2xvb3AuYTg2R1cubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDg2R1cgLVMgJDwgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAtYyAgLXggYyAtUyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLnM4NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3Auczg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5zODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXLmRlcAorZW5kaWYKKworcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVzogcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5jIGxpYi9pc3FydF9sb29wLmE4NkdXLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w4NkdXICQ8IC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgLWMgIC14IGMgIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgIC1vICRAICQ8CisJJChNS0RFUCkgLW8gJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVzpMRF9MSUJSQVJZX1BBVEg9CitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM4NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM4NkdXOiBwYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLmMgbGliL2lzcXJ0X2xvb3AuYTg2R1cubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDg2R1cgLVMgJDwgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAtYyAgLXggYyAtUyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlLyAtcyBvODZHVyAkPCAtQyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpIAorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM4NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworY2xlYW4sODZHVyA6OgorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm84NkdXCisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzg2R1cKKwktJChSTSkgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5zODZHVworCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM4NkdXCisKK2xpYi9pc3FydF9sb29wLmE4NkdXOiBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm84NkdXIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzg2R1cgbGliL2lzcXJ0X2xvb3AuYTg2R1cubWFrCisKK2NsZWFuOjoKKwktJChSTSkgbGliL2lzcXJ0X2xvb3AuYTg2R1cubWFrCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvbGliL2lzcXJ0X3Vucm9sbC5hNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF91bnJvbGwuYTY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTFlMjE4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF91bnJvbGwuYTY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvbGliL2lzcXJ0X3Vucm9sbC5hNjRQLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfdW5yb2xsLmE2NFAubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxODQ5OTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvbGliL2lzcXJ0X3Vucm9sbC5hNjRQLm1hawpAQCAtMCwwICsxLDc3IEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisjICB0YXJnZXQgY29tcGF0aWJpbGl0eSBrZXkgPSB0aS50YXJnZXRzLkM2NFB7MSwwLDYuMSw1CisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm82NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm82NFA6IGlzcXJ0X3Vucm9sbC5jIGxpYi9pc3FydF91bnJvbGwuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbCAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbCAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm82NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLnM2NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLnM2NFA6IGlzcXJ0X3Vucm9sbC5jIGxpYi9pc3FydF91bnJvbGwuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQIC1uICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbCAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbCAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwuczY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLnM2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwuczY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UDogcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5jIGxpYi9pc3FydF91bnJvbGwuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZSAtZmMgJDwKKwkkKE1LREVQKSAtYSAkQC5kZXAgLXAgcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZQorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQOkNfRElSPQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM2NFA6IHBhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYyBsaWIvaXNxcnRfdW5yb2xsLmE2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAtbiAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZSAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZSAtcyBvNjRQICQ8IC1DICAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZSAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworY2xlYW4sNjRQIDo6CisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm82NFAKKwktJChSTSkgcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFAKKwktJChSTSkgcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwuczY0UAorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczY0UAorCitsaWIvaXNxcnRfdW5yb2xsLmE2NFA6IHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm82NFAgcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFAgbGliL2lzcXJ0X3Vucm9sbC5hNjRQLm1haworCitjbGVhbjo6CisJLSQoUk0pIGxpYi9pc3FydF91bnJvbGwuYTY0UC5tYWsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfdW5yb2xsLmE4NkdXIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF91bnJvbGwuYTg2R1cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTVlMzFiMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfdW5yb2xsLmE4NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfdW5yb2xsLmE4NkdXLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfdW5yb2xsLmE4NkdXLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOTNkMDgyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF91bnJvbGwuYTg2R1cubWFrCkBAIC0wLDAgKzEsNzcgQEAKKyMKKyMgIERvIG5vdCBlZGl0IHRoaXMgZmlsZS4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSAKKyMgIHBhY2thZ2UuYmxkLiAgQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBmaWxlIHdpbGwgYmUgCisjICBvdmVyd3JpdHRlbiB3aGVuZXZlciBtYWtlZmlsZXMgYXJlIHJlLWdlbmVyYXRlZC4KKyMKKyMgIHRhcmdldCBjb21wYXRpYmlsaXR5IGtleSA9IGdudS50YXJnZXRzLk1pbmd3ezEsMCwzLjQsNQorIworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm84NkdXLmRlcAorZW5kaWYKKworcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm84NkdXOiBpc3FydF91bnJvbGwuYyBsaWIvaXNxcnRfdW5yb2xsLmE4NkdXLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w4NkdXICQ8IC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgLWMgIC14IGMgIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgIC1vICRAICQ8CisJJChNS0RFUCkgLW8gJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5zODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwuczg2R1c6IGlzcXJ0X3Vucm9sbC5jIGxpYi9pc3FydF91bnJvbGwuYTg2R1cubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDg2R1cgLVMgJDwgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAtYyAgLXggYyAtUyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsLyAtcyBvODZHVyAkPCAtQyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpIAorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLnM4NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLnM4NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLnM4NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXOiBwYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLmMgbGliL2lzcXJ0X3Vucm9sbC5hODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjICAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zODZHVzogcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5jIGxpYi9pc3FydF91bnJvbGwuYTg2R1cubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDg2R1cgLVMgJDwgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAtYyAgLXggYyAtUyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM4NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitjbGVhbiw4NkdXIDo6CisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm84NkdXCisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVworCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5zODZHVworCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczg2R1cKKworbGliL2lzcXJ0X3Vucm9sbC5hODZHVzogcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzg2R1cgcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXIGxpYi9pc3FydF91bnJvbGwuYTg2R1cubWFrCisKK2NsZWFuOjoKKwktJChSTSkgbGliL2lzcXJ0X3Vucm9sbC5hODZHVy5tYWsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLmJsZCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTBkMjU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UuYmxkCkBAIC0wLDAgKzEsMTEgQEAKKy8qDQorICogID09PT09PT09IGNoYXJsaWUvc3FydGxpYi9wYWNrYWdlLmJsZCA9PT09PT09PQ0KKyAqLw0KKw0KK3ZhciBCdWlsZCA9IHhkYy51c2VNb2R1bGUoJ3hkYy5ibGQuQnVpbGRFbnZpcm9ubWVudCcpOw0KK3ZhciBQa2cgPSB4ZGMudXNlTW9kdWxlKCd4ZGMuYmxkLlBhY2thZ2VDb250ZW50cycpOw0KKyANCitmb3IgZWFjaCAodmFyIHRhcmcgaW4gQnVpbGQudGFyZ2V0cykgew0KKyAgICBQa2cuYWRkTGlicmFyeSgibGliL2lzcXJ0X2xvb3AiLCB0YXJnKS5hZGRPYmplY3RzKFsiaXNxcnRfbG9vcC5jIl0pOw0KKyAgICBQa2cuYWRkTGlicmFyeSgibGliL2lzcXJ0X3Vucm9sbCIsIHRhcmcpLmFkZE9iamVjdHMoWyJpc3FydF91bnJvbGwuYyJdKTsNCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UubWFrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyNmE4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS5tYWsKQEAgLTAsMCArMSwzMTUgQEAKKyMKKyMgIERvIG5vdCBlZGl0IHRoaXMgZmlsZS4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSAKKyMgIHBhY2thZ2UuYmxkLiAgQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBmaWxlIHdpbGwgYmUgCisjICBvdmVyd3JpdHRlbiB3aGVuZXZlciBtYWtlZmlsZXMgYXJlIHJlLWdlbmVyYXRlZC4KKyMKKwordW5leHBvcnQgTUFLRUZJTEVfTElTVAorb3ZlcnJpZGUgUEtHRElSID0gY2hhcmxpZS9zcXJ0bGliCitYRENJTkNTID0gLUkuIC1JJChzdHJpcCAkKHN1YnN0IDssIC1JLCQoc3Vic3QgJChzcGFjZSksXCQoc3BhY2UpLCQoWFBLR1BBVEgpKSkpCitYRENDRkdESVIgPSBwYWNrYWdlL2NmZy8KKworIworIyBUaGUgZm9sbG93aW5nIGRlcGVuZGVuY2llcyBlbnN1cmUgcGFja2FnZS5tYWsgaXMgcmVidWlsdAorIyBpbiB0aGUgZXZlbnQgdGhhdCBzb21lIGluY2x1ZGVkIEJPTSBzY3JpcHQgY2hhbmdlcy4KKyMKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvSVRhcmdldC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvSVRhcmdldC54cworRDovd29yay90dXRvcmlhbC9yZXBvL2NvbmZpZy5ibGQ6CitwYWNrYWdlLm1hazogRDovd29yay90dXRvcmlhbC9yZXBvL2NvbmZpZy5ibGQKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9QYWNrYWdlQ29udGVudHMueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUGFja2FnZUNvbnRlbnRzLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0xpbnV4ODYueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0xpbnV4ODYueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvSVRhcmdldC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL01pbmd3LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9NaW5ndy54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvcGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9wYWNrYWdlLnhzCitwYWNrYWdlLm1hazogcGFja2FnZS5ibGQKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9NVkFybTkueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL01WQXJtOS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL1VDQXJtOS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvVUNBcm05LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL01TUDQzMC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9NU1A0MzAueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvcGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvX2dlbi54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9fZ2VuLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9JVGFyZ2V0LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1JlcG9zaXRvcnkueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUmVwb3NpdG9yeS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9TY3JpcHQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvU2NyaXB0LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9CdWlsZEVudmlyb25tZW50LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0J1aWxkRW52aXJvbm1lbnQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0xpYnJhcnkueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvTGlicmFyeS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9VdGlscy54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9VdGlscy54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0V4ZWN1dGFibGUueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvRXhlY3V0YWJsZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldEZpbHRlci54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9JVGFyZ2V0RmlsdGVyLnhzCitlbmRpZgorCit0aS50YXJnZXRzLkM2NFAucm9vdERpciA/PSBkOi90aS9jNjAwMC9hbGMKK3RpLnRhcmdldHMucGFja2FnZUJhc2UgPz0gRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvCitnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyID89IGU6L3J0c2MvbWluZ3cKK2dudS50YXJnZXRzLnBhY2thZ2VCYXNlID89IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy8KKy5QUkVDSU9VUzogJChYRENDRkdESVIpLyUubzY0UAorLlBIT05ZOiBhbGwsNjRQIC5kbGxzLDY0UCAuZXhlY3V0YWJsZXMsNjRQIHRlc3QsNjRQCithbGwsNjRQOiAuZXhlY3V0YWJsZXMsNjRQCisuZXhlY3V0YWJsZXMsNjRQOiAubGlicmFyaWVzLDY0UAorLmV4ZWN1dGFibGVzLDY0UDogLmRsbHMsNjRQCisuZGxscyw2NFA6IC5saWJyYXJpZXMsNjRQCisubGlicmFyaWVzLDY0UDogLmludGVyZmFjZXMKKwlAJChSTSkgJEAKKwlAJChUT1VDSCkgIiRAIgorCisuaGVscDo6CisJQCQoRUNITykgeGRjIHRlc3QsNjRQCisJQCQoRUNITykgeGRjIC5leGVjdXRhYmxlcyw2NFAKKwlAJChFQ0hPKSB4ZGMgLmxpYnJhcmllcyw2NFAKKwlAJChFQ0hPKSB4ZGMgLmRsbHMsNjRQCisKKy5QUkVDSU9VUzogJChYRENDRkdESVIpLyUubzg2R1cKKy5QSE9OWTogYWxsLDg2R1cgLmRsbHMsODZHVyAuZXhlY3V0YWJsZXMsODZHVyB0ZXN0LDg2R1cKK2FsbCw4NkdXOiAuZXhlY3V0YWJsZXMsODZHVworLmV4ZWN1dGFibGVzLDg2R1c6IC5saWJyYXJpZXMsODZHVworLmV4ZWN1dGFibGVzLDg2R1c6IC5kbGxzLDg2R1cKKy5kbGxzLDg2R1c6IC5saWJyYXJpZXMsODZHVworLmxpYnJhcmllcyw4NkdXOiAuaW50ZXJmYWNlcworCUAkKFJNKSAkQAorCUAkKFRPVUNIKSAiJEAiCisKKy5oZWxwOjoKKwlAJChFQ0hPKSB4ZGMgdGVzdCw4NkdXCisJQCQoRUNITykgeGRjIC5leGVjdXRhYmxlcyw4NkdXCisJQCQoRUNITykgeGRjIC5saWJyYXJpZXMsODZHVworCUAkKEVDSE8pIHhkYyAuZGxscyw4NkdXCisKKworYWxsOiAuZXhlY3V0YWJsZXMgCisuZXhlY3V0YWJsZXM6IC5saWJyYXJpZXMgLmRsbHMKKy5saWJyYXJpZXM6IC5pbnRlcmZhY2VzCisKK1BLR0NGR1MgOj0gJCh3aWxkY2FyZCBwYWNrYWdlLnhzKSBwYWNrYWdlL2J1aWxkLmNmZworLmludGVyZmFjZXM6IHBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggcGFja2FnZS54ZGMgJChQS0dDRkdTKQorCistaW5jbHVkZSBwYWNrYWdlL3BhY2thZ2UueGRjLmRlcAorcGFja2FnZS8lLnhkYy5pbmMgcGFja2FnZS8lX2NoYXJsaWUuc3FydGxpYi5jIHBhY2thZ2UvJS5kZWZzLmg6ICUueGRjICQoUEtHQ0ZHUykKKwlAJChNU0cpIGdlbmVyYXRpbmcgaW50ZXJmYWNlcyBmb3IgcGFja2FnZSBjaGFybGllLnNxcnRsaWIiIChiZWNhdXNlICRAIGlzIG9sZGVyIHRoYW4gJChmaXJzdHdvcmQgJD8pKSIgLi4uCisJJChYU1JVTikgLWYgeGRjL3NlcnZpY2VzL2ludGVybi9jbWQvYnVpbGQueHMgJChNS19JRExPUFRTKSAtbSBwYWNrYWdlL3BhY2thZ2UueGRjLmRlcCAtaSBwYWNrYWdlL3BhY2thZ2UueGRjLmluYyBwYWNrYWdlLnhkYworCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9wYWNrYWdlLmNmZy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvcGFja2FnZS5leHQueG1sOiBwYWNrYWdlL3BhY2thZ2UuY2ZnLnhkYy5pbmMKK3BhY2thZ2UvcGFja2FnZS5jZmcueGRjLmluYzogJChYRENST09UKS9wYWNrYWdlcy94ZGMvY2ZnL2NmZ2luYy5qcyBwYWNrYWdlLnhkYworCUAkKE1TRykgZ2VuZXJhdGluZyBzY2hlbWEgaW5jbHVkZSBmaWxlIGxpc3QgLi4uCisJJChDT05GSUcpIC1mICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2NmZy9jZmdpbmMuanMgY2hhcmxpZS5zcXJ0bGliICRACisKKy5saWJyYXJpZXMsNjRQIC5saWJyYXJpZXM6IGxpYi9pc3FydF91bnJvbGwuYTY0UAorCistaW5jbHVkZSBsaWIvaXNxcnRfdW5yb2xsLmE2NFAubWFrCitsaWIvaXNxcnRfdW5yb2xsLmE2NFA6IAorCSQoUk0pICRACisJQCQoTVNHKSBhcmNoaXZpbmcgcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzY0UCBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UCAgaW50byAkQCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vYXI2eCAgcnEgJEAgICBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5vNjRQIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQIAorbGliL2lzcXJ0X3Vucm9sbC5hNjRQOkNfRElSPQorbGliL2lzcXJ0X3Vucm9sbC5hNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK2xpYi9pc3FydF91bnJvbGwuYTY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2NsZWFuLDY0UCBjbGVhbjo6CisJLSQoUk0pIGxpYi9pc3FydF91bnJvbGwuYTY0UAorLmxpYnJhcmllcyw4NkdXIC5saWJyYXJpZXM6IGxpYi9pc3FydF9sb29wLmE4NkdXCisKKy1pbmNsdWRlIGxpYi9pc3FydF9sb29wLmE4NkdXLm1haworbGliL2lzcXJ0X2xvb3AuYTg2R1c6IAorCSQoUk0pICRACisJQCQoTVNHKSBhcmNoaXZpbmcgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vODZHVyBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXICBpbnRvICRAIC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvbWluZ3czMi9iaW4vYXIgIGNyICRAICAgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vODZHVyBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXIAorbGliL2lzcXJ0X2xvb3AuYTg2R1c6TERfTElCUkFSWV9QQVRIPQorbGliL2lzcXJ0X2xvb3AuYTg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorbGliL2lzcXJ0X2xvb3AuYTg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitjbGVhbiw4NkdXIGNsZWFuOjoKKwktJChSTSkgbGliL2lzcXJ0X2xvb3AuYTg2R1cKKy5saWJyYXJpZXMsNjRQIC5saWJyYXJpZXM6IGxpYi9pc3FydF9sb29wLmE2NFAKKworLWluY2x1ZGUgbGliL2lzcXJ0X2xvb3AuYTY0UC5tYWsKK2xpYi9pc3FydF9sb29wLmE2NFA6IAorCSQoUk0pICRACisJQCQoTVNHKSBhcmNoaXZpbmcgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vNjRQIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UCAgaW50byAkQCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vYXI2eCAgcnEgJEAgICBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm82NFAgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQIAorbGliL2lzcXJ0X2xvb3AuYTY0UDpDX0RJUj0KK2xpYi9pc3FydF9sb29wLmE2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorbGliL2lzcXJ0X2xvb3AuYTY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2NsZWFuLDY0UCBjbGVhbjo6CisJLSQoUk0pIGxpYi9pc3FydF9sb29wLmE2NFAKKy5saWJyYXJpZXMsODZHVyAubGlicmFyaWVzOiBsaWIvaXNxcnRfdW5yb2xsLmE4NkdXCisKKy1pbmNsdWRlIGxpYi9pc3FydF91bnJvbGwuYTg2R1cubWFrCitsaWIvaXNxcnRfdW5yb2xsLmE4NkdXOiAKKwkkKFJNKSAkQAorCUAkKE1TRykgYXJjaGl2aW5nIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm84NkdXIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVyAgaW50byAkQCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL21pbmd3MzIvYmluL2FyICBjciAkQCAgIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm84NkdXIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVyAKK2xpYi9pc3FydF91bnJvbGwuYTg2R1c6TERfTElCUkFSWV9QQVRIPQorbGliL2lzcXJ0X3Vucm9sbC5hODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitsaWIvaXNxcnRfdW5yb2xsLmE4NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworY2xlYW4sODZHVyBjbGVhbjo6CisJLSQoUk0pIGxpYi9pc3FydF91bnJvbGwuYTg2R1cKK3Rlc3Q6OworJSxjb3B5OgorCUAkKGlmICQ8LCwkKE1TRykgZG9uXCd0IGtub3cgaG93IHRvIGJ1aWxkICQqOyBleGl0IDEpCisJQCQoTVNHKSBjcCAkPCAkQAorCSQoUk0pICRACisJJChDUCkgJDwgJEAKK2lzcXJ0X2xvb3Auczg2R1csY29weSA6IHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3Auczg2R1cKKy5QSE9OWTogcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzg2R1csY29weQorcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzg2R1csY29weSA6IHBhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXLDAsY29weSBwYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVywxLGNvcHkgCisJQAorCitwYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVywwLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXCitwYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVywxLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzg2R1cKK2lzcXJ0X2xvb3AubzY0UCxjb3B5IDogcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vNjRQCitpc3FydF9sb29wLnM2NFAsY29weSA6IHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3AuczY0UAoraXNxcnRfdW5yb2xsLm84NkdXLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5vODZHVworaXNxcnRfdW5yb2xsLm82NFAsY29weSA6IHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm82NFAKK2lzcXJ0X3Vucm9sbC5zNjRQLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5zNjRQCisuUEhPTlk6IHBhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFAsY29weQorcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UCxjb3B5IDogcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UCwwLGNvcHkgcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UCwxLGNvcHkgCisJQAorCitwYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQLDAsY29weSA6IHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UAorcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UCwxLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UAorLlBIT05ZOiBwYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zNjRQLGNvcHkKK3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM2NFAsY29weSA6IHBhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM2NFAsMCxjb3B5IHBhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM2NFAsMSxjb3B5IAorCUAKKworcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczY0UCwwLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM2NFAKK3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM2NFAsMSxjb3B5IDogcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM2NFAKKy5QSE9OWTogcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczg2R1csY29weQorcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczg2R1csY29weSA6IHBhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM4NkdXLDAsY29weSBwYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zODZHVywxLGNvcHkgCisJQAorCitwYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zODZHVywwLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLnM4NkdXCitwYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5zODZHVywxLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuczg2R1cKK2lzcXJ0X2xvb3Aubzg2R1csY29weSA6IHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3Aubzg2R1cKK2lzcXJ0X3Vucm9sbC5zODZHVyxjb3B5IDogcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwuczg2R1cKKworJChYRENDRkdESVIpJS5jICQoWERDQ0ZHRElSKSUuaCAkKFhEQ0NGR0RJUiklLnhkbDogJChYRENDRkdESVIpJS5jZmcgLmludGVyZmFjZXMgJChYRENST09UKS9wYWNrYWdlcy94ZGMvY2ZnL01haW4ueHMKKwlAJChNU0cpICJjb25maWd1cmluZyAkKF9QUk9HX05BTUUpIGZyb20gJDwgLi4uIgorCSQoQ09ORklHKSAkKF9QUk9HX1hTT1BUUykgeGRjLmNmZyAkKF9QUk9HX05BTUUpICQoWERDQ0ZHRElSKSQqLmNmZyAkKFhEQ0NGR0RJUikkKgorCisuUEhPTlk6IHJlbGVhc2UsY2hhcmxpZV9zcXJ0bGliCitjaGFybGllX3NxcnRsaWIudGFyOiBwYWNrYWdlL3BhY2thZ2UuY2ZnLnhkYy5pbmMKK2NoYXJsaWVfc3FydGxpYi50YXI6IGxpYi9pc3FydF9sb29wLmE2NFAKK2NoYXJsaWVfc3FydGxpYi50YXI6IHBhY2thZ2UvcGFja2FnZS54ZGMuaW5jCitjaGFybGllX3NxcnRsaWIudGFyOiBwYWNrYWdlL3BhY2thZ2UucmVsLmRvdAorY2hhcmxpZV9zcXJ0bGliLnRhcjogbGliL2lzcXJ0X3Vucm9sbC5hODZHVworY2hhcmxpZV9zcXJ0bGliLnRhcjogbGliL2lzcXJ0X3Vucm9sbC5hNjRQCitjaGFybGllX3NxcnRsaWIudGFyOiBwYWNrYWdlL3BhY2thZ2UuYmxkLnhtbAorY2hhcmxpZV9zcXJ0bGliLnRhcjogbGliL2lzcXJ0X2xvb3AuYTg2R1cKK2NoYXJsaWVfc3FydGxpYi50YXI6IHBhY2thZ2UvcGFja2FnZS5leHQueG1sCitjaGFybGllX3NxcnRsaWIudGFyOiBwYWNrYWdlL2J1aWxkLmNmZworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYi50YXIuZGVwCitlbmRpZgorcGFja2FnZS9yZWwvY2hhcmxpZV9zcXJ0bGliL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL3BhY2thZ2UucmVsLnhtbDoKKworY2hhcmxpZV9zcXJ0bGliLnRhcjogcGFja2FnZS9yZWwvY2hhcmxpZV9zcXJ0bGliLnhkYy5pbmMgcGFja2FnZS9yZWwvY2hhcmxpZV9zcXJ0bGliL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL3BhY2thZ2UucmVsLnhtbAorCUAkKE1TRykgbWFraW5nIHJlbGVhc2UgZmlsZSAkQCAiKGJlY2F1c2Ugb2YgJChmaXJzdHdvcmQgJD8pKSIgLi4uCisJLSQoUk0pICRACisJJChjYWxsIE1LUkVMVEFSLHBhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYi54ZGMuaW5jLHBhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYi50YXIuZGVwKQorCisKK3JlbGVhc2UgcmVsZWFzZSxjaGFybGllX3NxcnRsaWI6IGFsbCBjaGFybGllX3NxcnRsaWIudGFyCitjbGVhbjo6IC5jbGVhbgorCS0kKFJNKSBjaGFybGllX3NxcnRsaWIudGFyCisJLSQoUk0pIHBhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYi54ZGMuaW5jCisJLSQoUk0pIHBhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYi50YXIuZGVwCisKK2NsZWFuOjogLmNsZWFuCisJLSQoUk0pIC5saWJyYXJpZXMgLmxpYnJhcmllcywqCitjbGVhbjo6IAorCS0kKFJNKSAuZGxscyAuZGxscywqCisjCisjIFRoZSBmb2xsb3dpbmcgY2xlYW4gcnVsZSByZW1vdmVzIHVzZXIgc3BlY2lmaWVkCisjIGdlbmVyYXRlZCBmaWxlcyBvciBkaXJlY3Rvcmllcy4KKyMKKworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZSkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2xpYikpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2xpYikKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2xpYi9saWIpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9saWIvbGliKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbCkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvcmVsKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvcmVsKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIGxpYikpCisgICAgJChzaGVsbCAkKE1LRElSKSBsaWIpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9jZmcpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9jZmcpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9leHRlcm5hbCkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2V4dGVybmFsKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZSkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2ludGVybmFsKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvaW50ZXJuYWwpCitlbmRpZgorZW5kaWYKK2NsZWFuOjoKKwktJChSTURJUikgcGFja2FnZQorCisKK2NsZWFuOjogCisJLSQoUk0pIHBhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnBqdApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UueGRjIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyYzllYmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS54ZGMKQEAgLTAsMCArMSw4IEBACisvKg0KKyAqICA9PT09PT09PSBjaGFybGllL3NxcnRsaWIvcGFja2FnZS54ZGMgPT09PT09PT0NCisgKi8NCisNCisvKiEgTGlicmFyeSBvZiBsZWdhY3kgc3F1YXJlLXJvb3QgZnVuY3Rpb25zICovDQorcGFja2FnZSBjaGFybGllLnNxcnRsaWJbMSwwLDIsNl0gew0KKyAgICBtb2R1bGUgU2V0dGluZ3M7DQorfTsNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS54cyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMmM3NDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS54cwpAQCAtMCwwICsxLDI4IEBACisvKg0KKyAqICA9PT09PT09PSBjaGFybGllL3NxcnRsaWIvcGFja2FnZS54cyA9PT09PT09PQ0KKyAqLw0KKw0KK2Z1bmN0aW9uIGdldExpYnMoIHByb2cgKQ0KK3sNCisgICAgdmFyIHBrZyA9IHRoaXM7DQorICAgIHZhciBTZXR0aW5ncyA9IHRoaXMuU2V0dGluZ3M7DQorICAgIA0KKyAgICB2YXIgc3VmZml4ID0gcHJvZy5idWlsZC50YXJnZXQuZmluZFN1ZmZpeChwa2cpOw0KKyAgICB2YXIgbmFtZTsNCisNCisgICAgc3dpdGNoIChTZXR0aW5ncy5vcHRpbWl6ZSkgew0KKyAgICAgICAgY2FzZSBTZXR0aW5ncy5PUFRJTUlaRV9GT1JfU1BBQ0U6DQorICAgICAgICAgICAgbmFtZSA9ICJpc3FydF9sb29wIjsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIGNhc2UgU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1RJTUU6DQorICAgICAgICAgICAgbmFtZSA9ICJpc3FydF91bnJvbGwiOw0KKyAgICAgICAgICAgIGJyZWFrOw0KKyAgICB9DQorIA0KKyAgICBpZiAoc3VmZml4ICYmIG5hbWUpIHsNCisgICAgICAgIHJldHVybiAibGliLyIgKyBuYW1lICsgIi5hIiArIHN1ZmZpeDsNCisgICAgfQ0KKyAgICBlbHNlIHsNCisgICAgICAgIHJldHVybiBudWxsOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLy52ZXJzX2IxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS8udmVyc19iMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS8udmVyc19iMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS8udmVyc19jMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvLnZlcnNfYzE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvLnZlcnNfYzE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvLnZlcnNfZzE1MCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLy52ZXJzX2cxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLy52ZXJzX2cxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLy52ZXJzX3IxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS8udmVyc19yMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS8udmVyc19yMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS8ueGRjLXQzMiBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLy54ZGMtdDMyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS8ueGRjLXQzMgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvYnVpbGQuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvYnVpbGQuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwMWUxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9idWlsZC5jZmcKQEAgLTAsMCArMSw0NCBAQAoraWYgKHBrZy4kdmVycy5sZW5ndGggPj0gMykgeworICAgIHBrZy4kdmVycy5wdXNoKFBhY2thZ2VzLnhkYy5zZXJ2aWNlcy5nbG9iYWwuVmVycy5nZXREYXRlKHhkYy5jc2QoKSArICcvLi4nKSk7Cit9CisKK3BrZy5idWlsZC5saWJyYXJpZXMgPSBbCisgICAgJ2xpYi9pc3FydF91bnJvbGwuYTY0UCcsCisgICAgJ2xpYi9pc3FydF9sb29wLmE4NkdXJywKKyAgICAnbGliL2lzcXJ0X2xvb3AuYTY0UCcsCisgICAgJ2xpYi9pc3FydF91bnJvbGwuYTg2R1cnLAorXTsKKworcGtnLmJ1aWxkLmxpYkRlc2MgPSBbCisgICAgWworICAgICAgICAnbGliL2lzcXJ0X3Vucm9sbC5hNjRQJywKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0OiAndGkudGFyZ2V0cy5DNjRQJworICAgICAgICB9CisgICAgXSwKKyAgICBbCisgICAgICAgICdsaWIvaXNxcnRfbG9vcC5hODZHVycsCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldDogJ2dudS50YXJnZXRzLk1pbmd3JworICAgICAgICB9CisgICAgXSwKKyAgICBbCisgICAgICAgICdsaWIvaXNxcnRfbG9vcC5hNjRQJywKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0OiAndGkudGFyZ2V0cy5DNjRQJworICAgICAgICB9CisgICAgXSwKKyAgICBbCisgICAgICAgICdsaWIvaXNxcnRfdW5yb2xsLmE4NkdXJywKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0OiAnZ251LnRhcmdldHMuTWluZ3cnCisgICAgICAgIH0KKyAgICBdLAorXTsKK2lmICgnc3VmZml4JyBpbiB4ZGMub21bJ3hkYy5JUGFja2FnZSQkTGliRGVzYyddKSB7CisgICAgcGtnLmJ1aWxkLmxpYkRlc2NbJ2xpYi9pc3FydF91bnJvbGwuYTY0UCddLnN1ZmZpeCA9ICc2NFAnOworICAgIHBrZy5idWlsZC5saWJEZXNjWydsaWIvaXNxcnRfbG9vcC5hODZHVyddLnN1ZmZpeCA9ICc4NkdXJzsKKyAgICBwa2cuYnVpbGQubGliRGVzY1snbGliL2lzcXJ0X2xvb3AuYTY0UCddLnN1ZmZpeCA9ICc2NFAnOworICAgIHBrZy5idWlsZC5saWJEZXNjWydsaWIvaXNxcnRfdW5yb2xsLmE4NkdXJ10uc3VmZml4ID0gJzg2R1cnOworfQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9jaGFybGllLnNxcnRsaWIuY2NzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLmNjcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOTc5NzY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLmNjcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9jaGFybGllLnNxcnRsaWIucGp0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnBqdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTdlYTczCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnBqdApAQCAtMCwwICsxLDExIEBACis7IENvZGUgQ29tcG9zZXIgUHJvamVjdCBGaWxlLCBWZXJzaW9uIDIuMCAoZG8gbm90IG1vZGlmeSBvciByZW1vdmUgdGhpcyBsaW5lKQorW1Byb2plY3QgU2V0dGluZ3NdCitQcm9qZWN0TmFtZT0iY2hhcmxpZS5zcXJ0bGliIgorUHJvamVjdFR5cGU9RXh0ZXJuYWwKK0NQVUZhbWlseT1UTVMzMjBDNjRYWAorVG9vbD0iQ3VzdG9tQnVpbGRlciIKK0NvbmZpZz0iUGFja2FnZSIKK1tTb3VyY2UgRmlsZXNdCitTb3VyY2U9Ii4uL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYyIKK1NvdXJjZT0iLi4vaXNxcnRfdW5yb2xsLmMiCitTb3VyY2U9Ii4uL2lzcXJ0X2xvb3AuYyIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2NoYXJsaWUuc3FydGxpYi5zY2ggYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9jaGFybGllLnNxcnRsaWIuc2NoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9jaGFybGllLnNxcnRsaWIuc2NoCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9jaGFybGllX3NxcnRsaWIuY2xhc3MgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9jaGFybGllX3NxcnRsaWIuY2xhc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODFmMzYzMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2NoYXJsaWVfc3FydGxpYi5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9jaGFybGllX3NxcnRsaWIuamF2YSBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2NoYXJsaWVfc3FydGxpYi5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5N2ZkZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9jaGFybGllX3NxcnRsaWIuamF2YQpAQCAtMCwwICsxLDI1NyBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBvcmcubW96aWxsYS5qYXZhc2NyaXB0Lio7CitpbXBvcnQgeGRjLnNlcnZpY2VzLmludGVybi54c3IuKjsKK2ltcG9ydCB4ZGMuc2VydmljZXMuc3BlYy4qOworCitwdWJsaWMgY2xhc3MgY2hhcmxpZV9zcXJ0bGliCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBWRVJTID0gIkAoIykgeGRjLXQzMlxuIjsKKworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX0Jvb2wgPSBQcm90by5FbG0ubmV3Qm9vbCgpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX051bSA9IFByb3RvLkVsbS5uZXdOdW0oKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9TdHIgPSBQcm90by5FbG0ubmV3U3RyKCk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfT2JqID0gUHJvdG8uRWxtLm5ld09iaigpOworCisgICAgc3RhdGljIGZpbmFsIFByb3RvLkZ4biAkJFRfTWV0ID0gbmV3IFByb3RvLkZ4bihudWxsLCBudWxsLCAwLCAtMSwgZmFsc2UpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5NYXAgJCRUX01hcCA9IG5ldyBQcm90by5NYXAoJCRUX09iaik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkFyciAkJFRfVmVjID0gbmV3IFByb3RvLkFycigkJFRfT2JqKTsKKworICAgIHN0YXRpYyBmaW5hbCBYU2NyaXB0TyAkJERFRkFVTFQgPSBWYWx1ZS5ERUZBVUxUOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRVTkRFRiA9IFVuZGVmaW5lZC5pbnN0YW5jZTsKKworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRQYWNrYWdlID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJFBhY2thZ2UiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkTW9kdWxlID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJE1vZHVsZSIpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRJbnN0YW5jZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRJbnN0YW5jZSIpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRQYXJhbXMgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkUGFyYW1zIik7CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkb2JqRmxkR2V0ID0gR2xvYmFsLmdldCgiJCRvYmpGbGRHZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkb2JqRmxkU2V0ID0gR2xvYmFsLmdldCgiJCRvYmpGbGRTZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkcHJveHlHZXQgPSBHbG9iYWwuZ2V0KCIkJHByb3h5R2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJHByb3h5U2V0ID0gR2xvYmFsLmdldCgiJCRwcm94eVNldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRkZWxlZ0dldCA9IEdsb2JhbC5nZXQoIiQkZGVsZWdHZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkZGVsZWdTZXQgPSBHbG9iYWwuZ2V0KCIkJGRlbGVnU2V0Iik7CisKKyAgICBTY3JpcHRhYmxlIHhkY087CisgICAgU2Vzc2lvbiBzZXM7CisgICAgVmFsdWUuT2JqIG9tOworCisgICAgYm9vbGVhbiBpc1JPVjsKKyAgICBib29sZWFuIGlzQ0ZHOworCisgICAgUHJvdG8uT2JqIHBrZ1A7CisgICAgVmFsdWUuT2JqIHBrZ1Y7CisKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBpbXBvcnRzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gbG9nZ2FibGVzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gbWNmZ3MgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBwcm94aWVzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gc2l6ZXMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiB0ZGVmcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworCisgICAgdm9pZCAkJElNUE9SVFMoKQorICAgIHsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImxvYWRQYWNrYWdlIiwgeGRjTywgInhkYyIpOworICAgICAgICBHbG9iYWwuY2FsbEZ4bigibG9hZFBhY2thZ2UiLCB4ZGNPLCAieGRjLmNvcmV2ZXJzIik7CisgICAgfQorCisgICAgdm9pZCAkJE9CSkVDVFMoKQorICAgIHsKKyAgICAgICAgcGtnUCA9IChQcm90by5PYmopb20uYmluZCgiY2hhcmxpZS5zcXJ0bGliLlBhY2thZ2UiLCBuZXcgUHJvdG8uT2JqKCkpOworICAgICAgICBwa2dWID0gKFZhbHVlLk9iailvbS5iaW5kKCJjaGFybGllLnNxcnRsaWIiLCBuZXcgVmFsdWUuT2JqKCJjaGFybGllLnNxcnRsaWIiLCBwa2dQKSk7CisgICAgfQorCisgICAgdm9pZCBTZXR0aW5ncyQkT0JKRUNUUygpCisgICAgeworICAgICAgICBQcm90by5PYmogcG8sIHNwbzsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIHBvID0gKFByb3RvLk9iailvbS5iaW5kKCJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuTW9kdWxlIiwgbmV3IFByb3RvLk9iaigpKTsKKyAgICAgICAgdm8gPSAoVmFsdWUuT2JqKW9tLmJpbmQoImNoYXJsaWUuc3FydGxpYi5TZXR0aW5ncyIsIG5ldyBWYWx1ZS5PYmooImNoYXJsaWUuc3FydGxpYi5TZXR0aW5ncyIsIHBvKSk7CisgICAgICAgIHBrZ1YuYmluZCgiU2V0dGluZ3MiLCB2byk7CisgICAgICAgIC8vIGRlY2xzIAorICAgICAgICBvbS5iaW5kKCJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT3B0VHlwZSIsIG5ldyBQcm90by5Fbm0oImNoYXJsaWUuc3FydGxpYi5TZXR0aW5ncy5PcHRUeXBlIikpOworICAgIH0KKworICAgIHZvaWQgU2V0dGluZ3MkJENPTlNUUygpCisgICAgeworICAgICAgICAvLyBtb2R1bGUgU2V0dGluZ3MKKyAgICAgICAgb20uYmluZCgiY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzLk9QVElNSVpFX0ZPUl9TUEFDRSIsIHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLkVudW0ubWFrZSgoUHJvdG8uRW5tKW9tLmZpbmQoImNoYXJsaWUuc3FydGxpYi5TZXR0aW5ncy5PcHRUeXBlIiksICJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1NQQUNFIiwgMCkpOworICAgICAgICBvbS5iaW5kKCJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1RJTUUiLCB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5FbnVtLm1ha2UoKFByb3RvLkVubSlvbS5maW5kKCJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT3B0VHlwZSIpLCAiY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzLk9QVElNSVpFX0ZPUl9USU1FIiwgMSkpOworICAgIH0KKworICAgIHZvaWQgU2V0dGluZ3MkJENSRUFURVMoKQorICAgIHsKKyAgICAgICAgUHJvdG8uRnhuIGZ4bjsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBzYjsKKworICAgIH0KKworICAgIHZvaWQgU2V0dGluZ3MkJEZVTkNUSU9OUygpCisgICAgeworICAgICAgICBQcm90by5GeG4gZnhuOworCisgICAgfQorCisgICAgdm9pZCBTZXR0aW5ncyQkU0laRVMoKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIFNldHRpbmdzJCRUWVBFUygpCisgICAgeworICAgICAgICBTY3JpcHRhYmxlIGNhcDsKKyAgICAgICAgUHJvdG8uT2JqIHBvOworICAgICAgICBQcm90by5TdHIgcHM7CisgICAgICAgIFByb3RvLlR5cGVkZWYgcHQ7CisgICAgICAgIE9iamVjdCBmeG47CisKKyAgICAgICAgcG8gPSAoUHJvdG8uT2JqKW9tLmZpbmQoImNoYXJsaWUuc3FydGxpYi5TZXR0aW5ncy5Nb2R1bGUiKTsKKyAgICAgICAgcG8uaW5pdCgiY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzLk1vZHVsZSIsICQkTW9kdWxlKTsKKyAgICAgICAgICAgICAgICBwby5hZGRGbGQoIiRob3N0b25seSIsICQkVF9OdW0sIDEsICJyIik7CisgICAgICAgICAgICAgICAgcG8uYWRkRmxkKCJvcHRpbWl6ZSIsIChQcm90bylvbS5maW5kKCJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT3B0VHlwZSIpLCBvbS5maW5kKCJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1RJTUUiKSwgIndoIik7CisgICAgfQorCisgICAgdm9pZCBTZXR0aW5ncyQkUk9WKCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCAkJFNJTkdMRVRPTlMoKQorICAgIHsKKyAgICAgICAgcGtnUC5pbml0KCJjaGFybGllLnNxcnRsaWIuUGFja2FnZSIsIChQcm90by5PYmopb20uZmluZCgieGRjLklQYWNrYWdlLk1vZHVsZSIpKTsKKyAgICAgICAgU2NyaXB0YWJsZSBjYXAgPSAoU2NyaXB0YWJsZSlHbG9iYWwuY2FsbEZ4bigibG9hZENhcHN1bGUiLCB4ZGNPLCAiY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UueHMiKTsKKyAgICAgICAgb20uYmluZCgieGRjLklQYWNrYWdlJCRjYXBzdWxlIiwgY2FwKTsKKyAgICAgICAgT2JqZWN0IGZ4bjsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgImluaXQiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIHBrZ1AuYWRkRnhuKCJpbml0IiwgKFByb3RvLkZ4bilvbS5maW5kKCJ4ZGMuSVBhY2thZ2UkJGluaXQiKSwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgImNsb3NlIik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwa2dQLmFkZEZ4bigiY2xvc2UiLCAoUHJvdG8uRnhuKW9tLmZpbmQoInhkYy5JUGFja2FnZSQkY2xvc2UiKSwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgInZhbGlkYXRlIik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwa2dQLmFkZEZ4bigidmFsaWRhdGUiLCAoUHJvdG8uRnhuKW9tLmZpbmQoInhkYy5JUGFja2FnZSQkdmFsaWRhdGUiKSwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgImV4aXQiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIHBrZ1AuYWRkRnhuKCJleGl0IiwgKFByb3RvLkZ4bilvbS5maW5kKCJ4ZGMuSVBhY2thZ2UkJGV4aXQiKSwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgImdldExpYnMiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIHBrZ1AuYWRkRnhuKCJnZXRMaWJzIiwgKFByb3RvLkZ4bilvbS5maW5kKCJ4ZGMuSVBhY2thZ2UkJGdldExpYnMiKSwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgImdldFNlY3RzIik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwa2dQLmFkZEZ4bigiZ2V0U2VjdHMiLCAoUHJvdG8uRnhuKW9tLmZpbmQoInhkYy5JUGFja2FnZSQkZ2V0U2VjdHMiKSwgZnhuKTsKKyAgICAgICAgcGtnUC5iaW5kKCIkY2Fwc3VsZSIsIGNhcCk7CisgICAgICAgIHBrZ1YuaW5pdDIocGtnUCwgImNoYXJsaWUuc3FydGxpYiIsIFZhbHVlLkRFRkFVTFQsIGZhbHNlKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkbmFtZSIsICJjaGFybGllLnNxcnRsaWIiKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkY2F0ZWdvcnkiLCAiUGFja2FnZSIpOworICAgICAgICBwa2dWLmJpbmQoIiQkcW4iLCAiY2hhcmxpZS5zcXJ0bGliLiIpOworICAgICAgICBwa2dWLmJpbmQoIiR2ZXJzIiwgR2xvYmFsLm5ld0FycmF5KCIxLCAwLCAyLCA2IikpOworICAgICAgICBWYWx1ZS5NYXAgYXRtYXAgPSAoVmFsdWUuTWFwKXBrZ1YuZ2V0digiJGF0dHIiKTsKKyAgICAgICAgYXRtYXAuc2VhbCgibGVuZ3RoIik7CisgICAgICAgIGltcG9ydHMuY2xlYXIoKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkaW1wb3J0cyIsIGltcG9ydHMpOworICAgICAgICBTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKyAgICAgICAgc2IuYXBwZW5kKCJ2YXIgcGtnID0geGRjLm9tWydjaGFybGllLnNxcnRsaWInXTtcbiIpOworICAgICAgICBzYi5hcHBlbmQoImlmIChwa2cuJHZlcnMubGVuZ3RoID49IDMpIHtcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCJwa2cuJHZlcnMucHVzaChQYWNrYWdlcy54ZGMuc2VydmljZXMuZ2xvYmFsLlZlcnMuZ2V0RGF0ZSh4ZGMuY3NkKCkgKyAnLy4uJykpO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgifVxuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYnJhcmllcyA9IFtcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCInbGliL2lzcXJ0X3Vucm9sbC5hNjRQJyxcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCInbGliL2lzcXJ0X2xvb3AuYTg2R1cnLFxuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoIidsaWIvaXNxcnRfbG9vcC5hNjRQJyxcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCInbGliL2lzcXJ0X3Vucm9sbC5hODZHVycsXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2MgPSBbXG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiWydsaWIvaXNxcnRfdW5yb2xsLmE2NFAnLCB7dGFyZ2V0OiAndGkudGFyZ2V0cy5DNjRQJ31dLFxuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoIlsnbGliL2lzcXJ0X2xvb3AuYTg2R1cnLCB7dGFyZ2V0OiAnZ251LnRhcmdldHMuTWluZ3cnfV0sXG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiWydsaWIvaXNxcnRfbG9vcC5hNjRQJywge3RhcmdldDogJ3RpLnRhcmdldHMuQzY0UCd9XSxcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCJbJ2xpYi9pc3FydF91bnJvbGwuYTg2R1cnLCB7dGFyZ2V0OiAnZ251LnRhcmdldHMuTWluZ3cnfV0sXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgiaWYoJ3N1ZmZpeCcgaW4geGRjLm9tWyd4ZGMuSVBhY2thZ2UkJExpYkRlc2MnXSkge1xuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoInBrZy5idWlsZC5saWJEZXNjWydsaWIvaXNxcnRfdW5yb2xsLmE2NFAnXS5zdWZmaXggPSAnNjRQJztcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCJwa2cuYnVpbGQubGliRGVzY1snbGliL2lzcXJ0X2xvb3AuYTg2R1cnXS5zdWZmaXggPSAnODZHVyc7XG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2NbJ2xpYi9pc3FydF9sb29wLmE2NFAnXS5zdWZmaXggPSAnNjRQJztcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCJwa2cuYnVpbGQubGliRGVzY1snbGliL2lzcXJ0X3Vucm9sbC5hODZHVyddLnN1ZmZpeCA9ICc4NkdXJztcbiIpOworICAgICAgICBzYi5hcHBlbmQoIn1cbiIpOworICAgICAgICBHbG9iYWwuZXZhbChzYi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICB2b2lkIFNldHRpbmdzJCRTSU5HTEVUT05TKCkKKyAgICB7CisgICAgICAgIFByb3RvLk9iaiBwbzsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIHZvID0gKFZhbHVlLk9iailvbS5maW5kKCJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MiKTsKKyAgICAgICAgcG8gPSAoUHJvdG8uT2JqKW9tLmZpbmQoImNoYXJsaWUuc3FydGxpYi5TZXR0aW5ncy5Nb2R1bGUiKTsKKyAgICAgICAgdm8uaW5pdDIocG8sICJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MiLCAkJERFRkFVTFQsIGZhbHNlKTsKKyAgICAgICAgdm8uYmluZCgiTW9kdWxlIiwgcG8pOworICAgICAgICB2by5iaW5kKCIkY2F0ZWdvcnkiLCAiTW9kdWxlIik7CisgICAgICAgIHZvLmJpbmQoIiRjYXBzdWxlIiwgJCRVTkRFRik7CisgICAgICAgIHZvLmJpbmQoIiRwYWNrYWdlIiwgb20uZmluZCgiY2hhcmxpZS5zcXJ0bGliIikpOworICAgICAgICB0ZGVmcy5jbGVhcigpOworICAgICAgICBwcm94aWVzLmNsZWFyKCk7CisgICAgICAgIG1jZmdzLmNsZWFyKCk7CisgICAgICAgIHZvLmJpbmQoIk9wdFR5cGUiLCBvbS5maW5kKCJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT3B0VHlwZSIpKTsKKyAgICAgICAgdm8uYmluZCgiT1BUSU1JWkVfRk9SX1NQQUNFIiwgb20uZmluZCgiY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzLk9QVElNSVpFX0ZPUl9TUEFDRSIpKTsKKyAgICAgICAgdm8uYmluZCgiT1BUSU1JWkVfRk9SX1RJTUUiLCBvbS5maW5kKCJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1RJTUUiKSk7CisgICAgICAgIHZvLmJpbmQoIiQkdGRlZnMiLCBHbG9iYWwubmV3QXJyYXkodGRlZnMudG9BcnJheSgpKSk7CisgICAgICAgIHZvLmJpbmQoIiQkcHJveGllcyIsIEdsb2JhbC5uZXdBcnJheShwcm94aWVzLnRvQXJyYXkoKSkpOworICAgICAgICB2by5iaW5kKCIkJG1jZmdzIiwgR2xvYmFsLm5ld0FycmF5KG1jZmdzLnRvQXJyYXkoKSkpOworICAgICAgICAoKFZhbHVlLkFycilwa2dWLmdldHYoIiRtb2R1bGVzIikpLmFkZCh2byk7CisgICAgICAgICgoVmFsdWUuQXJyKW9tLmZpbmQoIiRtb2R1bGVzIikpLmFkZCh2byk7CisgICAgICAgIHZvLmJpbmQoIiQkaW5zdGZsYWciLCAwKTsKKyAgICAgICAgdm8uYmluZCgiJCRpb2JqZmxhZyIsIDEpOworICAgICAgICB2by5iaW5kKCIkJHNpemVmbGFnIiwgMSk7CisgICAgICAgIHZvLmJpbmQoIiQkZGxnZmxhZyIsIDApOworICAgICAgICB2by5iaW5kKCIkJGlmbGFnIiwgMCk7CisgICAgICAgIHZvLmJpbmQoIiQkcm9tY2ZncyIsICJ8Iik7CisgICAgICAgIFByb3RvLlN0ciBwcyA9IChQcm90by5TdHIpdm8uZmluZCgiTW9kdWxlX1N0YXRlIik7CisgICAgICAgIGlmIChwcyAhPSBudWxsKSB2by5iaW5kKCIkb2JqZWN0IiwgcHMubmV3SW5zdGFuY2UoKSk7CisgICAgICAgIHZvLmJpbmQoIiQkbWV0YV9pb2JqIiwgb20uaGFzKCJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MkJGluc3RhbmNlJHN0YXRpYyRpbml0IiwgbnVsbCkgPyAxIDogMCk7CisgICAgICAgIHZvLmJpbmQoIiQkZnhudGFiIiwgR2xvYmFsLm5ld0FycmF5KCkpOworICAgICAgICB2by5iaW5kKCIkJGxvZ0V2dENmZ3MiLCBHbG9iYWwubmV3QXJyYXkoKSk7CisgICAgICAgIHZvLmJpbmQoIiQkZXJyb3JEZXNjQ2ZncyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgdm8uYmluZCgiJCRhc3NlcnREZXNjQ2ZncyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgVmFsdWUuTWFwIGF0bWFwID0gKFZhbHVlLk1hcCl2by5nZXR2KCIkYXR0ciIpOworICAgICAgICBhdG1hcC5zZWFsKCJsZW5ndGgiKTsKKyAgICAgICAgcGtnVi5iaW5kKCJTZXR0aW5ncyIsIHZvKTsKKyAgICAgICAgKChWYWx1ZS5BcnIpcGtnVi5nZXR2KCIkdW5pdE5hbWVzIikpLmFkZCgiU2V0dGluZ3MiKTsKKyAgICB9CisKKyAgICB2b2lkICQkSU5JVElBTElaQVRJT04oKQorICAgIHsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIGlmIChpc0NGRykgeworICAgICAgICB9Ly9pc0NGRworICAgICAgICBHbG9iYWwuY2FsbEZ4bigibW9kdWxlJG1ldGEkaW5pdCIsIChTY3JpcHRhYmxlKW9tLmZpbmQoImNoYXJsaWUuc3FydGxpYi5TZXR0aW5ncyIpKTsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImluaXQiLCBwa2dWKTsKKyAgICAgICAgKChWYWx1ZS5PYmopb20uZ2V0digiY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzIikpLmJsZXNzKCk7CisgICAgICAgICgoVmFsdWUuQXJyKW9tLmZpbmQoIiRwYWNrYWdlcyIpKS5hZGQocGtnVik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXhlYyggU2NyaXB0YWJsZSB4ZGNPLCBTZXNzaW9uIHNlcyApCisgICAgeworICAgICAgICB0aGlzLnhkY08gPSB4ZGNPOworICAgICAgICB0aGlzLnNlcyA9IHNlczsKKyAgICAgICAgb20gPSAoVmFsdWUuT2JqKXhkY08uZ2V0KCJvbSIsIG51bGwpOworCisgICAgICAgIE9iamVjdCBvID0gb20uZ2V0bygiJG5hbWUiKTsKKyAgICAgICAgU3RyaW5nIHMgPSBvIGluc3RhbmNlb2YgU3RyaW5nID8gKFN0cmluZylvIDogbnVsbDsKKyAgICAgICAgaXNDRkcgPSBzICE9IG51bGwgJiYgcy5lcXVhbHMoImNmZyIpOworICAgICAgICBpc1JPViA9IHMgIT0gbnVsbCAmJiBzLmVxdWFscygicm92Iik7CisKKyAgICAgICAgJCRJTVBPUlRTKCk7CisgICAgICAgICQkT0JKRUNUUygpOworICAgICAgICBTZXR0aW5ncyQkT0JKRUNUUygpOworICAgICAgICBTZXR0aW5ncyQkQ09OU1RTKCk7CisgICAgICAgIFNldHRpbmdzJCRDUkVBVEVTKCk7CisgICAgICAgIFNldHRpbmdzJCRGVU5DVElPTlMoKTsKKyAgICAgICAgU2V0dGluZ3MkJFNJWkVTKCk7CisgICAgICAgIFNldHRpbmdzJCRUWVBFUygpOworICAgICAgICBpZiAoaXNST1YpIHsKKyAgICAgICAgICAgIFNldHRpbmdzJCRST1YoKTsKKyAgICAgICAgfS8vaXNST1YKKyAgICAgICAgJCRTSU5HTEVUT05TKCk7CisgICAgICAgIFNldHRpbmdzJCRTSU5HTEVUT05TKCk7CisgICAgICAgICQkSU5JVElBTElaQVRJT04oKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3AubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDZiZmI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3AubzY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vNjRQLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkYjEzMmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vNjRQLmRlcApAQCAtMCwwICsxLDIgQEAKK3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3AubzY0UDogaXNxcnRfbG9vcC5jIA0KK2lzcXJ0X2xvb3AuYzoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm84NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMGY1ODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vODZHVy5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vODZHVy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU4MGEyZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9pc3FydF9sb29wLm84NkdXLmRlcApAQCAtMCwwICsxLDIgQEAKK3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wLy9pc3FydF9sb29wLm84NkdXOiBpc3FydF9sb29wLmMgDQoraXNxcnRfbG9vcC5jOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU3NGZhMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFAuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UC5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZmODBlMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFAuZGVwCkBAIC0wLDAgKzEsNyBAQAorcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQOiBwYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLmMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCANCitwYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLmM6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMmIyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVy5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjAyN2Q1NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXLmRlcApAQCAtMCwwICsxLDQgQEAKK3BhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL3BhY2thZ2UvL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXOiBwYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLmMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvc3RkLmggDQorcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5jOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5vNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm82NFAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRkNzNhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5vNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5vNjRQLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5vNjRQLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmY1Y2FhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm82NFAuZGVwCkBAIC0wLDAgKzEsMiBAQAorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzY0UDogaXNxcnRfdW5yb2xsLmMgDQoraXNxcnRfdW5yb2xsLmM6DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm84NkdXIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm84NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2YTcwZmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzg2R1cKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm84NkdXLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5vODZHVy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmExZmI2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL2lzcXJ0X3Vucm9sbC5vODZHVy5kZXAKQEAgLTAsMCArMSwyIEBACitwYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsLy9pc3FydF91bnJvbGwubzg2R1c6IGlzcXJ0X3Vucm9sbC5jIA0KK2lzcXJ0X3Vucm9sbC5jOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDhlOTczCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNGRjNzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFAuZGVwCkBAIC0wLDAgKzEsNyBAQAorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm82NFA6IHBhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oIA0KK3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYzoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzg2R1cgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMmIyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzg2R1cuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzBjZTg5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL2xpYi9saWIvaXNxcnRfdW5yb2xsL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIubzg2R1cuZGVwCkBAIC0wLDAgKzEsNCBAQAorcGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9wYWNrYWdlLy9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVzogcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5jIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oIA0KK3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYzoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9zdGQuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM5ZTkzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL3BhY2thZ2UuYmxkLnhtbApAQCAtMCwwICsxLDk5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgVGhpcyBmaWxlIGNvbmZvcm1zIHRvIHRoZSBEVEQgeGRjL2JsZC9idWlsZC5kdGQgLS0+Cis8cGFja2FnZSBuYW1lPSJjaGFybGllLnNxcnRsaWIiIHZlcnNpb249IjEsIDAsIDIsIDYiIHByb2R1Y2VySWQ9InVuZGVmaW5lZCI+CisgICAgPHVuaXRzPgorICAgICAgICA8bW9kdWxlIG5hbWU9IlNldHRpbmdzIi8+CisgICAgPC91bml0cz4KKyAgICA8c291cmNlcz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9ImlzcXJ0X3Vucm9sbC5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9ImlzcXJ0X2xvb3AuYyIvPgorICAgIDwvc291cmNlcz4KKyAgICA8Y29uZmlndXJhdGlvbnM+CisgICAgPC9jb25maWd1cmF0aW9ucz4KKyAgICA8bWFrZWZpbGVzPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlLm1hayIgc3JjPSJwYWNrYWdlLmJsZCIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UueGRjLmRlcCIgc3JjPSJwYWNrYWdlLnhkYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UuY2ZnLmRlcCIgc3JjPSJwYWNrYWdlLnhkYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJsaWIvaXNxcnRfdW5yb2xsLmE2NFAubWFrIiBzcmM9InBhY2thZ2UuYmxkIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvaXNxcnRfdW5yb2xsLm82NFAuZGVwIiBzcmM9ImlzcXJ0X3Vucm9sbC5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQLmRlcCIgc3JjPSJwYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0ibGliL2lzcXJ0X2xvb3AuYTg2R1cubWFrIiBzcmM9InBhY2thZ2UuYmxkIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvbGliL2xpYi9pc3FydF9sb29wL2lzcXJ0X2xvb3Aubzg2R1cuZGVwIiBzcmM9ImlzcXJ0X2xvb3AuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2xpYi9saWIvaXNxcnRfbG9vcC9wYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLm84NkdXLmRlcCIgc3JjPSJwYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0ibGliL2lzcXJ0X2xvb3AuYTY0UC5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvaXNxcnRfbG9vcC5vNjRQLmRlcCIgc3JjPSJpc3FydF9sb29wLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9saWIvbGliL2lzcXJ0X2xvb3AvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vNjRQLmRlcCIgc3JjPSJwYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0ibGliL2lzcXJ0X3Vucm9sbC5hODZHVy5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9saWIvbGliL2lzcXJ0X3Vucm9sbC9pc3FydF91bnJvbGwubzg2R1cuZGVwIiBzcmM9ImlzcXJ0X3Vucm9sbC5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvbGliL2xpYi9pc3FydF91bnJvbGwvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5vODZHVy5kZXAiIHNyYz0icGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYi50YXIuZGVwIiBzcmM9InBhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYi54ZGMuaW5jIi8+CisgICAgPC9tYWtlZmlsZXM+CisgICAgPHRhcmdldHM+CisgICAgICAgIDx0YXJnZXQgbmFtZT0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICAgICAgdmVyc2lvbj0idGkudGFyZ2V0cy5DNjRQezEsMCw2LjEsNSIKKyAgICAgICAgICAgIHBsYXRmb3JtPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiCisgICAgICAgICAgICBpc2E9IjY0UCIKKyAgICAgICAgICAgIHN1ZmZpeD0iNjRQIgorICAgICAgICAgICAgcm9vdERpcj0iZDovdGkvYzYwMDAvYWxjIgorICAgICAgICAgICAgb3M9InVuZGVmaW5lZCIKKyAgICAgICAgICAgIHJ0cz0idGkudGFyZ2V0cy5ydHM2MDAwIj4KKyAgICAgICAgICAgIDxtb2RlbCBlbmRpYW49ImxpdHRsZSIKKyAgICAgICAgICAgICAgICBjb2RlTW9kZWw9InVuZGVmaW5lZCIKKyAgICAgICAgICAgICAgICBkYXRhTW9kZWw9InVuZGVmaW5lZCIvPgorICAgICAgICA8L3RhcmdldD4KKyAgICAgICAgPHRhcmdldCBuYW1lPSJnbnUudGFyZ2V0cy5NaW5ndyIKKyAgICAgICAgICAgIHZlcnNpb249ImdudS50YXJnZXRzLk1pbmd3ezEsMCwzLjQsNSIKKyAgICAgICAgICAgIHBsYXRmb3JtPSJob3N0LnBsYXRmb3Jtcy5QQyIKKyAgICAgICAgICAgIGlzYT0ieDg2IgorICAgICAgICAgICAgc3VmZml4PSI4NkdXIgorICAgICAgICAgICAgcm9vdERpcj0iZTovcnRzYy9taW5ndyIKKyAgICAgICAgICAgIG9zPSJXaW5kb3dzIgorICAgICAgICAgICAgcnRzPSJnbnUudGFyZ2V0cy5ydHM4NkdXIj4KKyAgICAgICAgICAgIDxtb2RlbCBlbmRpYW49ImxpdHRsZSIKKyAgICAgICAgICAgICAgICBjb2RlTW9kZWw9InVuZGVmaW5lZCIKKyAgICAgICAgICAgICAgICBkYXRhTW9kZWw9InVuZGVmaW5lZCIvPgorICAgICAgICA8L3RhcmdldD4KKyAgICA8L3RhcmdldHM+CisgICAgPGxpYnJhcmllcz4KKyAgICA8bGlicmFyeSBuYW1lPSJsaWIvaXNxcnRfdW5yb2xsIgorICAgICAgICBwbmFtZT0ibGliL2lzcXJ0X3Vucm9sbC5hNjRQIgorICAgICAgICBwcm9maWxlPSJyZWxlYXNlIgorICAgICAgICB0YXJnZXQ9InRpLnRhcmdldHMuQzY0UCIvPgorICAgIDxsaWJyYXJ5IG5hbWU9ImxpYi9pc3FydF9sb29wIgorICAgICAgICBwbmFtZT0ibGliL2lzcXJ0X2xvb3AuYTg2R1ciCisgICAgICAgIHByb2ZpbGU9InJlbGVhc2UiCisgICAgICAgIHRhcmdldD0iZ251LnRhcmdldHMuTWluZ3ciLz4KKyAgICA8bGlicmFyeSBuYW1lPSJsaWIvaXNxcnRfbG9vcCIKKyAgICAgICAgcG5hbWU9ImxpYi9pc3FydF9sb29wLmE2NFAiCisgICAgICAgIHByb2ZpbGU9InJlbGVhc2UiCisgICAgICAgIHRhcmdldD0idGkudGFyZ2V0cy5DNjRQIi8+CisgICAgPGxpYnJhcnkgbmFtZT0ibGliL2lzcXJ0X3Vucm9sbCIKKyAgICAgICAgcG5hbWU9ImxpYi9pc3FydF91bnJvbGwuYTg2R1ciCisgICAgICAgIHByb2ZpbGU9InJlbGVhc2UiCisgICAgICAgIHRhcmdldD0iZ251LnRhcmdldHMuTWluZ3ciLz4KKyAgICA8L2xpYnJhcmllcz4KKyAgICA8ZXhlY3V0YWJsZXM+CisgICAgPC9leGVjdXRhYmxlcz4KKyAgICA8dGVzdHM+CisgICAgPC90ZXN0cz4KKyAgICA8cmVsZWFzZXMgcmVsRGlyPSJwYWNrYWdlL3JlbC8iPgorICAgIDxyZWxlYXNlIG5hbWU9ImNoYXJsaWVfc3FydGxpYiIKKyAgICAgICAgcG5hbWU9ImNoYXJsaWVfc3FydGxpYi50YXIiCisgICAgICAgIGxhYmVsPSJkZWZhdWx0IgorICAgID4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLmNmZy54ZGMuaW5jIi8+CisgICAgICAgIDxmaWxlIG5hbWU9ImxpYi9pc3FydF9sb29wLmE2NFAiLz4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLnhkYy5pbmMiLz4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLnJlbC5kb3QiLz4KKyAgICAgICAgPGZpbGUgbmFtZT0ibGliL2lzcXJ0X3Vucm9sbC5hODZHVyIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJsaWIvaXNxcnRfdW5yb2xsLmE2NFAiLz4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLmJsZC54bWwiLz4KKyAgICAgICAgPGZpbGUgbmFtZT0ibGliL2lzcXJ0X2xvb3AuYTg2R1ciLz4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLmV4dC54bWwiLz4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9idWlsZC5jZmciLz4KKyAgICA8L3JlbGVhc2U+CisgICAgPC9yZWxlYXNlcz4KKyAgICA8cmVwb3NpdG9yaWVzPgorICAgIDwvcmVwb3NpdG9yaWVzPgorPC9wYWNrYWdlPgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9wYWNrYWdlLmRlZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YmZkOTY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvcGFja2FnZS5kZWZzLmgKQEAgLTAsMCArMSwxMyBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2lmbmRlZiBjaGFybGllX3NxcnRsaWJfXworI2RlZmluZSBjaGFybGllX3NxcnRsaWJfXworCisKKworI2VuZGlmIC8qIGNoYXJsaWVfc3FydGxpYl9fICovIApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvcGFja2FnZS5kb2MueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvcGFja2FnZS5kb2MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiMWNjMDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9wYWNrYWdlLmRvYy54bWwKQEAgLTAsMCArMSw1NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwYWNrYWdlIGtpbmQ9J3BhY2thZ2UnIG5hbWU9J2NoYXJsaWUuc3FydGxpYicgbm9kb2M9JzAnIHJvb3Q9Jy4uLy4uLycgc3VtbWFyeT0nTGlicmFyeStvZitsZWdhY3krc3F1YXJlLXJvb3QrZnVuY3Rpb25zJz4KKyAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXBhY2thZ2UlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VjaGFybGllLnNxcnRsaWIlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTVCMSUyQyswJTJDKzIlMkMrNiU1RCslN0InLz4KKyAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyU3RCcvPgorICAgIDx1bml0IG5hbWU9J1NldHRpbmdzJyBraW5kPSdtb2R1bGUnIG5vZG9jPScwJyBtZXRhb25seT0nMScgc3VtbWFyeT0nJz4KKyAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFcGFja2FnZSUzQyUyRnNwYW4lM0UrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRmNoYXJsaWUlMkZzcXJ0bGliJTJGcGFja2FnZS5odG1sJTIyK3RpdGxlJTNEJTIyY2hhcmxpZS5zcXJ0bGliJTIyJTNFY2hhcmxpZS5zcXJ0bGliJTNDJTJGYSUzRSUzQicvPgorICAgICAgICAgICAgPGxpbmUgYmxhbms9JzEnIGFsd2F5cz0nMCcvPgorICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VtZXRhb25seSslM0MlMkZzcGFuJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbW9kdWxlJTNDJTJGc3BhbiUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFU2V0dGluZ3MlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTdCJy8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyU3RCcvPgorICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgPHNwZWNJbmZvPgorICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VtZXRhb25seSslM0MlMkZzcGFuJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbW9kdWxlJTNDJTJGc3BhbiUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFU2V0dGluZ3MlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTdCJTNDYiUzRSUyNm5ic3AlM0IlMjZuYnNwJTNCLi4uJTNDJTJGYiUzRScvPgorICAgICAgICA8L3NwZWNJbmZvPgorICAgICAgICA8c3lub3BNZXRhPgorICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0V2YXIlM0MlMkZzcGFuJTNFK1NldHRpbmdzKyUzRCslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzMlMjIlM0V4ZGMudXNlTW9kdWxlJTNDJTJGc3BhbiUzRSUyOCUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFJTI3Y2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzJTI3JTNDJTJGc3BhbiUzRSUyOSUzQicvPgorICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGNvbnN0YW50cyAmYW1wOyB0eXBlcyc+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2VudW0nIG5hbWU9J09wdFR5cGUnIGFuY2hvcj0nLk9wdC5UeXBlJyBhbHRleHQ9J2NoYXJsaWUuc3FydGxpYi5TZXR0aW5ncy5PcHRUeXBlJyBub2RvYz0nMCcgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzAnIGluc3RhbmNlPScwJyBzdW1tYXJ5PScnPgorICAgICAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2VudW12YWwnIG5hbWU9J09QVElNSVpFX0ZPUl9TUEFDRScgYW5jaG9yPScuTy5QLlQuSS5NLkkuWi5FXy5GLk8uUl8uUy5QLkEuQy5FJy8+CisgICAgICAgICAgICAgICAgPGRlY2wga2luZD0nZW51bXZhbCcgbmFtZT0nT1BUSU1JWkVfRk9SX1RJTUUnIGFuY2hvcj0nLk8uUC5ULkkuTS5JLlouRV8uRi5PLlJfLlQuSS5NLkUnLz4KKyAgICAgICAgICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWVudW0lM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VPcHRUeXBlJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VPUFRJTUlaRV9GT1JfU1BBQ0UlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlMkMrJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRU9QVElNSVpFX0ZPUl9USU1FJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTdEJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NpJTNFdmFsdWVzK29mK3R5cGUrJTNDZ28lM0VTZXR0aW5ncy4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRU9wdFR5cGUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0MlMkZpJTNFJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFY29uc3QlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFU2V0dGluZ3MuJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VPUFRJTUlaRV9GT1JfU1BBQ0UlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25zdCUzQyUyRnNwYW4lM0UrJTNDZ28lM0VTZXR0aW5ncy4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRU9QVElNSVpFX0ZPUl9USU1FJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcE1ldGE+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGNvbmZpZyBwYXJhbWV0ZXJzJz4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wgc3BhY2VyPScxJy8+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2NvbmZpZycgbmFtZT0nb3B0aW1pemUnIGFuY2hvcj0nb3B0aW1pemUnIGFsdGV4dD0nY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzLm9wdGltaXplJyBub2RvYz0nMCcgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzAnIGluc3RhbmNlPScwJyBzdW1tYXJ5PScnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFY29uZmlnJTNDJTJGc3BhbiUzRSslM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGY2hhcmxpZSUyRnNxcnRsaWIlMkZTZXR0aW5ncy5odG1sJTIzLk9wdC5UeXBlJTIyK3RpdGxlJTNEJTIyY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzLk9wdFR5cGUlMjIlM0VTZXR0aW5ncy5PcHRUeXBlJTNDJTJGYSUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFb3B0aW1pemUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUyNTNDYSUyQmNsYXNzJTI1M0QlMjUyMnhkb2MtbGluayUyNTIyJTJCaHJlZiUyNTNEJTI1MjIuLiUyNTJGLi4lMjUyRmNoYXJsaWUlMjUyRnNxcnRsaWIlMjUyRlNldHRpbmdzLmh0bWwlMjUyMy5PLlAuVC5JLk0uSS5aLkVfLkYuTy5SXy5ULkkuTS5FJTI1MjIlMkJ0aXRsZSUyNTNEJTI1MjJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1RJTUUlMjUyMiUyNTNFU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1RJTUUlMjUzQyUyNTJGYSUyNTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NnbyUzRVNldHRpbmdzLiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFb3B0aW1pemUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUzQ2klM0UlM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGY2hhcmxpZSUyRnNxcnRsaWIlMkZTZXR0aW5ncy5odG1sJTIzLk9wdC5UeXBlJTIyK3RpdGxlJTNEJTIyY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzLk9wdFR5cGUlMjIlM0VTZXR0aW5ncy5PcHRUeXBlJTNDJTJGYSUzRSUzQyUyRmklM0UrJTI1M0NhJTJCY2xhc3MlMjUzRCUyNTIyeGRvYy1saW5rJTI1MjIlMkJocmVmJTI1M0QlMjUyMi4uJTI1MkYuLiUyNTJGY2hhcmxpZSUyNTJGc3FydGxpYiUyNTJGU2V0dGluZ3MuaHRtbCUyNTIzLk8uUC5ULkkuTS5JLlouRV8uRi5PLlJfLlQuSS5NLkUlMjUyMiUyQnRpdGxlJTI1M0QlMjUyMmNoYXJsaWUuc3FydGxpYi5TZXR0aW5ncy5PUFRJTUlaRV9GT1JfVElNRSUyNTIyJTI1M0VTZXR0aW5ncy5PUFRJTUlaRV9GT1JfVElNRSUyNTNDJTI1MkZhJTI1M0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGZ1bmN0aW9ucyc+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgPC9ncm91cD4KKyAgICA8L3VuaXQ+Cis8L3BhY2thZ2U+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGU5MmQ5ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL3BhY2thZ2UueGRjLmRlcApAQCAtMCwwICsxLDYwIEBACitjbGVhbjo6DQorCSQoUk0pIHBhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnNjaA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX2cxNTANCisJJChSTSkgcGFja2FnZS8udmVyc19yMTUwDQorCSQoUk0pIHBhY2thZ2UvLnZlcnNfYjE1MA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX2MxNTANCisJJChSTSkgcGFja2FnZS8ueGRjLXQzMg0KKwkkKFJNKSBwYWNrYWdlL2NoYXJsaWVfc3FydGxpYi5qYXZhDQorCSQoUk0pIHBhY2thZ2UvY2hhcmxpZV9zcXJ0bGliLmNsYXNzDQorCSQoUk0pIHBhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYw0KKwkkKFJNKSBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oDQorCSQoUk0pIHBhY2thZ2UvcGFja2FnZS5kb2MueG1sDQorCSQoUk0pIHBhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLmNjcw0KKworLmludGVyZmFjZXM6IHBhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnNjaCBwYWNrYWdlLy52ZXJzX2cxNTAgcGFja2FnZS8udmVyc19yMTUwIHBhY2thZ2UvLnZlcnNfYjE1MCBwYWNrYWdlLy52ZXJzX2MxNTAgcGFja2FnZS8ueGRjLXQzMiBwYWNrYWdlL2NoYXJsaWVfc3FydGxpYi5qYXZhIHBhY2thZ2UvY2hhcmxpZV9zcXJ0bGliLmNsYXNzIHBhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYyBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oIHBhY2thZ2UvcGFja2FnZS5kb2MueG1sIHBhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLmNjcyAKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2cxNTAKK3BhY2thZ2UvLnZlcnNfZzE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX3IxNTAKK3BhY2thZ2UvLnZlcnNfcjE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2IxNTAKK3BhY2thZ2UvLnZlcnNfYjE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2MxNTAKK3BhY2thZ2UvLnZlcnNfYzE1MDoKKworLmludGVyZmFjZXM6IFNldHRpbmdzLnhkYyAKKworIyBzY2hlbWEgaW5jbHVkZSBmaWxlIGRlcGVuZGVuY2llcworcGFja2FnZS54czoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS54cw0KKworIyBzY2hlbWEgdXBkYXRlIGRlcGVuZGVuY2llcworcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IFNldHRpbmdzLnhkYw0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiB4ZGMvSVBhY2thZ2UueGRjDQoreGRjL0lQYWNrYWdlLnhkYzoNCit2cGF0aCB4ZGMvSVBhY2thZ2UueGRjICQoWFBLR1ZQQVRIKQ0KKworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvanMuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvanMuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3hiZWFuLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3hiZWFuLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL3hzci9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi94c3IvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS90YXIuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvdGFyLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2NtZC9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9jbWQvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9hbnRsci5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9hbnRsci5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL3NwZWMvamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9zcGVjL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9nZW4vamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vZ2VuL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvZWNqLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2Vjai5qYXINCitlbmRpZgorIyBnb2FscyBmb3IgZmlsZXMgZ2VuZXJhdGVkIGR1cmluZyBzY2hlbWEgZ2VuZXJhdGlvbiBidXQgdW5zcGVjaWZpZWQgYnkgc2NoZW1hJ3MgcGF0dGVybiBydWxlCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL3BhY2thZ2UueGRjLmluYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlL3BhY2thZ2UueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmU5YzhhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jCkBAIC0wLDAgKzEsMTUgQEAKK3BhY2thZ2UueGRjDQorcGFja2FnZS54cw0KK1NldHRpbmdzLnhkYw0KK3BhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnNjaA0KK3BhY2thZ2UvLnZlcnNfZzE1MA0KK3BhY2thZ2UvLnZlcnNfcjE1MA0KK3BhY2thZ2UvLnZlcnNfYjE1MA0KK3BhY2thZ2UvLnZlcnNfYzE1MA0KK3BhY2thZ2UvLnhkYy10MzINCitwYWNrYWdlL2NoYXJsaWVfc3FydGxpYi5qYXZhDQorcGFja2FnZS9jaGFybGllX3NxcnRsaWIuY2xhc3MNCitwYWNrYWdlL3BhY2thZ2VfY2hhcmxpZS5zcXJ0bGliLmMNCitwYWNrYWdlL3BhY2thZ2UuZGVmcy5oDQorcGFja2FnZS9wYWNrYWdlLmRvYy54bWwNCitwYWNrYWdlL2NoYXJsaWUuc3FydGxpYi5jY3MNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YzQwZWIwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIuYwpAQCAtMCwwICsxLDIxIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCitfX0ZBUl9fIGNoYXIgY2hhcmxpZV9zcXJ0bGliX19kdW1teV9fOworCisjZGVmaW5lIF9feGRjX1BLR1ZFUlMgMSwgMCwgMiwgNgorI2RlZmluZSBfX3hkY19QS0dOQU1FIGNoYXJsaWUuc3FydGxpYgorI2RlZmluZSBfX3hkY19QS0dQUkVGSVggY2hhcmxpZV9zcXJ0bGliXworCisjaWZkZWYgX194ZGNfYmxkX3BrZ19jX18KKyNkZWZpbmUgX19zdHJpbmdpZnkoYSkgI2EKKyNkZWZpbmUgX19sb2NhbF9pbmNsdWRlKGEpIF9fc3RyaW5naWZ5KGEpCisjaW5jbHVkZSBfX2xvY2FsX2luY2x1ZGUoX194ZGNfYmxkX3BrZ19jX18pCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYi54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYi54ZGMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMThhMDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS9yZWwvY2hhcmxpZV9zcXJ0bGliLnhkYy5pbmMKQEAgLTAsMCArMSwxMCBAQAorcGFja2FnZS9wYWNrYWdlLmNmZy54ZGMuaW5jCitsaWIvaXNxcnRfbG9vcC5hNjRQCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYworcGFja2FnZS9wYWNrYWdlLnJlbC5kb3QKK2xpYi9pc3FydF91bnJvbGwuYTg2R1cKK2xpYi9pc3FydF91bnJvbGwuYTY0UAorcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKK2xpYi9pc3FydF9sb29wLmE4NkdXCitwYWNrYWdlL3BhY2thZ2UuZXh0LnhtbAorcGFja2FnZS9idWlsZC5jZmcKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0Ly5jcHJvamVjdCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0Ly5jcHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjE5MzNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvLmNwcm9qZWN0CkBAIC0wLDAgKzEsMjY0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZmlsZVZlcnNpb24gNC4wLjA/Pg0KKw0KKzxjcHJvamVjdD4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiPg0KKzxjY29uZmlndXJhdGlvbiBpZD0iMC4xOTY1NDE5MjUwIj4NCis8c3RvcmFnZU1vZHVsZSBidWlsZFN5c3RlbUlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5jb25maWd1cmF0aW9uRGF0YVByb3ZpZGVyIiBpZD0iMC4xOTY1NDE5MjUwIiBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiIG5hbWU9IkRlZmF1bHQiPg0KKzxleHRlcm5hbFNldHRpbmdzLz4NCis8ZXh0ZW5zaW9ucz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5WQ0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5HQVNFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuR0xERXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkdDQ0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5NYWtlRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzwvZXh0ZW5zaW9ucz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9ImNkdEJ1aWxkU3lzdGVtIiB2ZXJzaW9uPSI0LjAuMCI+DQorPGNvbmZpZ3VyYXRpb24gYXJ0aWZhY3ROYW1lPSJjaGFybGllLnNxcnRsaWIudGVzdCIgYnVpbGRQcm9wZXJ0aWVzPSIiIGRlc2NyaXB0aW9uPSIiIGlkPSIwLjE5NjU0MTkyNTAiIG5hbWU9IkRlZmF1bHQiIHBhcmVudD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUucHJlZmJhc2UuY2ZnIj4NCis8Zm9sZGVySW5mbyBpZD0iMC4xOTY1NDE5MjUwLiIgbmFtZT0iLyIgcmVzb3VyY2VQYXRoPSIiPg0KKzx0b29sQ2hhaW4gaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLnRvb2xjaGFpbi4xODQ3NzkwMjU2IiBuYW1lPSJObyBUb29sQ2hhaW4iIHJlc291cmNlVHlwZUJhc2VkRGlzY292ZXJ5PSJmYWxzZSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUucHJlZmJhc2UudG9vbGNoYWluIj4NCis8dGFyZ2V0UGxhdGZvcm0gaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLnRvb2xjaGFpbi4xODQ3NzkwMjU2LjYzMzUwNTA1NSIgbmFtZT0iIi8+DQorPGJ1aWxkZXIgYnVpbGRQYXRoPSIiIGNvbW1hbmQ9IiR7WERDUk9PVH0veGRjIiBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuZGVmYXVsdC5idWlsZGVyLjE4NTAwNDg5NjAiIGtlZXBFbnZpcm9ubWVudEluQnVpbGRmaWxlPSJmYWxzZSIgbWFuYWdlZEJ1aWxkT249ImZhbHNlIiBuYW1lPSJHbnUgTWFrZSBCdWlsZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5kZWZhdWx0LmJ1aWxkZXIiLz4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmxpYnMuMTk5OTg3NDA3NCIgbmFtZT0iaG9sZGVyIGZvciBsaWJyYXJ5IHNldHRpbmdzIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIubGlicyIvPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuMTc1NzUyNzkyNCIgbmFtZT0iR05VIEMrKyIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyIj4NCis8aW5wdXRUeXBlIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlLjk5MjcyMTQ0MyIgbGFuZ3VhZ2VJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZysrIiBsYW5ndWFnZU5hbWU9IkdOVSBDKysiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5jeHhTb3VyY2Usb3JnLmVjbGlwc2UuY2R0LmNvcmUuY3h4SGVhZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuNTg5MDM4MjcwIiBuYW1lPSJHTlUgQyIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyIj4NCis8aW5wdXRUeXBlIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlLjU0MTAzMDE1OSIgbGFuZ3VhZ2VJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZ2NjIiBsYW5ndWFnZU5hbWU9IkdOVSBDIiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuY1NvdXJjZSxvcmcuZWNsaXBzZS5jZHQuY29yZS5jSGVhZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuNDYwNTE1ODU4IiBuYW1lPSJVUEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS4yNTU5NjcyMDEiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhcnNlci51cGMudXBjIiBsYW5ndWFnZU5hbWU9IlVQQyIgc291cmNlQ29udGVudFR5cGU9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhcnNlci51cGMudXBjU291cmNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuNTU3MjkxNTI5IiBuYW1lPSJBc3NlbWJseSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyIj4NCis8aW5wdXRUeXBlIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlLjIwMTAzNzg5NTUiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmFzc2VtYmx5IiBsYW5ndWFnZU5hbWU9IkFzc2VtYmx5IiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuYXNtU291cmNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzwvdG9vbENoYWluPg0KKzwvZm9sZGVySW5mbz4NCis8L2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0idHJ1ZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJGaWxlUHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bGMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsQyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHNjYW5uZXJDb25maWdCdWlsZEluZm8gaW5zdGFuY2VJZD0iMC4xOTY1NDE5MjUwIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJGaWxlUHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bGMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsQyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9zY2FubmVyQ29uZmlnQnVpbGRJbmZvPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZXh0ZXJuYWxTZXR0aW5ncyIvPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkdGFyZ2V0cyI+DQorPGJ1aWxkVGFyZ2V0cz4NCis8dGFyZ2V0IG5hbWU9InRlc3QiIHBhdGg9IiIgdGFyZ2V0SUQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5NYWtlVGFyZ2V0QnVpbGRlciI+DQorPGJ1aWxkQ29tbWFuZD4ke1hEQ1JPT1R9L3hkYzwvYnVpbGRDb21tYW5kPg0KKzxidWlsZEFyZ3VtZW50cz48L2J1aWxkQXJndW1lbnRzPg0KKzxidWlsZFRhcmdldD50ZXN0PC9idWlsZFRhcmdldD4NCis8c3RvcE9uRXJyb3I+dHJ1ZTwvc3RvcE9uRXJyb3I+DQorPHVzZURlZmF1bHRDb21tYW5kPmZhbHNlPC91c2VEZWZhdWx0Q29tbWFuZD4NCis8cnVuQWxsQnVpbGRlcnM+dHJ1ZTwvcnVuQWxsQnVpbGRlcnM+DQorPC90YXJnZXQ+DQorPC9idWlsZFRhcmdldHM+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJjZHRCdWlsZFN5c3RlbSIgdmVyc2lvbj0iNC4wLjAiPg0KKzxwcm9qZWN0IGlkPSJjaGFybGllLnNxcnRsaWIudGVzdC5udWxsLjUxNDMzOTIxNSIgbmFtZT0iY2hhcmxpZS5zcXJ0bGliLnRlc3QiLz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jcHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC8uZGxscyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0Ly5kbGxzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC8uZGxscwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvLmV4ZWN1dGFibGVzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvLmV4ZWN1dGFibGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC8uZXhlY3V0YWJsZXMKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0Ly5pbnRlcmZhY2VzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvLmludGVyZmFjZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0Ly5pbnRlcmZhY2VzCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC8ubGlicmFyaWVzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvLmxpYnJhcmllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvLmxpYnJhcmllcwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvLmxpYnJhcmllcyw2NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC8ubGlicmFyaWVzLDY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvLmxpYnJhcmllcyw2NFAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0Ly5saWJyYXJpZXMsODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0Ly5saWJyYXJpZXMsODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvLmxpYnJhcmllcyw4NkdXCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC8ucHJvamVjdCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0Ly5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzNjNjYjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC8ucHJvamVjdApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPmNoYXJsaWUuc3FydGxpYi50ZXN0PC9uYW1lPg0KKwk8Y29tbWVudD48L2NvbW1lbnQ+DQorCTxwcm9qZWN0cz4NCisJPC9wcm9qZWN0cz4NCisJPGJ1aWxkU3BlYz4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuZ2VubWFrZWJ1aWxkZXI8L25hbWU+DQorCQkJPHRyaWdnZXJzPmNsZWFuLGZ1bGwsaW5jcmVtZW50YWwsPC90cmlnZ2Vycz4NCisJCQk8YXJndW1lbnRzPg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+P25hbWU/PC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5hcHBlbmRfZW52aXJvbm1lbnQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5hdXRvQnVpbGRUYXJnZXQ8L2tleT4NCisJCQkJCTx2YWx1ZT5hbGw8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkQXJndW1lbnRzPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZENvbW1hbmQ8L2tleT4NCisJCQkJCTx2YWx1ZT4ke1hEQ1JPT1R9L3hkYzwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGRMb2NhdGlvbjwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuY2xlYW5CdWlsZFRhcmdldDwva2V5Pg0KKwkJCQkJPHZhbHVlPmNsZWFuPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5jb250ZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYWN0aXZlQ29uZmlnU2V0dGluZ3M8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUF1dG9CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVDbGVhbkJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlRnVsbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZnVsbEJ1aWxkVGFyZ2V0PC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5zdG9wT25FcnJvcjwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnVzZURlZmF1bHRCdWlsZENtZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLlNjYW5uZXJDb25maWdCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQuY29yZS5jbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLlNjYW5uZXJDb25maWdOYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUubWFuYWdlZEJ1aWxkTmF0dXJlPC9uYXR1cmU+DQorCTwvbmF0dXJlcz4NCis8L3Byb2plY3REZXNjcmlwdGlvbj4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0Ly54ZGNlbnYubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5ZWZiMGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC8ueGRjZW52Lm1hawpAQCAtMCwwICsxLDE2IEBACisjCitfWERDQlVJTERDT1VOVCA9IDAKK2lmbmVxICgsJChmaW5kc3RyaW5nIHBhdGgsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDUEFUSCA9IAorb3ZlcnJpZGUgWERDUk9PVCA9IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOQorb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuLi8uLi8uLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlczsuLi8uLi8uLgorSE9TVE9TID0gV2luZG93cworZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEtU1BBQ0UueDY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEtU1BBQ0UueDY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODVkMDEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvaXNxcnRUZXN0MS1TUEFDRS54NjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEtU1BBQ0UueDg2R1cgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9pc3FydFRlc3QxLVNQQUNFLng4NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3MjI4MTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9pc3FydFRlc3QxLVNQQUNFLng4NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEtVElNRS54NjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvaXNxcnRUZXN0MS1USU1FLng2NFAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzllZjY0MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEtVElNRS54NjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEtVElNRS54ODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEtVElNRS54ODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjE4M2U4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvaXNxcnRUZXN0MS1USU1FLng4NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEuYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjAwZDVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvaXNxcnRUZXN0MS5jCkBAIC0wLDAgKzEsMjUgQEAKKy8qDQorICogID09PT09PT09IGNoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEuYyA9PT09PT09PQ0KKyAqLw0KKw0KKyNpbmNsdWRlIDxhY21lL3V0aWxzL0JlbmNoLmg+DQorI2luY2x1ZGUgPGNoYXJsaWUvc3FydGxpYi9pc3FydC5oPg0KKw0KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4NCisgDQorI2luY2x1ZGUgPHN0ZGxpYi5oPg0KKw0KK2ludCBtYWluKCBpbnQgYXJnYywgY2hhciogYXJndltdICkNCit7DQorICAgIHVuc2lnbmVkIGludCB4LCB5Ow0KKw0KKyAgICB4ID0gYXJnYyA+IDAgPyBhdG9pKGFyZ3ZbMV0pIDogMDsNCisgICAgU3lzdGVtX3ByaW50ZigiPT0+IGlzcXJ0KCVkKVxuIiwgeCk7DQorDQorICAgIEJlbmNoX2JlZ2luKCJjeWNsZSBjb3VudDoiKTsNCisgICAgeSA9IGlzcXJ0KHgpOw0KKyAgICBCZW5jaF9lbmQoKTsNCisNCisgICAgU3lzdGVtX3ByaW50ZigiPD09ICVkXG4iLCB5KTsNCisgICAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvaXNxcnRUZXN0MS5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTNhNTcyMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEuY2ZnCkBAIC0wLDAgKzEsMjUgQEAKKy8qDQorICogID09PT09PT09IGNoYXJsaWUvc3FydGxpYi90ZXN0L2lzcXJ0VGVzdDEuY2ZnID09PT09PT09DQorICovDQorDQordmFyIFByb2dyYW0gPSB4ZGMudXNlTW9kdWxlKCd4ZGMuY2ZnLlByb2dyYW0nKTsNCisgDQordmFyIEJlbmNoID0geGRjLnVzZU1vZHVsZSgnYWNtZS51dGlscy5CZW5jaCcpOw0KK3ZhciBTZXR0aW5ncyA9IHhkYy51c2VNb2R1bGUoJ2NoYXJsaWUuc3FydGxpYi5TZXR0aW5ncycpOw0KK3ZhciBTeXN0ZW0gPSB4ZGMudXNlTW9kdWxlKCd4ZGMucnVudGltZS5TeXN0ZW0nKTsNCisgDQoraWYgKFByb2dyYW0uYnVpbGQudGFyZ2V0LmlzYSA9PSAiNjRQIikgew0KKyAgICBCZW5jaC5lbmFibGVGbGFnID0gdHJ1ZTsNCit9DQorZWxzZSB7DQorICAgIEJlbmNoLmVuYWJsZUZsYWcgPSBmYWxzZTsNCit9DQorDQorc3dpdGNoIChQcm9ncmFtLmJ1aWxkLmNmZ0FyZ3Mub3B0TW9kZSkgew0KKyAgICBjYXNlICJTUEFDRSI6DQorICAgICAgICBTZXR0aW5ncy5vcHRpbWl6ZSA9IFNldHRpbmdzLk9QVElNSVpFX0ZPUl9TUEFDRTsNCisgICAgICAgIGJyZWFrOw0KKyAgICBjYXNlICJUSU1FIjoNCisgICAgICAgIFNldHRpbmdzLm9wdGltaXplID0gU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1RJTUU7DQorICAgICAgICBicmVhazsNCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS5ibGQgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDFmNzljCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS5ibGQKQEAgLTAsMCArMSwyNSBAQAorLyoNCisgKiAgPT09PT09PT0gY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS5ibGQgPT09PT09PT0NCisgKi8NCisNCit2YXIgQnVpbGQgPSB4ZGMudXNlTW9kdWxlKCd4ZGMuYmxkLkJ1aWxkRW52aXJvbm1lbnQnKTsNCit2YXIgUGtnID0geGRjLnVzZU1vZHVsZSgneGRjLmJsZC5QYWNrYWdlQ29udGVudHMnKTsNCisgDQordmFyIFRFU1RfSU5GTyA9IFsNCisgICAge3Rlc3ROYW1lOiAiaXNxcnRUZXN0MSIsIHRlc3RWYWx1ZXM6IFsiMTAwIiwgIjEwMDAiLCAiNjU1MzYiXX0NCitdOw0KKyANCitmb3IgZWFjaCAodmFyIHRhcmcgaW4gQnVpbGQudGFyZ2V0cykgew0KKyAgICBmb3IgZWFjaCAodmFyIHRlc3RJbmZvIGluIFRFU1RfSU5GTykgew0KKyAgICAgICAgZm9yIGVhY2ggKHZhciBvcHRNb2RlIGluIFsiU1BBQ0UiLCAiVElNRSJdKSB7DQorICAgICAgICAgICAgdmFyIHByb2dOYW1lID0gdGVzdEluZm8udGVzdE5hbWUgKyAiLSIgKyBvcHRNb2RlOw0KKyAgICAgICAgICAgIHZhciBleGUgPSBQa2cuYWRkRXhlY3V0YWJsZShwcm9nTmFtZSwgdGFyZywgdGFyZy5wbGF0Zm9ybSkNCisgICAgICAgICAgICBleGUuYWRkT2JqZWN0cyhbdGVzdEluZm8udGVzdE5hbWUgKyAiLmMiXSk7DQorICAgICAgICAgICAgZXhlLmF0dHJzLmNmZ1NjcmlwdCA9IHRlc3RJbmZvLnRlc3ROYW1lICsgIi5jZmciOw0KKyAgICAgICAgICAgIGV4ZS5hdHRycy5jZmdBcmdzID0gIntvcHRNb2RlOiAnIiArIG9wdE1vZGUgKyAiJ30iOyANCisgICAgICAgICAgICBmb3IgZWFjaCAodmFyIHYgaW4gdGVzdEluZm8udGVzdFZhbHVlcykgew0KKyAgICAgICAgICAgICAgICBleGUuYWRkVGVzdCh7Z3JvdXBOYW1lOiBvcHRNb2RlLCBhcmdzOiB2fSk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgfQ0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UubWFrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFlMjFhMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UubWFrCkBAIC0wLDAgKzEsNDgyIEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisKK3VuZXhwb3J0IE1BS0VGSUxFX0xJU1QKK292ZXJyaWRlIFBLR0RJUiA9IGNoYXJsaWUvc3FydGxpYi90ZXN0CitYRENJTkNTID0gLUkuIC1JJChzdHJpcCAkKHN1YnN0IDssIC1JLCQoc3Vic3QgJChzcGFjZSksXCQoc3BhY2UpLCQoWFBLR1BBVEgpKSkpCitYRENDRkdESVIgPSBwYWNrYWdlL2NmZy8KKworIworIyBUaGUgZm9sbG93aW5nIGRlcGVuZGVuY2llcyBlbnN1cmUgcGFja2FnZS5tYWsgaXMgcmVidWlsdAorIyBpbiB0aGUgZXZlbnQgdGhhdCBzb21lIGluY2x1ZGVkIEJPTSBzY3JpcHQgY2hhbmdlcy4KKyMKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvSVRhcmdldC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvSVRhcmdldC54cworRDovd29yay90dXRvcmlhbC9yZXBvL2NvbmZpZy5ibGQ6CitwYWNrYWdlLm1hazogRDovd29yay90dXRvcmlhbC9yZXBvL2NvbmZpZy5ibGQKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9QYWNrYWdlQ29udGVudHMueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUGFja2FnZUNvbnRlbnRzLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0xpbnV4ODYueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0xpbnV4ODYueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvSVRhcmdldC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL01pbmd3LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9NaW5ndy54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvcGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvTVZBcm05LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9NVkFybTkueHMKK3BhY2thZ2UubWFrOiBwYWNrYWdlLmJsZAorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL1VDQXJtOS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvVUNBcm05LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL01TUDQzMC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9NU1A0MzAueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvcGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvX2dlbi54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9fZ2VuLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9JVGFyZ2V0LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1JlcG9zaXRvcnkueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUmVwb3NpdG9yeS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9TY3JpcHQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvU2NyaXB0LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9CdWlsZEVudmlyb25tZW50LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0J1aWxkRW52aXJvbm1lbnQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0xpYnJhcnkueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvTGlicmFyeS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcGFja2FnZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9VdGlscy54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9VdGlscy54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0V4ZWN1dGFibGUueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvRXhlY3V0YWJsZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldEZpbHRlci54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9JVGFyZ2V0RmlsdGVyLnhzCitlbmRpZgorCit0aS50YXJnZXRzLkM2NFAucm9vdERpciA/PSBkOi90aS9jNjAwMC9hbGMKK3RpLnRhcmdldHMucGFja2FnZUJhc2UgPz0gRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvCitnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyID89IGU6L3J0c2MvbWluZ3cKK2dudS50YXJnZXRzLnBhY2thZ2VCYXNlID89IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy8KKy5QUkVDSU9VUzogJChYRENDRkdESVIpLyUubzY0UAorLlBIT05ZOiBhbGwsNjRQIC5kbGxzLDY0UCAuZXhlY3V0YWJsZXMsNjRQIHRlc3QsNjRQCithbGwsNjRQOiAuZXhlY3V0YWJsZXMsNjRQCisuZXhlY3V0YWJsZXMsNjRQOiAubGlicmFyaWVzLDY0UAorLmV4ZWN1dGFibGVzLDY0UDogLmRsbHMsNjRQCisuZGxscyw2NFA6IC5saWJyYXJpZXMsNjRQCisubGlicmFyaWVzLDY0UDogLmludGVyZmFjZXMKKwlAJChSTSkgJEAKKwlAJChUT1VDSCkgIiRAIgorCisuaGVscDo6CisJQCQoRUNITykgeGRjIHRlc3QsNjRQCisJQCQoRUNITykgeGRjIC5leGVjdXRhYmxlcyw2NFAKKwlAJChFQ0hPKSB4ZGMgLmxpYnJhcmllcyw2NFAKKwlAJChFQ0hPKSB4ZGMgLmRsbHMsNjRQCisKKy5QUkVDSU9VUzogJChYRENDRkdESVIpLyUubzg2R1cKKy5QSE9OWTogYWxsLDg2R1cgLmRsbHMsODZHVyAuZXhlY3V0YWJsZXMsODZHVyB0ZXN0LDg2R1cKK2FsbCw4NkdXOiAuZXhlY3V0YWJsZXMsODZHVworLmV4ZWN1dGFibGVzLDg2R1c6IC5saWJyYXJpZXMsODZHVworLmV4ZWN1dGFibGVzLDg2R1c6IC5kbGxzLDg2R1cKKy5kbGxzLDg2R1c6IC5saWJyYXJpZXMsODZHVworLmxpYnJhcmllcyw4NkdXOiAuaW50ZXJmYWNlcworCUAkKFJNKSAkQAorCUAkKFRPVUNIKSAiJEAiCisKKy5oZWxwOjoKKwlAJChFQ0hPKSB4ZGMgdGVzdCw4NkdXCisJQCQoRUNITykgeGRjIC5leGVjdXRhYmxlcyw4NkdXCisJQCQoRUNITykgeGRjIC5saWJyYXJpZXMsODZHVworCUAkKEVDSE8pIHhkYyAuZGxscyw4NkdXCisKKworYWxsOiAuZXhlY3V0YWJsZXMgCisuZXhlY3V0YWJsZXM6IC5saWJyYXJpZXMgLmRsbHMKKy5saWJyYXJpZXM6IC5pbnRlcmZhY2VzCisKK1BLR0NGR1MgOj0gJCh3aWxkY2FyZCBwYWNrYWdlLnhzKSBwYWNrYWdlL2J1aWxkLmNmZworLmludGVyZmFjZXM6IHBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggcGFja2FnZS54ZGMgJChQS0dDRkdTKQorCistaW5jbHVkZSBwYWNrYWdlL3BhY2thZ2UueGRjLmRlcAorcGFja2FnZS8lLnhkYy5pbmMgcGFja2FnZS8lX2NoYXJsaWUuc3FydGxpYi50ZXN0LmMgcGFja2FnZS8lLmRlZnMuaDogJS54ZGMgJChQS0dDRkdTKQorCUAkKE1TRykgZ2VuZXJhdGluZyBpbnRlcmZhY2VzIGZvciBwYWNrYWdlIGNoYXJsaWUuc3FydGxpYi50ZXN0IiAoYmVjYXVzZSAkQCBpcyBvbGRlciB0aGFuICQoZmlyc3R3b3JkICQ/KSkiIC4uLgorCSQoWFNSVU4pIC1mIHhkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2J1aWxkLnhzICQoTUtfSURMT1BUUykgLW0gcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAgLWkgcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMgcGFja2FnZS54ZGMKKworLmV4ZWN1dGFibGVzLDY0UCAuZXhlY3V0YWJsZXM6IGlzcXJ0VGVzdDEtU1BBQ0UueDY0UAorCistaW5jbHVkZSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubWFrCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmRlcAorZW5kaWYKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vNjRQIDogfCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAueGRsCitpc3FydFRlc3QxLVNQQUNFLng2NFA6CisJJChSTSkgJEAKKwlAJChNU0cpIGxuazY0UCAkQCAuLi4KKwkkKFJNKSAkKFhEQ0NGR0RJUikvJEAubWFwCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2xuazZ4IC13IC1xIC11IF9jX2ludDAwICAtcSAtbyAkQCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzY0UCAgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLnhkbCAgLWMgLW0gJChYRENDRkdESVIpLyRALm1hcCAtbCAkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9saWIvcnRzNjRwbHVzLmxpYgorCQoraXNxcnRUZXN0MS1TUEFDRS54NjRQOkNfRElSPQoraXNxcnRUZXN0MS1TUEFDRS54NjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK2lzcXJ0VGVzdDEtU1BBQ0UueDY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKKworaWZlcSAoLCQod2lsZGNhcmQgLmxpYnJhcmllcyw2NFApKQoraXNxcnRUZXN0MS1TUEFDRS54NjRQIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5jOiAubGlicmFyaWVzLDY0UAorZW5kaWYKKworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmMgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmggcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLnhkbDogb3ZlcnJpZGUgX1BST0dfTkFNRSA6PSBpc3FydFRlc3QxLVNQQUNFLng2NFAKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5jOiBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuY2ZnCitpc3FydFRlc3QxLVNQQUNFLnRlc3QgdGVzdCw2NFAgdGVzdDogaXNxcnRUZXN0MS1TUEFDRS54NjRQLnRlc3QKKworaXNxcnRUZXN0MS1TUEFDRS54NjRQLnRlc3Q6OiBpc3FydFRlc3QxLVNQQUNFLng2NFAKK2lmZXEgKCwkKF9URVNUTEVWRUwpKQorCUAkKE1BS0UpIC1SIC1yIC0tbm8tcHJpbnQtZGlyZWN0b3J5IC1mICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2JsZC94ZGMubWFrIF9URVNUTEVWRUw9MSBpc3FydFRlc3QxLVNQQUNFLng2NFAudGVzdAorZWxzZQorCUAkKE1TRykgcnVubmluZyAkPCAgLi4uCisJJChjYWxsIEVYRUMuaXNxcnRUZXN0MS1TUEFDRS54NjRQLCApIAorZW5kaWYKKwordGVzdCw2NFAgdGVzdCBTUEFDRS50ZXN0OiBTUEFDRS50ZXN0LDY0UAorCitpc3FydFRlc3QxLVNQQUNFLnRlc3Q6IGlzcXJ0VGVzdDEtU1BBQ0UueDY0UC5TUEFDRS50ZXN0CitTUEFDRS50ZXN0LDY0UDogaXNxcnRUZXN0MS1TUEFDRS54NjRQLlNQQUNFLnRlc3QKK2lzcXJ0VGVzdDEtU1BBQ0UueDY0UC5TUEFDRS50ZXN0OjogaXNxcnRUZXN0MS1TUEFDRS54NjRQCitpZmVxICgsJChfVEVTVExFVkVMKSkKKwlAJChNQUtFKSAtUiAtciAtLW5vLXByaW50LWRpcmVjdG9yeSAtZiAkKFhEQ1JPT1QpL3BhY2thZ2VzL3hkYy9ibGQveGRjLm1hayBfVEVTVExFVkVMPTEgaXNxcnRUZXN0MS1TUEFDRS54NjRQLlNQQUNFLnRlc3QKK2Vsc2UKKwlAJChNU0cpIHJ1bm5pbmcgJDwgMTAwIC4uLgorCSQoY2FsbCBFWEVDLmlzcXJ0VGVzdDEtU1BBQ0UueDY0UCwgKSAxMDAKKwlAJChNU0cpIHJ1bm5pbmcgJDwgMTAwMCAuLi4KKwkkKGNhbGwgRVhFQy5pc3FydFRlc3QxLVNQQUNFLng2NFAsICkgMTAwMAorCUAkKE1TRykgcnVubmluZyAkPCA2NTUzNiAuLi4KKwkkKGNhbGwgRVhFQy5pc3FydFRlc3QxLVNQQUNFLng2NFAsICkgNjU1MzYKK2VuZGlmCisKKworY2xlYW46OiBjbGVhbiw2NFAKKwktJChSTSkgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmNmZworCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuZGVwCisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5jCisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC54ZGMuaW5jCisKK2NsZWFuLDY0UDo6CisJLSQoUk0pIGlzcXJ0VGVzdDEtU1BBQ0UueDY0UAorCS0kKFJNKSAudG1wLGlzcXJ0VGVzdDEtU1BBQ0UueDY0UCwqCisKK2NsZWFuOjogCisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5wanQKKy5leGVjdXRhYmxlcyw2NFAgLmV4ZWN1dGFibGVzOiBpc3FydFRlc3QxLVRJTUUueDY0UAorCistaW5jbHVkZSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5tYWsKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5kZXAKK2VuZGlmCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vNjRQIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgOiB8IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLnhkbAoraXNxcnRUZXN0MS1USU1FLng2NFA6CisJJChSTSkgJEAKKwlAJChNU0cpIGxuazY0UCAkQCAuLi4KKwkkKFJNKSAkKFhEQ0NGR0RJUikvJEAubWFwCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2xuazZ4IC13IC1xIC11IF9jX2ludDAwICAtcSAtbyAkQCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vNjRQIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLnhkbCAgLWMgLW0gJChYRENDRkdESVIpLyRALm1hcCAtbCAkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9saWIvcnRzNjRwbHVzLmxpYgorCQoraXNxcnRUZXN0MS1USU1FLng2NFA6Q19ESVI9Citpc3FydFRlc3QxLVRJTUUueDY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitpc3FydFRlc3QxLVRJTUUueDY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKKworaWZlcSAoLCQod2lsZGNhcmQgLmxpYnJhcmllcyw2NFApKQoraXNxcnRUZXN0MS1USU1FLng2NFAgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuYzogLmxpYnJhcmllcyw2NFAKK2VuZGlmCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmMgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuaCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC54ZGw6IG92ZXJyaWRlIF9QUk9HX05BTUUgOj0gaXNxcnRUZXN0MS1USU1FLng2NFAKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmM6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmNmZworaXNxcnRUZXN0MS1USU1FLnRlc3QgdGVzdCw2NFAgdGVzdDogaXNxcnRUZXN0MS1USU1FLng2NFAudGVzdAorCitpc3FydFRlc3QxLVRJTUUueDY0UC50ZXN0OjogaXNxcnRUZXN0MS1USU1FLng2NFAKK2lmZXEgKCwkKF9URVNUTEVWRUwpKQorCUAkKE1BS0UpIC1SIC1yIC0tbm8tcHJpbnQtZGlyZWN0b3J5IC1mICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2JsZC94ZGMubWFrIF9URVNUTEVWRUw9MSBpc3FydFRlc3QxLVRJTUUueDY0UC50ZXN0CitlbHNlCisJQCQoTVNHKSBydW5uaW5nICQ8ICAuLi4KKwkkKGNhbGwgRVhFQy5pc3FydFRlc3QxLVRJTUUueDY0UCwgKSAKK2VuZGlmCisKK3Rlc3QsNjRQIHRlc3QgVElNRS50ZXN0OiBUSU1FLnRlc3QsNjRQCisKK2lzcXJ0VGVzdDEtVElNRS50ZXN0OiBpc3FydFRlc3QxLVRJTUUueDY0UC5USU1FLnRlc3QKK1RJTUUudGVzdCw2NFA6IGlzcXJ0VGVzdDEtVElNRS54NjRQLlRJTUUudGVzdAoraXNxcnRUZXN0MS1USU1FLng2NFAuVElNRS50ZXN0OjogaXNxcnRUZXN0MS1USU1FLng2NFAKK2lmZXEgKCwkKF9URVNUTEVWRUwpKQorCUAkKE1BS0UpIC1SIC1yIC0tbm8tcHJpbnQtZGlyZWN0b3J5IC1mICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2JsZC94ZGMubWFrIF9URVNUTEVWRUw9MSBpc3FydFRlc3QxLVRJTUUueDY0UC5USU1FLnRlc3QKK2Vsc2UKKwlAJChNU0cpIHJ1bm5pbmcgJDwgMTAwIC4uLgorCSQoY2FsbCBFWEVDLmlzcXJ0VGVzdDEtVElNRS54NjRQLCApIDEwMAorCUAkKE1TRykgcnVubmluZyAkPCAxMDAwIC4uLgorCSQoY2FsbCBFWEVDLmlzcXJ0VGVzdDEtVElNRS54NjRQLCApIDEwMDAKKwlAJChNU0cpIHJ1bm5pbmcgJDwgNjU1MzYgLi4uCisJJChjYWxsIEVYRUMuaXNxcnRUZXN0MS1USU1FLng2NFAsICkgNjU1MzYKK2VuZGlmCisKKworY2xlYW46OiBjbGVhbiw2NFAKKwktJChSTSkgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuY2ZnCisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmRlcAorCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jCisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLnhkYy5pbmMKKworY2xlYW4sNjRQOjoKKwktJChSTSkgaXNxcnRUZXN0MS1USU1FLng2NFAKKwktJChSTSkgLnRtcCxpc3FydFRlc3QxLVRJTUUueDY0UCwqCisKK2NsZWFuOjogCisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLnBqdAorLmV4ZWN1dGFibGVzLDg2R1cgLmV4ZWN1dGFibGVzOiBpc3FydFRlc3QxLVNQQUNFLng4NkdXCisKKy1pbmNsdWRlIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cubWFrCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5kZXAKK2VuZGlmCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLm84NkdXIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vODZHVyA6IHwgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy54ZGwKK2lzcXJ0VGVzdDEtU1BBQ0UueDg2R1c6CisJJChSTSkgJEAKKwlAJChNU0cpIGxuazg2R1cgJEAgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAgICAtbyAkQCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLm84NkdXIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vODZHVyAgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy54ZGwgIC1sc3RkYysrIC1MJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9saWIKKwkKK2lzcXJ0VGVzdDEtU1BBQ0UueDg2R1c6TERfTElCUkFSWV9QQVRIPQoraXNxcnRUZXN0MS1TUEFDRS54ODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitpc3FydFRlc3QxLVNQQUNFLng4NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworCitpZmVxICgsJCh3aWxkY2FyZCAubGlicmFyaWVzLDg2R1cpKQoraXNxcnRUZXN0MS1TUEFDRS54ODZHVyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmM6IC5saWJyYXJpZXMsODZHVworZW5kaWYKKworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5jIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuaCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnhkbDogb3ZlcnJpZGUgX1BST0dfTkFNRSA6PSBpc3FydFRlc3QxLVNQQUNFLng4NkdXCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmM6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuY2ZnCit0ZXN0LDg2R1cgdGVzdCBTUEFDRS50ZXN0OiBTUEFDRS50ZXN0LDg2R1cKKworaXNxcnRUZXN0MS1TUEFDRS50ZXN0OiBpc3FydFRlc3QxLVNQQUNFLng4NkdXLlNQQUNFLnRlc3QKK1NQQUNFLnRlc3QsODZHVzogaXNxcnRUZXN0MS1TUEFDRS54ODZHVy5TUEFDRS50ZXN0Citpc3FydFRlc3QxLVNQQUNFLng4NkdXLlNQQUNFLnRlc3Q6OiBpc3FydFRlc3QxLVNQQUNFLng4NkdXCitpZmVxICgsJChfVEVTVExFVkVMKSkKKwlAJChNQUtFKSAtUiAtciAtLW5vLXByaW50LWRpcmVjdG9yeSAtZiAkKFhEQ1JPT1QpL3BhY2thZ2VzL3hkYy9ibGQveGRjLm1hayBfVEVTVExFVkVMPTEgaXNxcnRUZXN0MS1TUEFDRS54ODZHVy5TUEFDRS50ZXN0CitlbHNlCisJQCQoTVNHKSBydW5uaW5nICQ8IDEwMCAuLi4KKwkkKGNhbGwgRVhFQy5pc3FydFRlc3QxLVNQQUNFLng4NkdXLCApIDEwMAorCUAkKE1TRykgcnVubmluZyAkPCAxMDAwIC4uLgorCSQoY2FsbCBFWEVDLmlzcXJ0VGVzdDEtU1BBQ0UueDg2R1csICkgMTAwMAorCUAkKE1TRykgcnVubmluZyAkPCA2NTUzNiAuLi4KKwkkKGNhbGwgRVhFQy5pc3FydFRlc3QxLVNQQUNFLng4NkdXLCApIDY1NTM2CitlbmRpZgorCitpc3FydFRlc3QxLVNQQUNFLnRlc3QgdGVzdCw4NkdXIHRlc3Q6IGlzcXJ0VGVzdDEtU1BBQ0UueDg2R1cudGVzdAorCitpc3FydFRlc3QxLVNQQUNFLng4NkdXLnRlc3Q6OiBpc3FydFRlc3QxLVNQQUNFLng4NkdXCitpZmVxICgsJChfVEVTVExFVkVMKSkKKwlAJChNQUtFKSAtUiAtciAtLW5vLXByaW50LWRpcmVjdG9yeSAtZiAkKFhEQ1JPT1QpL3BhY2thZ2VzL3hkYy9ibGQveGRjLm1hayBfVEVTVExFVkVMPTEgaXNxcnRUZXN0MS1TUEFDRS54ODZHVy50ZXN0CitlbHNlCisJQCQoTVNHKSBydW5uaW5nICQ8ICAuLi4KKwkkKGNhbGwgRVhFQy5pc3FydFRlc3QxLVNQQUNFLng4NkdXLCApIAorZW5kaWYKKworCitjbGVhbjo6IGNsZWFuLDg2R1cKKwktJChSTSkgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5jZmcKKwktJChSTSkgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5kZXAKKwktJChSTSkgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5jCisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cueGRjLmluYworCitjbGVhbiw4NkdXOjoKKwktJChSTSkgaXNxcnRUZXN0MS1TUEFDRS54ODZHVworCS0kKFJNKSAudG1wLGlzcXJ0VGVzdDEtU1BBQ0UueDg2R1csKgorCisuZXhlY3V0YWJsZXMsODZHVyAuZXhlY3V0YWJsZXM6IGlzcXJ0VGVzdDEtVElNRS54ODZHVworCistaW5jbHVkZSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cubWFrCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmRlcAorZW5kaWYKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5vODZHVyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vODZHVyA6IHwgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLnhkbAoraXNxcnRUZXN0MS1USU1FLng4NkdXOgorCSQoUk0pICRACisJQCQoTVNHKSBsbms4NkdXICRAIC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgICAgLW8gJEAgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLm84NkdXIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm84NkdXICBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cueGRsICAtbHN0ZGMrKyAtTCQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvbGliCisJCitpc3FydFRlc3QxLVRJTUUueDg2R1c6TERfTElCUkFSWV9QQVRIPQoraXNxcnRUZXN0MS1USU1FLng4NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK2lzcXJ0VGVzdDEtVElNRS54ODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKKworaWZlcSAoLCQod2lsZGNhcmQgLmxpYnJhcmllcyw4NkdXKSkKK2lzcXJ0VGVzdDEtVElNRS54ODZHVyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuYzogLmxpYnJhcmllcyw4NkdXCitlbmRpZgorCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuYyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuaCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cueGRsOiBvdmVycmlkZSBfUFJPR19OQU1FIDo9IGlzcXJ0VGVzdDEtVElNRS54ODZHVworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmM6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5jZmcKK2lzcXJ0VGVzdDEtVElNRS50ZXN0IHRlc3QsODZHVyB0ZXN0OiBpc3FydFRlc3QxLVRJTUUueDg2R1cudGVzdAorCitpc3FydFRlc3QxLVRJTUUueDg2R1cudGVzdDo6IGlzcXJ0VGVzdDEtVElNRS54ODZHVworaWZlcSAoLCQoX1RFU1RMRVZFTCkpCisJQCQoTUFLRSkgLVIgLXIgLS1uby1wcmludC1kaXJlY3RvcnkgLWYgJChYRENST09UKS9wYWNrYWdlcy94ZGMvYmxkL3hkYy5tYWsgX1RFU1RMRVZFTD0xIGlzcXJ0VGVzdDEtVElNRS54ODZHVy50ZXN0CitlbHNlCisJQCQoTVNHKSBydW5uaW5nICQ8ICAuLi4KKwkkKGNhbGwgRVhFQy5pc3FydFRlc3QxLVRJTUUueDg2R1csICkgCitlbmRpZgorCit0ZXN0LDg2R1cgdGVzdCBUSU1FLnRlc3Q6IFRJTUUudGVzdCw4NkdXCisKK2lzcXJ0VGVzdDEtVElNRS50ZXN0OiBpc3FydFRlc3QxLVRJTUUueDg2R1cuVElNRS50ZXN0CitUSU1FLnRlc3QsODZHVzogaXNxcnRUZXN0MS1USU1FLng4NkdXLlRJTUUudGVzdAoraXNxcnRUZXN0MS1USU1FLng4NkdXLlRJTUUudGVzdDo6IGlzcXJ0VGVzdDEtVElNRS54ODZHVworaWZlcSAoLCQoX1RFU1RMRVZFTCkpCisJQCQoTUFLRSkgLVIgLXIgLS1uby1wcmludC1kaXJlY3RvcnkgLWYgJChYRENST09UKS9wYWNrYWdlcy94ZGMvYmxkL3hkYy5tYWsgX1RFU1RMRVZFTD0xIGlzcXJ0VGVzdDEtVElNRS54ODZHVy5USU1FLnRlc3QKK2Vsc2UKKwlAJChNU0cpIHJ1bm5pbmcgJDwgMTAwIC4uLgorCSQoY2FsbCBFWEVDLmlzcXJ0VGVzdDEtVElNRS54ODZHVywgKSAxMDAKKwlAJChNU0cpIHJ1bm5pbmcgJDwgMTAwMCAuLi4KKwkkKGNhbGwgRVhFQy5pc3FydFRlc3QxLVRJTUUueDg2R1csICkgMTAwMAorCUAkKE1TRykgcnVubmluZyAkPCA2NTUzNiAuLi4KKwkkKGNhbGwgRVhFQy5pc3FydFRlc3QxLVRJTUUueDg2R1csICkgNjU1MzYKK2VuZGlmCisKKworY2xlYW46OiBjbGVhbiw4NkdXCisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5jZmcKKwktJChSTSkgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmRlcAorCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuYworCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cueGRjLmluYworCitjbGVhbiw4NkdXOjoKKwktJChSTSkgaXNxcnRUZXN0MS1USU1FLng4NkdXCisJLSQoUk0pIC50bXAsaXNxcnRUZXN0MS1USU1FLng4NkdXLCoKKworJSxjb3B5OgorCUAkKGlmICQ8LCwkKE1TRykgZG9uXCd0IGtub3cgaG93IHRvIGJ1aWxkICQqOyBleGl0IDEpCisJQCQoTVNHKSBjcCAkPCAkQAorCSQoUk0pICRACisJJChDUCkgJDwgJEAKKy5QSE9OWTogaXNxcnRUZXN0MS5vODZHVyxjb3B5Citpc3FydFRlc3QxLm84NkdXLGNvcHkgOiBpc3FydFRlc3QxLm84NkdXLDAsY29weSBpc3FydFRlc3QxLm84NkdXLDEsY29weSAKKwlACisKK2lzcXJ0VGVzdDEubzg2R1csMCxjb3B5IDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLm84NkdXCitpc3FydFRlc3QxLm84NkdXLDEsY29weSA6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm84NkdXCitpc3FydFRlc3QxLVRJTUVfeDg2R1cuczg2R1csY29weSA6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5zODZHVworaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5vODZHVyxjb3B5IDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5vODZHVworLlBIT05ZOiBpc3FydFRlc3QxLm82NFAsY29weQoraXNxcnRUZXN0MS5vNjRQLGNvcHkgOiBpc3FydFRlc3QxLm82NFAsMCxjb3B5IGlzcXJ0VGVzdDEubzY0UCwxLGNvcHkgCisJQAorCitpc3FydFRlc3QxLm82NFAsMCxjb3B5IDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLm82NFAKK2lzcXJ0VGVzdDEubzY0UCwxLGNvcHkgOiBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vNjRQCitpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCxjb3B5IDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAKKy5QSE9OWTogaXNxcnRUZXN0MS5zNjRQLGNvcHkKK2lzcXJ0VGVzdDEuczY0UCxjb3B5IDogaXNxcnRUZXN0MS5zNjRQLDAsY29weSBpc3FydFRlc3QxLnM2NFAsMSxjb3B5IAorCUAKKworaXNxcnRUZXN0MS5zNjRQLDAsY29weSA6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5zNjRQCitpc3FydFRlc3QxLnM2NFAsMSxjb3B5IDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEuczY0UAoraXNxcnRUZXN0MS1TUEFDRV94NjRQLnM2NFAsY29weSA6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5zNjRQCisuUEhPTlk6IGlzcXJ0VGVzdDEuczg2R1csY29weQoraXNxcnRUZXN0MS5zODZHVyxjb3B5IDogaXNxcnRUZXN0MS5zODZHVywwLGNvcHkgaXNxcnRUZXN0MS5zODZHVywxLGNvcHkgCisJQAorCitpc3FydFRlc3QxLnM4NkdXLDAsY29weSA6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5zODZHVworaXNxcnRUZXN0MS5zODZHVywxLGNvcHkgOiBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5zODZHVworaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCxjb3B5IDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UAoraXNxcnRUZXN0MS1USU1FX3g2NFAuczY0UCxjb3B5IDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuczY0UAoraXNxcnRUZXN0MS1TUEFDRV94ODZHVy5zODZHVyxjb3B5IDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5zODZHVworaXNxcnRUZXN0MS1USU1FX3g4NkdXLm84NkdXLGNvcHkgOiBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cubzg2R1cKKworJChYRENDRkdESVIpJS5jICQoWERDQ0ZHRElSKSUuaCAkKFhEQ0NGR0RJUiklLnhkbDogJChYRENDRkdESVIpJS5jZmcgLmludGVyZmFjZXMgJChYRENST09UKS9wYWNrYWdlcy94ZGMvY2ZnL01haW4ueHMKKwlAJChNU0cpICJjb25maWd1cmluZyAkKF9QUk9HX05BTUUpIGZyb20gJDwgLi4uIgorCSQoQ09ORklHKSAkKF9QUk9HX1hTT1BUUykgeGRjLmNmZyAkKF9QUk9HX05BTUUpICQoWERDQ0ZHRElSKSQqLmNmZyAkKFhEQ0NGR0RJUikkKgorCisuUEhPTlk6IHJlbGVhc2UsY2hhcmxpZV9zcXJ0bGliX3Rlc3QKK2NoYXJsaWVfc3FydGxpYl90ZXN0LnRhcjogcGFja2FnZS9idWlsZC5jZmcKK2NoYXJsaWVfc3FydGxpYl90ZXN0LnRhcjogcGFja2FnZS9wYWNrYWdlLmV4dC54bWwKK2NoYXJsaWVfc3FydGxpYl90ZXN0LnRhcjogcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKK2NoYXJsaWVfc3FydGxpYl90ZXN0LnRhcjogcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKK2NoYXJsaWVfc3FydGxpYl90ZXN0LnRhcjogcGFja2FnZS9wYWNrYWdlLnJlbC5kb3QKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL3JlbC9jaGFybGllX3NxcnRsaWJfdGVzdC50YXIuZGVwCitlbmRpZgorcGFja2FnZS9yZWwvY2hhcmxpZV9zcXJ0bGliX3Rlc3QvY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9wYWNrYWdlLnJlbC54bWw6CisKK2NoYXJsaWVfc3FydGxpYl90ZXN0LnRhcjogcGFja2FnZS9yZWwvY2hhcmxpZV9zcXJ0bGliX3Rlc3QueGRjLmluYyBwYWNrYWdlL3JlbC9jaGFybGllX3NxcnRsaWJfdGVzdC9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL3BhY2thZ2UucmVsLnhtbAorCUAkKE1TRykgbWFraW5nIHJlbGVhc2UgZmlsZSAkQCAiKGJlY2F1c2Ugb2YgJChmaXJzdHdvcmQgJD8pKSIgLi4uCisJLSQoUk0pICRACisJJChjYWxsIE1LUkVMVEFSLHBhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYl90ZXN0LnhkYy5pbmMscGFja2FnZS9yZWwvY2hhcmxpZV9zcXJ0bGliX3Rlc3QudGFyLmRlcCkKKworCityZWxlYXNlIHJlbGVhc2UsY2hhcmxpZV9zcXJ0bGliX3Rlc3Q6IGFsbCBjaGFybGllX3NxcnRsaWJfdGVzdC50YXIKK2NsZWFuOjogLmNsZWFuCisJLSQoUk0pIGNoYXJsaWVfc3FydGxpYl90ZXN0LnRhcgorCS0kKFJNKSBwYWNrYWdlL3JlbC9jaGFybGllX3NxcnRsaWJfdGVzdC54ZGMuaW5jCisJLSQoUk0pIHBhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYl90ZXN0LnRhci5kZXAKKworY2xlYW46OiAuY2xlYW4KKwktJChSTSkgLmxpYnJhcmllcyAubGlicmFyaWVzLCoKK2NsZWFuOjogCisJLSQoUk0pIC5kbGxzIC5kbGxzLCoKKyMKKyMgVGhlIGZvbGxvd2luZyBjbGVhbiBydWxlIHJlbW92ZXMgdXNlciBzcGVjaWZpZWQKKyMgZ2VuZXJhdGVkIGZpbGVzIG9yIGRpcmVjdG9yaWVzLgorIworCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZSkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvZXh0ZXJuYWwpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9leHRlcm5hbCkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2xpYikpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2xpYikKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2NmZykpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2NmZykKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRSkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL3JlbCkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL3JlbCkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2ludGVybmFsKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvaW50ZXJuYWwpCitlbmRpZgorZW5kaWYKK2NsZWFuOjoKKwktJChSTURJUikgcGFja2FnZQorCisKK2NsZWFuOjogCisJLSQoUk0pIHBhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnRlc3QucGp0CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlLnhkYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5YzkxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlLnhkYwpAQCAtMCwwICsxLDExIEBACisvKg0KKyAqICA9PT09PT09PSBjaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlLnhkYyA9PT09PT09PQ0KKyAqLw0KKw0KK3JlcXVpcmVzIGFjbWUudXRpbHM7DQorcmVxdWlyZXMgY2hhcmxpZS5zcXJ0bGliOw0KKyANCisvKiEgQ29tcGFuaW9uIHRlc3RzIGZvciBjaGFybGllLnNxcnRsaWIgW1JUU0MgUGFja2FnaW5nIFByaW1lcl0gKi8NCitwYWNrYWdlIGNoYXJsaWUuc3FydGxpYi50ZXN0IHsgICAgDQorICAgIC8qIG5vIG1vZHVsZXMgKi8JDQorfTsNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlLy52ZXJzX2IxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlLy52ZXJzX2IxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvLnZlcnNfYjE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS8udmVyc19jMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS8udmVyc19jMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlLy52ZXJzX2MxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvLnZlcnNfZzE1MCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvLnZlcnNfZzE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS8udmVyc19nMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlLy52ZXJzX3IxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlLy52ZXJzX3IxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvLnZlcnNfcjE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS8ueGRjLXQzMiBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvLnhkYy10MzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvLnhkYy10MzIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvYnVpbGQuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9idWlsZC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzc2MzJhMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvYnVpbGQuY2ZnCkBAIC0wLDAgKzEsMTIgQEAKK2lmIChwa2cuJHZlcnMubGVuZ3RoID49IDMpIHsKKyAgICBwa2cuJHZlcnMucHVzaChQYWNrYWdlcy54ZGMuc2VydmljZXMuZ2xvYmFsLlZlcnMuZ2V0RGF0ZSh4ZGMuY3NkKCkgKyAnLy4uJykpOworfQorCitwa2cuYnVpbGQubGlicmFyaWVzID0gWworXTsKKworcGtnLmJ1aWxkLmxpYkRlc2MgPSBbCitdOworaWYgKCdzdWZmaXgnIGluIHhkYy5vbVsneGRjLklQYWNrYWdlJCRMaWJEZXNjJ10pIHsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS54NjRQLm1hcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UueDY0UC5tYXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg2ZDU5MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UueDY0UC5tYXAKQEAgLTAsMCArMSw3NDMgQEAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgICAgICAgIFRNUzMyMEM2eCBMaW5rZXIgUEMgdjYuMS41ICAgICAgICAgICAgICAgICAgICAgIA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKz4+IExpbmtlZCBNb24gTWFyIDE2IDE3OjUyOjI1IDIwMDkNCisNCitPVVRQVVQgRklMRSBOQU1FOiAgIDxpc3FydFRlc3QxLVNQQUNFLng2NFA+DQorRU5UUlkgUE9JTlQgU1lNQk9MOiAiX2NfaW50MDAiICBhZGRyZXNzOiAwMDgwMjllMA0KKw0KKw0KK01FTU9SWSBDT05GSUdVUkFUSU9ODQorDQorICAgICAgICAgbmFtZSAgICAgICAgICAgIG9yaWdpbiAgICBsZW5ndGggICAgICB1c2VkICAgICB1bnVzZWQgICBhdHRyICAgIGZpbGwNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0gIC0tLS0gIC0tLS0tLS0tDQorICBJUkFNICAgICAgICAgICAgICAgICAgMDA4MDAwMDAgICAwMDIwMDAwMCAgMDAwMDNkYzAgIDAwMWZjMjQwICBSVyBYDQorICBERFIgICAgICAgICAgICAgICAgICAgODAwMDAwMDAgICAxMDAwMDAwMCAgMDAwMDM1M2EgIDBmZmZjYWM2ICBSV0lYDQorDQorDQorU0VDVElPTiBBTExPQ0FUSU9OIE1BUA0KKw0KKyBvdXRwdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcy8NCitzZWN0aW9uICAgcGFnZSAgICBvcmlnaW4gICAgICBsZW5ndGggICAgICAgaW5wdXQgc2VjdGlvbnMNCistLS0tLS0tLSAgLS0tLSAgLS0tLS0tLS0tLSAgLS0tLS0tLS0tLSAgIC0tLS0tLS0tLS0tLS0tLS0NCisucGluaXQgICAgIDAgICAgODAwMDAwMDAgICAgMDAwMDAwMDAgICAgIFVOSU5JVElBTElaRUQNCisNCisudGV4dCAgICAgIDAgICAgMDA4MDAwMDAgICAgMDAwMDNkYzAgICAgIA0KKyAgICAgICAgICAgICAgICAgIDAwODAwMDAwICAgIDAwMDAwNzgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2RvUHJpbnRfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDA3ODAgICAgMDAwMDAyYTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQ29yZV9tZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAwYTIwICAgIDAwMDAwMjgwICAgICBydHM2NHBsdXMubGliIDogbWVtb3J5Lm9iaiAoLnRleHQ6X2ZyZWUpDQorICAgICAgICAgICAgICAgICAgMDA4MDBjYTAgICAgMDAwMDAyMDAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3RhcnR1cC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDBlYTAgICAgMDAwMDAxZTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogSGVhcFN0ZC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxMDgwICAgIDAwMDAwMWEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDEyMjAgICAgMDAwMDAxODAgICAgIHJ0czY0cGx1cy5saWIgOiBtZW1vcnkub2JqICgudGV4dDpfbWFsbG9jKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxM2EwICAgIDAwMDAwMTgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFRleHQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMTUyMCAgICAwMDAwMDE2MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBFcnJvci5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxNjgwICAgIDAwMDAwMTIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMTdhMCAgICAwMDAwMDEyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMThjMCAgICAwMDAwMDEwMCAgICAgYm9vdC5hNjRQIDogYXV0b2luaXQubzY0UCAoLnRleHQ6X19hdXRvX2luaXQpDQorICAgICAgICAgICAgICAgICAgMDA4MDE5YzAgICAgMDAwMDAxMDAgICAgIHJ0czY0cGx1cy5saWIgOiBzaW5pdC5vYmogKC50ZXh0Ol9jYWxsX2R0b3JzKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxYWMwICAgIDAwMDAwMTAwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IE1lbW9yeS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxYmMwICAgIDAwMDAwMTAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN0YXJ0dXAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMWNjMCAgICAwMDAwMDBlMCAgICAgcnRzNjRwbHVzLmxpYiA6IGF0b2kub2JqICgudGV4dDpfYXRvaSkNCisgICAgICAgICAgICAgICAgICAwMDgwMWRhMCAgICAwMDAwMDBlMCAgICAgICAgICAgICAgICAgICA6IGV4aXQub2JqICgudGV4dDpfZXhpdCkNCisgICAgICAgICAgICAgICAgICAwMDgwMWU4MCAgICAwMDAwMDBlMCAgICAgICAgICAgICAgICAgICA6IG1lbXNldC5vYmogKC50ZXh0Ol9tZW1zZXQpDQorICAgICAgICAgICAgICAgICAgMDA4MDFmNjAgICAgMDAwMDAwZTAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogQ29yZV9tZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyMDQwICAgIDAwMDAwMGUwICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MpDQorICAgICAgICAgICAgICAgICAgMDA4MDIxMjAgICAgMDAwMDAwZTAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogVGV4dC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyMjAwICAgIDAwMDAwMGMwICAgICBydHM2NHBsdXMubGliIDogdHJnZHJ2Lm9iaiAoLnRleHQ6X0hPU1R3cml0ZSkNCisgICAgICAgICAgICAgICAgICAwMDgwMjJjMCAgICAwMDAwMDBjMCAgICAgICAgICAgICAgICAgICA6IGRpdnUub2JqICgudGV4dDpfX2RpdnUpDQorICAgICAgICAgICAgICAgICAgMDA4MDIzODAgICAgMDAwMDAwYzAgICAgICAgICAgICAgICAgICAgOiBhdGV4aXQub2JqICgudGV4dDpfYXRleGl0KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyNDQwICAgIDAwMDAwMGMwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c01pbi5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyNTAwICAgIDAwMDAwMGMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c01pbi5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyNWMwICAgIDAwMDAwMGMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2Zvcm1hdE51bV9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMjY4MCAgICAwMDAwMDBjMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMjc0MCAgICAwMDAwMDBjMCAgICAgaXNxcnRfbG9vcC5hNjRQIDogaXNxcnRfbG9vcC5vNjRQICgudGV4dCkNCisgICAgICAgICAgICAgICAgICAwMDgwMjgwMCAgICAwMDAwMDBhMCAgICAgcnRzNjRwbHVzLmxpYiA6IHRyZ2Rydi5vYmogKC50ZXh0Ol9IT1NUY2xvY2spDQorICAgICAgICAgICAgICAgICAgMDA4MDI4YTAgICAgMDAwMDAwYTAgICAgICAgICAgICAgICAgICAgOiByZW11Lm9iaiAoLnRleHQ6X19yZW11KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyOTQwICAgIDAwMDAwMGEwICAgICBhY21lLnV0aWxzLmE2NFAgOiBCZW5jaC5vNjRQICgudGV4dDpfYWNtZV91dGlsc19CZW5jaF9lbmRfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDI5ZTAgICAgMDAwMDAwYTAgICAgIGJvb3QuYTY0UCA6IGJvb3QubzY0UCAoLnRleHQ6X2NfaW50MDApDQorICAgICAgICAgICAgICAgICAgMDA4MDJhODAgICAgMDAwMDAwYTAgICAgIHJ0czY0cGx1cy5saWIgOiBtZW1jcHk2NC5vYmogKC50ZXh0Ol9tZW1jcHkpDQorICAgICAgICAgICAgICAgICAgMDA4MDJiMjAgICAgMDAwMDAwYTAgICAgICAgICAgICAgICAgICAgOiBtZW1vcnkub2JqICgudGV4dDpfbWluc2VydCkNCisgICAgICAgICAgICAgICAgICAwMDgwMmJjMCAgICAwMDAwMDBhMCAgICAgICAgICAgICAgICAgICA6IG1lbW9yeS5vYmogKC50ZXh0Ol9tcmVtb3ZlKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyYzYwICAgIDAwMDAwMGEwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEFzc2VydC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfQXNzZXJ0X3JhaXNlX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyZDAwICAgIDAwMDAwMGEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEVycm9yLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMmRhMCAgICAwMDAwMDBhMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXNNaW4ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMmU0MCAgICAwMDAwMDBhMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyZWUwICAgIDAwMDAwMGEwICAgICBpc3FydFRlc3QxLm82NFAgKC50ZXh0KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyZjgwICAgIDAwMDAwMDgwICAgICBhY21lLnV0aWxzLmE2NFAgOiBCZW5jaC5vNjRQICgudGV4dDpfYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzAwMCAgICAwMDAwMDA4MCAgICAgICAgICAgICAgICAgICAgIDogQmVuY2gubzY0UCAoLnRleHQ6X2FjbWVfdXRpbHNfQmVuY2hfYmVnaW5fX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDMwODAgICAgMDAwMDAwODAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogQ29yZV9sYWJlbC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbF9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzEwMCAgICAwMDAwMDA4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBDb3JlX3BhcmFtcy5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDMxODAgICAgMDAwMDAwODAgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzIwMCAgICAwMDAwMDA4MCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBTeXN0ZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaGFyX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMjgwICAgIDAwMDAwMDgwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX3J0c0V4aXRfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDMzMDAgICAgMDAwMDAwODAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVGV4dC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfVGV4dF9wcmludFZpc0Z4bl9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzM4MCAgICAwMDAwMDA4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3hwcmludGZfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDM0MDAgICAgMDAwMDAwNjAgICAgIHJ0czY0cGx1cy5saWIgOiB0cmdtc2cub2JqICgudGV4dDpfcmVhZG1zZykNCisgICAgICAgICAgICAgICAgICAwMDgwMzQ2MCAgICAwMDAwMDA2MCAgICAgICAgICAgICAgICAgICA6IHRyZ21zZy5vYmogKC50ZXh0Ol93cml0ZW1zZykNCisgICAgICAgICAgICAgICAgICAwMDgwMzRjMCAgICAwMDAwMDA2MCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBNZW1vcnkubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM1MjAgICAgMDAwMDAwNjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzTWluLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM1ODAgICAgMDAwMDAwNjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzdGVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM1ZTAgICAgMDAwMDAwNjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzdGVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzY0MCAgICAwMDAwMDA2MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNmEwICAgIDAwMDAwMDQwICAgICBydHM2NHBsdXMubGliIDogc2luaXQub2JqICgudGV4dDpfX19hZGRfZHRvcikNCisgICAgICAgICAgICAgICAgICAwMDgwMzZlMCAgICAwMDAwMDA0MCAgICAgICAgICAgICAgICAgICA6IGFyZ3NfbWFpbi5vYmogKC50ZXh0Ol9fYXJnc19tYWluKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNzIwICAgIDAwMDAwMDQwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEVycm9yLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzc2MCAgICAwMDAwMDA0MCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MpDQorICAgICAgICAgICAgICAgICAgMDA4MDM3YTAgICAgMDAwMDAwNDAgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUykNCisgICAgICAgICAgICAgICAgICAwMDgwMzdlMCAgICAwMDAwMDA0MCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBTeXNNaW4ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9leGl0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzODIwICAgIDAwMDAwMDQwICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzODYwICAgIDAwMDAwMDQwICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM4YTAgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogeGRjX25vaW5pdC5vNjRQICgudGV4dDpfX194ZGNfX2luaXQpDQorICAgICAgICAgICAgICAgICAgMDA4MDM4YzAgICAgMDAwMDAwMjAgICAgIHJ0czY0cGx1cy5saWIgOiBfbG9jay5vYmogKC50ZXh0Ol9fbm9wKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzOGUwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgIDogZXhpdC5vYmogKC50ZXh0Ol9hYm9ydCkNCisgICAgICAgICAgICAgICAgICAwMDgwMzkwMCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol9hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzOTIwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLnRleHQ6X2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM5NDAgICAgMDAwMDAwMjAgICAgIHJ0czY0cGx1cy5saWIgOiBjbG9jay5vYmogKC50ZXh0Ol9jbG9jaykNCisgICAgICAgICAgICAgICAgICAwMDgwMzk2MCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBFcnJvci5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzk4MCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBFcnJvci5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzlhMCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzljMCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBHYXRlTnVsbC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM5ZTAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogR2F0ZU51bGwubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYTAwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEdhdGUubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDNhMjAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogR2F0ZS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2E0MCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYTYwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2E4MCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYWEwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDNhYzAgICAgMDAwMDAwMjAgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYWUwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2IwMCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2FsbG9jX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYjIwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfZnJlZV9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2I0MCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBNZW1vcnkubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDNiNjAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTWVtb3J5Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2I4MCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNZW1vcnkubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYmEwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2JjMCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYmUwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2MwMCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDNjMjAgICAgMDAwMDAwMjAgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDNjNDAgICAgMDAwMDAwMjAgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYzYwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2M4MCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBTeXNNaW4ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2NhMCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9lbnRlcl9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2NjMCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2NlMCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDNkMDAgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3lzdGVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDNkMjAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzdGVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDNkNDAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzdGVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDNkNjAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVGV4dC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2Q4MCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2RhMCAgICAwMDAwMDAyMCAgICAgYWNtZS51dGlscy5jbG9ja3MuYTY0UCA6IENsb2NrU3RkLm82NFAgKC50ZXh0KQ0KKw0KKy5zdGFjayAgICAgMCAgICA4MDAwMDAwMCAgICAwMDAwMTAwMCAgICAgVU5JTklUSUFMSVpFRA0KKyAgICAgICAgICAgICAgICAgIDgwMDAwMDAwICAgIDAwMDAwMDA4ICAgICBib290LmE2NFAgOiBib290Lm82NFAgKC5zdGFjaykNCisgICAgICAgICAgICAgICAgICA4MDAwMDAwOCAgICAwMDAwMGZmOCAgICAgLS1IT0xFLS0NCisNCisuZGF0YSAgICAgIDAgICAgODAwMDAwMDAgICAgMDAwMDAwMDAgICAgIFVOSU5JVElBTElaRUQNCisNCisuYnNzICAgICAgIDAgICAgODAwMDAwMDAgICAgMDAwMDAwMDAgICAgIFVOSU5JVElBTElaRUQNCisNCisuc3lzbWVtICAgIDAgICAgODAwMDEwMDAgICAgMDAwMDEwMDAgICAgIFVOSU5JVElBTElaRUQNCisgICAgICAgICAgICAgICAgICA4MDAwMTAwMCAgICAwMDAwMDAwOCAgICAgcnRzNjRwbHVzLmxpYiA6IG1lbW9yeS5vYmogKC5zeXNtZW0pDQorICAgICAgICAgICAgICAgICAgODAwMDEwMDggICAgMDAwMDBmZjggICAgIC0tSE9MRS0tDQorDQorLmNvbnN0ICAgICAwICAgIDgwMDAyMDAwICAgIDAwMDAwNzhhICAgICANCisgICAgICAgICAgICAgICAgICA4MDAwMjAwMCAgICAwMDAwMDJiOSAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EpDQorICAgICAgICAgICAgICAgICAgODAwMDIyYjkgICAgMDAwMDAwMDMgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMjJiYyAgICAwMDAwMDExZiAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDouc3RyaW5nKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyM2RiICAgIDAwMDAwMDA0ICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEFzc2VydC5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDIzZGYgICAgMDAwMDAwMDEgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMjNlMCAgICAwMDAwMDEwMSAgICAgcnRzNjRwbHVzLmxpYiA6IGN0eXBlLm9iaiAoLmNvbnN0Ol9fY3R5cGVzXykNCisgICAgICAgICAgICAgICAgICA4MDAwMjRlMSAgICAwMDAwMDAwNyAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBTeXN0ZW0ubzY0UCAoLmNvbnN0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNGU4ICAgIDAwMDAwMDU0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSkNCisgICAgICAgICAgICAgICAgICA4MDAwMjUzYyAgICAwMDAwMDA0MCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBUZXh0Lm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMjU3YyAgICAwMDAwMDAzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBFcnJvci5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDI1YWUgICAgMDAwMDAwMmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3RhcnR1cC5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDI1ZDggICAgMDAwMDAwMjggICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI2MDAgICAgMDAwMDAwMjQgICAgIGlzcXJ0VGVzdDEubzY0UCAoLmNvbnN0Oi5zdHJpbmcpDQorICAgICAgICAgICAgICAgICAgODAwMDI2MjQgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogTG9nLm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMjY0NCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjY2NCAgICAwMDAwMDAxZiAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBDb3JlX21lbS5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDI2ODMgICAgMDAwMDAwMDEgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMjY4NCAgICAwMDAwMDAxYyAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNmEwICAgIDAwMDAwMDExICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICguY29uc3Q6X2RpZ3RvaGV4KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNmIxICAgIDAwMDAwMDA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERpYWdzLm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMjZiNSAgICAwMDAwMDAwMyAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNmI4ICAgIDAwMDAwMDBjICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSkNCisgICAgICAgICAgICAgICAgICA4MDAwMjZjNCAgICAwMDAwMDAwOSAgICAgYWNtZS51dGlscy5hNjRQIDogQmVuY2gubzY0UCAoLmNvbnN0Oi5zdHJpbmcpDQorICAgICAgICAgICAgICAgICAgODAwMDI2Y2QgICAgMDAwMDAwMDMgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMjZkMCAgICAwMDAwMDAwOCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjZkOCAgICAwMDAwMDAwOCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNmUwICAgIDAwMDAwMDA2ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSkNCisgICAgICAgICAgICAgICAgICA4MDAwMjZlNiAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNmU4ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjZlYyAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI2ZjAgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjZmNCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjZmOCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNmZjICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjcwMCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjcwNCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3MDggICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzBjICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzEwICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjcxNCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3MTggICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzFjICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3MjAgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3MjQgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjcyOCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3MmMgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3MzAgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3MzQgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjczOCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjczYyAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3NDAgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzQ0ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzQ4ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzRjICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3NTAgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjc1NCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3NTggICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3NWMgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzYwICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3NjQgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzY4ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzZjICAgIDAwMDAwMDAyICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjc2ZSAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzcwICAgIDAwMDAwMDAyICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjc3MiAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzc0ICAgIDAwMDAwMDAyICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzc2ICAgIDAwMDAwMDAyICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDI3NzggICAgMDAwMDAwMDIgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzdhICAgIDAwMDAwMDAyICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDI3N2MgICAgMDAwMDAwMDIgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3N2UgICAgMDAwMDAwMDIgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMjc4MCAgICAwMDAwMDAwMiAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3ODIgICAgMDAwMDAwMDIgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMjc4NCAgICAwMDAwMDAwMiAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3ODYgICAgMDAwMDAwMDIgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMjc4OCAgICAwMDAwMDAwMiAgICAgaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DKQ0KKw0KKy5mYXIgICAgICAgMCAgICA4MDAwMjc5MCAgICAwMDAwMDc2NCAgICAgVU5JTklUSUFMSVpFRA0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzkwICAgIDAwMDAwNGVjICAgICBpc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCAoLmZhcikNCisgICAgICAgICAgICAgICAgICA4MDAwMmM3YyAgICAwMDAwMDAwNCAgICAgcnRzNjRwbHVzLmxpYiA6IHNpbml0Lm9iaiAoLmZhcikNCisgICAgICAgICAgICAgICAgICA4MDAwMmM4MCAgICAwMDAwMDE4OCAgICAgICAgICAgICAgICAgICA6IGF0ZXhpdC5vYmogKC5mYXIpDQorICAgICAgICAgICAgICAgICAgODAwMDJlMDggICAgMDAwMDAwZDAgICAgICAgICAgICAgICAgICAgOiB0cmdkcnYub2JqICguZmFyKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZWQ4ICAgIDAwMDAwMDBjICAgICAgICAgICAgICAgICAgIDogZXhpdC5vYmogKC5mYXIpDQorICAgICAgICAgICAgICAgICAgODAwMDJlZTQgICAgMDAwMDAwMDggICAgICAgICAgICAgICAgICAgOiBfbG9jay5vYmogKC5mYXIpDQorICAgICAgICAgICAgICAgICAgODAwMDJlZWMgICAgMDAwMDAwMDggICAgICAgICAgICAgICAgICAgOiBtZW1vcnkub2JqICguZmFyKQ0KKw0KKy5jaW5pdCAgICAgMCAgICA4MDAwMmVmOCAgICAwMDAwMDMyYyAgICAgDQorICAgICAgICAgICAgICAgICAgODAwMDJlZjggICAgMDAwMDAyNzQgICAgIGlzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQICguY2luaXQpDQorICAgICAgICAgICAgICAgICAgODAwMDMxNmMgICAgMDAwMDAwMDQgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMzE3MCAgICAwMDAwMDAyYyAgICAgcnRzNjRwbHVzLmxpYiA6IGV4aXQub2JqICguY2luaXQpDQorICAgICAgICAgICAgICAgICAgODAwMDMxOWMgICAgMDAwMDAwMDQgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMzFhMCAgICAwMDAwMDAyYyAgICAgICAgICAgICAgICAgICA6IG1lbW9yeS5vYmogKC5jaW5pdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMzFjYyAgICAwMDAwMDAwNCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMWQwICAgIDAwMDAwMDFjICAgICAgICAgICAgICAgICAgIDogX2xvY2sub2JqICguY2luaXQpDQorICAgICAgICAgICAgICAgICAgODAwMDMxZWMgICAgMDAwMDAwMDQgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMzFmMCAgICAwMDAwMDAxYyAgICAgICAgICAgICAgICAgICA6IGF0ZXhpdC5vYmogKC5jaW5pdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMzIwYyAgICAwMDAwMDAwNCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMjEwICAgIDAwMDAwMDBjICAgICAgICAgICAgICAgICAgIDogc2luaXQub2JqICguY2luaXQpDQorICAgICAgICAgICAgICAgICAgODAwMDMyMWMgICAgMDAwMDAwMDQgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMzIyMCAgICAwMDAwMDAwNCAgICAgKC5wYWQuY2luaXQpIFtmaWxsID0gMF0NCisNCisuYXJncyAgICAgIDAgICAgODAwMDMyMjQgICAgMDAwMDAyMDAgICAgIA0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMjI0ICAgIDAwMDAwMjAwICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorDQorLmNpbyAgICAgICAwICAgIDgwMDAzNDI4ICAgIDAwMDAwMTIwICAgICBVTklOSVRJQUxJWkVEDQorICAgICAgICAgICAgICAgICAgODAwMDM0MjggICAgMDAwMDAxMjAgICAgIHJ0czY0cGx1cy5saWIgOiB0cmdtc2cub2JqICguY2lvKQ0KKw0KKw0KK0dMT0JBTCBTWU1CT0xTOiBTT1JURUQgQUxQSEFCRVRJQ0FMTFkgQlkgTmFtZSANCisNCithZGRyZXNzICAgIG5hbWUNCistLS0tLS0tLSAgIC0tLS0NCis4MDAwMDAwMCAgICRic3MNCis4MDAwMDAwMCAgIC5ic3MNCitmZmZmZmZmZiAgIC5kYXRhDQorZmZmZmZmZmYgICAudGV4dA0KKzAwODAzOGUwICAgQyQkRVhJVA0KKzAwODAzNGI4ICAgQyQkSU8kJA0KKzAwODAyODAwICAgX0hPU1RjbG9jaw0KKzAwODAyMjAwICAgX0hPU1R3cml0ZQ0KKzgwMDAzNDI4ICAgX19DSU9CVUZfDQorMDAwMDEwMDAgICBfX1NUQUNLX1NJWkUNCiswMDAwMTAwMCAgIF9fU1lTTUVNX1NJWkUNCis4MDAwMmI5MCAgIF9fX0FTTV9fDQorODAwMDJiOTQgICBfX19JU0FfXw0KKzgwMDAyYjk4ICAgX19fUExBVF9fDQorODAwMDJiOWMgICBfX19UQVJHX18NCis4MDAwMmVlMCAgIF9fX1RJX2VuYWJsZV9leGl0X3Byb2ZpbGVfb3V0cHV0DQorZmZmZmZmZmYgICBfX19USV9wcHJvZl9vdXRfaG5kbA0KK2ZmZmZmZmZmICAgX19fVElfcHJvZl9kYXRhX3NpemUNCitmZmZmZmZmZiAgIF9fX1RJX3Byb2ZfZGF0YV9zdGFydA0KKzgwMDAyYmEwICAgX19fVFJEUl9fDQorMDA4MDM2YTAgICBfX19hZGRfZHRvcg0KKzgwMDAyYzgwICAgX19fYXRleGl0X2Z1bmNfaWRfXw0KK2ZmZmZmZmZmICAgX19fYmluaXRfXw0KKzgwMDAwMDAwICAgX19fYnNzX18NCis4MDAwMzIyNCAgIF9fX2NfYXJnc19fDQorODAwMDJlZjggICBfX19jaW5pdF9fDQorZmZmZmZmZmYgICBfX19kYXRhX18NCitmZmZmZmZmZiAgIF9fX2VkYXRhX18NCis4MDAwMDAwMCAgIF9fX2VuZF9fDQorZmZmZmZmZmYgICBfX19ldGV4dF9fDQorZmZmZmZmZmYgICBfX19waW5pdF9fDQorZmZmZmZmZmYgICBfX190ZXh0X18NCiswMDgwMzhhMCAgIF9fX3hkY19faW5pdA0KKzgwMDAyYzc4ICAgX19feGRjX19pbml0X19hZGRyDQorMDA4MDM2ZTAgICBfX2FyZ3NfbWFpbg0KKzAwODAxOGMwICAgX19hdXRvX2luaXQNCis4MDAwMmVkOCAgIF9fY2xlYW51cF9wdHINCis4MDAwMjNlMCAgIF9fY3R5cGVzXw0KKzAwODAyMmMwICAgX19kaXZ1DQorODAwMDJlZGMgICBfX2R0b3JzX3B0cg0KKzgwMDAyZWU0ICAgX19sb2NrDQorMDA4MDM4YzAgICBfX25vcA0KKzAwODAyOGEwICAgX19yZW11DQorODAwMDAwMDAgICBfX3N0YWNrDQorODAwMDEwMDAgICBfX3N5c19tZW1vcnkNCis4MDAwMmVlOCAgIF9fdW5sb2NrDQorMDA4MDM4ZTAgICBfYWJvcnQNCis4MDAwMmJhNCAgIF9hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyYmE4ICAgX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGF0ZV9fVg0KKzAwODAzOTAwICAgX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UNCiswMDgwMmY4MCAgIF9hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19GDQorMDA4MDM5MjAgICBfYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfZ2V0VGltZV9fRQ0KKzAwODAzMDAwICAgX2FjbWVfdXRpbHNfQmVuY2hfYmVnaW5fX0YNCis4MDAwMjc2YyAgIF9hY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0MNCiswMDgwMjk0MCAgIF9hY21lX3V0aWxzX0JlbmNoX2VuZF9fRg0KKzgwMDAyYmI0ICAgX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVg0KKzAwODAzOTIwICAgX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UNCiswMDgwM2RhMCAgIF9hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19GDQorMDAwMDAyMDAgICBfYXJnc2l6ZQ0KKzAwODAyMzgwICAgX2F0ZXhpdA0KKzAwODAxY2MwICAgX2F0b2kNCiswMDgwMjllMCAgIF9jX2ludDAwDQorMDA4MDE5YzAgICBfY2FsbF9kdG9ycw0KKzAwODAzOTQwICAgX2Nsb2NrDQorODAwMDJjN2MgICBfZHRvcnMNCiswMDgwMWRhMCAgIF9leGl0DQorMDA4MDBhMjAgICBfZnJlZQ0KKzAwODAyNzQwICAgX2lzcXJ0DQorMDA4MDJlZTAgICBfbWFpbg0KKzAwODAxMjIwICAgX21hbGxvYw0KKzAwODAyYTgwICAgX21lbWNweQ0KKzAwODAxZTgwICAgX21lbXNldA0KKzAwODAzNDAwICAgX3JlYWRtc2cNCiswMDgwMzQ2MCAgIF93cml0ZW1zZw0KKzgwMDAyNmU4ICAgX3hkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQw0KKzgwMDAyYmI2ICAgX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YNCiswMDgwMmM2MCAgIF94ZGNfcnVudGltZV9Bc3NlcnRfcmFpc2VfX0kNCis4MDAwMjZlYyAgIF94ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MNCis4MDAwMjZmMCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DDQorODAwMDI2ZjQgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MNCis4MDAwMjZmOCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DDQorODAwMDI3NzAgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DDQorODAwMDJiYjggICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YNCiswMDgwMzA4MCAgIF94ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsX19JDQorMDA4MDMxMDAgICBfeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kNCiswMDgwMDc4MCAgIF94ZGNfcnVudGltZV9Db3JlX2NyZWF0ZU9iamVjdF9fSQ0KKzAwODAxZjYwICAgX3hkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JDQorODAwMDJiYmEgICBfeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WDQorODAwMDJiYmMgICBfeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WDQorODAwMDI2ZmMgICBfeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DDQorODAwMDI3MDAgICBfeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MNCis4MDAwMmJiZSAgIF94ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmJjMCAgIF94ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXRlX19WDQorMDA4MDM3MjAgICBfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0YNCiswMDgwMzk2MCAgIF94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GDQorMDA4MDM5ODAgICBfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRg0KKzgwMDAyNzc0ICAgX3hkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DDQorODAwMDI3MDQgICBfeGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DDQorMDA4MDM5YTAgICBfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UNCiswMDgwMmQwMCAgIF94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRg0KKzgwMDAyNzA4ICAgX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQw0KKzAwODAxNTIwICAgX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRg0KKzgwMDAyYmM0ICAgX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVg0KKzAwODAzOWMwICAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GDQorMDA4MDM5ZTAgICBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YNCis4MDAwMmJjMiAgIF94ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVg0KKzAwODAzYTAwICAgX3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YNCiswMDgwM2EyMCAgIF94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GDQorODAwMDI3MGMgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MNCis4MDAwMjcxMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MNCis4MDAwMjcxNCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MNCis4MDAwMjcxOCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MNCiswMDgwMzc2MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MNCiswMDgwMGVhMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0luc3RhbmNlX2luaXRfX0YNCis4MDAwMjVkOCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQw0KKzgwMDAyNzFjICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MNCis4MDAwMjcyMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQw0KKzgwMDAyNzI0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MNCis4MDAwMjc3OCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MNCis4MDAwMmJlMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyYzBjICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyNjQ0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DDQorODAwMDI2ODQgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQw0KKzAwODAyMDQwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MNCiswMDgwMzdhMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TDQorODAwMDJjMDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WDQorMDA4MDNhNDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRQ0KKzAwODAxMDgwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YNCiswMDgwM2E2MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UNCiswMDgwMTY4MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0YNCiswMDgwM2E4MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FDQorMDA4MDNhYTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRg0KKzAwODAzYWMwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRQ0KKzAwODAzYWUwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRg0KKzgwMDAyNzI4ICAgX3hkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQw0KKzgwMDAyNzJjICAgX3hkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DDQorODAwMDJjMTAgICBfeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyYzEyICAgX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WDQorMDA4MDM3NjAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGVfX2xhYmVsX19TDQorMDA4MDM3YTAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfX2RlbGV0ZV9fUw0KKzAwODAzYjAwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfYWxsb2NfX0UNCiswMDgwM2IyMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2ZyZWVfX0UNCis4MDAwMjc3YyAgIF94ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQw0KKzgwMDAyYzE0ICAgX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmMxOCAgIF94ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGF0ZV9fVg0KKzAwODAxYWMwICAgX3hkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRg0KKzAwODAzYjQwICAgX3hkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0YNCis4MDAwMjczMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQw0KKzAwODAzYjYwICAgX3hkY19ydW50aW1lX01lbW9yeV9mcmVlX19GDQorMDA4MDNiODAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0YNCiswMDgwMzRjMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GDQorODAwMDJjMWMgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmMyMCAgIF94ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YNCiswMDAwMDAwMSAgIF94ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DDQorMDAwMDAwMDEgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MNCis4MDAwMjczNCAgIF94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DDQorMDA4MDFiYzAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GDQorMDA4MDNiYTAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JDQorODAwMDI2ZDAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MNCis4MDAwMjZkOCAgIF94ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DDQorODAwMDI3MzggICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MNCiswMDgwM2JjMCAgIF94ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JDQorODAwMDI2ZTAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BDQorODAwMDI3M2MgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DDQorODAwMDI2YjggICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BDQorODAwMDI3NDAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DDQorMDA4MDBjYTAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kNCis4MDAwMjc5MCAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BDQorODAwMDJjMjggICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyYzJjICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXRlX19WDQorMDA4MDNiZTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FDQorMDA4MDM1MjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19GDQorMDA4MDNjMDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FDQorMDA4MDI0NDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GDQorODAwMDI3NDQgICBfeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MNCiswMDgwM2MyMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRQ0KKzAwODAzN2UwICAgX3hkY19ydW50aW1lX1N5c01pbl9leGl0X19GDQorODAwMDI3ODAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DDQorMDA4MDI1MDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GDQorODAwMDI3NDggICBfeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MNCiswMDgwMzE4MCAgIF94ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JDQorMDA4MDNjNDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FDQorMDA4MDJkYTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GDQorMDA4MDNjNjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FDQorMDA4MDNjODAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GDQorMDA4MDNjYTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UNCiswMDgwM2NjMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRQ0KKzgwMDAyYzQwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQQ0KKzgwMDAyNzRjICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MNCis4MDAwMmMzOCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WDQorODAwMDJjNjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhdGVfX1YNCiswMDgwM2NlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UNCiswMDgwM2QwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0YNCiswMDgwM2MwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2Fib3J0X19FDQorMDA4MDNjMjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9leGl0X19FDQorMDA4MDNjNDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9wdXRjaF9fRQ0KKzAwODAzYzYwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcmVhZHlfX0UNCiswMDgwM2QyMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0YNCiswMDgwMzgyMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRQ0KKzAwODAzNTgwICAgX3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19GDQorMDA4MDM1ODAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19GDQorMDA4MDAwMDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2RvUHJpbnRfX0kNCis4MDAwMjc1MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DDQorMDA4MDI1YzAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2Zvcm1hdE51bV9fSQ0KKzAwODAyZTQwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kNCiswMDgwMzg2MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FDQorMDA4MDM1ZTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRg0KKzAwODAzMjAwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaGFyX19JDQorMDA4MDMyODAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3J0c0V4aXRfX0kNCiswMDgwM2Q0MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRg0KKzAwODAzNWUwICAgX3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19GDQorMDA4MDNkNDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GDQorODAwMDJjNmMgICBfeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmM3MCAgIF94ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMjc4NCAgIF94ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MNCis4MDAwMjAwMCAgIF94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0ENCis4MDAwMjc1NCAgIF94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MNCiswMDgwMzY0MCAgIF94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GDQorODAwMDI3ODggICBfeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQw0KKzgwMDAyNzU4ICAgX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DDQorODAwMDI3NWMgICBfeGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DDQorODAwMDI3NjAgICBfeGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQw0KKzgwMDAyNGU4ICAgX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQQ0KKzgwMDAyNzY0ICAgX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQw0KKzAwODAzMzAwICAgX3hkY19ydW50aW1lX1RleHRfcHJpbnRWaXNGeG5fX0kNCiswMDgwMTdhMCAgIF94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRg0KKzAwODAyNjgwICAgX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19GDQorMDA4MDEzYTAgICBfeGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GDQorMDA4MDNkNjAgICBfeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRg0KKzAwODAyMTIwICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlMl9fSQ0KKzgwMDAyNzY4ICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DDQorMDA4MDNkODAgICBfeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kNCiswMDgwMzM4MCAgIF94ZGNfcnVudGltZV9UZXh0X3hwcmludGZfX0kNCitmZmZmZmZmZiAgIGJpbml0DQorODAwMDJlZjggICBjaW5pdA0KK2ZmZmZmZmZmICAgZWRhdGENCis4MDAwMDAwMCAgIGVuZA0KK2ZmZmZmZmZmICAgZXRleHQNCitmZmZmZmZmZiAgIHBpbml0DQorDQorDQorR0xPQkFMIFNZTUJPTFM6IFNPUlRFRCBCWSBTeW1ib2wgQWRkcmVzcyANCisNCithZGRyZXNzICAgIG5hbWUNCistLS0tLS0tLSAgIC0tLS0NCiswMDAwMDAwMSAgIF94ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DDQorMDAwMDAwMDEgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MNCiswMDAwMDIwMCAgIF9hcmdzaXplDQorMDAwMDEwMDAgICBfX1NUQUNLX1NJWkUNCiswMDAwMTAwMCAgIF9fU1lTTUVNX1NJWkUNCiswMDgwMDAwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fZG9QcmludF9fSQ0KKzAwODAwNzgwICAgX3hkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JDQorMDA4MDBhMjAgICBfZnJlZQ0KKzAwODAwY2EwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JDQorMDA4MDBlYTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GDQorMDA4MDEwODAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRg0KKzAwODAxMjIwICAgX21hbGxvYw0KKzAwODAxM2EwICAgX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRg0KKzAwODAxNTIwICAgX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRg0KKzAwODAxNjgwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRg0KKzAwODAxN2EwICAgX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19GDQorMDA4MDE4YzAgICBfX2F1dG9faW5pdA0KKzAwODAxOWMwICAgX2NhbGxfZHRvcnMNCiswMDgwMWFjMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0YNCiswMDgwMWJjMCAgIF94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0YNCiswMDgwMWNjMCAgIF9hdG9pDQorMDA4MDFkYTAgICBfZXhpdA0KKzAwODAxZTgwICAgX21lbXNldA0KKzAwODAxZjYwICAgX3hkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JDQorMDA4MDIwNDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUw0KKzAwODAyMTIwICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlMl9fSQ0KKzAwODAyMjAwICAgX0hPU1R3cml0ZQ0KKzAwODAyMmMwICAgX19kaXZ1DQorMDA4MDIzODAgICBfYXRleGl0DQorMDA4MDI0NDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GDQorMDA4MDI1MDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GDQorMDA4MDI1YzAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2Zvcm1hdE51bV9fSQ0KKzAwODAyNjgwICAgX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19GDQorMDA4MDI3NDAgICBfaXNxcnQNCiswMDgwMjgwMCAgIF9IT1NUY2xvY2sNCiswMDgwMjhhMCAgIF9fcmVtdQ0KKzAwODAyOTQwICAgX2FjbWVfdXRpbHNfQmVuY2hfZW5kX19GDQorMDA4MDI5ZTAgICBfY19pbnQwMA0KKzAwODAyYTgwICAgX21lbWNweQ0KKzAwODAyYzYwICAgX3hkY19ydW50aW1lX0Fzc2VydF9yYWlzZV9fSQ0KKzAwODAyZDAwICAgX3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19GDQorMDA4MDJkYTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GDQorMDA4MDJlNDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSQ0KKzAwODAyZWUwICAgX21haW4NCiswMDgwMmY4MCAgIF9hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19GDQorMDA4MDMwMDAgICBfYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRg0KKzAwODAzMDgwICAgX3hkY19ydW50aW1lX0NvcmVfYXNzaWduTGFiZWxfX0kNCiswMDgwMzEwMCAgIF94ZGNfcnVudGltZV9Db3JlX2Fzc2lnblBhcmFtc19fSQ0KKzAwODAzMTgwICAgX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0kNCiswMDgwMzIwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hhcl9fSQ0KKzAwODAzMjgwICAgX3hkY19ydW50aW1lX1N5c3RlbV9ydHNFeGl0X19JDQorMDA4MDMzMDAgICBfeGRjX3J1bnRpbWVfVGV4dF9wcmludFZpc0Z4bl9fSQ0KKzAwODAzMzgwICAgX3hkY19ydW50aW1lX1RleHRfeHByaW50Zl9fSQ0KKzAwODAzNDAwICAgX3JlYWRtc2cNCiswMDgwMzQ2MCAgIF93cml0ZW1zZw0KKzAwODAzNGI4ICAgQyQkSU8kJA0KKzAwODAzNGMwICAgX3hkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0YNCiswMDgwMzUyMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0YNCiswMDgwMzU4MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRg0KKzAwODAzNTgwICAgX3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRg0KKzAwODAzNWUwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YNCiswMDgwMzVlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRg0KKzAwODAzNjQwICAgX3hkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0YNCiswMDgwMzZhMCAgIF9fX2FkZF9kdG9yDQorMDA4MDM2ZTAgICBfX2FyZ3NfbWFpbg0KKzAwODAzNzIwICAgX3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GDQorMDA4MDM3NjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TDQorMDA4MDM3NjAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGVfX2xhYmVsX19TDQorMDA4MDM3YTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUw0KKzAwODAzN2EwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19kZWxldGVfX1MNCiswMDgwMzdlMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRg0KKzAwODAzODIwICAgX3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FDQorMDA4MDM4NjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRQ0KKzAwODAzOGEwICAgX19feGRjX19pbml0DQorMDA4MDM4YzAgICBfX25vcA0KKzAwODAzOGUwICAgQyQkRVhJVA0KKzAwODAzOGUwICAgX2Fib3J0DQorMDA4MDM5MDAgICBfYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRQ0KKzAwODAzOTIwICAgX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX2dldFRpbWVfX0UNCiswMDgwMzkyMCAgIF9hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FDQorMDA4MDM5NDAgICBfY2xvY2sNCiswMDgwMzk2MCAgIF94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GDQorMDA4MDM5ODAgICBfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRg0KKzAwODAzOWEwICAgX3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19FDQorMDA4MDM5YzAgICBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0YNCiswMDgwMzllMCAgIF94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRg0KKzAwODAzYTAwICAgX3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YNCiswMDgwM2EyMCAgIF94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GDQorMDA4MDNhNDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRQ0KKzAwODAzYTYwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRQ0KKzAwODAzYTgwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UNCiswMDgwM2FhMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19GDQorMDA4MDNhYzAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FDQorMDA4MDNhZTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GDQorMDA4MDNiMDAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9hbGxvY19fRQ0KKzAwODAzYjIwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfZnJlZV9fRQ0KKzAwODAzYjQwICAgX3hkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0YNCiswMDgwM2I2MCAgIF94ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRg0KKzAwODAzYjgwICAgX3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GDQorMDA4MDNiYTAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JDQorMDA4MDNiYzAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSQ0KKzAwODAzYmUwICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRQ0KKzAwODAzYzAwICAgX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRQ0KKzAwODAzYzAwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfYWJvcnRfX0UNCiswMDgwM2MyMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRQ0KKzAwODAzYzIwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfZXhpdF9fRQ0KKzAwODAzYzQwICAgX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRQ0KKzAwODAzYzQwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcHV0Y2hfX0UNCiswMDgwM2M2MCAgIF94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UNCiswMDgwM2M2MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3JlYWR5X19FDQorMDA4MDNjODAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GDQorMDA4MDNjYTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UNCiswMDgwM2NjMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRQ0KKzAwODAzY2UwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRQ0KKzAwODAzZDAwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRg0KKzAwODAzZDIwICAgX3hkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRg0KKzAwODAzZDQwICAgX3hkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19GDQorMDA4MDNkNDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GDQorMDA4MDNkNjAgICBfeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRg0KKzAwODAzZDgwICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JDQorMDA4MDNkYTAgICBfYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRg0KKzgwMDAwMDAwICAgJGJzcw0KKzgwMDAwMDAwICAgLmJzcw0KKzgwMDAwMDAwICAgX19fYnNzX18NCis4MDAwMDAwMCAgIF9fX2VuZF9fDQorODAwMDAwMDAgICBfX3N0YWNrDQorODAwMDAwMDAgICBlbmQNCis4MDAwMTAwMCAgIF9fc3lzX21lbW9yeQ0KKzgwMDAyMDAwICAgX3hkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQQ0KKzgwMDAyM2UwICAgX19jdHlwZXNfDQorODAwMDI0ZTggICBfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BDQorODAwMDI1ZDggICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MNCis4MDAwMjY0NCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQw0KKzgwMDAyNjg0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MNCis4MDAwMjZiOCAgIF94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0ENCis4MDAwMjZkMCAgIF94ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQw0KKzgwMDAyNmQ4ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MNCis4MDAwMjZlMCAgIF94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0ENCis4MDAwMjZlOCAgIF94ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MNCis4MDAwMjZlYyAgIF94ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MNCis4MDAwMjZmMCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DDQorODAwMDI2ZjQgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MNCis4MDAwMjZmOCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DDQorODAwMDI2ZmMgICBfeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DDQorODAwMDI3MDAgICBfeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MNCis4MDAwMjcwNCAgIF94ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MNCis4MDAwMjcwOCAgIF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MNCis4MDAwMjcwYyAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQw0KKzgwMDAyNzEwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQw0KKzgwMDAyNzE0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQw0KKzgwMDAyNzE4ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQw0KKzgwMDAyNzFjICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MNCis4MDAwMjcyMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQw0KKzgwMDAyNzI0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MNCis4MDAwMjcyOCAgIF94ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MNCis4MDAwMjcyYyAgIF94ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQw0KKzgwMDAyNzMwICAgX3hkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DDQorODAwMDI3MzQgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQw0KKzgwMDAyNzM4ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DDQorODAwMDI3M2MgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DDQorODAwMDI3NDAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DDQorODAwMDI3NDQgICBfeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MNCis4MDAwMjc0OCAgIF94ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQw0KKzgwMDAyNzRjICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MNCis4MDAwMjc1MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DDQorODAwMDI3NTQgICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DDQorODAwMDI3NTggICBfeGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MNCis4MDAwMjc1YyAgIF94ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MNCis4MDAwMjc2MCAgIF94ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DDQorODAwMDI3NjQgICBfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DDQorODAwMDI3NjggICBfeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MNCis4MDAwMjc2YyAgIF9hY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0MNCis4MDAwMjc3MCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MNCis4MDAwMjc3NCAgIF94ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQw0KKzgwMDAyNzc4ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQw0KKzgwMDAyNzdjICAgX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DDQorODAwMDI3ODAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DDQorODAwMDI3ODQgICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DDQorODAwMDI3ODggICBfeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQw0KKzgwMDAyNzkwICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0ENCis4MDAwMmI5MCAgIF9fX0FTTV9fDQorODAwMDJiOTQgICBfX19JU0FfXw0KKzgwMDAyYjk4ICAgX19fUExBVF9fDQorODAwMDJiOWMgICBfX19UQVJHX18NCis4MDAwMmJhMCAgIF9fX1RSRFJfXw0KKzgwMDAyYmE0ICAgX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19yb290X19WDQorODAwMDJiYTggICBfYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXRlX19WDQorODAwMDJiYjQgICBfYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19yb290X19WDQorODAwMDJiYjYgICBfeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyYmI4ICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WDQorODAwMDJiYmEgICBfeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WDQorODAwMDJiYmMgICBfeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WDQorODAwMDJiYmUgICBfeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WDQorODAwMDJiYzAgICBfeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyYmMyICAgX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WDQorODAwMDJiYzQgICBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WDQorODAwMDJiZTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmMwMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1YNCis4MDAwMmMwYyAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMmMxMCAgIF94ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WDQorODAwMDJjMTIgICBfeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmMxNCAgIF94ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WDQorODAwMDJjMTggICBfeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMmMxYyAgIF94ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyYzIwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyYzI4ICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmMyYyAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyYzM4ICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmM0MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0ENCis4MDAwMmM2MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyYzZjICAgX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WDQorODAwMDJjNzAgICBfeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXRlX19WDQorODAwMDJjNzggICBfX194ZGNfX2luaXRfX2FkZHINCis4MDAwMmM3YyAgIF9kdG9ycw0KKzgwMDAyYzgwICAgX19fYXRleGl0X2Z1bmNfaWRfXw0KKzgwMDAyZWQ4ICAgX19jbGVhbnVwX3B0cg0KKzgwMDAyZWRjICAgX19kdG9yc19wdHINCis4MDAwMmVlMCAgIF9fX1RJX2VuYWJsZV9leGl0X3Byb2ZpbGVfb3V0cHV0DQorODAwMDJlZTQgICBfX2xvY2sNCis4MDAwMmVlOCAgIF9fdW5sb2NrDQorODAwMDJlZjggICBfX19jaW5pdF9fDQorODAwMDJlZjggICBjaW5pdA0KKzgwMDAzMjI0ICAgX19fY19hcmdzX18NCis4MDAwMzQyOCAgIF9fQ0lPQlVGXw0KK2ZmZmZmZmZmICAgLmRhdGENCitmZmZmZmZmZiAgIC50ZXh0DQorZmZmZmZmZmYgICBfX19USV9wcHJvZl9vdXRfaG5kbA0KK2ZmZmZmZmZmICAgX19fVElfcHJvZl9kYXRhX3NpemUNCitmZmZmZmZmZiAgIF9fX1RJX3Byb2ZfZGF0YV9zdGFydA0KK2ZmZmZmZmZmICAgX19fYmluaXRfXw0KK2ZmZmZmZmZmICAgX19fZGF0YV9fDQorZmZmZmZmZmYgICBfX19lZGF0YV9fDQorZmZmZmZmZmYgICBfX19ldGV4dF9fDQorZmZmZmZmZmYgICBfX19waW5pdF9fDQorZmZmZmZmZmYgICBfX190ZXh0X18NCitmZmZmZmZmZiAgIGJpbml0DQorZmZmZmZmZmYgICBlZGF0YQ0KK2ZmZmZmZmZmICAgZXRleHQNCitmZmZmZmZmZiAgIHBpbml0DQorDQorWzIzOSBzeW1ib2xzXQ0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLm82NFAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjJlM2M4NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vNjRQLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vNjRQLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNWI1YjQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLm82NFAuZGVwCkBAIC0wLDAgKzEsNDEgQEAKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vNjRQOiBpc3FydFRlc3QxLmMgLi4vLi4vLi4vYWNtZS91dGlscy9CZW5jaC5oIC4uLy4uLy4uL2NoYXJsaWUvc3FydGxpYi9pc3FydC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRsaWIuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaCAuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaCAuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaCAuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvQmVuY2hfUENsb2NrLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5LmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGlua2FnZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmggLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5LmggDQoraXNxcnRUZXN0MS5jOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvQmVuY2guaDoNCisuLi8uLi8uLi9jaGFybGllL3NxcnRsaWIvaXNxcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkbGliLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvSUNsb2NrLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9wYWNrYWdlL0JlbmNoX1BDbG9jay5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbmthZ2UuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzUzOTM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLm84NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vODZHVy5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzg2R1cuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiOGJhYTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzg2R1cuZGVwCkBAIC0wLDAgKzEsMzYgQEAKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvL2lzcXJ0VGVzdDEubzg2R1c6IGlzcXJ0VGVzdDEuYyAuLi8uLi8uLi9hY21lL3V0aWxzL0JlbmNoLmggLi4vLi4vLi4vY2hhcmxpZS9zcXJ0bGliL2lzcXJ0LmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9zdGQuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaCAuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmggLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvSUNsb2NrLmggLi4vLi4vLi4vYWNtZS91dGlscy9wYWNrYWdlL0JlbmNoX1BDbG9jay5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMvZ251L3RhcmdldHMvc3RkLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmggLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19wcm9sb2d1ZS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX2VwaWxvZ3VlLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5LmggDQoraXNxcnRUZXN0MS5jOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvQmVuY2guaDoNCisuLi8uLi8uLi9jaGFybGllL3NxcnRsaWIvaXNxcnQuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3N0ZC5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaDoNCisuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaDoNCisuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvQmVuY2hfUENsb2NrLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0Lmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5Lmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Lmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9zdGQuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaDoNCisuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5Lmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fZXBpbG9ndWUuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0ODlkNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuYwpAQCAtMCwwICsxLDc4MDEgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNkZWZpbmUgX19uZXN0ZWRfXworI2RlZmluZSBfX2NvbmZpZ19fCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKKy8qCisgKiA9PT09PT09PSBHRU5FUkFURUQgU0VDVElPTlMgPT09PT09PT0KKyAqICAgICAKKyAqICAgICBNT0RVTEUgSU5DTFVERVMKKyAqICAgICAKKyAqICAgICA8bW9kdWxlLW5hbWU+IElOVEVSTkFMUworICogICAgIDxtb2R1bGUtbmFtZT4gSU5IRVJJVFMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFZUQUJMRQorICogICAgIDxtb2R1bGUtbmFtZT4gUEFUQ0ggVEFCTEUKKyAqICAgICA8bW9kdWxlLW5hbWU+IERFQ0xBUkFUSU9OUworICogICAgIDxtb2R1bGUtbmFtZT4gT0JKRUNUIE9GRlNFVFMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFRFTVBMQVRFUworICogICAgIDxtb2R1bGUtbmFtZT4gSU5JVElBTElaRVJTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBGVU5DVElPTiBTVFVCUworICogICAgIDxtb2R1bGUtbmFtZT4gUFJPWFkgQk9EWQorICogICAgIDxtb2R1bGUtbmFtZT4gT0JKRUNUIERFU0NSSVBUT1IKKyAqICAgICA8bW9kdWxlLW5hbWU+IFNZU1RFTSBGVU5DVElPTlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFBSQUdNQVMKKyAqICAgICAKKyAqICAgICBJTklUSUFMSVpBVElPTiBFTlRSWSBQT0lOVAorICogICAgIFBST0dSQU0gR0xPQkFMUworICogICAgIENMSU5LIERJUkVDVElWRVMKKyAqLworCisKKy8qCisgKiA9PT09PT09PSBNT0RVTEUgSU5DTFVERVMgPT09PT09PT0KKyAqLworCisjaW5jbHVkZSA8YWNtZS91dGlscy9CZW5jaC5oPgorI2luY2x1ZGUgPGFjbWUvdXRpbHMvY2xvY2tzL0Nsb2NrU3RkLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvQXNzZXJ0Lmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvQ29yZS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0RlZmF1bHRzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRGlhZ3MuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0dhdGUuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9HYXRlTnVsbC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0hlYXBTdGQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Mb2cuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9NYWluLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTWVtb3J5Lmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3RhcnR1cC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c01pbi5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c3RlbS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1RleHQuaD4KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX18gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2hfUENsb2NrIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfXyBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfXyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX18geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIE9iamVjdF9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyB7CisgICAgY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfRnhuc19fKiBfX2Z4bnM7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVjsKKworLyogT2JqZWN0X18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geworICAgIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfRnhuc19fKiBfX2Z4bnM7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgcmVtYWluU2l6ZTsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfU2l6ZSBzdGFydFNpemU7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9IZWFwU3RkX19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIDwtLSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX19yb290X19WOworCisvKiA8LS0geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworLyogPC0tIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCAqLworCisvKiBPYmplY3QgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DID0gezB9OworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0MgPSB7KHZvaWQqKSZ4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DID0geyh2b2lkKikmeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0N9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9GeG5zX18gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQywgLyogYmFzZV9fICovCisgICAgJmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FLAorICAgIHsKKyAgICAgICAgTlVMTCwgLyogX19jcmVhdGUgKi8KKyAgICAgICAgTlVMTCwgLyogX19kZWxldGUgKi8KKyAgICAgICAgTlVMTCwgLyogX19sYWJlbCAqLworICAgICAgICAweDgwMTMsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBWVEFCTEUgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX0ZYTlNfX0MgKi8KK2NvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX0Z4bnNfXyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZ4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQywgLyogYmFzZV9fICovCisgICAgJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRSwKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRSwKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSwKKyAgICB7CisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TLAorICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUywKKyAgICAgICAgMHg4MDA4LCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBWVEFCTEUgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX0ZYTlNfX0MgKi8KK2NvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfRnhuc19fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmeGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MuX19zZnhucywgLyogX19zeXNwICovCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSwKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UsCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FLAorICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UsCisgICAgeworICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TLAorICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TLAorICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MsCisgICAgICAgIDB4ODAwYywgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBWVEFCTEUgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX0ZYTlNfX0MgKi8KK2NvbnN0IHhkY19ydW50aW1lX1N5c01pbl9GeG5zX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQywgLyogYmFzZV9fICovCisgICAgJnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MuX19zZnhucywgLyogX19zeXNwICovCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FLAorICAgIHsKKyAgICAgICAgTlVMTCwgLyogX19jcmVhdGUgKi8KKyAgICAgICAgTlVMTCwgLyogX19kZWxldGUgKi8KKyAgICAgICAgTlVMTCwgLyogX19sYWJlbCAqLworICAgICAgICAweDgwMGYsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfU3RyaW5nIGJlZ2luTXNnOworICAgIHhkY19JbnQgYmVnaW5DbG9jazsKKyAgICB4ZGNfSW50IG92ZXJoZWFkOworfSBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCithY21lX3V0aWxzX0JlbmNoX01vZHVsZV9TdGF0ZV9fIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaF9QQ2xvY2sgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfVUludDE2IGNvdW50OworfSB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fdGFibGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzFdOworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgcmVtYWluUlRTU2l6ZTsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1NpemVUIG1heERlZmF1bHRUeXBlQWxpZ247Cit9IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19JbnQqIHN0YXRlVGFiOworICAgIHhkY19Cb29sIGV4ZWNGbGFnOworICAgIHhkY19Cb29sIHJ0c0RvbmVGbGFnOworfSB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKHhkY19JbnQpOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FICovCitleHRlcm4geGRjX0ludCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UoeGRjX0ludCk7CisKKy8qIC0tPiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FICovCitleHRlcm4geGRjX0ludCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FKHhkY19JbnQpOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FbM107CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVszXTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geworICAgIF9fVEFfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fb3V0YnVmIG91dGJ1ZjsKKyAgICB4ZGNfVUludCBvdXRpZHg7CisgICAgeGRjX0Jvb2wgd3JhcHBlZDsKK30geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQVsxMDI0XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSAqLworZXh0ZXJuIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0koeGRjX0NoYXIqLHhkY19VSW50KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX18geworICAgIF9fVEFfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fYXRleGl0SGFuZGxlcnMgYXRleGl0SGFuZGxlcnM7CisgICAgeGRjX0ludCBudW1BdGV4aXRIYW5kbGVyczsKKyAgICB4ZGNfSW50IGV4aXRTdGF0dXM7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXzsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0FbOF07CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kgKi8KK2V4dGVybiB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0koeGRjX0NoYXIqKix4ZGNfQ2hhcioqLHhkY19WYUxpc3QseGRjX3J1bnRpbWVfU3lzdGVtX1BhcnNlRGF0YSopOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19QdHIgY2hhckJhc2U7CisgICAgeGRjX1B0ciBub2RlQmFzZTsKK30geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiIHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVs2OTddOworCisvKiAtLT4geGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FbMjFdOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMuY2ZnLlByb2dyYW0gVEVNUExBVEUgPT09PT09PT0KKyAqLworCisvKgorICogID09PT09PT09IF9fQVNNX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhpcyBwcm9ncmFtJ3MgcGFja2FnZS1wYXRoIHJlbGF0aXZlIGFzc2VtYmx5IGRpcmVjdG9yeQorICovCitfX0ZBUl9fIGNoYXIgKl9fQVNNX18gPSAiQCgjKV9fQVNNX18gPSBEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQIjsKKworLyoKKyAqICA9PT09PT09PSBfX0lTQV9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBJU0Egb2YgdGhpcyBleGVjdXRhYmxlLiAgVGhpcyBzeW1ib2wgaXMgdXNlZCBieSBwbGF0Zm9ybQorICogIHNwZWNpZmljICJleGVjIiBjb21tYW5kcyB0aGF0IHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBJU0E7IGUuZy4sIGdkYgorICovCitfX0ZBUl9fIGNoYXIgKl9fSVNBX18gPSAiQCgjKV9fSVNBX18gPSA2NFAiOworCisvKgorICogID09PT09PT09IF9fUExBVF9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBwbGF0Zm9ybSB0aGF0IGNhbiBydW4gdGhpcyBleGVjdXRhYmxlLiAgVGhpcworICogIHN5bWJvbCBpcyB1c2VkIGJ5IHBsYXRmb3JtIGluZGVwZW5kZW50ICJleGVjIiBjb21tYW5kcworICovCitfX0ZBUl9fIGNoYXIgKl9fUExBVF9fID0gIkAoIylfX1BMQVRfXyA9IHRpLnBsYXRmb3Jtcy5zaW02NFB4eCI7CisKKy8qCisgKiAgPT09PT09PT0gX19UQVJHX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHRhcmdldCB1c2VkIHRvIGJ1aWxkIHRoaXMgZXhlY3V0YWJsZS4KKyAqLworX19GQVJfXyBjaGFyICpfX1RBUkdfXyA9ICJAKCMpX19UQVJHX18gPSB0aS50YXJnZXRzLkM2NFAiOworCisvKgorICogID09PT09PT09IF9fVFJEUl9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBjbGFzcyB0aGF0IGNhbiByZWFkL3BhcnNlIHRoaXMgZXhlY3V0YWJsZS4KKyAqLworX19GQVJfXyBjaGFyICpfX1RSRFJfXyA9ICJAKCMpX19UUkRSX18gPSB0aS50YXJnZXRzLm9tZi5jb2YuQ29mZiI7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fRih2b2lkKSB7CisgICAgcmV0dXJuICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWIgPT0gMCB8fCAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiWzBdIDwgMDsKK30KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMV0gPCAwOworfQoreGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMl0gPCAwOworfQorCisKK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSh2b2lkKQoreworICAgIHhkY19JbnQgc3RhdGVbNF07CisgICAgeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0Moc3RhdGUsIDMpOworfQorCisjaWZkZWYgX190aV9fCisjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JKTsKKyNlbmRpZgorCisvKgorICogID09PT09PT09IHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBib290c3RyYXAgaW5pdGlhbGl6YXRpb24gY29kZSBhcyBlYXJseSBhcworICogIHBvc3NpYmxlIGluIHRoZSBzdGFydHVwIHByb2Nlc3MuICBUaGlzIGZ1bmN0aW9uIHNpbXBseSBjYWxscyBhbnkKKyAqICBjb25maWd1cmVkIG51bGwuCisgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kodm9pZCkKK3sKK30KKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBURU1QTEFURSA9PT09PT09PQorICovCisKKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UeXBlcy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1RleHQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Bc3NlcnQuaD4KKworLyoKKyAqICA9PT09PT09PSBTeXN0ZW1fcHJpbnRmRXh0ZW5kX19JID09PT09PT09CisgKiAgVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgb3B0aW9uYWwgZXh0ZW5kZWQgZm9ybWF0cyBvZiBwcmludGYuCisgKi8KK0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKENoYXIgKipwYnVmLCBDaGFyICoqcGZtdCwgCisgICAgVmFMaXN0IHZhLCB4ZGNfcnVudGltZV9TeXN0ZW1fUGFyc2VEYXRhICpwYXJzZSkKK3sKKyAgICBDaGFyICAgICpmbXQgPSAqcGZtdDsKKyAgICBJbnQgICAgIHJlczsKKyAgICBDaGFyICAgIGM7CisgICAgQm9vbCAgICBmb3VuZCA9IEZBTFNFOworICAgIAorICAgIHJlcyA9IDA7CisKKyAgICBjID0gKmZtdCsrOworICAgICpwZm10ID0gKnBmbXQgKyAxOworCisgICAgCisgICAgaWYgKGMgPT0gJyQnKSB7CisgICAgICAgIGMgPSAqZm10Kys7CisgICAgICAgICpwZm10ID0gKnBmbXQgKyAxOworICAgICAgICBpZiAoYyA9PSAnTCcpIHsKKyAgICAgICAgICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsICpsYWIgPSBwYXJzZS0+YUZsYWcgPyAKKyAgICAgICAgICAgICAgICAoeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwgKilpYXJnVG9QdHIodmFfYXJnKHZhLCBJQXJnKSkgOgorICAgICAgICAgICAgICAgICh4ZGNfcnVudGltZV9UeXBlc19MYWJlbCAqKXZhX2FyZyh2YSwgdm9pZCAqKTsKKyAgICAgICAgICAgIHJlcyArPSB4ZGNfcnVudGltZV9UZXh0X3B1dExhYihsYWIsIHBidWYsIHBhcnNlLT5wcmVjaXMpOworICAgICAgICAgICAgcGFyc2UtPmxlbiA9IDA7CisgICAgICAgICAgICBmb3VuZCA9IFRSVUU7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGlmIChmb3VuZCA9PSBGQUxTRSkgeworICAgICAgICAgLyogb3RoZXIgY2hhcmFjdGVyIChsaWtlICUpIGNvcHkgdG8gb3V0cHV0ICovCisgICAgICAgICAqKHBhcnNlLT5wdHIpID0gYzsKKyAgICAgICAgIHBhcnNlLT5sZW4gPSAxOworICAgIH0KKworICAgIHJldHVybiAocmVzKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KK2V4dGVybiBpbnQgSE9TVHdyaXRlKGludCwgY2hhciAqLCB1bnNpZ25lZCk7CisjZWxzZQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjZW5kaWYKKworLyoKKyAqICA9PT09PT09PSBTeXNNaW5fb3V0cHV0X19JID09PT09PT09CisgKiAgSE9TVFdyaXRlIG9ubHkgd3JpdGVzIGEgbWF4IG9mIE4gY2hhcnMgYXQgYSB0aW1lLiBUaGUgYW1vdW50IGl0IHdyaXRlcworICogIGlzIHJldHVybmVkLiBUaGlzIGZ1bmN0aW9uIGxvb3BzIHVudGlsIHRoZSBlbnRpcmUgYnVmZmVyIGlzIHdyaXR0ZW4uCisgKiAgQmVpbmcgYSBzdGF0aWMgZnVuY3Rpb24gYWxsb3dzIGl0IHRvIGNvbmRpdGlvbmFsbHkgY29tcGlsZSBvdXQuCisgKi8KK1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSShDaGFyICpidWYsIFVJbnQgc2l6ZSkKK3sKKyNpZmRlZiBfX3RpX18KKyAgICBJbnQgcHJpbnRDb3VudDsKKyAgICAKKyAgICB3aGlsZSAoc2l6ZSAhPSAwKSB7CisgICAgICAgIHByaW50Q291bnQgPSBIT1NUd3JpdGUoMSwgYnVmLCBzaXplKTsKKyAgICAgICAgaWYgKChwcmludENvdW50IDw9IDApIHx8IChwcmludENvdW50ID4gc2l6ZSkpIHsKKyAgICAgICAgICAgIGJyZWFrOyAgLyogZW5zdXJlIHdlIG5ldmVyIGdldCBzdHVjayBpbiBhbiBpbmZpbml0ZSBsb29wICovCisgICAgICAgIH0KKyAgICAgICAgc2l6ZSAtPSBwcmludENvdW50OworICAgICAgICBidWYgPSBidWYgKyBwcmludENvdW50OworICAgIH0gICAgCisjZWxzZQorICAgIGZ3cml0ZShidWYsIDEsIHNpemUsIHN0ZG91dCk7CisjZW5kaWYKK30KKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKy8qCisgKiAgPT09PT09PT0geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIGlzIGluZGlyZWN0bHkgY2FsbGVkIHdpdGhpbiBUZXh0LmMgdGhyb3VnaAorICogIHRoZSB2aXNpdFJvcGVGeG4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgb2YgeGRjLnJ1bnRpbWUuVGV4dC4KKyAqLworVm9pZCB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSh4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLAorICAgIHhkY19GeG4gdmlzRnhuLCB4ZGNfUHRyIHZpc1N0YXRlKQoreworICAgIHhkY19TdHJpbmcgc3RhY2tbNF07CisgICAgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKHJvcGUsIHZpc0Z4biwgdmlzU3RhdGUsIHN0YWNrKTsKK30KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX18gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCithY21lX3V0aWxzX0JlbmNoX01vZHVsZV9TdGF0ZV9fIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAwLCAgLyogYmVnaW5Nc2cgKi8KKyAgICAoeGRjX0ludCkweDAsICAvKiBiZWdpbkNsb2NrICovCisgICAgKHhkY19JbnQpMHgwLCAgLyogb3ZlcmhlYWQgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2sgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtcyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMTQ7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9iaiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4biBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2YgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZSBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBlbmFibGVGbGFnX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWcgYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DID0gMTsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaF9QQ2xvY2sgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCithY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfXyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2sgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9iaiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXMgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAxMzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjggYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2YgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX18geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwMjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogRV9hc3NlcnRGYWlsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCkzMDkpIDw8IDE2IHwgMCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwMzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEFfaW5pdGlhbGl6ZWRQYXJhbXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtcyB4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMSkgPDwgMTYgfCAxNik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX18geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDQ7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBzZXRNYXNrRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MgPSAwOworCisvKiBkaWN0QmFzZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2UgeGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSkwKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICh4ZGNfVUludDE2KTB4MCwgIC8qIGNvdW50ICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBFX2dlbmVyaWNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpYyB4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCkzMzEpIDw8IDE2IHwgMCk7CisKKy8qIEVfbWVtb3J5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeSB4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTM0OSkgPDwgMTYgfCAwKTsKKworLyogcG9saWN5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9wb2xpY3kgeGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DID0geGRjX3J1bnRpbWVfRXJyb3JfVU5XSU5EOworCisvKiByYWlzZUhvb2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9vayB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2spKCh4ZGNfRnhuKXhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKSk7CisKKy8qIG1heERlcHRoX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aCB4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQyA9ICh4ZGNfVUludDE2KTB4MTA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DOworCisvKiBPYmplY3RfX1BBUkFNU19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MgPSB7CisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAwLCAvKiBfX3NlbGYgKi8KKyAgICAwLCAvKiBfX2Z4bnMgKi8KKyAgICAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyopJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLl9faXBybXMsIC8qIGluc3RhbmNlICovCisgICAgeworICAgICAgICBzaXplb2YgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAgICAgMCwgIC8qIG5hbWUgKi8KKyAgICB9LCAgLyogaW5zdGFuY2UgKi8KK307CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WID0ge3sKKyAgICB7JnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgIC8qIGxpbmsubmV4dCAqLworICAgICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmt9LCAgLyogbGluay5wcmV2ICovCisgICAgKFVDaGFyKikwLCAgLyogaW5zdEFyckJlZyAqLworICAgIChVQ2hhciopKDArLTEpLCAgLyogaW5zdEFyckVuZCAqLworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18pLCAgLyogaW5zdFNpemUgKi8KKyAgICAwLCAgLyogY3VyICovCisgICAgMCwgIC8qIGRpYWdzTWFzayAqLworfX07CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA4OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQyA9IHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyk7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQzsKKworLyogT2JqZWN0X19QQVJBTVNfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyA9IHsKKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgMCwgLyogX19zZWxmICovCisgICAgMCwgLyogX19meG5zICovCisgICAgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLl9faXBybXMsIC8qIGluc3RhbmNlICovCisgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MCkpLCAgLyogc2l6ZSAqLworICAgIHsKKyAgICAgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgICAgIDAsICAvKiBuYW1lICovCisgICAgfSwgIC8qIGluc3RhbmNlICovCit9OworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YgPSB7eworICAgIHsmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssICAvKiBsaW5rLm5leHQgKi8KKyAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmt9LCAgLyogbGluay5wcmV2ICovCisgICAgKFVDaGFyKil4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1YsICAvKiBpbnN0QXJyQmVnICovCisgICAgKFVDaGFyKikoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WKzApLCAgLyogaW5zdEFyckVuZCAqLworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyksICAvKiBpbnN0U2l6ZSAqLworICAgIDAsICAvKiBjdXIgKi8KKyAgICAwLCAgLyogZGlhZ3NNYXNrICovCit9fTsKKworLyogT2JqZWN0X190YWJsZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1ZbMV0gPSB7CisgICAgey8qIGluc3RhbmNlIzAgKi8KKyAgICAgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLAorICAgICAgICAoKHhkY19VQXJnKSgodm9pZCopMHgxMDAwKSksICAvKiByZW1haW5TaXplICovCisgICAgICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDEwMDApKSwgIC8qIHN0YXJ0U2l6ZSAqLworICAgIH0sCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoKHhkY19VQXJnKSgodm9pZCopMHgwKSksICAvKiByZW1haW5SVFNTaXplICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBjOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DID0gMTsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MgPSBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyk7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MgPSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1Y7CisKKy8qIEVfbm9SVFNNZW1vcnlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeSB4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCk0MjEpIDw8IDE2IHwgMCk7CisKKy8qIEFfemVyb1NpemVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpOTUpIDw8IDE2IHwgMTYpOworCisvKiBBX2ludmFsaWRUb3RhbEZyZWVTaXplX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTE0MCkgPDwgMTYgfCAxNik7CisKKy8qIEFfaW52YWxpZEFsaWdubWVudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMjAxKSA8PCAxNiB8IDE2KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIExfY29uc3RydWN0X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTQ2OCkgPDwgMTYgfCA0KTsKKworLyogTF9jcmVhdGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NyZWF0ZSB4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNDkyKSA8PCAxNiB8IDQpOworCisvKiBMX2Rlc3RydWN0X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk1MTMpIDw8IDE2IHwgNCk7CisKKy8qIExfZGVsZXRlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZWxldGUgeGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTUzMikgPDwgMTYgfCA0KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX01haW5fTW9kdWxlX18geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBhOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICh4ZGNfU2l6ZVQpMHg4LCAgLyogbWF4RGVmYXVsdFR5cGVBbGlnbiAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBiOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBkZWZhdWx0SGVhcEluc3RhbmNlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZSB4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyA9ICh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVlswXTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICgoeGRjX0ludCopMCksICAvKiBzdGF0ZVRhYiAqLworICAgIDAsICAvKiBleGVjRmxhZyAqLworICAgIDAsICAvKiBydHNEb25lRmxhZyAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BWzNdID0geworICAgICgoeGRjX0ludCgqKSh4ZGNfSW50KSkoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKSksICAvKiBbMF0gKi8KKyAgICAoKHhkY19JbnQoKikoeGRjX0ludCkpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSkpLCAgLyogWzFdICovCisgICAgKCh4ZGNfSW50KCopKHhkY19JbnQpKSgoeGRjX0Z4bilhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FKSksICAvKiBbMl0gKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVszXSA9IHsKKyAgICAxLCAgLyogWzBdICovCisgICAgMSwgIC8qIFsxXSAqLworICAgIDAsICAvKiBbMl0gKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGQ7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBtYXhQYXNzZXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzIHhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DID0gKHhkY19JbnQpMHgyMDsKKworLyogZmlyc3RGeG5zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQyA9IHswLCAwfTsKKworLyogbGFzdEZ4bnNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyA9IHswLCAwfTsKKworLyogc3RhcnRNb2RzRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4biB4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc19fSSkpOworCisvKiBleGVjSW1wbF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCkoKHhkY19GeG4peGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JKSk7CisKKy8qIHNmeG5UYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIpeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BKTsKKworLyogc2Z4blJ0c19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyl4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfX291dGJ1ZiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BWzEwMjRdOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQSwgIC8qIG91dGJ1ZiAqLworICAgICh4ZGNfVUludCkweDAsICAvKiBvdXRpZHggKi8KKyAgICAwLCAgLyogd3JhcHBlZCAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBmOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBidWZTaXplX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZSB4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyA9ICh4ZGNfU2l6ZVQpMHg0MDA7CisKKy8qIGZsdXNoQXRFeGl0X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DID0gMTsKKworLyogb3V0cHV0RnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuKTApOworCisvKiBvdXRwdXRGdW5jX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYyB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JKSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0FbOF0gPSB7CisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFswXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbMV0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzJdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFszXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbNF0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzVdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs2XSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbN10gKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0EsICAvKiBhdGV4aXRIYW5kbGVycyAqLworICAgICh4ZGNfSW50KTB4MCwgIC8qIG51bUF0ZXhpdEhhbmRsZXJzICovCisgICAgKHhkY19JbnQpMHhjYWZlLCAgLyogZXhpdFN0YXR1cyAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBlOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBBX2Nhbm5vdEZpdEludG9BcmdfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmcgeGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkyNjEpIDw8IDE2IHwgMTYpOworCisvKiBtYXhBdGV4aXRIYW5kbGVyc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQyA9ICh4ZGNfSW50KTB4ODsKKworLyogZXh0ZW5kRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuIHhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1RleHRfTW9kdWxlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoKHhkY19QdHIpKCh2b2lkKikmeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzBdKSksICAvKiBjaGFyQmFzZSAqLworICAgICgoeGRjX1B0cikoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FbMF0pKSwgIC8qIG5vZGVCYXNlICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FbNjk3XSA9IHsKKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzBdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsyXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs4XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTBdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTJdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMTNdICovCisgICAgKHhkY19DaGFyKTB4NTAsICAvKiBbMTRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTVdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTddICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMThdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTldICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMjBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMjJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjNdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjRdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMzBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzFdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMzJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzNdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMzRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzVdICovCisgICAgKHhkY19DaGFyKTB4NTAsICAvKiBbMzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzddICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzldICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNDBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDJdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDVdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDZdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFs1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFs3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs3N10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFs3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFs4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs4N10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFs4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs5M10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzk0XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzk1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzk2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzk3XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzk4XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzk5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzEwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsxMDFdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMTAyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzEwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxMDRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTA1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzEwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMDddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTA4XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsxMTBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTExXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzExMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxMTNdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMTE0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzExNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMTZdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMTE3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzExOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFsxMTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTIwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMjJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTIzXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzEyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMjVdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTI2XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzEyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMjhdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTI5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzEzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxMzFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTMyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFsxMzRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTM1XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzEzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFsxMzddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTM4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMTM5XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzE0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNDFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTQyXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzE0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFsxNDRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTQ1XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzE0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNDddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTQ4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxNTBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTUxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxNTNdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMTU0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNTZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTU3XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzE1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNTldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTYwXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzE2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NiwgIC8qIFsxNjJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTYzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNjVdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMTY2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxNjhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTY5XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxNzFdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTcyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsxNzRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTc1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNzddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTc4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxODBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTgxXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFsxODNdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTg0XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxODZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTg3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxODldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTkwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxOTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTkzXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzE5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxOTVdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTk2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxOThdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTk5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMjAwXSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzIwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMDJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjAzXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzIwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFsyMDVdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjA2XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzIwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsyMDhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjA5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzIxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMTFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjEyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzIxM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMTRdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbMjE1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyMTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjE4XSAqLworICAgICh4ZGNfQ2hhcikweDcxLCAgLyogWzIxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFsyMjBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjIxXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzIyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyMjNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjI0XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzIyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMjZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjI3XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzIyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyMjldICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMjMwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzIzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFsyMzJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjMzXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzIzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyMzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjM2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzIzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyMzhdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjM5XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzI0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNDFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjQyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNDRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjQ1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzI0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyNDddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjQ4XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzI0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNTBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjUxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNTNdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjU0XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzI1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyNTZdICovCisgICAgKHhkY19DaGFyKTB4NzcsICAvKiBbMjU3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyNTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFsyNjBdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMjYxXSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzI2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsyNjNdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjY0XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNjZdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjY3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NiwgIC8qIFsyNjldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjcwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OSwgIC8qIFsyNzJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjczXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyNzVdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMjc2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzI3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsyNzhdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMjc5XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyODFdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjgyXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzI4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyODRdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjg1XSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzI4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFsyODddICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMjg4XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzI4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyOTBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjkxXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFsyOTNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjk0XSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzI5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyOTZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjk3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsyOTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzAwXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzMwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszMDJdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMzAzXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzMwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMDVdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMzA2XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzMwN10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzMwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszMDldICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzEwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMTJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzEzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzMxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMTVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzE2XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzMxN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszMThdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzE5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzMyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMjFdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMzIyXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzMyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzI1XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzMyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMjddICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzI4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzMzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFszMzFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzMyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzMzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMzRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzM1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFszMzddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzM4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNDBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQxXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNDNdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMzQ0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszNDZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzQ3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzQ4XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFszNTBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMzUxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNTNdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzU0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFszNTZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzU3XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzM1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNTldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzYwXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzM2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFszNjJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzYzXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzM2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszNjVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzY2XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzM2N10gKi8KKyAgICAoeGRjX0NoYXIpMHgzZCwgIC8qIFszNjhdICovCisgICAgKHhkY19DaGFyKTB4MzAsICAvKiBbMzY5XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzM3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszNzFdICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbMzcyXSAqLworICAgICh4ZGNfQ2hhcikweDJjLCAgLyogWzM3M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNzRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzc1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFszNzddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzc4XSAqLworICAgICh4ZGNfQ2hhcikweDNkLCAgLyogWzM3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszODBdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMzgxXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzgyXSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzM4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszODRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzg1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFszODddICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbMzg4XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOTBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzkxXSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzM5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszOTNdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMzk0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFszOTZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzk3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszOTldICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDAwXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzQwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0MDJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDAzXSAqLworICAgICh4ZGNfQ2hhcikweDc3LCAgLyogWzQwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0MDVdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDA2XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0MDhdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDA5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzQxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs0MTFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDEyXSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzQxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MTRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDE1XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs0MTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNDE4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1NCwgIC8qIFs0MjFdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDIyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQyM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MjRdICovCisgICAgKHhkY19DaGFyKTB4NTIsICAvKiBbNDI1XSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzQyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs0MjddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDI4XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MzBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDMxXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MzNdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNDM0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MzZdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDM3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MzldICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNDQwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0NDJdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDQzXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzQ0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NDVdICovCisgICAgKHhkY19DaGFyKTB4NDUsICAvKiBbNDQ2XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzQ0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0NDhdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNDQ5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQ1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0NTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDUyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MCwgIC8qIFs0NTRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDU1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQ1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs0NTddICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDU4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs0NjBdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNDYxXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQ2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0NjNdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDY0XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQ2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs0NjZdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0NjddICovCisgICAgKHhkY19DaGFyKTB4M2MsICAvKiBbNDY4XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0NzBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDcxXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0NzNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDc0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQ3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0NzZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDc3XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQ3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0NzldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDgwXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzQ4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0ODJdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNDgzXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQ4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs0ODVdICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNDg2XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzQ4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0ODhdICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNDg5XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzQ5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQ5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYywgIC8qIFs0OTJdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDkzXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0OTVdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDk2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0OThdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDk5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzUwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MDFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNTAyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUwM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1MDRdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTA1XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzUwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs1MDddICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTA4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzUwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs1MTBdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNTExXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTEyXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUxM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MTRdICovCisgICAgKHhkY19DaGFyKTB4M2UsICAvKiBbNTE1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs1MTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTE4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzUxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1MjBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTIxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzUyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs1MjNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTI0XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzUyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MjZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNTI3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzUyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1MjldICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNTMwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTMxXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MzNdICovCisgICAgKHhkY19DaGFyKTB4M2UsICAvKiBbNTM0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs1MzZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTM3XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzUzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MzldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTQwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs1NDJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTQzXSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzU0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1NDVdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTQ2XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzU0N10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFs1NDldICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTUwXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzU1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs1NTJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NTNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTU0XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzU1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs1NTZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTU3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzU1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs1NTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTYwXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzU2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFs1NjNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTY0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NjZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTY3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MywgIC8qIFs1NzBdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNTcxXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NzNdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NzRdICovCisgICAgKHhkY19DaGFyKTB4NDQsICAvKiBbNTc1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFs1NzddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTc4XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzU3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs1ODBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTgxXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg0NCwgIC8qIFs1ODRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNTg1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzU4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs1ODddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTg4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTg5XSAqLworICAgICh4ZGNfQ2hhcikweDQ1LCAgLyogWzU5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OTFdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTkyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzU5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OTRdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1OTVdICovCisgICAgKHhkY19DaGFyKTB4NDcsICAvKiBbNTk2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzU5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1OThdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTk5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjAwXSAqLworICAgICh4ZGNfQ2hhcikweDQ3LCAgLyogWzYwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MDJdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjAzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZSwgIC8qIFs2MDVdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNjA2XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzYwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2MDhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MDldICovCisgICAgKHhkY19DaGFyKTB4NGMsICAvKiBbNjEwXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzYxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs2MTJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MTNdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNjE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs2MTZdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjE3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjE4XSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzYxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MjBdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNjIxXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzYyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs2MjNdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNjI0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjI1XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzYyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MjddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjI4XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzYyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2MzBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjMxXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzYzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2MzRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjM1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs2MzddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjM4XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzYzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs2NDBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NDFdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjQyXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzY0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs2NDRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjQ1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs2NDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NDhdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjQ5XSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzY1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs2NTFdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNjUyXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzY1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2NTRdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NTVdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNjU2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFs2NThdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjU5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjYwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzY2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2NjJdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNjYzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs2NjVdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NjZdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNjY3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs2NjldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjcwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzY3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs2NzJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NzNdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjc0XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzY3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2NzZdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjc3XSAqLworICAgICh4ZGNfQ2hhcikweDZiLCAgLyogWzY3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs2NzldICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNjgwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjgxXSAqLworICAgICh4ZGNfQ2hhcikweDQzLCAgLyogWzY4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2ODNdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjg0XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzY4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YiwgIC8qIFs2ODZdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjg3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs2ODldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2OTBdICovCisgICAgKHhkY19DaGFyKTB4NDIsICAvKiBbNjkxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2OTNdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjk0XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzY5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY5Nl0gKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVsyMV0gPSB7CisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDAsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MCwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFswXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMjUsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjJhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzFdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjMzLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzJdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjNhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzNdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjNmLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzRdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjQ4LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzVdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjRlLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzZdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjU0LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzddICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjU5LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzhdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjYyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzldICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjY2LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzEwXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI2YiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxMV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNzIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTJdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjdhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzEzXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI4MiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxNF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyODksICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTVdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjkwLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE2XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHgyOTUsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjliLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE3XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDExLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDJhMiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxOF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAxMiwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyYWEsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTldICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMTEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MmIzLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzIwXSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAxMDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIG5hbWVVbmtub3duX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duIHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MgPSAie3Vua25vd24taW5zdGFuY2UtbmFtZX0iOworCisvKiBuYW1lRW1wdHlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5IHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DID0gIntlbXB0eS1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIG5hbWVTdGF0aWNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpYyB4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MgPSAie3N0YXRpYy1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIGlzTG9hZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkIHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MgPSAxOworCisvKiBjaGFyVGFiX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiKXhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSk7CisKKy8qIG5vZGVUYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X25vZGVUYWIpeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BKTsKKworLyogY2hhckNudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250IHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQyA9ICh4ZGNfSW50MTYpMHgyYjk7CisKKy8qIG5vZGVDbnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZUNudCB4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MgPSAoeGRjX0ludDE2KTB4MTU7CisKKy8qIHZpc2l0Um9wZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kpKTsKKworLyogdmlzaXRSb3BlRnhuMl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMikoKHhkY19GeG4peGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKSk7CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2ggRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBiZWdpbl9fRSAqLworeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRSggeGRjX1N0cmluZyBtc2cgKSAKK3sKKyAgICBhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19GKG1zZyk7Cit9CisKKy8qIGVuZF9fRSAqLworeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9lbmRfX0UoIHZvaWQgKSAKK3sKKyAgICBhY21lX3V0aWxzX0JlbmNoX2VuZF9fRigpOworfQorCisvKiBNb2R1bGVfc3RhcnR1cCAqLworeGRjX0ludCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FKCB4ZGNfSW50IHN0YXRlICkKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRihzdGF0ZSk7Cit9CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZ2V0VGltZV9fRSAqLworYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0YoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBzZXRNYXNrX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FKCB4ZGNfU3RyaW5nIGNvbnRyb2wgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19GKGNvbnRyb2wpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGNoZWNrX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GKGViKTsKK30KKworLyogZ2V0RGF0YV9fRSAqLworeGRjX3J1bnRpbWVfRXJyb3JfRGF0YSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0YoZWIpOworfQorCisvKiBnZXRDb2RlX19FICovCit4ZGNfVUludDE2IHhkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19GKGViKTsKK30KKworLyogZ2V0SWRfX0UgKi8KK3hkY19ydW50aW1lX0Vycm9yX0lkIHhkY19ydW50aW1lX0Vycm9yX2dldElkX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0YoZWIpOworfQorCisvKiBnZXRNc2dfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19GKGViKTsKK30KKworLyogZ2V0U2l0ZV9fRSAqLworeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0YoZWIpOworfQorCisvKiBpbml0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19GKGViKTsKK30KKworLyogcHJpbnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRihlYik7Cit9CisKKy8qIHJhaXNlWF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIsIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1vZCwgeGRjX1N0cmluZyBmaWxlLCB4ZGNfSW50IGxpbmUsIHhkY19ydW50aW1lX0Vycm9yX0lkIGlkLCB4ZGNfSUFyZyBhcmcxLCB4ZGNfSUFyZyBhcmcyICkgCit7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GKGViLCBtb2QsIGZpbGUsIGxpbmUsIGlkLCBhcmcxLCBhcmcyKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGVudGVyU3lzdGVtX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YoKTsKK30KKworLyogbGVhdmVTeXN0ZW1fX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0UoIHhkY19JQXJnIGtleSApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0Yoa2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRihxdWFsKTsKK30KKworLyogZW50ZXJfX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUgX19pbnN0ICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GKCh2b2lkKilfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSBfX2luc3QsIHhkY19JQXJnIGtleSApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19GKCh2b2lkKilfX2luc3QsIGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBmcmVlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0YoKHZvaWQqKV9faW5zdCwgYmxvY2ssIHNpemUpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0LCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRigodm9pZCopX19pbnN0LCBzdGF0cyk7Cit9CisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YoKHZvaWQqKV9faW5zdCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogaXNCbG9ja2luZ19fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GKCh2b2lkKilfX2luc3QpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBkb1ByaW50X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRSggeGRjX3J1bnRpbWVfTG9nX0V2ZW50UmVjKiBldlJlYyApIAoreworICAgIHhkY19ydW50aW1lX0xvZ19kb1ByaW50X19GKGV2UmVjKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBjYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GKGhlYXAsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9mcmVlX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRihoZWFwLCBibG9jaywgc2l6ZSk7Cit9CisKKy8qIGdldFN0YXRzX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgCit7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19GKGhlYXAsIHN0YXRzKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19JbnQgcXVhbCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0YoaGVhcCwgcXVhbCk7Cit9CisKKy8qIGdldE1heERlZmF1bHRUeXBlQWxpZ25fX0UgKi8KK3hkY19TaXplVCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRigpOworfQorCisvKiB2YWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19DaGFyIHZhbHVlLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgdmFsdWUsIGViKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGV4ZWNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRigpOworfQorCisvKiBydHNEb25lX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19GKCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GKHN0cik7Cit9CisKKy8qIGV4aXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRihzdGF0KTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRigpOworfQorCisvKiBwdXRjaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRihjaCk7Cit9CisKKy8qIHJlYWR5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GKCk7Cit9CisKKy8qIE1vZHVsZV9zdGFydHVwICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSggeGRjX0ludCBzdGF0ZSApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRihzdGF0ZSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GKHN0cik7Cit9CisKKy8qIGF0ZXhpdF9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX0F0ZXhpdEhhbmRsZXIgaGFuZGxlciApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19GKGhhbmRsZXIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0Yoc3RhdCk7Cit9CisKKy8qIHB1dGNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19GKGNoKTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRigpOworfQorCisvKiBwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRSggeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7Cit9CisKKy8qIHByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIGFwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0UoIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKK30KKworLyogYXByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRihmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogc3ByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworfQorCisvKiBzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiBhc3ByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7Cit9CisKKy8qIGFzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIHZwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19GKGZtdCwgdmEpOworfQorCisvKiBhdnByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRihmbXQsIHZhKTsKK30KKworLyogdnNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GKGJ1ZiwgZm10LCB2YSk7Cit9CisKKy8qIGF2c3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRihidWYsIGZtdCwgdmEpOworfQorCisvKiBNb2R1bGVfc3RhcnR1cCAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UoIHhkY19JbnQgc3RhdGUgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0Yoc3RhdGUpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogY29yZFRleHRfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Db3JkQWRkciBjb3JkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0YoY29yZCk7Cit9CisKKy8qIHJvcGVUZXh0X19FICovCit4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRihyb3BlKTsKK30KKworLyogbWF0Y2hSb3BlX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLCB4ZGNfU3RyaW5nIHBhdCwgeGRjX0ludCogbGVucCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRihyb3BlLCBwYXQsIGxlbnApOworfQorCisvKiBwdXRMYWJfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0UoIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0YobGFiLCBidWZwLCBsZW4pOworfQorCisvKiBwdXRNb2RfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0UoIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1pZCwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRihtaWQsIGJ1ZnAsIGxlbik7Cit9CisKKy8qIHB1dFNpdGVfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19FKCB4ZGNfcnVudGltZV9UeXBlc19TaXRlKiBzaXRlLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRihzaXRlLCBidWZwLCBsZW4pOworfQorCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoX1BDbG9jayBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBnZXRUaW1lX19FICovCithY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX2dldFRpbWVfX0UoIHZvaWQgKQoreworICAgIHJldHVybiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lKCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkdhdGVOdWxsICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyKXBhLCBzaXplb2YoeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2RlbGV0ZV9fUyggUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoaW5zdHApOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIGNvbnN0IHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoZHN0LCBzcmMsIHBzeiwgaXN6KTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGVfX2xhYmVsX19TKCBQdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5KHF1YWwpOworfQorCisvKiBlbnRlcl9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FKCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0KTsKK30KKworLyogbGVhdmVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19JQXJnIGtleSApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmUoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QsIGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5IZWFwU3RkICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1Mob2EsIG9zeiwgYWEsICh4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyKXBhLCBzaXplb2YoeGRjX3J1bnRpbWVfSUhlYXBfUGFyYW1zKSwgZWIpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKGluc3RwKTsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit2b2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgY29uc3QgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKQoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zX19pbml0X19TKGRzdCwgc3JjLCBwc3osIGlzeik7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZV9fbGFiZWxfX1MoIFB0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1Mob2JqLCBsYWIpOworfQorCisvKiBhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2FsbG9jX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0lIZWFwX2FsbG9jKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0LCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBmcmVlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2ZyZWVfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKQoreworICAgIHhkY19ydW50aW1lX0lIZWFwX2ZyZWUoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QsIGJsb2NrLCBzaXplKTsKK30KKworLyogaXNCbG9ja2luZ19fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9JSGVhcF9pc0Jsb2NraW5nKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0KTsKK30KKworLyogZ2V0U3RhdHNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApCit7CisgICAgeGRjX3J1bnRpbWVfSUhlYXBfZ2V0U3RhdHMoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QsIHN0YXRzKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5HYXRlTnVsbCAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1Mob2EsIG9zeiwgYWEsICh4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0cilwYSwgc2l6ZW9mKHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfUGFyYW1zKSwgZWIpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2RlbGV0ZV9fUyggUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoaW5zdHApOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgY29uc3QgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyhkc3QsIHNyYywgcHN6LCBpc3opOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlX19sYWJlbF9fUyggUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1Mob2JqLCBsYWIpOworfQorCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5KHF1YWwpOworfQorCisvKiBlbnRlcl9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCk7Cit9CisKKy8qIGxlYXZlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX0lBcmcga2V5ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZSgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCwga2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLlN5c01pbiAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogYWJvcnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnQoc3RyKTsKK30KKworLyogZXhpdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9leGl0X19FKCB4ZGNfSW50IHN0YXQgKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9leGl0KHN0YXQpOworfQorCisvKiBmbHVzaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9mbHVzaF9fRSggdm9pZCApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoKCk7Cit9CisKKy8qIHB1dGNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoKGNoKTsKK30KKworLyogcmVhZHlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcmVhZHlfX0UoIHZvaWQgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHkoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgT0JKRUNUIERFU0NSSVBUT1IgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK3R5cGVkZWYgc3RydWN0IHsgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fIHMwOyBjaGFyIGM7IH0geGRjX3J1bnRpbWVfR2F0ZU51bGxfX19TMTsKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQyA9IHsKKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MsIC8qIGZ4blRhYiAqLworICAgICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssIC8qIG1vZExpbmsgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19TMSkgLSBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fKSwgLyogb2JqQWxpZ24gKi8KKyAgICAwLCAvKiBvYmpIZWFwICovCisgICAgMCwgLyogb2JqTmFtZSAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18pLCAvKiBvYmpTaXplICovCisgICAgKFB0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MsIC8qIHBybXNJbml0ICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyksIC8qIHBybXNTaXplICovCit9OworCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgT0JKRUNUIERFU0NSSVBUT1IgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK3R5cGVkZWYgc3RydWN0IHsgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX18gczA7IGNoYXIgYzsgfSB4ZGNfcnVudGltZV9IZWFwU3RkX19fUzE7CitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQyA9IHsKKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQywgLyogZnhuVGFiICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAvKiBtb2RMaW5rICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfX19TMSkgLSBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX18pLCAvKiBvYmpBbGlnbiAqLworICAgIDAsIC8qIG9iakhlYXAgKi8KKyAgICAwLCAvKiBvYmpOYW1lICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fKSwgLyogb2JqU2l6ZSAqLworICAgIChQdHIpJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MsIC8qIHBybXNJbml0ICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zKSwgLyogcHJtc1NpemUgKi8KK307CisKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZV9fRigpOworfQorCisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2hfUENsb2NrIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSAKK3sKKyAgICBsYWItPmhhbmRsZSA9IG9iajsKKyAgICBsYWItPm1vZElkID0gMzI3NzY7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbChsYWIsIDAsIDApOworCisgICAgcmV0dXJuIGxhYjsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgcHJtcywgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnblBhcmFtc19fSShwcm1zLCAoeGRjX1B0cikoc3JjID8gc3JjIDogJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DKSwgcHN6LCBpc3opOworfQorCisvKiBPYmplY3RfX2dldF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYSwgeGRjX0ludCBpICkgCit7CisgICAgaWYgKG9hKSB7CisgICAgICAgIHJldHVybiAoKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKilvYSkgKyBpOworICAgIH0KKworICAgIGlmICh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DID09IDApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18qKXhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MpICsgaTsKK30KKworLyogT2JqZWN0X19maXJzdF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rLm5leHQ7CisKKyAgICBpZiAoaUhkciAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuIGlIZHIgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX25leHRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKilvYmopIC0gMTsKKworICAgIGlmIChpSGRyLT5saW5rLm5leHQgIT0gKHhkY19ydW50aW1lX1R5cGVzX0xpbmsgKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKShpSGRyLT5saW5rLm5leHQpICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMgcHJtczsKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QqIG9iajsKKworICAgIC8qIGNvbW1vbiBpbnN0YW5jZSBpbml0aWFsaXphdGlvbiAqLworICAgIG9iaiA9IHhkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsIG9hLCBvc3osICZwcm1zLCAoeGRjX1B0cilwYSwgcHN6LCBlYik7CisgICAgaWYgKG9iaiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBvYmo7Cit9CisKKy8qIE9iamVjdF9fZGVzdHJ1Y3RfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgb2JqLCBOVUxMLCAtMSwgVFJVRSk7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsICooKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCoqKWluc3RwKSwgTlVMTCwgLTEsIEZBTFNFKTsKKyAgICAqKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUqKWluc3RwKSA9IE5VTEw7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIAoreworICAgIGxhYi0+aGFuZGxlID0gb2JqOworICAgIGxhYi0+bW9kSWQgPSAzMjc4MDsKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsKGxhYiwgMCwgMCk7CisKKyAgICByZXR1cm4gbGFiOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIHBybXMsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kocHJtcywgKHhkY19QdHIpKHNyYyA/IHNyYyA6ICZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DKSwgcHN6LCBpc3opOworfQorCisvKiBPYmplY3RfX2dldF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hLCB4ZGNfSW50IGkgKSAKK3sKKyAgICBpZiAob2EpIHsKKyAgICAgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyopb2EpICsgaTsKKyAgICB9CisKKyAgICBpZiAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DID09IDApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyopeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DKSArIGk7Cit9CisKKy8qIE9iamVjdF9fZmlyc3RfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmsubmV4dDsKKworICAgIGlmIChpSGRyICE9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiBpSGRyICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19uZXh0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKilvYmopIC0gMTsKKworICAgIGlmIChpSGRyLT5saW5rLm5leHQgIT0gKHhkY19ydW50aW1lX1R5cGVzX0xpbmsgKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopKGlIZHItPmxpbmsubmV4dCkgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyBwcm1zOworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0KiBvYmo7CisgICAgaW50IGlTdGF0OworCisgICAgLyogY29tbW9uIGluc3RhbmNlIGluaXRpYWxpemF0aW9uICovCisgICAgb2JqID0geGRjX3J1bnRpbWVfQ29yZV9jcmVhdGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYSwgb3N6LCAmcHJtcywgKHhkY19QdHIpcGEsIHBzeiwgZWIpOworICAgIGlmIChvYmogPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBtb2R1bGUtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gKi8KKyAgICBpU3RhdCA9IHhkY19ydW50aW1lX0hlYXBTdGRfSW5zdGFuY2VfaW5pdF9fRihvYmosICZwcm1zLCBlYik7CisgICAgaWYgKHhkY19ydW50aW1lX0Vycm9yX2NoZWNrKGViKSkgeworICAgICAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsIG9iaiwgTlVMTCwgaVN0YXQsICh4ZGNfQm9vbCkob2EgIT0gTlVMTCkpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gb2JqOworfQorCisvKiBPYmplY3RfX2Rlc3RydWN0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYmosIE5VTEwsIDAsIFRSVUUpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgKigoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QqKilpbnN0cCksIE5VTEwsIDAsIEZBTFNFKTsKKyAgICAqKCh4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSopaW5zdHApID0gTlVMTDsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAxOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fRigpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX0YoKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRChhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKGFjbWVfdXRpbHNfQmVuY2hfYmVnaW5fX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKGFjbWVfdXRpbHNfQmVuY2hfZW5kX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFzayBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmogYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXMgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9iaiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4biBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnQgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXAgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGUgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnIGFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGFjbWVfdXRpbHNfQmVuY2hfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRSggeGRjX1N0cmluZyBtc2cgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9lbmRfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFzayBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9iaiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmogYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfQXNzZXJ0X0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Bc3NlcnRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zIHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0NvcmVfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Db3JlX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0NvcmVfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0RlZmF1bHRzX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSB4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0RpYWdzX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FKCB4ZGNfU3RyaW5nIGNvbnRyb2wgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpYyB4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeSB4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeSB4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2sgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGggeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9FcnJvcl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9EYXRhKiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1VJbnQxNiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfSWQgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiwgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbW9kLCB4ZGNfU3RyaW5nIGZpbGUsIHhkY19JbnQgbGluZSwgeGRjX3J1bnRpbWVfRXJyb3JfSWQgaWQsIHhkY19JQXJnIGFyZzEsIHhkY19JQXJnIGFyZzIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0UoIHhkY19JQXJnIGtleSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlLCB4ZGNfSUFyZyBrZXkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5IHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NyZWF0ZSB4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2RlbGV0ZSB4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9Mb2dfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRSggeGRjX3J1bnRpbWVfTG9nX0V2ZW50UmVjKiBldlJlYyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NYWluX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2UgeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NZW1vcnlfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19JbnQgcXVhbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU2l6ZVQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX0NoYXIgdmFsdWUsIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TdGFydHVwX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZSB4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYyB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c01pbl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZyB4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4geGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c3RlbV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX0F0ZXhpdEhhbmRsZXIgaGFuZGxlciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duIHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eSB4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpYyB4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkIHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhckNudCB4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25vZGVDbnQgeGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjIgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfVGV4dF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1RleHRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfVGV4dF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfQ29yZEFkZHIgY29yZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSwgeGRjX1N0cmluZyBwYXQsIHhkY19JbnQqIGxlbnAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19FKCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtaWQsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0UoIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHNpdGUsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0gSU5JVElBTElaQVRJT04gRU5UUlkgUE9JTlQgPT09PT09PT0KKyAqLworCitleHRlcm4gaW50IF9feGRjX19pbml0KHZvaWQpOworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKQorI2VuZGlmCisjZW5kaWYKK19fRkFSX18gaW50ICgqIHZvbGF0aWxlIF9feGRjX19pbml0X19hZGRyKSh2b2lkKSA9ICZfX3hkY19faW5pdDsKKworCisvKgorICogPT09PT09PT0gUFJPR1JBTSBHTE9CQUxTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gQ0xJTksgRElSRUNUSVZFUyA9PT09PT09PQorICovCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmEzYjNkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmNmZwpAQCAtMCwwICsxLDc4NyBAQAorLyoKKyAqICA9PT09PT09PSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuY2ZnID09PT09PT09CisgKiAgVGhpcyBnZW5lcmF0ZWQgY29uZmlndXJhdGlvbiBzY3JpcHQgcnVucyB0aGUgdXNlcidzIGNvbmZpZ3VyYXRpb24gc2NyaXB0CisgKiAgdGhlIGNvbnRleHQgb2YgYSBzcGVjaWZpYyB0YXJnZXQgYW5kIHBsYXRmb3JtIGluIG9yZGVyIHRvIGdlbmVyYXRlCisgKiAgYWxsIHRoZSBmaWxlcyBuZWNlc3NhcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGU7IGUuZy4sIGxpbmtlciBjb21tYW5kCisgKiAgZmlsZXMsIHN0YXRpYyBDL0MrKyBkYXRhIHN0cnVjdHVyZXMsIGV0Yy4KKyAqLworCisvKgorICogID09PT09PT09IF9ydW5lc2NhcGUgPT09PT09PT0KKyAqICBSZWN1cnNpdmUgdW5lc2NhcGUgdG8gZGVjb2RlIHNlcmlhbGl6ZWQgc3RyaW5ncworICovCitmdW5jdGlvbiBfcnVuZXNjYXBlKG9iaikgeworICAgIGZvciAodmFyIGkgaW4gb2JqKSB7CisgICAgICAgIGlmIChvYmpbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpbaV0gPT0gJ3N0cmluZycpIHsKKyAgICAgICAgICAgICAgICBvYmpbaV0gPSB1bmVzY2FwZShvYmpbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9ialtpXSA9PSAnb2JqZWN0JykgeworICAgICAgICAgICAgICAgIF9ydW5lc2NhcGUob2JqW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqICA9PT09PT09PSBfZ2V0UGxhdENmZyA9PT09PT09PQorICovCitmdW5jdGlvbiBfZ2V0UGxhdENmZygpIHsKKyAgICB2YXIgdG1wID0ge307CisgICAgX3J1bmVzY2FwZSh0bXApOworICAgIHJldHVybiAodG1wKTsKK30KKy8qCisgKiAgPT09PT09PT0gX2NmZ2luaXQgPT09PT09PT0KKyAqLworZnVuY3Rpb24gX2NmZ2luaXQoKSB7CisgICAgeGRjLmxvYWRQYWNrYWdlKCd4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCcpOworICAgIHZhciBwcm9nID0geGRjLm9tWyd4ZGMuY2ZnLlByb2dyYW0nXTsKKworICAgIC8qIGluaXRpYWxpemUgcHJvZyBhdHRycyBmcm9tIGJ1aWxkIG1vZGVsICovCisgICAgdmFyIGJ1aWxkID0geworICAgICAgICByZWxlYXNlczogeworICAgICAgICAgICAgMDogeworICAgICAgICAgICAgICAgIG5hbWU6ICJjaGFybGllX3NxcnRsaWJfdGVzdCIsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICJkZWZhdWx0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb3RoZXJGaWxlczoge30KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgdGFyZ2V0OiB7CisgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQIiwKKyAgICAgICAgICAgIG5hbWU6ICJDNjRQIiwKKyAgICAgICAgICAgIHN1ZmZpeDogIjY0UCIsCisgICAgICAgICAgICBjb21wYXRpYmxlU3VmZml4ZXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2NvbXBhdGlibGVTdWZmaXhlcyIsCisgICAgICAgICAgICAgICAgMDogIjY0IiwKKyAgICAgICAgICAgICAgICAxOiAiNjIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgaXNhOiAiNjRQIiwKKyAgICAgICAgICAgIG1vZGVsOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9tb2RlbCIsCisgICAgICAgICAgICAgICAgZW5kaWFuOiAibGl0dGxlIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHJ0czogInRpLnRhcmdldHMucnRzNjAwMCIsCisgICAgICAgICAgICBiYXNlOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyIiwKKyAgICAgICAgICAgICAgICBuYW1lOiAiQzYyIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICI2MiIsCisgICAgICAgICAgICAgICAgY29tcGF0aWJsZVN1ZmZpeGVzOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9jb21wYXRpYmxlU3VmZml4ZXMiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgaXNhOiAiNjIiLAorICAgICAgICAgICAgICAgIG1vZGVsOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9tb2RlbCIsCisgICAgICAgICAgICAgICAgICAgIGVuZGlhbjogImxpdHRsZSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHJ0czogInRpLnRhcmdldHMucnRzNjAwMCIsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06ICJ0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMEM2MjExIiwKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybXM6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBiaW5hcnlQYXJzZXI6ICJ0aS50YXJnZXRzLm9tZi5jb2YuQ29mZiIsCisgICAgICAgICAgICAgICAgZGVidWdHZW46IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2RlYnVnR2VuIiwKKyAgICAgICAgICAgICAgICAgICAgZXhlY1RlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfZXhlYy54ZHQiLAorICAgICAgICAgICAgICAgICAgICBleGVjUGF0dGVybjogIiUyNCUyOGNmZ0RpciUyOSUyNCUyOGNmZ05hbWUlMjkucGp0IiwKKyAgICAgICAgICAgICAgICAgICAgcGFja2FnZVRlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfcGFja2FnZS54ZHQiLAorICAgICAgICAgICAgICAgICAgICBwYWNrYWdlUGF0dGVybjogInBhY2thZ2UvJTI0JTI4cGtnTmFtZSUyOS5wanQiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHRlbnNpb25zOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zIiwKKyAgICAgICAgICAgICAgICAgICAgIi5zNjIiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLnM2MiciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLnM2MiIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuYXNtIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5hc20nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5hc20iLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmMiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmMnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImMiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuY3BwIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jcHAnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jcHAiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmN4eCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3h4JyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3h4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIi5DIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5DJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuQyIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuY2MiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmNjJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY2MiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB2ZXJzaW9uTWFwOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi92ZXJzaW9uTWFwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEM2eF80LjMyIjogIjElMkMwJTJDNC4zMiUyQzAiLAorICAgICAgICAgICAgICAgICAgICAiVE1TMzIwQzU1eF8yLjU2IjogIjElMkMwJTJDMi41NiUyQzAiLAorICAgICAgICAgICAgICAgICAgICAiVE1TMzIwQzU0eF8zLjgzIjogIjElMkMwJTJDMy44MyUyQzAiLAorICAgICAgICAgICAgICAgICAgICAiVE1TMzIwQzIwMDBfMy4wNyI6ICIxJTJDMCUyQzMuMDclMkMwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgYWxpZ25EaXJlY3RpdmVTdXBwb3J0ZWQ6IHRydWUsCisgICAgICAgICAgICAgICAgcHJvZmlsZXM6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzIiwKKyAgICAgICAgICAgICAgICAgICAgZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZnM6ICItRF9ERUJVR18lM0QxIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgcmVsZWFzZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLU8yIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBwcm9maWxlOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZ3AiCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNvdmVyYWdlOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1ncCIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHdob2xlX3Byb2dyYW06IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbSciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1vZSUyMC1PMiUyMC1tbyIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgd2hvbGVfcHJvZ3JhbV9kZWJ1ZzogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLW9lJTIwLS1zeW1kZWJ1ZyUzQWR3YXJmJTIwLW1vIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBzZWN0TWFwOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zZWN0TWFwIiwKKyAgICAgICAgICAgICAgICAgICAgIi50ZXh0IjogImNvZGUiLAorICAgICAgICAgICAgICAgICAgICAiLnN0YWNrIjogInN0YWNrIiwKKyAgICAgICAgICAgICAgICAgICAgIi5ic3MiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuY2luaXQiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIucGluaXQiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuY29uc3QiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuZGF0YSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5zd2l0Y2giOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuc3lzbWVtIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmZhciI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5hcmdzIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmNpbyI6ICJkYXRhIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgc3RkSW5jbHVkZTogInRpL3RhcmdldHMvc3RkLmgiLAorICAgICAgICAgICAgICAgIHN0ZFR5cGVzOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcyIsCisgICAgICAgICAgICAgICAgICAgIHRfSUFyZzogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSUFyZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9DaGFyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9DaGFyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0RvdWJsZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0Zsb2F0OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GbG9hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9GeG46IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0Z4biIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQ4OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0ludDE2OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQxNiIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQzMjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50NDA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDQwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0ludDY0OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ2NCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9Mb25nOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Mb25nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0xEb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xEb3VibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfTExvbmc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xMb25nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X1B0cjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfUHRyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X1Nob3J0OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9TaG9ydCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgYml0c1BlckNoYXI6IDgKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBwbGF0Zm9ybTogInRpLnBsYXRmb3Jtcy5zaW02NFB4eCIsCisgICAgICAgICAgICBwbGF0Zm9ybXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgMDogInRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBiaW5hcnlQYXJzZXI6ICJ0aS50YXJnZXRzLm9tZi5jb2YuQ29mZiIsCisgICAgICAgICAgICB2ZXJzaW9uOiAidGkudGFyZ2V0cy5DNjRQJTdCMSUyQzAlMkM2LjElMkM1IiwKKyAgICAgICAgICAgIGRlYnVnR2VuOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9kZWJ1Z0dlbiIsCisgICAgICAgICAgICAgICAgZXhlY1RlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfZXhlYy54ZHQiLAorICAgICAgICAgICAgICAgIGV4ZWNQYXR0ZXJuOiAiJTI0JTI4Y2ZnRGlyJTI5JTI0JTI4Y2ZnTmFtZSUyOS5wanQiLAorICAgICAgICAgICAgICAgIHBhY2thZ2VUZW1wbGF0ZTogInRpL3RhcmdldHMvY2NzX3BhY2thZ2UueGR0IiwKKyAgICAgICAgICAgICAgICBwYWNrYWdlUGF0dGVybjogInBhY2thZ2UvJTI0JTI4cGtnTmFtZSUyOS5wanQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZXh0ZW5zaW9uczogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucyIsCisgICAgICAgICAgICAgICAgIi5zNjRQIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5zNjRQJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zNjRQIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5zNjQiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuczY0IiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5zNjIiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2MiciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuczYyIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5hc20iOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmFzbSciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYXNtIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYyIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY3BwIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jcHAnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNwcCIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY3h4IjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jeHgnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmN4eCIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuQyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuQyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuQyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY2MiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNjJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jYyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdmVyc2lvbk1hcDogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvdmVyc2lvbk1hcCIsCisgICAgICAgICAgICAgICAgIlRNUzMyMEM2eF80LjMyIjogIjElMkMwJTJDNC4zMiUyQzAiLAorICAgICAgICAgICAgICAgICJUTVMzMjBDNTV4XzIuNTYiOiAiMSUyQzAlMkMyLjU2JTJDMCIsCisgICAgICAgICAgICAgICAgIlRNUzMyMEM1NHhfMy44MyI6ICIxJTJDMCUyQzMuODMlMkMwIiwKKyAgICAgICAgICAgICAgICAiVE1TMzIwQzIwMDBfMy4wNyI6ICIxJTJDMCUyQzMuMDclMkMwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFsaWduRGlyZWN0aXZlU3VwcG9ydGVkOiB0cnVlLAorICAgICAgICAgICAgcm9vdERpcjogImQlM0EvdGkvYzYwMDAvYWxjIiwKKyAgICAgICAgICAgIHByb2ZpbGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcyIsCisgICAgICAgICAgICAgICAgZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZnM6ICItRF9ERUJVR18lM0QxIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHJlbGVhc2U6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItTzIiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBwcm9maWxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWdwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY292ZXJhZ2U6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1ncCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB3aG9sZV9wcm9ncmFtOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLW9lJTIwLU8yJTIwLW1vIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgd2hvbGVfcHJvZ3JhbV9kZWJ1ZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1vZSUyMC0tc3ltZGVidWclM0Fkd2FyZiUyMC1tbyIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgc2VjdE1hcDogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc2VjdE1hcCIsCisgICAgICAgICAgICAgICAgIi50ZXh0IjogImNvZGUiLAorICAgICAgICAgICAgICAgICIuc3RhY2siOiAic3RhY2siLAorICAgICAgICAgICAgICAgICIuYnNzIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuY2luaXQiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5waW5pdCI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmNvbnN0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuZGF0YSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLnN3aXRjaCI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLnN5c21lbSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmZhciI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmFyZ3MiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5jaW8iOiAiZGF0YSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzdGRJbmNsdWRlOiAidGkvdGFyZ2V0cy9zdGQuaCIsCisgICAgICAgICAgICBzdGRUeXBlczogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMiLAorICAgICAgICAgICAgICAgIHRfSUFyZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSUFyZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0NoYXI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0NoYXIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9Eb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0RvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0Zsb2F0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GbG9hdCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0Z4bjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRnhuIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ4OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ4IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMSwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50MTY6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDE2IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50MzI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDMyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50NDA6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDQwIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50NjQ6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDY0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfTG9uZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xEb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xEb3VibGUiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9MTG9uZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTExvbmciLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9QdHI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1B0ciIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X1Nob3J0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9TaG9ydCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGJpdHNQZXJDaGFyOiA4LAorICAgICAgICAgICAgYmluRGlyOiAiJTI0JTI4cm9vdERpciUyOS9iaW4vIiwKKyAgICAgICAgICAgIHBhdGhQcmVmaXg6ICIiLAorICAgICAgICAgICAgYXI6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FyIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICJhcjZ4IiwKKyAgICAgICAgICAgICAgICBvcHRzOiAicnEiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXJPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9hck9wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIiIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGxuazogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvbG5rIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICJsbms2eCIsCisgICAgICAgICAgICAgICAgb3B0czogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBsbmtPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9sbmtPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICItdyUyMC1xJTIwLXUlMjBfY19pbnQwMCIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiLWMlMjAtbSUyMCUyNCUyOFhEQ0NGR0RJUiUyOS8lMjRALm1hcCUyMC1sJTIwJTI0JTI4cm9vdERpciUyOS9saWIvcnRzNjRwbHVzLmxpYiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjYzogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvY2MiLAorICAgICAgICAgICAgICAgIGNtZDogImNsNnglMjAtYyIsCisgICAgICAgICAgICAgICAgb3B0czogIi1tdjY0cCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjY09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2NjT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiLXFxJTIwLXBkc3cyMjUiLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjY0NvbmZpZ09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2NjQ29uZmlnT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiJTI0JTI4Y2NPcHRzLnByZWZpeCUyOSUyMC1tbyIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiJTI0JTI4Y2NPcHRzLnN1ZmZpeCUyOSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhc206IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FzbSIsCisgICAgICAgICAgICAgICAgY21kOiAiY2w2eCUyMC1jIiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiLW12NjRwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFzbU9wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FzbU9wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIi1xcSIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHZlcnM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3ZlcnMiLAorICAgICAgICAgICAgICAgIGNtZDogImNsNngiLAorICAgICAgICAgICAgICAgIG9wdHM6ICItdmVyc2lvbiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBpbmNsdWRlT3B0czogIi1JJTI0JTI4cm9vdERpciUyOS9pbmNsdWRlIgorICAgICAgICB9LAorICAgICAgICB0ZXN0OiB7fSwKKyAgICAgICAgY2ZnQXJnczogIiU3Qm9wdE1vZGUlM0ElMjAlMjdTUEFDRSUyNyU3RCIsCisgICAgICAgIGNmZ1NjcmlwdDogImlzcXJ0VGVzdDEuY2ZnIiwKKyAgICAgICAgcHJvZmlsZTogInJlbGVhc2UiCisgICAgfTsKKyAgICBidWlsZC50YXJnZXQuZmluZFN1ZmZpeCA9IGZ1bmN0aW9uIGZpbmRTdWZmaXgocGtnKSB7CisgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUaGUgZnVuY3Rpb24gSVRhcmdldC5maW5kU3VmZml4KCkgcmVxdWlyZXMgYW4gIiArICJhcmd1bWVudCIpOworICAgICAgICB9CisgICAgICAgIHZhciBzdWZmaXhNYXAgPSB7fTsKKyAgICAgICAgaWYgKCJidWlsZCIgaW4gcGtnKSB7CisgICAgICAgICAgICB2YXIgYnVpbGQgPSBwa2cuYnVpbGQ7CisgICAgICAgICAgICBpZiAoYnVpbGQubGlicmFyaWVzLmxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYkRlc2NbMF0uc3VmZml4ICE9IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkLmxpYkRlc2MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeE1hcFtidWlsZC5saWJEZXNjW2ldLnN1ZmZpeF0gPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGQubGliRGVzYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYkRlc2NbaV0udGFyZ2V0ID09IHByb2cuYnVpbGQudGFyZ2V0LiRuYW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4TWFwW3Byb2cuYnVpbGQudGFyZ2V0LnN1ZmZpeF0gPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICgibGVuZ3RoIiBpbiBwa2cpIHsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBrZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzdWZmaXhNYXBbcGtnW2ldXSA9ICIiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbiBpbnZhbGlkIGFyZ3VtZW50IHR5cGUgc3VwcGxpZWQgdG8gIiArICJJVGFyZ2V0LmZpbmRTdWZmaXgoKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZhciBjb21wVGFyZ3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLmNvbXBhdGlibGVTdWZmaXhlcykgeworICAgICAgICAgICAgY29tcFRhcmdzW3Byb3BdID0gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXNbcHJvcF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuc3VmZml4IGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICh0aGlzLnN1ZmZpeCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBUYXJncy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcFRhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29tcFRhcmdzW2ldIGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY29tcFRhcmdzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKG51bGwpOworICAgIH07CisKKyAgICBidWlsZC50YXJnZXQuc2VsZWN0U3VmZml4ID0gZnVuY3Rpb24gc2VsZWN0U3VmZml4KGxpc3QpIHsKKyAgICAgICAgdmFyIHN1ZmZpeE1hcCA9IHt9OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN1ZmZpeE1hcFtsaXN0W2ldXSA9ICIiOworICAgICAgICB9CisgICAgICAgIHZhciBjb21wVGFyZ3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLmNvbXBhdGlibGVTdWZmaXhlcykgeworICAgICAgICAgICAgY29tcFRhcmdzW3Byb3BdID0gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXNbcHJvcF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuc3VmZml4IGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICh0aGlzLnN1ZmZpeCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBUYXJncy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcFRhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29tcFRhcmdzW2ldIGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY29tcFRhcmdzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKG51bGwpOworICAgIH07CisKKyAgICBidWlsZC50YXJnZXQuYXNtTmFtZSA9IGZ1bmN0aW9uIGFzbU5hbWUoY25hbWUpIHsKKyAgICAgICAgcmV0dXJuICgiXyIgKyBjbmFtZSk7CisgICAgfTsKKworICAgIF9ydW5lc2NhcGUoYnVpbGQpOworICAgIGJ1aWxkLmNmZ0FyZ3MgPSB7b3B0TW9kZTogJ1NQQUNFJ307CisgICAgcHJvZy5idWlsZCA9IGJ1aWxkOworICAgIAorICAgIHByb2cubmFtZSA9ICJpc3FydFRlc3QxLVNQQUNFLng2NFAiOworCisgICAgcHJvZy5lbmRpYW4gPSBwcm9nLmJ1aWxkLnRhcmdldC5tb2RlbC5lbmRpYW47CisKKyAgICAvKiB1c2UgdGhlIHBsYXRmb3JtIHBhY2thZ2UncyBQbGF0Zm9ybSBtb2R1bGUgKi8KKyAgICB2YXIgUGxhdGZvcm0gPSB4ZGMudXNlTW9kdWxlKCJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHguUGxhdGZvcm0iKTsKKyAgICB2YXIgcGxhdFBhcmFtcyA9IF9nZXRQbGF0Q2ZnKCk7CisgICAgZm9yICh2YXIgcHJvcCBpbiBwbGF0UGFyYW1zKSB7CisgICAgICAgIGlmICghKHByb3AgaW4gUGxhdGZvcm0uUEFSQU1TKSkgeworICAgICAgICAgICAgZGVsZXRlIHBsYXRQYXJhbXNbcHJvcF07CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvZy5wbGF0Zm9ybU5hbWUgPSAidGkucGxhdGZvcm1zLnNpbTY0UHh4IjsKKyAgICBwcm9nLnBsYXRmb3JtID0gUGxhdGZvcm0uY3JlYXRlKCIiLCBfZ2V0UGxhdENmZygpLCBwbGF0UGFyYW1zKTsKKyAgICAvKiByZWNvcmQgdGhlIGV4ZWN1dGFibGUncyBwYWNrYWdlIG5hbWUgKi8KKyAgICBwcm9nLmJ1aWxkUGFja2FnZSA9ICJjaGFybGllLnNxcnRsaWIudGVzdCI7CisKKyAgICAvKiByZWNvcmQgYnVpbGQtbW9kZWwgaW5mb3JtYXRpb24gcmVxdWlyZWQgZHVyaW5nIGNvbmZpZyBnZW5lcmF0aW9uICovCisgICAgcHJvZy4kJGJpbmQoIiQkaXNhc20iLCAwKTsKKyAgICBwcm9nLiQkYmluZCgiJCRpc3JvbSIsIDApOworICAgIHByb2cuJCRiaW5kKCIkJGdlbnRhYiIsIFsKKyAgICBdKTsKKyAgICAKKyAgICAvKiBiaW5kIHByb2cgdG8gYW4gYXBwcm9wcmlhdGUgZXhlY3V0aW9uIGNvbnRleHQgKi8KKyAgICBwcm9nLmNwdSA9IHByb2cucGxhdGZvcm0uZ2V0RXhlQ29udGV4dChwcm9nKTsKKworICAgIC8qIGltcG9ydCB0aGUgdGFyZ2V0J3MgcnVuLXRpbWUgc3VwcG9ydCBwa2cgKi8KKyAgICB4ZGMubG9hZFBhY2thZ2UoInRpLnRhcmdldHMucnRzNjAwMCIpOworfQorICAgIAorLyogZnVuY3Rpb24gdG8gaW1wb3J0IHRoZSBjZmcgc2NyaXB0J3MgcGFja2FnZSAqLworZnVuY3Rpb24gX3VzZXJzY3JpcHQoJCRsZWdhY3ksIHNjcmlwdCkgeworICAgIHZhciBob21lOworICAgIHZhciBzcGF0aDsKKyAgICAvKiBpbXBvcnQgdGhlIGV4ZWN1dGFibGUncyBwYWNrYWdlICovCisgICAgaG9tZSA9IHhkYy5sb2FkUGFja2FnZSgiY2hhcmxpZS5zcXJ0bGliLnRlc3QiKTsKKyAgICBzcGF0aCA9ICcuJzsKKyAgICAKKyAgICB4ZGMub20uJCRiaW5kKCckaG9tZXBrZycsIGhvbWUpOworCisgICAgaWYgKHNjcmlwdCAhPSBudWxsKSB7CisgICAgICAgIHV0aWxzLmV2YWx1YXRlU2NyaXB0KHNjcmlwdCk7CisgICAgfQorICAgIGVsc2UgeyAKKyAgICAgICAgLyogbG9hZCAmIHJ1biBwcm9ncmFtIGNmZyBzY3JpcHQgYW5kIG1vbml0b3IgYWxsIGxvYWRlZCBmaWxlcyAqLworICAgICAgICBfcnVuQ2ZnKCJpc3FydFRlc3QxLmNmZyIsIHNwYXRoLCAicGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQIiwgIAorICAgICAgICAgICAgICAgICBmYWxzZSwgCisgICAgICAgICAgICAgICAgIGZhbHNlLAorICAgICAgICAgICAgICAgICBfZ2V0UGxhdENmZygpKTsKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKworICAgIC8qCisgICAgICogID09PT09PT09IF9ydW5DZmcgPT09PT09PT0KKyAgICAgKiAgUnVuIGEgdXNlciBzdXBwbGllZCBjb25maWd1cmF0aW9uIHNjcmlwdCBhbmQgcHJldmVudCB1c2VyJ3Mgc2NyaXB0IGZyb20KKyAgICAgKiAgb3ZlcndyaXRpbmcgdGhlIGdsb2JhbCB2YXJpYWJsZSBwcm9nLgorICAgICAqLworICAgIGZ1bmN0aW9uIF9ydW5DZmcoY2ZnU2NyaXB0LCBwYXRoLCBwcm9ncmFtTmFtZSwgbGVnYWN5VGNmLCBsZWdhY3lDZmcsCisgICAgICAgIHBsYXRQYXJhbXMpCisgICAgeworICAgICAgICBpZiAobGVnYWN5VGNmKSB7CisgICAgICAgICAgICAvKiBzYXZlIGN1cnJlbnQgZ2xvYmFsIHZhcmlhYmxlcyAqLworICAgICAgICAgICAgdmFyICRzYXZlID0ge3Byb2c6IHV0aWxzLmdsb2JhbC5wcm9nLCBQcm9ncmFtOiBQcm9ncmFtfTsKKyAgICAKKyAgICAgICAgICAgIC8qIGluaXRpYWxpemUgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgbGVnYWN5IGNvbmZpZyBzY3JpcHRzICovCisgICAgICAgICAgICBlbnZpcm9ubWVudFsiY29uZmlnLnByb2dyYW1OYW1lIl0gPSBwcm9ncmFtTmFtZTsKKyAgICAgICAgICAgIGVudmlyb25tZW50WyJjb25maWcucGxhdGZvcm0iXSA9IFByb2dyYW0ucGxhdGZvcm1OYW1lOworICAgICAgICAgICAgdXRpbHMuc2VlZFBhdGggPSBlbnZpcm9ubWVudFsiY29uZmlnLmltcG9ydFBhdGgiXTsKKyAgICAgICAgICAgIHV0aWxzLmxvYWRQbGF0Zm9ybS5wYXJhbXMgPSBwbGF0UGFyYW1zOworICAgICAgICAgICAgUHJvZ3JhbSA9ICQkbGVnYWN5LlByb2dyYW07ICAgICAvKiBkZWZpbmVkIGluIGNmZy50Y2kgKi8KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLyogcnVuIGxlZ2FjeSBjb25maWcgc2NyaXB0IHdpdGggcHJvZyA9PSB0byBSVFNDIFByb2dyYW07IHRoaXMKKyAgICAgICAgICAgICAqIGFsbG93cyBsZWdhY3kgc2NyaXB0IHRvIHJlYWQgYnVpbGQgYXRyaWJ1dGVzIGZyb20gUlRTQyBtb2RlbAorICAgICAgICAgICAgICogYmVmb3JlIHJlLWNyZWF0aW5nIHRoZSBwcm9nIG9iamVjdAorICAgICAgICAgICAgICovCisgICAgICAgICAgICB1dGlscy5sb2FkQ2Fwc3VsZShjZmdTY3JpcHQsIGZhbHNlLCBwYXRoKTsgIAorICAgIAorICAgICAgICAgICAgLyogcmVzdG9yZSBnbG9iYWwgdmFyaWFibGVzOyBub3cgcHJvZyA9PSBUQ09NIHByb2cgYmVjYXVzZQorICAgICAgICAgICAgICogdXRpbHMubG9hZFBsYXRmb3JtKCkgY3JlYXRlcyB0aGUgVENPTSBwcm9nIG9iamVjdC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgJCRsZWdhY3kucHJvZyA9IHV0aWxzLmdsb2JhbC5wcm9nOyAgLyogaW4gY2FzZSBYREMgd2FudHMgaXQgKi8KKyAgICAgICAgICAgIHV0aWxzLmdsb2JhbC5wcm9nID0gJHNhdmUucHJvZzsKKyAgICAgICAgICAgIFByb2dyYW0gPSAkc2F2ZS5Qcm9ncmFtOworICAgIAorICAgICAgICAgICAgLyogcnVuIFhEQyBjb25maWd1cmF0aW9uIHNjcmlwdCwgaWYgaXQgZXhpc3RzICovCisgICAgICAgICAgICBpZiAobGVnYWN5Q2ZnKSB7CisgICAgICAgICAgICAgICAgdXRpbHMuaW1wb3J0RmlsZShjZmdTY3JpcHQucmVwbGFjZSgvXC50Y2YvLCAiLmNmZyIpLCBwYXRoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHV0aWxzLmxvYWRDYXBzdWxlKGNmZ1NjcmlwdCwgZmFsc2UsIHBhdGgpOworICAgICAgICB9CisgICAgfQorfQorICAgIAorZnVuY3Rpb24gX3Bvc3Rpbml0KCkgeworCisgICAgdmFyIGNvdXQgPSBudWxsOworCisgICAgdmFyIHByb2cgPSB4ZGMub21bJ3hkYy5jZmcuUHJvZ3JhbSddOworICAgIC8qIGdldCB0aGUgZXhlYyBjb21tYW5kIGZvciB0aGlzIGV4ZWN1dGFibGUgKi8KKyAgICBpZiAocHJvZy5leGVjQ21kID09IG51bGwpIHsKKyAgICAgICAgcHJvZy5leGVjQ21kID0gcHJvZy5wbGF0Zm9ybS5nZXRFeGVjQ21kKHByb2csCisgICAgICAgICAgICB4ZGMub21bInRpLnBsYXRmb3Jtcy5zaW02NFB4eCJdLnBhY2thZ2VCYXNlKTsKKyAgICB9CisgICAgdmFyIGNvdXQgPSAiZGVmaW5lIEVYRUMuIiArIHByb2cubmFtZSArICdcblxuJzsKKyAgICBjb3V0ICs9IHByb2cuZXhlY0NtZDsKKyAgICBjb3V0ICs9ICJcbmVuZGVmXG5cbiI7CisKKyAgICB1dGlscy5nZW5EZXAoInBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UCIsICJjaGFybGllLnNxcnRsaWIudGVzdCIsIHV0aWxzLmxvYWRlZEZpbGVzLCBjb3V0LCBudWxsKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5jZmcuZG90IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmNmZy5kb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhlMzVkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5jZmcuZG90CkBAIC0wLDAgKzEsMTk3IEBACitkaWdyYXBoIGNvbmZpZ3VyYXRpb24geworICAgIHNpemU9IjcuNSwxMCI7CisgICAgcmFua2Rpcj1MUjsKKyAgICByYW5rc2VwPSIuNTAgZXF1YWxseSI7CisgICAgY29uY2VudHJhdGU9dHJ1ZTsKKyAgICBjb21wb3VuZD10cnVlOworICAgIGxhYmVsPSJcbkNvbmZpZ3VyYXRpb24gZm9yIGNoYXJsaWUuc3FydGxpYi50ZXN0L2lzcXJ0VGVzdDEtU1BBQ0UueDY0UCIKKyAgbm9kZSBbZm9udD1IZWx2ZXRpY2EsIGZvbnRzaXplPTE0LCBmb250Y29sb3I9YmxhY2tdOyAgc3ViZ3JhcGggY2x1c3RlcjAge2xhYmVsPSIiOyBfX2NmZyBbbGFiZWw9ImlzcXJ0VGVzdDEuY2ZnIiwgY29sb3I9d2hpdGUsIGZvbnRjb2xvcj1ibHVlXTsKKyAgICBub2RlIFtmb250PUhlbHZldGljYSwgZm9udHNpemU9MTBdOyAgICBzdWJncmFwaCBjbHVzdGVyMSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGNcbjEsIDEsIDEsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIyIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19jb3JldmVyc19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5jb3JldmVyc1xuMTYsIDAsIDEsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIzIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuZ2xvYmFsXG4xLCAwLCAxIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfQ2xvY2sgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQ2xvY2siXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9fdG9wIC0+IHhkY19zZXJ2aWNlc19nbG9iYWxfQ2xvY2tbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrIC0+IHhkY19zZXJ2aWNlc19nbG9iYWxfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI0IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zaGVsZl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zaGVsZlxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjUgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX3NwZWNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuc3BlY1xuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjYgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2ludGVybl94c3JfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuaW50ZXJuLnhzclxuMSwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjcgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2ludGVybl9nZW5fX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmdlblxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjggeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2ludGVybl9jbWRfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmNtZFxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjkgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3Jvdl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5yb3ZcbjEsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19yb3ZfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEwIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIGNoYXJsaWVfc3FydGxpYl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9ImNoYXJsaWUuc3FydGxpYlxuMSwgMCwgMiwgNiIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgY2hhcmxpZV9zcXJ0bGliX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIGNoYXJsaWVfc3FydGxpYl9TZXR0aW5ncyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTZXR0aW5ncyJdOworICAgICAgICBjaGFybGllX3NxcnRsaWJfX3RvcCAtPiBjaGFybGllX3NxcnRsaWJfU2V0dGluZ3Nbc3R5bGU9aW52aXNdOworICAgICAgICBjaGFybGllX3NxcnRsaWJfU2V0dGluZ3MgLT4gY2hhcmxpZV9zcXJ0bGliX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTEgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgdGlfY2F0YWxvZ19jNjAwMF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InRpLmNhdGFsb2cuYzYwMDBcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHRpX2NhdGFsb2dfYzYwMDBfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgdGlfY2F0YWxvZ19jNjAwMF9UTVMzMjBDVENJNjQ4MiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJUTVMzMjBDVENJNjQ4MiJdOworICAgICAgICB0aV9jYXRhbG9nX2M2MDAwX190b3AgLT4gdGlfY2F0YWxvZ19jNjAwMF9UTVMzMjBDVENJNjQ4MltzdHlsZT1pbnZpc107CisgICAgICAgIHRpX2NhdGFsb2dfYzYwMDBfVE1TMzIwQ1RDSTY0ODIgLT4gdGlfY2F0YWxvZ19jNjAwMF9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEyIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19wbGF0Zm9ybV9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5wbGF0Zm9ybVxuMSwgMCwgMSwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9FeGVDb250ZXh0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkV4ZUNvbnRleHQiXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX190b3AgLT4geGRjX3BsYXRmb3JtX0V4ZUNvbnRleHRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcGxhdGZvcm1fRXhlQ29udGV4dCAtPiB4ZGNfcGxhdGZvcm1fX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9VdGlscyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJVdGlscyJdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX3RvcCAtPiB4ZGNfcGxhdGZvcm1fVXRpbHNbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcGxhdGZvcm1fVXRpbHMgLT4geGRjX3BsYXRmb3JtX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTMgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX2NmZ19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5jZmdcbjEsIDAsIDIsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19jZmdfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19Qcm9ncmFtIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlByb2dyYW0iXTsKKyAgICAgICAgeGRjX2NmZ19fdG9wIC0+IHhkY19jZmdfUHJvZ3JhbVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfUHJvZ3JhbSAtPiB4ZGNfY2ZnX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX01haW4gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbiJdOworICAgICAgICB4ZGNfY2ZnX190b3AgLT4geGRjX2NmZ19NYWluW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19NYWluIC0+IHhkY19jZmdfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHhcbjEsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHRpX3BsYXRmb3Jtc19zaW02NFB4eF9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfUGxhdGZvcm0gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iUGxhdGZvcm0iXTsKKyAgICAgICAgdGlfcGxhdGZvcm1zX3NpbTY0UHh4X190b3AgLT4gdGlfcGxhdGZvcm1zX3NpbTY0UHh4X1BsYXRmb3JtW3N0eWxlPWludmlzXTsKKyAgICAgICAgdGlfcGxhdGZvcm1zX3NpbTY0UHh4X1BsYXRmb3JtIC0+IHRpX3BsYXRmb3Jtc19zaW02NFB4eF9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19ydW50aW1lX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnJ1bnRpbWVcbjIsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19ydW50aW1lX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Fzc2VydCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJBc3NlcnQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9Bc3NlcnRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Bc3NlcnQgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0NvcmUgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQ29yZSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0NvcmVbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Db3JlIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EZWZhdWx0cyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJEZWZhdWx0cyJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0RlZmF1bHRzW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGVmYXVsdHMgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RpYWdzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkRpYWdzIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfRGlhZ3Nbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EaWFncyAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRXJyb3IgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRXJyb3IiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9FcnJvcltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Vycm9yIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkdhdGUiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9HYXRlW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGwgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iR2F0ZU51bGwiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9HYXRlTnVsbFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Mb2cgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTG9nIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTG9nW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTG9nIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW4iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NYWluW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbiAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1lbW9yeSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01lbW9yeVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01lbW9yeSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJIZWFwU3RkIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfSGVhcFN0ZFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGQgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N0YXJ0dXAgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3RhcnR1cCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N0YXJ0dXBbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TdGFydHVwIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW0gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzdGVtIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXNNaW4gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzTWluIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzTWluW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzTWluIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9UZXh0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlRleHQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9UZXh0W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfVGV4dCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW5fTW9kdWxlX0dhdGVQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNZW1vcnlfSGVhcFByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzdGVtX1N1cHBvcnRQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB0aV90YXJnZXRzX3J0czYwMDBfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ0aS50YXJnZXRzLnJ0czYwMDBcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9ImFjbWUudXRpbHMuY2xvY2tzXG4iLCBjb2xvcj13aGl0ZV07CisgICAgICAgIGFjbWVfdXRpbHNfY2xvY2tzX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkNsb2NrU3RkIl07CisgICAgICAgIGFjbWVfdXRpbHNfY2xvY2tzX190b3AgLT4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRbc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZCAtPiBhY21lX3V0aWxzX2Nsb2Nrc19fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE4IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIGFjbWVfdXRpbHNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJhY21lLnV0aWxzXG4iLCBjb2xvcj13aGl0ZV07CisgICAgICAgIGFjbWVfdXRpbHNfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgYWNtZV91dGlsc19CZW5jaCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJCZW5jaCJdOworICAgICAgICBhY21lX3V0aWxzX190b3AgLT4gYWNtZV91dGlsc19CZW5jaFtzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfQmVuY2ggLT4gYWNtZV91dGlsc19fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2sgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQmVuY2hfUENsb2NrIl07CisgICAgICAgIGFjbWVfdXRpbHNfX3RvcCAtPiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja1tzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrIC0+IGFjbWVfdXRpbHNfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxOSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBjaGFybGllX3NxcnRsaWJfdGVzdF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9ImNoYXJsaWUuc3FydGxpYi50ZXN0XG4iLCBjb2xvcj13aGl0ZV07CisgICAgfQorICB9CisgIG5vZGUgW2ZvbnQ9SGVsdmV0aWNhLCBmb250c2l6ZT0xMF07CisgICAgdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMV81IFtzaGFwZT1yZWNvcmQsbGFiZWw9InRpLnRhcmdldHMuQzY0UHwxLDAsNi4xLDUiLHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWxpZ2h0Z3JleV07CisgICAgY2hhcmxpZV9zcXJ0bGliX19ib3QgLT4gdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMV81IFtsdGFpbD1jbHVzdGVyMTBdOworICAgIHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzBfMTYgW3NoYXBlPXJlY29yZCxsYWJlbD0idGkudGFyZ2V0cy5DNjRQfDEsMCw2LjAsMTYiLHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWxpZ2h0Z3JleV07CisgICAgdGlfdGFyZ2V0c19ydHM2MDAwX190b3AgLT4gdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMF8xNiBbbHRhaWw9Y2x1c3RlcjE2XTsKKyAgICB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18xXzUgW3NoYXBlPXJlY29yZCxsYWJlbD0idGkudGFyZ2V0cy5DNjRQfDEsMCw2LjEsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19fYm90IC0+IHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzFfNSBbbHRhaWw9Y2x1c3RlcjE3XTsKKyAgICB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18xXzUgW3NoYXBlPXJlY29yZCxsYWJlbD0idGkudGFyZ2V0cy5DNjRQfDEsMCw2LjEsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBhY21lX3V0aWxzX19ib3QgLT4gdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMV81IFtsdGFpbD1jbHVzdGVyMThdOworICAgIHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzFfNSBbc2hhcGU9cmVjb3JkLGxhYmVsPSJ0aS50YXJnZXRzLkM2NFB8MSwwLDYuMSw1IixzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZXldOworICAgIGNoYXJsaWVfc3FydGxpYl90ZXN0X190b3AgLT4gdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMV81IFtsdGFpbD1jbHVzdGVyMTldOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmNmZy54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuY2ZnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjNhN2Q0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmNmZy54bWwKQEAgLTAsMCArMSwyMzc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgVGhpcyBmaWxlIGNvbmZvcm1zIHRvIHRoZSBEVEQgeGRjL2NmZy9jb25maWd1cmF0aW9uLmR0ZCAtLT4KKzxjb25maWd1cmF0aW9uIG5hbWU9ImNoYXJsaWUuc3FydGxpYi50ZXN0L2lzcXJ0VGVzdDEtU1BBQ0UueDY0UCIKKyAgICBwbGF0Zm9ybU5hbWU9InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICBnbG9iYWxTZWN0aW9uPSJudWxsIgorICAgIHN5c1N0YWNrPSI0MDk2IgorICAgIHN0YWNrPSI0MDk2IgorICAgIGhlYXA9IjQwOTYiCisgICAgYXJnU2l6ZT0iNTEyIgorICAgIGV4ZWNDbWQ9IkUlM0EvcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9XaW5kb3dzL2tlbHZpbiUyMC1xdWlldCUyMC1tZW1faWdub3JlJTIwRCUzQSU1Q3dvcmslNUN0dXRvcmlhbCU1Q3JlcG8lNUNjaGFybGllJTVDc3FydGxpYiU1Q3Rlc3QlNUNpc3FydFRlc3QxLVNQQUNFLng2NFAiCisgICAgZW5kaWFuPSJsaXR0bGUiCisgICAgY29kZU1vZGVsPSJudWxsIgorICAgIGRhdGFNb2RlbD0ibnVsbCI+Cis8dGFyZ2V0cz4KKyAgICA8dGFyZ2V0IG5hbWU9InRpLnRhcmdldHMuQzY0UCIKKyAgICAgICAgICAgIHZlcnNpb249IjEsMCw2LjEsNSIKKyAgICAgICAgICAgIHVzZWRieT0iY2hhcmxpZS5zcXJ0bGliIi8+CisgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsNi4wLDE2IgorICAgICAgICAgICAgdXNlZGJ5PSJ0aS50YXJnZXRzLnJ0czYwMDAiLz4KKyAgICA8dGFyZ2V0IG5hbWU9InRpLnRhcmdldHMuQzY0UCIKKyAgICAgICAgICAgIHZlcnNpb249IjEsMCw2LjEsNSIKKyAgICAgICAgICAgIHVzZWRieT0iYWNtZS51dGlscy5jbG9ja3MiLz4KKyAgICA8dGFyZ2V0IG5hbWU9InRpLnRhcmdldHMuQzY0UCIKKyAgICAgICAgICAgIHZlcnNpb249IjEsMCw2LjEsNSIKKyAgICAgICAgICAgIHVzZWRieT0iYWNtZS51dGlscyIvPgorICAgIDx0YXJnZXQgbmFtZT0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICAgICAgdmVyc2lvbj0iMSwwLDYuMSw1IgorICAgICAgICAgICAgdXNlZGJ5PSJjaGFybGllLnNxcnRsaWIudGVzdCIvPgorPC90YXJnZXRzPgorPGltcG9ydHM+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjIiB2ZXJzaW9uPSIxLCAxLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLmNvcmV2ZXJzIiB2ZXJzaW9uPSIxNiwgMCwgMSwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwiIHZlcnNpb249IjEsIDAsIDEiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwuQ2xvY2siCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZW5hYmxlIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNob3dNZW1vcnkiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuc2VydmljZXMuZ2xvYmFsLlRyYWNlIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2hlbGYiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuc3BlYyIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyIiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmludGVybi5nZW4iIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5yb3YiIHZlcnNpb249IjEsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuTW9kZWwiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5Qcm9ncmFtIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuU3RydWN0dXJlRGVjb2RlciIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlN0YXRlUmVhZGVyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuVmlld0luZm8iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9ImNoYXJsaWUuc3FydGxpYiIgdmVyc2lvbj0iMSwgMCwgMiwgNiIgcmVwb3NpdG9yeT0iRDovd29yay90dXRvcmlhbC9yZXBvLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im9wdGltaXplIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1NQQUNFIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDUyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RORVRWMjY4NSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDI4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MTEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcxMUIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcxMiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzEzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMTEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIxMUIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDExIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxMyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDE0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDE4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MjEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQyNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcxMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwMFNJTSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0NDIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDQ0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQ0NiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERSQTQ0NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzIyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MjYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcyNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQxNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MzEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDMzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQzNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MzciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDQxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ0MyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0NDYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBETTM1NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0NjciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJJMzAwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODIiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2FjaGVTaXplTDEiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyNzBrJTI3JTJDJTIwMHgwJTVEJTJDJTBBJTVCJTI3NGslMjclMkMlMjAweDEwMDAlNUQlMkMlMEElNUIlMjc4ayUyNyUyQyUyMDB4MjAwMCU1RCUyQyUwQSU1QiUyNzE2ayUyNyUyQyUyMDB4NDAwMCU1RCUyQyUwQSU1QiUyNzMyayUyNyUyQyUyMDB4ODAwMCU1RCUwQSU1RCI+PG1hcCBpZD0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4Mi9jYWNoZVNpemVMMSIgbGVuZ3RoPSI1Ij4NCisgIDxlbnRyeSBrZXk9IjBrIj4weDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iNGsiPjB4MTAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSI4ayI+MHgyMDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjE2ayI+MHg0MDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjMyayI+MHg4MDAwPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNhY2hlU2l6ZUwyIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjcwayUyNyUyQyUyMDB4MCU1RCUyQyUwQSU1QiUyNzMyayUyNyUyQyUyMDB4ODAwMCU1RCUyQyUwQSU1QiUyNzY0ayUyNyUyQyUyMDB4MTAwMDAlNUQlMkMlMEElNUIlMjcxMjhrJTI3JTJDJTIwMHgyMDAwMCU1RCUyQyUwQSU1QiUyNzI1NmslMjclMkMlMjAweDQwMDAwJTVEJTBBJTVEIj48bWFwIGlkPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDgyL2NhY2hlU2l6ZUwyIiBsZW5ndGg9IjUiPg0KKyAgPGVudHJ5IGtleT0iMGsiPjB4MDwvZW50cnk+DQorICA8ZW50cnkga2V5PSIzMmsiPjB4ODAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSI2NGsiPjB4MTAwMDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iMTI4ayI+MHgyMDAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSIyNTZrIj4weDQwMDAwPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4NiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDg3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4NCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDU0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NTUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDMjQzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEMzNDMwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MDEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjAyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMDMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwM0IiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjA1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQwNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0MDIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDA0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQxNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0MTYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRjc2MTk5MCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAyNDMxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDI1MzAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMjUzMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAzNDI1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDM1MjUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMzUzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODA1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MDciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgwOCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODEwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MjgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDcyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NzQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjc0NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzQ1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUEwxMzciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQ1NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnBsYXRmb3JtIiB2ZXJzaW9uPSIxLCAwLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucGxhdGZvcm0uRXhlQ29udGV4dCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5wbGF0Zm9ybS5VdGlscyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuY2ZnIiB2ZXJzaW9uPSIxLCAwLCAyLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuY2ZnLlByb2dyYW0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2VuIiB0eXBlPSJ4ZGMuY2ZnLlByb2dyYW0uR2VuZXJhdGlvbk9wdGlvbnMiIHZhbHVlPSIlN0JkZWJ1Z2dlckZpbGVzJTNBJTIwdW5kZWZpbmVkJTdEIj48c3RydWN0IGlkPSJ4ZGMuY2ZnLlByb2dyYW0vZ2VuIj4NCisgIDxmaWVsZCBuYW1lPSJkZWJ1Z2dlckZpbGVzIj51bmRlZmluZWQ8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2xvYmFsU2VjdGlvbiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3lzU3RhY2siIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN0YWNrIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJoZWFwIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJhcmdTaXplIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI1MTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4ZWNDbWQiIHR5cGU9InN0cmluZyIgdmFsdWU9IkUlM0EvcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9XaW5kb3dzL2tlbHZpbiUyMC1xdWlldCUyMC1tZW1faWdub3JlJTIwRCUzQSU1Q3dvcmslNUN0dXRvcmlhbCU1Q3JlcG8lNUNjaGFybGllJTVDc3FydGxpYiU1Q3Rlc3QlNUNpc3FydFRlc3QxLVNQQUNFLng2NFAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxpbmtUZW1wbGF0ZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWFpbiIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZWN0TWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3lzdGVtIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWUiIHR5cGU9InN0cmluZyIgdmFsdWU9ImlzcXJ0VGVzdDEtU1BBQ0UueDY0UCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVpbGRQYWNrYWdlIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJjaGFybGllLnNxcnRsaWIudGVzdCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZW5kaWFuIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJsaXR0bGUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvZGVNb2RlbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGF0YU1vZGVsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJidWlsZCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCb2JqZWN0JTIwT2JqZWN0JTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjcHUiIHR5cGU9InhkYy5wbGF0Zm9ybS5JRXhlQ29udGV4dC5JbnN0YW5jZSIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGNhdGFsb2dOYW1lJTNBJTIwdGkuY2F0YWxvZy5jNjAwMCUyQyUyMGRldmljZU5hbWUlM0ElMjBUTVMzMjBDVENJNjQ4MiUyQyUyMHJldmlzaW9uJTNBJTIwJTJDJTIwY2xvY2tSYXRlJTNBJTIwMHgzZTglMkMlMjBib2FyZCUzQSUyMCU3QmlkJTNBJTIwMCUyQyUyMGJvYXJkTmFtZSUzQSUyMHNpbTY0UHh4JTJDJTIwYm9hcmRGYW1pbHklM0ElMjBzaW02NFB4eCUyQyUyMGJvYXJkUmV2aXNpb24lM0ElMjBudWxsJTdEJTJDJTIwYXR0cnMlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakBkZjgzZTUlM0ElM0ElMjh4ZGMucGxhdGZvcm0uSUNwdURhdGFTaGVldC5JbnN0YW5jZSUyOXRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODIuSW5zdGFuY2UlMjMwJTJDJTIwbWVtb3J5TWFwJTNBJTIwJTVCJTBBJTVCJTI3SVJBTSUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjBJbnRlcm5hbCUyMDJNQiUyMFVNQVAwJTIwbWVtb3J5JTJDJTIwbmFtZSUzQSUyMElSQU0lMkMlMjBzcGFjZSUzQSUyMGNvZGUvZGF0YSUyQyUyMHBhZ2UlM0ElMjB1bmRlZmluZWQlMkMlMjBiYXNlJTNBJTIwMHg4MDAwMDAlMkMlMjBsZW4lM0ElMjAweDIwMDAwMCUyQyUyMGFjY2VzcyUzQSUyMFJXWCU3RCU1RCUyQyUwQSU1QiUyN0REUiUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjB1bmRlZmluZWQlMkMlMjBuYW1lJTNBJTIwRERSJTJDJTIwc3BhY2UlM0ElMjB1bmRlZmluZWQlMkMlMjBwYWdlJTNBJTIwdW5kZWZpbmVkJTJDJTIwYmFzZSUzQSUyMDB4ODAwMDAwMDAlMkMlMjBsZW4lM0ElMjAweDEwMDAwMDAwJTJDJTIwYWNjZXNzJTNBJTIwdW5kZWZpbmVkJTdEJTVEJTBBJTVEJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwbGF0Zm9ybU5hbWUiIHR5cGU9InN0cmluZyIgdmFsdWU9InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icGxhdGZvcm0iIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uSW5zdGFuY2UiIHZhbHVlPSIlN0JleHRlcm5hbE1lbW9yeU1hcCUzQSUyMCU1QiUwQSU1QiUyN0REUiUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjB1bmRlZmluZWQlMkMlMjBuYW1lJTNBJTIwRERSJTJDJTIwc3BhY2UlM0ElMjB1bmRlZmluZWQlMkMlMjBwYWdlJTNBJTIwdW5kZWZpbmVkJTJDJTIwYmFzZSUzQSUyMDB4ODAwMDAwMDAlMkMlMjBsZW4lM0ElMjAweDEwMDAwMDAwJTJDJTIwYWNjZXNzJTNBJTIwdW5kZWZpbmVkJTdEJTVEJTBBJTVEJTJDJTIwY3VzdG9tTWVtb3J5TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcmVuYW1lTWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwZGF0YU1lbW9yeSUzQSUyMEREUiUyQyUyMGNvZGVNZW1vcnklM0ElMjBJUkFNJTJDJTIwc3RhY2tNZW1vcnklM0ElMjBERFIlMkMlMjBzZWN0TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnbG9iYWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeW1ib2wiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MlMjclMkMlMjAweDElNUQlMkMlMEElNUIlMjd4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyUyNyUyQyUyMDB4MSU1RCUwQSU1RCI+PG1hcCBpZD0ieGRjLmNmZy5Qcm9ncmFtL3N5bWJvbCIgbGVuZ3RoPSIyIj4NCisgIDxlbnRyeSBrZXk9InhkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MiPjB4MTwvZW50cnk+DQorICA8ZW50cnkga2V5PSJ4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyI+MHgxPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpeGVkQ29kZUFkZHIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpeGVkRGF0YUFkZHIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxvYWRGaXhlZERhdGFBZGRyIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxvYWRSb20iIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuY2ZnLk1haW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0idGkucGxhdGZvcm1zLnNpbTY0UHh4IiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHguUGxhdGZvcm0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQk9BUkQiIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uQm9hcmQiIHZhbHVlPSIlN0JpZCUzQSUyMDAlMkMlMjBib2FyZE5hbWUlM0ElMjBzaW02NFB4eCUyQyUyMGJvYXJkRmFtaWx5JTNBJTIwc2ltNjRQeHglMkMlMjBib2FyZFJldmlzaW9uJTNBJTIwbnVsbCU3RCI+PHN0cnVjdCBpZD0idGkucGxhdGZvcm1zLnNpbTY0UHh4LlBsYXRmb3JtL0JPQVJEIj4NCisgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmROYW1lIj5zaW02NFB4eDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmRGYW1pbHkiPnNpbTY0UHh4PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZFJldmlzaW9uIj5udWxsPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkNQVSIgdHlwZT0ieGRjLnBsYXRmb3JtLklFeGVDb250ZXh0LkNwdSIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGNhdGFsb2dOYW1lJTNBJTIwdGkuY2F0YWxvZy5jNjAwMCUyQyUyMGRldmljZU5hbWUlM0ElMjBUTVMzMjBDVENJNjQ4MiUyQyUyMHJldmlzaW9uJTNBJTIwJTJDJTIwY2xvY2tSYXRlJTNBJTIwMHgzZTglN0QiPjxzdHJ1Y3QgaWQ9InRpLnBsYXRmb3Jtcy5zaW02NFB4eC5QbGF0Zm9ybS9DUFUiPg0KKyAgPGZpZWxkIG5hbWU9ImlkIj4wPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjYXRhbG9nTmFtZSI+dGkuY2F0YWxvZy5jNjAwMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGV2aWNlTmFtZSI+VE1TMzIwQ1RDSTY0ODI8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJldmlzaW9uIi8+DQorICA8ZmllbGQgbmFtZT0iY2xvY2tSYXRlIj4weDNlODwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucnVudGltZSIgdmVyc2lvbj0iMiwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9hc3NlcnRGYWlsZWQiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBhc3NlcnRpb24lMjBmYWlsdXJlJTI1cyUyNXMlMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzAiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+YXNzZXJ0aW9uIGZhaWx1cmUlcyVzPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Db3JlIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2luaXRpYWxpemVkUGFyYW1zIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwQV9pbml0aWFsaXplZFBhcmFtcyUzQSUyMHVuaW5pdGlhbGl6ZWQlMjBQYXJhbXMlMjBzdHJ1Y3QlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+QV9pbml0aWFsaXplZFBhcmFtczogdW5pbml0aWFsaXplZCBQYXJhbXMgc3RydWN0PC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5EZWZhdWx0cy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5EaWFncyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkRpYWdzL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzczIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFTlRSWSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRVhJVCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTElGRUNZQ0xFIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJJTlRFUk5BTCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQVNTRVJUIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjEiIHR5cGU9Im51bWJlciIgdmFsdWU9IjI1NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjMiIHR5cGU9Im51bWJlciIgdmFsdWU9IjEwMjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI0IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyMDQ4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjYiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgxOTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI3IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNjM4NCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjgiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzY4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBTEwiIHR5cGU9Im51bWJlciIgdmFsdWU9IjY1NTM1Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZXRNYXNrRW5hYmxlZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkaWN0QmFzZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5FcnJvciIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJOVU1BUkdTIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX2dlbmVyaWMiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBnZW5lcmljJTIwZXJyb3IlM0ElMjAlMjVzJTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxIj4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPmdlbmVyaWMgZXJyb3I6ICVzPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9tZW1vcnkiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBvdXQlMjBvZiUyMG1lbW9yeSUzQSUyMGhlYXAlM0QweCUyNXglMkMlMjBzaXplJTNEJTI1dSUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5vdXQgb2YgbWVtb3J5OiBoZWFwPTB4JXgsIHNpemU9JXU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwb2xpY3kiIHR5cGU9Im9iamVjdCIgdmFsdWU9InhkYy5ydW50aW1lLkVycm9yLlVOV0lORCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icmFpc2VIb29rIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4RGVwdGgiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkdhdGUiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuR2F0ZU51bGwiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5HYXRlTnVsbC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9CTE9DS0lORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9QUkVFTVBUSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5VTUFSR1MiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlBSSU5URklEIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2NvbnN0cnVjdCIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAlM0MtLSUyMGNvbnN0cnVjdCUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2NyZWF0ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAlM0MtLSUyMGNyZWF0ZSUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2Rlc3RydWN0IiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMC0tJTNFJTIwZGVzdHJ1Y3QlM0ElMjAlMjglMjVwJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4NDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj4tLT4gZGVzdHJ1Y3Q6ICglcCk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9kZWxldGUiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwLS0lM0UlMjBkZWxldGUlM0ElMjAlMjglMjVwJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4NDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj4tLT4gZGVsZXRlOiAoJXApPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImlkVG9JbmZvIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjclMjM0NjglMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9jb25zdHJ1Y3QlM0ElM0ElM0MtLSUyMGNvbnN0cnVjdCUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTVEJTJDJTBBJTVCJTI3JTIzNDkyJTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlJTNBJTNBJTNDLS0lMjBjcmVhdGUlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU1RCUyQyUwQSU1QiUyNyUyMzUxMyUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0JTNBJTNBLS0lM0UlMjBkZXN0cnVjdCUzQSUyMCUyOCUyNXAlMjklNUQlMkMlMEElNUIlMjclMjM1MzIlMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9kZWxldGUlM0ElM0EtLSUzRSUyMGRlbGV0ZSUzQSUyMCUyOCUyNXAlMjklNUQlMEElNUQiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nZ2VyQnVmIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZ2dlclN5cyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5NYWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfR2F0ZVByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDElMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBRX0JMT0NLSU5HJTNBJTIwMHgxJTJDJTIwUV9QUkVFTVBUSU5HJTNBJTIwMHgyJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxM2EzNGFmJTNBJTNBJTI4eGRjLnJ1bnRpbWUuSUdhdGVQcm92aWRlci5Nb2R1bGUlMjl4ZGMucnVudGltZS5HYXRlTnVsbCUyQyUyMGFic3RyYWN0SW5zdGFuY2VzJTI0JTNBJTIwZmFsc2UlN0QiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTWVtb3J5IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3OSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9CTE9DS0lORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGVmYXVsdEhlYXBJbnN0YW5jZSIgdHlwZT0ieGRjLnJ1bnRpbWUuSUhlYXAuSW5zdGFuY2UiIHZhbHVlPSIlN0IlN0QiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGVmYXVsdEhlYXBTaXplIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJIZWFwUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDIlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDE2MGJmNTAlM0ElM0ElMjh4ZGMucnVudGltZS5JSGVhcC5Nb2R1bGUlMjl4ZGMucnVudGltZS5IZWFwU3RkJTJDJTIwYWJzdHJhY3RJbnN0YW5jZXMlMjQlM0ElMjB0cnVlJTdEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkhlYXBNaW4iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuSGVhcFN0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkhlYXBTdGQvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9ub1JUU01lbW9yeSIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMFRoZSUyMFJUUyUyMGhlYXAlMjBpcyUyMHVzZWQlMjB1cC4lMjBFeGFtaW5lJTIwUHJvZ3JhbS5oZWFwLiUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjNCI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5UaGUgUlRTIGhlYXAgaXMgdXNlZCB1cC4gRXhhbWluZSBQcm9ncmFtLmhlYXAuPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV96ZXJvU2l6ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEhlYXBTdGRfY3JlYXRlJTIwY2Fubm90JTIwaGF2ZSUyMGElMjB6ZXJvJTIwc2l6ZSUyMHZhbHVlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMyIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkhlYXBTdGRfY3JlYXRlIGNhbm5vdCBoYXZlIGEgemVybyBzaXplIHZhbHVlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfaW52YWxpZFRvdGFsRnJlZVNpemUiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBIZWFwU3RkJTIwaW5zdGFuY2UlMjB0b3RhbEZyZWVTaXplJTIwaXMlMjBncmVhdGVyJTIwdGhhbiUyMHN0YXJ0aW5nJTIwc2l6ZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMyI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5IZWFwU3RkIGluc3RhbmNlIHRvdGFsRnJlZVNpemUgaXMgZ3JlYXRlciB0aGFuIHN0YXJ0aW5nIHNpemU8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9pbnZhbGlkQWxpZ25tZW50IiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwSGVhcFN0ZF9hbGxvYyUyMC0lMjByZXF1ZXN0ZWQlMjBhbGlnbm1lbnQlMjBpcyUyMGdyZWF0ZXIlMjB0aGFuJTIwYWxsb3dlZCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNCI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5IZWFwU3RkX2FsbG9jIC0gcmVxdWVzdGVkIGFsaWdubWVudCBpcyBncmVhdGVyIHRoYW4gYWxsb3dlZDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN0YXJ0dXAiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TdGFydHVwL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkRPTkUiIHR5cGU9Im51bWJlciIgdmFsdWU9Ii0xIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJOT1RET05FIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYXhQYXNzZXMiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmaXJzdEZ4bnMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsYXN0RnhucyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJlc2V0RnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzdGFydE1vZHNGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleGVjSW1wbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZnhuVGFiIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UlMkMlMjAlMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UlMkMlMjAlMjZhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZnhuUnRzIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUJ0cnVlJTJDJTIwdHJ1ZSUyQyUyMGZhbHNlJTVEIj48dmVjdG9yIGlkPSJ4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMiIGxlbmd0aD0iMyI+DQorICA8ZWxlbT50cnVlPC9lbGVtPg0KKyAgPGVsZW0+dHJ1ZTwvZWxlbT4NCisgIDxlbGVtPmZhbHNlPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXN0ZW0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TeXN0ZW0vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJTVEFUVVNfVU5LTk9XTiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNTE5NjYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfY2Fubm90Rml0SW50b0FyZyIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEFfY2Fubm90Rml0SW50b0FyZyUzQSUyMHNpemVvZiUyOEZsb2F0JTI5JTIwJTNFJTIwc2l6ZW9mJTI4QXJnJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1Ij4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkFfY2Fubm90Rml0SW50b0FyZzogc2l6ZW9mKEZsb2F0KSA+IHNpemVvZihBcmcpPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4dGVuZGVkRm9ybWF0cyIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTI1JTI0TCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iU3VwcG9ydFByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHgzJTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakA5NmFkN2MlM0ElM0ElMjh4ZGMucnVudGltZS5JU3lzdGVtU3VwcG9ydC5Nb2R1bGUlMjl4ZGMucnVudGltZS5TeXNNaW4lN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1heEF0ZXhpdEhhbmRsZXJzIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleHRlbmRGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4aXRGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX0dhdGVQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDQlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBRX0JMT0NLSU5HJTNBJTIwMHgxJTJDJTIwUV9QUkVFTVBUSU5HJTNBJTIwMHgyJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxMmQ4ZWNkJTNBJTNBJTI4eGRjLnJ1bnRpbWUuSUdhdGVQcm92aWRlci5Nb2R1bGUlMjl4ZGMucnVudGltZS5HYXRlTnVsbCUyQyUyMGFic3RyYWN0SW5zdGFuY2VzJTI0JTNBJTIwZmFsc2UlN0QiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3lzU3RkIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN5c01pbiIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlN5c01pbi9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODMiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlZpZXdJbmZvIiB0eXBlPSJ4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIiB2YWx1ZT0iJTdCdmlld01hcCUzQSUyMCU1QiUwQSU1QiUyN01vZHVsZSUyNyUyQyUyMCU3QnR5cGUlM0ElMjBNT0RVTEUlMkMlMjB2aWV3SW5pdEZ4biUzQSUyMHZpZXdJbml0TW9kdWxlJTJDJTIwc3RydWN0TmFtZSUzQSUyME1vZHVsZVZpZXclN0QlNUQlMkMlMEElNUIlMjdPdXRwdXRCdWZmZXIlMjclMkMlMjAlN0J0eXBlJTNBJTIwTU9EVUxFX0RBVEElMkMlMjB2aWV3SW5pdEZ4biUzQSUyMHZpZXdJbml0T3V0cHV0QnVmZmVyJTJDJTIwc3RydWN0TmFtZSUzQSUyMEJ1ZmZlckVudHJ5VmlldyU3RCU1RCUwQSU1RCUyQyUyMHNob3dSYXdUYWIlM0ElMjB0cnVlJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJidWZTaXplIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxMDI0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmbHVzaEF0RXhpdCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNlY3Rpb25OYW1lIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJvdXRwdXRGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im91dHB1dEZ1bmMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0kiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGV4dCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4NCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZVVua25vd24iIHR5cGU9InN0cmluZyIgdmFsdWU9IiU3QnVua25vd24taW5zdGFuY2UtbmFtZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZUVtcHR5IiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlN0JlbXB0eS1pbnN0YW5jZS1uYW1lJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lU3RhdGljIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlN0JzdGF0aWMtaW5zdGFuY2UtbmFtZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iaXNMb2FkZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjaGFyVGFiIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIweDAlMkMlMjAweDQxJTJDJTIwMHg1ZiUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2OSUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHg1MCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg2MSUyQyUyMDB4NmQlMkMlMjAweDczJTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDc1JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2OSUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NTAlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2MyUyQyUyMDB4NzQlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg0ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg1ZiUyQyUyMDB4NjMlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDc2JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHgyMCUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDc2JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDVmJTJDJTIwMHg2MyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4NmUlMkMlMjAweDZmJTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NzYlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjElMkMlMjAweDIwJTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NzYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NzUlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDYzJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDc0JTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NDYlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjUlMkMlMjAweDUzJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2NyUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2NCUyQyUyMDB4NWYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MyUyQyUyMDB4MjAlMkMlMjAweDJkJTJDJTIwMHgyMCUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg3MSUyQyUyMDB4NzUlMkMlMjAweDY1JTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDY3JTJDJTIwMHg2ZSUyQyUyMDB4NmQlMkMlMjAweDY1JTJDJTIwMHg2ZSUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg2NyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4MjAlMkMlMjAweDc0JTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2YyUyQyUyMDB4NmYlMkMlMjAweDc3JTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDAlMkMlMjAweDQxJTJDJTIwMHg1ZiUyQyUyMDB4NjMlMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4NmUlMkMlMjAweDZmJTJDJTIwMHg3NCUyQyUyMDB4NDYlMkMlMjAweDY5JTJDJTIwMHg3NCUyQyUyMDB4NDklMkMlMjAweDZlJTJDJTIwMHg3NCUyQyUyMDB4NmYlMkMlMjAweDQxJTJDJTIwMHg3MiUyQyUyMDB4NjclMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDZmJTJDJTIwMHg2NiUyQyUyMDB4MjglMkMlMjAweDQ2JTJDJTIwMHg2YyUyQyUyMDB4NmYlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4MjklMkMlMjAweDIwJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2ZiUyQyUyMDB4NjYlMkMlMjAweDI4JTJDJTIwMHg0MSUyQyUyMDB4NzIlMkMlMjAweDY3JTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4NjElMkMlMjAweDczJTJDJTIwMHg3MyUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDY2JTJDJTIwMHg2MSUyQyUyMDB4NjklMkMlMjAweDZjJTJDJTIwMHg3NSUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NjclMkMlMjAweDY1JTJDJTIwMHg2ZSUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg2OSUyQyUyMDB4NjMlMkMlMjAweDIwJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgwJTJDJTIwMHg2ZiUyQyUyMDB4NzUlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NmYlMkMlMjAweDY2JTJDJTIwMHgyMCUyQyUyMDB4NmQlMkMlMjAweDY1JTJDJTIwMHg2ZCUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHg3OSUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4M2QlMkMlMjAweDMwJTJDJTIwMHg3OCUyQyUyMDB4MjUlMkMlMjAweDc4JTJDJTIwMHgyYyUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgzZCUyQyUyMDB4MjUlMkMlMjAweDc1JTJDJTIwMHgwJTJDJTIwMHg2NiUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2NSUyQyUyMDB4MjglMkMlMjAweDI5JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg3NiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg2NyUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg3NyUyQyUyMDB4NzQlMkMlMjAweDY4JTJDJTIwMHgyZCUyQyUyMDB4NmYlMkMlMjAweDZlJTJDJTIwMHg2YyUyQyUyMDB4NzklMkMlMjAweDIwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NGQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MCUyQyUyMDB4NTQlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDUyJTJDJTIwMHg1NCUyQyUyMDB4NTMlMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDc1JTJDJTIwMHg3MyUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NzUlMkMlMjAweDcwJTJDJTIwMHgyZSUyQyUyMDB4MjAlMkMlMjAweDQ1JTJDJTIwMHg3OCUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NTAlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2MSUyQyUyMDB4NmQlMkMlMjAweDJlJTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDNjJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NmYlMkMlMjAweDZlJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NjMlMkMlMjAweDc0JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjglMkMlMjAweDI3JTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDI3JTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4M2MlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOCUyQyUyMDB4MjclMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MjclMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDNlJTJDJTIwMHgyMCUyQyUyMDB4NjQlMkMlMjAweDY1JTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NjMlMkMlMjAweDc0JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI4JTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDNlJTJDJTIwMHgyMCUyQyUyMDB4NjQlMkMlMjAweDY1JTJDJTIwMHg2YyUyQyUyMDB4NjUlMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyOCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4NzglMkMlMjAweDY0JTJDJTIwMHg2MyUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NmUlMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NmQlMkMlMjAweDY1JTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4NDElMkMlMjAweDczJTJDJTIwMHg3MyUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4MCUyQyUyMDB4NDMlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ0JTJDJTIwMHg2NSUyQyUyMDB4NjYlMkMlMjAweDYxJTJDJTIwMHg3NSUyQyUyMDB4NmMlMkMlMjAweDc0JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NDQlMkMlMjAweDY5JTJDJTIwMHg2MSUyQyUyMDB4NjclMkMlMjAweDczJTJDJTIwMHgwJTJDJTIwMHg0NSUyQyUyMDB4NzIlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDAlMkMlMjAweDQ3JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0NyUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NGUlMkMlMjAweDc1JTJDJTIwMHg2YyUyQyUyMDB4NmMlMkMlMjAweDAlMkMlMjAweDRjJTJDJTIwMHg2ZiUyQyUyMDB4NjclMkMlMjAweDAlMkMlMjAweDRkJTJDJTIwMHg2MSUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgwJTJDJTIwMHg0ZCUyQyUyMDB4NjUlMkMlMjAweDZkJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDc5JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2NCUyQyUyMDB4MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHg3NSUyQyUyMDB4NzAlMkMlMjAweDAlMkMlMjAweDUzJTJDJTIwMHg3OSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NmQlMkMlMjAweDAlMkMlMjAweDUzJTJDJTIwMHg3OSUyQyUyMDB4NzMlMkMlMjAweDRkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDAlMkMlMjAweDU0JTJDJTIwMHg2NSUyQyUyMDB4NzglMkMlMjAweDc0JTJDJTIwMHgwJTJDJTIwMHg2MSUyQyUyMDB4NjMlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDc1JTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZjJTJDJTIwMHg3MyUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDYzJTJDJTIwMHg2YyUyQyUyMDB4NmYlMkMlMjAweDYzJTJDJTIwMHg2YiUyQyUyMDB4NzMlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg0MyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MyUyQyUyMDB4NmIlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDAlMkMlMjAweDQyJTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDYzJTJDJTIwMHg2OCUyQyUyMDB4MCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9jaGFyVGFiIiBsZW5ndGg9IjY5NyI+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc3PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NDk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDQ2PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgzZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4M2Q8L2VsZW0+DQorICA8ZWxlbT4weDMwPC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHgyYzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgzZDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDUyPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDQ1PC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDNjPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4M2M8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ3PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NGU8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDU0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2YjwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmI8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCis8L3ZlY3Rvcj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5vZGVUYWIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU3QmxlZnQlM0ElMjAweDAlMkMlMjByaWdodCUzQSUyMDB4MCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDIyNSUyQyUyMHJpZ2h0JTNBJTIwMHgyMmElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDIzMyU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjNhJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyM2YlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI0OCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjRlJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNTQlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI1OSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjYyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNjYlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI2YiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjcyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyN2ElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI4MiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4Mjg5JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyOTAlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHgyOTUlMkMlMjByaWdodCUzQSUyMDB4MjliJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAxMSUyQyUyMHJpZ2h0JTNBJTIwMHgyYTIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDEyJTJDJTIwcmlnaHQlM0ElMjAweDJhYSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMTElMkMlMjByaWdodCUzQSUyMDB4MmIzJTdEJTVEIj48dmVjdG9yIGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIiIGxlbmd0aD0iMjEiPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8wIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHgwPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHgyMjU8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyMmE8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIzMzwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8zIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjNhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzQiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyM2Y8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI0ODwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi82Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjRlPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzciPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNTQ8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI1OTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi85Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjYyPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEwIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjY2PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzExIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjZiPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEyIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjcyPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEzIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjdhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE0Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjgyPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE1Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4Mjg5PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE2Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjkwPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE3Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHgyOTU8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyOWI8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTgiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMTE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyYTI8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTkiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMTI8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyYWE8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMjAiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMTE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyYjM8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCis8L3ZlY3Rvcj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNoYXJDbnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjY5NyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibm9kZUNudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMjEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpc2l0Um9wZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpc2l0Um9wZUZ4bjIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlMl9fSSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UaW1lc3RhbXAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGltZXN0YW1wTnVsbCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UaW1lc3RhbXBTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVHlwZXMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InRpLnRhcmdldHMucnRzNjAwMCIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9ImFjbWUudXRpbHMuY2xvY2tzIiB2ZXJzaW9uPSIiIHJlcG9zaXRvcnk9IkQ6L3dvcmsvdHV0b3JpYWwvcmVwby8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9ImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0iYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9ImFjbWUudXRpbHMiIHZlcnNpb249IiIgcmVwb3NpdG9yeT0iRDovd29yay90dXRvcmlhbC9yZXBvLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iYWNtZS51dGlscy5CZW5jaCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9ImFjbWUudXRpbHMuQmVuY2gvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4OCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUENsb2NrIiB0eXBlPSJhY21lLnV0aWxzLkJlbmNoX1BDbG9jay5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4NSUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMTZkMzUzNiUzQSUzQSUyOGFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5Nb2R1bGUlMjlhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZW5hYmxlRmxhZyIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9ImNoYXJsaWUuc3FydGxpYi50ZXN0IiB2ZXJzaW9uPSIiIHJlcG9zaXRvcnk9IkQ6L3dvcmsvdHV0b3JpYWwvcmVwby8iPgorICAgIDwvcGFja2FnZT4KKzwvaW1wb3J0cz4KKzwvY29uZmlndXJhdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNzYwMjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuZGVwCkBAIC0wLDAgKzEsMTE4IEBACisjCisjIFRoZSBmb2xsb3dpbmcgaXMgZ2VuZXJhdGVkIGJ5IHV0aWxzLmdlbkRlcCBmb3IgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQCisjCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuYyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuaCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAueGRsOmlzcXJ0VGVzdDEuY2ZnIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5jZmcgRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvQmVuY2gueHMgRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JQW50YXJhLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lEYVZpbmNpLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lIaW1hbGF5YS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JT01BUDJ4M3gueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSU9NQVAzeHh4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjQyeC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzEyOEsueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8xTS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzI1NksueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF81MTJLLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngweC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzZ4MXgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENETTY0NjcueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENEUkE0NHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENEUng0MHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENUQ0k2NDg0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4Ni54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0OHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMERBOHh4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDIxLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDI4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDUyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDU0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0MzEueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQ3LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0OC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRjc2MTk5MC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDVE5FVFYyNjg1LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL2M2eC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9wbGF0Zm9ybXMvc2ltNjRQeHgvUGxhdGZvcm0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvTWFpbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vRXhlQ29udGV4dC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0lQbGF0Zm9ybS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL1V0aWxzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Nb2RlbC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Qcm9ncmFtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0YXRlUmVhZGVyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0cnVjdHVyZURlY29kZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBNaW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyQnVmLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJTeXMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RpbWVzdGFtcC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHMgCisKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL0JlbmNoLnhzOgorRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSUFudGFyYS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lEYVZpbmNpLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSUhpbWFsYXlhLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSU9NQVAyeDN4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSU9NQVAzeHh4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NDJ4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8xMjhLLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8xTS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMjU2Sy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfNTEySy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngweC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngxeC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDRE02NDY3LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENEUkE0NHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RSeDQweC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4NC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4Ni54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBEQTh4eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDIxLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0MjgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQ1Mi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDU0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQzMS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0Ny54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0OC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENGNzYxOTkwLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ1RORVRWMjY4NS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL2M2eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1BsYXRmb3JtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL01haW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9FeGVDb250ZXh0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9JUGxhdGZvcm0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL1V0aWxzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvTW9kZWwueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Qcm9ncmFtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RhdGVSZWFkZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdHJ1Y3R1cmVEZWNvZGVyLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBNaW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJCdWYueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyU3lzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UaW1lc3RhbXAueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHM6CisKKworZGVmaW5lIEVYRUMuaXNxcnRUZXN0MS1TUEFDRS54NjRQCisKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9wbGF0Zm9ybXMvc2ltNjRQeHgvV2luZG93cy9rZWx2aW4gLXF1aWV0IC1tZW1faWdub3JlIEQ6XHdvcmtcdHV0b3JpYWxccmVwb1xjaGFybGllXHNxcnRsaWJcdGVzdFxpc3FydFRlc3QxLVNQQUNFLng2NFAKK2VuZGVmCisKKyMKKyMgVGhlIGZvbGxvd2luZyBpcyBnZW5lcmF0ZWQgYnkgamF2YQorIworCitpc3FydFRlc3QxLVNQQUNFLng2NFA6IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2xpYi9hY21lLnV0aWxzLmE2NFAgRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvbGliL3RpLnRhcmdldHMucnRzNjAwMC5hNjRQIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvbGliL2Jvb3QuYTY0UCBEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF9sb29wLmE2NFAgCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua2NtZC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua2NtZC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua1V0aWxzLnhzIAorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmMgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLnhkbDogRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi8uaW50ZXJmYWNlcyBEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLmludGVyZmFjZXMgRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvLmludGVyZmFjZXMgLmludGVyZmFjZXMgCisKKyMKKyMgcnVsZS1sZXNzIGdvYWxzIGZvciBmaWxlcyBvdXRzaWRlIHRoaXMgcGFja2FnZQorIyAodGhlc2UgZ29hbHMgZm9yY2UgYSByZS1idWlsZCBpZiB0aGVzZSBmaWxlcyBhcmUKKyMgbW92ZWQgb3IgZGVsZXRlZCkKKyMKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2xpYi9hY21lLnV0aWxzLmE2NFA6CitEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvbGliL2FjbWUudXRpbHMuY2xvY2tzLmE2NFA6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9ydHM2MDAwL2xpYi90aS50YXJnZXRzLnJ0czYwMDAuYTY0UDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvbGliL2Jvb3QuYTY0UDoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvbGliL2lzcXJ0X2xvb3AuYTY0UDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rY21kLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL2xpbmtjbWQueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua1V0aWxzLnhzOgorRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi8uaW50ZXJmYWNlczoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy8uaW50ZXJmYWNlczoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzLy5pbnRlcmZhY2VzOgorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2MGYxMjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuaApAQCAtMCwwICsxLDEzIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCitleHRlcm4gaW50IHhkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0M7CisKK2V4dGVybiBpbnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0M7CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyZTVhYTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubWFrCkBAIC0wLDAgKzEsNzcgQEAKKyMKKyMgIERvIG5vdCBlZGl0IHRoaXMgZmlsZS4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSAKKyMgIHBhY2thZ2UuYmxkLiAgQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBmaWxlIHdpbGwgYmUgCisjICBvdmVyd3JpdHRlbiB3aGVuZXZlciBtYWtlZmlsZXMgYXJlIHJlLWdlbmVyYXRlZC4KKyMKKyMgIHRhcmdldCBjb21wYXRpYmlsaXR5IGtleSA9IHRpLnRhcmdldHMuQzY0UHsxLDAsNi4xLDUKKyMKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmMgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgIC1xcSAtcGRzdzIyNSAtbW8gLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvY2ZnIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnIC1mcj0uL3BhY2thZ2UvY2ZnCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLm82NFA6Q19ESVI9CitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5zNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuczY0UDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmMgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgLW4gJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbW8gLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvY2ZnIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnIC1mcj0uL3BhY2thZ2UvY2ZnCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLnM2NFA6Q19ESVI9CitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuczY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuczY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzY0UDogaXNxcnRUZXN0MS5jIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRSAtZnI9Li9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRSAtZnI9Li9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLm82NFA6Q19ESVI9CitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5zNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEuczY0UDogaXNxcnRUZXN0MS5jIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQIC1uICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRSAtZnI9Li9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRSAtZnI9Li9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLnM2NFA6Q19ESVI9CitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEuczY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEuczY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2NsZWFuLDY0UCA6OgorCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UAorCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzY0UAorCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuczY0UAorCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEuczY0UAorCitpc3FydFRlc3QxLVNQQUNFLng2NFA6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vNjRQIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5tYWsKKworY2xlYW46OgorCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubWFrCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg2ZDNkNWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UC5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmE1YTBkNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5vNjRQLmRlcApAQCAtMCwwICsxLDU1IEBACitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCAuLi8uLi8uLi9hY21lL3V0aWxzL0JlbmNoLmggLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0NvcmUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbWl0cy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGlvLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkYXJnLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkZGVmLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9CZW5jaF9QQ2xvY2suaCAuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbmthZ2UuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCANCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuYzoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvQmVuY2guaDoNCisuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9DbG9ja1N0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQ29yZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0Lmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGltaXRzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW8uaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvSUNsb2NrLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9wYWNrYWdlL0JlbmNoX1BDbG9jay5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGlua2FnZS5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5yb3YueHMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAucm92LnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxYzNkYzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAucm92LnhzCkBAIC0wLDAgKzEsNTA4NiBAQAorX19vID0gbnVsbAorX19vYmogPSBbCisgICAgdGhpcywgIC8vICMwIAorICAgIHt9LCAgICAvLyAjMSAKKyAgICB7fSwgICAgLy8gIzIgeGRjLnJ1bnRpbWUuQXNzZXJ0CisgICAgW10sICAgIC8vICMzIHhkYy5ydW50aW1lLkFzc2VydC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM0IHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMAorICAgIHt9LCAgICAvLyAjNSB4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNiB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzcgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM4IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzkgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzEwIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTEgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEyIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTMgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTQgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE2IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE4IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE5IHhkYy5ydW50aW1lLkFzc2VydC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwIHhkYy5ydW50aW1lLkNvcmUKKyAgICBbXSwgICAgLy8gIzIxIHhkYy5ydW50aW1lLkNvcmUvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjIgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMAorICAgIHt9LCAgICAvLyAjMjMgeGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kCisgICAgW10sICAgIC8vICMyNCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjcgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyOCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyOSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzMwIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMzMiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMzIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzNCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzM1IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzM2IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzNyB4ZGMucnVudGltZS5Db3JlL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzggeGRjLnJ1bnRpbWUuRGVmYXVsdHMKKyAgICBbXSwgICAgLy8gIzM5IHhkYy5ydW50aW1lLkRlZmF1bHRzLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzQwIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzQxIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM0MiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNDMgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM0NCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM0NSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNDYgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjNDcgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzQ4IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjNDkgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNTAgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM1MSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM1MiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjNTMgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM1NCB4ZGMucnVudGltZS5EZWZhdWx0cy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzU1IHhkYy5ydW50aW1lLkRpYWdzCisgICAgW10sICAgIC8vICM1NiB4ZGMucnVudGltZS5EaWFncy8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM1NyB4ZGMucnVudGltZS5EaWFncy9jb21tb24kCisgICAgW10sICAgIC8vICM1OCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNTkgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzYwIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjEgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjNjIgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzYzIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzY0IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICM2NSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzY2IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzY3IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjNjggeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjkgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzcwIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjNzEgeGRjLnJ1bnRpbWUuRGlhZ3Mvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICM3MiB4ZGMucnVudGltZS5FcnJvcgorICAgIFtdLCAgICAvLyAjNzMgeGRjLnJ1bnRpbWUuRXJyb3IvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNzQgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxCisgICAge30sICAgIC8vICM3NSB4ZGMucnVudGltZS5FcnJvci5EZXNjIzIKKyAgICB7fSwgICAgLy8gIzc2IHhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzc3IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM3OCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNzkgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM4MCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM4MSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODIgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjODMgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzg0IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjODUgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODYgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM4NyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM4OCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjODkgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM5MCB4ZGMucnVudGltZS5FcnJvci92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzkxIHhkYy5ydW50aW1lLkdhdGUKKyAgICBbXSwgICAgLy8gIzkyIHhkYy5ydW50aW1lLkdhdGUvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjOTMgeGRjLnJ1bnRpbWUuR2F0ZS9jb21tb24kCisgICAgW10sICAgIC8vICM5NCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM5NSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM5NiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjOTcgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM5OCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM5OSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEwMCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMDEgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzEwMiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEwMyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTA0IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTA1IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzEwNiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTA3IHhkYy5ydW50aW1lLkdhdGUvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxMDggeGRjLnJ1bnRpbWUuR2F0ZU51bGwKKyAgICBbXSwgICAgLy8gIzEwOSB4ZGMucnVudGltZS5HYXRlTnVsbC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxMTAgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTExIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxMTIgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzExMyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExNCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxMTUgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExNiB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMTcgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExOCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzExOSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxMjAgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxMjEgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTIyIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxMjMgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxMjQgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxMjUgeGRjLnJ1bnRpbWUuTG9nCisgICAgW10sICAgIC8vICMxMjYgeGRjLnJ1bnRpbWUuTG9nLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzEyNyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzAKKyAgICB7fSwgICAgLy8gIzEyOCB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzEKKyAgICB7fSwgICAgLy8gIzEyOSB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMKKyAgICB7fSwgICAgLy8gIzEzMCB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIKKyAgICB7fSwgICAgLy8gIzEzMSB4ZGMucnVudGltZS5Mb2cvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTMyIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTMzIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTM0IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzNSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTM2IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTM3IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMzggeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMzkgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTQwIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxNDEgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTQyIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNDMgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxNDQgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTQ1IHhkYy5ydW50aW1lLkxvZy9pZFRvSW5mbworICAgIFtdLCAgICAvLyAjMTQ2IHhkYy5ydW50aW1lLkxvZy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE0NyB4ZGMucnVudGltZS5NYWluCisgICAgW10sICAgIC8vICMxNDggeGRjLnJ1bnRpbWUuTWFpbi8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNDkgeGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kCisgICAgW10sICAgIC8vICMxNTAgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTUxIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE1MiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTUzIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTU0IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1NSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE1NiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxNTcgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE1OCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1OSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTYwIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTYxIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE2MiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTYzIHhkYy5ydW50aW1lLk1haW4vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxNjQgeGRjLnJ1bnRpbWUuTWVtb3J5CisgICAgW10sICAgIC8vICMxNjUgeGRjLnJ1bnRpbWUuTWVtb3J5LyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE2NiB4ZGMucnVudGltZS5IZWFwU3RkCisgICAgW10sICAgIC8vICMxNjcgeGRjLnJ1bnRpbWUuSGVhcFN0ZC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNjggeGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwCisgICAge30sICAgIC8vICMxNjkgeGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwL2luc3RhbmNlCisgICAge30sICAgIC8vICMxNzAgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNAorICAgIHt9LCAgICAvLyAjMTcxIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMKKyAgICB7fSwgICAgLy8gIzE3MiB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMyCisgICAge30sICAgIC8vICMxNzMgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyM0CisgICAge30sICAgIC8vICMxNzQgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb21tb24kCisgICAgW10sICAgIC8vICMxNzUgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTc2IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE3NyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTc4IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTc5IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4MCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE4MSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxODIgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE4MyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4NCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTg1IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTg2IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE4NyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTg4IHhkYy5ydW50aW1lLkhlYXBTdGQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxODkgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE5MCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE5MSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE5MiB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxOTMgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzE5NCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5NSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTk2IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk3IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE5OCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk5IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzIwMCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjAxIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjAyIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzIwMyB4ZGMucnVudGltZS5NZW1vcnkvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyMDQgeGRjLnJ1bnRpbWUuU3RhcnR1cAorICAgIFtdLCAgICAvLyAjMjA1IHhkYy5ydW50aW1lLlN0YXJ0dXAvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjA2IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjA3IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwOCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyMDkgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxMCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzIxMSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyMTIgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyMTMgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjE0IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyMTUgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyMTYgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzIxNyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxOCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyMTkgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzIyMCB4ZGMucnVudGltZS5TdGFydHVwL2ZpcnN0RnhucworICAgIFtdLCAgICAvLyAjMjIxIHhkYy5ydW50aW1lLlN0YXJ0dXAvbGFzdEZ4bnMKKyAgICBbXSwgICAgLy8gIzIyMiB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMKKyAgICBbXSwgICAgLy8gIzIyMyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5UYWIKKyAgICBbXSwgICAgLy8gIzIyNCB4ZGMucnVudGltZS5TdGFydHVwL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjI1IHhkYy5ydW50aW1lLlN5c3RlbQorICAgIFtdLCAgICAvLyAjMjI2IHhkYy5ydW50aW1lLlN5c3RlbS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMjcgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNQorICAgIHt9LCAgICAvLyAjMjI4IHhkYy5ydW50aW1lLlN5c01pbgorICAgIFtdLCAgICAvLyAjMjI5IHhkYy5ydW50aW1lLlN5c01pbi8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMzAgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzIzMSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIzMiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzIzMyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyMzQgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzIzNSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIzNiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjM3IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjM4IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzIzOSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQwIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI0MSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQyIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjQzIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI0NCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEKKyAgICB7fSwgICAgLy8gIzI0NSB4ZGMucm92LlZpZXdJbmZvCisgICAgW10sICAgIC8vICMyNDYgeGRjLnJvdi5WaWV3SW5mby8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyNDcgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwCisgICAgW10sICAgIC8vICMyNDggeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAKKyAgICB7fSwgICAgLy8gIzI0OSB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nQmFzaWMnCisgICAge30sICAgIC8vICMyNTAgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ1JlY29yZHMnCisgICAgW10sICAgIC8vICMyNTEgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAKKyAgICB7fSwgICAgLy8gIzI1MiB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nTW9kdWxlJworICAgIHt9LCAgICAvLyAjMjUzIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydPdXRwdXRCdWZmZXInCisgICAgW10sICAgIC8vICMyNTQgeGRjLnJ1bnRpbWUuU3lzTWluL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjU1IHhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kCisgICAgW10sICAgIC8vICMyNTYgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNTcgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNTggeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjU5IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyNjAgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyNjEgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzI2MiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2MyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyNjQgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2NSB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyNjYgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2NyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzI2OCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyNjkgeGRjLnJ1bnRpbWUuU3lzdGVtL2V4aXRGeG5zCisgICAgW10sICAgIC8vICMyNzAgeGRjLnJ1bnRpbWUuU3lzdGVtL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjcxIHhkYy5ydW50aW1lLlRleHQKKyAgICBbXSwgICAgLy8gIzI3MiB4ZGMucnVudGltZS5UZXh0LyRpbnN0YW5jZXMKKyAgICBbXSwgICAgLy8gIzI3MyB4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIKKyAgICB7fSwgICAgLy8gIzI3NCB4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI3NSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNzYgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjc3IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNzggeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyNzkgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjgwIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjgxIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4MiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjgzIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjg0IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyODUgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyODYgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjg3IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyODggeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiCisgICAge30sICAgIC8vICMyODkgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAKKyAgICB7fSwgICAgLy8gIzI5MCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMQorICAgIHt9LCAgICAvLyAjMjkxIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yCisgICAge30sICAgIC8vICMyOTIgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzMKKyAgICB7fSwgICAgLy8gIzI5MyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNAorICAgIHt9LCAgICAvLyAjMjk0IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81CisgICAge30sICAgIC8vICMyOTUgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzYKKyAgICB7fSwgICAgLy8gIzI5NiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNworICAgIHt9LCAgICAvLyAjMjk3IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84CisgICAge30sICAgIC8vICMyOTggeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzkKKyAgICB7fSwgICAgLy8gIzI5OSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTAKKyAgICB7fSwgICAgLy8gIzMwMCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTEKKyAgICB7fSwgICAgLy8gIzMwMSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIKKyAgICB7fSwgICAgLy8gIzMwMiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTMKKyAgICB7fSwgICAgLy8gIzMwMyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTQKKyAgICB7fSwgICAgLy8gIzMwNCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUKKyAgICB7fSwgICAgLy8gIzMwNSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTYKKyAgICB7fSwgICAgLy8gIzMwNiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTcKKyAgICB7fSwgICAgLy8gIzMwNyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTgKKyAgICB7fSwgICAgLy8gIzMwOCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTkKKyAgICB7fSwgICAgLy8gIzMwOSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMjAKKyAgICBbXSwgICAgLy8gIzMxMCB4ZGMucnVudGltZS5UZXh0L3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzExIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkCisgICAgW10sICAgIC8vICMzMTIgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMzEzIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzMxNCBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzE1IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMzMTYgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMzMTcgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMzE4IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMzMTkgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMzIwIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMzMjEgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMzMjIgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzIzIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMzI0IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMyNSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMzI2IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMzI3IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzI4IGFjbWUudXRpbHMuQmVuY2gKKyAgICBbXSwgICAgLy8gIzMyOSBhY21lLnV0aWxzLkJlbmNoLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzMzMCBhY21lLnV0aWxzLkJlbmNoL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzMzMSBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMzMzIgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMzMzIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMzMzQgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMzMzUgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzM2IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMzM3IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMzOCBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMzM5IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzQwIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzNDEgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMzNDIgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMzQzIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzNDQgYWNtZS51dGlscy5CZW5jaC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzM0NSAKKyAgICB7fSwgICAgLy8gIzM0NiAKKyAgICB7fSwgICAgLy8gIzM0NyAKKyAgICB7fSwgICAgLy8gIzM0OCAKKyAgICB7fSwgICAgLy8gIzM0OSAKKyAgICB7fSwgICAgLy8gIzM1MCAKKyAgICB7fSwgICAgLy8gIzM1MSB0aS50YXJnZXRzLkM2NFAKKyAgICB7fSwgICAgLy8gIzM1MiB0aS50YXJnZXRzLkM2NFAvYXIKKyAgICB7fSwgICAgLy8gIzM1MyB0aS50YXJnZXRzLkM2NFAvYXJPcHRzCisgICAge30sICAgIC8vICMzNTQgdGkudGFyZ2V0cy5DNjRQL2FzbQorICAgIHt9LCAgICAvLyAjMzU1IHRpLnRhcmdldHMuQzY0UC9hc21PcHRzCisgICAge30sICAgIC8vICMzNTYgdGkudGFyZ2V0cy5DNjIKKyAgICB7fSwgICAgLy8gIzM1NyB0aS50YXJnZXRzLkM2Mi9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICB7fSwgICAgLy8gIzM1OCB0aS50YXJnZXRzLkM2Mi9kZWJ1Z0dlbgorICAgIHt9LCAgICAvLyAjMzU5IHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMKKyAgICB7fSwgICAgLy8gIzM2MCB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuQycKKyAgICB7fSwgICAgLy8gIzM2MSB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYXNtJworICAgIHt9LCAgICAvLyAjMzYyIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jJworICAgIHt9LCAgICAvLyAjMzYzIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jYycKKyAgICB7fSwgICAgLy8gIzM2NCB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3BwJworICAgIHt9LCAgICAvLyAjMzY1IHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jeHgnCisgICAge30sICAgIC8vICMzNjYgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICB7fSwgICAgLy8gIzM2NyB0aS50YXJnZXRzLkM2Mi9tb2RlbAorICAgIHt9LCAgICAvLyAjMzY4IHRpLnRhcmdldHMuQzYyL3BsYXRmb3JtcworICAgIHt9LCAgICAvLyAjMzY5IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzCisgICAge30sICAgIC8vICMzNzAgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIHt9LCAgICAvLyAjMzcxIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM3MiB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM3MyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnCisgICAge30sICAgIC8vICMzNzQgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzc1IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzc2IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJworICAgIHt9LCAgICAvLyAjMzc3IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzc4IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNzkgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAge30sICAgIC8vICMzODAgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzODEgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM4MiB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScKKyAgICB7fSwgICAgLy8gIzM4MyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM4NCB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzg1IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJworICAgIHt9LCAgICAvLyAjMzg2IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzg3IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzODggdGkudGFyZ2V0cy5DNjIvc2VjdE1hcAorICAgIHt9LCAgICAvLyAjMzg5IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzCisgICAge30sICAgIC8vICMzOTAgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9DaGFyCisgICAge30sICAgIC8vICMzOTEgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICB7fSwgICAgLy8gIzM5MiB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0Zsb2F0CisgICAge30sICAgIC8vICMzOTMgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GeG4KKyAgICB7fSwgICAgLy8gIzM5NCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0lBcmcKKyAgICB7fSwgICAgLy8gIzM5NSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludAorICAgIHt9LCAgICAvLyAjMzk2IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MTYKKyAgICB7fSwgICAgLy8gIzM5NyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDMyCisgICAge30sICAgIC8vICMzOTggdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ0MAorICAgIHt9LCAgICAvLyAjMzk5IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NjQKKyAgICB7fSwgICAgLy8gIzQwMCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDgKKyAgICB7fSwgICAgLy8gIzQwMSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xEb3VibGUKKyAgICB7fSwgICAgLy8gIzQwMiB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xMb25nCisgICAge30sICAgIC8vICM0MDMgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Mb25nCisgICAge30sICAgIC8vICM0MDQgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9QdHIKKyAgICB7fSwgICAgLy8gIzQwNSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1Nob3J0CisgICAge30sICAgIC8vICM0MDYgdGkudGFyZ2V0cy5DNjIvdmVyc2lvbk1hcAorICAgIHt9LCAgICAvLyAjNDA3IHRpLnRhcmdldHMuQzY0UC9jYworICAgIHt9LCAgICAvLyAjNDA4IHRpLnRhcmdldHMuQzY0UC9jY0NvbmZpZ09wdHMKKyAgICB7fSwgICAgLy8gIzQwOSB0aS50YXJnZXRzLkM2NFAvY2NPcHRzCisgICAge30sICAgIC8vICM0MTAgdGkudGFyZ2V0cy5DNjRQL2NvbXBhdGlibGVTdWZmaXhlcworICAgIHt9LCAgICAvLyAjNDExIHRpLnRhcmdldHMuQzY0UC9kZWJ1Z0dlbgorICAgIHt9LCAgICAvLyAjNDEyIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zCisgICAge30sICAgIC8vICM0MTMgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5DJworICAgIHt9LCAgICAvLyAjNDE0IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYXNtJworICAgIHt9LCAgICAvLyAjNDE1IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYycKKyAgICB7fSwgICAgLy8gIzQxNiB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNjJworICAgIHt9LCAgICAvLyAjNDE3IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3BwJworICAgIHt9LCAgICAvLyAjNDE4IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3h4JworICAgIHt9LCAgICAvLyAjNDE5IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczYyJworICAgIHt9LCAgICAvLyAjNDIwIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0JworICAgIHt9LCAgICAvLyAjNDIxIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0UCcKKyAgICB7fSwgICAgLy8gIzQyMiB0aS50YXJnZXRzLkM2NFAvbG5rCisgICAge30sICAgIC8vICM0MjMgdGkudGFyZ2V0cy5DNjRQL2xua09wdHMKKyAgICB7fSwgICAgLy8gIzQyNCB0aS50YXJnZXRzLkM2NFAvbW9kZWwKKyAgICB7fSwgICAgLy8gIzQyNSB0aS50YXJnZXRzLkM2NFAvcGxhdGZvcm1zCisgICAge30sICAgIC8vICM0MjYgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzCisgICAge30sICAgIC8vICM0MjcgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScKKyAgICB7fSwgICAgLy8gIzQyOCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjNDI5IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzQzMCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJworICAgIHt9LCAgICAvLyAjNDMxIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICM0MzIgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjNDMzIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScKKyAgICB7fSwgICAgLy8gIzQzNCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICM0MzUgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAge30sICAgIC8vICM0MzYgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIHt9LCAgICAvLyAjNDM3IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzQzOCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzQzOSB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nCisgICAge30sICAgIC8vICM0NDAgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjNDQxIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycworICAgIHt9LCAgICAvLyAjNDQyIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycKKyAgICB7fSwgICAgLy8gIzQ0MyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICM0NDQgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzCisgICAge30sICAgIC8vICM0NDUgdGkudGFyZ2V0cy5DNjRQL3NlY3RNYXAKKyAgICB7fSwgICAgLy8gIzQ0NiB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMKKyAgICB7fSwgICAgLy8gIzQ0NyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9DaGFyCisgICAge30sICAgIC8vICM0NDggdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRG91YmxlCisgICAge30sICAgIC8vICM0NDkgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRmxvYXQKKyAgICB7fSwgICAgLy8gIzQ1MCB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GeG4KKyAgICB7fSwgICAgLy8gIzQ1MSB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JQXJnCisgICAge30sICAgIC8vICM0NTIgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50CisgICAge30sICAgIC8vICM0NTMgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MTYKKyAgICB7fSwgICAgLy8gIzQ1NCB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQzMgorICAgIHt9LCAgICAvLyAjNDU1IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDQwCisgICAge30sICAgIC8vICM0NTYgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NjQKKyAgICB7fSwgICAgLy8gIzQ1NyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ4CisgICAge30sICAgIC8vICM0NTggdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTERvdWJsZQorICAgIHt9LCAgICAvLyAjNDU5IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xMb25nCisgICAge30sICAgIC8vICM0NjAgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTG9uZworICAgIHt9LCAgICAvLyAjNDYxIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1B0cgorICAgIHt9LCAgICAvLyAjNDYyIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1Nob3J0CisgICAge30sICAgIC8vICM0NjMgdGkudGFyZ2V0cy5DNjRQL3ZlcnMKKyAgICB7fSwgICAgLy8gIzQ2NCB0aS50YXJnZXRzLkM2NFAvdmVyc2lvbk1hcAorICAgIHt9LCAgICAvLyAjNDY1IAorXQorCitfX28gPSBfX29ialswXSAgCisgICAgX19vWyckbW9kdWxlcyddID0gX19vYmpbMS4wXQorICAgIF9fb1snYnVpbGQnXSA9IF9fb2JqWzM0NS4wXQorCitfX28gPSBfX29ialsxXSAgCisgICAgX19vWycjMzI3NzAnXSA9IF9fb2JqWzIuMF0KKyAgICBfX29bJyMzMjc3MSddID0gX19vYmpbMjAuMF0KKyAgICBfX29bJyMzMjc3MiddID0gX19vYmpbMzguMF0KKyAgICBfX29bJyMzMjc3MyddID0gX19vYmpbNTUuMF0KKyAgICBfX29bJyMzMjc3NCddID0gX19vYmpbNzIuMF0KKyAgICBfX29bJyMzMjc3NSddID0gX19vYmpbOTEuMF0KKyAgICBfX29bJyMzMjc3NiddID0gX19vYmpbMTA4LjBdCisgICAgX19vWycjMzI3NzcnXSA9IF9fb2JqWzEyNS4wXQorICAgIF9fb1snIzMyNzc4J10gPSBfX29ialsxNDcuMF0KKyAgICBfX29bJyMzMjc3OSddID0gX19vYmpbMTY0LjBdCisgICAgX19vWycjMzI3ODAnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snIzMyNzgxJ10gPSBfX29ialsyMDQuMF0KKyAgICBfX29bJyMzMjc4MiddID0gX19vYmpbMjI1LjBdCisgICAgX19vWycjMzI3ODMnXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1snIzMyNzg0J10gPSBfX29ialsyNzEuMF0KKyAgICBfX29bJyMzMjc4NyddID0gX19vYmpbMzExLjBdCisgICAgX19vWycjMzI3ODgnXSA9IF9fb2JqWzMyOC4wXQorICAgIF9fb1snYWNtZS51dGlscy5CZW5jaCddID0gX19vYmpbMzI4LjBdCisgICAgX19vWydhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCddID0gX19vYmpbMzExLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Bc3NlcnQnXSA9IF9fb2JqWzIuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkNvcmUnXSA9IF9fb2JqWzIwLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5EZWZhdWx0cyddID0gX19vYmpbMzguMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkRpYWdzJ10gPSBfX29ials1NS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuRXJyb3InXSA9IF9fb2JqWzcyLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5HYXRlJ10gPSBfX29ials5MS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuR2F0ZU51bGwnXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuSGVhcFN0ZCddID0gX19vYmpbMTY2LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Mb2cnXSA9IF9fb2JqWzEyNS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuTWFpbiddID0gX19vYmpbMTQ3LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5NZW1vcnknXSA9IF9fb2JqWzE2NC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3RhcnR1cCddID0gX19vYmpbMjA0LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TeXNNaW4nXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3lzdGVtJ10gPSBfX29ialsyMjUuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlRleHQnXSA9IF9fb2JqWzI3MS4wXQorCitfX28gPSBfX29ialsyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszLjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0VfYXNzZXJ0RmFpbGVkJ10gPSBfX29ials0LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials1LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNi4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTkuMF0KKworX19vID0gX19vYmpbM10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNF0gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhc3NlcnRpb24rZmFpbHVyZSUyNXMlMjVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzVdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzZdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbN10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzhdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTBdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTFdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxM10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTRdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTVdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMThdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTldICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwXSAgLy8geGRjLnJ1bnRpbWUuQ29yZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjEuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfaW5pdGlhbGl6ZWRQYXJhbXMnXSA9IF9fb2JqWzIyLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzEKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjMuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzcuMF0KKworX19vID0gX19vYmpbMjFdICAvLyB4ZGMucnVudGltZS5Db3JlLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQV9pbml0aWFsaXplZFBhcmFtcyUzQSt1bmluaXRpYWxpemVkK1BhcmFtcytzdHJ1Y3QnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjNdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjRdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMzEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialszMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMzUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjZdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyN10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyOF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI5XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMwXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzNdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzRdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzZdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszN10gIC8vIHhkYy5ydW50aW1lLkNvcmUvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszOS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzIKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNDAuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials0MS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbNTQuMF0KKworX19vID0gX19vYmpbMzldICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzQxXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials0Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzQ0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials0Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials0OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzUwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials1Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0M10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDRdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDZdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0N10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ4XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDldICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUwXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNTEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTFdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUyXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzUzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUzXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1NF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU1XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzU2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncycsICdVVEYtOCcpKQorICAgIF9fb1snQUxMJ10gPSA2NTUzNQorICAgIF9fb1snQVNTRVJUJ10gPSAxNgorICAgIF9fb1snRU5UUlknXSA9IDEKKyAgICBfX29bJ0VYSVQnXSA9IDIKKyAgICBfX29bJ0lOVEVSTkFMJ10gPSA4CisgICAgX19vWydMSUZFQ1lDTEUnXSA9IDQKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzMKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snVVNFUjEnXSA9IDI1NgorICAgIF9fb1snVVNFUjInXSA9IDUxMgorICAgIF9fb1snVVNFUjMnXSA9IDEwMjQKKyAgICBfX29bJ1VTRVI0J10gPSAyMDQ4CisgICAgX19vWydVU0VSNSddID0gNDA5NgorICAgIF9fb1snVVNFUjYnXSA9IDgxOTIKKyAgICBfX29bJ1VTRVI3J10gPSAxNjM4NAorICAgIF9fb1snVVNFUjgnXSA9IDMyNzY4CisgICAgX19vWydjb21tb24kJ10gPSBfX29ials1Ny4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzU4LjBdCisgICAgX19vWydkaWN0QmFzZSddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3NldE1hc2tFbmFibGVkJ10gPSBmYWxzZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ials3MS4wXQorCitfX28gPSBfX29ials1Nl0gIC8vIHhkYy5ydW50aW1lLkRpYWdzLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU3XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNThdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzYzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzY1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbNjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzY5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTldICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYwXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2MV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYyXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2M10gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY0XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjVdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2Nl0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjddICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2OF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjldICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNzAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzBdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzcxXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3Mvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzJdICAvLyB4ZGMucnVudGltZS5FcnJvcgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbNzMuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJywgJ1VURi04JykpCisgICAgX19vWydFX2dlbmVyaWMnXSA9IF9fb2JqWzc0LjBdCisgICAgX19vWydFX21lbW9yeSddID0gX19vYmpbNzUuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzQKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snTlVNQVJHUyddID0gMgorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNzYuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials3Ny4wXQorICAgIF9fb1snbWF4RGVwdGgnXSA9IDE2CisgICAgX19vWydwb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuVU5XSU5EJywgJ1VURi04JykpCisgICAgX19vWydyYWlzZUhvb2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzkwLjBdCisKK19fbyA9IF9fb2JqWzczXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzRdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjMxJywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ2VuZXJpYytlcnJvciUzQSslMjVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc1XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ291dCtvZittZW1vcnklM0EraGVhcCUzRDB4JTI1eCUyQytzaXplJTNEJTI1dScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3Nl0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzc3XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials4OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc4XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3OV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODBdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzgxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4MV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODJdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4M10gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg0XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODVdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg2XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODddICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg4XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzg5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg5XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5MF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzkxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbOTIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials5My4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzk0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxMDcuMF0KKworX19vID0gX19vYmpbOTJdICAvLyB4ZGMucnVudGltZS5HYXRlLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTNdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbOTRdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbOTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials5Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbOTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTAxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTAzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxMDUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk1XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials5Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTZdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5N10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzk4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5OF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTAwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDBdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTAxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDJdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDNdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTA0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNV0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTA2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwN10gIC8vIHhkYy5ydW50aW1lLkdhdGUvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDhdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTA5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCcsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydRX0JMT0NLSU5HJ10gPSAxCisgICAgX19vWydRX1BSRUVNUFRJTkcnXSA9IDIKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzExMC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzExMS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTI0LjBdCisKK19fbyA9IF9fb2JqWzEwOV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExMF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzExMV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTEyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTE0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMTYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTE4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTIwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxMjIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTJdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTEzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTNdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTVdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTddICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMThdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjBdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMjEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjJdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyM10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI1XSAgLy8geGRjLnJ1bnRpbWUuTG9nCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxMjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZycsICdVVEYtOCcpKQorICAgIF9fb1snTF9jb25zdHJ1Y3QnXSA9IF9fb2JqWzEyNy4wXQorICAgIF9fb1snTF9jcmVhdGUnXSA9IF9fb2JqWzEyOC4wXQorICAgIF9fb1snTF9kZWxldGUnXSA9IF9fb2JqWzEyOS4wXQorICAgIF9fb1snTF9kZXN0cnVjdCddID0gX19vYmpbMTMwLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydOVU1BUkdTJ10gPSA4CisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydQUklOVEZJRCddID0gMAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTMxLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTMyLjBdCisgICAgX19vWydpZFRvSW5mbyddID0gX19vYmpbMTQ1LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxNDYuMF0KKworX19vID0gX19vYmpbMTI2XSAgLy8geGRjLnJ1bnRpbWUuTG9nLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjddICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMwJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyOF0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI5XSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMycsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzMF0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctLSUzRStkZXN0cnVjdCUzQSslMjglMjVwJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzMV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTMyXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTMzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTM1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMzcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTM5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTQxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNDMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMzXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTM0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzRdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM1XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEzNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM2XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzN10gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMzguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzOF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM5XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQwXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0MV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0Ml0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDNdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ0XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0NV0gIC8vIHhkYy5ydW50aW1lLkxvZy9pZFRvSW5mbworICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWycjNDY4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2NvbnN0cnVjdCUzQSUzQSUzQy0tK2NvbnN0cnVjdCUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNDY4JykKKyAgICBfX28ucHVzaChfX29bJyM0OTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlJTNBJTNBJTNDLS0rY3JlYXRlJTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM0OTInKQorICAgIF9fby5wdXNoKF9fb1snIzUxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9kZXN0cnVjdCUzQSUzQS0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzUxMycpCisgICAgX19vLnB1c2goX19vWycjNTMyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2RlbGV0ZSUzQSUzQS0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM1MzInKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGaWRUb0luZm8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ2XSAgLy8geGRjLnJ1bnRpbWUuTG9nL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDddICAvLyB4ZGMucnVudGltZS5NYWluCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNDguMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9HYXRlUHJveHknXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc4CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzE0OS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzE1MC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTYzLjBdCisKK19fbyA9IF9fb2JqWzE0OF0gIC8vIHhkYy5ydW50aW1lLk1haW4vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDldICAvLyB4ZGMucnVudGltZS5NYWluL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTUwXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE1MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE1My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTU1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE1Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE1OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTYxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTFdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUyXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUzXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTRdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTVdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1Nl0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTddICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1OF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1OV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYwXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYxXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYyXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYzXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2NF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTY1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnknLCAnVVRGLTgnKSkKKyAgICBfX29bJ0hlYXBQcm94eSddID0gX19vYmpbMTY2LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3OQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydRX0JMT0NLSU5HJ10gPSAxCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxODkuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxOTAuMF0KKyAgICBfX29bJ2RlZmF1bHRIZWFwSW5zdGFuY2UnXSA9IF9fb2JqWzE2OC4wXQorICAgIF9fb1snZGVmYXVsdEhlYXBTaXplJ10gPSA0MDk2CisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyMDMuMF0KKworX19vID0gX19vYmpbMTY1XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5LyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNjcuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfaW52YWxpZEFsaWdubWVudCddID0gX19vYmpbMTcwLjBdCisgICAgX19vWydBX2ludmFsaWRUb3RhbEZyZWVTaXplJ10gPSBfX29ialsxNzEuMF0KKyAgICBfX29bJ0FfemVyb1NpemUnXSA9IF9fb2JqWzE3Mi4wXQorICAgIF9fb1snRV9ub1JUU01lbW9yeSddID0gX19vYmpbMTczLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODAKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTc0LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTc1LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxODguMF0KKworX19vID0gX19vYmpbMTY3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsxNjguMF0KKworX19vID0gX19vYmpbMTY4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRtb2R1bGUnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2luc3RhbmNlJ10gPSBfX29ialsxNjkuMF0KKyAgICBfX29bJ3NpemUnXSA9IDQwOTYKKworX19vID0gX19vYmpbMTY5XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwL2luc3RhbmNlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlJTIzMCUyRmluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyduYW1lJ10gPSBudWxsCisKK19fbyA9IF9fb2JqWzE3MF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzNCcsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkX2FsbG9jKy0rcmVxdWVzdGVkK2FsaWdubWVudCtpcytncmVhdGVyK3RoYW4rYWxsb3dlZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzFdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSGVhcFN0ZCtpbnN0YW5jZSt0b3RhbEZyZWVTaXplK2lzK2dyZWF0ZXIrdGhhbitzdGFydGluZytzaXplJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3Ml0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkX2NyZWF0ZStjYW5ub3QraGF2ZSthK3plcm8rc2l6ZSt2YWx1ZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzNdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjM0JywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVGhlK1JUUytoZWFwK2lzK3VzZWQrdXAuK0V4YW1pbmUrUHJvZ3JhbS5oZWFwLicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzRdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTc1XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE3Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE3Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzldICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODBdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4MV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODJdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4M10gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4NF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg1XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg2XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4OV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTkwXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTkxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTkzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxOTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTk3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTk5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyMDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkxXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTkyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTJdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkzXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk0XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5NV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5Nl0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk3XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk4XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5OV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjAwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwMF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDFdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAyXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwM10gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjA1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJywgJ1VURi04JykpCisgICAgX19vWydET05FJ10gPSAtMQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzgxCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ05PVERPTkUnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzIwNi4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzIwNy4wXQorICAgIF9fb1snZXhlY0ltcGwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JJywgJ1VURi04JykpCisgICAgX19vWydmaXJzdEZ4bnMnXSA9IF9fb2JqWzIyMC4wXQorICAgIF9fb1snbGFzdEZ4bnMnXSA9IF9fb2JqWzIyMS4wXQorICAgIF9fb1snbWF4UGFzc2VzJ10gPSAzMgorICAgIF9fb1sncmVzZXRGeG4nXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydzZnhuUnRzJ10gPSBfX29ialsyMjIuMF0KKyAgICBfX29bJ3NmeG5UYWInXSA9IF9fb2JqWzIyMy4wXQorICAgIF9fb1snc3RhcnRNb2RzRnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzIyNC4wXQorCitfX28gPSBfX29ialsyMDVdICAvLyB4ZGMucnVudGltZS5TdGFydHVwLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA2XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIwN10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyMDguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyMTAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzIxMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyMTQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyMTYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzIxOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA4XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwOV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxMF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxMS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjExXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjEyXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjEzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTNdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTVdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTZdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxN10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxOF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxOV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvZmlyc3RGeG5zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGZmlyc3RGeG5zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvbGFzdEZ4bnMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZsYXN0RnhucycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjJdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZzZnhuUnRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSB0cnVlCisgICAgX19vWycxJ10gPSB0cnVlCisgICAgX19vWycyJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyMjNdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5UYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZzZnhuVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbScsICdVVEYtOCcpKQorICAgIF9fb1snQV9jYW5ub3RGaXRJbnRvQXJnJ10gPSBfX29ialsyMjcuMF0KKyAgICBfX29bJ01vZHVsZV9HYXRlUHJveHknXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODIKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snU1RBVFVTX1VOS05PV04nXSA9IDUxOTY2CisgICAgX19vWydTdXBwb3J0UHJveHknXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjU1LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjU2LjBdCisgICAgX19vWydleGl0RnhucyddID0gX19vYmpbMjY5LjBdCisgICAgX19vWydleHRlbmRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSScsICdVVEYtOCcpKQorICAgIF9fb1snZXh0ZW5kZWRGb3JtYXRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNSUyNEwnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21heEF0ZXhpdEhhbmRsZXJzJ10gPSA4CisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyNzAuMF0KKworX19vID0gX19vYmpbMjI2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjddICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQV9jYW5ub3RGaXRJbnRvQXJnJTNBK3NpemVvZiUyOEZsb2F0JTI5KyUzRStzaXplb2YlMjhBcmclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI4XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMjkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbicsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODMKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snYnVmU2l6ZSddID0gMTAyNAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjMwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjMxLjBdCisgICAgX19vWydmbHVzaEF0RXhpdCddID0gdHJ1ZQorICAgIF9fb1snb3V0cHV0RnVuYyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JJywgJ1VURi04JykpCisgICAgX19vWydvdXRwdXRGeG4nXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydyb3ZWaWV3SW5mbyddID0gX19vYmpbMjQ0LjBdCisgICAgX19vWydzZWN0aW9uTmFtZSddID0gbnVsbAorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyNTQuMF0KKworX19vID0gX19vYmpbMjI5XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzBdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIzMV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzIzMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzIzNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjM2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzIzOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzI0MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzMl0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjMzXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzZdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzddICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzOF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzOV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDBdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI0MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDFdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQyXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0M10gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDRdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snJG1vZHVsZSddID0gX19vYmpbMjQ1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMScsICdVVEYtOCcpKQorICAgIF9fb1snc2hvd1Jhd1RhYiddID0gdHJ1ZQorICAgIF9fb1sndmlld01hcCddID0gX19vYmpbMjUxLjBdCisKK19fbyA9IF9fb2JqWzI0NV0gIC8vIHhkYy5yb3YuVmlld0luZm8KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzI0Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDZdICAvLyB4ZGMucm92LlZpZXdJbmZvLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8lMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzI0Ny4wXQorICAgIF9fb1snMSddID0gX19vYmpbMjQ0LjBdCisKK19fbyA9IF9fb2JqWzI0N10gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0luc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyckbW9kdWxlJ10gPSBfX29ialsyNDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJywgJ1VURi04JykpCisgICAgX19vWydzaG93UmF3VGFiJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TWFwJ10gPSBfX29ialsyNDguMF0KKworX19vID0gX19vYmpbMjQ4XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snQmFzaWMnXSA9IF9fb2JqWzI0OS4wXSk7IF9fby4ka2V5cy5wdXNoKCdCYXNpYycpCisgICAgX19vLnB1c2goX19vWydSZWNvcmRzJ10gPSBfX29ialsyNTAuMF0pOyBfX28uJGtleXMucHVzaCgnUmVjb3JkcycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQ5XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ0Jhc2ljJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAlMkZ2aWV3TWFwJTJGJTI3QmFzaWMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQmFzaWNWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSU5TVEFOQ0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0QmFzaWMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUwXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ1JlY29yZHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAlMkYlMjdSZWNvcmRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1JlY29yZFZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JTlNUQU5DRV9EQVRBJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdFJlY29yZHMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUxXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snTW9kdWxlJ10gPSBfX29ialsyNTIuMF0pOyBfX28uJGtleXMucHVzaCgnTW9kdWxlJykKKyAgICBfX28ucHVzaChfX29bJ091dHB1dEJ1ZmZlciddID0gX19vYmpbMjUzLjBdKTsgX19vLiRrZXlzLnB1c2goJ091dHB1dEJ1ZmZlcicpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMSUyRnZpZXdNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUyXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ01vZHVsZScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJTJGdmlld01hcCUyRiUyN01vZHVsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGVWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uTU9EVUxFJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdE1vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTNdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nT3V0cHV0QnVmZmVyJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzElMkZ2aWV3TWFwJTJGJTI3T3V0cHV0QnVmZmVyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0J1ZmZlckVudHJ5VmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLk1PRFVMRV9EQVRBJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdE91dHB1dEJ1ZmZlcicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTRdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1NV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjU2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjU3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjYzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjY1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyNjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU3XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjU4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNThdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU5XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYwXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2MV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2Ml0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYzXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY0XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2NV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjY2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2Nl0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjddICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY4XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2OV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9leGl0RnhucworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGZXhpdEZ4bnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjcwXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzFdICAvLyB4ZGMucnVudGltZS5UZXh0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyNzIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4NAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjaGFyQ250J10gPSA2OTcKKyAgICBfX29bJ2NoYXJUYWInXSA9IF9fb2JqWzI3My4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjc0LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjc1LjBdCisgICAgX19vWydpc0xvYWRlZCddID0gdHJ1ZQorICAgIF9fb1snbmFtZUVtcHR5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QmVtcHR5LWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVTdGF0aWMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCc3RhdGljLWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVVbmtub3duJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QnVua25vd24taW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbm9kZUNudCddID0gMjEKKyAgICBfX29bJ25vZGVUYWInXSA9IF9fb2JqWzI4OC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzEwLjBdCisgICAgX19vWyd2aXNpdFJvcGVGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Zpc2l0Um9wZUZ4bjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzNdICAvLyB4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjaGFyVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSAwCisgICAgX19vWycxJ10gPSA2NQorICAgIF9fb1snMiddID0gOTUKKyAgICBfX29bJzMnXSA9IDEwNQorICAgIF9fb1snNCddID0gMTEwCisgICAgX19vWyc1J10gPSAxMDUKKyAgICBfX29bJzYnXSA9IDExNgorICAgIF9fb1snNyddID0gMTA1CisgICAgX19vWyc4J10gPSA5NworICAgIF9fb1snOSddID0gMTA4CisgICAgX19vWycxMCddID0gMTA1CisgICAgX19vWycxMSddID0gMTIyCisgICAgX19vWycxMiddID0gMTAxCisgICAgX19vWycxMyddID0gMTAwCisgICAgX19vWycxNCddID0gODAKKyAgICBfX29bJzE1J10gPSA5NworICAgIF9fb1snMTYnXSA9IDExNAorICAgIF9fb1snMTcnXSA9IDk3CisgICAgX19vWycxOCddID0gMTA5CisgICAgX19vWycxOSddID0gMTE1CisgICAgX19vWycyMCddID0gNTgKKyAgICBfX29bJzIxJ10gPSAzMgorICAgIF9fb1snMjInXSA9IDExNworICAgIF9fb1snMjMnXSA9IDExMAorICAgIF9fb1snMjQnXSA9IDEwNQorICAgIF9fb1snMjUnXSA9IDExMAorICAgIF9fb1snMjYnXSA9IDEwNQorICAgIF9fb1snMjcnXSA9IDExNgorICAgIF9fb1snMjgnXSA9IDEwNQorICAgIF9fb1snMjknXSA9IDk3CisgICAgX19vWyczMCddID0gMTA4CisgICAgX19vWyczMSddID0gMTA1CisgICAgX19vWyczMiddID0gMTIyCisgICAgX19vWyczMyddID0gMTAxCisgICAgX19vWyczNCddID0gMTAwCisgICAgX19vWyczNSddID0gMzIKKyAgICBfX29bJzM2J10gPSA4MAorICAgIF9fb1snMzcnXSA9IDk3CisgICAgX19vWyczOCddID0gMTE0CisgICAgX19vWyczOSddID0gOTcKKyAgICBfX29bJzQwJ10gPSAxMDkKKyAgICBfX29bJzQxJ10gPSAxMTUKKyAgICBfX29bJzQyJ10gPSAzMgorICAgIF9fb1snNDMnXSA9IDExNQorICAgIF9fb1snNDQnXSA9IDExNgorICAgIF9fb1snNDUnXSA9IDExNAorICAgIF9fb1snNDYnXSA9IDExNworICAgIF9fb1snNDcnXSA9IDk5CisgICAgX19vWyc0OCddID0gMTE2CisgICAgX19vWyc0OSddID0gMAorICAgIF9fb1snNTAnXSA9IDcyCisgICAgX19vWyc1MSddID0gMTAxCisgICAgX19vWyc1MiddID0gOTcKKyAgICBfX29bJzUzJ10gPSAxMTIKKyAgICBfX29bJzU0J10gPSA3NworICAgIF9fb1snNTUnXSA9IDEwNQorICAgIF9fb1snNTYnXSA9IDExMAorICAgIF9fb1snNTcnXSA9IDk1CisgICAgX19vWyc1OCddID0gOTkKKyAgICBfX29bJzU5J10gPSAxMTQKKyAgICBfX29bJzYwJ10gPSAxMDEKKyAgICBfX29bJzYxJ10gPSA5NworICAgIF9fb1snNjInXSA9IDExNgorICAgIF9fb1snNjMnXSA9IDEwMQorICAgIF9fb1snNjQnXSA9IDMyCisgICAgX19vWyc2NSddID0gOTkKKyAgICBfX29bJzY2J10gPSA5NworICAgIF9fb1snNjcnXSA9IDExMAorICAgIF9fb1snNjgnXSA9IDExMAorICAgIF9fb1snNjknXSA9IDExMQorICAgIF9fb1snNzAnXSA9IDExNgorICAgIF9fb1snNzEnXSA9IDMyCisgICAgX19vWyc3MiddID0gMTA0CisgICAgX19vWyc3MyddID0gOTcKKyAgICBfX29bJzc0J10gPSAxMTgKKyAgICBfX29bJzc1J10gPSAxMDEKKyAgICBfX29bJzc2J10gPSAzMgorICAgIF9fb1snNzcnXSA9IDk3CisgICAgX19vWyc3OCddID0gMzIKKyAgICBfX29bJzc5J10gPSAxMjIKKyAgICBfX29bJzgwJ10gPSAxMDEKKyAgICBfX29bJzgxJ10gPSAxMTQKKyAgICBfX29bJzgyJ10gPSAxMTEKKyAgICBfX29bJzgzJ10gPSAzMgorICAgIF9fb1snODQnXSA9IDExNQorICAgIF9fb1snODUnXSA9IDEwNQorICAgIF9fb1snODYnXSA9IDEyMgorICAgIF9fb1snODcnXSA9IDEwMQorICAgIF9fb1snODgnXSA9IDMyCisgICAgX19vWyc4OSddID0gMTE4CisgICAgX19vWyc5MCddID0gOTcKKyAgICBfX29bJzkxJ10gPSAxMDgKKyAgICBfX29bJzkyJ10gPSAxMTcKKyAgICBfX29bJzkzJ10gPSAxMDEKKyAgICBfX29bJzk0J10gPSAwCisgICAgX19vWyc5NSddID0gNzIKKyAgICBfX29bJzk2J10gPSAxMDEKKyAgICBfX29bJzk3J10gPSA5NworICAgIF9fb1snOTgnXSA9IDExMgorICAgIF9fb1snOTknXSA9IDgzCisgICAgX19vWycxMDAnXSA9IDExNgorICAgIF9fb1snMTAxJ10gPSAxMDAKKyAgICBfX29bJzEwMiddID0gOTUKKyAgICBfX29bJzEwMyddID0gOTkKKyAgICBfX29bJzEwNCddID0gMTE0CisgICAgX19vWycxMDUnXSA9IDEwMQorICAgIF9fb1snMTA2J10gPSA5NworICAgIF9fb1snMTA3J10gPSAxMTYKKyAgICBfX29bJzEwOCddID0gMTAxCisgICAgX19vWycxMDknXSA9IDMyCisgICAgX19vWycxMTAnXSA9IDk5CisgICAgX19vWycxMTEnXSA9IDk3CisgICAgX19vWycxMTInXSA9IDExMAorICAgIF9fb1snMTEzJ10gPSAxMTAKKyAgICBfX29bJzExNCddID0gMTExCisgICAgX19vWycxMTUnXSA9IDExNgorICAgIF9fb1snMTE2J10gPSAzMgorICAgIF9fb1snMTE3J10gPSAxMDQKKyAgICBfX29bJzExOCddID0gOTcKKyAgICBfX29bJzExOSddID0gMTE4CisgICAgX19vWycxMjAnXSA9IDEwMQorICAgIF9fb1snMTIxJ10gPSAzMgorICAgIF9fb1snMTIyJ10gPSA5NworICAgIF9fb1snMTIzJ10gPSAzMgorICAgIF9fb1snMTI0J10gPSAxMjIKKyAgICBfX29bJzEyNSddID0gMTAxCisgICAgX19vWycxMjYnXSA9IDExNAorICAgIF9fb1snMTI3J10gPSAxMTEKKyAgICBfX29bJzEyOCddID0gMzIKKyAgICBfX29bJzEyOSddID0gMTE1CisgICAgX19vWycxMzAnXSA9IDEwNQorICAgIF9fb1snMTMxJ10gPSAxMjIKKyAgICBfX29bJzEzMiddID0gMTAxCisgICAgX19vWycxMzMnXSA9IDMyCisgICAgX19vWycxMzQnXSA9IDExOAorICAgIF9fb1snMTM1J10gPSA5NworICAgIF9fb1snMTM2J10gPSAxMDgKKyAgICBfX29bJzEzNyddID0gMTE3CisgICAgX19vWycxMzgnXSA9IDEwMQorICAgIF9fb1snMTM5J10gPSAwCisgICAgX19vWycxNDAnXSA9IDcyCisgICAgX19vWycxNDEnXSA9IDEwMQorICAgIF9fb1snMTQyJ10gPSA5NworICAgIF9fb1snMTQzJ10gPSAxMTIKKyAgICBfX29bJzE0NCddID0gODMKKyAgICBfX29bJzE0NSddID0gMTE2CisgICAgX19vWycxNDYnXSA9IDEwMAorICAgIF9fb1snMTQ3J10gPSAzMgorICAgIF9fb1snMTQ4J10gPSAxMDUKKyAgICBfX29bJzE0OSddID0gMTEwCisgICAgX19vWycxNTAnXSA9IDExNQorICAgIF9fb1snMTUxJ10gPSAxMTYKKyAgICBfX29bJzE1MiddID0gOTcKKyAgICBfX29bJzE1MyddID0gMTEwCisgICAgX19vWycxNTQnXSA9IDk5CisgICAgX19vWycxNTUnXSA9IDEwMQorICAgIF9fb1snMTU2J10gPSAzMgorICAgIF9fb1snMTU3J10gPSAxMTYKKyAgICBfX29bJzE1OCddID0gMTExCisgICAgX19vWycxNTknXSA9IDExNgorICAgIF9fb1snMTYwJ10gPSA5NworICAgIF9fb1snMTYxJ10gPSAxMDgKKyAgICBfX29bJzE2MiddID0gNzAKKyAgICBfX29bJzE2MyddID0gMTE0CisgICAgX19vWycxNjQnXSA9IDEwMQorICAgIF9fb1snMTY1J10gPSAxMDEKKyAgICBfX29bJzE2NiddID0gODMKKyAgICBfX29bJzE2NyddID0gMTA1CisgICAgX19vWycxNjgnXSA9IDEyMgorICAgIF9fb1snMTY5J10gPSAxMDEKKyAgICBfX29bJzE3MCddID0gMzIKKyAgICBfX29bJzE3MSddID0gMTA1CisgICAgX19vWycxNzInXSA9IDExNQorICAgIF9fb1snMTczJ10gPSAzMgorICAgIF9fb1snMTc0J10gPSAxMDMKKyAgICBfX29bJzE3NSddID0gMTE0CisgICAgX19vWycxNzYnXSA9IDEwMQorICAgIF9fb1snMTc3J10gPSA5NworICAgIF9fb1snMTc4J10gPSAxMTYKKyAgICBfX29bJzE3OSddID0gMTAxCisgICAgX19vWycxODAnXSA9IDExNAorICAgIF9fb1snMTgxJ10gPSAzMgorICAgIF9fb1snMTgyJ10gPSAxMTYKKyAgICBfX29bJzE4MyddID0gMTA0CisgICAgX19vWycxODQnXSA9IDk3CisgICAgX19vWycxODUnXSA9IDExMAorICAgIF9fb1snMTg2J10gPSAzMgorICAgIF9fb1snMTg3J10gPSAxMTUKKyAgICBfX29bJzE4OCddID0gMTE2CisgICAgX19vWycxODknXSA9IDk3CisgICAgX19vWycxOTAnXSA9IDExNAorICAgIF9fb1snMTkxJ10gPSAxMTYKKyAgICBfX29bJzE5MiddID0gMTA1CisgICAgX19vWycxOTMnXSA9IDExMAorICAgIF9fb1snMTk0J10gPSAxMDMKKyAgICBfX29bJzE5NSddID0gMzIKKyAgICBfX29bJzE5NiddID0gMTE1CisgICAgX19vWycxOTcnXSA9IDEwNQorICAgIF9fb1snMTk4J10gPSAxMjIKKyAgICBfX29bJzE5OSddID0gMTAxCisgICAgX19vWycyMDAnXSA9IDAKKyAgICBfX29bJzIwMSddID0gNzIKKyAgICBfX29bJzIwMiddID0gMTAxCisgICAgX19vWycyMDMnXSA9IDk3CisgICAgX19vWycyMDQnXSA9IDExMgorICAgIF9fb1snMjA1J10gPSA4MworICAgIF9fb1snMjA2J10gPSAxMTYKKyAgICBfX29bJzIwNyddID0gMTAwCisgICAgX19vWycyMDgnXSA9IDk1CisgICAgX19vWycyMDknXSA9IDk3CisgICAgX19vWycyMTAnXSA9IDEwOAorICAgIF9fb1snMjExJ10gPSAxMDgKKyAgICBfX29bJzIxMiddID0gMTExCisgICAgX19vWycyMTMnXSA9IDk5CisgICAgX19vWycyMTQnXSA9IDMyCisgICAgX19vWycyMTUnXSA9IDQ1CisgICAgX19vWycyMTYnXSA9IDMyCisgICAgX19vWycyMTcnXSA9IDExNAorICAgIF9fb1snMjE4J10gPSAxMDEKKyAgICBfX29bJzIxOSddID0gMTEzCisgICAgX19vWycyMjAnXSA9IDExNworICAgIF9fb1snMjIxJ10gPSAxMDEKKyAgICBfX29bJzIyMiddID0gMTE1CisgICAgX19vWycyMjMnXSA9IDExNgorICAgIF9fb1snMjI0J10gPSAxMDEKKyAgICBfX29bJzIyNSddID0gMTAwCisgICAgX19vWycyMjYnXSA9IDMyCisgICAgX19vWycyMjcnXSA9IDk3CisgICAgX19vWycyMjgnXSA9IDEwOAorICAgIF9fb1snMjI5J10gPSAxMDUKKyAgICBfX29bJzIzMCddID0gMTAzCisgICAgX19vWycyMzEnXSA9IDExMAorICAgIF9fb1snMjMyJ10gPSAxMDkKKyAgICBfX29bJzIzMyddID0gMTAxCisgICAgX19vWycyMzQnXSA9IDExMAorICAgIF9fb1snMjM1J10gPSAxMTYKKyAgICBfX29bJzIzNiddID0gMzIKKyAgICBfX29bJzIzNyddID0gMTA1CisgICAgX19vWycyMzgnXSA9IDExNQorICAgIF9fb1snMjM5J10gPSAzMgorICAgIF9fb1snMjQwJ10gPSAxMDMKKyAgICBfX29bJzI0MSddID0gMTE0CisgICAgX19vWycyNDInXSA9IDEwMQorICAgIF9fb1snMjQzJ10gPSA5NworICAgIF9fb1snMjQ0J10gPSAxMTYKKyAgICBfX29bJzI0NSddID0gMTAxCisgICAgX19vWycyNDYnXSA9IDExNAorICAgIF9fb1snMjQ3J10gPSAzMgorICAgIF9fb1snMjQ4J10gPSAxMTYKKyAgICBfX29bJzI0OSddID0gMTA0CisgICAgX19vWycyNTAnXSA9IDk3CisgICAgX19vWycyNTEnXSA9IDExMAorICAgIF9fb1snMjUyJ10gPSAzMgorICAgIF9fb1snMjUzJ10gPSA5NworICAgIF9fb1snMjU0J10gPSAxMDgKKyAgICBfX29bJzI1NSddID0gMTA4CisgICAgX19vWycyNTYnXSA9IDExMQorICAgIF9fb1snMjU3J10gPSAxMTkKKyAgICBfX29bJzI1OCddID0gMTAxCisgICAgX19vWycyNTknXSA9IDEwMAorICAgIF9fb1snMjYwJ10gPSAwCisgICAgX19vWycyNjEnXSA9IDY1CisgICAgX19vWycyNjInXSA9IDk1CisgICAgX19vWycyNjMnXSA9IDk5CisgICAgX19vWycyNjQnXSA9IDk3CisgICAgX19vWycyNjUnXSA9IDExMAorICAgIF9fb1snMjY2J10gPSAxMTAKKyAgICBfX29bJzI2NyddID0gMTExCisgICAgX19vWycyNjgnXSA9IDExNgorICAgIF9fb1snMjY5J10gPSA3MAorICAgIF9fb1snMjcwJ10gPSAxMDUKKyAgICBfX29bJzI3MSddID0gMTE2CisgICAgX19vWycyNzInXSA9IDczCisgICAgX19vWycyNzMnXSA9IDExMAorICAgIF9fb1snMjc0J10gPSAxMTYKKyAgICBfX29bJzI3NSddID0gMTExCisgICAgX19vWycyNzYnXSA9IDY1CisgICAgX19vWycyNzcnXSA9IDExNAorICAgIF9fb1snMjc4J10gPSAxMDMKKyAgICBfX29bJzI3OSddID0gNTgKKyAgICBfX29bJzI4MCddID0gMzIKKyAgICBfX29bJzI4MSddID0gMTE1CisgICAgX19vWycyODInXSA9IDEwNQorICAgIF9fb1snMjgzJ10gPSAxMjIKKyAgICBfX29bJzI4NCddID0gMTAxCisgICAgX19vWycyODUnXSA9IDExMQorICAgIF9fb1snMjg2J10gPSAxMDIKKyAgICBfX29bJzI4NyddID0gNDAKKyAgICBfX29bJzI4OCddID0gNzAKKyAgICBfX29bJzI4OSddID0gMTA4CisgICAgX19vWycyOTAnXSA9IDExMQorICAgIF9fb1snMjkxJ10gPSA5NworICAgIF9fb1snMjkyJ10gPSAxMTYKKyAgICBfX29bJzI5MyddID0gNDEKKyAgICBfX29bJzI5NCddID0gMzIKKyAgICBfX29bJzI5NSddID0gNjIKKyAgICBfX29bJzI5NiddID0gMzIKKyAgICBfX29bJzI5NyddID0gMTE1CisgICAgX19vWycyOTgnXSA9IDEwNQorICAgIF9fb1snMjk5J10gPSAxMjIKKyAgICBfX29bJzMwMCddID0gMTAxCisgICAgX19vWyczMDEnXSA9IDExMQorICAgIF9fb1snMzAyJ10gPSAxMDIKKyAgICBfX29bJzMwMyddID0gNDAKKyAgICBfX29bJzMwNCddID0gNjUKKyAgICBfX29bJzMwNSddID0gMTE0CisgICAgX19vWyczMDYnXSA9IDEwMworICAgIF9fb1snMzA3J10gPSA0MQorICAgIF9fb1snMzA4J10gPSAwCisgICAgX19vWyczMDknXSA9IDk3CisgICAgX19vWyczMTAnXSA9IDExNQorICAgIF9fb1snMzExJ10gPSAxMTUKKyAgICBfX29bJzMxMiddID0gMTAxCisgICAgX19vWyczMTMnXSA9IDExNAorICAgIF9fb1snMzE0J10gPSAxMTYKKyAgICBfX29bJzMxNSddID0gMTA1CisgICAgX19vWyczMTYnXSA9IDExMQorICAgIF9fb1snMzE3J10gPSAxMTAKKyAgICBfX29bJzMxOCddID0gMzIKKyAgICBfX29bJzMxOSddID0gMTAyCisgICAgX19vWyczMjAnXSA9IDk3CisgICAgX19vWyczMjEnXSA9IDEwNQorICAgIF9fb1snMzIyJ10gPSAxMDgKKyAgICBfX29bJzMyMyddID0gMTE3CisgICAgX19vWyczMjQnXSA9IDExNAorICAgIF9fb1snMzI1J10gPSAxMDEKKyAgICBfX29bJzMyNiddID0gMzcKKyAgICBfX29bJzMyNyddID0gMTE1CisgICAgX19vWyczMjgnXSA9IDM3CisgICAgX19vWyczMjknXSA9IDExNQorICAgIF9fb1snMzMwJ10gPSAwCisgICAgX19vWyczMzEnXSA9IDEwMworICAgIF9fb1snMzMyJ10gPSAxMDEKKyAgICBfX29bJzMzMyddID0gMTEwCisgICAgX19vWyczMzQnXSA9IDEwMQorICAgIF9fb1snMzM1J10gPSAxMTQKKyAgICBfX29bJzMzNiddID0gMTA1CisgICAgX19vWyczMzcnXSA9IDk5CisgICAgX19vWyczMzgnXSA9IDMyCisgICAgX19vWyczMzknXSA9IDEwMQorICAgIF9fb1snMzQwJ10gPSAxMTQKKyAgICBfX29bJzM0MSddID0gMTE0CisgICAgX19vWyczNDInXSA9IDExMQorICAgIF9fb1snMzQzJ10gPSAxMTQKKyAgICBfX29bJzM0NCddID0gNTgKKyAgICBfX29bJzM0NSddID0gMzIKKyAgICBfX29bJzM0NiddID0gMzcKKyAgICBfX29bJzM0NyddID0gMTE1CisgICAgX19vWyczNDgnXSA9IDAKKyAgICBfX29bJzM0OSddID0gMTExCisgICAgX19vWyczNTAnXSA9IDExNworICAgIF9fb1snMzUxJ10gPSAxMTYKKyAgICBfX29bJzM1MiddID0gMzIKKyAgICBfX29bJzM1MyddID0gMTExCisgICAgX19vWyczNTQnXSA9IDEwMgorICAgIF9fb1snMzU1J10gPSAzMgorICAgIF9fb1snMzU2J10gPSAxMDkKKyAgICBfX29bJzM1NyddID0gMTAxCisgICAgX19vWyczNTgnXSA9IDEwOQorICAgIF9fb1snMzU5J10gPSAxMTEKKyAgICBfX29bJzM2MCddID0gMTE0CisgICAgX19vWyczNjEnXSA9IDEyMQorICAgIF9fb1snMzYyJ10gPSA1OAorICAgIF9fb1snMzYzJ10gPSAzMgorICAgIF9fb1snMzY0J10gPSAxMDQKKyAgICBfX29bJzM2NSddID0gMTAxCisgICAgX19vWyczNjYnXSA9IDk3CisgICAgX19vWyczNjcnXSA9IDExMgorICAgIF9fb1snMzY4J10gPSA2MQorICAgIF9fb1snMzY5J10gPSA0OAorICAgIF9fb1snMzcwJ10gPSAxMjAKKyAgICBfX29bJzM3MSddID0gMzcKKyAgICBfX29bJzM3MiddID0gMTIwCisgICAgX19vWyczNzMnXSA9IDQ0CisgICAgX19vWyczNzQnXSA9IDMyCisgICAgX19vWyczNzUnXSA9IDExNQorICAgIF9fb1snMzc2J10gPSAxMDUKKyAgICBfX29bJzM3NyddID0gMTIyCisgICAgX19vWyczNzgnXSA9IDEwMQorICAgIF9fb1snMzc5J10gPSA2MQorICAgIF9fb1snMzgwJ10gPSAzNworICAgIF9fb1snMzgxJ10gPSAxMTcKKyAgICBfX29bJzM4MiddID0gMAorICAgIF9fb1snMzgzJ10gPSAxMDIKKyAgICBfX29bJzM4NCddID0gMTE0CisgICAgX19vWyczODUnXSA9IDEwMQorICAgIF9fb1snMzg2J10gPSAxMDEKKyAgICBfX29bJzM4NyddID0gNDAKKyAgICBfX29bJzM4OCddID0gNDEKKyAgICBfX29bJzM4OSddID0gMzIKKyAgICBfX29bJzM5MCddID0gMTA1CisgICAgX19vWyczOTEnXSA9IDExMAorICAgIF9fb1snMzkyJ10gPSAxMTgKKyAgICBfX29bJzM5MyddID0gOTcKKyAgICBfX29bJzM5NCddID0gMTA4CisgICAgX19vWyczOTUnXSA9IDEwNQorICAgIF9fb1snMzk2J10gPSAxMDAKKyAgICBfX29bJzM5NyddID0gMzIKKyAgICBfX29bJzM5OCddID0gMTA1CisgICAgX19vWyczOTknXSA9IDExMAorICAgIF9fb1snNDAwJ10gPSAzMgorICAgIF9fb1snNDAxJ10gPSAxMDMKKyAgICBfX29bJzQwMiddID0gMTE0CisgICAgX19vWyc0MDMnXSA9IDExMQorICAgIF9fb1snNDA0J10gPSAxMTkKKyAgICBfX29bJzQwNSddID0gMTE2CisgICAgX19vWyc0MDYnXSA9IDEwNAorICAgIF9fb1snNDA3J10gPSA0NQorICAgIF9fb1snNDA4J10gPSAxMTEKKyAgICBfX29bJzQwOSddID0gMTEwCisgICAgX19vWyc0MTAnXSA9IDEwOAorICAgIF9fb1snNDExJ10gPSAxMjEKKyAgICBfX29bJzQxMiddID0gMzIKKyAgICBfX29bJzQxMyddID0gNzIKKyAgICBfX29bJzQxNCddID0gMTAxCisgICAgX19vWyc0MTUnXSA9IDk3CisgICAgX19vWyc0MTYnXSA9IDExMgorICAgIF9fb1snNDE3J10gPSA3NworICAgIF9fb1snNDE4J10gPSAxMDUKKyAgICBfX29bJzQxOSddID0gMTEwCisgICAgX19vWyc0MjAnXSA9IDAKKyAgICBfX29bJzQyMSddID0gODQKKyAgICBfX29bJzQyMiddID0gMTA0CisgICAgX19vWyc0MjMnXSA9IDEwMQorICAgIF9fb1snNDI0J10gPSAzMgorICAgIF9fb1snNDI1J10gPSA4MgorICAgIF9fb1snNDI2J10gPSA4NAorICAgIF9fb1snNDI3J10gPSA4MworICAgIF9fb1snNDI4J10gPSAzMgorICAgIF9fb1snNDI5J10gPSAxMDQKKyAgICBfX29bJzQzMCddID0gMTAxCisgICAgX19vWyc0MzEnXSA9IDk3CisgICAgX19vWyc0MzInXSA9IDExMgorICAgIF9fb1snNDMzJ10gPSAzMgorICAgIF9fb1snNDM0J10gPSAxMDUKKyAgICBfX29bJzQzNSddID0gMTE1CisgICAgX19vWyc0MzYnXSA9IDMyCisgICAgX19vWyc0MzcnXSA9IDExNworICAgIF9fb1snNDM4J10gPSAxMTUKKyAgICBfX29bJzQzOSddID0gMTAxCisgICAgX19vWyc0NDAnXSA9IDEwMAorICAgIF9fb1snNDQxJ10gPSAzMgorICAgIF9fb1snNDQyJ10gPSAxMTcKKyAgICBfX29bJzQ0MyddID0gMTEyCisgICAgX19vWyc0NDQnXSA9IDQ2CisgICAgX19vWyc0NDUnXSA9IDMyCisgICAgX19vWyc0NDYnXSA9IDY5CisgICAgX19vWyc0NDcnXSA9IDEyMAorICAgIF9fb1snNDQ4J10gPSA5NworICAgIF9fb1snNDQ5J10gPSAxMDkKKyAgICBfX29bJzQ1MCddID0gMTA1CisgICAgX19vWyc0NTEnXSA9IDExMAorICAgIF9fb1snNDUyJ10gPSAxMDEKKyAgICBfX29bJzQ1MyddID0gMzIKKyAgICBfX29bJzQ1NCddID0gODAKKyAgICBfX29bJzQ1NSddID0gMTE0CisgICAgX19vWyc0NTYnXSA9IDExMQorICAgIF9fb1snNDU3J10gPSAxMDMKKyAgICBfX29bJzQ1OCddID0gMTE0CisgICAgX19vWyc0NTknXSA9IDk3CisgICAgX19vWyc0NjAnXSA9IDEwOQorICAgIF9fb1snNDYxJ10gPSA0NgorICAgIF9fb1snNDYyJ10gPSAxMDQKKyAgICBfX29bJzQ2MyddID0gMTAxCisgICAgX19vWyc0NjQnXSA9IDk3CisgICAgX19vWyc0NjUnXSA9IDExMgorICAgIF9fb1snNDY2J10gPSA0NgorICAgIF9fb1snNDY3J10gPSAwCisgICAgX19vWyc0NjgnXSA9IDYwCisgICAgX19vWyc0NjknXSA9IDQ1CisgICAgX19vWyc0NzAnXSA9IDQ1CisgICAgX19vWyc0NzEnXSA9IDMyCisgICAgX19vWyc0NzInXSA9IDk5CisgICAgX19vWyc0NzMnXSA9IDExMQorICAgIF9fb1snNDc0J10gPSAxMTAKKyAgICBfX29bJzQ3NSddID0gMTE1CisgICAgX19vWyc0NzYnXSA9IDExNgorICAgIF9fb1snNDc3J10gPSAxMTQKKyAgICBfX29bJzQ3OCddID0gMTE3CisgICAgX19vWyc0NzknXSA9IDk5CisgICAgX19vWyc0ODAnXSA9IDExNgorICAgIF9fb1snNDgxJ10gPSA1OAorICAgIF9fb1snNDgyJ10gPSAzMgorICAgIF9fb1snNDgzJ10gPSAzNworICAgIF9fb1snNDg0J10gPSAxMTIKKyAgICBfX29bJzQ4NSddID0gNDAKKyAgICBfX29bJzQ4NiddID0gMzkKKyAgICBfX29bJzQ4NyddID0gMzcKKyAgICBfX29bJzQ4OCddID0gMTE1CisgICAgX19vWyc0ODknXSA9IDM5CisgICAgX19vWyc0OTAnXSA9IDQxCisgICAgX19vWyc0OTEnXSA9IDAKKyAgICBfX29bJzQ5MiddID0gNjAKKyAgICBfX29bJzQ5MyddID0gNDUKKyAgICBfX29bJzQ5NCddID0gNDUKKyAgICBfX29bJzQ5NSddID0gMzIKKyAgICBfX29bJzQ5NiddID0gOTkKKyAgICBfX29bJzQ5NyddID0gMTE0CisgICAgX19vWyc0OTgnXSA9IDEwMQorICAgIF9fb1snNDk5J10gPSA5NworICAgIF9fb1snNTAwJ10gPSAxMTYKKyAgICBfX29bJzUwMSddID0gMTAxCisgICAgX19vWyc1MDInXSA9IDU4CisgICAgX19vWyc1MDMnXSA9IDMyCisgICAgX19vWyc1MDQnXSA9IDM3CisgICAgX19vWyc1MDUnXSA9IDExMgorICAgIF9fb1snNTA2J10gPSA0MAorICAgIF9fb1snNTA3J10gPSAzOQorICAgIF9fb1snNTA4J10gPSAzNworICAgIF9fb1snNTA5J10gPSAxMTUKKyAgICBfX29bJzUxMCddID0gMzkKKyAgICBfX29bJzUxMSddID0gNDEKKyAgICBfX29bJzUxMiddID0gMAorICAgIF9fb1snNTEzJ10gPSA0NQorICAgIF9fb1snNTE0J10gPSA0NQorICAgIF9fb1snNTE1J10gPSA2MgorICAgIF9fb1snNTE2J10gPSAzMgorICAgIF9fb1snNTE3J10gPSAxMDAKKyAgICBfX29bJzUxOCddID0gMTAxCisgICAgX19vWyc1MTknXSA9IDExNQorICAgIF9fb1snNTIwJ10gPSAxMTYKKyAgICBfX29bJzUyMSddID0gMTE0CisgICAgX19vWyc1MjInXSA9IDExNworICAgIF9fb1snNTIzJ10gPSA5OQorICAgIF9fb1snNTI0J10gPSAxMTYKKyAgICBfX29bJzUyNSddID0gNTgKKyAgICBfX29bJzUyNiddID0gMzIKKyAgICBfX29bJzUyNyddID0gNDAKKyAgICBfX29bJzUyOCddID0gMzcKKyAgICBfX29bJzUyOSddID0gMTEyCisgICAgX19vWyc1MzAnXSA9IDQxCisgICAgX19vWyc1MzEnXSA9IDAKKyAgICBfX29bJzUzMiddID0gNDUKKyAgICBfX29bJzUzMyddID0gNDUKKyAgICBfX29bJzUzNCddID0gNjIKKyAgICBfX29bJzUzNSddID0gMzIKKyAgICBfX29bJzUzNiddID0gMTAwCisgICAgX19vWyc1MzcnXSA9IDEwMQorICAgIF9fb1snNTM4J10gPSAxMDgKKyAgICBfX29bJzUzOSddID0gMTAxCisgICAgX19vWyc1NDAnXSA9IDExNgorICAgIF9fb1snNTQxJ10gPSAxMDEKKyAgICBfX29bJzU0MiddID0gNTgKKyAgICBfX29bJzU0MyddID0gMzIKKyAgICBfX29bJzU0NCddID0gNDAKKyAgICBfX29bJzU0NSddID0gMzcKKyAgICBfX29bJzU0NiddID0gMTEyCisgICAgX19vWyc1NDcnXSA9IDQxCisgICAgX19vWyc1NDgnXSA9IDAKKyAgICBfX29bJzU0OSddID0gMTIwCisgICAgX19vWyc1NTAnXSA9IDEwMAorICAgIF9fb1snNTUxJ10gPSA5OQorICAgIF9fb1snNTUyJ10gPSA0NgorICAgIF9fb1snNTUzJ10gPSAwCisgICAgX19vWyc1NTQnXSA9IDExNAorICAgIF9fb1snNTU1J10gPSAxMTcKKyAgICBfX29bJzU1NiddID0gMTEwCisgICAgX19vWyc1NTcnXSA9IDExNgorICAgIF9fb1snNTU4J10gPSAxMDUKKyAgICBfX29bJzU1OSddID0gMTA5CisgICAgX19vWyc1NjAnXSA9IDEwMQorICAgIF9fb1snNTYxJ10gPSA0NgorICAgIF9fb1snNTYyJ10gPSAwCisgICAgX19vWyc1NjMnXSA9IDY1CisgICAgX19vWyc1NjQnXSA9IDExNQorICAgIF9fb1snNTY1J10gPSAxMTUKKyAgICBfX29bJzU2NiddID0gMTAxCisgICAgX19vWyc1NjcnXSA9IDExNAorICAgIF9fb1snNTY4J10gPSAxMTYKKyAgICBfX29bJzU2OSddID0gMAorICAgIF9fb1snNTcwJ10gPSA2NworICAgIF9fb1snNTcxJ10gPSAxMTEKKyAgICBfX29bJzU3MiddID0gMTE0CisgICAgX19vWyc1NzMnXSA9IDEwMQorICAgIF9fb1snNTc0J10gPSAwCisgICAgX19vWyc1NzUnXSA9IDY4CisgICAgX19vWyc1NzYnXSA9IDEwMQorICAgIF9fb1snNTc3J10gPSAxMDIKKyAgICBfX29bJzU3OCddID0gOTcKKyAgICBfX29bJzU3OSddID0gMTE3CisgICAgX19vWyc1ODAnXSA9IDEwOAorICAgIF9fb1snNTgxJ10gPSAxMTYKKyAgICBfX29bJzU4MiddID0gMTE1CisgICAgX19vWyc1ODMnXSA9IDAKKyAgICBfX29bJzU4NCddID0gNjgKKyAgICBfX29bJzU4NSddID0gMTA1CisgICAgX19vWyc1ODYnXSA9IDk3CisgICAgX19vWyc1ODcnXSA9IDEwMworICAgIF9fb1snNTg4J10gPSAxMTUKKyAgICBfX29bJzU4OSddID0gMAorICAgIF9fb1snNTkwJ10gPSA2OQorICAgIF9fb1snNTkxJ10gPSAxMTQKKyAgICBfX29bJzU5MiddID0gMTE0CisgICAgX19vWyc1OTMnXSA9IDExMQorICAgIF9fb1snNTk0J10gPSAxMTQKKyAgICBfX29bJzU5NSddID0gMAorICAgIF9fb1snNTk2J10gPSA3MQorICAgIF9fb1snNTk3J10gPSA5NworICAgIF9fb1snNTk4J10gPSAxMTYKKyAgICBfX29bJzU5OSddID0gMTAxCisgICAgX19vWyc2MDAnXSA9IDAKKyAgICBfX29bJzYwMSddID0gNzEKKyAgICBfX29bJzYwMiddID0gOTcKKyAgICBfX29bJzYwMyddID0gMTE2CisgICAgX19vWyc2MDQnXSA9IDEwMQorICAgIF9fb1snNjA1J10gPSA3OAorICAgIF9fb1snNjA2J10gPSAxMTcKKyAgICBfX29bJzYwNyddID0gMTA4CisgICAgX19vWyc2MDgnXSA9IDEwOAorICAgIF9fb1snNjA5J10gPSAwCisgICAgX19vWyc2MTAnXSA9IDc2CisgICAgX19vWyc2MTEnXSA9IDExMQorICAgIF9fb1snNjEyJ10gPSAxMDMKKyAgICBfX29bJzYxMyddID0gMAorICAgIF9fb1snNjE0J10gPSA3NworICAgIF9fb1snNjE1J10gPSA5NworICAgIF9fb1snNjE2J10gPSAxMDUKKyAgICBfX29bJzYxNyddID0gMTEwCisgICAgX19vWyc2MTgnXSA9IDAKKyAgICBfX29bJzYxOSddID0gNzcKKyAgICBfX29bJzYyMCddID0gMTAxCisgICAgX19vWyc2MjEnXSA9IDEwOQorICAgIF9fb1snNjIyJ10gPSAxMTEKKyAgICBfX29bJzYyMyddID0gMTE0CisgICAgX19vWyc2MjQnXSA9IDEyMQorICAgIF9fb1snNjI1J10gPSAwCisgICAgX19vWyc2MjYnXSA9IDcyCisgICAgX19vWyc2MjcnXSA9IDEwMQorICAgIF9fb1snNjI4J10gPSA5NworICAgIF9fb1snNjI5J10gPSAxMTIKKyAgICBfX29bJzYzMCddID0gODMKKyAgICBfX29bJzYzMSddID0gMTE2CisgICAgX19vWyc2MzInXSA9IDEwMAorICAgIF9fb1snNjMzJ10gPSAwCisgICAgX19vWyc2MzQnXSA9IDgzCisgICAgX19vWyc2MzUnXSA9IDExNgorICAgIF9fb1snNjM2J10gPSA5NworICAgIF9fb1snNjM3J10gPSAxMTQKKyAgICBfX29bJzYzOCddID0gMTE2CisgICAgX19vWyc2MzknXSA9IDExNworICAgIF9fb1snNjQwJ10gPSAxMTIKKyAgICBfX29bJzY0MSddID0gMAorICAgIF9fb1snNjQyJ10gPSA4MworICAgIF9fb1snNjQzJ10gPSAxMjEKKyAgICBfX29bJzY0NCddID0gMTE1CisgICAgX19vWyc2NDUnXSA9IDExNgorICAgIF9fb1snNjQ2J10gPSAxMDEKKyAgICBfX29bJzY0NyddID0gMTA5CisgICAgX19vWyc2NDgnXSA9IDAKKyAgICBfX29bJzY0OSddID0gODMKKyAgICBfX29bJzY1MCddID0gMTIxCisgICAgX19vWyc2NTEnXSA9IDExNQorICAgIF9fb1snNjUyJ10gPSA3NworICAgIF9fb1snNjUzJ10gPSAxMDUKKyAgICBfX29bJzY1NCddID0gMTEwCisgICAgX19vWyc2NTUnXSA9IDAKKyAgICBfX29bJzY1NiddID0gODQKKyAgICBfX29bJzY1NyddID0gMTAxCisgICAgX19vWyc2NTgnXSA9IDEyMAorICAgIF9fb1snNjU5J10gPSAxMTYKKyAgICBfX29bJzY2MCddID0gMAorICAgIF9fb1snNjYxJ10gPSA5NworICAgIF9fb1snNjYyJ10gPSA5OQorICAgIF9fb1snNjYzJ10gPSAxMDkKKyAgICBfX29bJzY2NCddID0gMTAxCisgICAgX19vWyc2NjUnXSA9IDQ2CisgICAgX19vWyc2NjYnXSA9IDAKKyAgICBfX29bJzY2NyddID0gMTE3CisgICAgX19vWyc2NjgnXSA9IDExNgorICAgIF9fb1snNjY5J10gPSAxMDUKKyAgICBfX29bJzY3MCddID0gMTA4CisgICAgX19vWyc2NzEnXSA9IDExNQorICAgIF9fb1snNjcyJ10gPSA0NgorICAgIF9fb1snNjczJ10gPSAwCisgICAgX19vWyc2NzQnXSA9IDk5CisgICAgX19vWyc2NzUnXSA9IDEwOAorICAgIF9fb1snNjc2J10gPSAxMTEKKyAgICBfX29bJzY3NyddID0gOTkKKyAgICBfX29bJzY3OCddID0gMTA3CisgICAgX19vWyc2NzknXSA9IDExNQorICAgIF9fb1snNjgwJ10gPSA0NgorICAgIF9fb1snNjgxJ10gPSAwCisgICAgX19vWyc2ODInXSA9IDY3CisgICAgX19vWyc2ODMnXSA9IDEwOAorICAgIF9fb1snNjg0J10gPSAxMTEKKyAgICBfX29bJzY4NSddID0gOTkKKyAgICBfX29bJzY4NiddID0gMTA3CisgICAgX19vWyc2ODcnXSA9IDgzCisgICAgX19vWyc2ODgnXSA9IDExNgorICAgIF9fb1snNjg5J10gPSAxMDAKKyAgICBfX29bJzY5MCddID0gMAorICAgIF9fb1snNjkxJ10gPSA2NgorICAgIF9fb1snNjkyJ10gPSAxMDEKKyAgICBfX29bJzY5MyddID0gMTEwCisgICAgX19vWyc2OTQnXSA9IDk5CisgICAgX19vWyc2OTUnXSA9IDEwNAorICAgIF9fb1snNjk2J10gPSAwCisKK19fbyA9IF9fb2JqWzI3NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNzVdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjc2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjc3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzddICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzhdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4MF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODVdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODZdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODddICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODhdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsyODkuMF0KKyAgICBfX29bJzEnXSA9IF9fb2JqWzI5MC4wXQorICAgIF9fb1snMiddID0gX19vYmpbMjkxLjBdCisgICAgX19vWyczJ10gPSBfX29ialsyOTIuMF0KKyAgICBfX29bJzQnXSA9IF9fb2JqWzI5My4wXQorICAgIF9fb1snNSddID0gX19vYmpbMjk0LjBdCisgICAgX19vWyc2J10gPSBfX29ialsyOTUuMF0KKyAgICBfX29bJzcnXSA9IF9fb2JqWzI5Ni4wXQorICAgIF9fb1snOCddID0gX19vYmpbMjk3LjBdCisgICAgX19vWyc5J10gPSBfX29ialsyOTguMF0KKyAgICBfX29bJzEwJ10gPSBfX29ialsyOTkuMF0KKyAgICBfX29bJzExJ10gPSBfX29ialszMDAuMF0KKyAgICBfX29bJzEyJ10gPSBfX29ialszMDEuMF0KKyAgICBfX29bJzEzJ10gPSBfX29ialszMDIuMF0KKyAgICBfX29bJzE0J10gPSBfX29ialszMDMuMF0KKyAgICBfX29bJzE1J10gPSBfX29ialszMDQuMF0KKyAgICBfX29bJzE2J10gPSBfX29ialszMDUuMF0KKyAgICBfX29bJzE3J10gPSBfX29ialszMDYuMF0KKyAgICBfX29bJzE4J10gPSBfX29ialszMDcuMF0KKyAgICBfX29bJzE5J10gPSBfX29ialszMDguMF0KKyAgICBfX29bJzIwJ10gPSBfX29ialszMDkuMF0KKworX19vID0gX19vYmpbMjg5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMAorICAgIF9fb1sncmlnaHQnXSA9IDAKKworX19vID0gX19vYmpbMjkwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gNTQ5CisgICAgX19vWydyaWdodCddID0gNTU0CisKK19fbyA9IF9fb2JqWzI5MV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTYzCisKK19fbyA9IF9fb2JqWzI5Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTcwCisKK19fbyA9IF9fb2JqWzI5M10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTc1CisKK19fbyA9IF9fb2JqWzI5NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTg0CisKK19fbyA9IF9fb2JqWzI5NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi82CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTkwCisKK19fbyA9IF9fb2JqWzI5Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTk2CisKK19fbyA9IF9fb2JqWzI5N10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjAxCisKK19fbyA9IF9fb2JqWzI5OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi85CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjknLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjEwCisKK19fbyA9IF9fb2JqWzI5OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MTQKKworX19vID0gX19vYmpbMzAwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzExCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjExJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYxOQorCitfX28gPSBfX29ialszMDFdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjI2CisKK19fbyA9IF9fb2JqWzMwMl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MzQKKworX19vID0gX19vYmpbMzAzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE0JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDY0MgorCitfX28gPSBfX29ialszMDRdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjQ5CisKK19fbyA9IF9fb2JqWzMwNV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2NTYKKworX19vID0gX19vYmpbMzA2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE3CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE3JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSA2NjEKKyAgICBfX29bJ3JpZ2h0J10gPSA2NjcKKworX19vID0gX19vYmpbMzA3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE4CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE4JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc4NQorICAgIF9fb1sncmlnaHQnXSA9IDY3NAorCitfX28gPSBfX29ialszMDhdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTkKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTknLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzg2CisgICAgX19vWydyaWdodCddID0gNjgyCisKK19fbyA9IF9fb2JqWzMwOV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYyMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3ODUKKyAgICBfX29bJ3JpZ2h0J10gPSA2OTEKKworX19vID0gX19vYmpbMzEwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxMV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszMTIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzg3CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzMxMy4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzMxNC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzI3LjBdCisKK19fbyA9IF9fb2JqWzMxMl0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxM10gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzMxNF0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMzE1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMzE3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialszMTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMzIxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMzIzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialszMjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTVdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzE2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTZdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxN10gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzE4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMThdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxOV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzIwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjBdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjFdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzIyXSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjNdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI0XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjVdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzI2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyNl0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI3XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI4XSAgLy8gYWNtZS51dGlscy5CZW5jaAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMzI5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODgKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snUENsb2NrJ10gPSBfX29ialszMTEuMF0KKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzMzMC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzMzMS4wXQorICAgIF9fb1snZW5hYmxlRmxhZyddID0gdHJ1ZQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzQ0LjBdCisKK19fbyA9IF9fb2JqWzMyOV0gIC8vIGFjbWUudXRpbHMuQmVuY2gvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzBdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMzMxXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzMzMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzMzNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMzM2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzMzOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzM0MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMzQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzJdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMzMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzMzXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM0XSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzM1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzVdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzZdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzN10gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzhdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzM5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzOV0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0MF0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNDEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQxXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQyXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQzXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ0XSAgLy8gYWNtZS51dGlscy5CZW5jaC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0NV0gIAorICAgIF9fb1snY2ZnQXJncyddID0gX19vYmpbMzQ2LjBdCisgICAgX19vWydjZmdTY3JpcHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaXNxcnRUZXN0MS5jZmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Byb2ZpbGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncmVsZWFzZScsICdVVEYtOCcpKQorICAgIF9fb1sncmVsZWFzZXMnXSA9IF9fb2JqWzM0Ny4wXQorICAgIF9fb1sndGFyZ2V0J10gPSBfX29ialszNTEuMF0KKyAgICBfX29bJ3Rlc3QnXSA9IF9fb2JqWzQ2NS4wXQorCitfX28gPSBfX29ialszNDZdICAKKyAgICBfX29bJ29wdE1vZGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU1BBQ0UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ3XSAgCisgICAgX19vWycwJ10gPSBfX29ialszNDguMF0KKworX19vID0gX19vYmpbMzQ4XSAgCisgICAgX19vWydhdHRycyddID0gX19vYmpbMzQ5LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NoYXJsaWVfc3FydGxpYl90ZXN0JywgJ1VURi04JykpCisgICAgX19vWydvdGhlckZpbGVzJ10gPSBfX29ialszNTAuMF0KKworX19vID0gX19vYmpbMzQ5XSAgCisgICAgX19vWydsYWJlbCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkZWZhdWx0JywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1MF0gIAorCitfX28gPSBfX29ialszNTFdICAvLyB0aS50YXJnZXRzLkM2NFAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ25EaXJlY3RpdmVTdXBwb3J0ZWQnXSA9IHRydWUKKyAgICBfX29bJ2FyJ10gPSBfX29ialszNTIuMF0KKyAgICBfX29bJ2FyT3B0cyddID0gX19vYmpbMzUzLjBdCisgICAgX19vWydhc20nXSA9IF9fb2JqWzM1NC4wXQorICAgIF9fb1snYXNtT3B0cyddID0gX19vYmpbMzU1LjBdCisgICAgX19vWydiYXNlJ10gPSBfX29ialszNTYuMF0KKyAgICBfX29bJ2JpbkRpciddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGYmluJTJGJywgJ1VURi04JykpCisgICAgX19vWydiaW5hcnlQYXJzZXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5vbWYuY29mLkNvZmYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2JpdHNQZXJDaGFyJ10gPSA4CisgICAgX19vWydjYyddID0gX19vYmpbNDA3LjBdCisgICAgX19vWydjY0NvbmZpZ09wdHMnXSA9IF9fb2JqWzQwOC4wXQorICAgIF9fb1snY2NPcHRzJ10gPSBfX29ials0MDkuMF0KKyAgICBfX29bJ2NvbXBhdGlibGVTdWZmaXhlcyddID0gX19vYmpbNDEwLjBdCisgICAgX19vWydkZWJ1Z0dlbiddID0gX19vYmpbNDExLjBdCisgICAgX19vWydleHRlbnNpb25zJ10gPSBfX29ials0MTIuMF0KKyAgICBfX29bJ2luY2x1ZGVPcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1JJTI0JTI4cm9vdERpciUyOSUyRmluY2x1ZGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2lzYSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xuayddID0gX19vYmpbNDIyLjBdCisgICAgX19vWydsbmtPcHRzJ10gPSBfX29ials0MjMuMF0KKyAgICBfX29bJ21vZGVsJ10gPSBfX29ials0MjQuMF0KKyAgICBfX29bJ25hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQzY0UCcsICdVVEYtOCcpKQorICAgIF9fb1sncGF0aFByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BsYXRmb3JtJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnBsYXRmb3Jtcy5zaW02NFB4eCcsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm1zJ10gPSBfX29ials0MjUuMF0KKyAgICBfX29bJ3Byb2ZpbGVzJ10gPSBfX29ials0MjYuMF0KKyAgICBfX29bJ3Jvb3REaXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZCUzQSUyRnRpJTJGYzYwMDAlMkZhbGMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3J0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLnJ0czYwMDAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3NlY3RNYXAnXSA9IF9fb2JqWzQ0NS4wXQorICAgIF9fb1snc3RkSW5jbHVkZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZzdGQuaCcsICdVVEYtOCcpKQorICAgIF9fb1snc3RkVHlwZXMnXSA9IF9fb2JqWzQ0Ni4wXQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzY0UCcsICdVVEYtOCcpKQorICAgIF9fb1sndmVycyddID0gX19vYmpbNDYzLjBdCisgICAgX19vWyd2ZXJzaW9uJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCU3QjElMkMwJTJDNi4xJTJDNScsICdVVEYtOCcpKQorICAgIF9fb1sndmVyc2lvbk1hcCddID0gX19vYmpbNDY0LjBdCisKK19fbyA9IF9fb2JqWzM1Ml0gIC8vIHRpLnRhcmdldHMuQzY0UC9hcgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGYXInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhcjZ4JywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3JxJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1M10gIC8vIHRpLnRhcmdldHMuQzY0UC9hck9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmFyT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTRdICAvLyB0aS50YXJnZXRzLkM2NFAvYXNtCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZhc20nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjbDZ4Ky1jJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1tdjY0cCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTVdICAvLyB0aS50YXJnZXRzLkM2NFAvYXNtT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGYXNtT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1xcScsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTZdICAvLyB0aS50YXJnZXRzLkM2MgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduRGlyZWN0aXZlU3VwcG9ydGVkJ10gPSB0cnVlCisgICAgX19vWydiaW5hcnlQYXJzZXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5vbWYuY29mLkNvZmYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2JpdHNQZXJDaGFyJ10gPSA4CisgICAgX19vWydjb21wYXRpYmxlU3VmZml4ZXMnXSA9IF9fb2JqWzM1Ny4wXQorICAgIF9fb1snZGVidWdHZW4nXSA9IF9fb2JqWzM1OC4wXQorICAgIF9fb1snZXh0ZW5zaW9ucyddID0gX19vYmpbMzU5LjBdCisgICAgX19vWydpc2EnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ21vZGVsJ10gPSBfX29ialszNjcuMF0KKyAgICBfX29bJ25hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQzYyJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMEM2MjExJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybXMnXSA9IF9fb2JqWzM2OC4wXQorICAgIF9fb1sncHJvZmlsZXMnXSA9IF9fb2JqWzM2OS4wXQorICAgIF9fb1sncnRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMucnRzNjAwMCcsICdVVEYtOCcpKQorICAgIF9fb1snc2VjdE1hcCddID0gX19vYmpbMzg4LjBdCisgICAgX19vWydzdGRJbmNsdWRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRnN0ZC5oJywgJ1VURi04JykpCisgICAgX19vWydzdGRUeXBlcyddID0gX19vYmpbMzg5LjBdCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZlcnNpb25NYXAnXSA9IF9fb2JqWzQwNi4wXQorCitfX28gPSBfX29ialszNTddICAvLyB0aS50YXJnZXRzLkM2Mi9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGY29tcGF0aWJsZVN1ZmZpeGVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1OF0gIC8vIHRpLnRhcmdldHMuQzYyL2RlYnVnR2VuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmRlYnVnR2VuJywgJ1VURi04JykpCisgICAgX19vWydleGVjUGF0dGVybiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1RlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19leGVjLnhkdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVBhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncGFja2FnZSUyRiUyNCUyOHBrZ05hbWUlMjkucGp0JywgJ1VURi04JykpCisgICAgX19vWydwYWNrYWdlVGVtcGxhdGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGklMkZ0YXJnZXRzJTJGY2NzX3BhY2thZ2UueGR0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1OV0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucycsICdVVEYtOCcpKQorICAgIF9fb1snLkMnXSA9IF9fb2JqWzM2MC4wXQorICAgIF9fb1snLmFzbSddID0gX19vYmpbMzYxLjBdCisgICAgX19vWycuYyddID0gX19vYmpbMzYyLjBdCisgICAgX19vWycuY2MnXSA9IF9fb2JqWzM2My4wXQorICAgIF9fb1snLmNwcCddID0gX19vYmpbMzY0LjBdCisgICAgX19vWycuY3h4J10gPSBfX29ialszNjUuMF0KKyAgICBfX29bJy5zNjInXSA9IF9fb2JqWzM2Ni4wXQorCitfX28gPSBfX29ialszNjBdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuQycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5DJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLkMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzYxXSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5hc20lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYXNtJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2Ml0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2MnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzYzXSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmNjJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmNjJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNjJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2NF0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jcHAnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuY3BwJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNwcCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjVdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3h4JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmN4eCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jeHgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY2XSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5zNjIlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczYyJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2N10gIC8vIHRpLnRhcmdldHMuQzYyL21vZGVsCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRm1vZGVsJywgJ1VURi04JykpCisgICAgX19vWydlbmRpYW4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbGl0dGxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2OF0gIC8vIHRpLnRhcmdldHMuQzYyL3BsYXRmb3JtcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwbGF0Zm9ybXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY5XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvdmVyYWdlJ10gPSBfX29ialszNzAuMF0KKyAgICBfX29bJ2RlYnVnJ10gPSBfX29ialszNzMuMF0KKyAgICBfX29bJ3Byb2ZpbGUnXSA9IF9fb2JqWzM3Ni4wXQorICAgIF9fb1sncmVsZWFzZSddID0gX19vYmpbMzc5LjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtJ10gPSBfX29ialszODIuMF0KKyAgICBfX29bJ3dob2xlX3Byb2dyYW1fZGVidWcnXSA9IF9fb2JqWzM4NS4wXQorCitfX28gPSBfX29ialszNzBdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNzEuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM3Mi4wXQorCitfX28gPSBfX29ialszNzFdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWdwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3Ml0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzNdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNzQuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM3NS4wXQorCitfX28gPSBfX29ialszNzRdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RlZnMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLURfREVCVUdfJTNEMScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzVdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc2XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM3Ny4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzc4LjBdCisKK19fbyA9IF9fb2JqWzM3N10gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWdwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3OF0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc5XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM4MC4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzgxLjBdCisKK19fbyA9IF9fb2JqWzM4MF0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLU8yJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4MV0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzgyXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM4My4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzg0LjBdCisKK19fbyA9IF9fb2JqWzM4M10gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW0lMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLW9lKy1PMistbW8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg0XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODVdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzg2LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszODcuMF0KKworX19vID0gX19vYmpbMzg2XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbV9kZWJ1ZyUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctb2UrLS1zeW1kZWJ1ZyUzQWR3YXJmKy1tbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODddICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4OF0gIC8vIHRpLnRhcmdldHMuQzYyL3NlY3RNYXAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc2VjdE1hcCcsICdVVEYtOCcpKQorICAgIF9fb1snLmFyZ3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmJzcyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY2luaXQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNpbyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY29uc3QnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmRhdGEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmZhciddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycucGluaXQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnN0YWNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3N0YWNrJywgJ1VURi04JykpCisgICAgX19vWycuc3dpdGNoJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zeXNtZW0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnRleHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29kZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODldICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcycsICdVVEYtOCcpKQorICAgIF9fb1sndF9DaGFyJ10gPSBfX29ialszOTAuMF0KKyAgICBfX29bJ3RfRG91YmxlJ10gPSBfX29ialszOTEuMF0KKyAgICBfX29bJ3RfRmxvYXQnXSA9IF9fb2JqWzM5Mi4wXQorICAgIF9fb1sndF9GeG4nXSA9IF9fb2JqWzM5My4wXQorICAgIF9fb1sndF9JQXJnJ10gPSBfX29ialszOTQuMF0KKyAgICBfX29bJ3RfSW50J10gPSBfX29ialszOTUuMF0KKyAgICBfX29bJ3RfSW50MTYnXSA9IF9fb2JqWzM5Ni4wXQorICAgIF9fb1sndF9JbnQzMiddID0gX19vYmpbMzk3LjBdCisgICAgX19vWyd0X0ludDQwJ10gPSBfX29ialszOTguMF0KKyAgICBfX29bJ3RfSW50NjQnXSA9IF9fb2JqWzM5OS4wXQorICAgIF9fb1sndF9JbnQ4J10gPSBfX29ials0MDAuMF0KKyAgICBfX29bJ3RfTERvdWJsZSddID0gX19vYmpbNDAxLjBdCisgICAgX19vWyd0X0xMb25nJ10gPSBfX29ials0MDIuMF0KKyAgICBfX29bJ3RfTG9uZyddID0gX19vYmpbNDAzLjBdCisgICAgX19vWyd0X1B0ciddID0gX19vYmpbNDA0LjBdCisgICAgX19vWyd0X1Nob3J0J10gPSBfX29ials0MDUuMF0KKworX19vID0gX19vYmpbMzkwXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9DaGFyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9DaGFyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ialszOTFdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0RvdWJsZQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszOTJdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0Zsb2F0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9GbG9hdCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzkzXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GeG4KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0Z4bicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzk0XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JQXJnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JQXJnJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszOTVdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszOTZdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDE2CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQxNicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbMzk3XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQzMgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50MzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM5OF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NDAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0ludDQwJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszOTldICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDY0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQ2NCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDAwXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ4CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQ4JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ials0MDFdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xEb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0xEb3VibGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQwMl0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfTExvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0xMb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0MDNdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0xvbmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQwNF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfUHRyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9QdHInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQwNV0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfU2hvcnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X1Nob3J0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMgorICAgIF9fb1snc2l6ZSddID0gMgorCitfX28gPSBfX29ials0MDZdICAvLyB0aS50YXJnZXRzLkM2Mi92ZXJzaW9uTWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnZlcnNpb25NYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEMyMDAwXzMuMDcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMzLjA3JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzU0eF8zLjgzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy44MyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NXhfMi41NiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzIuNTYlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNnhfNC4zMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzQuMzIlMkMwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwN10gIC8vIHRpLnRhcmdldHMuQzY0UC9jYworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGY2MnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjbDZ4Ky1jJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1tdjY0cCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDhdICAvLyB0aS50YXJnZXRzLkM2NFAvY2NDb25maWdPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZjY0NvbmZpZ09wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjY09wdHMucHJlZml4JTI5Ky1tbycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNCUyOGNjT3B0cy5zdWZmaXglMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDA5XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2NjT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGY2NPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLXFxKy1wZHN3MjI1JywgJ1VURi04JykpCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxMF0gIC8vIHRpLnRhcmdldHMuQzY0UC9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmNvbXBhdGlibGVTdWZmaXhlcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc2NCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc2MicsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MTFdICAvLyB0aS50YXJnZXRzLkM2NFAvZGVidWdHZW4KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmRlYnVnR2VuJywgJ1VURi04JykpCisgICAgX19vWydleGVjUGF0dGVybiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1RlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19leGVjLnhkdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVBhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncGFja2FnZSUyRiUyNCUyOHBrZ05hbWUlMjkucGp0JywgJ1VURi04JykpCisgICAgX19vWydwYWNrYWdlVGVtcGxhdGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGklMkZ0YXJnZXRzJTJGY2NzX3BhY2thZ2UueGR0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxMl0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJywgJ1VURi04JykpCisgICAgX19vWycuQyddID0gX19vYmpbNDEzLjBdCisgICAgX19vWycuYXNtJ10gPSBfX29ials0MTQuMF0KKyAgICBfX29bJy5jJ10gPSBfX29ials0MTUuMF0KKyAgICBfX29bJy5jYyddID0gX19vYmpbNDE2LjBdCisgICAgX19vWycuY3BwJ10gPSBfX29ials0MTcuMF0KKyAgICBfX29bJy5jeHgnXSA9IF9fb2JqWzQxOC4wXQorICAgIF9fb1snLnM2MiddID0gX19vYmpbNDE5LjBdCisgICAgX19vWycuczY0J10gPSBfX29ials0MjAuMF0KKyAgICBfX29bJy5zNjRQJ10gPSBfX29ials0MjEuMF0KKworX19vID0gX19vYmpbNDEzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5DJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5DJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLkMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDE0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5hc20nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJTJGJTI3LmFzbSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5hc20nLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhc20nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDE1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxNl0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY2MnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJTJGJTI3LmNjJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNjJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxN10gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3BwJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jcHAlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY3BwJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxOF0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3h4JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jeHglMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY3h4JywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxOV0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczYyJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5zNjIlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczYyJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyMF0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5zNjQlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczY0JywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyMV0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0UCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuczY0UCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5zNjRQJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyMl0gIC8vIHRpLnRhcmdldHMuQzY0UC9sbmsKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmxuaycsICdVVEYtOCcpKQorICAgIF9fb1snY21kJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2xuazZ4JywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjNdICAvLyB0aS50YXJnZXRzLkM2NFAvbG5rT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGbG5rT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy13Ky1xKy11K19jX2ludDAwJywgJ1VURi04JykpCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWMrLW0rJTI0JTI4WERDQ0ZHRElSJTI5JTJGJTI0JTQwLm1hcCstbCslMjQlMjhyb290RGlyJTI5JTJGbGliJTJGcnRzNjRwbHVzLmxpYicsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjRdICAvLyB0aS50YXJnZXRzLkM2NFAvbW9kZWwKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRm1vZGVsJywgJ1VURi04JykpCisgICAgX19vWydlbmRpYW4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbGl0dGxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyNV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wbGF0Zm9ybXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnBsYXRmb3JtcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNjRQeHgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDI2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcycsICdVVEYtOCcpKQorICAgIF9fb1snY292ZXJhZ2UnXSA9IF9fb2JqWzQyNy4wXQorICAgIF9fb1snZGVidWcnXSA9IF9fb2JqWzQzMC4wXQorICAgIF9fb1sncHJvZmlsZSddID0gX19vYmpbNDMzLjBdCisgICAgX19vWydyZWxlYXNlJ10gPSBfX29ials0MzYuMF0KKyAgICBfX29bJ3dob2xlX3Byb2dyYW0nXSA9IF9fb2JqWzQzOS4wXQorICAgIF9fb1snd2hvbGVfcHJvZ3JhbV9kZWJ1ZyddID0gX19vYmpbNDQyLjBdCisKK19fbyA9IF9fb2JqWzQyN10gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDI4LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0MjkuMF0KKworX19vID0gX19vYmpbNDI4XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWdwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyOV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzMF0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDMxLjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0MzIuMF0KKworX19vID0gX19vYmpbNDMxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RlZnMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLURfREVCVUdfJTNEMScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MzJdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MzNdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ials0MzQuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzQzNS4wXQorCitfX28gPSBfX29ials0MzRdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWdwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzNV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MzZdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ials0MzcuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzQzOC4wXQorCitfX28gPSBfX29ials0MzddICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLU8yJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzOF0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MzldICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW0lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ials0NDAuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzQ0MS4wXQorCitfX28gPSBfX29ials0NDBdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW0lMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLW9lKy1PMistbW8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDQxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW0lMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ0Ml0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbV9kZWJ1ZyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzQ0My4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbNDQ0LjBdCisKK19fbyA9IF9fb2JqWzQ0M10gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbV9kZWJ1ZyUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctb2UrLS1zeW1kZWJ1ZyUzQWR3YXJmKy1tbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NDRdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbV9kZWJ1ZyUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDQ1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3NlY3RNYXAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnNlY3RNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5hcmdzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5ic3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNpbml0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5jaW8nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNvbnN0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5kYXRhJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5mYXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnBpbml0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zdGFjayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdzdGFjaycsICdVVEYtOCcpKQorICAgIF9fb1snLnN3aXRjaCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuc3lzbWVtJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy50ZXh0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvZGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDQ2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcycsICdVVEYtOCcpKQorICAgIF9fb1sndF9DaGFyJ10gPSBfX29ials0NDcuMF0KKyAgICBfX29bJ3RfRG91YmxlJ10gPSBfX29ials0NDguMF0KKyAgICBfX29bJ3RfRmxvYXQnXSA9IF9fb2JqWzQ0OS4wXQorICAgIF9fb1sndF9GeG4nXSA9IF9fb2JqWzQ1MC4wXQorICAgIF9fb1sndF9JQXJnJ10gPSBfX29ials0NTEuMF0KKyAgICBfX29bJ3RfSW50J10gPSBfX29ials0NTIuMF0KKyAgICBfX29bJ3RfSW50MTYnXSA9IF9fb2JqWzQ1My4wXQorICAgIF9fb1sndF9JbnQzMiddID0gX19vYmpbNDU0LjBdCisgICAgX19vWyd0X0ludDQwJ10gPSBfX29ials0NTUuMF0KKyAgICBfX29bJ3RfSW50NjQnXSA9IF9fb2JqWzQ1Ni4wXQorICAgIF9fb1sndF9JbnQ4J10gPSBfX29ials0NTcuMF0KKyAgICBfX29bJ3RfTERvdWJsZSddID0gX19vYmpbNDU4LjBdCisgICAgX19vWyd0X0xMb25nJ10gPSBfX29ials0NTkuMF0KKyAgICBfX29bJ3RfTG9uZyddID0gX19vYmpbNDYwLjBdCisgICAgX19vWyd0X1B0ciddID0gX19vYmpbNDYxLjBdCisgICAgX19vWyd0X1Nob3J0J10gPSBfX29ials0NjIuMF0KKworX19vID0gX19vYmpbNDQ3XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfQ2hhcgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0NoYXInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAxCisgICAgX19vWydzaXplJ10gPSAxCisKK19fbyA9IF9fb2JqWzQ0OF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0RvdWJsZQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0RvdWJsZScsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDQ5XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRmxvYXQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9GbG9hdCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDUwXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRnhuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfRnhuJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0NTFdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JQXJnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSUFyZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDUyXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSW50JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0NTNdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQxNgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0ludDE2JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMgorICAgIF9fb1snc2l6ZSddID0gMgorCitfX28gPSBfX29ials0NTRdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQzMgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0ludDMyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0NTVdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ0MAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0ludDQwJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0NTZdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ2NAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0ludDY0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0NTddICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ4CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfSW50OCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbNDU4XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTERvdWJsZQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0xEb3VibGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQ1OV0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xMb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfTExvbmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQ2MF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9Mb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0NjFdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9QdHIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9QdHInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQ2Ml0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1Nob3J0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfU2hvcnQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAyCisgICAgX19vWydzaXplJ10gPSAyCisKK19fbyA9IF9fb2JqWzQ2M10gIC8vIHRpLnRhcmdldHMuQzY0UC92ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZ2ZXJzJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2w2eCcsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctdmVyc2lvbicsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NjRdICAvLyB0aS50YXJnZXRzLkM2NFAvdmVyc2lvbk1hcAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGdmVyc2lvbk1hcCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzIwMDBfMy4wNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzMuMDclMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNTR4XzMuODMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMzLjgzJTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzU1eF8yLjU2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMi41NiUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM2eF80LjMyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDNC4zMiUyQzAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDY1XSAgCisKK2RlbGV0ZSBfX28KK2RlbGV0ZSBfX29iagpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5ydGEueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLnJ0YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjM0ZjMzNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5ydGEueG1sCkBAIC0wLDAgKzEsMTEyIEBACis8eGRjLnJ1bnRpbWUuVHlwZXMuUnRhRGVjb2RlckRhdGE+DQorICA8dGFyZ2V0TmFtZT50aS50YXJnZXRzLkM2NFA8L3RhcmdldE5hbWU+DQorICA8YmluYXJ5UGFyc2VyPnRpLnRhcmdldHMub21mLmNvZi5Db2ZmPC9iaW5hcnlQYXJzZXI+DQorICA8ZW5kaWFuPmxpdHRsZTwvZW5kaWFuPg0KKyAgPGJpdHNQZXJDaGFyPjg8L2JpdHNQZXJDaGFyPg0KKyAgPGFyZ1NpemU+NDwvYXJnU2l6ZT4NCisgIDxldmVudFNpemU+NDg8L2V2ZW50U2l6ZT4NCisgIDxsb2dnZXJzLWxlbmd0aD4wPC9sb2dnZXJzLWxlbmd0aD4NCisgIDxtb2RNYXAtbGVuZ3RoPjE3PC9tb2RNYXAtbGVuZ3RoPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkFzc2VydCI+DQorICAgIDxpZD4zMjc3MDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkNvcmUiPg0KKyAgICA8aWQ+MzI3NzE8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5EZWZhdWx0cyI+DQorICAgIDxpZD4zMjc3MjwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkRpYWdzIj4NCisgICAgPGlkPjMyNzczPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuRXJyb3IiPg0KKyAgICA8aWQ+MzI3NzQ8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5HYXRlIj4NCisgICAgPGlkPjMyNzc1PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuR2F0ZU51bGwiPg0KKyAgICA8aWQ+MzI3NzY8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2ciPg0KKyAgICA8aWQ+MzI3Nzc8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5NYWluIj4NCisgICAgPGlkPjMyNzc4PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTWVtb3J5Ij4NCisgICAgPGlkPjMyNzc5PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuSGVhcFN0ZCI+DQorICAgIDxpZD4zMjc4MDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLlN0YXJ0dXAiPg0KKyAgICA8aWQ+MzI3ODE8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5TeXN0ZW0iPg0KKyAgICA8aWQ+MzI3ODI8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5TeXNNaW4iPg0KKyAgICA8aWQ+MzI3ODM8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5UZXh0Ij4NCisgICAgPGlkPjMyNzg0PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0iYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQiPg0KKyAgICA8aWQ+MzI3ODc8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJhY21lLnV0aWxzLkJlbmNoIj4NCisgICAgPGlkPjMyNzg4PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8ZXZ0TWFwLWxlbmd0aD40PC9ldnRNYXAtbGVuZ3RoPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2NvbnN0cnVjdCI+DQorICAgIDxpZD40Njg8L2lkPg0KKyAgICA8bXNnPiUzQy0tK2NvbnN0cnVjdCUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlIj4NCisgICAgPGlkPjQ5MjwvaWQ+DQorICAgIDxtc2c+JTNDLS0rY3JlYXRlJTNBKyUyNXAlMjglMjclMjVzJTI3JTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9kZXN0cnVjdCI+DQorICAgIDxpZD41MTM8L2lkPg0KKyAgICA8bXNnPi0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2RlbGV0ZSI+DQorICAgIDxpZD41MzI8L2lkPg0KKyAgICA8bXNnPi0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCis8L3hkYy5ydW50aW1lLlR5cGVzLlJ0YURlY29kZXJEYXRhPgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLnhkYy5pbmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODFhZTkzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLnhkYy5pbmMKQEAgLTAsMCArMSwyIEBACitpc3FydFRlc3QxLmNmZworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmNmZwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLnhkbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC54ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY0NWYxYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC54ZGwKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgdGVtcGxhdGUKKyAqIGxpbmtjbWQueGR0IGluIHRoZSB0aS50YXJnZXRzIHBhY2thZ2UgYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKi8KKworLyoKKyAqIHB1dCAnIidzIGFyb3VuZCBwYXRocyBiZWNhdXNlLCB3aXRob3V0IHRoaXMsIHRoZSBsaW5rZXIKKyAqIGNvbnNpZGVycyAnLScgYXMgbWludXMgb3BlcmF0b3IsIG5vdCBhIGZpbGUgbmFtZSBjaGFyYWN0ZXIuCisgKi8KKworCisKKy1sIkQ6XHdvcmtcdHV0b3JpYWxccmVwb1xhY21lXHV0aWxzXGxpYlxhY21lLnV0aWxzLmE2NFAiCistbCJEOlx3b3JrXHR1dG9yaWFsXHJlcG9cYWNtZVx1dGlsc1xjbG9ja3NcbGliXGFjbWUudXRpbHMuY2xvY2tzLmE2NFAiCistbCJFOlxydHNjXHhkY3Rvb2xzXzNfMTVfMDBfMjlccGFja2FnZXNcdGlcdGFyZ2V0c1xydHM2MDAwXGxpYlx0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCIKKy1sIkU6XHJ0c2NceGRjdG9vbHNfM18xNV8wMF8yOVxwYWNrYWdlc1x0aVx0YXJnZXRzXHJ0czYwMDBcbGliXGJvb3QuYTY0UCIKKy1sIkQ6XHdvcmtcdHV0b3JpYWxccmVwb1xjaGFybGllXHNxcnRsaWJcbGliXGlzcXJ0X2xvb3AuYTY0UCIKKworCisvKiBmdW5jdGlvbiBhbGlhc2VzICovCisvKiBpZ25vcmUgZXJyb3IgYWJvdXQgZGVmIGFuZCByZWYgaW4gdGhlIHNhbWUgZmlsZSAqLworLS1kaWFnX3JlbWFyaz0xMDI2OAorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0U9X3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRT1feGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0U9X3hkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19FPV94ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRT1feGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19FPV94ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRT1feGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRT1feGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRgorLS1zeW1ib2xfbWFwIF9hY21lX3V0aWxzX0JlbmNoX2VuZF9fRT1fYWNtZV91dGlsc19CZW5jaF9lbmRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRT1feGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0U9X3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0xvZ19kb1ByaW50X19FPV94ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0U9X3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0U9X3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRT1feGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FPV94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRT1feGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRT1feGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19FPV94ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRT1feGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRT1feGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FPV94ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FPV94ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRT1feGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19FPV94ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0YKKy0tc3ltYm9sX21hcCBfYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRT1fYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRgorLS1zeW1ib2xfbWFwIF9hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FPV9hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV9mcmVlX19FPV94ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0U9X3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0U9X3hkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FPV94ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRT1feGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FPV94ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19FPV94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRT1feGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRT1feGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRT1feGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0U9X3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9leGl0X19FPV94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FPV94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0U9X3hkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRT1feGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRgorCisKKy8qIEVsZiBzeW1ib2xzICovCistLXN5bWJvbF9tYXAgX19fVElfU1RBQ0tfU0laRT1fX1NUQUNLX1NJWkUKKy0tc3ltYm9sX21hcCBfX19USV9TVEFDS19CQVNFPV9fc3RhY2sKKy0tc3ltYm9sX21hcCBfX19USV9TVEFUSUNfQkFTRT1fX19ic3NfXworLS1zeW1ib2xfbWFwIF9fY19pbnQwMD1fY19pbnQwMAorCisKKworCisKKy0tYXJncyAweDIwMAorLWhlYXAgIDB4MTAwMAorLXN0YWNrIDB4MTAwMAorCitNRU1PUlkKK3sKKyAgICBJUkFNIChSV1gpIDogb3JnID0gMHg4MDAwMDAsIGxlbiA9IDB4MjAwMDAwCisgICAgRERSIDogb3JnID0gMHg4MDAwMDAwMCwgbGVuID0gMHgxMDAwMDAwMAorfQorCisvKgorICogTGlua2VyIGNvbW1hbmQgZmlsZSBjb250cmlidXRpb25zIGZyb20gYWxsIGxvYWRlZCBwYWNrYWdlczoKKyAqLworCisvKiBDb250ZW50IGZyb20geGRjIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5jb3JldmVycyAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2VydmljZXMuZ2xvYmFsIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zaGVsZiAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2VydmljZXMuc3BlYyAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2VydmljZXMuaW50ZXJuLnhzciAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2VydmljZXMuaW50ZXJuLmdlbiAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMucm92IChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIGNoYXJsaWUuc3FydGxpYiAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB0aS5jYXRhbG9nLmM2MDAwIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5wbGF0Zm9ybSAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuY2ZnIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHRpLnBsYXRmb3Jtcy5zaW02NFB4eCAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMucnVudGltZSAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB0aS50YXJnZXRzLnJ0czYwMDAgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20gYWNtZS51dGlscy5jbG9ja3MgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20gYWNtZS51dGlscyAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSBjaGFybGllLnNxcnRsaWIudGVzdCAobnVsbCk6ICovCisKKworLyoKKyAqIHN5bWJvbGljIGFsaWFzZXMgZm9yIG51bWVyaWMgY29uc3RhbnRzIG9yIHN0YXRpYyBpbnN0YW5jZSBvYmplY3RzCisgKi8KK194ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DID0gMTsKK194ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyA9IDE7CisKK1NFQ1RJT05TCit7CisKKworICAgIC50ZXh0OiBsb2FkID4+IElSQU0KKyAgICAuc3dpdGNoOiBsb2FkID4+IEREUgorICAgIC5zdGFjazogbG9hZCA+IEREUgorICAgIC5hcmdzOiBsb2FkID4gRERSIGFsaWduID0gMHg0LCBmaWxsID0gMCB7X2FyZ3NpemUgPSAweDIwMDsgfQorICAgIHhkYy5ub2xvYWQ6IGxvYWQgPj4gRERSLCB0eXBlID0gTk9MT0FECisgICAgLnN5c21lbTogbG9hZCA+IEREUgorICAgIC5mYXI6IGxvYWQgPj4gRERSCisgICAgLmRhdGE6IGxvYWQgPj4gRERSCisgICAgLmNpbml0OiBsb2FkID4gRERSCisgICAgLmJzczogbG9hZCA+IEREUgorICAgIC5jb25zdDogbG9hZCA+PiBERFIKKyAgICAucGluaXQ6IGxvYWQgPiBERFIKKyAgICAuY2lvOiBsb2FkID4+IEREUgorCit9CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NTEwZmFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5jCkBAIC0wLDAgKzEsNzc5NSBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2RlZmluZSBfX25lc3RlZF9fCisjZGVmaW5lIF9fY29uZmlnX18KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworLyoKKyAqID09PT09PT09IEdFTkVSQVRFRCBTRUNUSU9OUyA9PT09PT09PQorICogICAgIAorICogICAgIE1PRFVMRSBJTkNMVURFUworICogICAgIAorICogICAgIDxtb2R1bGUtbmFtZT4gSU5URVJOQUxTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTkhFUklUUworICogICAgIDxtb2R1bGUtbmFtZT4gVlRBQkxFCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQQVRDSCBUQUJMRQorICogICAgIDxtb2R1bGUtbmFtZT4gREVDTEFSQVRJT05TCisgKiAgICAgPG1vZHVsZS1uYW1lPiBPQkpFQ1QgT0ZGU0VUUworICogICAgIDxtb2R1bGUtbmFtZT4gVEVNUExBVEVTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTklUSUFMSVpFUlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IEZVTkNUSU9OIFNUVUJTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQUk9YWSBCT0RZCisgKiAgICAgPG1vZHVsZS1uYW1lPiBPQkpFQ1QgREVTQ1JJUFRPUgorICogICAgIDxtb2R1bGUtbmFtZT4gU1lTVEVNIEZVTkNUSU9OUworICogICAgIDxtb2R1bGUtbmFtZT4gUFJBR01BUworICogICAgIAorICogICAgIElOSVRJQUxJWkFUSU9OIEVOVFJZIFBPSU5UCisgKiAgICAgUFJPR1JBTSBHTE9CQUxTCisgKiAgICAgQ0xJTksgRElSRUNUSVZFUworICovCisKKworLyoKKyAqID09PT09PT09IE1PRFVMRSBJTkNMVURFUyA9PT09PT09PQorICovCisKKyNpbmNsdWRlIDxhY21lL3V0aWxzL0JlbmNoLmg+CisjaW5jbHVkZSA8YWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Bc3NlcnQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Db3JlLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRGVmYXVsdHMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9EaWFncy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvR2F0ZS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0dhdGVOdWxsLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvSGVhcFN0ZC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0xvZy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL01haW4uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9NZW1vcnkuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TdGFydHVwLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzTWluLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzdGVtLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvVGV4dC5oPgorCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfXyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaF9QQ2xvY2sgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30gYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVjsKKworLyogT2JqZWN0X18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIHsKKyAgICBjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9GeG5zX18qIF9fZnhuczsKK30geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX0dhdGVOdWxsX19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WOworCisvKiBPYmplY3RfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyB7CisgICAgY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9GeG5zX18qIF9fZnhuczsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfU2l6ZSByZW1haW5TaXplOworICAgIHhkY19ydW50aW1lX01lbW9yeV9TaXplIHN0YXJ0U2l6ZTsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX0hlYXBTdGRfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01haW5fTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworLyogPC0tIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCAqLworCisvKiBPYmplY3QgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIDwtLSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdCAqLworCisvKiBPYmplY3QgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19yb290X19WOworCisvKiA8LS0geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0ICovCisKKy8qIE9iamVjdCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgSU5IRVJJVFMgPT09PT09PT0KKyAqLworCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0MgPSB7MH07CitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgSU5IRVJJVFMgPT09PT09PT0KKyAqLworCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MgPSB7KHZvaWQqKSZ4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgSU5IRVJJVFMgPT09PT09PT0KKyAqLworCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgeGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DID0geyh2b2lkKikmeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0N9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gSU5IRVJJVFMgPT09PT09PT0KKyAqLworCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgeGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DID0geyh2b2lkKikmeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0N9OworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBWVEFCTEUgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX0ZYTlNfX0MgKi8KK2NvbnN0IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX0Z4bnNfXyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UsCisgICAgeworICAgICAgICBOVUxMLCAvKiBfX2NyZWF0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2RlbGV0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2xhYmVsICovCisgICAgICAgIDB4ODAxMywgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfRnhuc19fIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FLAorICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FLAorICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FLAorICAgIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TLAorICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TLAorICAgICAgICAweDgwMDgsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9GeG5zX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZ4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FLAorICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSwKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UsCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSwKKyAgICB7CisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUywKKyAgICAgICAgMHg4MDBjLCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfU3lzTWluX0Z4bnNfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmeGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UsCisgICAgeworICAgICAgICBOVUxMLCAvKiBfX2NyZWF0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2RlbGV0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2xhYmVsICovCisgICAgICAgIDB4ODAwZiwgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2ggREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19TdHJpbmcgYmVnaW5Nc2c7CisgICAgeGRjX0ludCBiZWdpbkNsb2NrOworICAgIHhkY19JbnQgb3ZlcmhlYWQ7Cit9IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlX18gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoX1BDbG9jayBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19VSW50MTYgY291bnQ7Cit9IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogT2JqZWN0X190YWJsZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1ZbMV07CisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfU2l6ZSByZW1haW5SVFNTaXplOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfU2l6ZVQgbWF4RGVmYXVsdFR5cGVBbGlnbjsKK30geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX0ludCogc3RhdGVUYWI7CisgICAgeGRjX0Jvb2wgZXhlY0ZsYWc7CisgICAgeGRjX0Jvb2wgcnRzRG9uZUZsYWc7Cit9IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FICovCitleHRlcm4geGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UoeGRjX0ludCk7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UgKi8KK2V4dGVybiB4ZGNfSW50IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSh4ZGNfSW50KTsKKworLyogLS0+IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UgKi8KK2V4dGVybiB4ZGNfSW50IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UoeGRjX0ludCk7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVszXTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BWzNdOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXyB7CisgICAgX19UQV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgb3V0YnVmOworICAgIHhkY19VSW50IG91dGlkeDsKKyAgICB4ZGNfQm9vbCB3cmFwcGVkOworfSB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX187CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfX291dGJ1ZiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BWzEwMjRdOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JICovCitleHRlcm4geGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSh4ZGNfQ2hhcioseGRjX1VJbnQpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB7CisgICAgX19UQV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyBhdGV4aXRIYW5kbGVyczsKKyAgICB4ZGNfSW50IG51bUF0ZXhpdEhhbmRsZXJzOworICAgIHhkY19JbnQgZXhpdFN0YXR1czsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfX2F0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQVs4XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSh4ZGNfQ2hhcioqLHhkY19DaGFyKioseGRjX1ZhTGlzdCx4ZGNfcnVudGltZV9TeXN0ZW1fUGFyc2VEYXRhKik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1B0ciBjaGFyQmFzZTsKKyAgICB4ZGNfUHRyIG5vZGVCYXNlOworfSB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzY5N107CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVsyMV07CisKKworLyoKKyAqID09PT09PT09IHhkYy5jZmcuUHJvZ3JhbSBURU1QTEFURSA9PT09PT09PQorICovCisKKy8qCisgKiAgPT09PT09PT0gX19BU01fXyA9PT09PT09PQorICogIERlZmluZSB0aGlzIHByb2dyYW0ncyBwYWNrYWdlLXBhdGggcmVsYXRpdmUgYXNzZW1ibHkgZGlyZWN0b3J5CisgKi8KK19fRkFSX18gY2hhciAqX19BU01fXyA9ICJAKCMpX19BU01fXyA9IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXIjsKKworLyoKKyAqICA9PT09PT09PSBfX0lTQV9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBJU0Egb2YgdGhpcyBleGVjdXRhYmxlLiAgVGhpcyBzeW1ib2wgaXMgdXNlZCBieSBwbGF0Zm9ybQorICogIHNwZWNpZmljICJleGVjIiBjb21tYW5kcyB0aGF0IHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBJU0E7IGUuZy4sIGdkYgorICovCitfX0ZBUl9fIGNoYXIgKl9fSVNBX18gPSAiQCgjKV9fSVNBX18gPSB4ODYiOworCisvKgorICogID09PT09PT09IF9fUExBVF9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBwbGF0Zm9ybSB0aGF0IGNhbiBydW4gdGhpcyBleGVjdXRhYmxlLiAgVGhpcworICogIHN5bWJvbCBpcyB1c2VkIGJ5IHBsYXRmb3JtIGluZGVwZW5kZW50ICJleGVjIiBjb21tYW5kcworICovCitfX0ZBUl9fIGNoYXIgKl9fUExBVF9fID0gIkAoIylfX1BMQVRfXyA9IGhvc3QucGxhdGZvcm1zLlBDIjsKKworLyoKKyAqICA9PT09PT09PSBfX1RBUkdfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgdGFyZ2V0IHVzZWQgdG8gYnVpbGQgdGhpcyBleGVjdXRhYmxlLgorICovCitfX0ZBUl9fIGNoYXIgKl9fVEFSR19fID0gIkAoIylfX1RBUkdfXyA9IGdudS50YXJnZXRzLk1pbmd3IjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMF0gPCAwOworfQoreGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX0Yodm9pZCkgeworICAgIHJldHVybiAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiID09IDAgfHwgKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYlsxXSA8IDA7Cit9Cit4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVfX0Yodm9pZCkgeworICAgIHJldHVybiAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiID09IDAgfHwgKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYlsyXSA8IDA7Cit9CisKKworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JKHZvaWQpCit7CisgICAgeGRjX0ludCBzdGF0ZVs0XTsKKyAgICB4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyhzdGF0ZSwgMyk7Cit9CisKKyNpZmRlZiBfX3RpX18KKyNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kpOworI2VuZGlmCisKKy8qCisgKiAgPT09PT09PT0geGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSSA9PT09PT09PQorICogIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGJvb3RzdHJhcCBpbml0aWFsaXphdGlvbiBjb2RlIGFzIGVhcmx5IGFzCisgKiAgcG9zc2libGUgaW4gdGhlIHN0YXJ0dXAgcHJvY2Vzcy4gIFRoaXMgZnVuY3Rpb24gc2ltcGx5IGNhbGxzIGFueQorICogIGNvbmZpZ3VyZWQgbnVsbC4KKyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSSh2b2lkKQoreworfQorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1R5cGVzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvVGV4dC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Fzc2VydC5oPgorCisvKgorICogID09PT09PT09IFN5c3RlbV9wcmludGZFeHRlbmRfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyBvcHRpb25hbCBleHRlbmRlZCBmb3JtYXRzIG9mIHByaW50Zi4KKyAqLworSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0koQ2hhciAqKnBidWYsIENoYXIgKipwZm10LCAKKyAgICBWYUxpc3QgdmEsIHhkY19ydW50aW1lX1N5c3RlbV9QYXJzZURhdGEgKnBhcnNlKQoreworICAgIENoYXIgICAgKmZtdCA9ICpwZm10OworICAgIEludCAgICAgcmVzOworICAgIENoYXIgICAgYzsKKyAgICBCb29sICAgIGZvdW5kID0gRkFMU0U7CisgICAgCisgICAgcmVzID0gMDsKKworICAgIGMgPSAqZm10Kys7CisgICAgKnBmbXQgPSAqcGZtdCArIDE7CisKKyAgICAKKyAgICBpZiAoYyA9PSAnJCcpIHsKKyAgICAgICAgYyA9ICpmbXQrKzsKKyAgICAgICAgKnBmbXQgPSAqcGZtdCArIDE7CisgICAgICAgIGlmIChjID09ICdMJykgeworICAgICAgICAgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwgKmxhYiA9IHBhcnNlLT5hRmxhZyA/IAorICAgICAgICAgICAgICAgICh4ZGNfcnVudGltZV9UeXBlc19MYWJlbCAqKWlhcmdUb1B0cih2YV9hcmcodmEsIElBcmcpKSA6CisgICAgICAgICAgICAgICAgKHhkY19ydW50aW1lX1R5cGVzX0xhYmVsICopdmFfYXJnKHZhLCB2b2lkICopOworICAgICAgICAgICAgcmVzICs9IHhkY19ydW50aW1lX1RleHRfcHV0TGFiKGxhYiwgcGJ1ZiwgcGFyc2UtPnByZWNpcyk7CisgICAgICAgICAgICBwYXJzZS0+bGVuID0gMDsKKyAgICAgICAgICAgIGZvdW5kID0gVFJVRTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgaWYgKGZvdW5kID09IEZBTFNFKSB7CisgICAgICAgICAvKiBvdGhlciBjaGFyYWN0ZXIgKGxpa2UgJSkgY29weSB0byBvdXRwdXQgKi8KKyAgICAgICAgICoocGFyc2UtPnB0cikgPSBjOworICAgICAgICAgcGFyc2UtPmxlbiA9IDE7CisgICAgfQorCisgICAgcmV0dXJuIChyZXMpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBURU1QTEFURSA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworZXh0ZXJuIGludCBIT1NUd3JpdGUoaW50LCBjaGFyICosIHVuc2lnbmVkKTsKKyNlbHNlCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisvKgorICogID09PT09PT09IFN5c01pbl9vdXRwdXRfX0kgPT09PT09PT0KKyAqICBIT1NUV3JpdGUgb25seSB3cml0ZXMgYSBtYXggb2YgTiBjaGFycyBhdCBhIHRpbWUuIFRoZSBhbW91bnQgaXQgd3JpdGVzCisgKiAgaXMgcmV0dXJuZWQuIFRoaXMgZnVuY3Rpb24gbG9vcHMgdW50aWwgdGhlIGVudGlyZSBidWZmZXIgaXMgd3JpdHRlbi4KKyAqICBCZWluZyBhIHN0YXRpYyBmdW5jdGlvbiBhbGxvd3MgaXQgdG8gY29uZGl0aW9uYWxseSBjb21waWxlIG91dC4KKyAqLworVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JKENoYXIgKmJ1ZiwgVUludCBzaXplKQoreworI2lmZGVmIF9fdGlfXworICAgIEludCBwcmludENvdW50OworICAgIAorICAgIHdoaWxlIChzaXplICE9IDApIHsKKyAgICAgICAgcHJpbnRDb3VudCA9IEhPU1R3cml0ZSgxLCBidWYsIHNpemUpOworICAgICAgICBpZiAoKHByaW50Q291bnQgPD0gMCkgfHwgKHByaW50Q291bnQgPiBzaXplKSkgeworICAgICAgICAgICAgYnJlYWs7ICAvKiBlbnN1cmUgd2UgbmV2ZXIgZ2V0IHN0dWNrIGluIGFuIGluZmluaXRlIGxvb3AgKi8KKyAgICAgICAgfQorICAgICAgICBzaXplIC09IHByaW50Q291bnQ7CisgICAgICAgIGJ1ZiA9IGJ1ZiArIHByaW50Q291bnQ7CisgICAgfSAgICAKKyNlbHNlCisgICAgZndyaXRlKGJ1ZiwgMSwgc2l6ZSwgc3Rkb3V0KTsKKyNlbmRpZgorfQorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBURU1QTEFURSA9PT09PT09PQorICovCisKKworLyoKKyAqICA9PT09PT09PSB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSA9PT09PT09PQorICogIFRoaXMgZnVuY3Rpb24gaXMgaW5kaXJlY3RseSBjYWxsZWQgd2l0aGluIFRleHQuYyB0aHJvdWdoCisgKiAgdGhlIHZpc2l0Um9wZUZ4biBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBvZiB4ZGMucnVudGltZS5UZXh0LgorICovCitWb2lkIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JKHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUsCisgICAgeGRjX0Z4biB2aXNGeG4sIHhkY19QdHIgdmlzU3RhdGUpCit7CisgICAgeGRjX1N0cmluZyBzdGFja1s0XTsKKyAgICB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kocm9wZSwgdmlzRnhuLCB2aXNTdGF0ZSwgc3RhY2spOworfQorCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfXyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlX18gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgIDAsICAvKiBiZWdpbk1zZyAqLworICAgICh4ZGNfSW50KTB4MCwgIC8qIGJlZ2luQ2xvY2sgKi8KKyAgICAoeGRjX0ludCkweDAsICAvKiBvdmVyaGVhZCAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFzayBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmogYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAxNDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjggYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50IGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXAgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZiBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIGVuYWJsZUZsYWdfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZyBhY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoX1BDbG9jayBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFzayBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtcyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDEzOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmogYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDAyOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBFX2Fzc2VydEZhaWxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkIHhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTMwOSkgPDwgMTYgfCAwKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDAzOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogQV9pbml0aWFsaXplZFBhcmFtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zIHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkxKSA8PCAxNiB8IDE2KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA1OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIHNldE1hc2tFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQyA9IDA7CisKKy8qIGRpY3RCYXNlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSB4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlKTApOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKHhkY19VSW50MTYpMHgwLCAgLyogY291bnQgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA2OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEVfZ2VuZXJpY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljIHhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTMzMSkgPDwgMTYgfCAwKTsKKworLyogRV9tZW1vcnlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5IHhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzQ5KSA8PCAxNiB8IDApOworCisvKiBwb2xpY3lfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeSB4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MgPSB4ZGNfcnVudGltZV9FcnJvcl9VTldJTkQ7CisKKy8qIHJhaXNlSG9va19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9vaykoKHhkY19GeG4peGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UpKTsKKworLyogbWF4RGVwdGhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX21heERlcHRoIHhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DID0gKHhkY19VSW50MTYpMHgxMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA3OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0M7CisKKy8qIE9iamVjdF9fUEFSQU1TX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyA9IHsKKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgIDAsIC8qIF9fc2VsZiAqLworICAgIDAsIC8qIF9fZnhucyAqLworICAgICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MuX19pcHJtcywgLyogaW5zdGFuY2UgKi8KKyAgICB7CisgICAgICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgICAgICAwLCAgLyogbmFtZSAqLworICAgIH0sICAvKiBpbnN0YW5jZSAqLworfTsKKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YgPSB7eworICAgIHsmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAgLyogbGluay5uZXh0ICovCisgICAgJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGlua30sICAvKiBsaW5rLnByZXYgKi8KKyAgICAoVUNoYXIqKTAsICAvKiBpbnN0QXJyQmVnICovCisgICAgKFVDaGFyKikoMCstMSksICAvKiBpbnN0QXJyRW5kICovCisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyksICAvKiBpbnN0U2l6ZSAqLworICAgIDAsICAvKiBjdXIgKi8KKyAgICAwLCAgLyogZGlhZ3NNYXNrICovCit9fTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDg7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DID0gc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKTsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DOworCisvKiBPYmplY3RfX1BBUkFNU19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DID0geworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAwLCAvKiBfX3NlbGYgKi8KKyAgICAwLCAvKiBfX2Z4bnMgKi8KKyAgICAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyopJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MuX19pcHJtcywgLyogaW5zdGFuY2UgKi8KKyAgICAoKHhkY19VQXJnKSgodm9pZCopMHgwKSksICAvKiBzaXplICovCisgICAgeworICAgICAgICBzaXplb2YgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAgICAgMCwgIC8qIG5hbWUgKi8KKyAgICB9LCAgLyogaW5zdGFuY2UgKi8KK307CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fViA9IHt7CisgICAgeyZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgIC8qIGxpbmsubmV4dCAqLworICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGlua30sICAvKiBsaW5rLnByZXYgKi8KKyAgICAoVUNoYXIqKXhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fViwgIC8qIGluc3RBcnJCZWcgKi8KKyAgICAoVUNoYXIqKSh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1YrMCksICAvKiBpbnN0QXJyRW5kICovCisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKSwgIC8qIGluc3RTaXplICovCisgICAgMCwgIC8qIGN1ciAqLworICAgIDAsICAvKiBkaWFnc01hc2sgKi8KK319OworCisvKiBPYmplY3RfX3RhYmxlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVlsxXSA9IHsKKyAgICB7LyogaW5zdGFuY2UjMCAqLworICAgICAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MsCisgICAgICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDEwMDApKSwgIC8qIHJlbWFpblNpemUgKi8KKyAgICAgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MTAwMCkpLCAgLyogc3RhcnRTaXplICovCisgICAgfSwKK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDApKSwgIC8qIHJlbWFpblJUU1NpemUgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGM7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MgPSAxOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQyA9IHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKTsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQyA9IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVjsKKworLyogRV9ub1JUU01lbW9yeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5IHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTQyMSkgPDwgMTYgfCAwKTsKKworLyogQV96ZXJvU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCk5NSkgPDwgMTYgfCAxNik7CisKKy8qIEFfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMTQwKSA8PCAxNiB8IDE2KTsKKworLyogQV9pbnZhbGlkQWxpZ25tZW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudCB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkyMDEpIDw8IDE2IHwgMTYpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwOTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogTF9jb25zdHJ1Y3RfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNDY4KSA8PCAxNiB8IDQpOworCisvKiBMX2NyZWF0ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlIHhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk0OTIpIDw8IDE2IHwgNCk7CisKKy8qIExfZGVzdHJ1Y3RfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTUxMykgPDwgMTYgfCA0KTsKKworLyogTF9kZWxldGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2RlbGV0ZSB4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNTMyKSA8PCAxNiB8IDQpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGE7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKHhkY19TaXplVCkweDQsICAvKiBtYXhEZWZhdWx0VHlwZUFsaWduICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGI7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIGRlZmF1bHRIZWFwSW5zdGFuY2VfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlIHhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DID0gKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSkmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzBdOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfSW50KikwKSwgIC8qIHN0YXRlVGFiICovCisgICAgMCwgIC8qIGV4ZWNGbGFnICovCisgICAgMCwgIC8qIHJ0c0RvbmVGbGFnICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FbM10gPSB7CisgICAgKCh4ZGNfSW50KCopKHhkY19JbnQpKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UpKSwgIC8qIFswXSAqLworICAgICgoeGRjX0ludCgqKSh4ZGNfSW50KSkoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FKSksICAvKiBbMV0gKi8KKyAgICAoKHhkY19JbnQoKikoeGRjX0ludCkpKCh4ZGNfRnhuKWFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UpKSwgIC8qIFsyXSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BWzNdID0geworICAgIDEsICAvKiBbMF0gKi8KKyAgICAxLCAgLyogWzFdICovCisgICAgMCwgIC8qIFsyXSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIG1heFBhc3Nlc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MgPSAoeGRjX0ludCkweDIwOworCisvKiBmaXJzdEZ4bnNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DID0gezAsIDB9OworCisvKiBsYXN0Rnhuc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DID0gezAsIDB9OworCisvKiBzdGFydE1vZHNGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG4pKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JKSk7CisKKy8qIGV4ZWNJbXBsX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0kpKTsKKworLyogc2Z4blRhYl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYil4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EpOworCisvKiBzZnhuUnRzX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzKXhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fb3V0YnVmIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0FbMTAyNF07CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BLCAgLyogb3V0YnVmICovCisgICAgKHhkY19VSW50KTB4MCwgIC8qIG91dGlkeCAqLworICAgIDAsICAvKiB3cmFwcGVkICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGY7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIGJ1ZlNpemVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9idWZTaXplIHhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DID0gKHhkY19TaXplVCkweDQwMDsKKworLyogZmx1c2hBdEV4aXRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MgPSAxOworCisvKiBvdXRwdXRGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG4geGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG4pMCk7CisKKy8qIG91dHB1dEZ1bmNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmMpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0kpKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfX2F0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQVs4XSA9IHsKKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzBdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFsxXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbMl0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzNdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs0XSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbNV0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzZdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs3XSAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXRlX19WID0geworICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQSwgIC8qIGF0ZXhpdEhhbmRsZXJzICovCisgICAgKHhkY19JbnQpMHgwLCAgLyogbnVtQXRleGl0SGFuZGxlcnMgKi8KKyAgICAoeGRjX0ludCkweGNhZmUsICAvKiBleGl0U3RhdHVzICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGU7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEFfY2Fubm90Rml0SW50b0FyZ19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZyB4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTI2MSkgPDwgMTYgfCAxNik7CisKKy8qIG1heEF0ZXhpdEhhbmRsZXJzX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DID0gKHhkY19JbnQpMHg4OworCisvKiBleHRlbmRGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4geGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4pKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kpKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1RleHRfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICgoeGRjX1B0cikoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FbMF0pKSwgIC8qIGNoYXJCYXNlICovCisgICAgKCh4ZGNfUHRyKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVswXSkpLCAgLyogbm9kZUJhc2UgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiIHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVs2OTddID0geworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFsxXSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzJdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzVdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzhdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MCwgIC8qIFsxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFsxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFsyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFsyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFszMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFszMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFszNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MCwgIC8qIFszNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQ5XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzUwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzUyXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzUzXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzU0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzU1XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzU2XSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzU3XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzU4XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYxXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzY0XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzY1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzY2XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY3XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY4XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzY5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzcwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzcxXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzcyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzczXSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzc0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzc1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzc2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzc3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzc4XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzc5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzgwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzgxXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzgyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzgzXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzg0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzg1XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzg2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzg3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzg4XSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzg5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzkwXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzkxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzkyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzkzXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbOTRdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbOTVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbOTZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOTddICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbOThdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbOTldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTAwXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzEwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsxMDJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMTAzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzEwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMDVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTA2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzEwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMDhdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTA5XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzExMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMTFdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTEyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzExM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxMTRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTE1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzExNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFsxMTddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTE4XSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzExOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMjBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTIxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzEyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMjNdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTI0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxMjZdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMTI3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxMjldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTMwXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzEzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMzJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTMzXSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzEzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMzVdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMTM2XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzEzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMzhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFsxMzldICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbMTQwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNDJdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbMTQzXSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzE0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNDVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMTQ2XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxNDhdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTQ5XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNTFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTUyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsxNTRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTU1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNTddICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMTU4XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNjBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMTYxXSAqLworICAgICh4ZGNfQ2hhcikweDQ2LCAgLyogWzE2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxNjNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTY0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFsxNjZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTY3XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzE2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNjldICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTcwXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxNzJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTczXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzE3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxNzVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTc2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTc5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxODFdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTgyXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzE4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxODRdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTg1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxODddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTg4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxOTBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTkxXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxOTNdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMTk0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxOTZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTk3XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzE5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxOTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFsyMDBdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbMjAxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyMDNdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbMjA0XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzIwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyMDZdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMjA3XSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzIwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyMDldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjEwXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzIxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyMTJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMjEzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFsyMTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjE2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzIxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMThdICovCisgICAgKHhkY19DaGFyKTB4NzEsICAvKiBbMjE5XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzIyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMjFdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjIyXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzIyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMjRdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMjI1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyMjddICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjI4XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzIyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsyMzBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjMxXSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzIzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMzNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjM0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzIzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMzZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjM3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzIzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMzldICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMjQwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzI0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyNDJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjQzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyNDVdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjQ2XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNDhdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMjQ5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNTFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjUyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyNTRdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjU1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NywgIC8qIFsyNTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjU4XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzI1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzI2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFsyNjFdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMjYyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzI2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNjRdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjY1XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyNjddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjY4XSAqLworICAgICh4ZGNfQ2hhcikweDQ2LCAgLyogWzI2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyNzBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjcxXSAqLworICAgICh4ZGNfQ2hhcikweDQ5LCAgLyogWzI3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNzNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjc0XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFsyNzZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjc3XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzI3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFsyNzldICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjgwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzI4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyODJdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMjgzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyODVdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMjg2XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzI4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg0NiwgIC8qIFsyODhdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjg5XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyOTFdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjkyXSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzI5M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyOTRdICovCisgICAgKHhkY19DaGFyKTB4M2UsICAvKiBbMjk1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyOTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjk4XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzI5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMDBdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzAxXSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzMwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFszMDNdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMzA0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFszMDZdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbMzA3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzA4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzMwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMTBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzExXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMTNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMzE0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszMTZdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzE3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzMxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszMTldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzIwXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFszMjJdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMzIzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMjVdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzI2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszMjhdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzI5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzMwXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzMzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMzJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzMzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMzVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzM2XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzMzN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszMzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzM5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNDFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzQyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFszNDRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzQ1XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzM0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszNDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszNDhdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzQ5XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzM1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFszNTFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzUyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszNTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzU1XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzM1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszNTddICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMzU4XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNjBdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbMzYxXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzM2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNjNdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMzY0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszNjZdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbMzY3XSAqLworICAgICh4ZGNfQ2hhcikweDNkLCAgLyogWzM2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzMCwgIC8qIFszNjldICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbMzcwXSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzM3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFszNzJdICovCisgICAgKHhkY19DaGFyKTB4MmMsICAvKiBbMzczXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszNzVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzc2XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzM3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszNzhdICovCisgICAgKHhkY19DaGFyKTB4M2QsICAvKiBbMzc5XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzM4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFszODFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszODJdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzgzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszODVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzg2XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzM4N10gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFszODhdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzg5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszOTFdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMzkyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFszOTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzk1XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzM5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszOTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzk4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzM5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MDBdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNDAxXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0MDNdICovCisgICAgKHhkY19DaGFyKTB4NzcsICAvKiBbNDA0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0MDZdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDA3XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0MDldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNDEwXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzQxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MTJdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbNDEzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0MTVdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDE2XSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzQxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs0MThdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDE5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDIwXSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzQyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0MjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDIzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MiwgIC8qIFs0MjVdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNDI2XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzQyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MjhdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDI5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0MzFdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDMyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs0MzRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDM1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0MzddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDM4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs0NDBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDQxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQ0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0NDNdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNDQ0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NSwgIC8qIFs0NDZdICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNDQ3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs0NDldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNDUwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQ1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0NTJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDUzXSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzQ1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NTVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDU2XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzQ1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NThdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDU5XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQ2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs0NjFdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDYyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQ2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0NjRdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDY1XSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzQ2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQ2N10gKi8KKyAgICAoeGRjX0NoYXIpMHgzYywgIC8qIFs0NjhdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDY5XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NzFdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDcyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQ3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0NzRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDc1XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NzddICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDc4XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0ODBdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNDgxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs0ODNdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDg0XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzQ4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs0ODZdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNDg3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQ4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs0ODldICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNDkwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDkxXSAqLworICAgICh4ZGNfQ2hhcikweDNjLCAgLyogWzQ5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0OTNdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDk0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0OTZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDk3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQ5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0OTldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTAwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs1MDJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTAzXSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzUwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1MDVdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNTA2XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzUwN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1MDhdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTA5XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzUxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs1MTFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1MTJdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTEzXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZSwgIC8qIFs1MTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTE2XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzUxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MThdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTE5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzUyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1MjFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNTIyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzUyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1MjRdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNTI1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1MjddICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTI4XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzUyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs1MzBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1MzFdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTMyXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUzM10gKi8KKyAgICAoeGRjX0NoYXIpMHgzZSwgIC8qIFs1MzRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTM1XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzUzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MzddICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNTM4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1NDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTQxXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzU0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1NDNdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNTQ0XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzU0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1NDZdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNTQ3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTQ4XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzU0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs1NTBdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNTUxXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzU1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1NTRdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNTU1XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzU1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1NTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNTU4XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzU1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NjBdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNTYxXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTYyXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzU2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1NjRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTY1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1NjddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTY4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTY5XSAqLworICAgICh4ZGNfQ2hhcikweDQzLCAgLyogWzU3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs1NzFdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTcyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU3M10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NCwgIC8qIFs1NzVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTc2XSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzU3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1NzhdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNTc5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzU4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1ODFdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTgyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTgzXSAqLworICAgICh4ZGNfQ2hhcikweDQ0LCAgLyogWzU4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1ODVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTg2XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzU4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1ODhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1ODldICovCisgICAgKHhkY19DaGFyKTB4NDUsICAvKiBbNTkwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OTJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNTkzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NywgIC8qIFs1OTZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTk3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1OTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MDBdICovCisgICAgKHhkY19DaGFyKTB4NDcsICAvKiBbNjAxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MDNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjA0XSAqLworICAgICh4ZGNfQ2hhcikweDRlLCAgLyogWzYwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs2MDZdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjA3XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzYwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0YywgIC8qIFs2MTBdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjExXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzYxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs2MTRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjE1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzYxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2MTddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MThdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNjE5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs2MjFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjIyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzYyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2MjRdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MjVdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbNjI2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYyN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MjhdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNjI5XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzYzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MzFdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNjMyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjMzXSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzYzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MzVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjM2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzYzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MzhdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNjM5XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzY0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2NDJdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNjQzXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzY0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2NDVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjQ2XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzY0N10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2NDldICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNjUwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzY1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs2NTJdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNjUzXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1NCwgIC8qIFs2NTZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjU3XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzY1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2NTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NjBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjYxXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzY2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs2NjNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjY0XSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzY2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs2NjddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjY4XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzY2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2NzBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjcxXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzY3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2NzRdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjc1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzY3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2NzddICovCisgICAgKHhkY19DaGFyKTB4NmIsICAvKiBbNjc4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzY3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs2ODBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2ODFdICovCisgICAgKHhkY19DaGFyKTB4NDMsICAvKiBbNjgyXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzY4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2ODRdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjg1XSAqLworICAgICh4ZGNfQ2hhcikweDZiLCAgLyogWzY4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2ODddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjg4XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzY4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MiwgIC8qIFs2OTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjkyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2OTRdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNjk1XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjk2XSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X25vZGVUYWIgeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BWzIxXSA9IHsKKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4MCwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgwLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzBdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDIyNSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMmEsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMzMsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyM2EsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbM10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyM2YsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNDgsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNGUsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNTQsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbN10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNTksICAvKiByaWdodCAqLworICAgIH0sICAvKiBbOF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNjIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbOV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNjYsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTBdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjZiLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzExXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI3MiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxMl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyN2EsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTNdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjgyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE0XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI4OSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxNV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyOTAsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTZdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDI5NSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyOWIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTddICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMTEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MmEyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE4XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDEyLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDJhYSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxOV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAxMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyYjMsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMjBdICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDEwOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogbmFtZVVua25vd25fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVVua25vd24geGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQyA9ICJ7dW5rbm93bi1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIG5hbWVFbXB0eV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHkgeGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MgPSAie2VtcHR5LWluc3RhbmNlLW5hbWV9IjsKKworLyogbmFtZVN0YXRpY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljIHhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyA9ICJ7c3RhdGljLWluc3RhbmNlLW5hbWV9IjsKKworLyogaXNMb2FkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfaXNMb2FkZWQgeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQyA9IDE7CisKKy8qIGNoYXJUYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIpeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BKTsKKworLyogbm9kZVRhYl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYil4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EpOworCisvKiBjaGFyQ250X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJDbnQgeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DID0gKHhkY19JbnQxNikweDJiOTsKKworLyogbm9kZUNudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250IHhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQyA9ICh4ZGNfSW50MTYpMHgxNTsKKworLyogdmlzaXRSb3BlRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4biB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSkpOworCisvKiB2aXNpdFJvcGVGeG4yX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjIgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kpKTsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGJlZ2luX19FICovCit4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19FKCB4ZGNfU3RyaW5nIG1zZyApIAoreworICAgIGFjbWVfdXRpbHNfQmVuY2hfYmVnaW5fX0YobXNnKTsKK30KKworLyogZW5kX19FICovCit4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2VuZF9fRSggdm9pZCApIAoreworICAgIGFjbWVfdXRpbHNfQmVuY2hfZW5kX19GKCk7Cit9CisKKy8qIE1vZHVsZV9zdGFydHVwICovCit4ZGNfSW50IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UoIHhkY19JbnQgc3RhdGUgKQoreworICAgIHJldHVybiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19GKHN0YXRlKTsKK30KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBnZXRUaW1lX19FICovCithY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRigpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIHNldE1hc2tfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0UoIHhkY19TdHJpbmcgY29udHJvbCApIAoreworICAgIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0YoY29udHJvbCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogY2hlY2tfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX2NoZWNrX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0YoZWIpOworfQorCisvKiBnZXREYXRhX19FICovCit4ZGNfcnVudGltZV9FcnJvcl9EYXRhKiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRihlYik7Cit9CisKKy8qIGdldENvZGVfX0UgKi8KK3hkY19VSW50MTYgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0YoZWIpOworfQorCisvKiBnZXRJZF9fRSAqLworeGRjX3J1bnRpbWVfRXJyb3JfSWQgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRihlYik7Cit9CisKKy8qIGdldE1zZ19fRSAqLworeGRjX1N0cmluZyB4ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0YoZWIpOworfQorCisvKiBnZXRTaXRlX19FICovCit4ZGNfcnVudGltZV9UeXBlc19TaXRlKiB4ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRihlYik7Cit9CisKKy8qIGluaXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX2luaXRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHhkY19ydW50aW1lX0Vycm9yX2luaXRfX0YoZWIpOworfQorCisvKiBwcmludF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHhkY19ydW50aW1lX0Vycm9yX3ByaW50X19GKGViKTsKK30KKworLyogcmFpc2VYX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiwgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbW9kLCB4ZGNfU3RyaW5nIGZpbGUsIHhkY19JbnQgbGluZSwgeGRjX3J1bnRpbWVfRXJyb3JfSWQgaWQsIHhkY19JQXJnIGFyZzEsIHhkY19JQXJnIGFyZzIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0YoZWIsIG1vZCwgZmlsZSwgbGluZSwgaWQsIGFyZzEsIGFyZzIpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZW50ZXJTeXN0ZW1fX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRigpOworfQorCisvKiBsZWF2ZVN5c3RlbV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRSggeGRjX0lBcmcga2V5ICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRihrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19GKHF1YWwpOworfQorCisvKiBlbnRlcl9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSBfX2luc3QgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0YoKHZvaWQqKV9faW5zdCk7Cit9CisKKy8qIGxlYXZlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlIF9faW5zdCwgeGRjX0lBcmcga2V5ICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YoKHZvaWQqKV9faW5zdCwga2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0LCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIAoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRigodm9pZCopX19pbnN0LCBibG9jaywgc2l6ZSk7Cit9CisKKy8qIGdldFN0YXRzX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19GKCh2b2lkKilfX2luc3QsIHN0YXRzKTsKK30KKworLyogYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0LCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRigodm9pZCopX19pbnN0LCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBpc0Jsb2NraW5nX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0YoKHZvaWQqKV9faW5zdCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGRvUHJpbnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19kb1ByaW50X19FKCB4ZGNfcnVudGltZV9Mb2dfRXZlbnRSZWMqIGV2UmVjICkgCit7CisgICAgeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0YoZXZSZWMpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GKGhlYXAsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGNhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0YoaGVhcCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogZnJlZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIAoreworICAgIHhkY19ydW50aW1lX01lbW9yeV9mcmVlX19GKGhlYXAsIGJsb2NrLCBzaXplKTsKK30KKworLyogZ2V0U3RhdHNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0YoaGVhcCwgc3RhdHMpOworfQorCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX0ludCBxdWFsICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRihoZWFwLCBxdWFsKTsKK30KKworLyogZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSAqLworeGRjX1NpemVUIHhkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GKCk7Cit9CisKKy8qIHZhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX0NoYXIgdmFsdWUsIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GKGhlYXAsIHNpemUsIGFsaWduLCB2YWx1ZSwgZWIpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZXhlY19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GKCk7Cit9CisKKy8qIHJ0c0RvbmVfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0YoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYWJvcnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0Yoc3RyKTsKK30KKworLyogZXhpdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19GKHN0YXQpOworfQorCisvKiBmbHVzaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GKCk7Cit9CisKKy8qIHB1dGNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GKGNoKTsKK30KKworLyogcmVhZHlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0YoKTsKK30KKworLyogTW9kdWxlX3N0YXJ0dXAgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FKCB4ZGNfSW50IHN0YXRlICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19GKHN0YXRlKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYWJvcnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0Yoc3RyKTsKK30KKworLyogYXRleGl0X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fQXRleGl0SGFuZGxlciBoYW5kbGVyICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0YoaGFuZGxlcik7Cit9CisKKy8qIGV4aXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRihzdGF0KTsKK30KKworLyogcHV0Y2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0YoY2gpOworfQorCisvKiBmbHVzaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19GKCk7Cit9CisKKy8qIHByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19FKCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKK30KKworLyogcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRihmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogYXByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRSggeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRihmbXQsIF9fdmEpOworfQorCisvKiBhcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiBzcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7Cit9CisKKy8qIHNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIGFzcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKK30KKworLyogYXNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogdnByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0YoZm10LCB2YSk7Cit9CisKKy8qIGF2cHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19GKGZtdCwgdmEpOworfQorCisvKiB2c3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0YoYnVmLCBmbXQsIHZhKTsKK30KKworLyogYXZzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19GKGJ1ZiwgZm10LCB2YSk7Cit9CisKKy8qIE1vZHVsZV9zdGFydHVwICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSggeGRjX0ludCBzdGF0ZSApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRihzdGF0ZSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBjb3JkVGV4dF9fRSAqLworeGRjX1N0cmluZyB4ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19FKCB4ZGNfcnVudGltZV9UZXh0X0NvcmRBZGRyIGNvcmQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRihjb3JkKTsKK30KKworLyogcm9wZVRleHRfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19GKHJvcGUpOworfQorCisvKiBtYXRjaFJvcGVfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUsIHhkY19TdHJpbmcgcGF0LCB4ZGNfSW50KiBsZW5wICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19GKHJvcGUsIHBhdCwgbGVucCk7Cit9CisKKy8qIHB1dExhYl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRihsYWIsIGJ1ZnAsIGxlbik7Cit9CisKKy8qIHB1dE1vZF9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbWlkLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19GKG1pZCwgYnVmcCwgbGVuKTsKK30KKworLyogcHV0U2l0ZV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0UoIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHNpdGUsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GKHNpdGUsIGJ1ZnAsIGxlbik7Cit9CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2hfUENsb2NrIFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIGdldFRpbWVfX0UgKi8KK2FjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfZ2V0VGltZV9fRSggdm9pZCApCit7CisgICAgcmV0dXJuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWUoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuR2F0ZU51bGwgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKG9hLCBvc3osIGFhLCAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX1BhcmFtcyksIGViKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgY29uc3QgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyhkc3QsIHNyYywgcHN6LCBpc3opOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZV9fbGFiZWxfX1MoIFB0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKG9iaiwgbGFiKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnkocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UoIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0ICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXIoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlX19FKCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX0lBcmcga2V5ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZSgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCwga2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkhlYXBTdGQgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JSGVhcF9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19kZWxldGVfX1MoIFB0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MoaW5zdHApOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoZHN0LCBzcmMsIHBzeiwgaXN6KTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlX19sYWJlbF9fUyggUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfYWxsb2NfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSUhlYXBfYWxsb2MoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfZnJlZV9fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApCit7CisgICAgeGRjX3J1bnRpbWVfSUhlYXBfZnJlZSgoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgYmxvY2ssIHNpemUpOworfQorCisvKiBpc0Jsb2NraW5nX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0lIZWFwX2lzQmxvY2tpbmcoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkKK3sKKyAgICB4ZGNfcnVudGltZV9JSGVhcF9nZXRTdGF0cygoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgc3RhdHMpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkdhdGVOdWxsICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyKXBhLCBzaXplb2YoeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKGRzdCwgc3JjLCBwc3osIGlzeik7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGVfX2xhYmVsX19TKCBQdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnkocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9lbnRlcl9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0KTsKK30KKworLyogbGVhdmVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlX19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfSUFyZyBrZXkgKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0LCBrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuU3lzTWluICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBhYm9ydF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydChzdHIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2V4aXRfX0UoIHhkY19JbnQgc3RhdCApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXQoc3RhdCk7Cit9CisKKy8qIGZsdXNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2ZsdXNoX19FKCB2b2lkICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2goKTsKK30KKworLyogcHV0Y2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2goY2gpOworfQorCisvKiByZWFkeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9yZWFkeV9fRSggdm9pZCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeSgpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBPQkpFQ1QgREVTQ1JJUFRPUiA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLwordHlwZWRlZiBzdHJ1Y3QgeyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18gczA7IGNoYXIgYzsgfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1MxOworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DID0geworICAgIChQdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQywgLyogZnhuVGFiICovCisgICAgJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgLyogbW9kTGluayAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1MxKSAtIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18pLCAvKiBvYmpBbGlnbiAqLworICAgIDAsIC8qIG9iakhlYXAgKi8KKyAgICAwLCAvKiBvYmpOYW1lICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXyksIC8qIG9ialNpemUgKi8KKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgLyogcHJtc0luaXQgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zKSwgLyogcHJtc1NpemUgKi8KK307CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBPQkpFQ1QgREVTQ1JJUFRPUiA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLwordHlwZWRlZiBzdHJ1Y3QgeyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyBzMDsgY2hhciBjOyB9IHhkY19ydW50aW1lX0hlYXBTdGRfX19TMTsKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DID0geworICAgIChQdHIpJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLCAvKiBmeG5UYWIgKi8KKyAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssIC8qIG1vZExpbmsgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1MxKSAtIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyksIC8qIG9iakFsaWduICovCisgICAgMCwgLyogb2JqSGVhcCAqLworICAgIDAsIC8qIG9iak5hbWUgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX18pLCAvKiBvYmpTaXplICovCisgICAgKFB0cikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgLyogcHJtc0luaXQgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMpLCAvKiBwcm1zU2l6ZSAqLworfTsKKworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKCk7Cit9CisKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaF9QQ2xvY2sgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIAoreworICAgIGxhYi0+aGFuZGxlID0gb2JqOworICAgIGxhYi0+bW9kSWQgPSAzMjc3NjsKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsKGxhYiwgMCwgMCk7CisKKyAgICByZXR1cm4gbGFiOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBwcm1zLCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JKHBybXMsICh4ZGNfUHRyKShzcmMgPyBzcmMgOiAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MpLCBwc3osIGlzeik7Cit9CisKKy8qIE9iamVjdF9fZ2V0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hLCB4ZGNfSW50IGkgKSAKK3sKKyAgICBpZiAob2EpIHsKKyAgICAgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18qKW9hKSArIGk7CisgICAgfQorCisgICAgaWYgKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MgPT0gMCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyopeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQykgKyBpOworfQorCisvKiBPYmplY3RfX2ZpcnN0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKil4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmsubmV4dDsKKworICAgIGlmIChpSGRyICE9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gaUhkciArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fbmV4dF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICgoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKW9iaikgLSAxOworCisgICAgaWYgKGlIZHItPmxpbmsubmV4dCAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfTGluayAqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopKGlIZHItPmxpbmsubmV4dCkgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyBwcm1zOworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCogb2JqOworCisgICAgLyogY29tbW9uIGluc3RhbmNlIGluaXRpYWxpemF0aW9uICovCisgICAgb2JqID0geGRjX3J1bnRpbWVfQ29yZV9jcmVhdGVPYmplY3RfX0koJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgb2EsIG9zeiwgJnBybXMsICh4ZGNfUHRyKXBhLCBwc3osIGViKTsKKyAgICBpZiAob2JqID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIG9iajsKK30KKworLyogT2JqZWN0X19kZXN0cnVjdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCBvYmosIE5VTEwsIC0xLCBUUlVFKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgKigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0KiopaW5zdHApLCBOVUxMLCAtMSwgRkFMU0UpOworICAgICooKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSopaW5zdHApID0gTlVMTDsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgCit7CisgICAgbGFiLT5oYW5kbGUgPSBvYmo7CisgICAgbGFiLT5tb2RJZCA9IDMyNzgwOworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduTGFiZWwobGFiLCAwLCAwKTsKKworICAgIHJldHVybiBsYWI7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgcHJtcywgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnblBhcmFtc19fSShwcm1zLCAoeGRjX1B0cikoc3JjID8gc3JjIDogJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MpLCBwc3osIGlzeik7Cit9CisKKy8qIE9iamVjdF9fZ2V0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2EsIHhkY19JbnQgaSApIAoreworICAgIGlmIChvYSkgeworICAgICAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKilvYSkgKyBpOworICAgIH0KKworICAgIGlmICh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MgPT0gMCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKil4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MpICsgaTsKK30KKworLyogT2JqZWN0X19maXJzdF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKil4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGluay5uZXh0OworCisgICAgaWYgKGlIZHIgIT0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuIGlIZHIgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX25leHRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICgoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKW9iaikgLSAxOworCisgICAgaWYgKGlIZHItPmxpbmsubmV4dCAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfTGluayAqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikoaUhkci0+bGluay5uZXh0KSArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zIHBybXM7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QqIG9iajsKKyAgICBpbnQgaVN0YXQ7CisKKyAgICAvKiBjb21tb24gaW5zdGFuY2UgaW5pdGlhbGl6YXRpb24gKi8KKyAgICBvYmogPSB4ZGNfcnVudGltZV9Db3JlX2NyZWF0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsIG9hLCBvc3osICZwcm1zLCAoeGRjX1B0cilwYSwgcHN6LCBlYik7CisgICAgaWYgKG9iaiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIC8qIG1vZHVsZS1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiAqLworICAgIGlTdGF0ID0geGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GKG9iaiwgJnBybXMsIGViKTsKKyAgICBpZiAoeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2soZWIpKSB7CisgICAgICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgb2JqLCBOVUxMLCBpU3RhdCwgKHhkY19Cb29sKShvYSAhPSBOVUxMKSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBvYmo7Cit9CisKKy8qIE9iamVjdF9fZGVzdHJ1Y3RfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsIG9iaiwgTlVMTCwgMCwgVFJVRSk7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCAqKCh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdCoqKWluc3RwKSwgTlVMTCwgMCwgRkFMU0UpOworICAgICooKHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlKilpbnN0cCkgPSBOVUxMOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDE7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKCk7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fRigpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2ggUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZV9fUyk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoYWNtZV91dGlsc19CZW5jaF9lbmRfX0UpOworI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9iaiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtcyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2YgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZSBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWcgYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogYWNtZV91dGlsc19CZW5jaF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19FKCB4ZGNfU3RyaW5nIG1zZyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX2VuZF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXMgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9iaiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjggYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9Bc3NlcnRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Fzc2VydF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Bc3NlcnRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXMgeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfQ29yZV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0NvcmVfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfRGVmYXVsdHNfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGVmYXVsdHNfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlIHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfRGlhZ3NfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3NfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGlhZ3NfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0UoIHhkY19TdHJpbmcgY29udHJvbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljIHhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5IHhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5IHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9vayB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aCB4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0Vycm9yX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX0Vycm9yX0RhdGEqIHhkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVUludDE2IHhkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9JZCB4ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TdHJpbmcgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX2luaXRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViLCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtb2QsIHhkY19TdHJpbmcgZmlsZSwgeGRjX0ludCBsaW5lLCB4ZGNfcnVudGltZV9FcnJvcl9JZCBpZCwgeGRjX0lBcmcgYXJnMSwgeGRjX0lBcmcgYXJnMiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9HYXRlX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JQXJnIHhkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRSggeGRjX0lBcmcga2V5ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUsIHhkY19JQXJnIGtleSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnkgeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudCB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlIHhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlIHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0xvZ19IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0xvZ19Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19kb1ByaW50X19FKCB4ZGNfcnVudGltZV9Mb2dfRXZlbnRSZWMqIGV2UmVjICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01haW5fSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01haW5fUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZSB4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01lbW9yeV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX0ludCBxdWFsICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TaXplVCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfQ2hhciB2YWx1ZSwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UpOworI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3NlcyB4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N0YXJ0dXBfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9idWZTaXplIHhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0IHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG4geGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3lzTWluX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UpOworI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnIHhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3lzdGVtX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fQXRleGl0SGFuZGxlciBoYW5kbGVyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVVua25vd24geGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5IHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljIHhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfaXNMb2FkZWQgeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25vZGVUYWIgeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250IHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZUNudCB4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4biB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMiB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9UZXh0X0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Db3JkQWRkciBjb3JkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLCB4ZGNfU3RyaW5nIHBhdCwgeGRjX0ludCogbGVucCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TGFiX19FKCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0UoIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1pZCwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRSggeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogc2l0ZSwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSBJTklUSUFMSVpBVElPTiBFTlRSWSBQT0lOVCA9PT09PT09PQorICovCisKK2V4dGVybiBpbnQgX194ZGNfX2luaXQodm9pZCk7CisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpCisjZW5kaWYKKyNlbmRpZgorX19GQVJfXyBpbnQgKCogdm9sYXRpbGUgX194ZGNfX2luaXRfX2FkZHIpKHZvaWQpID0gJl9feGRjX19pbml0OworCisKKy8qCisgKiA9PT09PT09PSBQUk9HUkFNIEdMT0JBTFMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSBDTElOSyBESVJFQ1RJVkVTID09PT09PT09CisgKi8KKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWI4ODNjNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuY2ZnCkBAIC0wLDAgKzEsNDkyIEBACisvKgorICogID09PT09PT09IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuY2ZnID09PT09PT09CisgKiAgVGhpcyBnZW5lcmF0ZWQgY29uZmlndXJhdGlvbiBzY3JpcHQgcnVucyB0aGUgdXNlcidzIGNvbmZpZ3VyYXRpb24gc2NyaXB0CisgKiAgdGhlIGNvbnRleHQgb2YgYSBzcGVjaWZpYyB0YXJnZXQgYW5kIHBsYXRmb3JtIGluIG9yZGVyIHRvIGdlbmVyYXRlCisgKiAgYWxsIHRoZSBmaWxlcyBuZWNlc3NhcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGU7IGUuZy4sIGxpbmtlciBjb21tYW5kCisgKiAgZmlsZXMsIHN0YXRpYyBDL0MrKyBkYXRhIHN0cnVjdHVyZXMsIGV0Yy4KKyAqLworCisvKgorICogID09PT09PT09IF9ydW5lc2NhcGUgPT09PT09PT0KKyAqICBSZWN1cnNpdmUgdW5lc2NhcGUgdG8gZGVjb2RlIHNlcmlhbGl6ZWQgc3RyaW5ncworICovCitmdW5jdGlvbiBfcnVuZXNjYXBlKG9iaikgeworICAgIGZvciAodmFyIGkgaW4gb2JqKSB7CisgICAgICAgIGlmIChvYmpbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpbaV0gPT0gJ3N0cmluZycpIHsKKyAgICAgICAgICAgICAgICBvYmpbaV0gPSB1bmVzY2FwZShvYmpbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9ialtpXSA9PSAnb2JqZWN0JykgeworICAgICAgICAgICAgICAgIF9ydW5lc2NhcGUob2JqW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqICA9PT09PT09PSBfZ2V0UGxhdENmZyA9PT09PT09PQorICovCitmdW5jdGlvbiBfZ2V0UGxhdENmZygpIHsKKyAgICB2YXIgdG1wID0ge307CisgICAgX3J1bmVzY2FwZSh0bXApOworICAgIHJldHVybiAodG1wKTsKK30KKy8qCisgKiAgPT09PT09PT0gX2NmZ2luaXQgPT09PT09PT0KKyAqLworZnVuY3Rpb24gX2NmZ2luaXQoKSB7CisgICAgeGRjLmxvYWRQYWNrYWdlKCd4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCcpOworICAgIHZhciBwcm9nID0geGRjLm9tWyd4ZGMuY2ZnLlByb2dyYW0nXTsKKworICAgIC8qIGluaXRpYWxpemUgcHJvZyBhdHRycyBmcm9tIGJ1aWxkIG1vZGVsICovCisgICAgdmFyIGJ1aWxkID0geworICAgICAgICByZWxlYXNlczogeworICAgICAgICAgICAgMDogeworICAgICAgICAgICAgICAgIG5hbWU6ICJjaGFybGllX3NxcnRsaWJfdGVzdCIsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICJkZWZhdWx0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb3RoZXJGaWxlczoge30KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgdGFyZ2V0OiB7CisgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3ciLAorICAgICAgICAgICAgbmFtZTogIk1pbmd3IiwKKyAgICAgICAgICAgIHN1ZmZpeDogIjg2R1ciLAorICAgICAgICAgICAgY29tcGF0aWJsZVN1ZmZpeGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2NvbXBhdGlibGVTdWZmaXhlcyIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgaXNhOiAieDg2IiwKKyAgICAgICAgICAgIG1vZGVsOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L21vZGVsIiwKKyAgICAgICAgICAgICAgICBlbmRpYW46ICJsaXR0bGUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgb3M6ICJXaW5kb3dzIiwKKyAgICAgICAgICAgIHJ0czogImdudS50YXJnZXRzLnJ0czg2R1ciLAorICAgICAgICAgICAgZGxsRXh0OiAiLnNvIiwKKyAgICAgICAgICAgIHBsYXRmb3JtOiAiaG9zdC5wbGF0Zm9ybXMuUEMiLAorICAgICAgICAgICAgcGxhdGZvcm1zOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgMDogImhvc3QucGxhdGZvcm1zLlBDIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHZlcnNpb246ICJnbnUudGFyZ2V0cy5NaW5ndyU3QjElMkMwJTJDMy40JTJDNSIsCisgICAgICAgICAgICBkZWJ1Z0dlbjogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9kZWJ1Z0dlbiIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZXh0ZW5zaW9uczogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zIiwKKyAgICAgICAgICAgICAgICAiLmFzbSI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5hc20nIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmFzbSIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuYyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYyIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY3BwIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmNwcCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jeHgiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3h4JyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jeHgiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLkMiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuQyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuQyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY2MiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY2MnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNjIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5zODZHVyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5zODZHVyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuczg2R1ciLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHZlcnNpb25NYXA6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvdmVyc2lvbk1hcCIsCisgICAgICAgICAgICAgICAgImdjYzMuMiI6ICIxJTJDMCUyQzMuMiUyQzAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYWxpZ25EaXJlY3RpdmVTdXBwb3J0ZWQ6IGZhbHNlLAorICAgICAgICAgICAgcm9vdERpcjogImUlM0EvcnRzYy9taW5ndyIsCisgICAgICAgICAgICBwcm9maWxlczogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcyIsCisgICAgICAgICAgICAgICAgZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZyciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZzOiAiLURfREVCVUdfJTNEMSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgbGlua09wdHM6ICItZyIsCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICByZWxlYXNlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncmVsZWFzZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1PMiIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgbGlua09wdHM6ICIiLAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBwcm9maWxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1nJTIwLXBnIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBsaW5rT3B0czogIi1wZyIsCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNvdmVyYWdlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWZwcm9maWxlLWFyY3MlMjAtZnRlc3QtY292ZXJhZ2UiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGxpbmtPcHRzOiAiIiwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgc2VjdE1hcDogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zZWN0TWFwIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzdGRJbmNsdWRlOiAiZ251L3RhcmdldHMvc3RkLmgiLAorICAgICAgICAgICAgc3RkVHlwZXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMiLAorICAgICAgICAgICAgICAgIHRfSUFyZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JQXJnIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfQ2hhcjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9DaGFyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMSwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRG91YmxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0RvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0Zsb2F0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Zsb2F0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRnhuOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Z4biIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ4OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDgiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQxNjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQxNiIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDMyOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDMyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50NDA6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50NDAiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ2NDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ2NCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xvbmc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xEb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTERvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDEyLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9MTG9uZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9MTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X1B0cjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9QdHIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9TaG9ydDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9TaG9ydCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGJpdHNQZXJDaGFyOiA4LAorICAgICAgICAgICAgR0NDVkVSUzogIjMuNC41IiwKKyAgICAgICAgICAgIEdDQ1RBUkc6ICJtaW5ndzMyIiwKKyAgICAgICAgICAgIExPTkdOQU1FOiAiL2Jpbi9taW5ndzMyLWdjYy5leGUiLAorICAgICAgICAgICAgQ1lHV0lOOiBmYWxzZSwKKyAgICAgICAgICAgIGFyOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2FyIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICIlMjQlMjhyb290RGlyJTI5LyUyNCUyOEdDQ1RBUkclMjkvYmluL2FyIiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiY3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXJPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2FyT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbG5rOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2xuayIsCisgICAgICAgICAgICAgICAgY21kOiAiJTI0JTI4cm9vdERpciUyOS8lMjQlMjhMT05HTkFNRSUyOSIsCisgICAgICAgICAgICAgICAgb3B0czogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBsbmtPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2xua09wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIiIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiLWxzdGRjKyslMjAtTCUyNCUyOHJvb3REaXIlMjkvbGliIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNjOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2NjIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICIlMjQlMjhyb290RGlyJTI5LyUyNCUyOExPTkdOQU1FJTI5JTIwLWMlMjAtTUQlMjAtTUYlMjAlMjRALmRlcCIsCisgICAgICAgICAgICAgICAgb3B0czogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjY09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvY2NPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICItV3VudXNlZCIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiLURmYXIlM0QlMjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXNtOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2FzbSIsCisgICAgICAgICAgICAgICAgY21kOiAiJTI0JTI4cm9vdERpciUyOS8lMjQlMjhMT05HTkFNRSUyOSUyMC1jJTIwLXglMjBhc3NlbWJsZXIiLAorICAgICAgICAgICAgICAgIG9wdHM6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXNtT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9hc21PcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICIiLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBpbmNsdWRlT3B0czogIiIsCisgICAgICAgICAgICBjbWRQcmVmaXg6ICIiCisgICAgICAgIH0sCisgICAgICAgIHRlc3Q6IHt9LAorICAgICAgICBjZmdBcmdzOiAiJTdCb3B0TW9kZSUzQSUyMCUyN1NQQUNFJTI3JTdEIiwKKyAgICAgICAgY2ZnU2NyaXB0OiAiaXNxcnRUZXN0MS5jZmciLAorICAgICAgICBwcm9maWxlOiAicmVsZWFzZSIKKyAgICB9OworICAgIGJ1aWxkLnRhcmdldC5maW5kU3VmZml4ID0gZnVuY3Rpb24gZmluZFN1ZmZpeChwa2cpIHsKKyAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRoZSBmdW5jdGlvbiBJVGFyZ2V0LmZpbmRTdWZmaXgoKSByZXF1aXJlcyBhbiAiICsgImFyZ3VtZW50Iik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHN1ZmZpeE1hcCA9IHt9OworICAgICAgICBpZiAoImJ1aWxkIiBpbiBwa2cpIHsKKyAgICAgICAgICAgIHZhciBidWlsZCA9IHBrZy5idWlsZDsKKyAgICAgICAgICAgIGlmIChidWlsZC5saWJyYXJpZXMubGVuZ3RoICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVpbGQubGliRGVzY1swXS5zdWZmaXggIT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGQubGliRGVzYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4TWFwW2J1aWxkLmxpYkRlc2NbaV0uc3VmZml4XSA9ICIiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWlsZC5saWJEZXNjLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVpbGQubGliRGVzY1tpXS50YXJnZXQgPT0gcHJvZy5idWlsZC50YXJnZXQuJG5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXhNYXBbcHJvZy5idWlsZC50YXJnZXQuc3VmZml4XSA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCJsZW5ndGgiIGluIHBrZykgeworICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGtnLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHN1ZmZpeE1hcFtwa2dbaV1dID0gIiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFuIGludmFsaWQgYXJndW1lbnQgdHlwZSBzdXBwbGllZCB0byAiICsgIklUYXJnZXQuZmluZFN1ZmZpeCgpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNvbXBUYXJncyA9IFtdOworICAgICAgICBmb3IgKHZhciBwcm9wIGluIHRoaXMuY29tcGF0aWJsZVN1ZmZpeGVzKSB7CisgICAgICAgICAgICBjb21wVGFyZ3NbcHJvcF0gPSB0aGlzLmNvbXBhdGlibGVTdWZmaXhlc1twcm9wXTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5zdWZmaXggaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICByZXR1cm4gKHRoaXMuc3VmZml4KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcFRhcmdzLmxlbmd0aCA8IDEpIHsKKyAgICAgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wVGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChjb21wVGFyZ3NbaV0gaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChjb21wVGFyZ3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgfTsKKworICAgIGJ1aWxkLnRhcmdldC5zZWxlY3RTdWZmaXggPSBmdW5jdGlvbiBzZWxlY3RTdWZmaXgobGlzdCkgeworICAgICAgICB2YXIgc3VmZml4TWFwID0ge307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgc3VmZml4TWFwW2xpc3RbaV1dID0gIiI7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNvbXBUYXJncyA9IFtdOworICAgICAgICBmb3IgKHZhciBwcm9wIGluIHRoaXMuY29tcGF0aWJsZVN1ZmZpeGVzKSB7CisgICAgICAgICAgICBjb21wVGFyZ3NbcHJvcF0gPSB0aGlzLmNvbXBhdGlibGVTdWZmaXhlc1twcm9wXTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5zdWZmaXggaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICByZXR1cm4gKHRoaXMuc3VmZml4KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcFRhcmdzLmxlbmd0aCA8IDEpIHsKKyAgICAgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wVGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChjb21wVGFyZ3NbaV0gaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChjb21wVGFyZ3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgfTsKKworICAgIF9ydW5lc2NhcGUoYnVpbGQpOworICAgIGJ1aWxkLmNmZ0FyZ3MgPSB7b3B0TW9kZTogJ1NQQUNFJ307CisgICAgcHJvZy5idWlsZCA9IGJ1aWxkOworICAgIAorICAgIHByb2cubmFtZSA9ICJpc3FydFRlc3QxLVNQQUNFLng4NkdXIjsKKworICAgIHByb2cuZW5kaWFuID0gcHJvZy5idWlsZC50YXJnZXQubW9kZWwuZW5kaWFuOworCisgICAgLyogdXNlIHRoZSBwbGF0Zm9ybSBwYWNrYWdlJ3MgUGxhdGZvcm0gbW9kdWxlICovCisgICAgdmFyIFBsYXRmb3JtID0geGRjLnVzZU1vZHVsZSgiaG9zdC5wbGF0Zm9ybXMuUEMuUGxhdGZvcm0iKTsKKyAgICB2YXIgcGxhdFBhcmFtcyA9IF9nZXRQbGF0Q2ZnKCk7CisgICAgZm9yICh2YXIgcHJvcCBpbiBwbGF0UGFyYW1zKSB7CisgICAgICAgIGlmICghKHByb3AgaW4gUGxhdGZvcm0uUEFSQU1TKSkgeworICAgICAgICAgICAgZGVsZXRlIHBsYXRQYXJhbXNbcHJvcF07CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvZy5wbGF0Zm9ybU5hbWUgPSAiaG9zdC5wbGF0Zm9ybXMuUEMiOworICAgIHByb2cucGxhdGZvcm0gPSBQbGF0Zm9ybS5jcmVhdGUoIiIsIF9nZXRQbGF0Q2ZnKCksIHBsYXRQYXJhbXMpOworICAgIC8qIHJlY29yZCB0aGUgZXhlY3V0YWJsZSdzIHBhY2thZ2UgbmFtZSAqLworICAgIHByb2cuYnVpbGRQYWNrYWdlID0gImNoYXJsaWUuc3FydGxpYi50ZXN0IjsKKworICAgIC8qIHJlY29yZCBidWlsZC1tb2RlbCBpbmZvcm1hdGlvbiByZXF1aXJlZCBkdXJpbmcgY29uZmlnIGdlbmVyYXRpb24gKi8KKyAgICBwcm9nLiQkYmluZCgiJCRpc2FzbSIsIDApOworICAgIHByb2cuJCRiaW5kKCIkJGlzcm9tIiwgMCk7CisgICAgcHJvZy4kJGJpbmQoIiQkZ2VudGFiIiwgWworICAgIF0pOworICAgIAorICAgIC8qIGJpbmQgcHJvZyB0byBhbiBhcHByb3ByaWF0ZSBleGVjdXRpb24gY29udGV4dCAqLworICAgIHByb2cuY3B1ID0gcHJvZy5wbGF0Zm9ybS5nZXRFeGVDb250ZXh0KHByb2cpOworCisgICAgLyogaW1wb3J0IHRoZSB0YXJnZXQncyBydW4tdGltZSBzdXBwb3J0IHBrZyAqLworICAgIHhkYy5sb2FkUGFja2FnZSgiZ251LnRhcmdldHMucnRzODZHVyIpOworfQorICAgIAorLyogZnVuY3Rpb24gdG8gaW1wb3J0IHRoZSBjZmcgc2NyaXB0J3MgcGFja2FnZSAqLworZnVuY3Rpb24gX3VzZXJzY3JpcHQoJCRsZWdhY3ksIHNjcmlwdCkgeworICAgIHZhciBob21lOworICAgIHZhciBzcGF0aDsKKyAgICAvKiBpbXBvcnQgdGhlIGV4ZWN1dGFibGUncyBwYWNrYWdlICovCisgICAgaG9tZSA9IHhkYy5sb2FkUGFja2FnZSgiY2hhcmxpZS5zcXJ0bGliLnRlc3QiKTsKKyAgICBzcGF0aCA9ICcuJzsKKyAgICAKKyAgICB4ZGMub20uJCRiaW5kKCckaG9tZXBrZycsIGhvbWUpOworCisgICAgaWYgKHNjcmlwdCAhPSBudWxsKSB7CisgICAgICAgIHV0aWxzLmV2YWx1YXRlU2NyaXB0KHNjcmlwdCk7CisgICAgfQorICAgIGVsc2UgeyAKKyAgICAgICAgLyogbG9hZCAmIHJ1biBwcm9ncmFtIGNmZyBzY3JpcHQgYW5kIG1vbml0b3IgYWxsIGxvYWRlZCBmaWxlcyAqLworICAgICAgICBfcnVuQ2ZnKCJpc3FydFRlc3QxLmNmZyIsIHNwYXRoLCAicGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVyIsICAKKyAgICAgICAgICAgICAgICAgZmFsc2UsIAorICAgICAgICAgICAgICAgICBmYWxzZSwKKyAgICAgICAgICAgICAgICAgX2dldFBsYXRDZmcoKSk7CisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCisKKyAgICAvKgorICAgICAqICA9PT09PT09PSBfcnVuQ2ZnID09PT09PT09CisgICAgICogIFJ1biBhIHVzZXIgc3VwcGxpZWQgY29uZmlndXJhdGlvbiBzY3JpcHQgYW5kIHByZXZlbnQgdXNlcidzIHNjcmlwdCBmcm9tCisgICAgICogIG92ZXJ3cml0aW5nIHRoZSBnbG9iYWwgdmFyaWFibGUgcHJvZy4KKyAgICAgKi8KKyAgICBmdW5jdGlvbiBfcnVuQ2ZnKGNmZ1NjcmlwdCwgcGF0aCwgcHJvZ3JhbU5hbWUsIGxlZ2FjeVRjZiwgbGVnYWN5Q2ZnLAorICAgICAgICBwbGF0UGFyYW1zKQorICAgIHsKKyAgICAgICAgaWYgKGxlZ2FjeVRjZikgeworICAgICAgICAgICAgLyogc2F2ZSBjdXJyZW50IGdsb2JhbCB2YXJpYWJsZXMgKi8KKyAgICAgICAgICAgIHZhciAkc2F2ZSA9IHtwcm9nOiB1dGlscy5nbG9iYWwucHJvZywgUHJvZ3JhbTogUHJvZ3JhbX07CisgICAgCisgICAgICAgICAgICAvKiBpbml0aWFsaXplIGdsb2JhbCB2YXJpYWJsZXMgZm9yIGxlZ2FjeSBjb25maWcgc2NyaXB0cyAqLworICAgICAgICAgICAgZW52aXJvbm1lbnRbImNvbmZpZy5wcm9ncmFtTmFtZSJdID0gcHJvZ3JhbU5hbWU7CisgICAgICAgICAgICBlbnZpcm9ubWVudFsiY29uZmlnLnBsYXRmb3JtIl0gPSBQcm9ncmFtLnBsYXRmb3JtTmFtZTsKKyAgICAgICAgICAgIHV0aWxzLnNlZWRQYXRoID0gZW52aXJvbm1lbnRbImNvbmZpZy5pbXBvcnRQYXRoIl07CisgICAgICAgICAgICB1dGlscy5sb2FkUGxhdGZvcm0ucGFyYW1zID0gcGxhdFBhcmFtczsKKyAgICAgICAgICAgIFByb2dyYW0gPSAkJGxlZ2FjeS5Qcm9ncmFtOyAgICAgLyogZGVmaW5lZCBpbiBjZmcudGNpICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIHJ1biBsZWdhY3kgY29uZmlnIHNjcmlwdCB3aXRoIHByb2cgPT0gdG8gUlRTQyBQcm9ncmFtOyB0aGlzCisgICAgICAgICAgICAgKiBhbGxvd3MgbGVnYWN5IHNjcmlwdCB0byByZWFkIGJ1aWxkIGF0cmlidXRlcyBmcm9tIFJUU0MgbW9kZWwKKyAgICAgICAgICAgICAqIGJlZm9yZSByZS1jcmVhdGluZyB0aGUgcHJvZyBvYmplY3QKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgdXRpbHMubG9hZENhcHN1bGUoY2ZnU2NyaXB0LCBmYWxzZSwgcGF0aCk7ICAKKyAgICAKKyAgICAgICAgICAgIC8qIHJlc3RvcmUgZ2xvYmFsIHZhcmlhYmxlczsgbm93IHByb2cgPT0gVENPTSBwcm9nIGJlY2F1c2UKKyAgICAgICAgICAgICAqIHV0aWxzLmxvYWRQbGF0Zm9ybSgpIGNyZWF0ZXMgdGhlIFRDT00gcHJvZyBvYmplY3QuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICQkbGVnYWN5LnByb2cgPSB1dGlscy5nbG9iYWwucHJvZzsgIC8qIGluIGNhc2UgWERDIHdhbnRzIGl0ICovCisgICAgICAgICAgICB1dGlscy5nbG9iYWwucHJvZyA9ICRzYXZlLnByb2c7CisgICAgICAgICAgICBQcm9ncmFtID0gJHNhdmUuUHJvZ3JhbTsKKyAgICAKKyAgICAgICAgICAgIC8qIHJ1biBYREMgY29uZmlndXJhdGlvbiBzY3JpcHQsIGlmIGl0IGV4aXN0cyAqLworICAgICAgICAgICAgaWYgKGxlZ2FjeUNmZykgeworICAgICAgICAgICAgICAgIHV0aWxzLmltcG9ydEZpbGUoY2ZnU2NyaXB0LnJlcGxhY2UoL1wudGNmLywgIi5jZmciKSwgcGF0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB1dGlscy5sb2FkQ2Fwc3VsZShjZmdTY3JpcHQsIGZhbHNlLCBwYXRoKTsKKyAgICAgICAgfQorICAgIH0KK30KKyAgICAKK2Z1bmN0aW9uIF9wb3N0aW5pdCgpIHsKKworICAgIHZhciBjb3V0ID0gbnVsbDsKKworICAgIHZhciBwcm9nID0geGRjLm9tWyd4ZGMuY2ZnLlByb2dyYW0nXTsKKyAgICAvKiBnZXQgdGhlIGV4ZWMgY29tbWFuZCBmb3IgdGhpcyBleGVjdXRhYmxlICovCisgICAgaWYgKHByb2cuZXhlY0NtZCA9PSBudWxsKSB7CisgICAgICAgIHByb2cuZXhlY0NtZCA9IHByb2cucGxhdGZvcm0uZ2V0RXhlY0NtZChwcm9nLAorICAgICAgICAgICAgeGRjLm9tWyJob3N0LnBsYXRmb3Jtcy5QQyJdLnBhY2thZ2VCYXNlKTsKKyAgICB9CisgICAgdmFyIGNvdXQgPSAiZGVmaW5lIEVYRUMuIiArIHByb2cubmFtZSArICdcblxuJzsKKyAgICBjb3V0ICs9IHByb2cuZXhlY0NtZDsKKyAgICBjb3V0ICs9ICJcbmVuZGVmXG5cbiI7CisKKyAgICB1dGlscy5nZW5EZXAoInBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1ciLCAiY2hhcmxpZS5zcXJ0bGliLnRlc3QiLCB1dGlscy5sb2FkZWRGaWxlcywgY291dCwgbnVsbCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmNmZy5kb3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmNmZy5kb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUxNWZjOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuY2ZnLmRvdApAQCAtMCwwICsxLDE4OSBAQAorZGlncmFwaCBjb25maWd1cmF0aW9uIHsKKyAgICBzaXplPSI3LjUsMTAiOworICAgIHJhbmtkaXI9TFI7CisgICAgcmFua3NlcD0iLjUwIGVxdWFsbHkiOworICAgIGNvbmNlbnRyYXRlPXRydWU7CisgICAgY29tcG91bmQ9dHJ1ZTsKKyAgICBsYWJlbD0iXG5Db25maWd1cmF0aW9uIGZvciBjaGFybGllLnNxcnRsaWIudGVzdC9pc3FydFRlc3QxLVNQQUNFLng4NkdXIgorICBub2RlIFtmb250PUhlbHZldGljYSwgZm9udHNpemU9MTQsIGZvbnRjb2xvcj1ibGFja107ICBzdWJncmFwaCBjbHVzdGVyMCB7bGFiZWw9IiI7IF9fY2ZnIFtsYWJlbD0iaXNxcnRUZXN0MS5jZmciLCBjb2xvcj13aGl0ZSwgZm9udGNvbG9yPWJsdWVdOworICAgIG5vZGUgW2ZvbnQ9SGVsdmV0aWNhLCBmb250c2l6ZT0xMF07ICAgIHN1YmdyYXBoIGNsdXN0ZXIxIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkY1xuMSwgMSwgMSwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjIgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX2NvcmV2ZXJzX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLmNvcmV2ZXJzXG4xNiwgMCwgMSwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjMgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5nbG9iYWxcbjEsIDAsIDEiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9DbG9jayBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDbG9jayJdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX190b3AgLT4geGRjX3NlcnZpY2VzX2dsb2JhbF9DbG9ja1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfQ2xvY2sgLT4geGRjX3NlcnZpY2VzX2dsb2JhbF9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjQgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NoZWxmX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNoZWxmXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfc3BlY19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5zcGVjXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfaW50ZXJuX3hzcl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyXG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfaW50ZXJuX2dlbl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5pbnRlcm4uZ2VuXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyOCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfaW50ZXJuX2NtZF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5pbnRlcm4uY21kXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyOSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfcm92X190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnJvdlxuMSwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3Jvdl9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTAgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgY2hhcmxpZV9zcXJ0bGliX190b3AgW3NoYXBlPWJveCxsYWJlbD0iY2hhcmxpZS5zcXJ0bGliXG4xLCAwLCAyLCA2IiwgY29sb3I9d2hpdGVdOworICAgICAgICBjaGFybGllX3NxcnRsaWJfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgY2hhcmxpZV9zcXJ0bGliX1NldHRpbmdzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlNldHRpbmdzIl07CisgICAgICAgIGNoYXJsaWVfc3FydGxpYl9fdG9wIC0+IGNoYXJsaWVfc3FydGxpYl9TZXR0aW5nc1tzdHlsZT1pbnZpc107CisgICAgICAgIGNoYXJsaWVfc3FydGxpYl9TZXR0aW5ncyAtPiBjaGFybGllX3NxcnRsaWJfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9Imhvc3QucGxhdGZvcm1zLlBDXG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19QbGF0Zm9ybSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJQbGF0Zm9ybSJdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fdG9wIC0+IGhvc3RfcGxhdGZvcm1zX1BDX1BsYXRmb3JtW3N0eWxlPWludmlzXTsKKyAgICAgICAgaG9zdF9wbGF0Zm9ybXNfUENfUGxhdGZvcm0gLT4gaG9zdF9wbGF0Zm9ybXNfUENfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIGhvc3RfcGxhdGZvcm1zX1BDX0ludGVsODA1ODYgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iSW50ZWw4MDU4NiJdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fdG9wIC0+IGhvc3RfcGxhdGZvcm1zX1BDX0ludGVsODA1ODZbc3R5bGU9aW52aXNdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19JbnRlbDgwNTg2IC0+IGhvc3RfcGxhdGZvcm1zX1BDX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTIgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3BsYXRmb3JtX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnBsYXRmb3JtXG4xLCAwLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX0V4ZUNvbnRleHQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRXhlQ29udGV4dCJdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX3RvcCAtPiB4ZGNfcGxhdGZvcm1fRXhlQ29udGV4dFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9FeGVDb250ZXh0IC0+IHhkY19wbGF0Zm9ybV9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEzIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19jZmdfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuY2ZnXG4xLCAwLCAyLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfY2ZnX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfUHJvZ3JhbSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJQcm9ncmFtIl07CisgICAgICAgIHhkY19jZmdfX3RvcCAtPiB4ZGNfY2ZnX1Byb2dyYW1bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX1Byb2dyYW0gLT4geGRjX2NmZ19fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19NYWluIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW4iXTsKKyAgICAgICAgeGRjX2NmZ19fdG9wIC0+IHhkY19jZmdfTWFpbltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfTWFpbiAtPiB4ZGNfY2ZnX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTQgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucnVudGltZVxuMiwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQXNzZXJ0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkFzc2VydCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0Fzc2VydFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Fzc2VydCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQ29yZSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDb3JlIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfQ29yZVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0NvcmUgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RlZmF1bHRzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkRlZmF1bHRzIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfRGVmYXVsdHNbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EZWZhdWx0cyAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGlhZ3MgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRGlhZ3MiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9EaWFnc1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RpYWdzIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9FcnJvciBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJFcnJvciJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0Vycm9yW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRXJyb3IgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGUgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iR2F0ZSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0dhdGVbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJHYXRlTnVsbCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0dhdGVOdWxsW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGwgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0xvZyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJMb2ciXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9Mb2dbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Mb2cgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW4gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbiJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01haW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWVtb3J5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWVtb3J5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkhlYXBTdGQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9IZWFwU3RkW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3RhcnR1cCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTdGFydHVwIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3RhcnR1cFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N0YXJ0dXAgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW0iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXN0ZW1bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW0gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c01pbiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXNNaW4iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXNNaW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXNNaW4gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1RleHQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iVGV4dCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1RleHRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9UZXh0IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbl9Nb2R1bGVfR2F0ZVByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1lbW9yeV9IZWFwUHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW1fU3VwcG9ydFByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIGdudV90YXJnZXRzX3J0czg2R1dfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJnbnUudGFyZ2V0cy5ydHM4NkdXXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTYgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgYWNtZV91dGlsc19jbG9ja3NfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJhY21lLnV0aWxzLmNsb2Nrc1xuIiwgY29sb3I9d2hpdGVdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDbG9ja1N0ZCJdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19fdG9wIC0+IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkW3N0eWxlPWludmlzXTsKKyAgICAgICAgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGQgLT4gYWNtZV91dGlsc19jbG9ja3NfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBhY21lX3V0aWxzX190b3AgW3NoYXBlPWJveCxsYWJlbD0iYWNtZS51dGlsc1xuIiwgY29sb3I9d2hpdGVdOworICAgICAgICBhY21lX3V0aWxzX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfQmVuY2ggW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQmVuY2giXTsKKyAgICAgICAgYWNtZV91dGlsc19fdG9wIC0+IGFjbWVfdXRpbHNfQmVuY2hbc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX0JlbmNoIC0+IGFjbWVfdXRpbHNfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkJlbmNoX1BDbG9jayJdOworICAgICAgICBhY21lX3V0aWxzX190b3AgLT4gYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tbc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX0JlbmNoX1BDbG9jayAtPiBhY21lX3V0aWxzX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTggeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgY2hhcmxpZV9zcXJ0bGliX3Rlc3RfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJjaGFybGllLnNxcnRsaWIudGVzdFxuIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgfQorICBub2RlIFtmb250PUhlbHZldGljYSwgZm9udHNpemU9MTBdOworICAgIGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtzaGFwZT1yZWNvcmQsbGFiZWw9ImdudS50YXJnZXRzLk1pbmd3fDEsMCwzLjQsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBjaGFybGllX3NxcnRsaWJfX2JvdCAtPiBnbnVfdGFyZ2V0c19NaW5nd19fMV8wXzNfXzRfNSBbbHRhaWw9Y2x1c3RlcjEwXTsKKyAgICBnbnVfdGFyZ2V0c19NaW5nd19fMV8wXzNfXzRfNSBbc2hhcGU9cmVjb3JkLGxhYmVsPSJnbnUudGFyZ2V0cy5NaW5nd3wxLDAsMy40LDUiLHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWxpZ2h0Z3JleV07CisgICAgZ251X3RhcmdldHNfcnRzODZHV19fdG9wIC0+IGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtsdGFpbD1jbHVzdGVyMTVdOworICAgIGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtzaGFwZT1yZWNvcmQsbGFiZWw9ImdudS50YXJnZXRzLk1pbmd3fDEsMCwzLjQsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19fYm90IC0+IGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtsdGFpbD1jbHVzdGVyMTZdOworICAgIGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtzaGFwZT1yZWNvcmQsbGFiZWw9ImdudS50YXJnZXRzLk1pbmd3fDEsMCwzLjQsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBhY21lX3V0aWxzX19ib3QgLT4gZ251X3RhcmdldHNfTWluZ3dfXzFfMF8zX180XzUgW2x0YWlsPWNsdXN0ZXIxN107CisgICAgZ251X3RhcmdldHNfTWluZ3dfXzFfMF8zX180XzUgW3NoYXBlPXJlY29yZCxsYWJlbD0iZ251LnRhcmdldHMuTWluZ3d8MSwwLDMuNCw1IixzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZXldOworICAgIGNoYXJsaWVfc3FydGxpYl90ZXN0X190b3AgLT4gZ251X3RhcmdldHNfTWluZ3dfXzFfMF8zX180XzUgW2x0YWlsPWNsdXN0ZXIxOF07Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmNmZy54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmNmZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhhOWQ1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuY2ZnLnhtbApAQCAtMCwwICsxLDIwMjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBUaGlzIGZpbGUgY29uZm9ybXMgdG8gdGhlIERURCB4ZGMvY2ZnL2NvbmZpZ3VyYXRpb24uZHRkIC0tPgorPGNvbmZpZ3VyYXRpb24gbmFtZT0iY2hhcmxpZS5zcXJ0bGliLnRlc3QvaXNxcnRUZXN0MS1TUEFDRS54ODZHVyIKKyAgICBwbGF0Zm9ybU5hbWU9Imhvc3QucGxhdGZvcm1zLlBDIgorICAgIGdsb2JhbFNlY3Rpb249Im51bGwiCisgICAgc3lzU3RhY2s9IjQwOTYiCisgICAgc3RhY2s9IjQwOTYiCisgICAgaGVhcD0iNDA5NiIKKyAgICBhcmdTaXplPSI1MTIiCisgICAgZXhlY0NtZD0iLi9pc3FydFRlc3QxLVNQQUNFLng4NkdXIgorICAgIGVuZGlhbj0ibGl0dGxlIgorICAgIGNvZGVNb2RlbD0ibnVsbCIKKyAgICBkYXRhTW9kZWw9Im51bGwiPgorPHRhcmdldHM+CisgICAgPHRhcmdldCBuYW1lPSJnbnUudGFyZ2V0cy5NaW5ndyIKKyAgICAgICAgICAgIHZlcnNpb249IjEsMCwzLjQsNSIKKyAgICAgICAgICAgIHVzZWRieT0iY2hhcmxpZS5zcXJ0bGliIi8+CisgICAgPHRhcmdldCBuYW1lPSJnbnUudGFyZ2V0cy5NaW5ndyIKKyAgICAgICAgICAgIHZlcnNpb249IjEsMCwzLjQsNSIKKyAgICAgICAgICAgIHVzZWRieT0iZ251LnRhcmdldHMucnRzODZHVyIvPgorICAgIDx0YXJnZXQgbmFtZT0iZ251LnRhcmdldHMuTWluZ3ciCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsMy40LDUiCisgICAgICAgICAgICB1c2VkYnk9ImFjbWUudXRpbHMuY2xvY2tzIi8+CisgICAgPHRhcmdldCBuYW1lPSJnbnUudGFyZ2V0cy5NaW5ndyIKKyAgICAgICAgICAgIHZlcnNpb249IjEsMCwzLjQsNSIKKyAgICAgICAgICAgIHVzZWRieT0iYWNtZS51dGlscyIvPgorICAgIDx0YXJnZXQgbmFtZT0iZ251LnRhcmdldHMuTWluZ3ciCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsMy40LDUiCisgICAgICAgICAgICB1c2VkYnk9ImNoYXJsaWUuc3FydGxpYi50ZXN0Ii8+Cis8L3RhcmdldHM+Cis8aW1wb3J0cz4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMiIHZlcnNpb249IjEsIDEsIDEsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuY29yZXZlcnMiIHZlcnNpb249IjE2LCAwLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmdsb2JhbCIgdmVyc2lvbj0iMSwgMCwgMSIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnNlcnZpY2VzLmdsb2JhbC5DbG9jayIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJlbmFibGUiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2hvd01lbW9yeSIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwuVHJhY2UiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zaGVsZiIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5zcGVjIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmludGVybi54c3IiIHZlcnNpb249IjEsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmdlbiIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5pbnRlcm4uY21kIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnJvdiIgdmVyc2lvbj0iMSwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5Nb2RlbCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlByb2dyYW0iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5TdHJ1Y3R1cmVEZWNvZGVyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuU3RhdGVSZWFkZXIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5WaWV3SW5mbyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iY2hhcmxpZS5zcXJ0bGliIiB2ZXJzaW9uPSIxLCAwLCAyLCA2IiByZXBvc2l0b3J5PSJEOi93b3JrL3R1dG9yaWFsL3JlcG8vIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ib3B0aW1pemUiIHR5cGU9Im9iamVjdCIgdmFsdWU9ImNoYXJsaWUuc3FydGxpYi5TZXR0aW5ncy5PUFRJTUlaRV9GT1JfU1BBQ0UiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9Imhvc3QucGxhdGZvcm1zLlBDIiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJob3N0LnBsYXRmb3Jtcy5QQy5QbGF0Zm9ybSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJCT0FSRCIgdHlwZT0ieGRjLnBsYXRmb3JtLklQbGF0Zm9ybS5Cb2FyZCIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGJvYXJkTmFtZSUzQSUyMGludGVsLXg4NiUyQyUyMGJvYXJkRmFtaWx5JTNBJTIwaW50ZWwteDg2JTJDJTIwYm9hcmRSZXZpc2lvbiUzQSUyMG51bGwlN0QiPjxzdHJ1Y3QgaWQ9Imhvc3QucGxhdGZvcm1zLlBDLlBsYXRmb3JtL0JPQVJEIj4NCisgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmROYW1lIj5pbnRlbC14ODY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImJvYXJkRmFtaWx5Ij5pbnRlbC14ODY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImJvYXJkUmV2aXNpb24iPm51bGw8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQ1BVIiB0eXBlPSJ4ZGMucGxhdGZvcm0uSUV4ZUNvbnRleHQuQ3B1IiB2YWx1ZT0iJTdCaWQlM0ElMjAwJTJDJTIwY2F0YWxvZ05hbWUlM0ElMjBob3N0LnBsYXRmb3Jtcy5QQyUyQyUyMGRldmljZU5hbWUlM0ElMjBJbnRlbDgwNTg2JTJDJTIwcmV2aXNpb24lM0ElMjAlMkMlMjBjbG9ja1JhdGUlM0ElMjAweDNlOCU3RCI+PHN0cnVjdCBpZD0iaG9zdC5wbGF0Zm9ybXMuUEMuUGxhdGZvcm0vQ1BVIj4NCisgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY2F0YWxvZ05hbWUiPmhvc3QucGxhdGZvcm1zLlBDPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkZXZpY2VOYW1lIj5JbnRlbDgwNTg2PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyZXZpc2lvbiIvPg0KKyAgPGZpZWxkIG5hbWU9ImNsb2NrUmF0ZSI+MHgzZTg8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJob3N0LnBsYXRmb3Jtcy5QQy5JbnRlbDgwNTg2IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5wbGF0Zm9ybSIgdmVyc2lvbj0iMSwgMCwgMSwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnBsYXRmb3JtLkV4ZUNvbnRleHQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucGxhdGZvcm0uVXRpbHMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5jZmciIHZlcnNpb249IjEsIDAsIDIsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5jZmcuUHJvZ3JhbSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnZW4iIHR5cGU9InhkYy5jZmcuUHJvZ3JhbS5HZW5lcmF0aW9uT3B0aW9ucyIgdmFsdWU9IiU3QmRlYnVnZ2VyRmlsZXMlM0ElMjB1bmRlZmluZWQlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5jZmcuUHJvZ3JhbS9nZW4iPg0KKyAgPGZpZWxkIG5hbWU9ImRlYnVnZ2VyRmlsZXMiPnVuZGVmaW5lZDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnbG9iYWxTZWN0aW9uIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeXNTdGFjayIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3RhY2siIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImhlYXAiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImFyZ1NpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXhlY0NtZCIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iLi9pc3FydFRlc3QxLVNQQUNFLng4NkdXIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsaW5rVGVtcGxhdGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1haW4iIHR5cGU9InVuZGVmaW5lZCIgdmFsdWU9InVuZGVmaW5lZCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2VjdE1hcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN5c3RlbSIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJpc3FydFRlc3QxLVNQQUNFLng4NkdXIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJidWlsZFBhY2thZ2UiIHR5cGU9InN0cmluZyIgdmFsdWU9ImNoYXJsaWUuc3FydGxpYi50ZXN0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJlbmRpYW4iIHR5cGU9InN0cmluZyIgdmFsdWU9ImxpdHRsZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29kZU1vZGVsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkYXRhTW9kZWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1aWxkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUJvYmplY3QlMjBPYmplY3QlNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNwdSIgdHlwZT0ieGRjLnBsYXRmb3JtLklFeGVDb250ZXh0Lkluc3RhbmNlIiB2YWx1ZT0iJTdCaWQlM0ElMjAwJTJDJTIwY2F0YWxvZ05hbWUlM0ElMjBob3N0LnBsYXRmb3Jtcy5QQyUyQyUyMGRldmljZU5hbWUlM0ElMjBJbnRlbDgwNTg2JTJDJTIwcmV2aXNpb24lM0ElMjAlMkMlMjBjbG9ja1JhdGUlM0ElMjAweDNlOCUyQyUyMGJvYXJkJTNBJTIwJTdCaWQlM0ElMjAwJTJDJTIwYm9hcmROYW1lJTNBJTIwaW50ZWwteDg2JTJDJTIwYm9hcmRGYW1pbHklM0ElMjBpbnRlbC14ODYlMkMlMjBib2FyZFJldmlzaW9uJTNBJTIwbnVsbCU3RCUyQyUyMGF0dHJzJTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMWE2MTE3MiUzQSUzQSUyOHhkYy5wbGF0Zm9ybS5JQ3B1RGF0YVNoZWV0Lkluc3RhbmNlJTI5aG9zdC5wbGF0Zm9ybXMuUEMuSW50ZWw4MDU4Ni5JbnN0YW5jZSUyMzAlMkMlMjBtZW1vcnlNYXAlM0ElMjAlNUIlMEElMEElNUQlN0QiPjxpbnN0YW5jZSBpZD0ieGRjLnBsYXRmb3JtLkV4ZUNvbnRleHQuSW5zdGFuY2UjMCI+DQorICA8ZmllbGQgbmFtZT0iaWQiPjA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNhdGFsb2dOYW1lIj5ob3N0LnBsYXRmb3Jtcy5QQzwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGV2aWNlTmFtZSI+SW50ZWw4MDU4NjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icmV2aXNpb24iLz4NCisgIDxmaWVsZCBuYW1lPSJjbG9ja1JhdGUiPjB4M2U4PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZCI+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5wbGF0Zm9ybS5FeGVDb250ZXh0Lkluc3RhbmNlIzAvYm9hcmQiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9ImJvYXJkTmFtZSI+aW50ZWwteDg2PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0iYm9hcmRGYW1pbHkiPmludGVsLXg4NjwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9ImJvYXJkUmV2aXNpb24iPm51bGw8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYXR0cnMiPnhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJE9iakAxYTYxMTcyOjooeGRjLnBsYXRmb3JtLklDcHVEYXRhU2hlZXQuSW5zdGFuY2UpaG9zdC5wbGF0Zm9ybXMuUEMuSW50ZWw4MDU4Ni5JbnN0YW5jZSMwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlNYXAiLz4NCis8L2luc3RhbmNlPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icGxhdGZvcm1OYW1lIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJob3N0LnBsYXRmb3Jtcy5QQyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icGxhdGZvcm0iIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uSW5zdGFuY2UiIHZhbHVlPSIlN0JleHRlcm5hbE1lbW9yeU1hcCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMGN1c3RvbU1lbW9yeU1hcCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJlbmFtZU1hcCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMGRhdGFNZW1vcnklM0ElMjB1bmRlZmluZWQlMkMlMjBjb2RlTWVtb3J5JTNBJTIwdW5kZWZpbmVkJTJDJTIwc3RhY2tNZW1vcnklM0ElMjB1bmRlZmluZWQlMkMlMjBzZWN0TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTdEIj48aW5zdGFuY2UgaWQ9Imhvc3QucGxhdGZvcm1zLlBDLlBsYXRmb3JtLkluc3RhbmNlIzAiPg0KKyAgPGZpZWxkIG5hbWU9ImV4dGVybmFsTWVtb3J5TWFwIi8+DQorICA8ZmllbGQgbmFtZT0iY3VzdG9tTWVtb3J5TWFwIi8+DQorICA8ZmllbGQgbmFtZT0icmVuYW1lTWFwIi8+DQorICA8ZmllbGQgbmFtZT0iZGF0YU1lbW9yeSI+dW5kZWZpbmVkPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlTWVtb3J5Ij51bmRlZmluZWQ8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InN0YWNrTWVtb3J5Ij51bmRlZmluZWQ8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InNlY3RNYXAiLz4NCis8L2luc3RhbmNlPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2xvYmFsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3ltYm9sIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DJTI3JTJDJTIwMHgxJTVEJTJDJTBBJTVCJTI3eGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MlMjclMkMlMjAweDElNUQlMEElNUQiPjxtYXAgaWQ9InhkYy5jZmcuUHJvZ3JhbS9zeW1ib2wiIGxlbmd0aD0iMiI+DQorICA8ZW50cnkga2V5PSJ4ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DIj4weDE8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0ieGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MiPjB4MTwvZW50cnk+DQorPC9tYXA+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmaXhlZENvZGVBZGRyIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmaXhlZERhdGFBZGRyIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsb2FkRml4ZWREYXRhQWRkciIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsb2FkUm9tIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLmNmZy5NYWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5ydW50aW1lIiB2ZXJzaW9uPSIyLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Bc3NlcnQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX2Fzc2VydEZhaWxlZCIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMGFzc2VydGlvbiUyMGZhaWx1cmUlMjVzJTI1cyUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjMCI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5hc3NlcnRpb24gZmFpbHVyZSVzJXM8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkNvcmUiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfaW5pdGlhbGl6ZWRQYXJhbXMiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBBX2luaXRpYWxpemVkUGFyYW1zJTNBJTIwdW5pbml0aWFsaXplZCUyMFBhcmFtcyUyMHN0cnVjdCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMCI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5BX2luaXRpYWxpemVkUGFyYW1zOiB1bmluaXRpYWxpemVkIFBhcmFtcyBzdHJ1Y3Q8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5EZWZhdWx0cyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkRpYWdzIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRGlhZ3MvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzMiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVOVFJZIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFWElUIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMSUZFQ1lDTEUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IklOVEVSTkFMIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBU1NFUlQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSMSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMjU2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSMiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNTEyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSMyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTAyNCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjIwNDgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI1IiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iODE5MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjciIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Mzg0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSOCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFMTCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNjU1MzUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNldE1hc2tFbmFibGVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImRpY3RCYXNlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkVycm9yIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5VTUFSR1MiIHR5cGU9Im51bWJlciIgdmFsdWU9IjIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfZ2VuZXJpYyIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMGdlbmVyaWMlMjBlcnJvciUzQSUyMCUyNXMlMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzEiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+Z2VuZXJpYyBlcnJvcjogJXM8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX21lbW9yeSIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMG91dCUyMG9mJTIwbWVtb3J5JTNBJTIwaGVhcCUzRDB4JTI1eCUyQyUyMHNpemUlM0QlMjV1JTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMyIj4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPm91dCBvZiBtZW1vcnk6IGhlYXA9MHgleCwgc2l6ZT0ldTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InBvbGljeSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ieGRjLnJ1bnRpbWUuRXJyb3IuVU5XSU5EIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyYWlzZUhvb2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYXhEZXB0aCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuR2F0ZSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkdhdGUvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5HYXRlTnVsbCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJRX0JMT0NLSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJRX1BSRUVNUFRJTkciIHR5cGU9Im51bWJlciIgdmFsdWU9IjIiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTG9nL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTlVNQVJHUyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUFJJTlRGSUQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfY29uc3RydWN0IiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMCUzQy0tJTIwY29uc3RydWN0JTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfY3JlYXRlIiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMCUzQy0tJTIwY3JlYXRlJTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfZGVzdHJ1Y3QiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwLS0lM0UlMjBkZXN0cnVjdCUzQSUyMCUyOCUyNXAlMjklN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHg0PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPi0tPiBkZXN0cnVjdDogKCVwKTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2RlbGV0ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAtLSUzRSUyMGRlbGV0ZSUzQSUyMCUyOCUyNXAlMjklN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMyI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHg0PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPi0tPiBkZWxldGU6ICglcCk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iaWRUb0luZm8iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyNyUyMzQ2OCUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2NvbnN0cnVjdCUzQSUzQSUzQy0tJTIwY29uc3RydWN0JTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklNUQlMkMlMEElNUIlMjclMjM0OTIlMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUlM0ElM0ElM0MtLSUyMGNyZWF0ZSUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTVEJTJDJTBBJTVCJTI3JTIzNTEzJTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfZGVzdHJ1Y3QlM0ElM0EtLSUzRSUyMGRlc3RydWN0JTNBJTIwJTI4JTI1cCUyOSU1RCUyQyUwQSU1QiUyNyUyMzUzMiUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2RlbGV0ZSUzQSUzQS0tJTNFJTIwZGVsZXRlJTNBJTIwJTI4JTI1cCUyOSU1RCUwQSU1RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Mb2dnZXJCdWYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nZ2VyU3lzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLk1haW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5NYWluL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9HYXRlUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4MSUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMFFfQkxPQ0tJTkclM0ElMjAweDElMkMlMjBRX1BSRUVNUFRJTkclM0ElMjAweDIlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDFkODdiODUlM0ElM0ElMjh4ZGMucnVudGltZS5JR2F0ZVByb3ZpZGVyLk1vZHVsZSUyOXhkYy5ydW50aW1lLkdhdGVOdWxsJTJDJTIwYWJzdHJhY3RJbnN0YW5jZXMlMjQlM0ElMjBmYWxzZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5NZW1vcnkiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5NZW1vcnkvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc5Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJRX0JMT0NLSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkZWZhdWx0SGVhcEluc3RhbmNlIiB0eXBlPSJ4ZGMucnVudGltZS5JSGVhcC5JbnN0YW5jZSIgdmFsdWU9IiU3QiU3RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkZWZhdWx0SGVhcFNpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkhlYXBQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4MiUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAOWZhOGYlM0ElM0ElMjh4ZGMucnVudGltZS5JSGVhcC5Nb2R1bGUlMjl4ZGMucnVudGltZS5IZWFwU3RkJTJDJTIwYWJzdHJhY3RJbnN0YW5jZXMlMjQlM0ElMjB0cnVlJTdEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkhlYXBNaW4iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuSGVhcFN0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkhlYXBTdGQvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9ub1JUU01lbW9yeSIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMFRoZSUyMFJUUyUyMGhlYXAlMjBpcyUyMHVzZWQlMjB1cC4lMjBFeGFtaW5lJTIwUHJvZ3JhbS5oZWFwLiUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjNCI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5UaGUgUlRTIGhlYXAgaXMgdXNlZCB1cC4gRXhhbWluZSBQcm9ncmFtLmhlYXAuPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV96ZXJvU2l6ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEhlYXBTdGRfY3JlYXRlJTIwY2Fubm90JTIwaGF2ZSUyMGElMjB6ZXJvJTIwc2l6ZSUyMHZhbHVlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMyIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkhlYXBTdGRfY3JlYXRlIGNhbm5vdCBoYXZlIGEgemVybyBzaXplIHZhbHVlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfaW52YWxpZFRvdGFsRnJlZVNpemUiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBIZWFwU3RkJTIwaW5zdGFuY2UlMjB0b3RhbEZyZWVTaXplJTIwaXMlMjBncmVhdGVyJTIwdGhhbiUyMHN0YXJ0aW5nJTIwc2l6ZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMyI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5IZWFwU3RkIGluc3RhbmNlIHRvdGFsRnJlZVNpemUgaXMgZ3JlYXRlciB0aGFuIHN0YXJ0aW5nIHNpemU8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9pbnZhbGlkQWxpZ25tZW50IiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwSGVhcFN0ZF9hbGxvYyUyMC0lMjByZXF1ZXN0ZWQlMjBhbGlnbm1lbnQlMjBpcyUyMGdyZWF0ZXIlMjB0aGFuJTIwYWxsb3dlZCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNCI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5IZWFwU3RkX2FsbG9jIC0gcmVxdWVzdGVkIGFsaWdubWVudCBpcyBncmVhdGVyIHRoYW4gYWxsb3dlZDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN0YXJ0dXAiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TdGFydHVwL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkRPTkUiIHR5cGU9Im51bWJlciIgdmFsdWU9Ii0xIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJOT1RET05FIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYXhQYXNzZXMiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmaXJzdEZ4bnMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsYXN0RnhucyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJlc2V0RnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzdGFydE1vZHNGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleGVjSW1wbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZnhuVGFiIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UlMkMlMjAlMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UlMkMlMjAlMjZhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZnhuUnRzIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUJ0cnVlJTJDJTIwdHJ1ZSUyQyUyMGZhbHNlJTVEIj48dmVjdG9yIGlkPSJ4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMiIGxlbmd0aD0iMyI+DQorICA8ZWxlbT50cnVlPC9lbGVtPg0KKyAgPGVsZW0+dHJ1ZTwvZWxlbT4NCisgIDxlbGVtPmZhbHNlPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXN0ZW0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TeXN0ZW0vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJTVEFUVVNfVU5LTk9XTiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNTE5NjYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfY2Fubm90Rml0SW50b0FyZyIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEFfY2Fubm90Rml0SW50b0FyZyUzQSUyMHNpemVvZiUyOEZsb2F0JTI5JTIwJTNFJTIwc2l6ZW9mJTI4QXJnJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1Ij4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkFfY2Fubm90Rml0SW50b0FyZzogc2l6ZW9mKEZsb2F0KSA+IHNpemVvZihBcmcpPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4dGVuZGVkRm9ybWF0cyIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTI1JTI0TCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iU3VwcG9ydFByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHgzJTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxMzJhZTclM0ElM0ElMjh4ZGMucnVudGltZS5JU3lzdGVtU3VwcG9ydC5Nb2R1bGUlMjl4ZGMucnVudGltZS5TeXNNaW4lN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1heEF0ZXhpdEhhbmRsZXJzIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleHRlbmRGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4aXRGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX0dhdGVQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDQlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBRX0JMT0NLSU5HJTNBJTIwMHgxJTJDJTIwUV9QUkVFTVBUSU5HJTNBJTIwMHgyJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxNWUyOTNhJTNBJTNBJTI4eGRjLnJ1bnRpbWUuSUdhdGVQcm92aWRlci5Nb2R1bGUlMjl4ZGMucnVudGltZS5HYXRlTnVsbCUyQyUyMGFic3RyYWN0SW5zdGFuY2VzJTI0JTNBJTIwZmFsc2UlN0QiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3lzU3RkIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN5c01pbiIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlN5c01pbi9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODMiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlZpZXdJbmZvIiB0eXBlPSJ4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIiB2YWx1ZT0iJTdCdmlld01hcCUzQSUyMCU1QiUwQSU1QiUyN01vZHVsZSUyNyUyQyUyMCU3QnR5cGUlM0ElMjBNT0RVTEUlMkMlMjB2aWV3SW5pdEZ4biUzQSUyMHZpZXdJbml0TW9kdWxlJTJDJTIwc3RydWN0TmFtZSUzQSUyME1vZHVsZVZpZXclN0QlNUQlMkMlMEElNUIlMjdPdXRwdXRCdWZmZXIlMjclMkMlMjAlN0J0eXBlJTNBJTIwTU9EVUxFX0RBVEElMkMlMjB2aWV3SW5pdEZ4biUzQSUyMHZpZXdJbml0T3V0cHV0QnVmZmVyJTJDJTIwc3RydWN0TmFtZSUzQSUyMEJ1ZmZlckVudHJ5VmlldyU3RCU1RCUwQSU1RCUyQyUyMHNob3dSYXdUYWIlM0ElMjB0cnVlJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJidWZTaXplIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxMDI0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmbHVzaEF0RXhpdCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNlY3Rpb25OYW1lIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJvdXRwdXRGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im91dHB1dEZ1bmMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0kiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGV4dCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4NCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZVVua25vd24iIHR5cGU9InN0cmluZyIgdmFsdWU9IiU3QnVua25vd24taW5zdGFuY2UtbmFtZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZUVtcHR5IiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlN0JlbXB0eS1pbnN0YW5jZS1uYW1lJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lU3RhdGljIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlN0JzdGF0aWMtaW5zdGFuY2UtbmFtZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iaXNMb2FkZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjaGFyVGFiIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIweDAlMkMlMjAweDQxJTJDJTIwMHg1ZiUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2OSUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHg1MCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg2MSUyQyUyMDB4NmQlMkMlMjAweDczJTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDc1JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2OSUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NTAlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2MyUyQyUyMDB4NzQlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg0ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg1ZiUyQyUyMDB4NjMlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDc2JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHgyMCUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDc2JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDVmJTJDJTIwMHg2MyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4NmUlMkMlMjAweDZmJTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NzYlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjElMkMlMjAweDIwJTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NzYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NzUlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDYzJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDc0JTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NDYlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjUlMkMlMjAweDUzJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2NyUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2NCUyQyUyMDB4NWYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MyUyQyUyMDB4MjAlMkMlMjAweDJkJTJDJTIwMHgyMCUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg3MSUyQyUyMDB4NzUlMkMlMjAweDY1JTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDY3JTJDJTIwMHg2ZSUyQyUyMDB4NmQlMkMlMjAweDY1JTJDJTIwMHg2ZSUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg2NyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4MjAlMkMlMjAweDc0JTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2YyUyQyUyMDB4NmYlMkMlMjAweDc3JTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDAlMkMlMjAweDQxJTJDJTIwMHg1ZiUyQyUyMDB4NjMlMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4NmUlMkMlMjAweDZmJTJDJTIwMHg3NCUyQyUyMDB4NDYlMkMlMjAweDY5JTJDJTIwMHg3NCUyQyUyMDB4NDklMkMlMjAweDZlJTJDJTIwMHg3NCUyQyUyMDB4NmYlMkMlMjAweDQxJTJDJTIwMHg3MiUyQyUyMDB4NjclMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDZmJTJDJTIwMHg2NiUyQyUyMDB4MjglMkMlMjAweDQ2JTJDJTIwMHg2YyUyQyUyMDB4NmYlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4MjklMkMlMjAweDIwJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2ZiUyQyUyMDB4NjYlMkMlMjAweDI4JTJDJTIwMHg0MSUyQyUyMDB4NzIlMkMlMjAweDY3JTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4NjElMkMlMjAweDczJTJDJTIwMHg3MyUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDY2JTJDJTIwMHg2MSUyQyUyMDB4NjklMkMlMjAweDZjJTJDJTIwMHg3NSUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NjclMkMlMjAweDY1JTJDJTIwMHg2ZSUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg2OSUyQyUyMDB4NjMlMkMlMjAweDIwJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgwJTJDJTIwMHg2ZiUyQyUyMDB4NzUlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NmYlMkMlMjAweDY2JTJDJTIwMHgyMCUyQyUyMDB4NmQlMkMlMjAweDY1JTJDJTIwMHg2ZCUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHg3OSUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4M2QlMkMlMjAweDMwJTJDJTIwMHg3OCUyQyUyMDB4MjUlMkMlMjAweDc4JTJDJTIwMHgyYyUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgzZCUyQyUyMDB4MjUlMkMlMjAweDc1JTJDJTIwMHgwJTJDJTIwMHg2NiUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2NSUyQyUyMDB4MjglMkMlMjAweDI5JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg3NiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg2NyUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg3NyUyQyUyMDB4NzQlMkMlMjAweDY4JTJDJTIwMHgyZCUyQyUyMDB4NmYlMkMlMjAweDZlJTJDJTIwMHg2YyUyQyUyMDB4NzklMkMlMjAweDIwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NGQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MCUyQyUyMDB4NTQlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDUyJTJDJTIwMHg1NCUyQyUyMDB4NTMlMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDc1JTJDJTIwMHg3MyUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NzUlMkMlMjAweDcwJTJDJTIwMHgyZSUyQyUyMDB4MjAlMkMlMjAweDQ1JTJDJTIwMHg3OCUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NTAlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2MSUyQyUyMDB4NmQlMkMlMjAweDJlJTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDNjJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NmYlMkMlMjAweDZlJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NjMlMkMlMjAweDc0JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjglMkMlMjAweDI3JTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDI3JTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4M2MlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOCUyQyUyMDB4MjclMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MjclMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDNlJTJDJTIwMHgyMCUyQyUyMDB4NjQlMkMlMjAweDY1JTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NjMlMkMlMjAweDc0JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI4JTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDNlJTJDJTIwMHgyMCUyQyUyMDB4NjQlMkMlMjAweDY1JTJDJTIwMHg2YyUyQyUyMDB4NjUlMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyOCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4NzglMkMlMjAweDY0JTJDJTIwMHg2MyUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NmUlMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NmQlMkMlMjAweDY1JTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4NDElMkMlMjAweDczJTJDJTIwMHg3MyUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4MCUyQyUyMDB4NDMlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ0JTJDJTIwMHg2NSUyQyUyMDB4NjYlMkMlMjAweDYxJTJDJTIwMHg3NSUyQyUyMDB4NmMlMkMlMjAweDc0JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NDQlMkMlMjAweDY5JTJDJTIwMHg2MSUyQyUyMDB4NjclMkMlMjAweDczJTJDJTIwMHgwJTJDJTIwMHg0NSUyQyUyMDB4NzIlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDAlMkMlMjAweDQ3JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0NyUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NGUlMkMlMjAweDc1JTJDJTIwMHg2YyUyQyUyMDB4NmMlMkMlMjAweDAlMkMlMjAweDRjJTJDJTIwMHg2ZiUyQyUyMDB4NjclMkMlMjAweDAlMkMlMjAweDRkJTJDJTIwMHg2MSUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgwJTJDJTIwMHg0ZCUyQyUyMDB4NjUlMkMlMjAweDZkJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDc5JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2NCUyQyUyMDB4MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHg3NSUyQyUyMDB4NzAlMkMlMjAweDAlMkMlMjAweDUzJTJDJTIwMHg3OSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NmQlMkMlMjAweDAlMkMlMjAweDUzJTJDJTIwMHg3OSUyQyUyMDB4NzMlMkMlMjAweDRkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDAlMkMlMjAweDU0JTJDJTIwMHg2NSUyQyUyMDB4NzglMkMlMjAweDc0JTJDJTIwMHgwJTJDJTIwMHg2MSUyQyUyMDB4NjMlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDc1JTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZjJTJDJTIwMHg3MyUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDYzJTJDJTIwMHg2YyUyQyUyMDB4NmYlMkMlMjAweDYzJTJDJTIwMHg2YiUyQyUyMDB4NzMlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg0MyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MyUyQyUyMDB4NmIlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDAlMkMlMjAweDQyJTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDYzJTJDJTIwMHg2OCUyQyUyMDB4MCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9jaGFyVGFiIiBsZW5ndGg9IjY5NyI+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc3PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NDk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDQ2PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgzZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4M2Q8L2VsZW0+DQorICA8ZWxlbT4weDMwPC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHgyYzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgzZDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDUyPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDQ1PC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDNjPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4M2M8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ3PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NGU8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDU0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2YjwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmI8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCis8L3ZlY3Rvcj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5vZGVUYWIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU3QmxlZnQlM0ElMjAweDAlMkMlMjByaWdodCUzQSUyMDB4MCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDIyNSUyQyUyMHJpZ2h0JTNBJTIwMHgyMmElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDIzMyU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjNhJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyM2YlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI0OCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjRlJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNTQlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI1OSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjYyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNjYlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI2YiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjcyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyN2ElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI4MiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4Mjg5JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyOTAlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHgyOTUlMkMlMjByaWdodCUzQSUyMDB4MjliJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAxMSUyQyUyMHJpZ2h0JTNBJTIwMHgyYTIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDEyJTJDJTIwcmlnaHQlM0ElMjAweDJhYSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMTElMkMlMjByaWdodCUzQSUyMDB4MmIzJTdEJTVEIj48dmVjdG9yIGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIiIGxlbmd0aD0iMjEiPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8wIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHgwPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHgyMjU8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyMmE8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIzMzwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8zIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjNhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzQiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyM2Y8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI0ODwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi82Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjRlPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzciPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNTQ8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI1OTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi85Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjYyPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEwIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjY2PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzExIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjZiPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEyIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjcyPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEzIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjdhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE0Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjgyPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE1Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4Mjg5PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE2Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjkwPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE3Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHgyOTU8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyOWI8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTgiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMTE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyYTI8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTkiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMTI8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyYWE8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMjAiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMTE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyYjM8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCis8L3ZlY3Rvcj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNoYXJDbnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjY5NyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibm9kZUNudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMjEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpc2l0Um9wZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpc2l0Um9wZUZ4bjIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlMl9fSSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UaW1lc3RhbXAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGltZXN0YW1wTnVsbCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UaW1lc3RhbXBTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVHlwZXMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9ImdudS50YXJnZXRzLnJ0czg2R1ciIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJhY21lLnV0aWxzLmNsb2NrcyIgdmVyc2lvbj0iIiByZXBvc2l0b3J5PSJEOi93b3JrL3R1dG9yaWFsL3JlcG8vIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9ImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzg3Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJhY21lLnV0aWxzIiB2ZXJzaW9uPSIiIHJlcG9zaXRvcnk9IkQ6L3dvcmsvdHV0b3JpYWwvcmVwby8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9ImFjbWUudXRpbHMuQmVuY2giCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJhY21lLnV0aWxzLkJlbmNoL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlBDbG9jayIgdHlwZT0iYWNtZS51dGlscy5CZW5jaF9QQ2xvY2suTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDUlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDc0Y2IwMiUzQSUzQSUyOGFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5Nb2R1bGUlMjlhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZW5hYmxlRmxhZyIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJjaGFybGllLnNxcnRsaWIudGVzdCIgdmVyc2lvbj0iIiByZXBvc2l0b3J5PSJEOi93b3JrL3R1dG9yaWFsL3JlcG8vIj4KKyAgICA8L3BhY2thZ2U+Cis8L2ltcG9ydHM+Cis8L2NvbmZpZ3VyYXRpb24+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiZjlhYTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmRlcApAQCAtMCwwICsxLDg3IEBACisjCisjIFRoZSBmb2xsb3dpbmcgaXMgZ2VuZXJhdGVkIGJ5IHV0aWxzLmdlbkRlcCBmb3IgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVworIworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5jIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuaCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnhkbDppc3FydFRlc3QxLmNmZyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmNmZyBEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9CZW5jaC54cyBEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9ob3N0L3BsYXRmb3Jtcy9QQy9JbnRlbDgwNTg2LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9ob3N0L3BsYXRmb3Jtcy9QQy9QbGF0Zm9ybS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvaG9zdC9wbGF0Zm9ybXMvUEMvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL01haW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvUHJvZ3JhbS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0V4ZUNvbnRleHQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9JUGxhdGZvcm0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9VdGlscy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvTW9kZWwueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvUHJvZ3JhbS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdGF0ZVJlYWRlci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdHJ1Y3R1cmVEZWNvZGVyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwTWluLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlckJ1Zi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyU3lzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UaW1lc3RhbXAueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvQ2xvY2sueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90ZW1wbGF0ZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2kgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzIAorCitEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9CZW5jaC54czoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaToKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9ob3N0L3BsYXRmb3Jtcy9QQy9JbnRlbDgwNTg2LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL1BsYXRmb3JtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvTWFpbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0V4ZUNvbnRleHQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0lQbGF0Zm9ybS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vVXRpbHMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Nb2RlbC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1Byb2dyYW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdGF0ZVJlYWRlci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0cnVjdHVyZURlY29kZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcE1pbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlckJ1Zi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJTeXMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RpbWVzdGFtcC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvQ2xvY2sueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2k6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54czoKKworCitkZWZpbmUgRVhFQy5pc3FydFRlc3QxLVNQQUNFLng4NkdXCisKKy4vaXNxcnRUZXN0MS1TUEFDRS54ODZHVworZW5kZWYKKworIworIyBUaGUgZm9sbG93aW5nIGlzIGdlbmVyYXRlZCBieSBqYXZhCisjCisKK2lzcXJ0VGVzdDEtU1BBQ0UueDg2R1c6IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2xpYi9hY21lLnV0aWxzLmE4NkdXIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9saWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1cgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3J0czg2R1cvbGliL2dudS50YXJnZXRzLnJ0czg2R1cuYTg2R1cgRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfbG9vcC5hODZHVyAKKworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL2xpbmtjbWQueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9saW5rY21kLnhkdCAKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuYyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnhkbDogRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi8uaW50ZXJmYWNlcyBEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvLmludGVyZmFjZXMgRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvLmludGVyZmFjZXMgLmludGVyZmFjZXMgCisKKyMKKyMgcnVsZS1sZXNzIGdvYWxzIGZvciBmaWxlcyBvdXRzaWRlIHRoaXMgcGFja2FnZQorIyAodGhlc2UgZ29hbHMgZm9yY2UgYSByZS1idWlsZCBpZiB0aGVzZSBmaWxlcyBhcmUKKyMgbW92ZWQgb3IgZGVsZXRlZCkKKyMKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2xpYi9hY21lLnV0aWxzLmE4NkdXOgorRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVzoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9ydHM4NkdXL2xpYi9nbnUudGFyZ2V0cy5ydHM4NkdXLmE4NkdXOgorRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi9saWIvaXNxcnRfbG9vcC5hODZHVzoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvbGlua2NtZC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvbGlua2NtZC54ZHQ6CitEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy5pbnRlcmZhY2VzOgorRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5pbnRlcmZhY2VzOgorRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvLmludGVyZmFjZXM6CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjBmMTI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5oCkBAIC0wLDAgKzEsMTMgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKK2V4dGVybiBpbnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQzsKKworZXh0ZXJuIGludCB4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQzsKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YWVjM2IyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5tYWsKQEAgLTAsMCArMSw3NyBAQAorIworIyAgRG8gbm90IGVkaXQgdGhpcyBmaWxlLiAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIAorIyAgcGFja2FnZS5ibGQuICBBbnkgbW9kaWZpY2F0aW9ucyB0byB0aGlzIGZpbGUgd2lsbCBiZSAKKyMgIG92ZXJ3cml0dGVuIHdoZW5ldmVyIG1ha2VmaWxlcyBhcmUgcmUtZ2VuZXJhdGVkLgorIworIyAgdGFyZ2V0IGNvbXBhdGliaWxpdHkga2V5ID0gZ251LnRhcmdldHMuTWluZ3d7MSwwLDMuNCw1CisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5vODZHVy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cubzg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cubzg2R1c6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuYyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w4NkdXICQ8IC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgLWMgIC14IGMgIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2NmZy8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5vODZHVzpMRF9MSUJSQVJZX1BBVEg9CitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLm84NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cubzg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnM4NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnM4NkdXOiBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmMgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAtUyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjIC1TIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2NmZy8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5zODZHVzpMRF9MSUJSQVJZX1BBVEg9CitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnM4NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuczg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLm84NkdXLmRlcAorZW5kaWYKKworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLm84NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzg2R1c6IGlzcXJ0VGVzdDEuYyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w4NkdXICQ8IC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgLWMgIC14IGMgIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFLyAtcyBvODZHVyAkPCAtQyAtV3VudXNlZCAgLURmYXI9ICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLm84NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5zODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLnM4NkdXOiBpc3FydFRlc3QxLmMgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAtUyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjIC1TIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFLyAtcyBvODZHVyAkPCAtQyAtV3VudXNlZCAgLURmYXI9ICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEuczg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLnM4NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5zODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK2NsZWFuLDg2R1cgOjoKKwktJChSTSkgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5vODZHVworCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzg2R1cKKwktJChSTSkgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5zODZHVworCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEuczg2R1cKKworaXNxcnRUZXN0MS1TUEFDRS54ODZHVzogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5vODZHVyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFL2lzcXJ0VGVzdDEubzg2R1cgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5tYWsKKworY2xlYW46OgorCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLm1hawpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5vODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cubzg2R1cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc4YTg4MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cubzg2R1cKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5vODZHVy5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLm84NkdXLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzg2N2RmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5vODZHVy5kZXAKQEAgLTAsMCArMSw0OSBAQAorcGFja2FnZS9jZmcvL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cubzg2R1c6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuYyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvQmVuY2guaCAuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9DbG9ja1N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQ29yZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaCAuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaCAuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaCAuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvQmVuY2hfUENsb2NrLmggLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaCANCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmM6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCisuLi8uLi8uLi9hY21lL3V0aWxzL0JlbmNoLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0NvcmUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvSUNsb2NrLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9wYWNrYWdlL0JlbmNoX1BDbG9jay5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmg6DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5yb3YueHMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnJvdi54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDAyZWNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5yb3YueHMKQEAgLTAsMCArMSw0NjczIEBACitfX28gPSBudWxsCitfX29iaiA9IFsKKyAgICB0aGlzLCAgLy8gIzAgCisgICAge30sICAgIC8vICMxIAorICAgIHt9LCAgICAvLyAjMiB4ZGMucnVudGltZS5Bc3NlcnQKKyAgICBbXSwgICAgLy8gIzMgeGRjLnJ1bnRpbWUuQXNzZXJ0LyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzQgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMwCisgICAge30sICAgIC8vICM1IHhkYy5ydW50aW1lLkFzc2VydC9jb21tb24kCisgICAgW10sICAgIC8vICM2IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzggeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjOSB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTAgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxMSB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTIgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxNCB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTUgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTYgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE3IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTggeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTkgeGRjLnJ1bnRpbWUuQXNzZXJ0L3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjAgeGRjLnJ1bnRpbWUuQ29yZQorICAgIFtdLCAgICAvLyAjMjEgeGRjLnJ1bnRpbWUuQ29yZS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMiB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMwCisgICAge30sICAgIC8vICMyMyB4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI0IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI1IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzI2IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzI4IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI5IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMzAgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzEgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzMyIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzMgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzM0IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzUgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMzYgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzM3IHhkYy5ydW50aW1lLkNvcmUvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMzOCB4ZGMucnVudGltZS5EZWZhdWx0cworICAgIFtdLCAgICAvLyAjMzkgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNDAgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNDEgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzQyIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM0MyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzQ0IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzQ1IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM0NiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICM0NyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNDggeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICM0OSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICM1MCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzUxIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzUyIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICM1MyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzU0IHhkYy5ydW50aW1lLkRlZmF1bHRzL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNTUgeGRjLnJ1bnRpbWUuRGlhZ3MKKyAgICBbXSwgICAgLy8gIzU2IHhkYy5ydW50aW1lLkRpYWdzLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzU3IHhkYy5ydW50aW1lLkRpYWdzL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzU4IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM1OSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNjAgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM2MSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM2MiB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjMgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjNjQgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzY1IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjNjYgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjcgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM2OCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM2OSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjNzAgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM3MSB4ZGMucnVudGltZS5EaWFncy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzcyIHhkYy5ydW50aW1lLkVycm9yCisgICAgW10sICAgIC8vICM3MyB4ZGMucnVudGltZS5FcnJvci8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM3NCB4ZGMucnVudGltZS5FcnJvci5EZXNjIzEKKyAgICB7fSwgICAgLy8gIzc1IHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMgorICAgIHt9LCAgICAvLyAjNzYgeGRjLnJ1bnRpbWUuRXJyb3IvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNzcgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzc4IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM3OSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzgwIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzgxIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM4MiB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICM4MyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODQgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICM4NSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICM4NiB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzg3IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzg4IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICM4OSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzkwIHhkYy5ydW50aW1lLkVycm9yL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjOTEgeGRjLnJ1bnRpbWUuR2F0ZQorICAgIFtdLCAgICAvLyAjOTIgeGRjLnJ1bnRpbWUuR2F0ZS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM5MyB4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzk0IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzk1IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzk2IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM5NyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzk4IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzk5IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTAwIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEwMSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTAyIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTAzIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxMDQgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxMDUgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTA2IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxMDcgeGRjLnJ1bnRpbWUuR2F0ZS92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzEwOCB4ZGMucnVudGltZS5HYXRlTnVsbAorICAgIFtdLCAgICAvLyAjMTA5IHhkYy5ydW50aW1lLkdhdGVOdWxsLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzExMCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb21tb24kCisgICAgW10sICAgIC8vICMxMTEgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzExMiB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTEzIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTE0IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzExNSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTE2IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzExNyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTE4IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTE5IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEyMCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzEyMSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxMjIgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzEyMyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzEyNCB4ZGMucnVudGltZS5HYXRlTnVsbC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzEyNSB4ZGMucnVudGltZS5Mb2cKKyAgICBbXSwgICAgLy8gIzEyNiB4ZGMucnVudGltZS5Mb2cvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTI3IHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMAorICAgIHt9LCAgICAvLyAjMTI4IHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMQorICAgIHt9LCAgICAvLyAjMTI5IHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMworICAgIHt9LCAgICAvLyAjMTMwIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMgorICAgIHt9LCAgICAvLyAjMTMxIHhkYy5ydW50aW1lLkxvZy9jb21tb24kCisgICAgW10sICAgIC8vICMxMzIgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxMzMgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxMzQgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTM1IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxMzYgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxMzcgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEzOCB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzOSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxNDAgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE0MSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxNDIgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE0MyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE0NCB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxNDUgeGRjLnJ1bnRpbWUuTG9nL2lkVG9JbmZvCisgICAgW10sICAgIC8vICMxNDYgeGRjLnJ1bnRpbWUuTG9nL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTQ3IHhkYy5ydW50aW1lLk1haW4KKyAgICBbXSwgICAgLy8gIzE0OCB4ZGMucnVudGltZS5NYWluLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE0OSB4ZGMucnVudGltZS5NYWluL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE1MCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxNTEgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTUyIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxNTMgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxNTQgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTU1IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTU2IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1NyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTU4IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTU5IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxNjAgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNjEgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTYyIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxNjMgeGRjLnJ1bnRpbWUuTWFpbi92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE2NCB4ZGMucnVudGltZS5NZW1vcnkKKyAgICBbXSwgICAgLy8gIzE2NSB4ZGMucnVudGltZS5NZW1vcnkvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTY2IHhkYy5ydW50aW1lLkhlYXBTdGQKKyAgICBbXSwgICAgLy8gIzE2NyB4ZGMucnVudGltZS5IZWFwU3RkLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE2OCB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAKKyAgICB7fSwgICAgLy8gIzE2OSB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAvaW5zdGFuY2UKKyAgICB7fSwgICAgLy8gIzE3MCB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM0CisgICAge30sICAgIC8vICMxNzEgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMworICAgIHt9LCAgICAvLyAjMTcyIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIKKyAgICB7fSwgICAgLy8gIzE3MyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzQKKyAgICB7fSwgICAgLy8gIzE3NCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE3NSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxNzYgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTc3IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxNzggeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxNzkgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTgwIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTgxIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4MiB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTgzIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTg0IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxODUgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxODYgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTg3IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxODggeGRjLnJ1bnRpbWUuSGVhcFN0ZC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE4OSB4ZGMucnVudGltZS5NZW1vcnkvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTkwIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTkxIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTkyIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5MyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTk0IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk1IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxOTYgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxOTcgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTk4IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxOTkgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjAwIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyMDEgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyMDIgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMjAzIHhkYy5ydW50aW1lLk1lbW9yeS92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwNCB4ZGMucnVudGltZS5TdGFydHVwCisgICAgW10sICAgIC8vICMyMDUgeGRjLnJ1bnRpbWUuU3RhcnR1cC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMDYgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kCisgICAgW10sICAgIC8vICMyMDcgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjA4IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzIwOSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjEwIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjExIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxMiB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzIxMyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMyMTQgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzIxNSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxNiB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjE3IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjE4IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzIxOSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMjIwIHhkYy5ydW50aW1lLlN0YXJ0dXAvZmlyc3RGeG5zCisgICAgW10sICAgIC8vICMyMjEgeGRjLnJ1bnRpbWUuU3RhcnR1cC9sYXN0RnhucworICAgIFtdLCAgICAvLyAjMjIyIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blJ0cworICAgIFtdLCAgICAvLyAjMjIzIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blRhYgorICAgIFtdLCAgICAvLyAjMjI0IHhkYy5ydW50aW1lLlN0YXJ0dXAvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyMjUgeGRjLnJ1bnRpbWUuU3lzdGVtCisgICAgW10sICAgIC8vICMyMjYgeGRjLnJ1bnRpbWUuU3lzdGVtLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzIyNyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1CisgICAge30sICAgIC8vICMyMjggeGRjLnJ1bnRpbWUuU3lzTWluCisgICAgW10sICAgIC8vICMyMjkgeGRjLnJ1bnRpbWUuU3lzTWluLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzIzMCB4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjMxIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjMyIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjMzIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIzNCB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjM1IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjM2IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyMzcgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMyMzggeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjM5IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyNDAgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjQxIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyNDIgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyNDMgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQ0IHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMQorICAgIHt9LCAgICAvLyAjMjQ1IHhkYy5yb3YuVmlld0luZm8KKyAgICBbXSwgICAgLy8gIzI0NiB4ZGMucm92LlZpZXdJbmZvLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzI0NyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAKKyAgICBbXSwgICAgLy8gIzI0OCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcAorICAgIHt9LCAgICAvLyAjMjQ5IHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMC92aWV3TWFwLydCYXNpYycKKyAgICB7fSwgICAgLy8gIzI1MCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nUmVjb3JkcycKKyAgICBbXSwgICAgLy8gIzI1MSB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcAorICAgIHt9LCAgICAvLyAjMjUyIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydNb2R1bGUnCisgICAge30sICAgIC8vICMyNTMgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ091dHB1dEJ1ZmZlcicKKyAgICBbXSwgICAgLy8gIzI1NCB4ZGMucnVudGltZS5TeXNNaW4vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyNTUgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI1NiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI1NyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzI1OCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNTkgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzI2MCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2MSB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjYyIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjYzIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzI2NCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjY1IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI2NiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjY3IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjY4IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzI2OSB4ZGMucnVudGltZS5TeXN0ZW0vZXhpdEZ4bnMKKyAgICBbXSwgICAgLy8gIzI3MCB4ZGMucnVudGltZS5TeXN0ZW0vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyNzEgeGRjLnJ1bnRpbWUuVGV4dAorICAgIFtdLCAgICAvLyAjMjcyIHhkYy5ydW50aW1lLlRleHQvJGluc3RhbmNlcworICAgIFtdLCAgICAvLyAjMjczIHhkYy5ydW50aW1lLlRleHQvY2hhclRhYgorICAgIHt9LCAgICAvLyAjMjc0IHhkYy5ydW50aW1lLlRleHQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjc1IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI3NiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNzcgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI3OCB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzI3OSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyODAgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyODEgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjgyIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyODMgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyODQgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI4NSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4NiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyODcgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzI4OCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIKKyAgICB7fSwgICAgLy8gIzI4OSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMAorICAgIHt9LCAgICAvLyAjMjkwIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xCisgICAge30sICAgIC8vICMyOTEgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIKKyAgICB7fSwgICAgLy8gIzI5MiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMworICAgIHt9LCAgICAvLyAjMjkzIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80CisgICAge30sICAgIC8vICMyOTQgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUKKyAgICB7fSwgICAgLy8gIzI5NSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNgorICAgIHt9LCAgICAvLyAjMjk2IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83CisgICAge30sICAgIC8vICMyOTcgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgKKyAgICB7fSwgICAgLy8gIzI5OCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOQorICAgIHt9LCAgICAvLyAjMjk5IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMAorICAgIHt9LCAgICAvLyAjMzAwIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMQorICAgIHt9LCAgICAvLyAjMzAxIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMgorICAgIHt9LCAgICAvLyAjMzAyIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMworICAgIHt9LCAgICAvLyAjMzAzIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNAorICAgIHt9LCAgICAvLyAjMzA0IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNQorICAgIHt9LCAgICAvLyAjMzA1IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNgorICAgIHt9LCAgICAvLyAjMzA2IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNworICAgIHt9LCAgICAvLyAjMzA3IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xOAorICAgIHt9LCAgICAvLyAjMzA4IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xOQorICAgIHt9LCAgICAvLyAjMzA5IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yMAorICAgIFtdLCAgICAvLyAjMzEwIHhkYy5ydW50aW1lLlRleHQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMzMTEgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQKKyAgICBbXSwgICAgLy8gIzMxMiBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMzMTMgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMzE0IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMzMTUgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzMxNiBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxNyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMzMTggYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxOSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMzMjAgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMyMSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzMyMiBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMzMjMgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzMjQgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzI1IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMzMjYgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzMjcgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMzMjggYWNtZS51dGlscy5CZW5jaAorICAgIFtdLCAgICAvLyAjMzI5IGFjbWUudXRpbHMuQmVuY2gvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMzMwIGFjbWUudXRpbHMuQmVuY2gvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMzMxIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzMzMiBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMzMzMgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMzNCBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzMzNSBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMzMzYgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMzMzcgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzM4IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMzMzkgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMzNDAgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzM0MSBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzM0MiBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMzNDMgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzM0NCBhY21lLnV0aWxzLkJlbmNoL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzQ1IAorICAgIHt9LCAgICAvLyAjMzQ2IAorICAgIHt9LCAgICAvLyAjMzQ3IAorICAgIHt9LCAgICAvLyAjMzQ4IAorICAgIHt9LCAgICAvLyAjMzQ5IAorICAgIHt9LCAgICAvLyAjMzUwIAorICAgIHt9LCAgICAvLyAjMzUxIGdudS50YXJnZXRzLk1pbmd3CisgICAge30sICAgIC8vICMzNTIgZ251LnRhcmdldHMuTWluZ3cvYXIKKyAgICB7fSwgICAgLy8gIzM1MyBnbnUudGFyZ2V0cy5NaW5ndy9hck9wdHMKKyAgICB7fSwgICAgLy8gIzM1NCBnbnUudGFyZ2V0cy5NaW5ndy9hc20KKyAgICB7fSwgICAgLy8gIzM1NSBnbnUudGFyZ2V0cy5NaW5ndy9hc21PcHRzCisgICAge30sICAgIC8vICMzNTYgZ251LnRhcmdldHMuTWluZ3cvY2MKKyAgICB7fSwgICAgLy8gIzM1NyBnbnUudGFyZ2V0cy5NaW5ndy9jY09wdHMKKyAgICB7fSwgICAgLy8gIzM1OCBnbnUudGFyZ2V0cy5NaW5ndy9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICB7fSwgICAgLy8gIzM1OSBnbnUudGFyZ2V0cy5NaW5ndy9kZWJ1Z0dlbgorICAgIHt9LCAgICAvLyAjMzYwIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMKKyAgICB7fSwgICAgLy8gIzM2MSBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuQycKKyAgICB7fSwgICAgLy8gIzM2MiBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuYXNtJworICAgIHt9LCAgICAvLyAjMzYzIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jJworICAgIHt9LCAgICAvLyAjMzY0IGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jYycKKyAgICB7fSwgICAgLy8gIzM2NSBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3BwJworICAgIHt9LCAgICAvLyAjMzY2IGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jeHgnCisgICAge30sICAgIC8vICMzNjcgZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLnM4NkdXJworICAgIHt9LCAgICAvLyAjMzY4IGdudS50YXJnZXRzLk1pbmd3L2xuaworICAgIHt9LCAgICAvLyAjMzY5IGdudS50YXJnZXRzLk1pbmd3L2xua09wdHMKKyAgICB7fSwgICAgLy8gIzM3MCBnbnUudGFyZ2V0cy5NaW5ndy9tb2RlbAorICAgIHt9LCAgICAvLyAjMzcxIGdudS50YXJnZXRzLk1pbmd3L3BsYXRmb3JtcworICAgIHt9LCAgICAvLyAjMzcyIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzCisgICAge30sICAgIC8vICMzNzMgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIHt9LCAgICAvLyAjMzc0IGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM3NSBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM3NiBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnCisgICAge30sICAgIC8vICMzNzcgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzc4IGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzc5IGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJworICAgIHt9LCAgICAvLyAjMzgwIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzgxIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzODIgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAge30sICAgIC8vICMzODMgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzODQgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM4NSBnbnUudGFyZ2V0cy5NaW5ndy9zZWN0TWFwCisgICAge30sICAgIC8vICMzODYgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMKKyAgICB7fSwgICAgLy8gIzM4NyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0NoYXIKKyAgICB7fSwgICAgLy8gIzM4OCBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0RvdWJsZQorICAgIHt9LCAgICAvLyAjMzg5IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfRmxvYXQKKyAgICB7fSwgICAgLy8gIzM5MCBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Z4bgorICAgIHt9LCAgICAvLyAjMzkxIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSUFyZworICAgIHt9LCAgICAvLyAjMzkyIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50CisgICAge30sICAgIC8vICMzOTMgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQxNgorICAgIHt9LCAgICAvLyAjMzk0IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50MzIKKyAgICB7fSwgICAgLy8gIzM5NSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDQwCisgICAge30sICAgIC8vICMzOTYgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ2NAorICAgIHt9LCAgICAvLyAjMzk3IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50OAorICAgIHt9LCAgICAvLyAjMzk4IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTERvdWJsZQorICAgIHt9LCAgICAvLyAjMzk5IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTExvbmcKKyAgICB7fSwgICAgLy8gIzQwMCBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xvbmcKKyAgICB7fSwgICAgLy8gIzQwMSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1B0cgorICAgIHt9LCAgICAvLyAjNDAyIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfU2hvcnQKKyAgICB7fSwgICAgLy8gIzQwMyBnbnUudGFyZ2V0cy5NaW5ndy92ZXJzaW9uTWFwCisgICAge30sICAgIC8vICM0MDQgCitdCisKK19fbyA9IF9fb2JqWzBdICAKKyAgICBfX29bJyRtb2R1bGVzJ10gPSBfX29ialsxLjBdCisgICAgX19vWydidWlsZCddID0gX19vYmpbMzQ1LjBdCisKK19fbyA9IF9fb2JqWzFdICAKKyAgICBfX29bJyMzMjc3MCddID0gX19vYmpbMi4wXQorICAgIF9fb1snIzMyNzcxJ10gPSBfX29ialsyMC4wXQorICAgIF9fb1snIzMyNzcyJ10gPSBfX29ialszOC4wXQorICAgIF9fb1snIzMyNzczJ10gPSBfX29ials1NS4wXQorICAgIF9fb1snIzMyNzc0J10gPSBfX29ials3Mi4wXQorICAgIF9fb1snIzMyNzc1J10gPSBfX29ials5MS4wXQorICAgIF9fb1snIzMyNzc2J10gPSBfX29ialsxMDguMF0KKyAgICBfX29bJyMzMjc3NyddID0gX19vYmpbMTI1LjBdCisgICAgX19vWycjMzI3NzgnXSA9IF9fb2JqWzE0Ny4wXQorICAgIF9fb1snIzMyNzc5J10gPSBfX29ialsxNjQuMF0KKyAgICBfX29bJyMzMjc4MCddID0gX19vYmpbMTY2LjBdCisgICAgX19vWycjMzI3ODEnXSA9IF9fb2JqWzIwNC4wXQorICAgIF9fb1snIzMyNzgyJ10gPSBfX29ialsyMjUuMF0KKyAgICBfX29bJyMzMjc4MyddID0gX19vYmpbMjI4LjBdCisgICAgX19vWycjMzI3ODQnXSA9IF9fb2JqWzI3MS4wXQorICAgIF9fb1snIzMyNzg3J10gPSBfX29ialszMTEuMF0KKyAgICBfX29bJyMzMjc4OCddID0gX19vYmpbMzI4LjBdCisgICAgX19vWydhY21lLnV0aWxzLkJlbmNoJ10gPSBfX29ialszMjguMF0KKyAgICBfX29bJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJ10gPSBfX29ialszMTEuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkFzc2VydCddID0gX19vYmpbMi4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuQ29yZSddID0gX19vYmpbMjAuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkRlZmF1bHRzJ10gPSBfX29ialszOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuRGlhZ3MnXSA9IF9fb2JqWzU1LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5FcnJvciddID0gX19vYmpbNzIuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkdhdGUnXSA9IF9fb2JqWzkxLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5HYXRlTnVsbCddID0gX19vYmpbMTA4LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5IZWFwU3RkJ10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkxvZyddID0gX19vYmpbMTI1LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5NYWluJ10gPSBfX29ialsxNDcuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLk1lbW9yeSddID0gX19vYmpbMTY0LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TdGFydHVwJ10gPSBfX29ialsyMDQuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlN5c01pbiddID0gX19vYmpbMjI4LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TeXN0ZW0nXSA9IF9fb2JqWzIyNS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuVGV4dCddID0gX19vYmpbMjcxLjBdCisKK19fbyA9IF9fb2JqWzJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzMuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCcsICdVVEYtOCcpKQorICAgIF9fb1snRV9hc3NlcnRGYWlsZWQnXSA9IF9fb2JqWzQuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzcwCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzUuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials2LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxOS4wXQorCitfX28gPSBfX29ialszXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2Fzc2VydGlvbitmYWlsdXJlJTI1cyUyNXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTZdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTddICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjBdICAvLyB4ZGMucnVudGltZS5Db3JlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZScsICdVVEYtOCcpKQorICAgIF9fb1snQV9pbml0aWFsaXplZFBhcmFtcyddID0gX19vYmpbMjIuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyMy4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzI0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszNy4wXQorCitfX28gPSBfX29ialsyMV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBX2luaXRpYWxpemVkUGFyYW1zJTNBK3VuaW5pdGlhbGl6ZWQrUGFyYW1zK3N0cnVjdCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyM10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzI3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialszMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzMzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialszNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjVdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNl0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjldICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzBdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzFdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzJdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszM10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNl0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzM5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials0MC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzQxLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ials1NC4wXQorCitfX28gPSBfX29ialszOV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNDFdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbNDQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzQ2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzQ4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbNTAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzUyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDJdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ1XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0Nl0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ3XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDhdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials0OS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0OV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTBdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials1MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1MV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTJdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTNdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU0XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTVdICAvLyB4ZGMucnVudGltZS5EaWFncworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbNTYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJywgJ1VURi04JykpCisgICAgX19vWydBTEwnXSA9IDY1NTM1CisgICAgX19vWydBU1NFUlQnXSA9IDE2CisgICAgX19vWydFTlRSWSddID0gMQorICAgIF9fb1snRVhJVCddID0gMgorICAgIF9fb1snSU5URVJOQUwnXSA9IDgKKyAgICBfX29bJ0xJRkVDWUNMRSddID0gNAorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydVU0VSMSddID0gMjU2CisgICAgX19vWydVU0VSMiddID0gNTEyCisgICAgX19vWydVU0VSMyddID0gMTAyNAorICAgIF9fb1snVVNFUjQnXSA9IDIwNDgKKyAgICBfX29bJ1VTRVI1J10gPSA0MDk2CisgICAgX19vWydVU0VSNiddID0gODE5MgorICAgIF9fb1snVVNFUjcnXSA9IDE2Mzg0CisgICAgX19vWydVU0VSOCddID0gMzI3NjgKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzU3LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNTguMF0KKyAgICBfX29bJ2RpY3RCYXNlJ10gPSBudWxsCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1snc2V0TWFza0VuYWJsZWQnXSA9IGZhbHNlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzcxLjBdCisKK19fbyA9IF9fb2JqWzU2XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTddICAvLyB4ZGMucnVudGltZS5EaWFncy9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials1OF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbNTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials2MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbNjMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbNjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ials2Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbNjkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1OV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjBdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYxXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjJdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYzXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjRdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2NV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzY2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY2XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2N10gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzY4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY4XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2OV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials3MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3MF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzFdICAvLyB4ZGMucnVudGltZS5EaWFncy92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3Ml0gIC8vIHhkYy5ydW50aW1lLkVycm9yCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ials3My4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3InLCAnVVRGLTgnKSkKKyAgICBfX29bJ0VfZ2VuZXJpYyddID0gX19vYmpbNzQuMF0KKyAgICBfX29bJ0VfbWVtb3J5J10gPSBfX29ials3NS4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydOVU1BUkdTJ10gPSAyCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials3Ni4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzc3LjBdCisgICAgX19vWydtYXhEZXB0aCddID0gMTYKKyAgICBfX29bJ3BvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5VTldJTkQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JhaXNlSG9vayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRScsICdVVEYtOCcpKQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbOTAuMF0KKworX19vID0gX19vYmpbNzNdICAvLyB4ZGMucnVudGltZS5FcnJvci8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3NF0gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnZW5lcmljK2Vycm9yJTNBKyUyNXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzVdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjMyJywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnb3V0K29mK21lbW9yeSUzQStoZWFwJTNEMHglMjV4JTJDK3NpemUlM0QlMjV1JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc2XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNzddICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzg4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzhdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc5XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4MF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzgxXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4Ml0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzgzXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODRdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4NV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODZdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4N10gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODhdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODldICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzkwXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3Ivdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTFdICAvLyB4ZGMucnVudGltZS5HYXRlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ials5Mi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc1CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzkzLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbOTQuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzEwNy4wXQorCitfX28gPSBfX29ials5Ml0gIC8vIHhkYy5ydW50aW1lLkdhdGUvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5M10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials5NF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials5NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzk3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials5OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxMDMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzEwNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTVdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzk2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5Nl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk3XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbOTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk4XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTldICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwMF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDFdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTAyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwMl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwM10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA1XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA2XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA3XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwOF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxMDkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc2CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1FfQkxPQ0tJTkcnXSA9IDEKKyAgICBfX29bJ1FfUFJFRU1QVElORyddID0gMgorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTEwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTExLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxMjQuMF0KKworX19vID0gX19vYmpbMTA5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTEwXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTExXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxMTIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxMTQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzExNi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMTguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxMjAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzEyMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExMl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExM10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE2XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExN10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExOF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzExOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTldICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyMF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEyMS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjFdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyMl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMjMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIzXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjRdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjVdICAvLyB4ZGMucnVudGltZS5Mb2cKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzEyNi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJywgJ1VURi04JykpCisgICAgX19vWydMX2NvbnN0cnVjdCddID0gX19vYmpbMTI3LjBdCisgICAgX19vWydMX2NyZWF0ZSddID0gX19vYmpbMTI4LjBdCisgICAgX19vWydMX2RlbGV0ZSddID0gX19vYmpbMTI5LjBdCisgICAgX19vWydMX2Rlc3RydWN0J10gPSBfX29ialsxMzAuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc3CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ05VTUFSR1MnXSA9IDgKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1BSSU5URklEJ10gPSAwCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxMzEuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxMzIuMF0KKyAgICBfX29bJ2lkVG9JbmZvJ10gPSBfX29ialsxNDUuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzE0Ni4wXQorCitfX28gPSBfX29ialsxMjZdICAvLyB4ZGMucnVudGltZS5Mb2cvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyN10gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclM0MtLStjb25zdHJ1Y3QlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI4XSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMxCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMScsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUzQy0tK2NyZWF0ZSUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjldICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMzJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMwXSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMxXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxMzJdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxMzMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxMzUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzEzNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMzkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxNDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzE0My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzNdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMzQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzNF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzVdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTM2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzZdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM3XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEzOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM4XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzldICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE0MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDBdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQxXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQyXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0M10gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE0NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDRdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ1XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2lkVG9JbmZvCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJyM0NjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfY29uc3RydWN0JTNBJTNBJTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM0NjgnKQorICAgIF9fby5wdXNoKF9fb1snIzQ5MiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUlM0ElM0ElM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzQ5MicpCisgICAgX19vLnB1c2goX19vWycjNTEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0JTNBJTNBLS0lM0UrZGVzdHJ1Y3QlM0ErJTI4JTI1cCUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNTEzJykKKyAgICBfX28ucHVzaChfX29bJyM1MzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfZGVsZXRlJTNBJTNBLS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzUzMicpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZpZFRvSW5mbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDZdICAvLyB4ZGMucnVudGltZS5Mb2cvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0N10gIC8vIHhkYy5ydW50aW1lLk1haW4KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzE0OC4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbicsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX0dhdGVQcm94eSddID0gX19vYmpbMTA4LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzgKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTQ5LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTUwLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxNjMuMF0KKworX19vID0gX19vYmpbMTQ4XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0OV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxNTBdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTUxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTUzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxNTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTU3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1MV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTUyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTJdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTNdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1NF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1NV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU2XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1N10gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU4XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU5XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjBdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjFdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjJdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjNdICAvLyB4ZGMucnVudGltZS5NYWluL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTY0XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNjUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeScsICdVVEYtOCcpKQorICAgIF9fb1snSGVhcFByb3h5J10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc5CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1FfQkxPQ0tJTkcnXSA9IDEKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzE4OS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzE5MC4wXQorICAgIF9fb1snZGVmYXVsdEhlYXBJbnN0YW5jZSddID0gX19vYmpbMTY4LjBdCisgICAgX19vWydkZWZhdWx0SGVhcFNpemUnXSA9IDQwOTYKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzIwMy4wXQorCitfX28gPSBfX29ialsxNjVdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2Nl0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzE2Ny4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCcsICdVVEYtOCcpKQorICAgIF9fb1snQV9pbnZhbGlkQWxpZ25tZW50J10gPSBfX29ialsxNzAuMF0KKyAgICBfX29bJ0FfaW52YWxpZFRvdGFsRnJlZVNpemUnXSA9IF9fb2JqWzE3MS4wXQorICAgIF9fb1snQV96ZXJvU2l6ZSddID0gX19vYmpbMTcyLjBdCisgICAgX19vWydFX25vUlRTTWVtb3J5J10gPSBfX29ialsxNzMuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxNzQuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxNzUuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzE4OC4wXQorCitfX28gPSBfX29ialsxNjddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzE2OC4wXQorCitfX28gPSBfX29ialsxNjhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snJG1vZHVsZSddID0gX19vYmpbMTY2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snaW5zdGFuY2UnXSA9IF9fb2JqWzE2OS4wXQorICAgIF9fb1snc2l6ZSddID0gNDA5NgorCitfX28gPSBfX29ialsxNjldICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAvaW5zdGFuY2UKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UlMjMwJTJGaW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWUnXSA9IG51bGwKKworX19vID0gX19vYmpbMTcwXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjM0JywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0hlYXBTdGRfYWxsb2MrLStyZXF1ZXN0ZWQrYWxpZ25tZW50K2lzK2dyZWF0ZXIrdGhhbithbGxvd2VkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3MV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMycsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkK2luc3RhbmNlK3RvdGFsRnJlZVNpemUraXMrZ3JlYXRlcit0aGFuK3N0YXJ0aW5nK3NpemUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTcyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjMyJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0hlYXBTdGRfY3JlYXRlK2Nhbm5vdCtoYXZlK2EremVybytzaXplK3ZhbHVlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3M10gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdUaGUrUlRTK2hlYXAraXMrdXNlZCt1cC4rRXhhbWluZStQcm9ncmFtLmhlYXAuJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3NF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxNzVdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTc2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3Nl0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTc3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3OV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4MF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTgxXSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4Ml0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTgzXSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg0XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODVdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg5XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxOTBdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxOTEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxOTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzE5NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxOTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxOTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzIwMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTFdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5Ml0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTNdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTk0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTRdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk1XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk2XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTddICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOThdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk5XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAwXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwMV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIwMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDJdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAzXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0RPTkUnXSA9IC0xCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODEKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snTk9URE9ORSddID0gMAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjA2LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjA3LjBdCisgICAgX19vWydleGVjSW1wbCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpcnN0RnhucyddID0gX19vYmpbMjIwLjBdCisgICAgX19vWydsYXN0RnhucyddID0gX19vYmpbMjIxLjBdCisgICAgX19vWydtYXhQYXNzZXMnXSA9IDMyCisgICAgX19vWydyZXNldEZ4biddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3NmeG5SdHMnXSA9IF9fb2JqWzIyMi4wXQorICAgIF9fb1snc2Z4blRhYiddID0gX19vYmpbMjIzLjBdCisgICAgX19vWydzdGFydE1vZHNGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMjI0LjBdCisKK19fbyA9IF9fb2JqWzIwNV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDZdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjA3XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzIwOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzIxMC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjEyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzIxNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzIxNi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjE4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDhdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIwOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA5XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjEwXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjExLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTFdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTJdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxM10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxNV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxNl0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE3XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE4XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE5XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjIwXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9maXJzdEZ4bnMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZmaXJzdEZ4bnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjIxXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9sYXN0RnhucworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmxhc3RGeG5zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMl0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blJ0cworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRnNmeG5SdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IHRydWUKKyAgICBfX29bJzEnXSA9IHRydWUKKyAgICBfX29bJzInXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIyM10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRnNmeG5UYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyNF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjVdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzIyNi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJywgJ1VURi04JykpCisgICAgX19vWydBX2Nhbm5vdEZpdEludG9BcmcnXSA9IF9fb2JqWzIyNy4wXQorICAgIF9fb1snTW9kdWxlX0dhdGVQcm94eSddID0gX19vYmpbMTA4LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydTVEFUVVNfVU5LTk9XTiddID0gNTE5NjYKKyAgICBfX29bJ1N1cHBvcnRQcm94eSddID0gX19vYmpbMjI4LjBdCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyNTUuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNTYuMF0KKyAgICBfX29bJ2V4aXRGeG5zJ10gPSBfX29ialsyNjkuMF0KKyAgICBfX29bJ2V4dGVuZEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JJywgJ1VURi04JykpCisgICAgX19vWydleHRlbmRlZEZvcm1hdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI1JTI0TCcsICdVVEYtOCcpKQorICAgIF9fb1snbWF4QXRleGl0SGFuZGxlcnMnXSA9IDgKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzI3MC4wXQorCitfX28gPSBfX29ialsyMjZdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyN10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzNScsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBX2Nhbm5vdEZpdEludG9BcmclM0Erc2l6ZW9mJTI4RmxvYXQlMjkrJTNFK3NpemVvZiUyOEFyZyUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjhdICAvLyB4ZGMucnVudGltZS5TeXNNaW4KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzIyOS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydidWZTaXplJ10gPSAxMDI0CisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyMzAuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyMzEuMF0KKyAgICBfX29bJ2ZsdXNoQXRFeGl0J10gPSB0cnVlCisgICAgX19vWydvdXRwdXRGdW5jJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ291dHB1dEZ4biddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3JvdlZpZXdJbmZvJ10gPSBfX29ialsyNDQuMF0KKyAgICBfX29bJ3NlY3Rpb25OYW1lJ10gPSBudWxsCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzI1NC4wXQorCitfX28gPSBfX29ialsyMjldICAvLyB4ZGMucnVudGltZS5TeXNNaW4vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzMF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjMxXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjMyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjM0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyMzYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjM4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjQwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyNDIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjMyXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjMzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzNdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM0XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM1XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNl0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzN10gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM4XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM5XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0MF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjQxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0MV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDJdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQzXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0NF0gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0luc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyckbW9kdWxlJ10gPSBfX29ialsyNDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJywgJ1VURi04JykpCisgICAgX19vWydzaG93UmF3VGFiJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TWFwJ10gPSBfX29ialsyNTEuMF0KKworX19vID0gX19vYmpbMjQ1XSAgLy8geGRjLnJvdi5WaWV3SW5mbworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjQ2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0Nl0gIC8vIHhkYy5yb3YuVmlld0luZm8vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mbyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gX19vYmpbMjQ3LjBdCisgICAgX19vWycxJ10gPSBfX29ialsyNDQuMF0KKworX19vID0gX19vYmpbMjQ3XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRtb2R1bGUnXSA9IF9fb2JqWzI0NS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Nob3dSYXdUYWInXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdNYXAnXSA9IF9fb2JqWzI0OC4wXQorCitfX28gPSBfX29ialsyNDhdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWydCYXNpYyddID0gX19vYmpbMjQ5LjBdKTsgX19vLiRrZXlzLnB1c2goJ0Jhc2ljJykKKyAgICBfX28ucHVzaChfX29bJ1JlY29yZHMnXSA9IF9fb2JqWzI1MC4wXSk7IF9fby4ka2V5cy5wdXNoKCdSZWNvcmRzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJTJGdmlld01hcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDldICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nQmFzaWMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAlMkYlMjdCYXNpYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdCYXNpY1ZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JTlNUQU5DRScsICdVVEYtOCcpKQorICAgIF9fb1sndmlld0luaXRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndmlld0luaXRCYXNpYycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTBdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nUmVjb3JkcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJTJGdmlld01hcCUyRiUyN1JlY29yZHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnUmVjb3JkVmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLklOU1RBTkNFX0RBVEEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0UmVjb3JkcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTFdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWydNb2R1bGUnXSA9IF9fb2JqWzI1Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCdNb2R1bGUnKQorICAgIF9fby5wdXNoKF9fb1snT3V0cHV0QnVmZmVyJ10gPSBfX29ialsyNTMuMF0pOyBfX28uJGtleXMucHVzaCgnT3V0cHV0QnVmZmVyJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJTJGdmlld01hcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTJdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nTW9kdWxlJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzElMkZ2aWV3TWFwJTJGJTI3TW9kdWxlJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZVZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5NT0RVTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0TW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1M10gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydPdXRwdXRCdWZmZXInCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMSUyRnZpZXdNYXAlMkYlMjdPdXRwdXRCdWZmZXIlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQnVmZmVyRW50cnlWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uTU9EVUxFX0RBVEEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0T3V0cHV0QnVmZmVyJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1NF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNTZdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzI2MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyNjMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyNjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzI2Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTddICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1OF0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTldICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjYwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjBdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYxXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYyXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjNdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjRdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2N10gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjhdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY5XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2V4aXRGeG5zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZleGl0RnhucycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzBdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3MV0gIC8vIHhkYy5ydW50aW1lLlRleHQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzI3Mi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCcsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzg0CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NoYXJDbnQnXSA9IDY5NworICAgIF9fb1snY2hhclRhYiddID0gX19vYmpbMjczLjBdCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyNzQuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNzUuMF0KKyAgICBfX29bJ2lzTG9hZGVkJ10gPSB0cnVlCisgICAgX19vWyduYW1lRW1wdHknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCZW1wdHktaW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZVN0YXRpYyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclN0JzdGF0aWMtaW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZVVua25vd24nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCdW5rbm93bi1pbnN0YW5jZS1uYW1lJTdEJywgJ1VURi04JykpCisgICAgX19vWydub2RlQ250J10gPSAyMQorICAgIF9fb1snbm9kZVRhYiddID0gX19vYmpbMjg4LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszMTAuMF0KKyAgICBfX29bJ3Zpc2l0Um9wZUZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSScsICdVVEYtOCcpKQorICAgIF9fb1sndmlzaXRSb3BlRnhuMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0knLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjcyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3M10gIC8vIHhkYy5ydW50aW1lLlRleHQvY2hhclRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNoYXJUYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IDAKKyAgICBfX29bJzEnXSA9IDY1CisgICAgX19vWycyJ10gPSA5NQorICAgIF9fb1snMyddID0gMTA1CisgICAgX19vWyc0J10gPSAxMTAKKyAgICBfX29bJzUnXSA9IDEwNQorICAgIF9fb1snNiddID0gMTE2CisgICAgX19vWyc3J10gPSAxMDUKKyAgICBfX29bJzgnXSA9IDk3CisgICAgX19vWyc5J10gPSAxMDgKKyAgICBfX29bJzEwJ10gPSAxMDUKKyAgICBfX29bJzExJ10gPSAxMjIKKyAgICBfX29bJzEyJ10gPSAxMDEKKyAgICBfX29bJzEzJ10gPSAxMDAKKyAgICBfX29bJzE0J10gPSA4MAorICAgIF9fb1snMTUnXSA9IDk3CisgICAgX19vWycxNiddID0gMTE0CisgICAgX19vWycxNyddID0gOTcKKyAgICBfX29bJzE4J10gPSAxMDkKKyAgICBfX29bJzE5J10gPSAxMTUKKyAgICBfX29bJzIwJ10gPSA1OAorICAgIF9fb1snMjEnXSA9IDMyCisgICAgX19vWycyMiddID0gMTE3CisgICAgX19vWycyMyddID0gMTEwCisgICAgX19vWycyNCddID0gMTA1CisgICAgX19vWycyNSddID0gMTEwCisgICAgX19vWycyNiddID0gMTA1CisgICAgX19vWycyNyddID0gMTE2CisgICAgX19vWycyOCddID0gMTA1CisgICAgX19vWycyOSddID0gOTcKKyAgICBfX29bJzMwJ10gPSAxMDgKKyAgICBfX29bJzMxJ10gPSAxMDUKKyAgICBfX29bJzMyJ10gPSAxMjIKKyAgICBfX29bJzMzJ10gPSAxMDEKKyAgICBfX29bJzM0J10gPSAxMDAKKyAgICBfX29bJzM1J10gPSAzMgorICAgIF9fb1snMzYnXSA9IDgwCisgICAgX19vWyczNyddID0gOTcKKyAgICBfX29bJzM4J10gPSAxMTQKKyAgICBfX29bJzM5J10gPSA5NworICAgIF9fb1snNDAnXSA9IDEwOQorICAgIF9fb1snNDEnXSA9IDExNQorICAgIF9fb1snNDInXSA9IDMyCisgICAgX19vWyc0MyddID0gMTE1CisgICAgX19vWyc0NCddID0gMTE2CisgICAgX19vWyc0NSddID0gMTE0CisgICAgX19vWyc0NiddID0gMTE3CisgICAgX19vWyc0NyddID0gOTkKKyAgICBfX29bJzQ4J10gPSAxMTYKKyAgICBfX29bJzQ5J10gPSAwCisgICAgX19vWyc1MCddID0gNzIKKyAgICBfX29bJzUxJ10gPSAxMDEKKyAgICBfX29bJzUyJ10gPSA5NworICAgIF9fb1snNTMnXSA9IDExMgorICAgIF9fb1snNTQnXSA9IDc3CisgICAgX19vWyc1NSddID0gMTA1CisgICAgX19vWyc1NiddID0gMTEwCisgICAgX19vWyc1NyddID0gOTUKKyAgICBfX29bJzU4J10gPSA5OQorICAgIF9fb1snNTknXSA9IDExNAorICAgIF9fb1snNjAnXSA9IDEwMQorICAgIF9fb1snNjEnXSA9IDk3CisgICAgX19vWyc2MiddID0gMTE2CisgICAgX19vWyc2MyddID0gMTAxCisgICAgX19vWyc2NCddID0gMzIKKyAgICBfX29bJzY1J10gPSA5OQorICAgIF9fb1snNjYnXSA9IDk3CisgICAgX19vWyc2NyddID0gMTEwCisgICAgX19vWyc2OCddID0gMTEwCisgICAgX19vWyc2OSddID0gMTExCisgICAgX19vWyc3MCddID0gMTE2CisgICAgX19vWyc3MSddID0gMzIKKyAgICBfX29bJzcyJ10gPSAxMDQKKyAgICBfX29bJzczJ10gPSA5NworICAgIF9fb1snNzQnXSA9IDExOAorICAgIF9fb1snNzUnXSA9IDEwMQorICAgIF9fb1snNzYnXSA9IDMyCisgICAgX19vWyc3NyddID0gOTcKKyAgICBfX29bJzc4J10gPSAzMgorICAgIF9fb1snNzknXSA9IDEyMgorICAgIF9fb1snODAnXSA9IDEwMQorICAgIF9fb1snODEnXSA9IDExNAorICAgIF9fb1snODInXSA9IDExMQorICAgIF9fb1snODMnXSA9IDMyCisgICAgX19vWyc4NCddID0gMTE1CisgICAgX19vWyc4NSddID0gMTA1CisgICAgX19vWyc4NiddID0gMTIyCisgICAgX19vWyc4NyddID0gMTAxCisgICAgX19vWyc4OCddID0gMzIKKyAgICBfX29bJzg5J10gPSAxMTgKKyAgICBfX29bJzkwJ10gPSA5NworICAgIF9fb1snOTEnXSA9IDEwOAorICAgIF9fb1snOTInXSA9IDExNworICAgIF9fb1snOTMnXSA9IDEwMQorICAgIF9fb1snOTQnXSA9IDAKKyAgICBfX29bJzk1J10gPSA3MgorICAgIF9fb1snOTYnXSA9IDEwMQorICAgIF9fb1snOTcnXSA9IDk3CisgICAgX19vWyc5OCddID0gMTEyCisgICAgX19vWyc5OSddID0gODMKKyAgICBfX29bJzEwMCddID0gMTE2CisgICAgX19vWycxMDEnXSA9IDEwMAorICAgIF9fb1snMTAyJ10gPSA5NQorICAgIF9fb1snMTAzJ10gPSA5OQorICAgIF9fb1snMTA0J10gPSAxMTQKKyAgICBfX29bJzEwNSddID0gMTAxCisgICAgX19vWycxMDYnXSA9IDk3CisgICAgX19vWycxMDcnXSA9IDExNgorICAgIF9fb1snMTA4J10gPSAxMDEKKyAgICBfX29bJzEwOSddID0gMzIKKyAgICBfX29bJzExMCddID0gOTkKKyAgICBfX29bJzExMSddID0gOTcKKyAgICBfX29bJzExMiddID0gMTEwCisgICAgX19vWycxMTMnXSA9IDExMAorICAgIF9fb1snMTE0J10gPSAxMTEKKyAgICBfX29bJzExNSddID0gMTE2CisgICAgX19vWycxMTYnXSA9IDMyCisgICAgX19vWycxMTcnXSA9IDEwNAorICAgIF9fb1snMTE4J10gPSA5NworICAgIF9fb1snMTE5J10gPSAxMTgKKyAgICBfX29bJzEyMCddID0gMTAxCisgICAgX19vWycxMjEnXSA9IDMyCisgICAgX19vWycxMjInXSA9IDk3CisgICAgX19vWycxMjMnXSA9IDMyCisgICAgX19vWycxMjQnXSA9IDEyMgorICAgIF9fb1snMTI1J10gPSAxMDEKKyAgICBfX29bJzEyNiddID0gMTE0CisgICAgX19vWycxMjcnXSA9IDExMQorICAgIF9fb1snMTI4J10gPSAzMgorICAgIF9fb1snMTI5J10gPSAxMTUKKyAgICBfX29bJzEzMCddID0gMTA1CisgICAgX19vWycxMzEnXSA9IDEyMgorICAgIF9fb1snMTMyJ10gPSAxMDEKKyAgICBfX29bJzEzMyddID0gMzIKKyAgICBfX29bJzEzNCddID0gMTE4CisgICAgX19vWycxMzUnXSA9IDk3CisgICAgX19vWycxMzYnXSA9IDEwOAorICAgIF9fb1snMTM3J10gPSAxMTcKKyAgICBfX29bJzEzOCddID0gMTAxCisgICAgX19vWycxMzknXSA9IDAKKyAgICBfX29bJzE0MCddID0gNzIKKyAgICBfX29bJzE0MSddID0gMTAxCisgICAgX19vWycxNDInXSA9IDk3CisgICAgX19vWycxNDMnXSA9IDExMgorICAgIF9fb1snMTQ0J10gPSA4MworICAgIF9fb1snMTQ1J10gPSAxMTYKKyAgICBfX29bJzE0NiddID0gMTAwCisgICAgX19vWycxNDcnXSA9IDMyCisgICAgX19vWycxNDgnXSA9IDEwNQorICAgIF9fb1snMTQ5J10gPSAxMTAKKyAgICBfX29bJzE1MCddID0gMTE1CisgICAgX19vWycxNTEnXSA9IDExNgorICAgIF9fb1snMTUyJ10gPSA5NworICAgIF9fb1snMTUzJ10gPSAxMTAKKyAgICBfX29bJzE1NCddID0gOTkKKyAgICBfX29bJzE1NSddID0gMTAxCisgICAgX19vWycxNTYnXSA9IDMyCisgICAgX19vWycxNTcnXSA9IDExNgorICAgIF9fb1snMTU4J10gPSAxMTEKKyAgICBfX29bJzE1OSddID0gMTE2CisgICAgX19vWycxNjAnXSA9IDk3CisgICAgX19vWycxNjEnXSA9IDEwOAorICAgIF9fb1snMTYyJ10gPSA3MAorICAgIF9fb1snMTYzJ10gPSAxMTQKKyAgICBfX29bJzE2NCddID0gMTAxCisgICAgX19vWycxNjUnXSA9IDEwMQorICAgIF9fb1snMTY2J10gPSA4MworICAgIF9fb1snMTY3J10gPSAxMDUKKyAgICBfX29bJzE2OCddID0gMTIyCisgICAgX19vWycxNjknXSA9IDEwMQorICAgIF9fb1snMTcwJ10gPSAzMgorICAgIF9fb1snMTcxJ10gPSAxMDUKKyAgICBfX29bJzE3MiddID0gMTE1CisgICAgX19vWycxNzMnXSA9IDMyCisgICAgX19vWycxNzQnXSA9IDEwMworICAgIF9fb1snMTc1J10gPSAxMTQKKyAgICBfX29bJzE3NiddID0gMTAxCisgICAgX19vWycxNzcnXSA9IDk3CisgICAgX19vWycxNzgnXSA9IDExNgorICAgIF9fb1snMTc5J10gPSAxMDEKKyAgICBfX29bJzE4MCddID0gMTE0CisgICAgX19vWycxODEnXSA9IDMyCisgICAgX19vWycxODInXSA9IDExNgorICAgIF9fb1snMTgzJ10gPSAxMDQKKyAgICBfX29bJzE4NCddID0gOTcKKyAgICBfX29bJzE4NSddID0gMTEwCisgICAgX19vWycxODYnXSA9IDMyCisgICAgX19vWycxODcnXSA9IDExNQorICAgIF9fb1snMTg4J10gPSAxMTYKKyAgICBfX29bJzE4OSddID0gOTcKKyAgICBfX29bJzE5MCddID0gMTE0CisgICAgX19vWycxOTEnXSA9IDExNgorICAgIF9fb1snMTkyJ10gPSAxMDUKKyAgICBfX29bJzE5MyddID0gMTEwCisgICAgX19vWycxOTQnXSA9IDEwMworICAgIF9fb1snMTk1J10gPSAzMgorICAgIF9fb1snMTk2J10gPSAxMTUKKyAgICBfX29bJzE5NyddID0gMTA1CisgICAgX19vWycxOTgnXSA9IDEyMgorICAgIF9fb1snMTk5J10gPSAxMDEKKyAgICBfX29bJzIwMCddID0gMAorICAgIF9fb1snMjAxJ10gPSA3MgorICAgIF9fb1snMjAyJ10gPSAxMDEKKyAgICBfX29bJzIwMyddID0gOTcKKyAgICBfX29bJzIwNCddID0gMTEyCisgICAgX19vWycyMDUnXSA9IDgzCisgICAgX19vWycyMDYnXSA9IDExNgorICAgIF9fb1snMjA3J10gPSAxMDAKKyAgICBfX29bJzIwOCddID0gOTUKKyAgICBfX29bJzIwOSddID0gOTcKKyAgICBfX29bJzIxMCddID0gMTA4CisgICAgX19vWycyMTEnXSA9IDEwOAorICAgIF9fb1snMjEyJ10gPSAxMTEKKyAgICBfX29bJzIxMyddID0gOTkKKyAgICBfX29bJzIxNCddID0gMzIKKyAgICBfX29bJzIxNSddID0gNDUKKyAgICBfX29bJzIxNiddID0gMzIKKyAgICBfX29bJzIxNyddID0gMTE0CisgICAgX19vWycyMTgnXSA9IDEwMQorICAgIF9fb1snMjE5J10gPSAxMTMKKyAgICBfX29bJzIyMCddID0gMTE3CisgICAgX19vWycyMjEnXSA9IDEwMQorICAgIF9fb1snMjIyJ10gPSAxMTUKKyAgICBfX29bJzIyMyddID0gMTE2CisgICAgX19vWycyMjQnXSA9IDEwMQorICAgIF9fb1snMjI1J10gPSAxMDAKKyAgICBfX29bJzIyNiddID0gMzIKKyAgICBfX29bJzIyNyddID0gOTcKKyAgICBfX29bJzIyOCddID0gMTA4CisgICAgX19vWycyMjknXSA9IDEwNQorICAgIF9fb1snMjMwJ10gPSAxMDMKKyAgICBfX29bJzIzMSddID0gMTEwCisgICAgX19vWycyMzInXSA9IDEwOQorICAgIF9fb1snMjMzJ10gPSAxMDEKKyAgICBfX29bJzIzNCddID0gMTEwCisgICAgX19vWycyMzUnXSA9IDExNgorICAgIF9fb1snMjM2J10gPSAzMgorICAgIF9fb1snMjM3J10gPSAxMDUKKyAgICBfX29bJzIzOCddID0gMTE1CisgICAgX19vWycyMzknXSA9IDMyCisgICAgX19vWycyNDAnXSA9IDEwMworICAgIF9fb1snMjQxJ10gPSAxMTQKKyAgICBfX29bJzI0MiddID0gMTAxCisgICAgX19vWycyNDMnXSA9IDk3CisgICAgX19vWycyNDQnXSA9IDExNgorICAgIF9fb1snMjQ1J10gPSAxMDEKKyAgICBfX29bJzI0NiddID0gMTE0CisgICAgX19vWycyNDcnXSA9IDMyCisgICAgX19vWycyNDgnXSA9IDExNgorICAgIF9fb1snMjQ5J10gPSAxMDQKKyAgICBfX29bJzI1MCddID0gOTcKKyAgICBfX29bJzI1MSddID0gMTEwCisgICAgX19vWycyNTInXSA9IDMyCisgICAgX19vWycyNTMnXSA9IDk3CisgICAgX19vWycyNTQnXSA9IDEwOAorICAgIF9fb1snMjU1J10gPSAxMDgKKyAgICBfX29bJzI1NiddID0gMTExCisgICAgX19vWycyNTcnXSA9IDExOQorICAgIF9fb1snMjU4J10gPSAxMDEKKyAgICBfX29bJzI1OSddID0gMTAwCisgICAgX19vWycyNjAnXSA9IDAKKyAgICBfX29bJzI2MSddID0gNjUKKyAgICBfX29bJzI2MiddID0gOTUKKyAgICBfX29bJzI2MyddID0gOTkKKyAgICBfX29bJzI2NCddID0gOTcKKyAgICBfX29bJzI2NSddID0gMTEwCisgICAgX19vWycyNjYnXSA9IDExMAorICAgIF9fb1snMjY3J10gPSAxMTEKKyAgICBfX29bJzI2OCddID0gMTE2CisgICAgX19vWycyNjknXSA9IDcwCisgICAgX19vWycyNzAnXSA9IDEwNQorICAgIF9fb1snMjcxJ10gPSAxMTYKKyAgICBfX29bJzI3MiddID0gNzMKKyAgICBfX29bJzI3MyddID0gMTEwCisgICAgX19vWycyNzQnXSA9IDExNgorICAgIF9fb1snMjc1J10gPSAxMTEKKyAgICBfX29bJzI3NiddID0gNjUKKyAgICBfX29bJzI3NyddID0gMTE0CisgICAgX19vWycyNzgnXSA9IDEwMworICAgIF9fb1snMjc5J10gPSA1OAorICAgIF9fb1snMjgwJ10gPSAzMgorICAgIF9fb1snMjgxJ10gPSAxMTUKKyAgICBfX29bJzI4MiddID0gMTA1CisgICAgX19vWycyODMnXSA9IDEyMgorICAgIF9fb1snMjg0J10gPSAxMDEKKyAgICBfX29bJzI4NSddID0gMTExCisgICAgX19vWycyODYnXSA9IDEwMgorICAgIF9fb1snMjg3J10gPSA0MAorICAgIF9fb1snMjg4J10gPSA3MAorICAgIF9fb1snMjg5J10gPSAxMDgKKyAgICBfX29bJzI5MCddID0gMTExCisgICAgX19vWycyOTEnXSA9IDk3CisgICAgX19vWycyOTInXSA9IDExNgorICAgIF9fb1snMjkzJ10gPSA0MQorICAgIF9fb1snMjk0J10gPSAzMgorICAgIF9fb1snMjk1J10gPSA2MgorICAgIF9fb1snMjk2J10gPSAzMgorICAgIF9fb1snMjk3J10gPSAxMTUKKyAgICBfX29bJzI5OCddID0gMTA1CisgICAgX19vWycyOTknXSA9IDEyMgorICAgIF9fb1snMzAwJ10gPSAxMDEKKyAgICBfX29bJzMwMSddID0gMTExCisgICAgX19vWyczMDInXSA9IDEwMgorICAgIF9fb1snMzAzJ10gPSA0MAorICAgIF9fb1snMzA0J10gPSA2NQorICAgIF9fb1snMzA1J10gPSAxMTQKKyAgICBfX29bJzMwNiddID0gMTAzCisgICAgX19vWyczMDcnXSA9IDQxCisgICAgX19vWyczMDgnXSA9IDAKKyAgICBfX29bJzMwOSddID0gOTcKKyAgICBfX29bJzMxMCddID0gMTE1CisgICAgX19vWyczMTEnXSA9IDExNQorICAgIF9fb1snMzEyJ10gPSAxMDEKKyAgICBfX29bJzMxMyddID0gMTE0CisgICAgX19vWyczMTQnXSA9IDExNgorICAgIF9fb1snMzE1J10gPSAxMDUKKyAgICBfX29bJzMxNiddID0gMTExCisgICAgX19vWyczMTcnXSA9IDExMAorICAgIF9fb1snMzE4J10gPSAzMgorICAgIF9fb1snMzE5J10gPSAxMDIKKyAgICBfX29bJzMyMCddID0gOTcKKyAgICBfX29bJzMyMSddID0gMTA1CisgICAgX19vWyczMjInXSA9IDEwOAorICAgIF9fb1snMzIzJ10gPSAxMTcKKyAgICBfX29bJzMyNCddID0gMTE0CisgICAgX19vWyczMjUnXSA9IDEwMQorICAgIF9fb1snMzI2J10gPSAzNworICAgIF9fb1snMzI3J10gPSAxMTUKKyAgICBfX29bJzMyOCddID0gMzcKKyAgICBfX29bJzMyOSddID0gMTE1CisgICAgX19vWyczMzAnXSA9IDAKKyAgICBfX29bJzMzMSddID0gMTAzCisgICAgX19vWyczMzInXSA9IDEwMQorICAgIF9fb1snMzMzJ10gPSAxMTAKKyAgICBfX29bJzMzNCddID0gMTAxCisgICAgX19vWyczMzUnXSA9IDExNAorICAgIF9fb1snMzM2J10gPSAxMDUKKyAgICBfX29bJzMzNyddID0gOTkKKyAgICBfX29bJzMzOCddID0gMzIKKyAgICBfX29bJzMzOSddID0gMTAxCisgICAgX19vWyczNDAnXSA9IDExNAorICAgIF9fb1snMzQxJ10gPSAxMTQKKyAgICBfX29bJzM0MiddID0gMTExCisgICAgX19vWyczNDMnXSA9IDExNAorICAgIF9fb1snMzQ0J10gPSA1OAorICAgIF9fb1snMzQ1J10gPSAzMgorICAgIF9fb1snMzQ2J10gPSAzNworICAgIF9fb1snMzQ3J10gPSAxMTUKKyAgICBfX29bJzM0OCddID0gMAorICAgIF9fb1snMzQ5J10gPSAxMTEKKyAgICBfX29bJzM1MCddID0gMTE3CisgICAgX19vWyczNTEnXSA9IDExNgorICAgIF9fb1snMzUyJ10gPSAzMgorICAgIF9fb1snMzUzJ10gPSAxMTEKKyAgICBfX29bJzM1NCddID0gMTAyCisgICAgX19vWyczNTUnXSA9IDMyCisgICAgX19vWyczNTYnXSA9IDEwOQorICAgIF9fb1snMzU3J10gPSAxMDEKKyAgICBfX29bJzM1OCddID0gMTA5CisgICAgX19vWyczNTknXSA9IDExMQorICAgIF9fb1snMzYwJ10gPSAxMTQKKyAgICBfX29bJzM2MSddID0gMTIxCisgICAgX19vWyczNjInXSA9IDU4CisgICAgX19vWyczNjMnXSA9IDMyCisgICAgX19vWyczNjQnXSA9IDEwNAorICAgIF9fb1snMzY1J10gPSAxMDEKKyAgICBfX29bJzM2NiddID0gOTcKKyAgICBfX29bJzM2NyddID0gMTEyCisgICAgX19vWyczNjgnXSA9IDYxCisgICAgX19vWyczNjknXSA9IDQ4CisgICAgX19vWyczNzAnXSA9IDEyMAorICAgIF9fb1snMzcxJ10gPSAzNworICAgIF9fb1snMzcyJ10gPSAxMjAKKyAgICBfX29bJzM3MyddID0gNDQKKyAgICBfX29bJzM3NCddID0gMzIKKyAgICBfX29bJzM3NSddID0gMTE1CisgICAgX19vWyczNzYnXSA9IDEwNQorICAgIF9fb1snMzc3J10gPSAxMjIKKyAgICBfX29bJzM3OCddID0gMTAxCisgICAgX19vWyczNzknXSA9IDYxCisgICAgX19vWyczODAnXSA9IDM3CisgICAgX19vWyczODEnXSA9IDExNworICAgIF9fb1snMzgyJ10gPSAwCisgICAgX19vWyczODMnXSA9IDEwMgorICAgIF9fb1snMzg0J10gPSAxMTQKKyAgICBfX29bJzM4NSddID0gMTAxCisgICAgX19vWyczODYnXSA9IDEwMQorICAgIF9fb1snMzg3J10gPSA0MAorICAgIF9fb1snMzg4J10gPSA0MQorICAgIF9fb1snMzg5J10gPSAzMgorICAgIF9fb1snMzkwJ10gPSAxMDUKKyAgICBfX29bJzM5MSddID0gMTEwCisgICAgX19vWyczOTInXSA9IDExOAorICAgIF9fb1snMzkzJ10gPSA5NworICAgIF9fb1snMzk0J10gPSAxMDgKKyAgICBfX29bJzM5NSddID0gMTA1CisgICAgX19vWyczOTYnXSA9IDEwMAorICAgIF9fb1snMzk3J10gPSAzMgorICAgIF9fb1snMzk4J10gPSAxMDUKKyAgICBfX29bJzM5OSddID0gMTEwCisgICAgX19vWyc0MDAnXSA9IDMyCisgICAgX19vWyc0MDEnXSA9IDEwMworICAgIF9fb1snNDAyJ10gPSAxMTQKKyAgICBfX29bJzQwMyddID0gMTExCisgICAgX19vWyc0MDQnXSA9IDExOQorICAgIF9fb1snNDA1J10gPSAxMTYKKyAgICBfX29bJzQwNiddID0gMTA0CisgICAgX19vWyc0MDcnXSA9IDQ1CisgICAgX19vWyc0MDgnXSA9IDExMQorICAgIF9fb1snNDA5J10gPSAxMTAKKyAgICBfX29bJzQxMCddID0gMTA4CisgICAgX19vWyc0MTEnXSA9IDEyMQorICAgIF9fb1snNDEyJ10gPSAzMgorICAgIF9fb1snNDEzJ10gPSA3MgorICAgIF9fb1snNDE0J10gPSAxMDEKKyAgICBfX29bJzQxNSddID0gOTcKKyAgICBfX29bJzQxNiddID0gMTEyCisgICAgX19vWyc0MTcnXSA9IDc3CisgICAgX19vWyc0MTgnXSA9IDEwNQorICAgIF9fb1snNDE5J10gPSAxMTAKKyAgICBfX29bJzQyMCddID0gMAorICAgIF9fb1snNDIxJ10gPSA4NAorICAgIF9fb1snNDIyJ10gPSAxMDQKKyAgICBfX29bJzQyMyddID0gMTAxCisgICAgX19vWyc0MjQnXSA9IDMyCisgICAgX19vWyc0MjUnXSA9IDgyCisgICAgX19vWyc0MjYnXSA9IDg0CisgICAgX19vWyc0MjcnXSA9IDgzCisgICAgX19vWyc0MjgnXSA9IDMyCisgICAgX19vWyc0MjknXSA9IDEwNAorICAgIF9fb1snNDMwJ10gPSAxMDEKKyAgICBfX29bJzQzMSddID0gOTcKKyAgICBfX29bJzQzMiddID0gMTEyCisgICAgX19vWyc0MzMnXSA9IDMyCisgICAgX19vWyc0MzQnXSA9IDEwNQorICAgIF9fb1snNDM1J10gPSAxMTUKKyAgICBfX29bJzQzNiddID0gMzIKKyAgICBfX29bJzQzNyddID0gMTE3CisgICAgX19vWyc0MzgnXSA9IDExNQorICAgIF9fb1snNDM5J10gPSAxMDEKKyAgICBfX29bJzQ0MCddID0gMTAwCisgICAgX19vWyc0NDEnXSA9IDMyCisgICAgX19vWyc0NDInXSA9IDExNworICAgIF9fb1snNDQzJ10gPSAxMTIKKyAgICBfX29bJzQ0NCddID0gNDYKKyAgICBfX29bJzQ0NSddID0gMzIKKyAgICBfX29bJzQ0NiddID0gNjkKKyAgICBfX29bJzQ0NyddID0gMTIwCisgICAgX19vWyc0NDgnXSA9IDk3CisgICAgX19vWyc0NDknXSA9IDEwOQorICAgIF9fb1snNDUwJ10gPSAxMDUKKyAgICBfX29bJzQ1MSddID0gMTEwCisgICAgX19vWyc0NTInXSA9IDEwMQorICAgIF9fb1snNDUzJ10gPSAzMgorICAgIF9fb1snNDU0J10gPSA4MAorICAgIF9fb1snNDU1J10gPSAxMTQKKyAgICBfX29bJzQ1NiddID0gMTExCisgICAgX19vWyc0NTcnXSA9IDEwMworICAgIF9fb1snNDU4J10gPSAxMTQKKyAgICBfX29bJzQ1OSddID0gOTcKKyAgICBfX29bJzQ2MCddID0gMTA5CisgICAgX19vWyc0NjEnXSA9IDQ2CisgICAgX19vWyc0NjInXSA9IDEwNAorICAgIF9fb1snNDYzJ10gPSAxMDEKKyAgICBfX29bJzQ2NCddID0gOTcKKyAgICBfX29bJzQ2NSddID0gMTEyCisgICAgX19vWyc0NjYnXSA9IDQ2CisgICAgX19vWyc0NjcnXSA9IDAKKyAgICBfX29bJzQ2OCddID0gNjAKKyAgICBfX29bJzQ2OSddID0gNDUKKyAgICBfX29bJzQ3MCddID0gNDUKKyAgICBfX29bJzQ3MSddID0gMzIKKyAgICBfX29bJzQ3MiddID0gOTkKKyAgICBfX29bJzQ3MyddID0gMTExCisgICAgX19vWyc0NzQnXSA9IDExMAorICAgIF9fb1snNDc1J10gPSAxMTUKKyAgICBfX29bJzQ3NiddID0gMTE2CisgICAgX19vWyc0NzcnXSA9IDExNAorICAgIF9fb1snNDc4J10gPSAxMTcKKyAgICBfX29bJzQ3OSddID0gOTkKKyAgICBfX29bJzQ4MCddID0gMTE2CisgICAgX19vWyc0ODEnXSA9IDU4CisgICAgX19vWyc0ODInXSA9IDMyCisgICAgX19vWyc0ODMnXSA9IDM3CisgICAgX19vWyc0ODQnXSA9IDExMgorICAgIF9fb1snNDg1J10gPSA0MAorICAgIF9fb1snNDg2J10gPSAzOQorICAgIF9fb1snNDg3J10gPSAzNworICAgIF9fb1snNDg4J10gPSAxMTUKKyAgICBfX29bJzQ4OSddID0gMzkKKyAgICBfX29bJzQ5MCddID0gNDEKKyAgICBfX29bJzQ5MSddID0gMAorICAgIF9fb1snNDkyJ10gPSA2MAorICAgIF9fb1snNDkzJ10gPSA0NQorICAgIF9fb1snNDk0J10gPSA0NQorICAgIF9fb1snNDk1J10gPSAzMgorICAgIF9fb1snNDk2J10gPSA5OQorICAgIF9fb1snNDk3J10gPSAxMTQKKyAgICBfX29bJzQ5OCddID0gMTAxCisgICAgX19vWyc0OTknXSA9IDk3CisgICAgX19vWyc1MDAnXSA9IDExNgorICAgIF9fb1snNTAxJ10gPSAxMDEKKyAgICBfX29bJzUwMiddID0gNTgKKyAgICBfX29bJzUwMyddID0gMzIKKyAgICBfX29bJzUwNCddID0gMzcKKyAgICBfX29bJzUwNSddID0gMTEyCisgICAgX19vWyc1MDYnXSA9IDQwCisgICAgX19vWyc1MDcnXSA9IDM5CisgICAgX19vWyc1MDgnXSA9IDM3CisgICAgX19vWyc1MDknXSA9IDExNQorICAgIF9fb1snNTEwJ10gPSAzOQorICAgIF9fb1snNTExJ10gPSA0MQorICAgIF9fb1snNTEyJ10gPSAwCisgICAgX19vWyc1MTMnXSA9IDQ1CisgICAgX19vWyc1MTQnXSA9IDQ1CisgICAgX19vWyc1MTUnXSA9IDYyCisgICAgX19vWyc1MTYnXSA9IDMyCisgICAgX19vWyc1MTcnXSA9IDEwMAorICAgIF9fb1snNTE4J10gPSAxMDEKKyAgICBfX29bJzUxOSddID0gMTE1CisgICAgX19vWyc1MjAnXSA9IDExNgorICAgIF9fb1snNTIxJ10gPSAxMTQKKyAgICBfX29bJzUyMiddID0gMTE3CisgICAgX19vWyc1MjMnXSA9IDk5CisgICAgX19vWyc1MjQnXSA9IDExNgorICAgIF9fb1snNTI1J10gPSA1OAorICAgIF9fb1snNTI2J10gPSAzMgorICAgIF9fb1snNTI3J10gPSA0MAorICAgIF9fb1snNTI4J10gPSAzNworICAgIF9fb1snNTI5J10gPSAxMTIKKyAgICBfX29bJzUzMCddID0gNDEKKyAgICBfX29bJzUzMSddID0gMAorICAgIF9fb1snNTMyJ10gPSA0NQorICAgIF9fb1snNTMzJ10gPSA0NQorICAgIF9fb1snNTM0J10gPSA2MgorICAgIF9fb1snNTM1J10gPSAzMgorICAgIF9fb1snNTM2J10gPSAxMDAKKyAgICBfX29bJzUzNyddID0gMTAxCisgICAgX19vWyc1MzgnXSA9IDEwOAorICAgIF9fb1snNTM5J10gPSAxMDEKKyAgICBfX29bJzU0MCddID0gMTE2CisgICAgX19vWyc1NDEnXSA9IDEwMQorICAgIF9fb1snNTQyJ10gPSA1OAorICAgIF9fb1snNTQzJ10gPSAzMgorICAgIF9fb1snNTQ0J10gPSA0MAorICAgIF9fb1snNTQ1J10gPSAzNworICAgIF9fb1snNTQ2J10gPSAxMTIKKyAgICBfX29bJzU0NyddID0gNDEKKyAgICBfX29bJzU0OCddID0gMAorICAgIF9fb1snNTQ5J10gPSAxMjAKKyAgICBfX29bJzU1MCddID0gMTAwCisgICAgX19vWyc1NTEnXSA9IDk5CisgICAgX19vWyc1NTInXSA9IDQ2CisgICAgX19vWyc1NTMnXSA9IDAKKyAgICBfX29bJzU1NCddID0gMTE0CisgICAgX19vWyc1NTUnXSA9IDExNworICAgIF9fb1snNTU2J10gPSAxMTAKKyAgICBfX29bJzU1NyddID0gMTE2CisgICAgX19vWyc1NTgnXSA9IDEwNQorICAgIF9fb1snNTU5J10gPSAxMDkKKyAgICBfX29bJzU2MCddID0gMTAxCisgICAgX19vWyc1NjEnXSA9IDQ2CisgICAgX19vWyc1NjInXSA9IDAKKyAgICBfX29bJzU2MyddID0gNjUKKyAgICBfX29bJzU2NCddID0gMTE1CisgICAgX19vWyc1NjUnXSA9IDExNQorICAgIF9fb1snNTY2J10gPSAxMDEKKyAgICBfX29bJzU2NyddID0gMTE0CisgICAgX19vWyc1NjgnXSA9IDExNgorICAgIF9fb1snNTY5J10gPSAwCisgICAgX19vWyc1NzAnXSA9IDY3CisgICAgX19vWyc1NzEnXSA9IDExMQorICAgIF9fb1snNTcyJ10gPSAxMTQKKyAgICBfX29bJzU3MyddID0gMTAxCisgICAgX19vWyc1NzQnXSA9IDAKKyAgICBfX29bJzU3NSddID0gNjgKKyAgICBfX29bJzU3NiddID0gMTAxCisgICAgX19vWyc1NzcnXSA9IDEwMgorICAgIF9fb1snNTc4J10gPSA5NworICAgIF9fb1snNTc5J10gPSAxMTcKKyAgICBfX29bJzU4MCddID0gMTA4CisgICAgX19vWyc1ODEnXSA9IDExNgorICAgIF9fb1snNTgyJ10gPSAxMTUKKyAgICBfX29bJzU4MyddID0gMAorICAgIF9fb1snNTg0J10gPSA2OAorICAgIF9fb1snNTg1J10gPSAxMDUKKyAgICBfX29bJzU4NiddID0gOTcKKyAgICBfX29bJzU4NyddID0gMTAzCisgICAgX19vWyc1ODgnXSA9IDExNQorICAgIF9fb1snNTg5J10gPSAwCisgICAgX19vWyc1OTAnXSA9IDY5CisgICAgX19vWyc1OTEnXSA9IDExNAorICAgIF9fb1snNTkyJ10gPSAxMTQKKyAgICBfX29bJzU5MyddID0gMTExCisgICAgX19vWyc1OTQnXSA9IDExNAorICAgIF9fb1snNTk1J10gPSAwCisgICAgX19vWyc1OTYnXSA9IDcxCisgICAgX19vWyc1OTcnXSA9IDk3CisgICAgX19vWyc1OTgnXSA9IDExNgorICAgIF9fb1snNTk5J10gPSAxMDEKKyAgICBfX29bJzYwMCddID0gMAorICAgIF9fb1snNjAxJ10gPSA3MQorICAgIF9fb1snNjAyJ10gPSA5NworICAgIF9fb1snNjAzJ10gPSAxMTYKKyAgICBfX29bJzYwNCddID0gMTAxCisgICAgX19vWyc2MDUnXSA9IDc4CisgICAgX19vWyc2MDYnXSA9IDExNworICAgIF9fb1snNjA3J10gPSAxMDgKKyAgICBfX29bJzYwOCddID0gMTA4CisgICAgX19vWyc2MDknXSA9IDAKKyAgICBfX29bJzYxMCddID0gNzYKKyAgICBfX29bJzYxMSddID0gMTExCisgICAgX19vWyc2MTInXSA9IDEwMworICAgIF9fb1snNjEzJ10gPSAwCisgICAgX19vWyc2MTQnXSA9IDc3CisgICAgX19vWyc2MTUnXSA9IDk3CisgICAgX19vWyc2MTYnXSA9IDEwNQorICAgIF9fb1snNjE3J10gPSAxMTAKKyAgICBfX29bJzYxOCddID0gMAorICAgIF9fb1snNjE5J10gPSA3NworICAgIF9fb1snNjIwJ10gPSAxMDEKKyAgICBfX29bJzYyMSddID0gMTA5CisgICAgX19vWyc2MjInXSA9IDExMQorICAgIF9fb1snNjIzJ10gPSAxMTQKKyAgICBfX29bJzYyNCddID0gMTIxCisgICAgX19vWyc2MjUnXSA9IDAKKyAgICBfX29bJzYyNiddID0gNzIKKyAgICBfX29bJzYyNyddID0gMTAxCisgICAgX19vWyc2MjgnXSA9IDk3CisgICAgX19vWyc2MjknXSA9IDExMgorICAgIF9fb1snNjMwJ10gPSA4MworICAgIF9fb1snNjMxJ10gPSAxMTYKKyAgICBfX29bJzYzMiddID0gMTAwCisgICAgX19vWyc2MzMnXSA9IDAKKyAgICBfX29bJzYzNCddID0gODMKKyAgICBfX29bJzYzNSddID0gMTE2CisgICAgX19vWyc2MzYnXSA9IDk3CisgICAgX19vWyc2MzcnXSA9IDExNAorICAgIF9fb1snNjM4J10gPSAxMTYKKyAgICBfX29bJzYzOSddID0gMTE3CisgICAgX19vWyc2NDAnXSA9IDExMgorICAgIF9fb1snNjQxJ10gPSAwCisgICAgX19vWyc2NDInXSA9IDgzCisgICAgX19vWyc2NDMnXSA9IDEyMQorICAgIF9fb1snNjQ0J10gPSAxMTUKKyAgICBfX29bJzY0NSddID0gMTE2CisgICAgX19vWyc2NDYnXSA9IDEwMQorICAgIF9fb1snNjQ3J10gPSAxMDkKKyAgICBfX29bJzY0OCddID0gMAorICAgIF9fb1snNjQ5J10gPSA4MworICAgIF9fb1snNjUwJ10gPSAxMjEKKyAgICBfX29bJzY1MSddID0gMTE1CisgICAgX19vWyc2NTInXSA9IDc3CisgICAgX19vWyc2NTMnXSA9IDEwNQorICAgIF9fb1snNjU0J10gPSAxMTAKKyAgICBfX29bJzY1NSddID0gMAorICAgIF9fb1snNjU2J10gPSA4NAorICAgIF9fb1snNjU3J10gPSAxMDEKKyAgICBfX29bJzY1OCddID0gMTIwCisgICAgX19vWyc2NTknXSA9IDExNgorICAgIF9fb1snNjYwJ10gPSAwCisgICAgX19vWyc2NjEnXSA9IDk3CisgICAgX19vWyc2NjInXSA9IDk5CisgICAgX19vWyc2NjMnXSA9IDEwOQorICAgIF9fb1snNjY0J10gPSAxMDEKKyAgICBfX29bJzY2NSddID0gNDYKKyAgICBfX29bJzY2NiddID0gMAorICAgIF9fb1snNjY3J10gPSAxMTcKKyAgICBfX29bJzY2OCddID0gMTE2CisgICAgX19vWyc2NjknXSA9IDEwNQorICAgIF9fb1snNjcwJ10gPSAxMDgKKyAgICBfX29bJzY3MSddID0gMTE1CisgICAgX19vWyc2NzInXSA9IDQ2CisgICAgX19vWyc2NzMnXSA9IDAKKyAgICBfX29bJzY3NCddID0gOTkKKyAgICBfX29bJzY3NSddID0gMTA4CisgICAgX19vWyc2NzYnXSA9IDExMQorICAgIF9fb1snNjc3J10gPSA5OQorICAgIF9fb1snNjc4J10gPSAxMDcKKyAgICBfX29bJzY3OSddID0gMTE1CisgICAgX19vWyc2ODAnXSA9IDQ2CisgICAgX19vWyc2ODEnXSA9IDAKKyAgICBfX29bJzY4MiddID0gNjcKKyAgICBfX29bJzY4MyddID0gMTA4CisgICAgX19vWyc2ODQnXSA9IDExMQorICAgIF9fb1snNjg1J10gPSA5OQorICAgIF9fb1snNjg2J10gPSAxMDcKKyAgICBfX29bJzY4NyddID0gODMKKyAgICBfX29bJzY4OCddID0gMTE2CisgICAgX19vWyc2ODknXSA9IDEwMAorICAgIF9fb1snNjkwJ10gPSAwCisgICAgX19vWyc2OTEnXSA9IDY2CisgICAgX19vWyc2OTInXSA9IDEwMQorICAgIF9fb1snNjkzJ10gPSAxMTAKKyAgICBfX29bJzY5NCddID0gOTkKKyAgICBfX29bJzY5NSddID0gMTA0CisgICAgX19vWyc2OTYnXSA9IDAKKworX19vID0gX19vYmpbMjc0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzI3NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNzYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNzguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzI4MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyODIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyODQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzI4Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjc2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3N10gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI3OS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjc5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjgxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODFdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4My4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODNdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODRdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjg1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjg3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4N10gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzI4OS4wXQorICAgIF9fb1snMSddID0gX19vYmpbMjkwLjBdCisgICAgX19vWycyJ10gPSBfX29ialsyOTEuMF0KKyAgICBfX29bJzMnXSA9IF9fb2JqWzI5Mi4wXQorICAgIF9fb1snNCddID0gX19vYmpbMjkzLjBdCisgICAgX19vWyc1J10gPSBfX29ialsyOTQuMF0KKyAgICBfX29bJzYnXSA9IF9fb2JqWzI5NS4wXQorICAgIF9fb1snNyddID0gX19vYmpbMjk2LjBdCisgICAgX19vWyc4J10gPSBfX29ialsyOTcuMF0KKyAgICBfX29bJzknXSA9IF9fb2JqWzI5OC4wXQorICAgIF9fb1snMTAnXSA9IF9fb2JqWzI5OS4wXQorICAgIF9fb1snMTEnXSA9IF9fb2JqWzMwMC4wXQorICAgIF9fb1snMTInXSA9IF9fb2JqWzMwMS4wXQorICAgIF9fb1snMTMnXSA9IF9fb2JqWzMwMi4wXQorICAgIF9fb1snMTQnXSA9IF9fb2JqWzMwMy4wXQorICAgIF9fb1snMTUnXSA9IF9fb2JqWzMwNC4wXQorICAgIF9fb1snMTYnXSA9IF9fb2JqWzMwNS4wXQorICAgIF9fb1snMTcnXSA9IF9fb2JqWzMwNi4wXQorICAgIF9fb1snMTgnXSA9IF9fb2JqWzMwNy4wXQorICAgIF9fb1snMTknXSA9IF9fb2JqWzMwOC4wXQorICAgIF9fb1snMjAnXSA9IF9fb2JqWzMwOS4wXQorCitfX28gPSBfX29ialsyODldICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYwJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAwCisgICAgX19vWydyaWdodCddID0gMAorCitfX28gPSBfX29ialsyOTBdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSA1NDkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NTQKKworX19vID0gX19vYmpbMjkxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NjMKKworX19vID0gX19vYmpbMjkyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NzAKKworX19vID0gX19vYmpbMjkzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NzUKKworX19vID0gX19vYmpbMjk0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1ODQKKworX19vID0gX19vYmpbMjk1XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzYKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1OTAKKworX19vID0gX19vYmpbMjk2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzcKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1OTYKKworX19vID0gX19vYmpbMjk3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGOCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MDEKKworX19vID0gX19vYmpbMjk4XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzkKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGOScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MTAKKworX19vID0gX19vYmpbMjk5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjEwJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYxNAorCitfX28gPSBfX29ialszMDBdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjE5CisKK19fbyA9IF9fb2JqWzMwMV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MjYKKworX19vID0gX19vYmpbMzAyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjEzJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYzNAorCitfX28gPSBfX29ialszMDNdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjQyCisKK19fbyA9IF9fb2JqWzMwNF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2NDkKKworX19vID0gX19vYmpbMzA1XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE2CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE2JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDY1NgorCitfX28gPSBfX29ialszMDZdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTcKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDY2MQorICAgIF9fb1sncmlnaHQnXSA9IDY2NworCitfX28gPSBfX29ialszMDddICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTgKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzg1CisgICAgX19vWydyaWdodCddID0gNjc0CisKK19fbyA9IF9fb2JqWzMwOF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xOQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxOScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3ODYKKyAgICBfX29bJ3JpZ2h0J10gPSA2ODIKKworX19vID0gX19vYmpbMzA5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjIwJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc4NQorICAgIF9fb1sncmlnaHQnXSA9IDY5MQorCitfX28gPSBfX29ialszMTBdICAvLyB4ZGMucnVudGltZS5UZXh0L3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzExXSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzMxMi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODcKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMzEzLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMzE0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszMjcuMF0KKworX19vID0gX19vYmpbMzEyXSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzEzXSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMzE0XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialszMTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialszMTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzMxOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialszMjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialszMjMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzMyNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxNV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxNl0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE3XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxOF0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE5XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMF0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMyMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjJdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyM10gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMyNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjRdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyNV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI2XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjddICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjhdICAvLyBhY21lLnV0aWxzLkJlbmNoCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszMjkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2gnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4OAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydQQ2xvY2snXSA9IF9fb2JqWzMxMS4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMzMwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMzMxLjBdCisgICAgX19vWydlbmFibGVGbGFnJ10gPSBmYWxzZQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzQ0LjBdCisKK19fbyA9IF9fb2JqWzMyOV0gIC8vIGFjbWUudXRpbHMuQmVuY2gvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzBdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMzMxXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzMzMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzMzNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMzM2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzMzOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzM0MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMzQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzJdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMzMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzMzXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM0XSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzM1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzVdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzZdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzN10gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzhdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzM5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzOV0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0MF0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNDEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQxXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQyXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQzXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ0XSAgLy8gYWNtZS51dGlscy5CZW5jaC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0NV0gIAorICAgIF9fb1snY2ZnQXJncyddID0gX19vYmpbMzQ2LjBdCisgICAgX19vWydjZmdTY3JpcHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaXNxcnRUZXN0MS5jZmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Byb2ZpbGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncmVsZWFzZScsICdVVEYtOCcpKQorICAgIF9fb1sncmVsZWFzZXMnXSA9IF9fb2JqWzM0Ny4wXQorICAgIF9fb1sndGFyZ2V0J10gPSBfX29ialszNTEuMF0KKyAgICBfX29bJ3Rlc3QnXSA9IF9fb2JqWzQwNC4wXQorCitfX28gPSBfX29ialszNDZdICAKKyAgICBfX29bJ29wdE1vZGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU1BBQ0UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ3XSAgCisgICAgX19vWycwJ10gPSBfX29ialszNDguMF0KKworX19vID0gX19vYmpbMzQ4XSAgCisgICAgX19vWydhdHRycyddID0gX19vYmpbMzQ5LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NoYXJsaWVfc3FydGxpYl90ZXN0JywgJ1VURi04JykpCisgICAgX19vWydvdGhlckZpbGVzJ10gPSBfX29ialszNTAuMF0KKworX19vID0gX19vYmpbMzQ5XSAgCisgICAgX19vWydsYWJlbCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkZWZhdWx0JywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1MF0gIAorCitfX28gPSBfX29ialszNTFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3cnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0NZR1dJTiddID0gZmFsc2UKKyAgICBfX29bJ0dDQ1RBUkcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbWluZ3czMicsICdVVEYtOCcpKQorICAgIF9fb1snR0NDVkVSUyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCczLjQuNScsICdVVEYtOCcpKQorICAgIF9fb1snTE9OR05BTUUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTJGYmluJTJGbWluZ3czMi1nY2MuZXhlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbkRpcmVjdGl2ZVN1cHBvcnRlZCddID0gZmFsc2UKKyAgICBfX29bJ2FyJ10gPSBfX29ialszNTIuMF0KKyAgICBfX29bJ2FyT3B0cyddID0gX19vYmpbMzUzLjBdCisgICAgX19vWydhc20nXSA9IF9fb2JqWzM1NC4wXQorICAgIF9fb1snYXNtT3B0cyddID0gX19vYmpbMzU1LjBdCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY2MnXSA9IF9fb2JqWzM1Ni4wXQorICAgIF9fb1snY2NPcHRzJ10gPSBfX29ialszNTcuMF0KKyAgICBfX29bJ2NtZFByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBhdGlibGVTdWZmaXhlcyddID0gX19vYmpbMzU4LjBdCisgICAgX19vWydkZWJ1Z0dlbiddID0gX19vYmpbMzU5LjBdCisgICAgX19vWydkbGxFeHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnNvJywgJ1VURi04JykpCisgICAgX19vWydleHRlbnNpb25zJ10gPSBfX29ialszNjAuMF0KKyAgICBfX29bJ2luY2x1ZGVPcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snaXNhJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3g4NicsICdVVEYtOCcpKQorICAgIF9fb1snbG5rJ10gPSBfX29ialszNjguMF0KKyAgICBfX29bJ2xua09wdHMnXSA9IF9fb2JqWzM2OS4wXQorICAgIF9fb1snbW9kZWwnXSA9IF9fb2JqWzM3MC4wXQorICAgIF9fb1snbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNaW5ndycsICdVVEYtOCcpKQorICAgIF9fb1snb3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnV2luZG93cycsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaG9zdC5wbGF0Zm9ybXMuUEMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BsYXRmb3JtcyddID0gX19vYmpbMzcxLjBdCisgICAgX19vWydwcm9maWxlcyddID0gX19vYmpbMzcyLjBdCisgICAgX19vWydyb290RGlyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2UlM0ElMkZydHNjJTJGbWluZ3cnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3J0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5ydHM4NkdXJywgJ1VURi04JykpCisgICAgX19vWydzZWN0TWFwJ10gPSBfX29ialszODUuMF0KKyAgICBfX29bJ3N0ZEluY2x1ZGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251JTJGdGFyZ2V0cyUyRnN0ZC5oJywgJ1VURi04JykpCisgICAgX19vWydzdGRUeXBlcyddID0gX19vYmpbMzg2LjBdCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnODZHVycsICdVVEYtOCcpKQorICAgIF9fb1sndmVyc2lvbiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyU3QjElMkMwJTJDMy40JTJDNScsICdVVEYtOCcpKQorICAgIF9fb1sndmVyc2lvbk1hcCddID0gX19vYmpbNDAzLjBdCisKK19fbyA9IF9fb2JqWzM1Ml0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2FyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmFyJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4cm9vdERpciUyOSUyRiUyNCUyOEdDQ1RBUkclMjklMkZiaW4lMkZhcicsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTNdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9hck9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGYXJPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1NF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2FzbQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZhc20nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGJTI0JTI4TE9OR05BTUUlMjkrLWMrLXgrYXNzZW1ibGVyJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9hc21PcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmFzbU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzU2XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvY2MKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGY2MnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGJTI0JTI4TE9OR05BTUUlMjkrLWMrLU1EKy1NRislMjQlNDAuZGVwJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTddICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9jY09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGY2NPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLVd1bnVzZWQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctRGZhciUzRCsnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzU4XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmNvbXBhdGlibGVTdWZmaXhlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTldICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9kZWJ1Z0dlbgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZkZWJ1Z0dlbicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjBdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmV4dGVuc2lvbnMnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5DJ10gPSBfX29ialszNjEuMF0KKyAgICBfX29bJy5hc20nXSA9IF9fb2JqWzM2Mi4wXQorICAgIF9fb1snLmMnXSA9IF9fb2JqWzM2My4wXQorICAgIF9fb1snLmNjJ10gPSBfX29ialszNjQuMF0KKyAgICBfX29bJy5jcHAnXSA9IF9fb2JqWzM2NS4wXQorICAgIF9fb1snLmN4eCddID0gX19vYmpbMzY2LjBdCisgICAgX19vWycuczg2R1cnXSA9IF9fb2JqWzM2Ny4wXQorCitfX28gPSBfX29ialszNjFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuQycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGZXh0ZW5zaW9ucyUyRiUyNy5DJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLkMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzYyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGZXh0ZW5zaW9ucyUyRiUyNy5hc20lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYXNtJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2M10gIC8vIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LmMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2MnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY0XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmNjJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LmNjJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNjJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2NV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jcHAnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmV4dGVuc2lvbnMlMkYlMjcuY3BwJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNwcCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjZdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3h4JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LmN4eCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jeHgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY3XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLnM4NkdXJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LnM4NkdXJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM4NkdXJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2OF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2xuaworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZsbmsnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGJTI0JTI4TE9OR05BTUUlMjknLCAnVVRGLTgnKSkKKyAgICBfX29bJ29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2OV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2xua09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGbG5rT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1sc3RkYyUyQiUyQistTCUyNCUyOHJvb3REaXIlMjklMkZsaWInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzcwXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvbW9kZWwKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGbW9kZWwnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2VuZGlhbiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdsaXR0bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzcxXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcGxhdGZvcm1zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnBsYXRmb3JtcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdob3N0LnBsYXRmb3Jtcy5QQycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzJdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcycsICdVVEYtOCcpKQorICAgIF9fb1snY292ZXJhZ2UnXSA9IF9fb2JqWzM3My4wXQorICAgIF9fb1snZGVidWcnXSA9IF9fb2JqWzM3Ni4wXQorICAgIF9fb1sncHJvZmlsZSddID0gX19vYmpbMzc5LjBdCisgICAgX19vWydyZWxlYXNlJ10gPSBfX29ialszODIuMF0KKworX19vID0gX19vYmpbMzczXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzc0LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszNzUuMF0KKyAgICBfX29bJ2xpbmtPcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzRdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWZwcm9maWxlLWFyY3MrLWZ0ZXN0LWNvdmVyYWdlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3NV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzZdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNzcuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM3OC4wXQorICAgIF9fb1snbGlua09wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc3XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1nJywgJ1VURi04JykpCisgICAgX19vWydkZWZzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1EX0RFQlVHXyUzRDEnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc4XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3OV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszODAuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM4MS4wXQorICAgIF9fb1snbGlua09wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLXBnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4MF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcrLXBnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4MV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzgyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM4My4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzg0LjBdCisgICAgX19vWydsaW5rT3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzgzXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctTzInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg0XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zZWN0TWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnNlY3RNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg2XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3RfQ2hhciddID0gX19vYmpbMzg3LjBdCisgICAgX19vWyd0X0RvdWJsZSddID0gX19vYmpbMzg4LjBdCisgICAgX19vWyd0X0Zsb2F0J10gPSBfX29ialszODkuMF0KKyAgICBfX29bJ3RfRnhuJ10gPSBfX29ialszOTAuMF0KKyAgICBfX29bJ3RfSUFyZyddID0gX19vYmpbMzkxLjBdCisgICAgX19vWyd0X0ludCddID0gX19vYmpbMzkyLjBdCisgICAgX19vWyd0X0ludDE2J10gPSBfX29ialszOTMuMF0KKyAgICBfX29bJ3RfSW50MzInXSA9IF9fb2JqWzM5NC4wXQorICAgIF9fb1sndF9JbnQ0MCddID0gX19vYmpbMzk1LjBdCisgICAgX19vWyd0X0ludDY0J10gPSBfX29ialszOTYuMF0KKyAgICBfX29bJ3RfSW50OCddID0gX19vYmpbMzk3LjBdCisgICAgX19vWyd0X0xEb3VibGUnXSA9IF9fb2JqWzM5OC4wXQorICAgIF9fb1sndF9MTG9uZyddID0gX19vYmpbMzk5LjBdCisgICAgX19vWyd0X0xvbmcnXSA9IF9fb2JqWzQwMC4wXQorICAgIF9fb1sndF9QdHInXSA9IF9fb2JqWzQwMS4wXQorICAgIF9fb1sndF9TaG9ydCddID0gX19vYmpbNDAyLjBdCisKK19fbyA9IF9fb2JqWzM4N10gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfQ2hhcgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfQ2hhcicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbMzg4XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0RvdWJsZScsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzg5XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9GbG9hdAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfRmxvYXQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM5MF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfRnhuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9GeG4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM5MV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSUFyZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfSUFyZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzkyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0ludCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzkzXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQxNgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfSW50MTYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAyCisgICAgX19vWydzaXplJ10gPSAyCisKK19fbyA9IF9fb2JqWzM5NF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50MzIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0ludDMyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszOTVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDQwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JbnQ0MCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTZdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDY0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JbnQ2NCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzk3XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ4CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JbnQ4JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ialszOThdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xEb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0xEb3VibGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSAxMgorCitfX28gPSBfX29ialszOTldICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xMb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9MTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDAwXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Mb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9Mb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0MDFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1B0cgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfUHRyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0MDJdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1Nob3J0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9TaG9ydCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbNDAzXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvdmVyc2lvbk1hcAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZ2ZXJzaW9uTWFwJywgJ1VURi04JykpCisgICAgX19vWydnY2MzLjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMzLjIlMkMwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwNF0gIAorCitkZWxldGUgX19vCitkZWxldGUgX19vYmoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnJ0YS54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnJ0YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzcyZGZjNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cucnRhLnhtbApAQCAtMCwwICsxLDExMiBAQAorPHhkYy5ydW50aW1lLlR5cGVzLlJ0YURlY29kZXJEYXRhPg0KKyAgPHRhcmdldE5hbWU+Z251LnRhcmdldHMuTWluZ3c8L3RhcmdldE5hbWU+DQorICA8YmluYXJ5UGFyc2VyPnVuZGVmaW5lZDwvYmluYXJ5UGFyc2VyPg0KKyAgPGVuZGlhbj5saXR0bGU8L2VuZGlhbj4NCisgIDxiaXRzUGVyQ2hhcj44PC9iaXRzUGVyQ2hhcj4NCisgIDxhcmdTaXplPjQ8L2FyZ1NpemU+DQorICA8ZXZlbnRTaXplPjQ4PC9ldmVudFNpemU+DQorICA8bG9nZ2Vycy1sZW5ndGg+MDwvbG9nZ2Vycy1sZW5ndGg+DQorICA8bW9kTWFwLWxlbmd0aD4xNzwvbW9kTWFwLWxlbmd0aD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Bc3NlcnQiPg0KKyAgICA8aWQ+MzI3NzA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Db3JlIj4NCisgICAgPGlkPjMyNzcxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiPg0KKyAgICA8aWQ+MzI3NzI8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5EaWFncyI+DQorICAgIDxpZD4zMjc3MzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkVycm9yIj4NCisgICAgPGlkPjMyNzc0PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuR2F0ZSI+DQorICAgIDxpZD4zMjc3NTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkdhdGVOdWxsIj4NCisgICAgPGlkPjMyNzc2PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nIj4NCisgICAgPGlkPjMyNzc3PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTWFpbiI+DQorICAgIDxpZD4zMjc3ODwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLk1lbW9yeSI+DQorICAgIDxpZD4zMjc3OTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkhlYXBTdGQiPg0KKyAgICA8aWQ+MzI3ODA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5TdGFydHVwIj4NCisgICAgPGlkPjMyNzgxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzdGVtIj4NCisgICAgPGlkPjMyNzgyPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzTWluIj4NCisgICAgPGlkPjMyNzgzPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuVGV4dCI+DQorICAgIDxpZD4zMjc4NDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9ImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIj4NCisgICAgPGlkPjMyNzg3PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0iYWNtZS51dGlscy5CZW5jaCI+DQorICAgIDxpZD4zMjc4ODwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPGV2dE1hcC1sZW5ndGg+NDwvZXZ0TWFwLWxlbmd0aD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9jb25zdHJ1Y3QiPg0KKyAgICA8aWQ+NDY4PC9pZD4NCisgICAgPG1zZz4lM0MtLStjb25zdHJ1Y3QlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2NyZWF0ZSI+DQorICAgIDxpZD40OTI8L2lkPg0KKyAgICA8bXNnPiUzQy0tK2NyZWF0ZSUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfZGVzdHJ1Y3QiPg0KKyAgICA8aWQ+NTEzPC9pZD4NCisgICAgPG1zZz4tLSUzRStkZXN0cnVjdCUzQSslMjglMjVwJTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9kZWxldGUiPg0KKyAgICA8aWQ+NTMyPC9pZD4NCisgICAgPG1zZz4tLSUzRStkZWxldGUlM0ErJTI4JTI1cCUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorPC94ZGMucnVudGltZS5UeXBlcy5SdGFEZWNvZGVyRGF0YT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cueGRjLmluYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNTJmN2RlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy54ZGMuaW5jCkBAIC0wLDAgKzEsMiBAQAoraXNxcnRUZXN0MS5jZmcKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuY2ZnCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnhkbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cueGRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjYmRhY2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLnhkbApAQCAtMCwwICsxLDY3IEBACisvKiB0aGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBieSBsaW5rY21kLnhkdCBmcm9tIHRoZSBnbnUudGFyZ2V0cyBwYWNrYWdlICovCisKKy8qIGZ1bmN0aW9uIGFsaWFzZXMgKi8KK194ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0UgPSBfeGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GOworX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19FID0gX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19GOworX3hkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FID0gX3hkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19GOworX3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19FID0gX3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19GOworX3hkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0UgPSBfeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0Y7CitfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0Y7CitfeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UgPSBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0Y7CitfeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRSA9IF94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GOworX2FjbWVfdXRpbHNfQmVuY2hfZW5kX19FID0gX2FjbWVfdXRpbHNfQmVuY2hfZW5kX19GOworX3hkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRjsKK194ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UgPSBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GOworX3hkY19ydW50aW1lX0xvZ19kb1ByaW50X19FID0gX3hkY19ydW50aW1lX0xvZ19kb1ByaW50X19GOworX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSA9IF94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0Y7CitfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FID0gX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRjsKK194ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRSA9IF94ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRjsKK194ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UgPSBfeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GOworX3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRjsKK194ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRjsKK194ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSA9IF94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRjsKK194ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FID0gX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19GOworX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UgPSBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRjsKK194ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRSA9IF94ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRjsKK194ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRSA9IF94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19GOworX2FjbWVfdXRpbHNfQmVuY2hfYmVnaW5fX0UgPSBfYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRjsKK19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FID0gX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0Y7CitfeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0Y7CitfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FID0gX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19GOworX3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19GOworX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSA9IF94ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9leGl0X19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9leGl0X19GOworX3hkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0Y7CitfeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FID0gX3hkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRSA9IF94ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRjsKK194ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19FID0gX3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0Y7CitfeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GOworX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSA9IF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0Y7CitfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UgPSBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0Y7CitfeGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRSA9IF94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GOworX3hkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRjsKK194ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FID0gX3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0Y7CisKKy8qIGlucHV0IGxpYnJhcmllcyAqLworSU5QVVQoCisgICAgIkQ6XHdvcmtcdHV0b3JpYWxccmVwb1xhY21lXHV0aWxzXGxpYlxhY21lLnV0aWxzLmE4NkdXIgorICAgICJEOlx3b3JrXHR1dG9yaWFsXHJlcG9cYWNtZVx1dGlsc1xjbG9ja3NcbGliXGFjbWUudXRpbHMuY2xvY2tzLmE4NkdXIgorICAgICJFOlxydHNjXHhkY3Rvb2xzXzNfMTVfMDBfMjlccGFja2FnZXNcZ251XHRhcmdldHNccnRzODZHV1xsaWJcZ251LnRhcmdldHMucnRzODZHVy5hODZHVyIKKyAgICAiRDpcd29ya1x0dXRvcmlhbFxyZXBvXGNoYXJsaWVcc3FydGxpYlxsaWJcaXNxcnRfbG9vcC5hODZHVyIKKykKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS54NjRQLm1hcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS54NjRQLm1hcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2I1ZTZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FLng2NFAubWFwCkBAIC0wLDAgKzEsNzQ3IEBACisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAgICAgICAgICAgICBUTVMzMjBDNnggTGlua2VyIFBDIHY2LjEuNSAgICAgICAgICAgICAgICAgICAgICANCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCis+PiBMaW5rZWQgTW9uIE1hciAxNiAxNzo1MjoyNSAyMDA5DQorDQorT1VUUFVUIEZJTEUgTkFNRTogICA8aXNxcnRUZXN0MS1USU1FLng2NFA+DQorRU5UUlkgUE9JTlQgU1lNQk9MOiAiX2NfaW50MDAiICBhZGRyZXNzOiAwMDgwMmRhMA0KKw0KKw0KK01FTU9SWSBDT05GSUdVUkFUSU9ODQorDQorICAgICAgICAgbmFtZSAgICAgICAgICAgIG9yaWdpbiAgICBsZW5ndGggICAgICB1c2VkICAgICB1bnVzZWQgICBhdHRyICAgIGZpbGwNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0gIC0tLS0gIC0tLS0tLS0tDQorICBJUkFNICAgICAgICAgICAgICAgICAgMDA4MDAwMDAgICAwMDIwMDAwMCAgMDAwMDQxODAgIDAwMWZiZTgwICBSVyBYDQorICBERFIgICAgICAgICAgICAgICAgICAgODAwMDAwMDAgICAxMDAwMDAwMCAgMDAwMDM2M2EgIDBmZmZjOWM2ICBSV0lYDQorDQorDQorU0VDVElPTiBBTExPQ0FUSU9OIE1BUA0KKw0KKyBvdXRwdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcy8NCitzZWN0aW9uICAgcGFnZSAgICBvcmlnaW4gICAgICBsZW5ndGggICAgICAgaW5wdXQgc2VjdGlvbnMNCistLS0tLS0tLSAgLS0tLSAgLS0tLS0tLS0tLSAgLS0tLS0tLS0tLSAgIC0tLS0tLS0tLS0tLS0tLS0NCisucGluaXQgICAgIDAgICAgODAwMDAwMDAgICAgMDAwMDAwMDAgICAgIFVOSU5JVElBTElaRUQNCisNCisudGV4dCAgICAgIDAgICAgMDA4MDAwMDAgICAgMDAwMDQxODAgICAgIA0KKyAgICAgICAgICAgICAgICAgIDAwODAwMDAwICAgIDAwMDAwNzgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2RvUHJpbnRfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDA3ODAgICAgMDAwMDAyZTAgICAgIGlzcXJ0X3Vucm9sbC5hNjRQIDogaXNxcnRfdW5yb2xsLm82NFAgKC50ZXh0KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAwYTYwICAgIDAwMDAwMmEwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IENvcmVfbWVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9Db3JlX2NyZWF0ZU9iamVjdF9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMGQwMCAgICAwMDAwMDI4MCAgICAgcnRzNjRwbHVzLmxpYiA6IG1lbW9yeS5vYmogKC50ZXh0Ol9mcmVlKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAwZjgwICAgIDAwMDAwMjAwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN0YXJ0dXAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxMTgwICAgIDAwMDAwMWUwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfSW5zdGFuY2VfaW5pdF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMTM2MCAgICAwMDAwMDFhMCAgICAgcnRzNjRwbHVzLmxpYiA6IGltYXRoNDAub2JqICgudGV4dDpfX2RpdnVsKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxNTAwICAgIDAwMDAwMWEwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDE2YTAgICAgMDAwMDAxODAgICAgIHJ0czY0cGx1cy5saWIgOiBtZW1vcnkub2JqICgudGV4dDpfbWFsbG9jKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxODIwICAgIDAwMDAwMTgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFRleHQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMTlhMCAgICAwMDAwMDE2MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBFcnJvci5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxYjAwICAgIDAwMDAwMTIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMWMyMCAgICAwMDAwMDEyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMWQ0MCAgICAwMDAwMDEwMCAgICAgYm9vdC5hNjRQIDogYXV0b2luaXQubzY0UCAoLnRleHQ6X19hdXRvX2luaXQpDQorICAgICAgICAgICAgICAgICAgMDA4MDFlNDAgICAgMDAwMDAxMDAgICAgIHJ0czY0cGx1cy5saWIgOiBzaW5pdC5vYmogKC50ZXh0Ol9jYWxsX2R0b3JzKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxZjQwICAgIDAwMDAwMTAwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IE1lbW9yeS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyMDQwICAgIDAwMDAwMTAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN0YXJ0dXAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMjE0MCAgICAwMDAwMDBlMCAgICAgcnRzNjRwbHVzLmxpYiA6IGF0b2kub2JqICgudGV4dDpfYXRvaSkNCisgICAgICAgICAgICAgICAgICAwMDgwMjIyMCAgICAwMDAwMDBlMCAgICAgICAgICAgICAgICAgICA6IGV4aXQub2JqICgudGV4dDpfZXhpdCkNCisgICAgICAgICAgICAgICAgICAwMDgwMjMwMCAgICAwMDAwMDBlMCAgICAgICAgICAgICAgICAgICA6IG1lbXNldC5vYmogKC50ZXh0Ol9tZW1zZXQpDQorICAgICAgICAgICAgICAgICAgMDA4MDIzZTAgICAgMDAwMDAwZTAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogQ29yZV9tZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyNGMwICAgIDAwMDAwMGUwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUykNCisgICAgICAgICAgICAgICAgICAwMDgwMjVhMCAgICAwMDAwMDBlMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDI2ODAgICAgMDAwMDAwYzAgICAgIHJ0czY0cGx1cy5saWIgOiB0cmdkcnYub2JqICgudGV4dDpfSE9TVHdyaXRlKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyNzQwICAgIDAwMDAwMGMwICAgICAgICAgICAgICAgICAgIDogZGl2dS5vYmogKC50ZXh0Ol9fZGl2dSkNCisgICAgICAgICAgICAgICAgICAwMDgwMjgwMCAgICAwMDAwMDBjMCAgICAgICAgICAgICAgICAgICA6IGF0ZXhpdC5vYmogKC50ZXh0Ol9hdGV4aXQpDQorICAgICAgICAgICAgICAgICAgMDA4MDI4YzAgICAgMDAwMDAwYzAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3lzTWluLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDI5ODAgICAgMDAwMDAwYzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzTWluLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDJhNDAgICAgMDAwMDAwYzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzdGVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fZm9ybWF0TnVtX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyYjAwICAgIDAwMDAwMGMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFRleHQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyYmMwICAgIDAwMDAwMGEwICAgICBydHM2NHBsdXMubGliIDogdHJnZHJ2Lm9iaiAoLnRleHQ6X0hPU1RjbG9jaykNCisgICAgICAgICAgICAgICAgICAwMDgwMmM2MCAgICAwMDAwMDBhMCAgICAgICAgICAgICAgICAgICA6IHJlbXUub2JqICgudGV4dDpfX3JlbXUpDQorICAgICAgICAgICAgICAgICAgMDA4MDJkMDAgICAgMDAwMDAwYTAgICAgIGFjbWUudXRpbHMuYTY0UCA6IEJlbmNoLm82NFAgKC50ZXh0Ol9hY21lX3V0aWxzX0JlbmNoX2VuZF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMmRhMCAgICAwMDAwMDBhMCAgICAgYm9vdC5hNjRQIDogYm9vdC5vNjRQICgudGV4dDpfY19pbnQwMCkNCisgICAgICAgICAgICAgICAgICAwMDgwMmU0MCAgICAwMDAwMDBhMCAgICAgcnRzNjRwbHVzLmxpYiA6IG1lbWNweTY0Lm9iaiAoLnRleHQ6X21lbWNweSkNCisgICAgICAgICAgICAgICAgICAwMDgwMmVlMCAgICAwMDAwMDBhMCAgICAgICAgICAgICAgICAgICA6IG1lbW9yeS5vYmogKC50ZXh0Ol9taW5zZXJ0KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyZjgwICAgIDAwMDAwMGEwICAgICAgICAgICAgICAgICAgIDogbWVtb3J5Lm9iaiAoLnRleHQ6X21yZW1vdmUpDQorICAgICAgICAgICAgICAgICAgMDA4MDMwMjAgICAgMDAwMDAwYTAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogQXNzZXJ0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9Bc3NlcnRfcmFpc2VfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDMwYzAgICAgMDAwMDAwYTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRXJyb3IubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMTYwICAgIDAwMDAwMGEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c01pbi5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMjAwICAgIDAwMDAwMGEwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzJhMCAgICAwMDAwMDBhMCAgICAgaXNxcnRUZXN0MS5vNjRQICgudGV4dCkNCisgICAgICAgICAgICAgICAgICAwMDgwMzM0MCAgICAwMDAwMDA4MCAgICAgYWNtZS51dGlscy5hNjRQIDogQmVuY2gubzY0UCAoLnRleHQ6X2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDMzYzAgICAgMDAwMDAwODAgICAgICAgICAgICAgICAgICAgICA6IEJlbmNoLm82NFAgKC50ZXh0Ol9hY21lX3V0aWxzX0JlbmNoX2JlZ2luX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNDQwICAgIDAwMDAwMDgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IENvcmVfbGFiZWwubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfYXNzaWduTGFiZWxfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDM0YzAgICAgMDAwMDAwODAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQ29yZV9wYXJhbXMubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNTQwICAgIDAwMDAwMDgwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzVjMCAgICAwMDAwMDA4MCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBTeXN0ZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaGFyX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNjQwICAgIDAwMDAwMDgwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX3J0c0V4aXRfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDM2YzAgICAgMDAwMDAwODAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVGV4dC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfVGV4dF9wcmludFZpc0Z4bl9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzc0MCAgICAwMDAwMDA4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3hwcmludGZfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDM3YzAgICAgMDAwMDAwNjAgICAgIHJ0czY0cGx1cy5saWIgOiB0cmdtc2cub2JqICgudGV4dDpfcmVhZG1zZykNCisgICAgICAgICAgICAgICAgICAwMDgwMzgyMCAgICAwMDAwMDA2MCAgICAgICAgICAgICAgICAgICA6IHRyZ21zZy5vYmogKC50ZXh0Ol93cml0ZW1zZykNCisgICAgICAgICAgICAgICAgICAwMDgwMzg4MCAgICAwMDAwMDA2MCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBNZW1vcnkubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM4ZTAgICAgMDAwMDAwNjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzTWluLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM5NDAgICAgMDAwMDAwNjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzdGVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM5YTAgICAgMDAwMDAwNjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3lzdGVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2EwMCAgICAwMDAwMDA2MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYTYwICAgIDAwMDAwMDQwICAgICBydHM2NHBsdXMubGliIDogc2luaXQub2JqICgudGV4dDpfX19hZGRfZHRvcikNCisgICAgICAgICAgICAgICAgICAwMDgwM2FhMCAgICAwMDAwMDA0MCAgICAgICAgICAgICAgICAgICA6IGFyZ3NfbWFpbi5vYmogKC50ZXh0Ol9fYXJnc19tYWluKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYWUwICAgIDAwMDAwMDQwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEVycm9yLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2IyMCAgICAwMDAwMDA0MCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUykNCisgICAgICAgICAgICAgICAgICAwMDgwM2I2MCAgICAwMDAwMDA0MCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MpDQorICAgICAgICAgICAgICAgICAgMDA4MDNiYTAgICAgMDAwMDAwNDAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3lzTWluLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2JlMCAgICAwMDAwMDA0MCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzYzIwICAgIDAwMDAwMDQwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2M2MCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiB4ZGNfbm9pbml0Lm82NFAgKC50ZXh0Ol9fX3hkY19faW5pdCkNCisgICAgICAgICAgICAgICAgICAwMDgwM2M4MCAgICAwMDAwMDAyMCAgICAgcnRzNjRwbHVzLmxpYiA6IF9sb2NrLm9iaiAoLnRleHQ6X19ub3ApDQorICAgICAgICAgICAgICAgICAgMDA4MDNjYTAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgOiBleGl0Lm9iaiAoLnRleHQ6X2Fib3J0KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzY2MwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2NlMCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLnRleHQ6X2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDNkMDAgICAgMDAwMDAwMjAgICAgIHJ0czY0cGx1cy5saWIgOiBjbG9jay5vYmogKC50ZXh0Ol9jbG9jaykNCisgICAgICAgICAgICAgICAgICAwMDgwM2QyMCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBFcnJvci5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2Q0MCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBFcnJvci5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2Q2MCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzZDgwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEdhdGVOdWxsLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2RhMCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBHYXRlTnVsbC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDNkYzAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogR2F0ZS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2RlMCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBHYXRlLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzZTAwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2UyMCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2U0MCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDNlNjAgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogSGVhcFN0ZC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2U4MCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwM2VhMCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBIZWFwU3RkLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDNlYzAgICAgMDAwMDAwMjAgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2FsbG9jX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzZWUwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9mcmVlX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzZjAwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IE1lbW9yeS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwM2YyMCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNZW1vcnkubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX01lbW9yeV9mcmVlX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzZjQwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE1lbW9yeS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDNmNjAgICAgMDAwMDAwMjAgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDNmODAgICAgMDAwMDAwMjAgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzZmEwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzZmMwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzZmUwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDQwMDAgICAgMDAwMDAwMjAgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDQwMjAgICAgMDAwMDAwMjAgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDQwNDAgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3lzTWluLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDQwNjAgICAgMDAwMDAwMjAgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9lbnRlcl9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwNDA4MCAgICAwMDAwMDAyMCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODA0MGEwICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODA0MGMwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODA0MGUwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODA0MTAwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODA0MTIwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFRleHQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDQxNDAgICAgMDAwMDAwMjAgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwNDE2MCAgICAwMDAwMDAyMCAgICAgYWNtZS51dGlscy5jbG9ja3MuYTY0UCA6IENsb2NrU3RkLm82NFAgKC50ZXh0KQ0KKw0KKy5zdGFjayAgICAgMCAgICA4MDAwMDAwMCAgICAwMDAwMTAwMCAgICAgVU5JTklUSUFMSVpFRA0KKyAgICAgICAgICAgICAgICAgIDgwMDAwMDAwICAgIDAwMDAwMDA4ICAgICBib290LmE2NFAgOiBib290Lm82NFAgKC5zdGFjaykNCisgICAgICAgICAgICAgICAgICA4MDAwMDAwOCAgICAwMDAwMGZmOCAgICAgLS1IT0xFLS0NCisNCisuZGF0YSAgICAgIDAgICAgODAwMDAwMDAgICAgMDAwMDAwMDAgICAgIFVOSU5JVElBTElaRUQNCisNCisuYnNzICAgICAgIDAgICAgODAwMDAwMDAgICAgMDAwMDAwMDAgICAgIFVOSU5JVElBTElaRUQNCisNCisuc3lzbWVtICAgIDAgICAgODAwMDEwMDAgICAgMDAwMDEwMDAgICAgIFVOSU5JVElBTElaRUQNCisgICAgICAgICAgICAgICAgICA4MDAwMTAwMCAgICAwMDAwMDAwOCAgICAgcnRzNjRwbHVzLmxpYiA6IG1lbW9yeS5vYmogKC5zeXNtZW0pDQorICAgICAgICAgICAgICAgICAgODAwMDEwMDggICAgMDAwMDBmZjggICAgIC0tSE9MRS0tDQorDQorLmNvbnN0ICAgICAwICAgIDgwMDAyMDAwICAgIDAwMDAwODhhICAgICANCisgICAgICAgICAgICAgICAgICA4MDAwMjAwMCAgICAwMDAwMDJiOSAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSkNCisgICAgICAgICAgICAgICAgICA4MDAwMjJiOSAgICAwMDAwMDAwMyAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyMmJjICAgIDAwMDAwMTFmICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6LnN0cmluZykNCisgICAgICAgICAgICAgICAgICA4MDAwMjNkYiAgICAwMDAwMDAwNCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBBc3NlcnQubzY0UCAoLmNvbnN0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyM2RmICAgIDAwMDAwMDAxICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDIzZTAgICAgMDAwMDAxMDEgICAgIHJ0czY0cGx1cy5saWIgOiBjdHlwZS5vYmogKC5jb25zdDpfX2N0eXBlc18pDQorICAgICAgICAgICAgICAgICAgODAwMDI0ZTEgICAgMDAwMDAwMDcgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3lzdGVtLm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMjRlOCAgICAwMDAwMDEwMCAgICAgaXNxcnRfdW5yb2xsLmE2NFAgOiBpc3FydF91bnJvbGwubzY0UCAoLmNvbnN0Ol9zcXFfdGFibGUkMSkNCisgICAgICAgICAgICAgICAgICA4MDAwMjVlOCAgICAwMDAwMDA1NCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSkNCisgICAgICAgICAgICAgICAgICA4MDAwMjYzYyAgICAwMDAwMDA0MCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBUZXh0Lm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMjY3YyAgICAwMDAwMDAzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBFcnJvci5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDI2YWUgICAgMDAwMDAwMmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3RhcnR1cC5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDI2ZDggICAgMDAwMDAwMjggICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjcwMCAgICAwMDAwMDAyNCAgICAgaXNxcnRUZXN0MS5vNjRQICguY29uc3Q6LnN0cmluZykNCisgICAgICAgICAgICAgICAgICA4MDAwMjcyNCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBMb2cubzY0UCAoLmNvbnN0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzQ0ICAgIDAwMDAwMDIwICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3NjQgICAgMDAwMDAwMWYgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogQ29yZV9tZW0ubzY0UCAoLmNvbnN0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzgzICAgIDAwMDAwMDAxICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDI3ODQgICAgMDAwMDAwMWMgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyN2EwICAgIDAwMDAwMDExICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICguY29uc3Q6X2RpZ3RvaGV4KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyN2IxICAgIDAwMDAwMDA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IERpYWdzLm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMjdiNSAgICAwMDAwMDAwMyAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyN2I4ICAgIDAwMDAwMDBjICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyN2M0ICAgIDAwMDAwMDA5ICAgICBhY21lLnV0aWxzLmE2NFAgOiBCZW5jaC5vNjRQICguY29uc3Q6LnN0cmluZykNCisgICAgICAgICAgICAgICAgICA4MDAwMjdjZCAgICAwMDAwMDAwMyAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyN2QwICAgIDAwMDAwMDA4ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3ZDggICAgMDAwMDAwMDggICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyN2UwICAgIDAwMDAwMDA2ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyN2U2ICAgIDAwMDAwMDAyICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDI3ZTggICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3ZWMgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3ZjAgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyN2Y0ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI3ZjggICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyN2ZjICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODAwICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4MDQgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4MDggICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4MGMgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjgxMCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjgxNCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjgxOCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjgxYyAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4MjAgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjgyNCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4MjggICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4MmMgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjgzMCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODM0ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjgzOCAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODNjICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODQwICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODQ0ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4NDggICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjg0YyAgICAwMDAwMDAwNCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4NTAgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODU0ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODU4ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4NWMgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4NjAgICAgMDAwMDAwMDQgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODY0ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODY4ICAgIDAwMDAwMDA0ICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4NmMgICAgMDAwMDAwMDIgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDphY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4NmUgICAgMDAwMDAwMDIgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMjg3MCAgICAwMDAwMDAwMiAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjg3MiAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODc0ICAgIDAwMDAwMDAyICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4NzYgICAgMDAwMDAwMDIgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMjg3OCAgICAwMDAwMDAwMiAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjg3YSAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODdjICAgIDAwMDAwMDAyICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDI4N2UgICAgMDAwMDAwMDIgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMjg4MCAgICAwMDAwMDAwMiAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMjg4MiAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODg0ICAgIDAwMDAwMDAyICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODg2ICAgIDAwMDAwMDAyICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDI4ODggICAgMDAwMDAwMDIgICAgIGlzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DKQ0KKw0KKy5mYXIgICAgICAgMCAgICA4MDAwMjg5MCAgICAwMDAwMDc2NCAgICAgVU5JTklUSUFMSVpFRA0KKyAgICAgICAgICAgICAgICAgIDgwMDAyODkwICAgIDAwMDAwNGVjICAgICBpc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQICguZmFyKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDdjICAgIDAwMDAwMDA0ICAgICBydHM2NHBsdXMubGliIDogc2luaXQub2JqICguZmFyKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDgwICAgIDAwMDAwMTg4ICAgICAgICAgICAgICAgICAgIDogYXRleGl0Lm9iaiAoLmZhcikNCisgICAgICAgICAgICAgICAgICA4MDAwMmYwOCAgICAwMDAwMDBkMCAgICAgICAgICAgICAgICAgICA6IHRyZ2Rydi5vYmogKC5mYXIpDQorICAgICAgICAgICAgICAgICAgODAwMDJmZDggICAgMDAwMDAwMGMgICAgICAgICAgICAgICAgICAgOiBleGl0Lm9iaiAoLmZhcikNCisgICAgICAgICAgICAgICAgICA4MDAwMmZlNCAgICAwMDAwMDAwOCAgICAgICAgICAgICAgICAgICA6IF9sb2NrLm9iaiAoLmZhcikNCisgICAgICAgICAgICAgICAgICA4MDAwMmZlYyAgICAwMDAwMDAwOCAgICAgICAgICAgICAgICAgICA6IG1lbW9yeS5vYmogKC5mYXIpDQorDQorLmNpbml0ICAgICAwICAgIDgwMDAyZmY4ICAgIDAwMDAwMzJjICAgICANCisgICAgICAgICAgICAgICAgICA4MDAwMmZmOCAgICAwMDAwMDI3NCAgICAgaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCAoLmNpbml0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMjZjICAgIDAwMDAwMDA0ICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDMyNzAgICAgMDAwMDAwMmMgICAgIHJ0czY0cGx1cy5saWIgOiBleGl0Lm9iaiAoLmNpbml0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMjljICAgIDAwMDAwMDA0ICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDMyYTAgICAgMDAwMDAwMmMgICAgICAgICAgICAgICAgICAgOiBtZW1vcnkub2JqICguY2luaXQpDQorICAgICAgICAgICAgICAgICAgODAwMDMyY2MgICAgMDAwMDAwMDQgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMzJkMCAgICAwMDAwMDAxYyAgICAgICAgICAgICAgICAgICA6IF9sb2NrLm9iaiAoLmNpbml0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMmVjICAgIDAwMDAwMDA0ICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDMyZjAgICAgMDAwMDAwMWMgICAgICAgICAgICAgICAgICAgOiBhdGV4aXQub2JqICguY2luaXQpDQorICAgICAgICAgICAgICAgICAgODAwMDMzMGMgICAgMDAwMDAwMDQgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMzMxMCAgICAwMDAwMDAwYyAgICAgICAgICAgICAgICAgICA6IHNpbml0Lm9iaiAoLmNpbml0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMzFjICAgIDAwMDAwMDA0ICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDMzMjAgICAgMDAwMDAwMDQgICAgICgucGFkLmNpbml0KSBbZmlsbCA9IDBdDQorDQorLmFyZ3MgICAgICAwICAgIDgwMDAzMzI0ICAgIDAwMDAwMjAwICAgICANCisgICAgICAgICAgICAgICAgICA4MDAwMzMyNCAgICAwMDAwMDIwMCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKw0KKy5jaW8gICAgICAgMCAgICA4MDAwMzUyOCAgICAwMDAwMDEyMCAgICAgVU5JTklUSUFMSVpFRA0KKyAgICAgICAgICAgICAgICAgIDgwMDAzNTI4ICAgIDAwMDAwMTIwICAgICBydHM2NHBsdXMubGliIDogdHJnbXNnLm9iaiAoLmNpbykNCisNCisNCitHTE9CQUwgU1lNQk9MUzogU09SVEVEIEFMUEhBQkVUSUNBTExZIEJZIE5hbWUgDQorDQorYWRkcmVzcyAgICBuYW1lDQorLS0tLS0tLS0gICAtLS0tDQorODAwMDAwMDAgICAkYnNzDQorODAwMDAwMDAgICAuYnNzDQorZmZmZmZmZmYgICAuZGF0YQ0KK2ZmZmZmZmZmICAgLnRleHQNCiswMDgwM2NhMCAgIEMkJEVYSVQNCiswMDgwMzg3OCAgIEMkJElPJCQNCiswMDgwMmJjMCAgIF9IT1NUY2xvY2sNCiswMDgwMjY4MCAgIF9IT1NUd3JpdGUNCis4MDAwMzUyOCAgIF9fQ0lPQlVGXw0KKzAwMDAxMDAwICAgX19TVEFDS19TSVpFDQorMDAwMDEwMDAgICBfX1NZU01FTV9TSVpFDQorODAwMDJjOTAgICBfX19BU01fXw0KKzgwMDAyYzk0ICAgX19fSVNBX18NCis4MDAwMmM5OCAgIF9fX1BMQVRfXw0KKzgwMDAyYzljICAgX19fVEFSR19fDQorODAwMDJmZTAgICBfX19USV9lbmFibGVfZXhpdF9wcm9maWxlX291dHB1dA0KK2ZmZmZmZmZmICAgX19fVElfcHByb2Zfb3V0X2huZGwNCitmZmZmZmZmZiAgIF9fX1RJX3Byb2ZfZGF0YV9zaXplDQorZmZmZmZmZmYgICBfX19USV9wcm9mX2RhdGFfc3RhcnQNCis4MDAwMmNhMCAgIF9fX1RSRFJfXw0KKzAwODAzYTYwICAgX19fYWRkX2R0b3INCis4MDAwMmQ4MCAgIF9fX2F0ZXhpdF9mdW5jX2lkX18NCitmZmZmZmZmZiAgIF9fX2Jpbml0X18NCis4MDAwMDAwMCAgIF9fX2Jzc19fDQorODAwMDMzMjQgICBfX19jX2FyZ3NfXw0KKzgwMDAyZmY4ICAgX19fY2luaXRfXw0KK2ZmZmZmZmZmICAgX19fZGF0YV9fDQorZmZmZmZmZmYgICBfX19lZGF0YV9fDQorODAwMDAwMDAgICBfX19lbmRfXw0KK2ZmZmZmZmZmICAgX19fZXRleHRfXw0KK2ZmZmZmZmZmICAgX19fcGluaXRfXw0KK2ZmZmZmZmZmICAgX19fdGV4dF9fDQorMDA4MDNjNjAgICBfX194ZGNfX2luaXQNCis4MDAwMmQ3OCAgIF9fX3hkY19faW5pdF9fYWRkcg0KKzAwODAzYWEwICAgX19hcmdzX21haW4NCiswMDgwMWQ0MCAgIF9fYXV0b19pbml0DQorODAwMDJmZDggICBfX2NsZWFudXBfcHRyDQorODAwMDIzZTAgICBfX2N0eXBlc18NCiswMDgwMjc0MCAgIF9fZGl2dQ0KKzAwODAxMzYwICAgX19kaXZ1bA0KKzgwMDAyZmRjICAgX19kdG9yc19wdHINCis4MDAwMmZlNCAgIF9fbG9jaw0KKzAwODAzYzgwICAgX19ub3ANCiswMDgwMmM2MCAgIF9fcmVtdQ0KKzgwMDAwMDAwICAgX19zdGFjaw0KKzgwMDAxMDAwICAgX19zeXNfbWVtb3J5DQorODAwMDJmZTggICBfX3VubG9jaw0KKzAwODAzY2EwICAgX2Fib3J0DQorODAwMDJjYTQgICBfYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmNhOCAgIF9hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhdGVfX1YNCiswMDgwM2NjMCAgIF9hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FDQorMDA4MDMzNDAgICBfYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRg0KKzAwODAzY2UwICAgX2FjbWVfdXRpbHNfQmVuY2hfUENsb2NrX2dldFRpbWVfX0UNCiswMDgwMzNjMCAgIF9hY21lX3V0aWxzX0JlbmNoX2JlZ2luX19GDQorODAwMDI4NmMgICBfYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DDQorMDA4MDJkMDAgICBfYWNtZV91dGlsc19CZW5jaF9lbmRfX0YNCis4MDAwMmNiNCAgIF9hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3Jvb3RfX1YNCiswMDgwM2NlMCAgIF9hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FDQorMDA4MDQxNjAgICBfYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRg0KKzAwMDAwMjAwICAgX2FyZ3NpemUNCiswMDgwMjgwMCAgIF9hdGV4aXQNCiswMDgwMjE0MCAgIF9hdG9pDQorMDA4MDJkYTAgICBfY19pbnQwMA0KKzAwODAxZTQwICAgX2NhbGxfZHRvcnMNCiswMDgwM2QwMCAgIF9jbG9jaw0KKzgwMDAyZDdjICAgX2R0b3JzDQorMDA4MDIyMjAgICBfZXhpdA0KKzAwODAwZDAwICAgX2ZyZWUNCiswMDgwMDc4MCAgIF9pc3FydA0KKzAwODAzMmEwICAgX21haW4NCiswMDgwMTZhMCAgIF9tYWxsb2MNCiswMDgwMmU0MCAgIF9tZW1jcHkNCiswMDgwMjMwMCAgIF9tZW1zZXQNCiswMDgwMzdjMCAgIF9yZWFkbXNnDQorMDA4MDM4MjAgICBfd3JpdGVtc2cNCis4MDAwMjdlOCAgIF94ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MNCis4MDAwMmNiNiAgIF94ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WDQorMDA4MDMwMjAgICBfeGRjX3J1bnRpbWVfQXNzZXJ0X3JhaXNlX19JDQorODAwMDI3ZWMgICBfeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DDQorODAwMDI3ZjAgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQw0KKzgwMDAyN2Y0ICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DDQorODAwMDI3ZjggICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQw0KKzgwMDAyODcwICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQw0KKzgwMDAyY2I4ICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WDQorMDA4MDM0NDAgICBfeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbF9fSQ0KKzAwODAzNGMwICAgX3hkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JDQorMDA4MDBhNjAgICBfeGRjX3J1bnRpbWVfQ29yZV9jcmVhdGVPYmplY3RfX0kNCiswMDgwMjNlMCAgIF94ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSQ0KKzgwMDAyY2JhICAgX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyY2JjICAgX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyN2ZjICAgX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQw0KKzgwMDAyODAwICAgX3hkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DDQorODAwMDJjYmUgICBfeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WDQorODAwMDJjYzAgICBfeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fVg0KKzAwODAzYWUwICAgX3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GDQorMDA4MDNkMjAgICBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRg0KKzAwODAzZDQwICAgX3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0YNCis4MDAwMjg3NCAgIF94ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQw0KKzgwMDAyODA0ICAgX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQw0KKzAwODAzZDYwICAgX3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19FDQorMDA4MDMwYzAgICBfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0YNCis4MDAwMjgwOCAgIF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MNCiswMDgwMTlhMCAgIF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0YNCis4MDAwMmNjNCAgIF94ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YNCiswMDgwM2Q4MCAgIF94ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRg0KKzAwODAzZGEwICAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19GDQorODAwMDJjYzIgICBfeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YNCiswMDgwM2RjMCAgIF94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GDQorMDA4MDNkZTAgICBfeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRg0KKzgwMDAyODBjICAgX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DDQorODAwMDI4MTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DDQorODAwMDI4MTQgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DDQorODAwMDI4MTggICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DDQorMDA4MDNiMjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TDQorMDA4MDExODAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GDQorODAwMDI2ZDggICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MNCis4MDAwMjgxYyAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DDQorODAwMDI4MjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MNCis4MDAwMjgyNCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DDQorODAwMDI4NzggICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DDQorODAwMDJjZTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmQwYyAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMjc0NCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQw0KKzgwMDAyNzg0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MNCiswMDgwMjRjMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TDQorMDA4MDNiNjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUw0KKzgwMDAyZDAwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVg0KKzAwODAzZTAwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UNCiswMDgwMTUwMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19GDQorMDA4MDNlMjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FDQorMDA4MDFiMDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19GDQorMDA4MDNlNDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRQ0KKzAwODAzZTYwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0YNCiswMDgwM2U4MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UNCiswMDgwM2VhMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0YNCis4MDAwMjgyOCAgIF94ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MNCis4MDAwMjgyYyAgIF94ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQw0KKzgwMDAyZDEwICAgX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmQxMiAgIF94ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVg0KKzAwODAzYjIwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlX19sYWJlbF9fUw0KKzAwODAzYjYwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19kZWxldGVfX1MNCiswMDgwM2VjMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2FsbG9jX19FDQorMDA4MDNlZTAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9mcmVlX19FDQorODAwMDI4N2MgICBfeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MNCis4MDAwMmQxNCAgIF94ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WDQorODAwMDJkMTggICBfeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhdGVfX1YNCiswMDgwMWY0MCAgIF94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0YNCiswMDgwM2YwMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GDQorODAwMDI4MzAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MNCiswMDgwM2YyMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRg0KKzAwODAzZjQwICAgX3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GDQorMDA4MDM4ODAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRg0KKzgwMDAyZDFjICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WDQorODAwMDJkMjAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WDQorMDAwMDAwMDEgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQw0KKzAwMDAwMDAxICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DDQorODAwMDI4MzQgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQw0KKzAwODAyMDQwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRg0KKzAwODAzZjYwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSQ0KKzgwMDAyN2QwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DDQorODAwMDI3ZDggICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQw0KKzgwMDAyODM4ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DDQorMDA4MDNmODAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSQ0KKzgwMDAyN2UwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQQ0KKzgwMDAyODNjICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQw0KKzgwMDAyN2I4ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQQ0KKzgwMDAyODQwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQw0KKzAwODAwZjgwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JDQorODAwMDI4OTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQQ0KKzgwMDAyZDI4ICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmQyYyAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGF0ZV9fVg0KKzAwODAzZmEwICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRQ0KKzAwODAzOGUwICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRg0KKzAwODAzZmMwICAgX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRQ0KKzAwODAyOGMwICAgX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRg0KKzgwMDAyODQ0ICAgX3hkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DDQorMDA4MDNmZTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UNCiswMDgwM2JhMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRg0KKzgwMDAyODgwICAgX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQw0KKzAwODAyOTgwICAgX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRg0KKzgwMDAyODQ4ICAgX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DDQorMDA4MDM1NDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSQ0KKzAwODA0MDAwICAgX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRQ0KKzAwODAzMTYwICAgX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRg0KKzAwODA0MDIwICAgX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRQ0KKzAwODA0MDQwICAgX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRg0KKzAwODA0MDYwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FDQorMDA4MDQwODAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UNCis4MDAwMmQ0MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0ENCis4MDAwMjg0YyAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DDQorODAwMDJkMzggICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyZDYwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXRlX19WDQorMDA4MDQwYTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FDQorMDA4MDQwYzAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19GDQorMDA4MDNmYzAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9hYm9ydF9fRQ0KKzAwODAzZmUwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfZXhpdF9fRQ0KKzAwODA0MDAwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcHV0Y2hfX0UNCiswMDgwNDAyMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3JlYWR5X19FDQorMDA4MDQwZTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GDQorMDA4MDNiZTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UNCiswMDgwMzk0MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRg0KKzAwODAzOTQwICAgX3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRg0KKzAwODAwMDAwICAgX3hkY19ydW50aW1lX1N5c3RlbV9kb1ByaW50X19JDQorODAwMDI4NTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQw0KKzAwODAyYTQwICAgX3hkY19ydW50aW1lX1N5c3RlbV9mb3JtYXROdW1fX0kNCiswMDgwMzIwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JDQorMDA4MDNjMjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRQ0KKzAwODAzOWEwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YNCiswMDgwMzVjMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hhcl9fSQ0KKzAwODAzNjQwICAgX3hkY19ydW50aW1lX1N5c3RlbV9ydHNFeGl0X19JDQorMDA4MDQxMDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YNCiswMDgwMzlhMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRg0KKzAwODA0MTAwICAgX3hkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRg0KKzgwMDAyZDZjICAgX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WDQorODAwMDJkNzAgICBfeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXRlX19WDQorODAwMDI4ODQgICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DDQorODAwMDIwMDAgICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BDQorODAwMDI4NTQgICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DDQorMDA4MDNhMDAgICBfeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRg0KKzgwMDAyODg4ICAgX3hkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MNCis4MDAwMjg1OCAgIF94ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQw0KKzgwMDAyODVjICAgX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQw0KKzgwMDAyODYwICAgX3hkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MNCis4MDAwMjVlOCAgIF94ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0ENCis4MDAwMjg2NCAgIF94ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MNCiswMDgwMzZjMCAgIF94ZGNfcnVudGltZV9UZXh0X3ByaW50VmlzRnhuX19JDQorMDA4MDFjMjAgICBfeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0YNCiswMDgwMmIwMCAgIF94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRg0KKzAwODAxODIwICAgX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRg0KKzAwODA0MTIwICAgX3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0YNCiswMDgwMjVhMCAgIF94ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kNCis4MDAwMjg2OCAgIF94ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQw0KKzAwODA0MTQwICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JDQorMDA4MDM3NDAgICBfeGRjX3J1bnRpbWVfVGV4dF94cHJpbnRmX19JDQorZmZmZmZmZmYgICBiaW5pdA0KKzgwMDAyZmY4ICAgY2luaXQNCitmZmZmZmZmZiAgIGVkYXRhDQorODAwMDAwMDAgICBlbmQNCitmZmZmZmZmZiAgIGV0ZXh0DQorZmZmZmZmZmYgICBwaW5pdA0KKw0KKw0KK0dMT0JBTCBTWU1CT0xTOiBTT1JURUQgQlkgU3ltYm9sIEFkZHJlc3MgDQorDQorYWRkcmVzcyAgICBuYW1lDQorLS0tLS0tLS0gICAtLS0tDQorMDAwMDAwMDEgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQw0KKzAwMDAwMDAxICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DDQorMDAwMDAyMDAgICBfYXJnc2l6ZQ0KKzAwMDAxMDAwICAgX19TVEFDS19TSVpFDQorMDAwMDEwMDAgICBfX1NZU01FTV9TSVpFDQorMDA4MDAwMDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2RvUHJpbnRfX0kNCiswMDgwMDc4MCAgIF9pc3FydA0KKzAwODAwYTYwICAgX3hkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JDQorMDA4MDBkMDAgICBfZnJlZQ0KKzAwODAwZjgwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JDQorMDA4MDExODAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GDQorMDA4MDEzNjAgICBfX2RpdnVsDQorMDA4MDE1MDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRg0KKzAwODAxNmEwICAgX21hbGxvYw0KKzAwODAxODIwICAgX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRg0KKzAwODAxOWEwICAgX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRg0KKzAwODAxYjAwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRg0KKzAwODAxYzIwICAgX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19GDQorMDA4MDFkNDAgICBfX2F1dG9faW5pdA0KKzAwODAxZTQwICAgX2NhbGxfZHRvcnMNCiswMDgwMWY0MCAgIF94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0YNCiswMDgwMjA0MCAgIF94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0YNCiswMDgwMjE0MCAgIF9hdG9pDQorMDA4MDIyMjAgICBfZXhpdA0KKzAwODAyMzAwICAgX21lbXNldA0KKzAwODAyM2UwICAgX3hkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JDQorMDA4MDI0YzAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUw0KKzAwODAyNWEwICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlMl9fSQ0KKzAwODAyNjgwICAgX0hPU1R3cml0ZQ0KKzAwODAyNzQwICAgX19kaXZ1DQorMDA4MDI4MDAgICBfYXRleGl0DQorMDA4MDI4YzAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GDQorMDA4MDI5ODAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GDQorMDA4MDJhNDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2Zvcm1hdE51bV9fSQ0KKzAwODAyYjAwICAgX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19GDQorMDA4MDJiYzAgICBfSE9TVGNsb2NrDQorMDA4MDJjNjAgICBfX3JlbXUNCiswMDgwMmQwMCAgIF9hY21lX3V0aWxzX0JlbmNoX2VuZF9fRg0KKzAwODAyZGEwICAgX2NfaW50MDANCiswMDgwMmU0MCAgIF9tZW1jcHkNCiswMDgwMzAyMCAgIF94ZGNfcnVudGltZV9Bc3NlcnRfcmFpc2VfX0kNCiswMDgwMzBjMCAgIF94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRg0KKzAwODAzMTYwICAgX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRg0KKzAwODAzMjAwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kNCiswMDgwMzJhMCAgIF9tYWluDQorMDA4MDMzNDAgICBfYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRg0KKzAwODAzM2MwICAgX2FjbWVfdXRpbHNfQmVuY2hfYmVnaW5fX0YNCiswMDgwMzQ0MCAgIF94ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsX19JDQorMDA4MDM0YzAgICBfeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kNCiswMDgwMzU0MCAgIF94ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JDQorMDA4MDM1YzAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoYXJfX0kNCiswMDgwMzY0MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcnRzRXhpdF9fSQ0KKzAwODAzNmMwICAgX3hkY19ydW50aW1lX1RleHRfcHJpbnRWaXNGeG5fX0kNCiswMDgwMzc0MCAgIF94ZGNfcnVudGltZV9UZXh0X3hwcmludGZfX0kNCiswMDgwMzdjMCAgIF9yZWFkbXNnDQorMDA4MDM4MjAgICBfd3JpdGVtc2cNCiswMDgwMzg3OCAgIEMkJElPJCQNCiswMDgwMzg4MCAgIF94ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GDQorMDA4MDM4ZTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19GDQorMDA4MDM5NDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0YNCiswMDgwMzk0MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0YNCiswMDgwMzlhMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GDQorMDA4MDM5YTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0YNCiswMDgwM2EwMCAgIF94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GDQorMDA4MDNhNjAgICBfX19hZGRfZHRvcg0KKzAwODAzYWEwICAgX19hcmdzX21haW4NCiswMDgwM2FlMCAgIF94ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRg0KKzAwODAzYjIwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUw0KKzAwODAzYjIwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlX19sYWJlbF9fUw0KKzAwODAzYjYwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MNCiswMDgwM2I2MCAgIF94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fZGVsZXRlX19TDQorMDA4MDNiYTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0YNCiswMDgwM2JlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRQ0KKzAwODAzYzIwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UNCiswMDgwM2M2MCAgIF9fX3hkY19faW5pdA0KKzAwODAzYzgwICAgX19ub3ANCiswMDgwM2NhMCAgIEMkJEVYSVQNCiswMDgwM2NhMCAgIF9hYm9ydA0KKzAwODAzY2MwICAgX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UNCiswMDgwM2NlMCAgIF9hY21lX3V0aWxzX0JlbmNoX1BDbG9ja19nZXRUaW1lX19FDQorMDA4MDNjZTAgICBfYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRQ0KKzAwODAzZDAwICAgX2Nsb2NrDQorMDA4MDNkMjAgICBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRg0KKzAwODAzZDQwICAgX3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0YNCiswMDgwM2Q2MCAgIF94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRQ0KKzAwODAzZDgwICAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GDQorMDA4MDNkYTAgICBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YNCiswMDgwM2RjMCAgIF94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GDQorMDA4MDNkZTAgICBfeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRg0KKzAwODAzZTAwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UNCiswMDgwM2UyMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UNCiswMDgwM2U0MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FDQorMDA4MDNlNjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRg0KKzAwODAzZTgwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRQ0KKzAwODAzZWEwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRg0KKzAwODAzZWMwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfYWxsb2NfX0UNCiswMDgwM2VlMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2ZyZWVfX0UNCiswMDgwM2YwMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GDQorMDA4MDNmMjAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0YNCiswMDgwM2Y0MCAgIF94ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRg0KKzAwODAzZjYwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSQ0KKzAwODAzZjgwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kNCiswMDgwM2ZhMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UNCiswMDgwM2ZjMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UNCiswMDgwM2ZjMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2Fib3J0X19FDQorMDA4MDNmZTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UNCiswMDgwM2ZlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2V4aXRfX0UNCiswMDgwNDAwMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UNCiswMDgwNDAwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3B1dGNoX19FDQorMDA4MDQwMjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FDQorMDA4MDQwMjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9yZWFkeV9fRQ0KKzAwODA0MDQwICAgX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRg0KKzAwODA0MDYwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FDQorMDA4MDQwODAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UNCiswMDgwNDBhMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UNCiswMDgwNDBjMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0YNCiswMDgwNDBlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0YNCiswMDgwNDEwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRg0KKzAwODA0MTAwICAgX3hkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRg0KKzAwODA0MTIwICAgX3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0YNCiswMDgwNDE0MCAgIF94ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSQ0KKzAwODA0MTYwICAgX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0YNCis4MDAwMDAwMCAgICRic3MNCis4MDAwMDAwMCAgIC5ic3MNCis4MDAwMDAwMCAgIF9fX2Jzc19fDQorODAwMDAwMDAgICBfX19lbmRfXw0KKzgwMDAwMDAwICAgX19zdGFjaw0KKzgwMDAwMDAwICAgZW5kDQorODAwMDEwMDAgICBfX3N5c19tZW1vcnkNCis4MDAwMjAwMCAgIF94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0ENCis4MDAwMjNlMCAgIF9fY3R5cGVzXw0KKzgwMDAyNWU4ICAgX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQQ0KKzgwMDAyNmQ4ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DDQorODAwMDI3NDQgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MNCis4MDAwMjc4NCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DDQorODAwMDI3YjggICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BDQorODAwMDI3ZDAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MNCis4MDAwMjdkOCAgIF94ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DDQorODAwMDI3ZTAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BDQorODAwMDI3ZTggICBfeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DDQorODAwMDI3ZWMgICBfeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DDQorODAwMDI3ZjAgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQw0KKzgwMDAyN2Y0ICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DDQorODAwMDI3ZjggICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQw0KKzgwMDAyN2ZjICAgX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQw0KKzgwMDAyODAwICAgX3hkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DDQorODAwMDI4MDQgICBfeGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DDQorODAwMDI4MDggICBfeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DDQorODAwMDI4MGMgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MNCis4MDAwMjgxMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MNCis4MDAwMjgxNCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MNCis4MDAwMjgxOCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MNCis4MDAwMjgxYyAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DDQorODAwMDI4MjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MNCis4MDAwMjgyNCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DDQorODAwMDI4MjggICBfeGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DDQorODAwMDI4MmMgICBfeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0MNCis4MDAwMjgzMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQw0KKzgwMDAyODM0ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MNCis4MDAwMjgzOCAgIF94ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQw0KKzgwMDAyODNjICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQw0KKzgwMDAyODQwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQw0KKzgwMDAyODQ0ICAgX3hkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DDQorODAwMDI4NDggICBfeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MNCis4MDAwMjg0YyAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DDQorODAwMDI4NTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQw0KKzgwMDAyODU0ICAgX3hkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQw0KKzgwMDAyODU4ICAgX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DDQorODAwMDI4NWMgICBfeGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DDQorODAwMDI4NjAgICBfeGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQw0KKzgwMDAyODY0ICAgX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQw0KKzgwMDAyODY4ICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DDQorODAwMDI4NmMgICBfYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DDQorODAwMDI4NzAgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DDQorODAwMDI4NzQgICBfeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MNCis4MDAwMjg3OCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MNCis4MDAwMjg3YyAgIF94ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQw0KKzgwMDAyODgwICAgX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQw0KKzgwMDAyODg0ICAgX3hkY19ydW50aW1lX1RleHRfY2hhckNudF9fQw0KKzgwMDAyODg4ICAgX3hkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MNCis4MDAwMjg5MCAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BDQorODAwMDJjOTAgICBfX19BU01fXw0KKzgwMDAyYzk0ICAgX19fSVNBX18NCis4MDAwMmM5OCAgIF9fX1BMQVRfXw0KKzgwMDAyYzljICAgX19fVEFSR19fDQorODAwMDJjYTAgICBfX19UUkRSX18NCis4MDAwMmNhNCAgIF9hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyY2E4ICAgX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyY2I0ICAgX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyY2I2ICAgX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmNiOCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyY2JhICAgX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyY2JjICAgX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyY2JlICAgX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyY2MwICAgX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMmNjMiAgIF94ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyY2M0ICAgX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyY2UwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WDQorODAwMDJkMDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WDQorODAwMDJkMGMgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXRlX19WDQorODAwMDJkMTAgICBfeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyZDEyICAgX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WDQorODAwMDJkMTQgICBfeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyZDE4ICAgX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXRlX19WDQorODAwMDJkMWMgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmQyMCAgIF94ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMmQyOCAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WDQorODAwMDJkMmMgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMmQzOCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WDQorODAwMDJkNDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BDQorODAwMDJkNjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMmQ2YyAgIF94ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyZDcwICAgX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyZDc4ICAgX19feGRjX19pbml0X19hZGRyDQorODAwMDJkN2MgICBfZHRvcnMNCis4MDAwMmQ4MCAgIF9fX2F0ZXhpdF9mdW5jX2lkX18NCis4MDAwMmZkOCAgIF9fY2xlYW51cF9wdHINCis4MDAwMmZkYyAgIF9fZHRvcnNfcHRyDQorODAwMDJmZTAgICBfX19USV9lbmFibGVfZXhpdF9wcm9maWxlX291dHB1dA0KKzgwMDAyZmU0ICAgX19sb2NrDQorODAwMDJmZTggICBfX3VubG9jaw0KKzgwMDAyZmY4ICAgX19fY2luaXRfXw0KKzgwMDAyZmY4ICAgY2luaXQNCis4MDAwMzMyNCAgIF9fX2NfYXJnc19fDQorODAwMDM1MjggICBfX0NJT0JVRl8NCitmZmZmZmZmZiAgIC5kYXRhDQorZmZmZmZmZmYgICAudGV4dA0KK2ZmZmZmZmZmICAgX19fVElfcHByb2Zfb3V0X2huZGwNCitmZmZmZmZmZiAgIF9fX1RJX3Byb2ZfZGF0YV9zaXplDQorZmZmZmZmZmYgICBfX19USV9wcm9mX2RhdGFfc3RhcnQNCitmZmZmZmZmZiAgIF9fX2Jpbml0X18NCitmZmZmZmZmZiAgIF9fX2RhdGFfXw0KK2ZmZmZmZmZmICAgX19fZWRhdGFfXw0KK2ZmZmZmZmZmICAgX19fZXRleHRfXw0KK2ZmZmZmZmZmICAgX19fcGluaXRfXw0KK2ZmZmZmZmZmICAgX19fdGV4dF9fDQorZmZmZmZmZmYgICBiaW5pdA0KK2ZmZmZmZmZmICAgZWRhdGENCitmZmZmZmZmZiAgIGV0ZXh0DQorZmZmZmZmZmYgICBwaW5pdA0KKw0KK1syNDAgc3ltYm9sc10NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWFiNWNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEubzY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vNjRQLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNjMTljMGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vNjRQLmRlcApAQCAtMCwwICsxLDQxIEBACitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vNjRQOiBpc3FydFRlc3QxLmMgLi4vLi4vLi4vYWNtZS91dGlscy9CZW5jaC5oIC4uLy4uLy4uL2NoYXJsaWUvc3FydGxpYi9pc3FydC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRsaWIuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaCAuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaCAuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaCAuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvQmVuY2hfUENsb2NrLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5LmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGlua2FnZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmggLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5LmggDQoraXNxcnRUZXN0MS5jOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvQmVuY2guaDoNCisuLi8uLi8uLi9jaGFybGllL3NxcnRsaWIvaXNxcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkbGliLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvSUNsb2NrLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9wYWNrYWdlL0JlbmNoX1BDbG9jay5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbmthZ2UuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm84NkdXIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEubzg2R1cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc1MzkzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm84NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm84NkdXLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm84NkdXLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2ZlNzM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEubzg2R1cuZGVwCkBAIC0wLDAgKzEsMzYgQEAKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS8vaXNxcnRUZXN0MS5vODZHVzogaXNxcnRUZXN0MS5jIC4uLy4uLy4uL2FjbWUvdXRpbHMvQmVuY2guaCAuLi8uLi8uLi9jaGFybGllL3NxcnRsaWIvaXNxcnQuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3N0ZC5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaCAuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaCAuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvQmVuY2hfUENsb2NrLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5LmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5LmggRDovd29yay9pbGlhZC9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9zdGQuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaCAuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmggRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fZXBpbG9ndWUuaCBEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oIEQ6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaCANCitpc3FydFRlc3QxLmM6DQorLi4vLi4vLi4vYWNtZS91dGlscy9CZW5jaC5oOg0KKy4uLy4uLy4uL2NoYXJsaWUvc3FydGxpYi9pc3FydC5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvc3RkLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9CZW5jaF9QQ2xvY2suaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0Lmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19lcGlsb2d1ZS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaDoNCitEOi93b3JrL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK0Q6L3dvcmsvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5Lmg6DQorRDovd29yay9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0MGM0NDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jCkBAIC0wLDAgKzEsNzgwMSBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2RlZmluZSBfX25lc3RlZF9fCisjZGVmaW5lIF9fY29uZmlnX18KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworLyoKKyAqID09PT09PT09IEdFTkVSQVRFRCBTRUNUSU9OUyA9PT09PT09PQorICogICAgIAorICogICAgIE1PRFVMRSBJTkNMVURFUworICogICAgIAorICogICAgIDxtb2R1bGUtbmFtZT4gSU5URVJOQUxTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTkhFUklUUworICogICAgIDxtb2R1bGUtbmFtZT4gVlRBQkxFCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQQVRDSCBUQUJMRQorICogICAgIDxtb2R1bGUtbmFtZT4gREVDTEFSQVRJT05TCisgKiAgICAgPG1vZHVsZS1uYW1lPiBPQkpFQ1QgT0ZGU0VUUworICogICAgIDxtb2R1bGUtbmFtZT4gVEVNUExBVEVTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTklUSUFMSVpFUlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IEZVTkNUSU9OIFNUVUJTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQUk9YWSBCT0RZCisgKiAgICAgPG1vZHVsZS1uYW1lPiBPQkpFQ1QgREVTQ1JJUFRPUgorICogICAgIDxtb2R1bGUtbmFtZT4gU1lTVEVNIEZVTkNUSU9OUworICogICAgIDxtb2R1bGUtbmFtZT4gUFJBR01BUworICogICAgIAorICogICAgIElOSVRJQUxJWkFUSU9OIEVOVFJZIFBPSU5UCisgKiAgICAgUFJPR1JBTSBHTE9CQUxTCisgKiAgICAgQ0xJTksgRElSRUNUSVZFUworICovCisKKworLyoKKyAqID09PT09PT09IE1PRFVMRSBJTkNMVURFUyA9PT09PT09PQorICovCisKKyNpbmNsdWRlIDxhY21lL3V0aWxzL0JlbmNoLmg+CisjaW5jbHVkZSA8YWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Bc3NlcnQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Db3JlLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRGVmYXVsdHMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9EaWFncy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvR2F0ZS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0dhdGVOdWxsLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvSGVhcFN0ZC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0xvZy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL01haW4uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9NZW1vcnkuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TdGFydHVwLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzTWluLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzdGVtLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvVGV4dC5oPgorCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfXyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaF9QQ2xvY2sgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30gYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVjsKKworLyogT2JqZWN0X18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIHsKKyAgICBjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9GeG5zX18qIF9fZnhuczsKK30geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX0dhdGVOdWxsX19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WOworCisvKiBPYmplY3RfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyB7CisgICAgY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9GeG5zX18qIF9fZnhuczsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfU2l6ZSByZW1haW5TaXplOworICAgIHhkY19ydW50aW1lX01lbW9yeV9TaXplIHN0YXJ0U2l6ZTsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX0hlYXBTdGRfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01haW5fTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworLyogPC0tIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCAqLworCisvKiBPYmplY3QgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIDwtLSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdCAqLworCisvKiBPYmplY3QgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19yb290X19WOworCisvKiA8LS0geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0ICovCisKKy8qIE9iamVjdCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgSU5IRVJJVFMgPT09PT09PT0KKyAqLworCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0MgPSB7MH07CitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgSU5IRVJJVFMgPT09PT09PT0KKyAqLworCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MgPSB7KHZvaWQqKSZ4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgSU5IRVJJVFMgPT09PT09PT0KKyAqLworCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgeGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DID0geyh2b2lkKikmeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0N9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gSU5IRVJJVFMgPT09PT09PT0KKyAqLworCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX1R5cGVzX0Jhc2UgeGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DID0geyh2b2lkKikmeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0N9OworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBWVEFCTEUgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX0ZYTlNfX0MgKi8KK2NvbnN0IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX0Z4bnNfXyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UsCisgICAgeworICAgICAgICBOVUxMLCAvKiBfX2NyZWF0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2RlbGV0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2xhYmVsICovCisgICAgICAgIDB4ODAxMywgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfRnhuc19fIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FLAorICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FLAorICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FLAorICAgIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TLAorICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TLAorICAgICAgICAweDgwMDgsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9GeG5zX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZ4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FLAorICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSwKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UsCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSwKKyAgICB7CisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUywKKyAgICAgICAgMHg4MDBjLCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfU3lzTWluX0Z4bnNfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmeGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UsCisgICAgeworICAgICAgICBOVUxMLCAvKiBfX2NyZWF0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2RlbGV0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2xhYmVsICovCisgICAgICAgIDB4ODAwZiwgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2ggREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19TdHJpbmcgYmVnaW5Nc2c7CisgICAgeGRjX0ludCBiZWdpbkNsb2NrOworICAgIHhkY19JbnQgb3ZlcmhlYWQ7Cit9IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX1N0YXRlX18gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoX1BDbG9jayBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19VSW50MTYgY291bnQ7Cit9IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogT2JqZWN0X190YWJsZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1ZbMV07CisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfU2l6ZSByZW1haW5SVFNTaXplOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfU2l6ZVQgbWF4RGVmYXVsdFR5cGVBbGlnbjsKK30geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX0ludCogc3RhdGVUYWI7CisgICAgeGRjX0Jvb2wgZXhlY0ZsYWc7CisgICAgeGRjX0Jvb2wgcnRzRG9uZUZsYWc7Cit9IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FICovCitleHRlcm4geGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UoeGRjX0ludCk7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UgKi8KK2V4dGVybiB4ZGNfSW50IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSh4ZGNfSW50KTsKKworLyogLS0+IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UgKi8KK2V4dGVybiB4ZGNfSW50IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UoeGRjX0ludCk7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVszXTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BWzNdOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXyB7CisgICAgX19UQV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgb3V0YnVmOworICAgIHhkY19VSW50IG91dGlkeDsKKyAgICB4ZGNfQm9vbCB3cmFwcGVkOworfSB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX187CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfX291dGJ1ZiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BWzEwMjRdOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JICovCitleHRlcm4geGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSh4ZGNfQ2hhcioseGRjX1VJbnQpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB7CisgICAgX19UQV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyBhdGV4aXRIYW5kbGVyczsKKyAgICB4ZGNfSW50IG51bUF0ZXhpdEhhbmRsZXJzOworICAgIHhkY19JbnQgZXhpdFN0YXR1czsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfX2F0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQVs4XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSh4ZGNfQ2hhcioqLHhkY19DaGFyKioseGRjX1ZhTGlzdCx4ZGNfcnVudGltZV9TeXN0ZW1fUGFyc2VEYXRhKik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1B0ciBjaGFyQmFzZTsKKyAgICB4ZGNfUHRyIG5vZGVCYXNlOworfSB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzY5N107CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVsyMV07CisKKworLyoKKyAqID09PT09PT09IHhkYy5jZmcuUHJvZ3JhbSBURU1QTEFURSA9PT09PT09PQorICovCisKKy8qCisgKiAgPT09PT09PT0gX19BU01fXyA9PT09PT09PQorICogIERlZmluZSB0aGlzIHByb2dyYW0ncyBwYWNrYWdlLXBhdGggcmVsYXRpdmUgYXNzZW1ibHkgZGlyZWN0b3J5CisgKi8KK19fRkFSX18gY2hhciAqX19BU01fXyA9ICJAKCMpX19BU01fXyA9IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UCI7CisKKy8qCisgKiAgPT09PT09PT0gX19JU0FfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgSVNBIG9mIHRoaXMgZXhlY3V0YWJsZS4gIFRoaXMgc3ltYm9sIGlzIHVzZWQgYnkgcGxhdGZvcm0KKyAqICBzcGVjaWZpYyAiZXhlYyIgY29tbWFuZHMgdGhhdCBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgSVNBOyBlLmcuLCBnZGIKKyAqLworX19GQVJfXyBjaGFyICpfX0lTQV9fID0gIkAoIylfX0lTQV9fID0gNjRQIjsKKworLyoKKyAqICA9PT09PT09PSBfX1BMQVRfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgcGxhdGZvcm0gdGhhdCBjYW4gcnVuIHRoaXMgZXhlY3V0YWJsZS4gIFRoaXMKKyAqICBzeW1ib2wgaXMgdXNlZCBieSBwbGF0Zm9ybSBpbmRlcGVuZGVudCAiZXhlYyIgY29tbWFuZHMKKyAqLworX19GQVJfXyBjaGFyICpfX1BMQVRfXyA9ICJAKCMpX19QTEFUX18gPSB0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiOworCisvKgorICogID09PT09PT09IF9fVEFSR19fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSB0YXJnZXQgdXNlZCB0byBidWlsZCB0aGlzIGV4ZWN1dGFibGUuCisgKi8KK19fRkFSX18gY2hhciAqX19UQVJHX18gPSAiQCgjKV9fVEFSR19fID0gdGkudGFyZ2V0cy5DNjRQIjsKKworLyoKKyAqICA9PT09PT09PSBfX1RSRFJfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgY2xhc3MgdGhhdCBjYW4gcmVhZC9wYXJzZSB0aGlzIGV4ZWN1dGFibGUuCisgKi8KK19fRkFSX18gY2hhciAqX19UUkRSX18gPSAiQCgjKV9fVFJEUl9fID0gdGkudGFyZ2V0cy5vbWYuY29mLkNvZmYiOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBURU1QTEFURSA9PT09PT09PQorICovCisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBURU1QTEFURSA9PT09PT09PQorICovCisKKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX0Yodm9pZCkgeworICAgIHJldHVybiAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiID09IDAgfHwgKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYlswXSA8IDA7Cit9Cit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fRih2b2lkKSB7CisgICAgcmV0dXJuICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWIgPT0gMCB8fCAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiWzFdIDwgMDsKK30KK3hkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZV9fRih2b2lkKSB7CisgICAgcmV0dXJuICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWIgPT0gMCB8fCAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiWzJdIDwgMDsKK30KKworCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0kodm9pZCkKK3sKKyAgICB4ZGNfSW50IHN0YXRlWzRdOworICAgIHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DKHN0YXRlLCAzKTsKK30KKworI2lmZGVmIF9fdGlfXworI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSSk7CisjZW5kaWYKKworLyoKKyAqICA9PT09PT09PSB4ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JID09PT09PT09CisgKiAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgYm9vdHN0cmFwIGluaXRpYWxpemF0aW9uIGNvZGUgYXMgZWFybHkgYXMKKyAqICBwb3NzaWJsZSBpbiB0aGUgc3RhcnR1cCBwcm9jZXNzLiAgVGhpcyBmdW5jdGlvbiBzaW1wbHkgY2FsbHMgYW55CisgKiAgY29uZmlndXJlZCBudWxsLgorICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JKHZvaWQpCit7Cit9CisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvVHlwZXMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UZXh0Lmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvQXNzZXJ0Lmg+CisKKy8qCisgKiAgPT09PT09PT0gU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSA9PT09PT09PQorICogIFRoaXMgZnVuY3Rpb24gcHJvY2Vzc2VzIG9wdGlvbmFsIGV4dGVuZGVkIGZvcm1hdHMgb2YgcHJpbnRmLgorICovCitJbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSShDaGFyICoqcGJ1ZiwgQ2hhciAqKnBmbXQsIAorICAgIFZhTGlzdCB2YSwgeGRjX3J1bnRpbWVfU3lzdGVtX1BhcnNlRGF0YSAqcGFyc2UpCit7CisgICAgQ2hhciAgICAqZm10ID0gKnBmbXQ7CisgICAgSW50ICAgICByZXM7CisgICAgQ2hhciAgICBjOworICAgIEJvb2wgICAgZm91bmQgPSBGQUxTRTsKKyAgICAKKyAgICByZXMgPSAwOworCisgICAgYyA9ICpmbXQrKzsKKyAgICAqcGZtdCA9ICpwZm10ICsgMTsKKworICAgIAorICAgIGlmIChjID09ICckJykgeworICAgICAgICBjID0gKmZtdCsrOworICAgICAgICAqcGZtdCA9ICpwZm10ICsgMTsKKyAgICAgICAgaWYgKGMgPT0gJ0wnKSB7CisgICAgICAgICAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCAqbGFiID0gcGFyc2UtPmFGbGFnID8gCisgICAgICAgICAgICAgICAgKHhkY19ydW50aW1lX1R5cGVzX0xhYmVsICopaWFyZ1RvUHRyKHZhX2FyZyh2YSwgSUFyZykpIDoKKyAgICAgICAgICAgICAgICAoeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwgKil2YV9hcmcodmEsIHZvaWQgKik7CisgICAgICAgICAgICByZXMgKz0geGRjX3J1bnRpbWVfVGV4dF9wdXRMYWIobGFiLCBwYnVmLCBwYXJzZS0+cHJlY2lzKTsKKyAgICAgICAgICAgIHBhcnNlLT5sZW4gPSAwOworICAgICAgICAgICAgZm91bmQgPSBUUlVFOworICAgICAgICB9CisgICAgfQorCisKKyAgICBpZiAoZm91bmQgPT0gRkFMU0UpIHsKKyAgICAgICAgIC8qIG90aGVyIGNoYXJhY3RlciAobGlrZSAlKSBjb3B5IHRvIG91dHB1dCAqLworICAgICAgICAgKihwYXJzZS0+cHRyKSA9IGM7CisgICAgICAgICBwYXJzZS0+bGVuID0gMTsKKyAgICB9CisKKyAgICByZXR1cm4gKHJlcyk7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisjaWZkZWYgX190aV9fCitleHRlcm4gaW50IEhPU1R3cml0ZShpbnQsIGNoYXIgKiwgdW5zaWduZWQpOworI2Vsc2UKKyNpbmNsdWRlIDxzdGRpby5oPgorI2VuZGlmCisKKy8qCisgKiAgPT09PT09PT0gU3lzTWluX291dHB1dF9fSSA9PT09PT09PQorICogIEhPU1RXcml0ZSBvbmx5IHdyaXRlcyBhIG1heCBvZiBOIGNoYXJzIGF0IGEgdGltZS4gVGhlIGFtb3VudCBpdCB3cml0ZXMKKyAqICBpcyByZXR1cm5lZC4gVGhpcyBmdW5jdGlvbiBsb29wcyB1bnRpbCB0aGUgZW50aXJlIGJ1ZmZlciBpcyB3cml0dGVuLgorICogIEJlaW5nIGEgc3RhdGljIGZ1bmN0aW9uIGFsbG93cyBpdCB0byBjb25kaXRpb25hbGx5IGNvbXBpbGUgb3V0LgorICovCitWb2lkIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0koQ2hhciAqYnVmLCBVSW50IHNpemUpCit7CisjaWZkZWYgX190aV9fCisgICAgSW50IHByaW50Q291bnQ7CisgICAgCisgICAgd2hpbGUgKHNpemUgIT0gMCkgeworICAgICAgICBwcmludENvdW50ID0gSE9TVHdyaXRlKDEsIGJ1Ziwgc2l6ZSk7CisgICAgICAgIGlmICgocHJpbnRDb3VudCA8PSAwKSB8fCAocHJpbnRDb3VudCA+IHNpemUpKSB7CisgICAgICAgICAgICBicmVhazsgIC8qIGVuc3VyZSB3ZSBuZXZlciBnZXQgc3R1Y2sgaW4gYW4gaW5maW5pdGUgbG9vcCAqLworICAgICAgICB9CisgICAgICAgIHNpemUgLT0gcHJpbnRDb3VudDsKKyAgICAgICAgYnVmID0gYnVmICsgcHJpbnRDb3VudDsKKyAgICB9ICAgIAorI2Vsc2UKKyAgICBmd3JpdGUoYnVmLCAxLCBzaXplLCBzdGRvdXQpOworI2VuZGlmCit9CisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisvKgorICogID09PT09PT09IHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JID09PT09PT09CisgKiAgVGhpcyBmdW5jdGlvbiBpcyBpbmRpcmVjdGx5IGNhbGxlZCB3aXRoaW4gVGV4dC5jIHRocm91Z2gKKyAqICB0aGUgdmlzaXRSb3BlRnhuIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIG9mIHhkYy5ydW50aW1lLlRleHQuCisgKi8KK1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0koeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSwKKyAgICB4ZGNfRnhuIHZpc0Z4biwgeGRjX1B0ciB2aXNTdGF0ZSkKK3sKKyAgICB4ZGNfU3RyaW5nIHN0YWNrWzRdOworICAgIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlMl9fSShyb3BlLCB2aXNGeG4sIHZpc1N0YXRlLCBzdGFjayk7Cit9CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2ggSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCithY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfU3RhdGVfXyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgMCwgIC8qIGJlZ2luTXNnICovCisgICAgKHhkY19JbnQpMHgwLCAgLyogYmVnaW5DbG9jayAqLworICAgICh4ZGNfSW50KTB4MCwgIC8qIG92ZXJoZWFkICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9iaiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXMgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDE0OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmogYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnQgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGUgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogZW5hYmxlRmxhZ19fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnIGFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQyA9IDE7CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2hfUENsb2NrIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX18gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmogYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMTM7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9iaiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXAgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDI7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEVfYXNzZXJ0RmFpbGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzA5KSA8PCAxNiB8IDApOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDM7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBBX2luaXRpYWxpemVkUGFyYW1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXMgeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTEpIDw8IDE2IHwgMTYpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA0OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX18geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDU7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogc2V0TWFza0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DID0gMDsKKworLyogZGljdEJhc2VfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlIHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2UpMCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoeGRjX1VJbnQxNikweDAsICAvKiBjb3VudCAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDY7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogRV9nZW5lcmljX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWMgeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzMxKSA8PCAxNiB8IDApOworCisvKiBFX21lbW9yeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnkgeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCkzNDkpIDw8IDE2IHwgMCk7CisKKy8qIHBvbGljeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5IHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQyA9IHhkY19ydW50aW1lX0Vycm9yX1VOV0lORDsKKworLyogcmFpc2VIb29rX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2sgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSkpOworCisvKiBtYXhEZXB0aF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGggeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MgPSAoeGRjX1VJbnQxNikweDEwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDc7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQzsKKworLyogT2JqZWN0X19QQVJBTVNfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DID0geworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgMCwgLyogX19zZWxmICovCisgICAgMCwgLyogX19meG5zICovCisgICAgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQy5fX2lwcm1zLCAvKiBpbnN0YW5jZSAqLworICAgIHsKKyAgICAgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgICAgIDAsICAvKiBuYW1lICovCisgICAgfSwgIC8qIGluc3RhbmNlICovCit9OworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fViA9IHt7CisgICAgeyZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssICAvKiBsaW5rLm5leHQgKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rfSwgIC8qIGxpbmsucHJldiAqLworICAgIChVQ2hhciopMCwgIC8qIGluc3RBcnJCZWcgKi8KKyAgICAoVUNoYXIqKSgwKy0xKSwgIC8qIGluc3RBcnJFbmQgKi8KKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKSwgIC8qIGluc3RTaXplICovCisgICAgMCwgIC8qIGN1ciAqLworICAgIDAsICAvKiBkaWFnc01hc2sgKi8KK319OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwODsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MgPSBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18pOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0M7CisKKy8qIE9iamVjdF9fUEFSQU1TX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MgPSB7CisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgIDAsIC8qIF9fc2VsZiAqLworICAgIDAsIC8qIF9fZnhucyAqLworICAgICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQy5fX2lwcm1zLCAvKiBpbnN0YW5jZSAqLworICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDApKSwgIC8qIHNpemUgKi8KKyAgICB7CisgICAgICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgICAgICAwLCAgLyogbmFtZSAqLworICAgIH0sICAvKiBpbnN0YW5jZSAqLworfTsKKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WID0ge3sKKyAgICB7JnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAgLyogbGluay5uZXh0ICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rfSwgIC8qIGxpbmsucHJldiAqLworICAgIChVQ2hhciopeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WLCAgLyogaW5zdEFyckJlZyAqLworICAgIChVQ2hhciopKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fViswKSwgIC8qIGluc3RBcnJFbmQgKi8KKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18pLCAgLyogaW5zdFNpemUgKi8KKyAgICAwLCAgLyogY3VyICovCisgICAgMCwgIC8qIGRpYWdzTWFzayAqLworfX07CisKKy8qIE9iamVjdF9fdGFibGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzFdID0geworICAgIHsvKiBpbnN0YW5jZSMwICovCisgICAgICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQywKKyAgICAgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MTAwMCkpLCAgLyogcmVtYWluU2l6ZSAqLworICAgICAgICAoKHhkY19VQXJnKSgodm9pZCopMHgxMDAwKSksICAvKiBzdGFydFNpemUgKi8KKyAgICB9LAorfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MCkpLCAgLyogcmVtYWluUlRTU2l6ZSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyA9IDE7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DID0gc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18pOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DID0geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WOworCisvKiBFX25vUlRTTWVtb3J5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnkgeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpNDIxKSA8PCAxNiB8IDApOworCisvKiBBX3plcm9TaXplX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTk1KSA8PCAxNiB8IDE2KTsKKworLyogQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkxNDApIDw8IDE2IHwgMTYpOworCisvKiBBX2ludmFsaWRBbGlnbm1lbnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50IHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTIwMSkgPDwgMTYgfCAxNik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA5OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBMX2NvbnN0cnVjdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk0NjgpIDw8IDE2IHwgNCk7CisKKy8qIExfY3JlYXRlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGUgeGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTQ5MikgPDwgMTYgfCA0KTsKKworLyogTF9kZXN0cnVjdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNTEzKSA8PCAxNiB8IDQpOworCisvKiBMX2RlbGV0ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlIHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk1MzIpIDw8IDE2IHwgNCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoeGRjX1NpemVUKTB4OCwgIC8qIG1heERlZmF1bHRUeXBlQWxpZ24gKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2UgeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MgPSAoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKSZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1ZbMF07CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoKHhkY19JbnQqKTApLCAgLyogc3RhdGVUYWIgKi8KKyAgICAwLCAgLyogZXhlY0ZsYWcgKi8KKyAgICAwLCAgLyogcnRzRG9uZUZsYWcgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVszXSA9IHsKKyAgICAoKHhkY19JbnQoKikoeGRjX0ludCkpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSkpLCAgLyogWzBdICovCisgICAgKCh4ZGNfSW50KCopKHhkY19JbnQpKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UpKSwgIC8qIFsxXSAqLworICAgICgoeGRjX0ludCgqKSh4ZGNfSW50KSkoKHhkY19GeG4pYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRSkpLCAgLyogWzJdICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FbM10gPSB7CisgICAgMSwgIC8qIFswXSAqLworICAgIDEsICAvKiBbMV0gKi8KKyAgICAwLCAgLyogWzJdICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBkOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogbWF4UGFzc2VzX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3NlcyB4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyA9ICh4ZGNfSW50KTB4MjA7CisKKy8qIGZpcnN0Rnhuc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MgPSB7MCwgMH07CisKKy8qIGxhc3RGeG5zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MgPSB7MCwgMH07CisKKy8qIHN0YXJ0TW9kc0Z4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kpKTsKKworLyogZXhlY0ltcGxfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGwgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGwpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSkpOworCisvKiBzZnhuVGFiX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiKXhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSk7CisKKy8qIHNmeG5SdHNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMpeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQVsxMDI0XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXRlX19WID0geworICAgIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0EsICAvKiBvdXRidWYgKi8KKyAgICAoeGRjX1VJbnQpMHgwLCAgLyogb3V0aWR4ICovCisgICAgMCwgIC8qIHdyYXBwZWQgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogYnVmU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemUgeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MgPSAoeGRjX1NpemVUKTB4NDAwOworCisvKiBmbHVzaEF0RXhpdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0IHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyA9IDE7CisKKy8qIG91dHB1dEZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4biB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bikwKTsKKworLyogb3V0cHV0RnVuY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmMgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYykoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSkpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fYXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BWzhdID0geworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbMF0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzFdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFsyXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbM10gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzRdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs1XSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbNl0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzddICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BLCAgLyogYXRleGl0SGFuZGxlcnMgKi8KKyAgICAoeGRjX0ludCkweDAsICAvKiBudW1BdGV4aXRIYW5kbGVycyAqLworICAgICh4ZGNfSW50KTB4Y2FmZSwgIC8qIGV4aXRTdGF0dXMgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogQV9jYW5ub3RGaXRJbnRvQXJnX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnIHhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMjYxKSA8PCAxNiB8IDE2KTsKKworLyogbWF4QXRleGl0SGFuZGxlcnNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MgPSAoeGRjX0ludCkweDg7CisKKy8qIGV4dGVuZEZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSkpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfUHRyKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVswXSkpLCAgLyogY2hhckJhc2UgKi8KKyAgICAoKHhkY19QdHIpKCh2b2lkKikmeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BWzBdKSksICAvKiBub2RlQmFzZSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzY5N10gPSB7CisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFswXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzFdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzEwXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzExXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzEzXSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE3XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzE4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE5XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzIwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzIyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzIzXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI0XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzMwXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMxXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzMyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzM0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM1XSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzM2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM3XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM5XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQ2XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDldICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbNTBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTJdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTNdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNTVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNTZdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbNTddICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNThdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjFdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNjRdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjZdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjddICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjhdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNzBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzFdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNzJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNzNdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbNzRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNzddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzhdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbNzldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbODBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbODFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbODJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbODNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbODRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbODVdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbODZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbODddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbODhdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbODldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOTBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbOTFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbOTJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbOTNdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMDBdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMTAxXSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzEwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsxMDNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTA0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMDZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTA3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMDldICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMTEwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzExMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxMTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTEzXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzExNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTE2XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzExN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMThdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMTE5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMjFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTIyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxMjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTI1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzEyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxMjddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTI4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzEyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxMzBdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTMxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMzNdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMTM0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzEzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsxMzZdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMTM3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzEzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFsxNDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTQxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFsxNDNdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMTQ0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsxNDZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTQ3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxNDldICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTUwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTUzXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzE1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTU2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxNThdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTU5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsxNjFdICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMTYyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTY1XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzE2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxNjddICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTY4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNzBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTcxXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNzNdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMTc0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTc3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNzldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTgwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxODJdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMTgzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxODVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTg2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxODhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTg5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxOTFdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTkyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsxOTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTk1XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxOTddICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTk4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzIwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFsyMDFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjAyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFsyMDRdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMjA1XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzIwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyMDddICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMjA4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMTBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjExXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzIxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsyMTNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjE0XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzIxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMTZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjE3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MSwgIC8qIFsyMTldICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMjIwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyMjJdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjIzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyMjVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjI2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIyN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMjhdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjI5XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzIzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyMzFdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMjMyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyMzRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjM1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyMzddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjM4XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsyNDBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjQxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNDNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjQ0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNDZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjQ3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFsyNDldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjUwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyNTJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjUzXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzI1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyNTVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjU2XSAqLworICAgICh4ZGNfQ2hhcikweDc3LCAgLyogWzI1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyNThdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMjU5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMjYwXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzI2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsyNjJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMjYzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNjVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjY2XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNjhdICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMjY5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNzFdICovCisgICAgKHhkY19DaGFyKTB4NDksICAvKiBbMjcyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNzRdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjc1XSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzI3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNzddICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMjc4XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzI3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyODBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjgxXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsyODNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjg0XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFsyODZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMjg3XSAqLworICAgICh4ZGNfQ2hhcikweDQ2LCAgLyogWzI4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyODldICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjkwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyOTJdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbMjkzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZSwgIC8qIFsyOTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjk2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzI5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyOThdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMjk5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszMDFdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzAyXSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzMwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFszMDRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzA1XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzMwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFszMDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszMDhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzA5XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzEyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFszMTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzE1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzMxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszMTddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzE4XSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzMxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszMjBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzIxXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzMyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFszMjNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzI0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszMjZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzI3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzMyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMjldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszMzBdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMzMxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszMzNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzM0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMzZdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMzM3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzMzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMzldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNDJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQzXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzM0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNDVdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzQ2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzM0N10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzM0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNDldICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMzUwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzM1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNTJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzUzXSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzM1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNTVdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMzU2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFszNThdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzU5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFszNjFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMzYyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFszNjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzY1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFszNjddICovCisgICAgKHhkY19DaGFyKTB4M2QsICAvKiBbMzY4XSAqLworICAgICh4ZGNfQ2hhcikweDMwLCAgLyogWzM2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFszNzBdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzcxXSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzM3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyYywgIC8qIFszNzNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzc0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzM3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszNzZdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMzc3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZCwgIC8qIFszNzldICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzgwXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzM4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzM4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszODNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzg0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszODZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMzg3XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzM4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszODldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzkwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzM5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFszOTJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzkzXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzM5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOTVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMzk2XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOThdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzk5XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs0MDFdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDAyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NywgIC8qIFs0MDRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDA1XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0MDddICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDA4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs0MTBdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNDExXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs0MTNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0MTZdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNDE3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0MTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0MjBdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNDIxXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MjNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDI0XSAqLworICAgICh4ZGNfQ2hhcikweDUyLCAgLyogWzQyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1NCwgIC8qIFs0MjZdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNDI3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0MjldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDMwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0MzJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDMzXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDM2XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDM5XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzQ0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NDFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDQyXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQ0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs0NDRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDQ1XSAqLworICAgICh4ZGNfQ2hhcikweDQ1LCAgLyogWzQ0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFs0NDddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDQ4XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQ0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs0NTBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDUxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQ1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NTNdICovCisgICAgKHhkY19DaGFyKTB4NTAsICAvKiBbNDU0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0NTZdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNDU3XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0NTldICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNDYwXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzQ2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0NjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDYzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0NjVdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNDY2XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDY3XSAqLworICAgICh4ZGNfQ2hhcikweDNjLCAgLyogWzQ2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0NjldICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDcwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0NzJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDczXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQ3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0NzVdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDc2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0NzhdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDc5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs0ODFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDgyXSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzQ4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0ODRdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNDg1XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzQ4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs0ODddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDg4XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzQ4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs0OTBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0OTFdICovCisgICAgKHhkY19DaGFyKTB4M2MsICAvKiBbNDkyXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ5M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0OTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDk1XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0OTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDk4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1MDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTAxXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzUwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MDNdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTA0XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzUwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1MDZdICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNTA3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzUwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1MDldICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNTEwXSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzUxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzUxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MTNdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTE0XSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzUxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MTZdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTE3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1MTldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTIwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzUyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1MjJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNTIzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzUyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs1MjVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTI2XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzUyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1MjhdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTI5XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzUzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzUzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MzJdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTMzXSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzUzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MzVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTM2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs1MzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTM5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NDFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNTQyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzU0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1NDRdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTQ1XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzU0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs1NDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NDhdICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNTQ5XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzU1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs1NTFdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNTUyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTUzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1NTVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNTU2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1NThdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNTU5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs1NjFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NjJdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbNTYzXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1NjVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTY2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1NjhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NjldICovCisgICAgKHhkY19DaGFyKTB4NDMsICAvKiBbNTcwXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzU3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1NzJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTczXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTc0XSAqLworICAgICh4ZGNfQ2hhcikweDQ0LCAgLyogWzU3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NzZdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbNTc3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzU3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1NzldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNTgwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1ODJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1ODNdICovCisgICAgKHhkY19DaGFyKTB4NDQsICAvKiBbNTg0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzU4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1ODZdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNTg3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NSwgIC8qIFs1OTBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTkxXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs1OTNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTk0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTk1XSAqLworICAgICh4ZGNfQ2hhcikweDQ3LCAgLyogWzU5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1OTddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTk4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NywgIC8qIFs2MDFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjAyXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MDRdICovCisgICAgKHhkY19DaGFyKTB4NGUsICAvKiBbNjA1XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzYwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2MDddICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjA4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjA5XSAqLworICAgICh4ZGNfQ2hhcikweDRjLCAgLyogWzYxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2MTFdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNjEyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjEzXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzYxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MTVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNjE2XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzYxN10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs2MTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjIwXSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzYyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2MjJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNjIzXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzYyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs2MjZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjI3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs2MjldICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjMwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs2MzJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MzNdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjM0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MzZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNjM3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs2MzldICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNjQwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjQxXSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzY0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2NDNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjQ0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2NDZdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNjQ3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjQ4XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzY0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2NTBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjUxXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzY1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs2NTNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjU0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjU1XSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzY1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2NTddICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNjU4XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2NjFdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjYyXSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzY2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2NjRdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNjY1XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjY2XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzY2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2NjhdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNjY5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzY3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs2NzFdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNjcyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjczXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzY3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2NzVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjc2XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzY3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YiwgIC8qIFs2NzhdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjc5XSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzY4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MywgIC8qIFs2ODJdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjgzXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzY4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2ODVdICovCisgICAgKHhkY19DaGFyKTB4NmIsICAvKiBbNjg2XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzY4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2ODhdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNjg5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjkwXSAqLworICAgICh4ZGNfQ2hhcikweDQyLCAgLyogWzY5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2OTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjkzXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzY5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs2OTVdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2OTZdICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FbMjFdID0geworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHgwLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDAsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4MjI1LCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDIyYSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDIzMywgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsyXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDIzYSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFszXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDIzZiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs0XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI0OCwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs1XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI0ZSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs2XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI1NCwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs3XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI1OSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs4XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI2MiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs5XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI2NiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxMF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNmIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTFdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjcyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzEyXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI3YSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxM10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyODIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTRdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4Mjg5LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE1XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI5MCwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxNl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4Mjk1LCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI5YiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxN10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAxMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyYTIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMThdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMTIsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MmFhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE5XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDExLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDJiMywgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsyMF0gKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMTA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBuYW1lVW5rbm93bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93biB4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DID0gInt1bmtub3duLWluc3RhbmNlLW5hbWV9IjsKKworLyogbmFtZUVtcHR5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eSB4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQyA9ICJ7ZW1wdHktaW5zdGFuY2UtbmFtZX0iOworCisvKiBuYW1lU3RhdGljX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWMgeGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DID0gIntzdGF0aWMtaW5zdGFuY2UtbmFtZX0iOworCisvKiBpc0xvYWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZCB4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DID0gMTsKKworLyogY2hhclRhYl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiIHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhclRhYil4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EpOworCisvKiBub2RlVGFiX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25vZGVUYWIgeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiKXhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSk7CisKKy8qIGNoYXJDbnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhckNudCB4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MgPSAoeGRjX0ludDE2KTB4MmI5OworCisvKiBub2RlQ250X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25vZGVDbnQgeGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DID0gKHhkY19JbnQxNikweDE1OworCisvKiB2aXNpdFJvcGVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4pKCh4ZGNfRnhuKXhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JKSk7CisKKy8qIHZpc2l0Um9wZUZ4bjJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMiB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjIpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlMl9fSSkpOworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYmVnaW5fX0UgKi8KK3hkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfYmVnaW5fX0UoIHhkY19TdHJpbmcgbXNnICkgCit7CisgICAgYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRihtc2cpOworfQorCisvKiBlbmRfX0UgKi8KK3hkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfZW5kX19FKCB2b2lkICkgCit7CisgICAgYWNtZV91dGlsc19CZW5jaF9lbmRfX0YoKTsKK30KKworLyogTW9kdWxlX3N0YXJ0dXAgKi8KK3hkY19JbnQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRSggeGRjX0ludCBzdGF0ZSApCit7CisgICAgcmV0dXJuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0Yoc3RhdGUpOworfQorCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGdldFRpbWVfX0UgKi8KK2FjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRSggdm9pZCApIAoreworICAgIHJldHVybiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19GKCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogc2V0TWFza19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRSggeGRjX1N0cmluZyBjb250cm9sICkgCit7CisgICAgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRihjb250cm9sKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBjaGVja19fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRihlYik7Cit9CisKKy8qIGdldERhdGFfX0UgKi8KK3hkY19ydW50aW1lX0Vycm9yX0RhdGEqIHhkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19GKGViKTsKK30KKworLyogZ2V0Q29kZV9fRSAqLworeGRjX1VJbnQxNiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRihlYik7Cit9CisKKy8qIGdldElkX19FICovCit4ZGNfcnVudGltZV9FcnJvcl9JZCB4ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldElkX19GKGViKTsKK30KKworLyogZ2V0TXNnX19FICovCit4ZGNfU3RyaW5nIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRihlYik7Cit9CisKKy8qIGdldFNpdGVfX0UgKi8KK3hkY19ydW50aW1lX1R5cGVzX1NpdGUqIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GKGViKTsKK30KKworLyogaW5pdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRihlYik7Cit9CisKKy8qIHByaW50X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0YoZWIpOworfQorCisvKiByYWlzZVhfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViLCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtb2QsIHhkY19TdHJpbmcgZmlsZSwgeGRjX0ludCBsaW5lLCB4ZGNfcnVudGltZV9FcnJvcl9JZCBpZCwgeGRjX0lBcmcgYXJnMSwgeGRjX0lBcmcgYXJnMiApIAoreworICAgIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRihlYiwgbW9kLCBmaWxlLCBsaW5lLCBpZCwgYXJnMSwgYXJnMik7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBlbnRlclN5c3RlbV9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GKCk7Cit9CisKKy8qIGxlYXZlU3lzdGVtX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FKCB4ZGNfSUFyZyBrZXkgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GKGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0YocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlIF9faW5zdCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRigodm9pZCopX19pbnN0KTsKK30KKworLyogbGVhdmVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUgX19pbnN0LCB4ZGNfSUFyZyBrZXkgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRigodm9pZCopX19pbnN0LCBrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZnJlZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19GKCh2b2lkKilfX2luc3QsIGJsb2NrLCBzaXplKTsKK30KKworLyogZ2V0U3RhdHNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApIAoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0YoKHZvaWQqKV9faW5zdCwgc3RhdHMpOworfQorCisvKiBhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19GKCh2b2lkKilfX2luc3QsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGlzQmxvY2tpbmdfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0ICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRigodm9pZCopX19pbnN0KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZG9QcmludF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0UoIHhkY19ydW50aW1lX0xvZ19FdmVudFJlYyogZXZSZWMgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRihldlJlYyk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0YoaGVhcCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogY2FsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBmcmVlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgCit7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0YoaGVhcCwgYmxvY2ssIHNpemUpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApIAoreworICAgIHhkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRihoZWFwLCBzdGF0cyk7Cit9CisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfSW50IHF1YWwgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19GKGhlYXAsIHF1YWwpOworfQorCisvKiBnZXRNYXhEZWZhdWx0VHlwZUFsaWduX19FICovCit4ZGNfU2l6ZVQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0YoKTsKK30KKworLyogdmFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfQ2hhciB2YWx1ZSwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0YoaGVhcCwgc2l6ZSwgYWxpZ24sIHZhbHVlLCBlYik7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBleGVjX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0UoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0YoKTsKK30KKworLyogcnRzRG9uZV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRigpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBhYm9ydF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRihzdHIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0Yoc3RhdCk7Cit9CisKKy8qIGZsdXNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0YoKTsKK30KKworLyogcHV0Y2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0YoY2gpOworfQorCisvKiByZWFkeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRigpOworfQorCisvKiBNb2R1bGVfc3RhcnR1cCAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UoIHhkY19JbnQgc3RhdGUgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0Yoc3RhdGUpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBhYm9ydF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRihzdHIpOworfQorCisvKiBhdGV4aXRfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9BdGV4aXRIYW5kbGVyIGhhbmRsZXIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRihoYW5kbGVyKTsKK30KKworLyogZXhpdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19GKHN0YXQpOworfQorCisvKiBwdXRjaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRihjaCk7Cit9CisKKy8qIGZsdXNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0UoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0YoKTsKK30KKworLyogcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0UoIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRihmbXQsIF9fdmEpOworfQorCisvKiBwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiBhcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19FKCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7Cit9CisKKy8qIGFwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIHNwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKK30KKworLyogc3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogYXNwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworfQorCisvKiBhc3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiB2cHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRihmbXQsIHZhKTsKK30KKworLyogYXZwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0YoZm10LCB2YSk7Cit9CisKKy8qIHZzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRihidWYsIGZtdCwgdmEpOworfQorCisvKiBhdnNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0YoYnVmLCBmbXQsIHZhKTsKK30KKworLyogTW9kdWxlX3N0YXJ0dXAgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKCB4ZGNfSW50IHN0YXRlICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19GKHN0YXRlKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGNvcmRUZXh0X19FICovCit4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfQ29yZEFkZHIgY29yZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GKGNvcmQpOworfQorCisvKiByb3BlVGV4dF9fRSAqLworeGRjX1N0cmluZyB4ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0Yocm9wZSk7Cit9CisKKy8qIG1hdGNoUm9wZV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSwgeGRjX1N0cmluZyBwYXQsIHhkY19JbnQqIGxlbnAgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0Yocm9wZSwgcGF0LCBsZW5wKTsKK30KKworLyogcHV0TGFiX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TGFiX19FKCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcHV0TGFiX19GKGxhYiwgYnVmcCwgbGVuKTsKK30KKworLyogcHV0TW9kX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19FKCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtaWQsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0YobWlkLCBidWZwLCBsZW4pOworfQorCisvKiBwdXRTaXRlX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRSggeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogc2l0ZSwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0Yoc2l0ZSwgYnVmcCwgbGVuKTsKK30KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaF9QQ2xvY2sgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogZ2V0VGltZV9fRSAqLworYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19nZXRUaW1lX19FKCB2b2lkICkKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZSgpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5HYXRlTnVsbCAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1Mob2EsIG9zeiwgYWEsICh4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0cilwYSwgc2l6ZW9mKHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfUGFyYW1zKSwgZWIpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19kZWxldGVfX1MoIFB0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKGluc3RwKTsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit2b2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKGRzdCwgc3JjLCBwc3osIGlzeik7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlX19sYWJlbF9fUyggUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1Mob2JqLCBsYWIpOworfQorCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeShxdWFsKTsKK30KKworLyogZW50ZXJfX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9lbnRlcl9fRSggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCk7Cit9CisKKy8qIGxlYXZlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UoIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfSUFyZyBrZXkgKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0LCBrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuSGVhcFN0ZCAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TKG9hLCBvc3osIGFhLCAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0cilwYSwgc2l6ZW9mKHhkY19ydW50aW1lX0lIZWFwX1BhcmFtcyksIGViKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfX2RlbGV0ZV9fUyggUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIGNvbnN0IHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtc19faW5pdF9fUyhkc3QsIHNyYywgcHN6LCBpc3opOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGVfX2xhYmVsX19TKCBQdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TKG9iaiwgbGFiKTsKK30KKworLyogYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9hbGxvY19fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9JSGVhcF9hbGxvYygoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogZnJlZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9mcmVlX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkKK3sKKyAgICB4ZGNfcnVudGltZV9JSGVhcF9mcmVlKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0LCBibG9jaywgc2l6ZSk7Cit9CisKKy8qIGlzQmxvY2tpbmdfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0ICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSUhlYXBfaXNCbG9ja2luZygoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCk7Cit9CisKKy8qIGdldFN0YXRzX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKQoreworICAgIHhkY19ydW50aW1lX0lIZWFwX2dldFN0YXRzKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0LCBzdGF0cyk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuR2F0ZU51bGwgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKG9hLCBvc3osIGFhLCAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX1BhcmFtcyksIGViKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19kZWxldGVfX1MoIFB0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKGluc3RwKTsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit2b2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIGNvbnN0IHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoZHN0LCBzcmMsIHBzeiwgaXN6KTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZV9fbGFiZWxfX1MoIFB0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKG9iaiwgbGFiKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeShxdWFsKTsKK30KKworLyogZW50ZXJfX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0ICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXIoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19JQXJnIGtleSApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmUoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QsIGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5TeXNNaW4gKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0KHN0cik7Cit9CisKKy8qIGV4aXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfZXhpdF9fRSggeGRjX0ludCBzdGF0ICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdChzdGF0KTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfZmx1c2hfX0UoIHZvaWQgKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaCgpOworfQorCisvKiBwdXRjaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaChjaCk7Cit9CisKKy8qIHJlYWR5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3JlYWR5X19FKCB2b2lkICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5KCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIE9CSkVDVCBERVNDUklQVE9SID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCit0eXBlZGVmIHN0cnVjdCB7IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXyBzMDsgY2hhciBjOyB9IHhkY19ydW50aW1lX0dhdGVOdWxsX19fUzE7CitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MgPSB7CisgICAgKFB0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DLCAvKiBmeG5UYWIgKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAvKiBtb2RMaW5rICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX19fUzEpIC0gc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXyksIC8qIG9iakFsaWduICovCisgICAgMCwgLyogb2JqSGVhcCAqLworICAgIDAsIC8qIG9iak5hbWUgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fKSwgLyogb2JqU2l6ZSAqLworICAgIChQdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAvKiBwcm1zSW5pdCAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMpLCAvKiBwcm1zU2l6ZSAqLworfTsKKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIE9CSkVDVCBERVNDUklQVE9SID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCit0eXBlZGVmIHN0cnVjdCB7IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fIHMwOyBjaGFyIGM7IH0geGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1MxOworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MgPSB7CisgICAgKFB0cikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MsIC8qIGZ4blRhYiAqLworICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgLyogbW9kTGluayAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX19fUzEpIC0gc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fKSwgLyogb2JqQWxpZ24gKi8KKyAgICAwLCAvKiBvYmpIZWFwICovCisgICAgMCwgLyogb2JqTmFtZSAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyksIC8qIG9ialNpemUgKi8KKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAvKiBwcm1zSW5pdCAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyksIC8qIHBybXNTaXplICovCit9OworCisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2ggU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVfX0YoKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoX1BDbG9jayBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgCit7CisgICAgbGFiLT5oYW5kbGUgPSBvYmo7CisgICAgbGFiLT5tb2RJZCA9IDMyNzc2OworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduTGFiZWwobGFiLCAwLCAwKTsKKworICAgIHJldHVybiBsYWI7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIHBybXMsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kocHJtcywgKHhkY19QdHIpKHNyYyA/IHNyYyA6ICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyksIHBzeiwgaXN6KTsKK30KKworLyogT2JqZWN0X19nZXRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2EsIHhkY19JbnQgaSApIAoreworICAgIGlmIChvYSkgeworICAgICAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyopb2EpICsgaTsKKyAgICB9CisKKyAgICBpZiAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQyA9PSAwKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiAoKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKil4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DKSArIGk7Cit9CisKKy8qIE9iamVjdF9fZmlyc3RfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKXhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGluay5uZXh0OworCisgICAgaWYgKGlIZHIgIT0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiBpSGRyICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19uZXh0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKCh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopb2JqKSAtIDE7CisKKyAgICBpZiAoaUhkci0+bGluay5uZXh0ICE9ICh4ZGNfcnVudGltZV9UeXBlc19MaW5rICopJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikoaUhkci0+bGluay5uZXh0KSArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zIHBybXM7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0KiBvYmo7CisKKyAgICAvKiBjb21tb24gaW5zdGFuY2UgaW5pdGlhbGl6YXRpb24gKi8KKyAgICBvYmogPSB4ZGNfcnVudGltZV9Db3JlX2NyZWF0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCBvYSwgb3N6LCAmcHJtcywgKHhkY19QdHIpcGEsIHBzeiwgZWIpOworICAgIGlmIChvYmogPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gb2JqOworfQorCisvKiBPYmplY3RfX2Rlc3RydWN0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsIG9iaiwgTlVMTCwgLTEsIFRSVUUpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCAqKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QqKilpbnN0cCksIE5VTEwsIC0xLCBGQUxTRSk7CisgICAgKigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKilpbnN0cCkgPSBOVUxMOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSAKK3sKKyAgICBsYWItPmhhbmRsZSA9IG9iajsKKyAgICBsYWItPm1vZElkID0gMzI3ODA7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbChsYWIsIDAsIDApOworCisgICAgcmV0dXJuIGxhYjsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBwcm1zLCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JKHBybXMsICh4ZGNfUHRyKShzcmMgPyBzcmMgOiAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyksIHBzeiwgaXN6KTsKK30KKworLyogT2JqZWN0X19nZXRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYSwgeGRjX0ludCBpICkgCit7CisgICAgaWYgKG9hKSB7CisgICAgICAgIHJldHVybiAoKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18qKW9hKSArIGk7CisgICAgfQorCisgICAgaWYgKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyA9PSAwKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiAoKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18qKXhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQykgKyBpOworfQorCisvKiBPYmplY3RfX2ZpcnN0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKXhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rLm5leHQ7CisKKyAgICBpZiAoaUhkciAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gaUhkciArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fbmV4dF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKCh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopb2JqKSAtIDE7CisKKyAgICBpZiAoaUhkci0+bGluay5uZXh0ICE9ICh4ZGNfcnVudGltZV9UeXBlc19MaW5rICopJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKShpSGRyLT5saW5rLm5leHQpICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMgcHJtczsKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdCogb2JqOworICAgIGludCBpU3RhdDsKKworICAgIC8qIGNvbW1vbiBpbnN0YW5jZSBpbml0aWFsaXphdGlvbiAqLworICAgIG9iaiA9IHhkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgb2EsIG9zeiwgJnBybXMsICh4ZGNfUHRyKXBhLCBwc3osIGViKTsKKyAgICBpZiAob2JqID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLyogbW9kdWxlLXNwZWNpZmljIGluaXRpYWxpemF0aW9uICovCisgICAgaVN0YXQgPSB4ZGNfcnVudGltZV9IZWFwU3RkX0luc3RhbmNlX2luaXRfX0Yob2JqLCAmcHJtcywgZWIpOworICAgIGlmICh4ZGNfcnVudGltZV9FcnJvcl9jaGVjayhlYikpIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYmosIE5VTEwsIGlTdGF0LCAoeGRjX0Jvb2wpKG9hICE9IE5VTEwpKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIG9iajsKK30KKworLyogT2JqZWN0X19kZXN0cnVjdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgb2JqLCBOVUxMLCAwLCBUUlVFKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsICooKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0KiopaW5zdHApLCBOVUxMLCAwLCBGQUxTRSk7CisgICAgKigoeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUqKWluc3RwKSA9IE5VTEw7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMTsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX0YoKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKCk7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRChhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRChhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRChhY21lX3V0aWxzX0JlbmNoX2VuZF9fRSk7CisjZW5kaWYKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2sgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmogYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjggYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50IGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZiBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZyBhY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBhY21lX3V0aWxzX0JlbmNoX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfYmVnaW5fX0UoIHhkY19TdHJpbmcgbXNnICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfZW5kX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2sgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmogYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtcyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXAgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2YgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkIHhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0Fzc2VydF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQXNzZXJ0X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Fzc2VydF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtcyB4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9Db3JlX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQ29yZV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Db3JlX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9EZWZhdWx0c19IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9EZWZhdWx0c19Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2UgeGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9EaWFnc19IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9EaWFnc19Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRSggeGRjX1N0cmluZyBjb250cm9sICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWMgeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnkgeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9wb2xpY3kgeGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX21heERlcHRoIHhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfRXJyb3JfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX2NoZWNrX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfRGF0YSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19VSW50MTYgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX0Vycm9yX0lkIHhkY19ydW50aW1lX0Vycm9yX2dldElkX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1N0cmluZyB4ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19TaXRlKiB4ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIsIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1vZCwgeGRjX1N0cmluZyBmaWxlLCB4ZGNfSW50IGxpbmUsIHhkY19ydW50aW1lX0Vycm9yX0lkIGlkLCB4ZGNfSUFyZyBhcmcxLCB4ZGNfSUFyZyBhcmcyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0dhdGVfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FKCB4ZGNfSUFyZyBrZXkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JQXJnIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSwgeGRjX0lBcmcga2V5ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeSB4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50IHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGUgeGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZWxldGUgeGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTG9nX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTG9nX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0UoIHhkY19ydW50aW1lX0xvZ19FdmVudFJlYyogZXZSZWMgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWFpbl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01haW5fUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlIHhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWVtb3J5X0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9mcmVlX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfSW50IHF1YWwgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1NpemVUIHhkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19DaGFyIHZhbHVlLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRSk7CisjZW5kaWYKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzIHhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4biB4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGwgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3RhcnR1cF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemUgeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4biB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmMgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TeXNNaW5fSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fUyk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRSk7CisjZW5kaWYKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmcgeGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuIHhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TeXN0ZW1fSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9BdGV4aXRIYW5kbGVyIGhhbmRsZXIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93biB4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHkgeGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWMgeGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZCB4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiIHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJDbnQgeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250IHhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1RleHRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9UZXh0X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1RleHRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1N0cmluZyB4ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19FKCB4ZGNfcnVudGltZV9UZXh0X0NvcmRBZGRyIGNvcmQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1N0cmluZyB4ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUsIHhkY19TdHJpbmcgcGF0LCB4ZGNfSW50KiBsZW5wICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0UoIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbWlkLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19FKCB4ZGNfcnVudGltZV9UeXBlc19TaXRlKiBzaXRlLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IElOSVRJQUxJWkFUSU9OIEVOVFJZIFBPSU5UID09PT09PT09CisgKi8KKworZXh0ZXJuIGludCBfX3hkY19faW5pdCh2b2lkKTsKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSkKKyNlbmRpZgorI2VuZGlmCitfX0ZBUl9fIGludCAoKiB2b2xhdGlsZSBfX3hkY19faW5pdF9fYWRkcikodm9pZCkgPSAmX194ZGNfX2luaXQ7CisKKworLyoKKyAqID09PT09PT09IFBST0dSQU0gR0xPQkFMUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IENMSU5LIERJUkVDVElWRVMgPT09PT09PT0KKyAqLworCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNjOWI0MjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jZmcKQEAgLTAsMCArMSw3ODcgQEAKKy8qCisgKiAgPT09PT09PT0gcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuY2ZnID09PT09PT09CisgKiAgVGhpcyBnZW5lcmF0ZWQgY29uZmlndXJhdGlvbiBzY3JpcHQgcnVucyB0aGUgdXNlcidzIGNvbmZpZ3VyYXRpb24gc2NyaXB0CisgKiAgdGhlIGNvbnRleHQgb2YgYSBzcGVjaWZpYyB0YXJnZXQgYW5kIHBsYXRmb3JtIGluIG9yZGVyIHRvIGdlbmVyYXRlCisgKiAgYWxsIHRoZSBmaWxlcyBuZWNlc3NhcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGU7IGUuZy4sIGxpbmtlciBjb21tYW5kCisgKiAgZmlsZXMsIHN0YXRpYyBDL0MrKyBkYXRhIHN0cnVjdHVyZXMsIGV0Yy4KKyAqLworCisvKgorICogID09PT09PT09IF9ydW5lc2NhcGUgPT09PT09PT0KKyAqICBSZWN1cnNpdmUgdW5lc2NhcGUgdG8gZGVjb2RlIHNlcmlhbGl6ZWQgc3RyaW5ncworICovCitmdW5jdGlvbiBfcnVuZXNjYXBlKG9iaikgeworICAgIGZvciAodmFyIGkgaW4gb2JqKSB7CisgICAgICAgIGlmIChvYmpbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpbaV0gPT0gJ3N0cmluZycpIHsKKyAgICAgICAgICAgICAgICBvYmpbaV0gPSB1bmVzY2FwZShvYmpbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9ialtpXSA9PSAnb2JqZWN0JykgeworICAgICAgICAgICAgICAgIF9ydW5lc2NhcGUob2JqW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqICA9PT09PT09PSBfZ2V0UGxhdENmZyA9PT09PT09PQorICovCitmdW5jdGlvbiBfZ2V0UGxhdENmZygpIHsKKyAgICB2YXIgdG1wID0ge307CisgICAgX3J1bmVzY2FwZSh0bXApOworICAgIHJldHVybiAodG1wKTsKK30KKy8qCisgKiAgPT09PT09PT0gX2NmZ2luaXQgPT09PT09PT0KKyAqLworZnVuY3Rpb24gX2NmZ2luaXQoKSB7CisgICAgeGRjLmxvYWRQYWNrYWdlKCd4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCcpOworICAgIHZhciBwcm9nID0geGRjLm9tWyd4ZGMuY2ZnLlByb2dyYW0nXTsKKworICAgIC8qIGluaXRpYWxpemUgcHJvZyBhdHRycyBmcm9tIGJ1aWxkIG1vZGVsICovCisgICAgdmFyIGJ1aWxkID0geworICAgICAgICByZWxlYXNlczogeworICAgICAgICAgICAgMDogeworICAgICAgICAgICAgICAgIG5hbWU6ICJjaGFybGllX3NxcnRsaWJfdGVzdCIsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICJkZWZhdWx0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb3RoZXJGaWxlczoge30KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgdGFyZ2V0OiB7CisgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQIiwKKyAgICAgICAgICAgIG5hbWU6ICJDNjRQIiwKKyAgICAgICAgICAgIHN1ZmZpeDogIjY0UCIsCisgICAgICAgICAgICBjb21wYXRpYmxlU3VmZml4ZXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2NvbXBhdGlibGVTdWZmaXhlcyIsCisgICAgICAgICAgICAgICAgMDogIjY0IiwKKyAgICAgICAgICAgICAgICAxOiAiNjIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgaXNhOiAiNjRQIiwKKyAgICAgICAgICAgIG1vZGVsOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9tb2RlbCIsCisgICAgICAgICAgICAgICAgZW5kaWFuOiAibGl0dGxlIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHJ0czogInRpLnRhcmdldHMucnRzNjAwMCIsCisgICAgICAgICAgICBiYXNlOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyIiwKKyAgICAgICAgICAgICAgICBuYW1lOiAiQzYyIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICI2MiIsCisgICAgICAgICAgICAgICAgY29tcGF0aWJsZVN1ZmZpeGVzOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9jb21wYXRpYmxlU3VmZml4ZXMiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgaXNhOiAiNjIiLAorICAgICAgICAgICAgICAgIG1vZGVsOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9tb2RlbCIsCisgICAgICAgICAgICAgICAgICAgIGVuZGlhbjogImxpdHRsZSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHJ0czogInRpLnRhcmdldHMucnRzNjAwMCIsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06ICJ0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMEM2MjExIiwKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybXM6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBiaW5hcnlQYXJzZXI6ICJ0aS50YXJnZXRzLm9tZi5jb2YuQ29mZiIsCisgICAgICAgICAgICAgICAgZGVidWdHZW46IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2RlYnVnR2VuIiwKKyAgICAgICAgICAgICAgICAgICAgZXhlY1RlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfZXhlYy54ZHQiLAorICAgICAgICAgICAgICAgICAgICBleGVjUGF0dGVybjogIiUyNCUyOGNmZ0RpciUyOSUyNCUyOGNmZ05hbWUlMjkucGp0IiwKKyAgICAgICAgICAgICAgICAgICAgcGFja2FnZVRlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfcGFja2FnZS54ZHQiLAorICAgICAgICAgICAgICAgICAgICBwYWNrYWdlUGF0dGVybjogInBhY2thZ2UvJTI0JTI4cGtnTmFtZSUyOS5wanQiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHRlbnNpb25zOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zIiwKKyAgICAgICAgICAgICAgICAgICAgIi5zNjIiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLnM2MiciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLnM2MiIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuYXNtIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5hc20nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5hc20iLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmMiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmMnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImMiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuY3BwIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jcHAnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jcHAiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmN4eCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3h4JyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3h4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIi5DIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5DJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuQyIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuY2MiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmNjJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY2MiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB2ZXJzaW9uTWFwOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi92ZXJzaW9uTWFwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEM2eF80LjMyIjogIjElMkMwJTJDNC4zMiUyQzAiLAorICAgICAgICAgICAgICAgICAgICAiVE1TMzIwQzU1eF8yLjU2IjogIjElMkMwJTJDMi41NiUyQzAiLAorICAgICAgICAgICAgICAgICAgICAiVE1TMzIwQzU0eF8zLjgzIjogIjElMkMwJTJDMy44MyUyQzAiLAorICAgICAgICAgICAgICAgICAgICAiVE1TMzIwQzIwMDBfMy4wNyI6ICIxJTJDMCUyQzMuMDclMkMwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgYWxpZ25EaXJlY3RpdmVTdXBwb3J0ZWQ6IHRydWUsCisgICAgICAgICAgICAgICAgcHJvZmlsZXM6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzIiwKKyAgICAgICAgICAgICAgICAgICAgZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZnM6ICItRF9ERUJVR18lM0QxIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgcmVsZWFzZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLU8yIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBwcm9maWxlOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZ3AiCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNvdmVyYWdlOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1ncCIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHdob2xlX3Byb2dyYW06IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbSciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1vZSUyMC1PMiUyMC1tbyIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgd2hvbGVfcHJvZ3JhbV9kZWJ1ZzogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLW9lJTIwLS1zeW1kZWJ1ZyUzQWR3YXJmJTIwLW1vIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBzZWN0TWFwOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zZWN0TWFwIiwKKyAgICAgICAgICAgICAgICAgICAgIi50ZXh0IjogImNvZGUiLAorICAgICAgICAgICAgICAgICAgICAiLnN0YWNrIjogInN0YWNrIiwKKyAgICAgICAgICAgICAgICAgICAgIi5ic3MiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuY2luaXQiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIucGluaXQiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuY29uc3QiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuZGF0YSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5zd2l0Y2giOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuc3lzbWVtIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmZhciI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5hcmdzIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmNpbyI6ICJkYXRhIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgc3RkSW5jbHVkZTogInRpL3RhcmdldHMvc3RkLmgiLAorICAgICAgICAgICAgICAgIHN0ZFR5cGVzOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcyIsCisgICAgICAgICAgICAgICAgICAgIHRfSUFyZzogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSUFyZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9DaGFyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9DaGFyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0RvdWJsZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0Zsb2F0OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GbG9hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9GeG46IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0Z4biIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQ4OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0ludDE2OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQxNiIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQzMjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50NDA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDQwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0ludDY0OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ2NCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9Mb25nOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Mb25nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0xEb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xEb3VibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfTExvbmc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xMb25nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X1B0cjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfUHRyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X1Nob3J0OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9TaG9ydCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgYml0c1BlckNoYXI6IDgKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBwbGF0Zm9ybTogInRpLnBsYXRmb3Jtcy5zaW02NFB4eCIsCisgICAgICAgICAgICBwbGF0Zm9ybXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgMDogInRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBiaW5hcnlQYXJzZXI6ICJ0aS50YXJnZXRzLm9tZi5jb2YuQ29mZiIsCisgICAgICAgICAgICB2ZXJzaW9uOiAidGkudGFyZ2V0cy5DNjRQJTdCMSUyQzAlMkM2LjElMkM1IiwKKyAgICAgICAgICAgIGRlYnVnR2VuOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9kZWJ1Z0dlbiIsCisgICAgICAgICAgICAgICAgZXhlY1RlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfZXhlYy54ZHQiLAorICAgICAgICAgICAgICAgIGV4ZWNQYXR0ZXJuOiAiJTI0JTI4Y2ZnRGlyJTI5JTI0JTI4Y2ZnTmFtZSUyOS5wanQiLAorICAgICAgICAgICAgICAgIHBhY2thZ2VUZW1wbGF0ZTogInRpL3RhcmdldHMvY2NzX3BhY2thZ2UueGR0IiwKKyAgICAgICAgICAgICAgICBwYWNrYWdlUGF0dGVybjogInBhY2thZ2UvJTI0JTI4cGtnTmFtZSUyOS5wanQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZXh0ZW5zaW9uczogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucyIsCisgICAgICAgICAgICAgICAgIi5zNjRQIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5zNjRQJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zNjRQIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5zNjQiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuczY0IiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5zNjIiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2MiciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuczYyIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5hc20iOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmFzbSciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYXNtIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYyIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY3BwIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jcHAnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNwcCIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY3h4IjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jeHgnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmN4eCIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuQyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuQyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuQyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY2MiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNjJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jYyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdmVyc2lvbk1hcDogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvdmVyc2lvbk1hcCIsCisgICAgICAgICAgICAgICAgIlRNUzMyMEM2eF80LjMyIjogIjElMkMwJTJDNC4zMiUyQzAiLAorICAgICAgICAgICAgICAgICJUTVMzMjBDNTV4XzIuNTYiOiAiMSUyQzAlMkMyLjU2JTJDMCIsCisgICAgICAgICAgICAgICAgIlRNUzMyMEM1NHhfMy44MyI6ICIxJTJDMCUyQzMuODMlMkMwIiwKKyAgICAgICAgICAgICAgICAiVE1TMzIwQzIwMDBfMy4wNyI6ICIxJTJDMCUyQzMuMDclMkMwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFsaWduRGlyZWN0aXZlU3VwcG9ydGVkOiB0cnVlLAorICAgICAgICAgICAgcm9vdERpcjogImQlM0EvdGkvYzYwMDAvYWxjIiwKKyAgICAgICAgICAgIHByb2ZpbGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcyIsCisgICAgICAgICAgICAgICAgZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZnM6ICItRF9ERUJVR18lM0QxIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHJlbGVhc2U6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItTzIiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBwcm9maWxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWdwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY292ZXJhZ2U6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1ncCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB3aG9sZV9wcm9ncmFtOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLW9lJTIwLU8yJTIwLW1vIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgd2hvbGVfcHJvZ3JhbV9kZWJ1ZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1vZSUyMC0tc3ltZGVidWclM0Fkd2FyZiUyMC1tbyIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgc2VjdE1hcDogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc2VjdE1hcCIsCisgICAgICAgICAgICAgICAgIi50ZXh0IjogImNvZGUiLAorICAgICAgICAgICAgICAgICIuc3RhY2siOiAic3RhY2siLAorICAgICAgICAgICAgICAgICIuYnNzIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuY2luaXQiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5waW5pdCI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmNvbnN0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuZGF0YSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLnN3aXRjaCI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLnN5c21lbSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmZhciI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmFyZ3MiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5jaW8iOiAiZGF0YSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzdGRJbmNsdWRlOiAidGkvdGFyZ2V0cy9zdGQuaCIsCisgICAgICAgICAgICBzdGRUeXBlczogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMiLAorICAgICAgICAgICAgICAgIHRfSUFyZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSUFyZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0NoYXI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0NoYXIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9Eb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0RvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0Zsb2F0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GbG9hdCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0Z4bjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRnhuIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ4OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ4IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMSwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50MTY6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDE2IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50MzI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDMyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50NDA6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDQwIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50NjQ6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDY0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfTG9uZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xEb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xEb3VibGUiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9MTG9uZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTExvbmciLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9QdHI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1B0ciIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X1Nob3J0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9TaG9ydCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGJpdHNQZXJDaGFyOiA4LAorICAgICAgICAgICAgYmluRGlyOiAiJTI0JTI4cm9vdERpciUyOS9iaW4vIiwKKyAgICAgICAgICAgIHBhdGhQcmVmaXg6ICIiLAorICAgICAgICAgICAgYXI6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FyIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICJhcjZ4IiwKKyAgICAgICAgICAgICAgICBvcHRzOiAicnEiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXJPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9hck9wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIiIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGxuazogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvbG5rIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICJsbms2eCIsCisgICAgICAgICAgICAgICAgb3B0czogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBsbmtPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9sbmtPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICItdyUyMC1xJTIwLXUlMjBfY19pbnQwMCIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiLWMlMjAtbSUyMCUyNCUyOFhEQ0NGR0RJUiUyOS8lMjRALm1hcCUyMC1sJTIwJTI0JTI4cm9vdERpciUyOS9saWIvcnRzNjRwbHVzLmxpYiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjYzogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvY2MiLAorICAgICAgICAgICAgICAgIGNtZDogImNsNnglMjAtYyIsCisgICAgICAgICAgICAgICAgb3B0czogIi1tdjY0cCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjY09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2NjT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiLXFxJTIwLXBkc3cyMjUiLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjY0NvbmZpZ09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2NjQ29uZmlnT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiJTI0JTI4Y2NPcHRzLnByZWZpeCUyOSUyMC1tbyIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiJTI0JTI4Y2NPcHRzLnN1ZmZpeCUyOSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhc206IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FzbSIsCisgICAgICAgICAgICAgICAgY21kOiAiY2w2eCUyMC1jIiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiLW12NjRwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFzbU9wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FzbU9wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIi1xcSIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHZlcnM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3ZlcnMiLAorICAgICAgICAgICAgICAgIGNtZDogImNsNngiLAorICAgICAgICAgICAgICAgIG9wdHM6ICItdmVyc2lvbiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBpbmNsdWRlT3B0czogIi1JJTI0JTI4cm9vdERpciUyOS9pbmNsdWRlIgorICAgICAgICB9LAorICAgICAgICB0ZXN0OiB7fSwKKyAgICAgICAgY2ZnQXJnczogIiU3Qm9wdE1vZGUlM0ElMjAlMjdUSU1FJTI3JTdEIiwKKyAgICAgICAgY2ZnU2NyaXB0OiAiaXNxcnRUZXN0MS5jZmciLAorICAgICAgICBwcm9maWxlOiAicmVsZWFzZSIKKyAgICB9OworICAgIGJ1aWxkLnRhcmdldC5maW5kU3VmZml4ID0gZnVuY3Rpb24gZmluZFN1ZmZpeChwa2cpIHsKKyAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRoZSBmdW5jdGlvbiBJVGFyZ2V0LmZpbmRTdWZmaXgoKSByZXF1aXJlcyBhbiAiICsgImFyZ3VtZW50Iik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHN1ZmZpeE1hcCA9IHt9OworICAgICAgICBpZiAoImJ1aWxkIiBpbiBwa2cpIHsKKyAgICAgICAgICAgIHZhciBidWlsZCA9IHBrZy5idWlsZDsKKyAgICAgICAgICAgIGlmIChidWlsZC5saWJyYXJpZXMubGVuZ3RoICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVpbGQubGliRGVzY1swXS5zdWZmaXggIT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGQubGliRGVzYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4TWFwW2J1aWxkLmxpYkRlc2NbaV0uc3VmZml4XSA9ICIiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWlsZC5saWJEZXNjLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVpbGQubGliRGVzY1tpXS50YXJnZXQgPT0gcHJvZy5idWlsZC50YXJnZXQuJG5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXhNYXBbcHJvZy5idWlsZC50YXJnZXQuc3VmZml4XSA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCJsZW5ndGgiIGluIHBrZykgeworICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGtnLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHN1ZmZpeE1hcFtwa2dbaV1dID0gIiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFuIGludmFsaWQgYXJndW1lbnQgdHlwZSBzdXBwbGllZCB0byAiICsgIklUYXJnZXQuZmluZFN1ZmZpeCgpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNvbXBUYXJncyA9IFtdOworICAgICAgICBmb3IgKHZhciBwcm9wIGluIHRoaXMuY29tcGF0aWJsZVN1ZmZpeGVzKSB7CisgICAgICAgICAgICBjb21wVGFyZ3NbcHJvcF0gPSB0aGlzLmNvbXBhdGlibGVTdWZmaXhlc1twcm9wXTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5zdWZmaXggaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICByZXR1cm4gKHRoaXMuc3VmZml4KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcFRhcmdzLmxlbmd0aCA8IDEpIHsKKyAgICAgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wVGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChjb21wVGFyZ3NbaV0gaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChjb21wVGFyZ3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgfTsKKworICAgIGJ1aWxkLnRhcmdldC5zZWxlY3RTdWZmaXggPSBmdW5jdGlvbiBzZWxlY3RTdWZmaXgobGlzdCkgeworICAgICAgICB2YXIgc3VmZml4TWFwID0ge307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgc3VmZml4TWFwW2xpc3RbaV1dID0gIiI7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNvbXBUYXJncyA9IFtdOworICAgICAgICBmb3IgKHZhciBwcm9wIGluIHRoaXMuY29tcGF0aWJsZVN1ZmZpeGVzKSB7CisgICAgICAgICAgICBjb21wVGFyZ3NbcHJvcF0gPSB0aGlzLmNvbXBhdGlibGVTdWZmaXhlc1twcm9wXTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5zdWZmaXggaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICByZXR1cm4gKHRoaXMuc3VmZml4KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcFRhcmdzLmxlbmd0aCA8IDEpIHsKKyAgICAgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wVGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChjb21wVGFyZ3NbaV0gaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChjb21wVGFyZ3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgfTsKKworICAgIGJ1aWxkLnRhcmdldC5hc21OYW1lID0gZnVuY3Rpb24gYXNtTmFtZShjbmFtZSkgeworICAgICAgICByZXR1cm4gKCJfIiArIGNuYW1lKTsKKyAgICB9OworCisgICAgX3J1bmVzY2FwZShidWlsZCk7CisgICAgYnVpbGQuY2ZnQXJncyA9IHtvcHRNb2RlOiAnVElNRSd9OworICAgIHByb2cuYnVpbGQgPSBidWlsZDsKKyAgICAKKyAgICBwcm9nLm5hbWUgPSAiaXNxcnRUZXN0MS1USU1FLng2NFAiOworCisgICAgcHJvZy5lbmRpYW4gPSBwcm9nLmJ1aWxkLnRhcmdldC5tb2RlbC5lbmRpYW47CisKKyAgICAvKiB1c2UgdGhlIHBsYXRmb3JtIHBhY2thZ2UncyBQbGF0Zm9ybSBtb2R1bGUgKi8KKyAgICB2YXIgUGxhdGZvcm0gPSB4ZGMudXNlTW9kdWxlKCJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHguUGxhdGZvcm0iKTsKKyAgICB2YXIgcGxhdFBhcmFtcyA9IF9nZXRQbGF0Q2ZnKCk7CisgICAgZm9yICh2YXIgcHJvcCBpbiBwbGF0UGFyYW1zKSB7CisgICAgICAgIGlmICghKHByb3AgaW4gUGxhdGZvcm0uUEFSQU1TKSkgeworICAgICAgICAgICAgZGVsZXRlIHBsYXRQYXJhbXNbcHJvcF07CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvZy5wbGF0Zm9ybU5hbWUgPSAidGkucGxhdGZvcm1zLnNpbTY0UHh4IjsKKyAgICBwcm9nLnBsYXRmb3JtID0gUGxhdGZvcm0uY3JlYXRlKCIiLCBfZ2V0UGxhdENmZygpLCBwbGF0UGFyYW1zKTsKKyAgICAvKiByZWNvcmQgdGhlIGV4ZWN1dGFibGUncyBwYWNrYWdlIG5hbWUgKi8KKyAgICBwcm9nLmJ1aWxkUGFja2FnZSA9ICJjaGFybGllLnNxcnRsaWIudGVzdCI7CisKKyAgICAvKiByZWNvcmQgYnVpbGQtbW9kZWwgaW5mb3JtYXRpb24gcmVxdWlyZWQgZHVyaW5nIGNvbmZpZyBnZW5lcmF0aW9uICovCisgICAgcHJvZy4kJGJpbmQoIiQkaXNhc20iLCAwKTsKKyAgICBwcm9nLiQkYmluZCgiJCRpc3JvbSIsIDApOworICAgIHByb2cuJCRiaW5kKCIkJGdlbnRhYiIsIFsKKyAgICBdKTsKKyAgICAKKyAgICAvKiBiaW5kIHByb2cgdG8gYW4gYXBwcm9wcmlhdGUgZXhlY3V0aW9uIGNvbnRleHQgKi8KKyAgICBwcm9nLmNwdSA9IHByb2cucGxhdGZvcm0uZ2V0RXhlQ29udGV4dChwcm9nKTsKKworICAgIC8qIGltcG9ydCB0aGUgdGFyZ2V0J3MgcnVuLXRpbWUgc3VwcG9ydCBwa2cgKi8KKyAgICB4ZGMubG9hZFBhY2thZ2UoInRpLnRhcmdldHMucnRzNjAwMCIpOworfQorICAgIAorLyogZnVuY3Rpb24gdG8gaW1wb3J0IHRoZSBjZmcgc2NyaXB0J3MgcGFja2FnZSAqLworZnVuY3Rpb24gX3VzZXJzY3JpcHQoJCRsZWdhY3ksIHNjcmlwdCkgeworICAgIHZhciBob21lOworICAgIHZhciBzcGF0aDsKKyAgICAvKiBpbXBvcnQgdGhlIGV4ZWN1dGFibGUncyBwYWNrYWdlICovCisgICAgaG9tZSA9IHhkYy5sb2FkUGFja2FnZSgiY2hhcmxpZS5zcXJ0bGliLnRlc3QiKTsKKyAgICBzcGF0aCA9ICcuJzsKKyAgICAKKyAgICB4ZGMub20uJCRiaW5kKCckaG9tZXBrZycsIGhvbWUpOworCisgICAgaWYgKHNjcmlwdCAhPSBudWxsKSB7CisgICAgICAgIHV0aWxzLmV2YWx1YXRlU2NyaXB0KHNjcmlwdCk7CisgICAgfQorICAgIGVsc2UgeyAKKyAgICAgICAgLyogbG9hZCAmIHJ1biBwcm9ncmFtIGNmZyBzY3JpcHQgYW5kIG1vbml0b3IgYWxsIGxvYWRlZCBmaWxlcyAqLworICAgICAgICBfcnVuQ2ZnKCJpc3FydFRlc3QxLmNmZyIsIHNwYXRoLCAicGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAiLCAgCisgICAgICAgICAgICAgICAgIGZhbHNlLCAKKyAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgIF9nZXRQbGF0Q2ZnKCkpOworICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAKKworCisgICAgLyoKKyAgICAgKiAgPT09PT09PT0gX3J1bkNmZyA9PT09PT09PQorICAgICAqICBSdW4gYSB1c2VyIHN1cHBsaWVkIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGFuZCBwcmV2ZW50IHVzZXIncyBzY3JpcHQgZnJvbQorICAgICAqICBvdmVyd3JpdGluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHByb2cuCisgICAgICovCisgICAgZnVuY3Rpb24gX3J1bkNmZyhjZmdTY3JpcHQsIHBhdGgsIHByb2dyYW1OYW1lLCBsZWdhY3lUY2YsIGxlZ2FjeUNmZywKKyAgICAgICAgcGxhdFBhcmFtcykKKyAgICB7CisgICAgICAgIGlmIChsZWdhY3lUY2YpIHsKKyAgICAgICAgICAgIC8qIHNhdmUgY3VycmVudCBnbG9iYWwgdmFyaWFibGVzICovCisgICAgICAgICAgICB2YXIgJHNhdmUgPSB7cHJvZzogdXRpbHMuZ2xvYmFsLnByb2csIFByb2dyYW06IFByb2dyYW19OworICAgIAorICAgICAgICAgICAgLyogaW5pdGlhbGl6ZSBnbG9iYWwgdmFyaWFibGVzIGZvciBsZWdhY3kgY29uZmlnIHNjcmlwdHMgKi8KKyAgICAgICAgICAgIGVudmlyb25tZW50WyJjb25maWcucHJvZ3JhbU5hbWUiXSA9IHByb2dyYW1OYW1lOworICAgICAgICAgICAgZW52aXJvbm1lbnRbImNvbmZpZy5wbGF0Zm9ybSJdID0gUHJvZ3JhbS5wbGF0Zm9ybU5hbWU7CisgICAgICAgICAgICB1dGlscy5zZWVkUGF0aCA9IGVudmlyb25tZW50WyJjb25maWcuaW1wb3J0UGF0aCJdOworICAgICAgICAgICAgdXRpbHMubG9hZFBsYXRmb3JtLnBhcmFtcyA9IHBsYXRQYXJhbXM7CisgICAgICAgICAgICBQcm9ncmFtID0gJCRsZWdhY3kuUHJvZ3JhbTsgICAgIC8qIGRlZmluZWQgaW4gY2ZnLnRjaSAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiBydW4gbGVnYWN5IGNvbmZpZyBzY3JpcHQgd2l0aCBwcm9nID09IHRvIFJUU0MgUHJvZ3JhbTsgdGhpcworICAgICAgICAgICAgICogYWxsb3dzIGxlZ2FjeSBzY3JpcHQgdG8gcmVhZCBidWlsZCBhdHJpYnV0ZXMgZnJvbSBSVFNDIG1vZGVsCisgICAgICAgICAgICAgKiBiZWZvcmUgcmUtY3JlYXRpbmcgdGhlIHByb2cgb2JqZWN0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHV0aWxzLmxvYWRDYXBzdWxlKGNmZ1NjcmlwdCwgZmFsc2UsIHBhdGgpOyAgCisgICAgCisgICAgICAgICAgICAvKiByZXN0b3JlIGdsb2JhbCB2YXJpYWJsZXM7IG5vdyBwcm9nID09IFRDT00gcHJvZyBiZWNhdXNlCisgICAgICAgICAgICAgKiB1dGlscy5sb2FkUGxhdGZvcm0oKSBjcmVhdGVzIHRoZSBUQ09NIHByb2cgb2JqZWN0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICAkJGxlZ2FjeS5wcm9nID0gdXRpbHMuZ2xvYmFsLnByb2c7ICAvKiBpbiBjYXNlIFhEQyB3YW50cyBpdCAqLworICAgICAgICAgICAgdXRpbHMuZ2xvYmFsLnByb2cgPSAkc2F2ZS5wcm9nOworICAgICAgICAgICAgUHJvZ3JhbSA9ICRzYXZlLlByb2dyYW07CisgICAgCisgICAgICAgICAgICAvKiBydW4gWERDIGNvbmZpZ3VyYXRpb24gc2NyaXB0LCBpZiBpdCBleGlzdHMgKi8KKyAgICAgICAgICAgIGlmIChsZWdhY3lDZmcpIHsKKyAgICAgICAgICAgICAgICB1dGlscy5pbXBvcnRGaWxlKGNmZ1NjcmlwdC5yZXBsYWNlKC9cLnRjZi8sICIuY2ZnIiksIHBhdGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdXRpbHMubG9hZENhcHN1bGUoY2ZnU2NyaXB0LCBmYWxzZSwgcGF0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisgICAgCitmdW5jdGlvbiBfcG9zdGluaXQoKSB7CisKKyAgICB2YXIgY291dCA9IG51bGw7CisKKyAgICB2YXIgcHJvZyA9IHhkYy5vbVsneGRjLmNmZy5Qcm9ncmFtJ107CisgICAgLyogZ2V0IHRoZSBleGVjIGNvbW1hbmQgZm9yIHRoaXMgZXhlY3V0YWJsZSAqLworICAgIGlmIChwcm9nLmV4ZWNDbWQgPT0gbnVsbCkgeworICAgICAgICBwcm9nLmV4ZWNDbWQgPSBwcm9nLnBsYXRmb3JtLmdldEV4ZWNDbWQocHJvZywKKyAgICAgICAgICAgIHhkYy5vbVsidGkucGxhdGZvcm1zLnNpbTY0UHh4Il0ucGFja2FnZUJhc2UpOworICAgIH0KKyAgICB2YXIgY291dCA9ICJkZWZpbmUgRVhFQy4iICsgcHJvZy5uYW1lICsgJ1xuXG4nOworICAgIGNvdXQgKz0gcHJvZy5leGVjQ21kOworICAgIGNvdXQgKz0gIlxuZW5kZWZcblxuIjsKKworICAgIHV0aWxzLmdlbkRlcCgicGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAiLCAiY2hhcmxpZS5zcXJ0bGliLnRlc3QiLCB1dGlscy5sb2FkZWRGaWxlcywgY291dCwgbnVsbCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jZmcuZG90IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuY2ZnLmRvdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOGFiNDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuY2ZnLmRvdApAQCAtMCwwICsxLDE5NyBAQAorZGlncmFwaCBjb25maWd1cmF0aW9uIHsKKyAgICBzaXplPSI3LjUsMTAiOworICAgIHJhbmtkaXI9TFI7CisgICAgcmFua3NlcD0iLjUwIGVxdWFsbHkiOworICAgIGNvbmNlbnRyYXRlPXRydWU7CisgICAgY29tcG91bmQ9dHJ1ZTsKKyAgICBsYWJlbD0iXG5Db25maWd1cmF0aW9uIGZvciBjaGFybGllLnNxcnRsaWIudGVzdC9pc3FydFRlc3QxLVRJTUUueDY0UCIKKyAgbm9kZSBbZm9udD1IZWx2ZXRpY2EsIGZvbnRzaXplPTE0LCBmb250Y29sb3I9YmxhY2tdOyAgc3ViZ3JhcGggY2x1c3RlcjAge2xhYmVsPSIiOyBfX2NmZyBbbGFiZWw9ImlzcXJ0VGVzdDEuY2ZnIiwgY29sb3I9d2hpdGUsIGZvbnRjb2xvcj1ibHVlXTsKKyAgICBub2RlIFtmb250PUhlbHZldGljYSwgZm9udHNpemU9MTBdOyAgICBzdWJncmFwaCBjbHVzdGVyMSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGNcbjEsIDEsIDEsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIyIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19jb3JldmVyc19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5jb3JldmVyc1xuMTYsIDAsIDEsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIzIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuZ2xvYmFsXG4xLCAwLCAxIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfQ2xvY2sgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQ2xvY2siXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9fdG9wIC0+IHhkY19zZXJ2aWNlc19nbG9iYWxfQ2xvY2tbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrIC0+IHhkY19zZXJ2aWNlc19nbG9iYWxfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI0IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zaGVsZl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zaGVsZlxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjUgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX3NwZWNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuc3BlY1xuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjYgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2ludGVybl94c3JfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuaW50ZXJuLnhzclxuMSwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjcgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2ludGVybl9nZW5fX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmdlblxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjggeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2ludGVybl9jbWRfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmNtZFxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjkgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3Jvdl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5yb3ZcbjEsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19yb3ZfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEwIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIGNoYXJsaWVfc3FydGxpYl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9ImNoYXJsaWUuc3FydGxpYlxuMSwgMCwgMiwgNiIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgY2hhcmxpZV9zcXJ0bGliX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIGNoYXJsaWVfc3FydGxpYl9TZXR0aW5ncyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTZXR0aW5ncyJdOworICAgICAgICBjaGFybGllX3NxcnRsaWJfX3RvcCAtPiBjaGFybGllX3NxcnRsaWJfU2V0dGluZ3Nbc3R5bGU9aW52aXNdOworICAgICAgICBjaGFybGllX3NxcnRsaWJfU2V0dGluZ3MgLT4gY2hhcmxpZV9zcXJ0bGliX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTEgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgdGlfY2F0YWxvZ19jNjAwMF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InRpLmNhdGFsb2cuYzYwMDBcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHRpX2NhdGFsb2dfYzYwMDBfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgdGlfY2F0YWxvZ19jNjAwMF9UTVMzMjBDVENJNjQ4MiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJUTVMzMjBDVENJNjQ4MiJdOworICAgICAgICB0aV9jYXRhbG9nX2M2MDAwX190b3AgLT4gdGlfY2F0YWxvZ19jNjAwMF9UTVMzMjBDVENJNjQ4MltzdHlsZT1pbnZpc107CisgICAgICAgIHRpX2NhdGFsb2dfYzYwMDBfVE1TMzIwQ1RDSTY0ODIgLT4gdGlfY2F0YWxvZ19jNjAwMF9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEyIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19wbGF0Zm9ybV9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5wbGF0Zm9ybVxuMSwgMCwgMSwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9FeGVDb250ZXh0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkV4ZUNvbnRleHQiXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX190b3AgLT4geGRjX3BsYXRmb3JtX0V4ZUNvbnRleHRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcGxhdGZvcm1fRXhlQ29udGV4dCAtPiB4ZGNfcGxhdGZvcm1fX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9VdGlscyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJVdGlscyJdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX3RvcCAtPiB4ZGNfcGxhdGZvcm1fVXRpbHNbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcGxhdGZvcm1fVXRpbHMgLT4geGRjX3BsYXRmb3JtX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTMgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX2NmZ19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5jZmdcbjEsIDAsIDIsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19jZmdfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19Qcm9ncmFtIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlByb2dyYW0iXTsKKyAgICAgICAgeGRjX2NmZ19fdG9wIC0+IHhkY19jZmdfUHJvZ3JhbVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfUHJvZ3JhbSAtPiB4ZGNfY2ZnX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX01haW4gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbiJdOworICAgICAgICB4ZGNfY2ZnX190b3AgLT4geGRjX2NmZ19NYWluW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19NYWluIC0+IHhkY19jZmdfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHhcbjEsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHRpX3BsYXRmb3Jtc19zaW02NFB4eF9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfUGxhdGZvcm0gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iUGxhdGZvcm0iXTsKKyAgICAgICAgdGlfcGxhdGZvcm1zX3NpbTY0UHh4X190b3AgLT4gdGlfcGxhdGZvcm1zX3NpbTY0UHh4X1BsYXRmb3JtW3N0eWxlPWludmlzXTsKKyAgICAgICAgdGlfcGxhdGZvcm1zX3NpbTY0UHh4X1BsYXRmb3JtIC0+IHRpX3BsYXRmb3Jtc19zaW02NFB4eF9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19ydW50aW1lX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnJ1bnRpbWVcbjIsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19ydW50aW1lX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Fzc2VydCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJBc3NlcnQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9Bc3NlcnRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Bc3NlcnQgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0NvcmUgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQ29yZSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0NvcmVbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Db3JlIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EZWZhdWx0cyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJEZWZhdWx0cyJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0RlZmF1bHRzW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGVmYXVsdHMgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RpYWdzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkRpYWdzIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfRGlhZ3Nbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EaWFncyAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRXJyb3IgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRXJyb3IiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9FcnJvcltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Vycm9yIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkdhdGUiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9HYXRlW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGwgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iR2F0ZU51bGwiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9HYXRlTnVsbFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Mb2cgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTG9nIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTG9nW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTG9nIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW4iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NYWluW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbiAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1lbW9yeSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01lbW9yeVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01lbW9yeSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJIZWFwU3RkIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfSGVhcFN0ZFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGQgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N0YXJ0dXAgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3RhcnR1cCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N0YXJ0dXBbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TdGFydHVwIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW0gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzdGVtIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXNNaW4gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzTWluIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzTWluW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzTWluIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9UZXh0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlRleHQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9UZXh0W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfVGV4dCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW5fTW9kdWxlX0dhdGVQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNZW1vcnlfSGVhcFByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzdGVtX1N1cHBvcnRQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB0aV90YXJnZXRzX3J0czYwMDBfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ0aS50YXJnZXRzLnJ0czYwMDBcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9ImFjbWUudXRpbHMuY2xvY2tzXG4iLCBjb2xvcj13aGl0ZV07CisgICAgICAgIGFjbWVfdXRpbHNfY2xvY2tzX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkNsb2NrU3RkIl07CisgICAgICAgIGFjbWVfdXRpbHNfY2xvY2tzX190b3AgLT4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRbc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZCAtPiBhY21lX3V0aWxzX2Nsb2Nrc19fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE4IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIGFjbWVfdXRpbHNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJhY21lLnV0aWxzXG4iLCBjb2xvcj13aGl0ZV07CisgICAgICAgIGFjbWVfdXRpbHNfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgYWNtZV91dGlsc19CZW5jaCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJCZW5jaCJdOworICAgICAgICBhY21lX3V0aWxzX190b3AgLT4gYWNtZV91dGlsc19CZW5jaFtzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfQmVuY2ggLT4gYWNtZV91dGlsc19fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2sgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQmVuY2hfUENsb2NrIl07CisgICAgICAgIGFjbWVfdXRpbHNfX3RvcCAtPiBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja1tzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrIC0+IGFjbWVfdXRpbHNfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxOSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBjaGFybGllX3NxcnRsaWJfdGVzdF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9ImNoYXJsaWUuc3FydGxpYi50ZXN0XG4iLCBjb2xvcj13aGl0ZV07CisgICAgfQorICB9CisgIG5vZGUgW2ZvbnQ9SGVsdmV0aWNhLCBmb250c2l6ZT0xMF07CisgICAgdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMV81IFtzaGFwZT1yZWNvcmQsbGFiZWw9InRpLnRhcmdldHMuQzY0UHwxLDAsNi4xLDUiLHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWxpZ2h0Z3JleV07CisgICAgY2hhcmxpZV9zcXJ0bGliX19ib3QgLT4gdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMV81IFtsdGFpbD1jbHVzdGVyMTBdOworICAgIHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzBfMTYgW3NoYXBlPXJlY29yZCxsYWJlbD0idGkudGFyZ2V0cy5DNjRQfDEsMCw2LjAsMTYiLHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWxpZ2h0Z3JleV07CisgICAgdGlfdGFyZ2V0c19ydHM2MDAwX190b3AgLT4gdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMF8xNiBbbHRhaWw9Y2x1c3RlcjE2XTsKKyAgICB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18xXzUgW3NoYXBlPXJlY29yZCxsYWJlbD0idGkudGFyZ2V0cy5DNjRQfDEsMCw2LjEsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19fYm90IC0+IHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzFfNSBbbHRhaWw9Y2x1c3RlcjE3XTsKKyAgICB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18xXzUgW3NoYXBlPXJlY29yZCxsYWJlbD0idGkudGFyZ2V0cy5DNjRQfDEsMCw2LjEsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBhY21lX3V0aWxzX19ib3QgLT4gdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMV81IFtsdGFpbD1jbHVzdGVyMThdOworICAgIHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzFfNSBbc2hhcGU9cmVjb3JkLGxhYmVsPSJ0aS50YXJnZXRzLkM2NFB8MSwwLDYuMSw1IixzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZXldOworICAgIGNoYXJsaWVfc3FydGxpYl90ZXN0X190b3AgLT4gdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMV81IFtsdGFpbD1jbHVzdGVyMTldOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuY2ZnLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmNmZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU4OTQxNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmNmZy54bWwKQEAgLTAsMCArMSwyMzc5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgVGhpcyBmaWxlIGNvbmZvcm1zIHRvIHRoZSBEVEQgeGRjL2NmZy9jb25maWd1cmF0aW9uLmR0ZCAtLT4KKzxjb25maWd1cmF0aW9uIG5hbWU9ImNoYXJsaWUuc3FydGxpYi50ZXN0L2lzcXJ0VGVzdDEtVElNRS54NjRQIgorICAgIHBsYXRmb3JtTmFtZT0idGkucGxhdGZvcm1zLnNpbTY0UHh4IgorICAgIGdsb2JhbFNlY3Rpb249Im51bGwiCisgICAgc3lzU3RhY2s9IjQwOTYiCisgICAgc3RhY2s9IjQwOTYiCisgICAgaGVhcD0iNDA5NiIKKyAgICBhcmdTaXplPSI1MTIiCisgICAgZXhlY0NtZD0iRSUzQS9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1dpbmRvd3Mva2VsdmluJTIwLXF1aWV0JTIwLW1lbV9pZ25vcmUlMjBEJTNBJTVDd29yayU1Q3R1dG9yaWFsJTVDcmVwbyU1Q2NoYXJsaWUlNUNzcXJ0bGliJTVDdGVzdCU1Q2lzcXJ0VGVzdDEtVElNRS54NjRQIgorICAgIGVuZGlhbj0ibGl0dGxlIgorICAgIGNvZGVNb2RlbD0ibnVsbCIKKyAgICBkYXRhTW9kZWw9Im51bGwiPgorPHRhcmdldHM+CisgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsNi4xLDUiCisgICAgICAgICAgICB1c2VkYnk9ImNoYXJsaWUuc3FydGxpYiIvPgorICAgIDx0YXJnZXQgbmFtZT0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICAgICAgdmVyc2lvbj0iMSwwLDYuMCwxNiIKKyAgICAgICAgICAgIHVzZWRieT0idGkudGFyZ2V0cy5ydHM2MDAwIi8+CisgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsNi4xLDUiCisgICAgICAgICAgICB1c2VkYnk9ImFjbWUudXRpbHMuY2xvY2tzIi8+CisgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsNi4xLDUiCisgICAgICAgICAgICB1c2VkYnk9ImFjbWUudXRpbHMiLz4KKyAgICA8dGFyZ2V0IG5hbWU9InRpLnRhcmdldHMuQzY0UCIKKyAgICAgICAgICAgIHZlcnNpb249IjEsMCw2LjEsNSIKKyAgICAgICAgICAgIHVzZWRieT0iY2hhcmxpZS5zcXJ0bGliLnRlc3QiLz4KKzwvdGFyZ2V0cz4KKzxpbXBvcnRzPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYyIgdmVyc2lvbj0iMSwgMSwgMSwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5jb3JldmVycyIgdmVyc2lvbj0iMTYsIDAsIDEsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuZ2xvYmFsIiB2ZXJzaW9uPSIxLCAwLCAxIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuc2VydmljZXMuZ2xvYmFsLkNsb2NrIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImVuYWJsZSIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzaG93TWVtb3J5IiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnNlcnZpY2VzLmdsb2JhbC5UcmFjZSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNoZWxmIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLnNwZWMiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuaW50ZXJuLnhzciIgdmVyc2lvbj0iMSwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5pbnRlcm4uZ2VuIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmludGVybi5jbWQiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucm92IiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92Lk1vZGVsIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuUHJvZ3JhbSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlN0cnVjdHVyZURlY29kZXIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5TdGF0ZVJlYWRlciIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlZpZXdJbmZvIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJjaGFybGllLnNxcnRsaWIiIHZlcnNpb249IjEsIDAsIDIsIDYiIHJlcG9zaXRvcnk9IkQ6L3dvcmsvdHV0b3JpYWwvcmVwby8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9ImNoYXJsaWUuc3FydGxpYi5TZXR0aW5ncyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJvcHRpbWl6ZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzLk9QVElNSVpFX0ZPUl9USU1FIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDUyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RORVRWMjY4NSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDI4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MTEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcxMUIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcxMiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzEzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMTEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIxMUIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDExIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxMyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDE0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDE4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MjEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQyNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcxMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEQTcwMFNJTSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0NDIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDQ0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQ0NiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERSQTQ0NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzIyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MjYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcyNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQxNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTQyNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MzEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDMzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQzNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MzciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDQxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ0MyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0NDYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBETTM1NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0NjciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJJMzAwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODIiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2FjaGVTaXplTDEiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyNzBrJTI3JTJDJTIwMHgwJTVEJTJDJTBBJTVCJTI3NGslMjclMkMlMjAweDEwMDAlNUQlMkMlMEElNUIlMjc4ayUyNyUyQyUyMDB4MjAwMCU1RCUyQyUwQSU1QiUyNzE2ayUyNyUyQyUyMDB4NDAwMCU1RCUyQyUwQSU1QiUyNzMyayUyNyUyQyUyMDB4ODAwMCU1RCUwQSU1RCI+PG1hcCBpZD0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4Mi9jYWNoZVNpemVMMSIgbGVuZ3RoPSI1Ij4NCisgIDxlbnRyeSBrZXk9IjBrIj4weDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iNGsiPjB4MTAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSI4ayI+MHgyMDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjE2ayI+MHg0MDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjMyayI+MHg4MDAwPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNhY2hlU2l6ZUwyIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjcwayUyNyUyQyUyMDB4MCU1RCUyQyUwQSU1QiUyNzMyayUyNyUyQyUyMDB4ODAwMCU1RCUyQyUwQSU1QiUyNzY0ayUyNyUyQyUyMDB4MTAwMDAlNUQlMkMlMEElNUIlMjcxMjhrJTI3JTJDJTIwMHgyMDAwMCU1RCUyQyUwQSU1QiUyNzI1NmslMjclMkMlMjAweDQwMDAwJTVEJTBBJTVEIj48bWFwIGlkPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDgyL2NhY2hlU2l6ZUwyIiBsZW5ndGg9IjUiPg0KKyAgPGVudHJ5IGtleT0iMGsiPjB4MDwvZW50cnk+DQorICA8ZW50cnkga2V5PSIzMmsiPjB4ODAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSI2NGsiPjB4MTAwMDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iMTI4ayI+MHgyMDAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSIyNTZrIj4weDQwMDAwPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4NiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDg3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4NCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDU0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NTUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDMjQzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEMzNDMwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MDEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjAyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMDMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwM0IiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjA1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQwNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0MDIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDA0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQxNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0MTYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRjc2MTk5MCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAyNDMxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDI1MzAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMjUzMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAzNDI1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDM1MjUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMzUzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODA1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MDciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgwOCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODEwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MjgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDcyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NzQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjc0NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzQ1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUEwxMzciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQ1NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnBsYXRmb3JtIiB2ZXJzaW9uPSIxLCAwLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucGxhdGZvcm0uRXhlQ29udGV4dCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5wbGF0Zm9ybS5VdGlscyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuY2ZnIiB2ZXJzaW9uPSIxLCAwLCAyLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuY2ZnLlByb2dyYW0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2VuIiB0eXBlPSJ4ZGMuY2ZnLlByb2dyYW0uR2VuZXJhdGlvbk9wdGlvbnMiIHZhbHVlPSIlN0JkZWJ1Z2dlckZpbGVzJTNBJTIwdW5kZWZpbmVkJTdEIj48c3RydWN0IGlkPSJ4ZGMuY2ZnLlByb2dyYW0vZ2VuIj4NCisgIDxmaWVsZCBuYW1lPSJkZWJ1Z2dlckZpbGVzIj51bmRlZmluZWQ8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2xvYmFsU2VjdGlvbiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3lzU3RhY2siIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN0YWNrIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJoZWFwIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJhcmdTaXplIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI1MTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4ZWNDbWQiIHR5cGU9InN0cmluZyIgdmFsdWU9IkUlM0EvcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9XaW5kb3dzL2tlbHZpbiUyMC1xdWlldCUyMC1tZW1faWdub3JlJTIwRCUzQSU1Q3dvcmslNUN0dXRvcmlhbCU1Q3JlcG8lNUNjaGFybGllJTVDc3FydGxpYiU1Q3Rlc3QlNUNpc3FydFRlc3QxLVRJTUUueDY0UCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibGlua1RlbXBsYXRlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYWluIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNlY3RNYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeXN0ZW0iIHR5cGU9InVuZGVmaW5lZCIgdmFsdWU9InVuZGVmaW5lZCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iaXNxcnRUZXN0MS1USU1FLng2NFAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1aWxkUGFja2FnZSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iY2hhcmxpZS5zcXJ0bGliLnRlc3QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImVuZGlhbiIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0ibGl0dGxlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb2RlTW9kZWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImRhdGFNb2RlbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVpbGQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1Qm9iamVjdCUyME9iamVjdCU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY3B1IiB0eXBlPSJ4ZGMucGxhdGZvcm0uSUV4ZUNvbnRleHQuSW5zdGFuY2UiIHZhbHVlPSIlN0JpZCUzQSUyMDAlMkMlMjBjYXRhbG9nTmFtZSUzQSUyMHRpLmNhdGFsb2cuYzYwMDAlMkMlMjBkZXZpY2VOYW1lJTNBJTIwVE1TMzIwQ1RDSTY0ODIlMkMlMjByZXZpc2lvbiUzQSUyMCUyQyUyMGNsb2NrUmF0ZSUzQSUyMDB4M2U4JTJDJTIwYm9hcmQlM0ElMjAlN0JpZCUzQSUyMDAlMkMlMjBib2FyZE5hbWUlM0ElMjBzaW02NFB4eCUyQyUyMGJvYXJkRmFtaWx5JTNBJTIwc2ltNjRQeHglMkMlMjBib2FyZFJldmlzaW9uJTNBJTIwbnVsbCU3RCUyQyUyMGF0dHJzJTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAZGY4M2U1JTNBJTNBJTI4eGRjLnBsYXRmb3JtLklDcHVEYXRhU2hlZXQuSW5zdGFuY2UlMjl0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDgyLkluc3RhbmNlJTIzMCUyQyUyMG1lbW9yeU1hcCUzQSUyMCU1QiUwQSU1QiUyN0lSQU0lMjclMkMlMjAlN0Jjb21tZW50JTNBJTIwSW50ZXJuYWwlMjAyTUIlMjBVTUFQMCUyMG1lbW9yeSUyQyUyMG5hbWUlM0ElMjBJUkFNJTJDJTIwc3BhY2UlM0ElMjBjb2RlL2RhdGElMkMlMjBwYWdlJTNBJTIwdW5kZWZpbmVkJTJDJTIwYmFzZSUzQSUyMDB4ODAwMDAwJTJDJTIwbGVuJTNBJTIwMHgyMDAwMDAlMkMlMjBhY2Nlc3MlM0ElMjBSV1glN0QlNUQlMkMlMEElNUIlMjdERFIlMjclMkMlMjAlN0Jjb21tZW50JTNBJTIwdW5kZWZpbmVkJTJDJTIwbmFtZSUzQSUyMEREUiUyQyUyMHNwYWNlJTNBJTIwdW5kZWZpbmVkJTJDJTIwcGFnZSUzQSUyMHVuZGVmaW5lZCUyQyUyMGJhc2UlM0ElMjAweDgwMDAwMDAwJTJDJTIwbGVuJTNBJTIwMHgxMDAwMDAwMCUyQyUyMGFjY2VzcyUzQSUyMHVuZGVmaW5lZCU3RCU1RCUwQSU1RCU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icGxhdGZvcm1OYW1lIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InBsYXRmb3JtIiB0eXBlPSJ4ZGMucGxhdGZvcm0uSVBsYXRmb3JtLkluc3RhbmNlIiB2YWx1ZT0iJTdCZXh0ZXJuYWxNZW1vcnlNYXAlM0ElMjAlNUIlMEElNUIlMjdERFIlMjclMkMlMjAlN0Jjb21tZW50JTNBJTIwdW5kZWZpbmVkJTJDJTIwbmFtZSUzQSUyMEREUiUyQyUyMHNwYWNlJTNBJTIwdW5kZWZpbmVkJTJDJTIwcGFnZSUzQSUyMHVuZGVmaW5lZCUyQyUyMGJhc2UlM0ElMjAweDgwMDAwMDAwJTJDJTIwbGVuJTNBJTIwMHgxMDAwMDAwMCUyQyUyMGFjY2VzcyUzQSUyMHVuZGVmaW5lZCU3RCU1RCUwQSU1RCUyQyUyMGN1c3RvbU1lbW9yeU1hcCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJlbmFtZU1hcCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMGRhdGFNZW1vcnklM0ElMjBERFIlMkMlMjBjb2RlTWVtb3J5JTNBJTIwSVJBTSUyQyUyMHN0YWNrTWVtb3J5JTNBJTIwRERSJTJDJTIwc2VjdE1hcCUzQSUyMCU1QiUwQSUwQSU1RCU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2xvYmFsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3ltYm9sIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DJTI3JTJDJTIwMHgxJTVEJTJDJTBBJTVCJTI3eGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MlMjclMkMlMjAweDElNUQlMEElNUQiPjxtYXAgaWQ9InhkYy5jZmcuUHJvZ3JhbS9zeW1ib2wiIGxlbmd0aD0iMiI+DQorICA8ZW50cnkga2V5PSJ4ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DIj4weDE8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0ieGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MiPjB4MTwvZW50cnk+DQorPC9tYXA+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmaXhlZENvZGVBZGRyIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmaXhlZERhdGFBZGRyIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsb2FkRml4ZWREYXRhQWRkciIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsb2FkUm9tIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLmNmZy5NYWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIgdmVyc2lvbj0iMSwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkucGxhdGZvcm1zLnNpbTY0UHh4LlBsYXRmb3JtIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkJPQVJEIiB0eXBlPSJ4ZGMucGxhdGZvcm0uSVBsYXRmb3JtLkJvYXJkIiB2YWx1ZT0iJTdCaWQlM0ElMjAwJTJDJTIwYm9hcmROYW1lJTNBJTIwc2ltNjRQeHglMkMlMjBib2FyZEZhbWlseSUzQSUyMHNpbTY0UHh4JTJDJTIwYm9hcmRSZXZpc2lvbiUzQSUyMG51bGwlN0QiPjxzdHJ1Y3QgaWQ9InRpLnBsYXRmb3Jtcy5zaW02NFB4eC5QbGF0Zm9ybS9CT0FSRCI+DQorICA8ZmllbGQgbmFtZT0iaWQiPjA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImJvYXJkTmFtZSI+c2ltNjRQeHg8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImJvYXJkRmFtaWx5Ij5zaW02NFB4eDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmRSZXZpc2lvbiI+bnVsbDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJDUFUiIHR5cGU9InhkYy5wbGF0Zm9ybS5JRXhlQ29udGV4dC5DcHUiIHZhbHVlPSIlN0JpZCUzQSUyMDAlMkMlMjBjYXRhbG9nTmFtZSUzQSUyMHRpLmNhdGFsb2cuYzYwMDAlMkMlMjBkZXZpY2VOYW1lJTNBJTIwVE1TMzIwQ1RDSTY0ODIlMkMlMjByZXZpc2lvbiUzQSUyMCUyQyUyMGNsb2NrUmF0ZSUzQSUyMDB4M2U4JTdEIj48c3RydWN0IGlkPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHguUGxhdGZvcm0vQ1BVIj4NCisgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY2F0YWxvZ05hbWUiPnRpLmNhdGFsb2cuYzYwMDA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRldmljZU5hbWUiPlRNUzMyMENUQ0k2NDgyPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyZXZpc2lvbiIvPg0KKyAgPGZpZWxkIG5hbWU9ImNsb2NrUmF0ZSI+MHgzZTg8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnJ1bnRpbWUiIHZlcnNpb249IjIsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkFzc2VydCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfYXNzZXJ0RmFpbGVkIiB0eXBlPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIiB2YWx1ZT0iJTdCbXNnJTNBJTIwYXNzZXJ0aW9uJTIwZmFpbHVyZSUyNXMlMjVzJTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMwIj4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPmFzc2VydGlvbiBmYWlsdXJlJXMlczwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuQ29yZSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkNvcmUvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9pbml0aWFsaXplZFBhcmFtcyIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEFfaW5pdGlhbGl6ZWRQYXJhbXMlM0ElMjB1bmluaXRpYWxpemVkJTIwUGFyYW1zJTIwc3RydWN0JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMwIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkFfaW5pdGlhbGl6ZWRQYXJhbXM6IHVuaW5pdGlhbGl6ZWQgUGFyYW1zIHN0cnVjdDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkRlZmF1bHRzIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuRGlhZ3MiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5EaWFncy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRU5UUlkiIHR5cGU9Im51bWJlciIgdmFsdWU9IjEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVYSVQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxJRkVDWUNMRSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iSU5URVJOQUwiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFTU0VSVCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVIxIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyNTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVIyIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI1MTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVIzIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxMDI0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMjA0OCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI2IiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4MTkyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYzODQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI4IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc2OCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQUxMIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI2NTUzNSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2V0TWFza0VuYWJsZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGljdEJhc2UiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuRXJyb3IiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTlVNQVJHUyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9nZW5lcmljIiB0eXBlPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIiB2YWx1ZT0iJTdCbXNnJTNBJTIwZ2VuZXJpYyUyMGVycm9yJTNBJTIwJTI1cyUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjMSI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5nZW5lcmljIGVycm9yOiAlczwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfbWVtb3J5IiB0eXBlPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIiB2YWx1ZT0iJTdCbXNnJTNBJTIwb3V0JTIwb2YlMjBtZW1vcnklM0ElMjBoZWFwJTNEMHglMjV4JTJDJTIwc2l6ZSUzRCUyNXUlMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzIiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+b3V0IG9mIG1lbW9yeTogaGVhcD0weCV4LCBzaXplPSV1PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icG9saWN5IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJ4ZGMucnVudGltZS5FcnJvci5VTldJTkQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJhaXNlSG9vayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1heERlcHRoIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5HYXRlIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuR2F0ZS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc1Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkdhdGVOdWxsIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlFfQkxPQ0tJTkciIHR5cGU9Im51bWJlciIgdmFsdWU9IjEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlFfUFJFRU1QVElORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMiIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Mb2ciCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc3Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJOVU1BUkdTIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJQUklOVEZJRCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9jb25zdHJ1Y3QiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwJTNDLS0lMjBjb25zdHJ1Y3QlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9jcmVhdGUiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwJTNDLS0lMjBjcmVhdGUlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9kZXN0cnVjdCIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAtLSUzRSUyMGRlc3RydWN0JTNBJTIwJTI4JTI1cCUyOSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMyIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDQ8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+LS0+IGRlc3RydWN0OiAoJXApPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfZGVsZXRlIiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMC0tJTNFJTIwZGVsZXRlJTNBJTIwJTI4JTI1cCUyOSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMzIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDQ8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+LS0+IGRlbGV0ZTogKCVwKTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJpZFRvSW5mbyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3JTIzNDY4JTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfY29uc3RydWN0JTNBJTNBJTNDLS0lMjBjb25zdHJ1Y3QlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU1RCUyQyUwQSU1QiUyNyUyMzQ5MiUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2NyZWF0ZSUzQSUzQSUzQy0tJTIwY3JlYXRlJTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklNUQlMkMlMEElNUIlMjclMjM1MTMlMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9kZXN0cnVjdCUzQSUzQS0tJTNFJTIwZGVzdHJ1Y3QlM0ElMjAlMjglMjVwJTI5JTVEJTJDJTBBJTVCJTI3JTIzNTMyJTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfZGVsZXRlJTNBJTNBLS0lM0UlMjBkZWxldGUlM0ElMjAlMjglMjVwJTI5JTVEJTBBJTVEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZ2dlckJ1ZiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Mb2dnZXJTeXMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTWFpbiIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLk1haW4vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3OCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX0dhdGVQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHgxJTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwUV9CTE9DS0lORyUzQSUyMDB4MSUyQyUyMFFfUFJFRU1QVElORyUzQSUyMDB4MiUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMTNhMzRhZiUzQSUzQSUyOHhkYy5ydW50aW1lLklHYXRlUHJvdmlkZXIuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkMlMjBhYnN0cmFjdEluc3RhbmNlcyUyNCUzQSUyMGZhbHNlJTdEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLk1lbW9yeSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLk1lbW9yeS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzkiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlFfQkxPQ0tJTkciIHR5cGU9Im51bWJlciIgdmFsdWU9IjEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImRlZmF1bHRIZWFwSW5zdGFuY2UiIHR5cGU9InhkYy5ydW50aW1lLklIZWFwLkluc3RhbmNlIiB2YWx1ZT0iJTdCJTdEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImRlZmF1bHRIZWFwU2l6ZSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iSGVhcFByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHgyJTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxNjBiZjUwJTNBJTNBJTI4eGRjLnJ1bnRpbWUuSUhlYXAuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuSGVhcFN0ZCUyQyUyMGFic3RyYWN0SW5zdGFuY2VzJTI0JTNBJTIwdHJ1ZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5IZWFwTWluIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkhlYXBTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfbm9SVFNNZW1vcnkiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBUaGUlMjBSVFMlMjBoZWFwJTIwaXMlMjB1c2VkJTIwdXAuJTIwRXhhbWluZSUyMFByb2dyYW0uaGVhcC4lMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzQiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+VGhlIFJUUyBoZWFwIGlzIHVzZWQgdXAuIEV4YW1pbmUgUHJvZ3JhbS5oZWFwLjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfemVyb1NpemUiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBIZWFwU3RkX2NyZWF0ZSUyMGNhbm5vdCUyMGhhdmUlMjBhJTIwemVybyUyMHNpemUlMjB2YWx1ZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5IZWFwU3RkX2NyZWF0ZSBjYW5ub3QgaGF2ZSBhIHplcm8gc2l6ZSB2YWx1ZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2ludmFsaWRUb3RhbEZyZWVTaXplIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwSGVhcFN0ZCUyMGluc3RhbmNlJTIwdG90YWxGcmVlU2l6ZSUyMGlzJTIwZ3JlYXRlciUyMHRoYW4lMjBzdGFydGluZyUyMHNpemUlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZCBpbnN0YW5jZSB0b3RhbEZyZWVTaXplIGlzIGdyZWF0ZXIgdGhhbiBzdGFydGluZyBzaXplPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfaW52YWxpZEFsaWdubWVudCIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEhlYXBTdGRfYWxsb2MlMjAtJTIwcmVxdWVzdGVkJTIwYWxpZ25tZW50JTIwaXMlMjBncmVhdGVyJTIwdGhhbiUyMGFsbG93ZWQlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZF9hbGxvYyAtIHJlcXVlc3RlZCBhbGlnbm1lbnQgaXMgZ3JlYXRlciB0aGFuIGFsbG93ZWQ8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TdGFydHVwIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJET05FIiB0eXBlPSJudW1iZXIiIHZhbHVlPSItMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTk9URE9ORSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4UGFzc2VzIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZmlyc3RGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibGFzdEZ4bnMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyZXNldEZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3RhcnRNb2RzRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc19fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXhlY0ltcGwiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2Z4blRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FJTJDJTIwJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FJTJDJTIwJTI2YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2Z4blJ0cyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCdHJ1ZSUyQyUyMHRydWUlMkMlMjBmYWxzZSU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuUnRzIiBsZW5ndGg9IjMiPg0KKyAgPGVsZW0+dHJ1ZTwvZWxlbT4NCisgIDxlbGVtPnRydWU8L2VsZW0+DQorICA8ZWxlbT5mYWxzZTwvZWxlbT4NCis8L3ZlY3Rvcj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3lzdGVtIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuU3lzdGVtL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iU1RBVFVTX1VOS05PV04iIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxOTY2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2Nhbm5vdEZpdEludG9BcmciIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBBX2Nhbm5vdEZpdEludG9BcmclM0ElMjBzaXplb2YlMjhGbG9hdCUyOSUyMCUzRSUyMHNpemVvZiUyOEFyZyUyOSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNSI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5BX2Nhbm5vdEZpdEludG9Bcmc6IHNpemVvZihGbG9hdCkgPiBzaXplb2YoQXJnKTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleHRlbmRlZEZvcm1hdHMiIHR5cGU9InN0cmluZyIgdmFsdWU9IiUyNSUyNEwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlN1cHBvcnRQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4MyUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAOTZhZDdjJTNBJTNBJTI4eGRjLnJ1bnRpbWUuSVN5c3RlbVN1cHBvcnQuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuU3lzTWluJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYXhBdGV4aXRIYW5kbGVycyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXh0ZW5kRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleGl0RnhucyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9HYXRlUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHg0JTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwUV9CTE9DS0lORyUzQSUyMDB4MSUyQyUyMFFfUFJFRU1QVElORyUzQSUyMDB4MiUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMTJkOGVjZCUzQSUzQSUyOHhkYy5ydW50aW1lLklHYXRlUHJvdmlkZXIuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkMlMjBhYnN0cmFjdEluc3RhbmNlcyUyNCUzQSUyMGZhbHNlJTdEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN5c1N0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXNNaW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgzIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZWaWV3SW5mbyIgdHlwZT0ieGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSIgdmFsdWU9IiU3QnZpZXdNYXAlM0ElMjAlNUIlMEElNUIlMjdNb2R1bGUlMjclMkMlMjAlN0J0eXBlJTNBJTIwTU9EVUxFJTJDJTIwdmlld0luaXRGeG4lM0ElMjB2aWV3SW5pdE1vZHVsZSUyQyUyMHN0cnVjdE5hbWUlM0ElMjBNb2R1bGVWaWV3JTdEJTVEJTJDJTBBJTVCJTI3T3V0cHV0QnVmZmVyJTI3JTJDJTIwJTdCdHlwZSUzQSUyME1PRFVMRV9EQVRBJTJDJTIwdmlld0luaXRGeG4lM0ElMjB2aWV3SW5pdE91dHB1dEJ1ZmZlciUyQyUyMHN0cnVjdE5hbWUlM0ElMjBCdWZmZXJFbnRyeVZpZXclN0QlNUQlMEElNUQlMkMlMjBzaG93UmF3VGFiJTNBJTIwdHJ1ZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVmU2l6ZSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTAyNCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZmx1c2hBdEV4aXQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZWN0aW9uTmFtZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ib3V0cHV0RnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJvdXRwdXRGdW5jIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRleHQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVVbmtub3duIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlN0J1bmtub3duLWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVFbXB0eSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCZW1wdHktaW5zdGFuY2UtbmFtZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZVN0YXRpYyIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCc3RhdGljLWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImlzTG9hZGVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2hhclRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCMHgwJTJDJTIwMHg0MSUyQyUyMDB4NWYlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4NTAlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHg3MyUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDUwJTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NjMlMkMlMjAweDc0JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NGQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg3NiUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4MjAlMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHg1ZiUyQyUyMDB4NjMlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDc2JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHgyMCUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDc2JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2MyUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDQ2JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDY1JTJDJTIwMHg1MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjclMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDVmJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjMlMkMlMjAweDIwJTJDJTIwMHgyZCUyQyUyMDB4MjAlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NzElMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg2NyUyQyUyMDB4NmUlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg3NyUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgwJTJDJTIwMHg0MSUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDQ2JTJDJTIwMHg2OSUyQyUyMDB4NzQlMkMlMjAweDQ5JTJDJTIwMHg2ZSUyQyUyMDB4NzQlMkMlMjAweDZmJTJDJTIwMHg0MSUyQyUyMDB4NzIlMkMlMjAweDY3JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2ZiUyQyUyMDB4NjYlMkMlMjAweDI4JTJDJTIwMHg0NiUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDI5JTJDJTIwMHgyMCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NmYlMkMlMjAweDY2JTJDJTIwMHgyOCUyQyUyMDB4NDElMkMlMjAweDcyJTJDJTIwMHg2NyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDYxJTJDJTIwMHg3MyUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg2NiUyQyUyMDB4NjElMkMlMjAweDY5JTJDJTIwMHg2YyUyQyUyMDB4NzUlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDY3JTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NjklMkMlMjAweDYzJTJDJTIwMHgyMCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NmYlMkMlMjAweDc1JTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDZmJTJDJTIwMHg2NiUyQyUyMDB4MjAlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4NmQlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4NzklMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDNkJTJDJTIwMHgzMCUyQyUyMDB4NzglMkMlMjAweDI1JTJDJTIwMHg3OCUyQyUyMDB4MmMlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4M2QlMkMlMjAweDI1JTJDJTIwMHg3NSUyQyUyMDB4MCUyQyUyMDB4NjYlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjUlMkMlMjAweDI4JTJDJTIwMHgyOSUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NzYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NzclMkMlMjAweDc0JTJDJTIwMHg2OCUyQyUyMDB4MmQlMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4NmMlMkMlMjAweDc5JTJDJTIwMHgyMCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDRkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDAlMkMlMjAweDU0JTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg1MiUyQyUyMDB4NTQlMkMlMjAweDUzJTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDc1JTJDJTIwMHg3MCUyQyUyMDB4MmUlMkMlMjAweDIwJTJDJTIwMHg0NSUyQyUyMDB4NzglMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDUwJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHgyZSUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHgzYyUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI4JTJDJTIwMHgyNyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDNjJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjglMkMlMjAweDI3JTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDI3JTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDY0JTJDJTIwMHg2NSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyOCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDY0JTJDJTIwMHg2NSUyQyUyMDB4NmMlMkMlMjAweDY1JTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjglMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDc4JTJDJTIwMHg2NCUyQyUyMDB4NjMlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDZlJTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDQxJTJDJTIwMHg3MyUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDAlMkMlMjAweDQzJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0NCUyQyUyMDB4NjUlMkMlMjAweDY2JTJDJTIwMHg2MSUyQyUyMDB4NzUlMkMlMjAweDZjJTJDJTIwMHg3NCUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDQ0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDY3JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NDUlMkMlMjAweDcyJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHgwJTJDJTIwMHg0NyUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDclMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDRlJTJDJTIwMHg3NSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHgwJTJDJTIwMHg0YyUyQyUyMDB4NmYlMkMlMjAweDY3JTJDJTIwMHgwJTJDJTIwMHg0ZCUyQyUyMDB4NjElMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MCUyQyUyMDB4NGQlMkMlMjAweDY1JTJDJTIwMHg2ZCUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHg3OSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4NzUlMkMlMjAweDcwJTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzklMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDZkJTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzklMkMlMjAweDczJTJDJTIwMHg0ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgwJTJDJTIwMHg1NCUyQyUyMDB4NjUlMkMlMjAweDc4JTJDJTIwMHg3NCUyQyUyMDB4MCUyQyUyMDB4NjElMkMlMjAweDYzJTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg3NSUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2YyUyQyUyMDB4NzMlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg2MyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MyUyQyUyMDB4NmIlMkMlMjAweDczJTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4NDMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjMlMkMlMjAweDZiJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHgwJTJDJTIwMHg0MiUyQyUyMDB4NjUlMkMlMjAweDZlJTJDJTIwMHg2MyUyQyUyMDB4NjglMkMlMjAweDAlNUQiPjx2ZWN0b3IgaWQ9InhkYy5ydW50aW1lLlRleHQvY2hhclRhYiIgbGVuZ3RoPSI2OTciPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDUwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDQ2PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzE8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDQ2PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDQ5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHg0NjwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4M2U8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDNkPC9lbGVtPg0KKyAgPGVsZW0+MHgzMDwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4MmM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4M2Q8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Nzc8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDU0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MjwvZWxlbT4NCisgIDxlbGVtPjB4NTQ8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NTwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDUwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgzYzwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNzwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyNzwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDNjPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgzZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgzZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQzPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDc8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDRlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmI8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDZiPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorPC92ZWN0b3I+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJub2RlVGFiIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlN0JsZWZ0JTNBJTIwMHgwJTJDJTIwcmlnaHQlM0ElMjAweDAlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHgyMjUlMkMlMjByaWdodCUzQSUyMDB4MjJhJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyMzMlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDIzYSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjNmJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNDglN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI0ZSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjU0JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNTklN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI2MiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjY2JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNmIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI3MiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjdhJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyODIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI4OSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjkwJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4Mjk1JTJDJTIwcmlnaHQlM0ElMjAweDI5YiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMTElMkMlMjByaWdodCUzQSUyMDB4MmEyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAxMiUyQyUyMHJpZ2h0JTNBJTIwMHgyYWElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDExJTJDJTIwcmlnaHQlM0ElMjAweDJiMyU3RCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiIiBsZW5ndGg9IjIxIj4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MDwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDA8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MjI1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjJhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyMzM8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIzYTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjNmPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNDg8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI0ZTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjU0PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNTk8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2NjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2YjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3YTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4OTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI5MDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4Mjk1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjliPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE4Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDExPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MmEyPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE5Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDEyPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MmFhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIwIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDExPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MmIzPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorPC92ZWN0b3I+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjaGFyQ250IiB0eXBlPSJudW1iZXIiIHZhbHVlPSI2OTciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5vZGVDbnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aXNpdFJvcGVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aXNpdFJvcGVGeG4yIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGltZXN0YW1wIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcE51bGwiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGltZXN0YW1wU3RkIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlR5cGVzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ0aS50YXJnZXRzLnJ0czYwMDAiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJhY21lLnV0aWxzLmNsb2NrcyIgdmVyc2lvbj0iIiByZXBvc2l0b3J5PSJEOi93b3JrL3R1dG9yaWFsL3JlcG8vIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9ImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzg3Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJhY21lLnV0aWxzIiB2ZXJzaW9uPSIiIHJlcG9zaXRvcnk9IkQ6L3dvcmsvdHV0b3JpYWwvcmVwby8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9ImFjbWUudXRpbHMuQmVuY2giCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJhY21lLnV0aWxzLkJlbmNoL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlBDbG9jayIgdHlwZT0iYWNtZS51dGlscy5CZW5jaF9QQ2xvY2suTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDUlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDE2ZDM1MzYlM0ElM0ElMjhhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2suTW9kdWxlJTI5YWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImVuYWJsZUZsYWciIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJjaGFybGllLnNxcnRsaWIudGVzdCIgdmVyc2lvbj0iIiByZXBvc2l0b3J5PSJEOi93b3JrL3R1dG9yaWFsL3JlcG8vIj4KKyAgICA8L3BhY2thZ2U+Cis8L2ltcG9ydHM+Cis8L2NvbmZpZ3VyYXRpb24+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDczZTg2OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmRlcApAQCAtMCwwICsxLDExOCBAQAorIworIyBUaGUgZm9sbG93aW5nIGlzIGdlbmVyYXRlZCBieSB1dGlscy5nZW5EZXAgZm9yIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQCisjCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmggcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAueGRsOmlzcXJ0VGVzdDEuY2ZnIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmNmZyBEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9CZW5jaC54cyBEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lBbnRhcmEueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSURhVmluY2kueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSUhpbWFsYXlhLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lPTUFQMngzeC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JT01BUDN4eHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NDJ4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMTI4Sy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzFNLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMjU2Sy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzUxMksueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2eDB4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngxeC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RNNjQ2Ny54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RSQTQ0eC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RSeDQweC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0ODQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENUQ0k2NDg2LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4eC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwREE4eHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0MjEueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0MjgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0NTIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0NTQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQzMS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRE02NDcueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQ4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENGNzYxOTkwLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENUTkVUVjI2ODUueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvYzZ4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9QbGF0Zm9ybS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9ydHM2MDAwL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL29tMi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9FeGVDb250ZXh0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vSVBsYXRmb3JtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vVXRpbHMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L01vZGVsLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1Byb2dyYW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RhdGVSZWFkZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RydWN0dXJlRGVjb2Rlci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcE1pbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJCdWYueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlclN5cy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGltZXN0YW1wLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL1RyYWNlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54cyAKKworRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvQmVuY2gueHM6CitEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2k6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JQW50YXJhLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSURhVmluY2kueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JSGltYWxheWEueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JT01BUDJ4M3gueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JT01BUDN4eHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0MngueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzEyOEsueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzFNLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8yNTZLLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF81MTJLLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2eDB4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2eDF4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENETTY0NjcueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RSQTQ0eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDRFJ4NDB4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENUQ0k2NDg0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENUQ0k2NDg2LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENUQ0k2NDh4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMERBOHh4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0MjEueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQyOC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDUyLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0NTQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRE02NDMxLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQ3LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQ4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0Y3NjE5OTAueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDVE5FVFYyNjg1LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvYzZ4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9wbGF0Zm9ybXMvc2ltNjRQeHgvUGxhdGZvcm0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9ydHM2MDAwL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvTWFpbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0V4ZUNvbnRleHQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0lQbGF0Zm9ybS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vVXRpbHMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Nb2RlbC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1Byb2dyYW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdGF0ZVJlYWRlci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0cnVjdHVyZURlY29kZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcE1pbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlckJ1Zi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJTeXMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RpbWVzdGFtcC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvQ2xvY2sueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2k6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54czoKKworCitkZWZpbmUgRVhFQy5pc3FydFRlc3QxLVRJTUUueDY0UAorCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1dpbmRvd3Mva2VsdmluIC1xdWlldCAtbWVtX2lnbm9yZSBEOlx3b3JrXHR1dG9yaWFsXHJlcG9cY2hhcmxpZVxzcXJ0bGliXHRlc3RcaXNxcnRUZXN0MS1USU1FLng2NFAKK2VuZGVmCisKKyMKKyMgVGhlIGZvbGxvd2luZyBpcyBnZW5lcmF0ZWQgYnkgamF2YQorIworCitpc3FydFRlc3QxLVRJTUUueDY0UDogRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvbGliL2FjbWUudXRpbHMuYTY0UCBEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9jbG9ja3MvbGliL2FjbWUudXRpbHMuY2xvY2tzLmE2NFAgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9saWIvdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9saWIvYm9vdC5hNjRQIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvbGliL2lzcXJ0X3Vucm9sbC5hNjRQIAorCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua2NtZC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua2NtZC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua1V0aWxzLnhzIAorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuYyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC54ZGw6IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvLmludGVyZmFjZXMgRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5pbnRlcmZhY2VzIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzLy5pbnRlcmZhY2VzIC5pbnRlcmZhY2VzIAorCisjCisjIHJ1bGUtbGVzcyBnb2FscyBmb3IgZmlsZXMgb3V0c2lkZSB0aGlzIHBhY2thZ2UKKyMgKHRoZXNlIGdvYWxzIGZvcmNlIGEgcmUtYnVpbGQgaWYgdGhlc2UgZmlsZXMgYXJlCisjIG1vdmVkIG9yIGRlbGV0ZWQpCisjCitEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9saWIvYWNtZS51dGlscy5hNjRQOgorRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hNjRQOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9saWIvdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFA6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9ydHM2MDAwL2xpYi9ib290LmE2NFA6CitEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF91bnJvbGwuYTY0UDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rY21kLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL2xpbmtjbWQueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua1V0aWxzLnhzOgorRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi8uaW50ZXJmYWNlczoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy8uaW50ZXJmYWNlczoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzLy5pbnRlcmZhY2VzOgorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjBmMTI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuaApAQCAtMCwwICsxLDEzIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCitleHRlcm4gaW50IHhkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0M7CisKK2V4dGVybiBpbnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0M7CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Yzc1Mzk3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAubWFrCkBAIC0wLDAgKzEsNzcgQEAKKyMKKyMgIERvIG5vdCBlZGl0IHRoaXMgZmlsZS4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSAKKyMgIHBhY2thZ2UuYmxkLiAgQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBmaWxlIHdpbGwgYmUgCisjICBvdmVyd3JpdHRlbiB3aGVuZXZlciBtYWtlZmlsZXMgYXJlIHJlLWdlbmVyYXRlZC4KKyMKKyMgIHRhcmdldCBjb21wYXRpYmlsaXR5IGtleSA9IHRpLnRhcmdldHMuQzY0UHsxLDAsNi4xLDUKKyMKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vNjRQLmRlcAorZW5kaWYKKworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEubzY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEubzY0UDogaXNxcnRUZXN0MS5jIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRSAtZnI9Li9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRSAtcyBvNjRQICQ8IC1DICAgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FIC1mcj0uL3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRQorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm82NFA6Q19ESVI9CitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm82NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5zNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5zNjRQOiBpc3FydFRlc3QxLmMgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAtbiAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FIC1mcj0uL3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRSAtZmMgJDwKKwkkKE1LREVQKSAtYSAkQC5kZXAgLXAgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUgLWZyPS4vcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEuczY0UDpDX0RJUj0KK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLnM2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEuczY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQLmRlcAorZW5kaWYKKworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuYyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvY2ZnIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQOkNfRElSPQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuczY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuczY0UDogcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuYyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQIC1uICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvY2ZnIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5zNjRQOkNfRElSPQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuczY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5zNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworY2xlYW4sNjRQIDo6CisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm82NFAKKwktJChSTSkgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UAorCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5zNjRQCisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLnM2NFAKKworaXNxcnRUZXN0MS1USU1FLng2NFA6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm82NFAgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5tYWsKKworY2xlYW46OgorCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5tYWsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkNDUxMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAubzY0UC5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU2OWY4MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLm82NFAuZGVwCkBAIC0wLDAgKzEsNTUgQEAKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLm82NFA6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCAuLi8uLi8uLi9hY21lL3V0aWxzL0JlbmNoLmggLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvQ2xvY2tTdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0NvcmUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbWl0cy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGlvLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkYXJnLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkZGVmLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9CZW5jaF9QQ2xvY2suaCAuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbmthZ2UuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCANCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9CZW5jaC5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL0Nsb2NrU3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Db3JlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9saW1pdHMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpby5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaDoNCisuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaDoNCisuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaDoNCisuLi8uLi8uLi9hY21lL3V0aWxzL3BhY2thZ2UvQmVuY2hfUENsb2NrLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9saW5rYWdlLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW50Lmg6DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAucm92LnhzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAucm92LnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkNGMzNGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5yb3YueHMKQEAgLTAsMCArMSw1MDg2IEBACitfX28gPSBudWxsCitfX29iaiA9IFsKKyAgICB0aGlzLCAgLy8gIzAgCisgICAge30sICAgIC8vICMxIAorICAgIHt9LCAgICAvLyAjMiB4ZGMucnVudGltZS5Bc3NlcnQKKyAgICBbXSwgICAgLy8gIzMgeGRjLnJ1bnRpbWUuQXNzZXJ0LyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzQgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMwCisgICAge30sICAgIC8vICM1IHhkYy5ydW50aW1lLkFzc2VydC9jb21tb24kCisgICAgW10sICAgIC8vICM2IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzggeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjOSB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTAgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxMSB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTIgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxNCB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTUgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTYgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE3IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTggeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTkgeGRjLnJ1bnRpbWUuQXNzZXJ0L3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjAgeGRjLnJ1bnRpbWUuQ29yZQorICAgIFtdLCAgICAvLyAjMjEgeGRjLnJ1bnRpbWUuQ29yZS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMiB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMwCisgICAge30sICAgIC8vICMyMyB4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI0IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI1IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzI2IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzI4IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI5IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMzAgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzEgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzMyIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzMgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzM0IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzUgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMzYgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzM3IHhkYy5ydW50aW1lLkNvcmUvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMzOCB4ZGMucnVudGltZS5EZWZhdWx0cworICAgIFtdLCAgICAvLyAjMzkgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNDAgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNDEgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzQyIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM0MyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzQ0IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzQ1IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM0NiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICM0NyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNDggeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICM0OSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICM1MCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzUxIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzUyIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICM1MyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzU0IHhkYy5ydW50aW1lLkRlZmF1bHRzL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNTUgeGRjLnJ1bnRpbWUuRGlhZ3MKKyAgICBbXSwgICAgLy8gIzU2IHhkYy5ydW50aW1lLkRpYWdzLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzU3IHhkYy5ydW50aW1lLkRpYWdzL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzU4IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM1OSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNjAgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM2MSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM2MiB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjMgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjNjQgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzY1IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjNjYgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjcgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM2OCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM2OSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjNzAgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM3MSB4ZGMucnVudGltZS5EaWFncy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzcyIHhkYy5ydW50aW1lLkVycm9yCisgICAgW10sICAgIC8vICM3MyB4ZGMucnVudGltZS5FcnJvci8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM3NCB4ZGMucnVudGltZS5FcnJvci5EZXNjIzEKKyAgICB7fSwgICAgLy8gIzc1IHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMgorICAgIHt9LCAgICAvLyAjNzYgeGRjLnJ1bnRpbWUuRXJyb3IvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNzcgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzc4IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM3OSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzgwIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzgxIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM4MiB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICM4MyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODQgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICM4NSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICM4NiB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzg3IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzg4IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICM4OSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzkwIHhkYy5ydW50aW1lLkVycm9yL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjOTEgeGRjLnJ1bnRpbWUuR2F0ZQorICAgIFtdLCAgICAvLyAjOTIgeGRjLnJ1bnRpbWUuR2F0ZS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM5MyB4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzk0IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzk1IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzk2IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM5NyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzk4IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzk5IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTAwIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEwMSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTAyIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTAzIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxMDQgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxMDUgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTA2IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxMDcgeGRjLnJ1bnRpbWUuR2F0ZS92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzEwOCB4ZGMucnVudGltZS5HYXRlTnVsbAorICAgIFtdLCAgICAvLyAjMTA5IHhkYy5ydW50aW1lLkdhdGVOdWxsLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzExMCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb21tb24kCisgICAgW10sICAgIC8vICMxMTEgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzExMiB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTEzIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTE0IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzExNSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTE2IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzExNyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTE4IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTE5IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEyMCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzEyMSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxMjIgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzEyMyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzEyNCB4ZGMucnVudGltZS5HYXRlTnVsbC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzEyNSB4ZGMucnVudGltZS5Mb2cKKyAgICBbXSwgICAgLy8gIzEyNiB4ZGMucnVudGltZS5Mb2cvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTI3IHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMAorICAgIHt9LCAgICAvLyAjMTI4IHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMQorICAgIHt9LCAgICAvLyAjMTI5IHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMworICAgIHt9LCAgICAvLyAjMTMwIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMgorICAgIHt9LCAgICAvLyAjMTMxIHhkYy5ydW50aW1lLkxvZy9jb21tb24kCisgICAgW10sICAgIC8vICMxMzIgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxMzMgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxMzQgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTM1IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxMzYgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxMzcgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEzOCB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzOSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxNDAgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE0MSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxNDIgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE0MyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE0NCB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxNDUgeGRjLnJ1bnRpbWUuTG9nL2lkVG9JbmZvCisgICAgW10sICAgIC8vICMxNDYgeGRjLnJ1bnRpbWUuTG9nL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTQ3IHhkYy5ydW50aW1lLk1haW4KKyAgICBbXSwgICAgLy8gIzE0OCB4ZGMucnVudGltZS5NYWluLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE0OSB4ZGMucnVudGltZS5NYWluL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE1MCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxNTEgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTUyIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxNTMgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxNTQgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTU1IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTU2IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1NyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTU4IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTU5IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxNjAgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNjEgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTYyIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxNjMgeGRjLnJ1bnRpbWUuTWFpbi92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE2NCB4ZGMucnVudGltZS5NZW1vcnkKKyAgICBbXSwgICAgLy8gIzE2NSB4ZGMucnVudGltZS5NZW1vcnkvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTY2IHhkYy5ydW50aW1lLkhlYXBTdGQKKyAgICBbXSwgICAgLy8gIzE2NyB4ZGMucnVudGltZS5IZWFwU3RkLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE2OCB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAKKyAgICB7fSwgICAgLy8gIzE2OSB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAvaW5zdGFuY2UKKyAgICB7fSwgICAgLy8gIzE3MCB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM0CisgICAge30sICAgIC8vICMxNzEgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMworICAgIHt9LCAgICAvLyAjMTcyIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIKKyAgICB7fSwgICAgLy8gIzE3MyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzQKKyAgICB7fSwgICAgLy8gIzE3NCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE3NSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxNzYgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTc3IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxNzggeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxNzkgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTgwIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTgxIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4MiB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTgzIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTg0IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxODUgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxODYgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTg3IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxODggeGRjLnJ1bnRpbWUuSGVhcFN0ZC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE4OSB4ZGMucnVudGltZS5NZW1vcnkvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTkwIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTkxIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTkyIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5MyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTk0IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk1IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxOTYgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxOTcgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTk4IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxOTkgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjAwIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyMDEgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyMDIgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMjAzIHhkYy5ydW50aW1lLk1lbW9yeS92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwNCB4ZGMucnVudGltZS5TdGFydHVwCisgICAgW10sICAgIC8vICMyMDUgeGRjLnJ1bnRpbWUuU3RhcnR1cC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMDYgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kCisgICAgW10sICAgIC8vICMyMDcgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjA4IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzIwOSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjEwIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjExIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxMiB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzIxMyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMyMTQgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzIxNSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxNiB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjE3IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjE4IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzIxOSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMjIwIHhkYy5ydW50aW1lLlN0YXJ0dXAvZmlyc3RGeG5zCisgICAgW10sICAgIC8vICMyMjEgeGRjLnJ1bnRpbWUuU3RhcnR1cC9sYXN0RnhucworICAgIFtdLCAgICAvLyAjMjIyIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blJ0cworICAgIFtdLCAgICAvLyAjMjIzIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blRhYgorICAgIFtdLCAgICAvLyAjMjI0IHhkYy5ydW50aW1lLlN0YXJ0dXAvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyMjUgeGRjLnJ1bnRpbWUuU3lzdGVtCisgICAgW10sICAgIC8vICMyMjYgeGRjLnJ1bnRpbWUuU3lzdGVtLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzIyNyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1CisgICAge30sICAgIC8vICMyMjggeGRjLnJ1bnRpbWUuU3lzTWluCisgICAgW10sICAgIC8vICMyMjkgeGRjLnJ1bnRpbWUuU3lzTWluLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzIzMCB4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjMxIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjMyIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjMzIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIzNCB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjM1IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjM2IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyMzcgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMyMzggeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjM5IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyNDAgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjQxIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyNDIgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyNDMgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQ0IHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMQorICAgIHt9LCAgICAvLyAjMjQ1IHhkYy5yb3YuVmlld0luZm8KKyAgICBbXSwgICAgLy8gIzI0NiB4ZGMucm92LlZpZXdJbmZvLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzI0NyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAKKyAgICBbXSwgICAgLy8gIzI0OCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcAorICAgIHt9LCAgICAvLyAjMjQ5IHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMC92aWV3TWFwLydCYXNpYycKKyAgICB7fSwgICAgLy8gIzI1MCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nUmVjb3JkcycKKyAgICBbXSwgICAgLy8gIzI1MSB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcAorICAgIHt9LCAgICAvLyAjMjUyIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydNb2R1bGUnCisgICAge30sICAgIC8vICMyNTMgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ091dHB1dEJ1ZmZlcicKKyAgICBbXSwgICAgLy8gIzI1NCB4ZGMucnVudGltZS5TeXNNaW4vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyNTUgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI1NiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI1NyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzI1OCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNTkgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzI2MCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2MSB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjYyIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjYzIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzI2NCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjY1IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI2NiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjY3IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjY4IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzI2OSB4ZGMucnVudGltZS5TeXN0ZW0vZXhpdEZ4bnMKKyAgICBbXSwgICAgLy8gIzI3MCB4ZGMucnVudGltZS5TeXN0ZW0vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyNzEgeGRjLnJ1bnRpbWUuVGV4dAorICAgIFtdLCAgICAvLyAjMjcyIHhkYy5ydW50aW1lLlRleHQvJGluc3RhbmNlcworICAgIFtdLCAgICAvLyAjMjczIHhkYy5ydW50aW1lLlRleHQvY2hhclRhYgorICAgIHt9LCAgICAvLyAjMjc0IHhkYy5ydW50aW1lLlRleHQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjc1IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI3NiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNzcgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI3OCB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzI3OSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyODAgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyODEgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjgyIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyODMgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyODQgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI4NSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4NiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyODcgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzI4OCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIKKyAgICB7fSwgICAgLy8gIzI4OSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMAorICAgIHt9LCAgICAvLyAjMjkwIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xCisgICAge30sICAgIC8vICMyOTEgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIKKyAgICB7fSwgICAgLy8gIzI5MiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMworICAgIHt9LCAgICAvLyAjMjkzIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80CisgICAge30sICAgIC8vICMyOTQgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUKKyAgICB7fSwgICAgLy8gIzI5NSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNgorICAgIHt9LCAgICAvLyAjMjk2IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83CisgICAge30sICAgIC8vICMyOTcgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgKKyAgICB7fSwgICAgLy8gIzI5OCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOQorICAgIHt9LCAgICAvLyAjMjk5IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMAorICAgIHt9LCAgICAvLyAjMzAwIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMQorICAgIHt9LCAgICAvLyAjMzAxIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMgorICAgIHt9LCAgICAvLyAjMzAyIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMworICAgIHt9LCAgICAvLyAjMzAzIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNAorICAgIHt9LCAgICAvLyAjMzA0IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNQorICAgIHt9LCAgICAvLyAjMzA1IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNgorICAgIHt9LCAgICAvLyAjMzA2IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNworICAgIHt9LCAgICAvLyAjMzA3IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xOAorICAgIHt9LCAgICAvLyAjMzA4IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xOQorICAgIHt9LCAgICAvLyAjMzA5IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yMAorICAgIFtdLCAgICAvLyAjMzEwIHhkYy5ydW50aW1lLlRleHQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMzMTEgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQKKyAgICBbXSwgICAgLy8gIzMxMiBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMzMTMgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMzE0IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMzMTUgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzMxNiBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxNyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMzMTggYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxOSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMzMjAgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMyMSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzMyMiBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMzMjMgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzMjQgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzI1IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMzMjYgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzMjcgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMzMjggYWNtZS51dGlscy5CZW5jaAorICAgIFtdLCAgICAvLyAjMzI5IGFjbWUudXRpbHMuQmVuY2gvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMzMwIGFjbWUudXRpbHMuQmVuY2gvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMzMxIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzMzMiBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMzMzMgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMzNCBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzMzNSBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMzMzYgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMzMzcgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzM4IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMzMzkgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMzNDAgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzM0MSBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzM0MiBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMzNDMgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzM0NCBhY21lLnV0aWxzLkJlbmNoL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzQ1IAorICAgIHt9LCAgICAvLyAjMzQ2IAorICAgIHt9LCAgICAvLyAjMzQ3IAorICAgIHt9LCAgICAvLyAjMzQ4IAorICAgIHt9LCAgICAvLyAjMzQ5IAorICAgIHt9LCAgICAvLyAjMzUwIAorICAgIHt9LCAgICAvLyAjMzUxIHRpLnRhcmdldHMuQzY0UAorICAgIHt9LCAgICAvLyAjMzUyIHRpLnRhcmdldHMuQzY0UC9hcgorICAgIHt9LCAgICAvLyAjMzUzIHRpLnRhcmdldHMuQzY0UC9hck9wdHMKKyAgICB7fSwgICAgLy8gIzM1NCB0aS50YXJnZXRzLkM2NFAvYXNtCisgICAge30sICAgIC8vICMzNTUgdGkudGFyZ2V0cy5DNjRQL2FzbU9wdHMKKyAgICB7fSwgICAgLy8gIzM1NiB0aS50YXJnZXRzLkM2MgorICAgIHt9LCAgICAvLyAjMzU3IHRpLnRhcmdldHMuQzYyL2NvbXBhdGlibGVTdWZmaXhlcworICAgIHt9LCAgICAvLyAjMzU4IHRpLnRhcmdldHMuQzYyL2RlYnVnR2VuCisgICAge30sICAgIC8vICMzNTkgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucworICAgIHt9LCAgICAvLyAjMzYwIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5DJworICAgIHt9LCAgICAvLyAjMzYxIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5hc20nCisgICAge30sICAgIC8vICMzNjIgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmMnCisgICAge30sICAgIC8vICMzNjMgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmNjJworICAgIHt9LCAgICAvLyAjMzY0IHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jcHAnCisgICAge30sICAgIC8vICMzNjUgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmN4eCcKKyAgICB7fSwgICAgLy8gIzM2NiB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuczYyJworICAgIHt9LCAgICAvLyAjMzY3IHRpLnRhcmdldHMuQzYyL21vZGVsCisgICAge30sICAgIC8vICMzNjggdGkudGFyZ2V0cy5DNjIvcGxhdGZvcm1zCisgICAge30sICAgIC8vICMzNjkgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMKKyAgICB7fSwgICAgLy8gIzM3MCB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnCisgICAge30sICAgIC8vICMzNzEgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzcyIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzczIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycKKyAgICB7fSwgICAgLy8gIzM3NCB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzNzUgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNzYgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnCisgICAge30sICAgIC8vICMzNzcgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzNzggdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM3OSB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScKKyAgICB7fSwgICAgLy8gIzM4MCB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM4MSB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzgyIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJworICAgIHt9LCAgICAvLyAjMzgzIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzg0IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzODUgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnCisgICAge30sICAgIC8vICMzODYgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzODcgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM4OCB0aS50YXJnZXRzLkM2Mi9zZWN0TWFwCisgICAge30sICAgIC8vICMzODkgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMKKyAgICB7fSwgICAgLy8gIzM5MCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0NoYXIKKyAgICB7fSwgICAgLy8gIzM5MSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0RvdWJsZQorICAgIHt9LCAgICAvLyAjMzkyIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRmxvYXQKKyAgICB7fSwgICAgLy8gIzM5MyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0Z4bgorICAgIHt9LCAgICAvLyAjMzk0IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSUFyZworICAgIHt9LCAgICAvLyAjMzk1IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50CisgICAge30sICAgIC8vICMzOTYgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQxNgorICAgIHt9LCAgICAvLyAjMzk3IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MzIKKyAgICB7fSwgICAgLy8gIzM5OCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDQwCisgICAge30sICAgIC8vICMzOTkgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ2NAorICAgIHt9LCAgICAvLyAjNDAwIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50OAorICAgIHt9LCAgICAvLyAjNDAxIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfTERvdWJsZQorICAgIHt9LCAgICAvLyAjNDAyIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfTExvbmcKKyAgICB7fSwgICAgLy8gIzQwMyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xvbmcKKyAgICB7fSwgICAgLy8gIzQwNCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1B0cgorICAgIHt9LCAgICAvLyAjNDA1IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfU2hvcnQKKyAgICB7fSwgICAgLy8gIzQwNiB0aS50YXJnZXRzLkM2Mi92ZXJzaW9uTWFwCisgICAge30sICAgIC8vICM0MDcgdGkudGFyZ2V0cy5DNjRQL2NjCisgICAge30sICAgIC8vICM0MDggdGkudGFyZ2V0cy5DNjRQL2NjQ29uZmlnT3B0cworICAgIHt9LCAgICAvLyAjNDA5IHRpLnRhcmdldHMuQzY0UC9jY09wdHMKKyAgICB7fSwgICAgLy8gIzQxMCB0aS50YXJnZXRzLkM2NFAvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAge30sICAgIC8vICM0MTEgdGkudGFyZ2V0cy5DNjRQL2RlYnVnR2VuCisgICAge30sICAgIC8vICM0MTIgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMKKyAgICB7fSwgICAgLy8gIzQxMyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLkMnCisgICAge30sICAgIC8vICM0MTQgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5hc20nCisgICAge30sICAgIC8vICM0MTUgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jJworICAgIHt9LCAgICAvLyAjNDE2IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY2MnCisgICAge30sICAgIC8vICM0MTcgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jcHAnCisgICAge30sICAgIC8vICM0MTggdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jeHgnCisgICAge30sICAgIC8vICM0MTkgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5zNjInCisgICAge30sICAgIC8vICM0MjAgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5zNjQnCisgICAge30sICAgIC8vICM0MjEgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5zNjRQJworICAgIHt9LCAgICAvLyAjNDIyIHRpLnRhcmdldHMuQzY0UC9sbmsKKyAgICB7fSwgICAgLy8gIzQyMyB0aS50YXJnZXRzLkM2NFAvbG5rT3B0cworICAgIHt9LCAgICAvLyAjNDI0IHRpLnRhcmdldHMuQzY0UC9tb2RlbAorICAgIHt9LCAgICAvLyAjNDI1IHRpLnRhcmdldHMuQzY0UC9wbGF0Zm9ybXMKKyAgICB7fSwgICAgLy8gIzQyNiB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMKKyAgICB7fSwgICAgLy8gIzQyNyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIHt9LCAgICAvLyAjNDI4IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICM0MjkgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycworICAgIHt9LCAgICAvLyAjNDMwIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnCisgICAge30sICAgIC8vICM0MzEgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzQzMiB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzCisgICAge30sICAgIC8vICM0MzMgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJworICAgIHt9LCAgICAvLyAjNDM0IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzQzNSB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzQzNiB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAge30sICAgIC8vICM0MzcgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjNDM4IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvZmlsdGVycworICAgIHt9LCAgICAvLyAjNDM5IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScKKyAgICB7fSwgICAgLy8gIzQ0MCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICM0NDEgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzCisgICAge30sICAgIC8vICM0NDIgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJworICAgIHt9LCAgICAvLyAjNDQzIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzQ0NCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzQ0NSB0aS50YXJnZXRzLkM2NFAvc2VjdE1hcAorICAgIHt9LCAgICAvLyAjNDQ2IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcworICAgIHt9LCAgICAvLyAjNDQ3IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0NoYXIKKyAgICB7fSwgICAgLy8gIzQ0OCB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICB7fSwgICAgLy8gIzQ0OSB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GbG9hdAorICAgIHt9LCAgICAvLyAjNDUwIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Z4bgorICAgIHt9LCAgICAvLyAjNDUxIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0lBcmcKKyAgICB7fSwgICAgLy8gIzQ1MiB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQKKyAgICB7fSwgICAgLy8gIzQ1MyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQxNgorICAgIHt9LCAgICAvLyAjNDU0IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDMyCisgICAge30sICAgIC8vICM0NTUgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NDAKKyAgICB7fSwgICAgLy8gIzQ1NiB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ2NAorICAgIHt9LCAgICAvLyAjNDU3IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDgKKyAgICB7fSwgICAgLy8gIzQ1OCB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MRG91YmxlCisgICAge30sICAgIC8vICM0NTkgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTExvbmcKKyAgICB7fSwgICAgLy8gIzQ2MCB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Mb25nCisgICAge30sICAgIC8vICM0NjEgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfUHRyCisgICAge30sICAgIC8vICM0NjIgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfU2hvcnQKKyAgICB7fSwgICAgLy8gIzQ2MyB0aS50YXJnZXRzLkM2NFAvdmVycworICAgIHt9LCAgICAvLyAjNDY0IHRpLnRhcmdldHMuQzY0UC92ZXJzaW9uTWFwCisgICAge30sICAgIC8vICM0NjUgCitdCisKK19fbyA9IF9fb2JqWzBdICAKKyAgICBfX29bJyRtb2R1bGVzJ10gPSBfX29ialsxLjBdCisgICAgX19vWydidWlsZCddID0gX19vYmpbMzQ1LjBdCisKK19fbyA9IF9fb2JqWzFdICAKKyAgICBfX29bJyMzMjc3MCddID0gX19vYmpbMi4wXQorICAgIF9fb1snIzMyNzcxJ10gPSBfX29ialsyMC4wXQorICAgIF9fb1snIzMyNzcyJ10gPSBfX29ialszOC4wXQorICAgIF9fb1snIzMyNzczJ10gPSBfX29ials1NS4wXQorICAgIF9fb1snIzMyNzc0J10gPSBfX29ials3Mi4wXQorICAgIF9fb1snIzMyNzc1J10gPSBfX29ials5MS4wXQorICAgIF9fb1snIzMyNzc2J10gPSBfX29ialsxMDguMF0KKyAgICBfX29bJyMzMjc3NyddID0gX19vYmpbMTI1LjBdCisgICAgX19vWycjMzI3NzgnXSA9IF9fb2JqWzE0Ny4wXQorICAgIF9fb1snIzMyNzc5J10gPSBfX29ialsxNjQuMF0KKyAgICBfX29bJyMzMjc4MCddID0gX19vYmpbMTY2LjBdCisgICAgX19vWycjMzI3ODEnXSA9IF9fb2JqWzIwNC4wXQorICAgIF9fb1snIzMyNzgyJ10gPSBfX29ialsyMjUuMF0KKyAgICBfX29bJyMzMjc4MyddID0gX19vYmpbMjI4LjBdCisgICAgX19vWycjMzI3ODQnXSA9IF9fb2JqWzI3MS4wXQorICAgIF9fb1snIzMyNzg3J10gPSBfX29ialszMTEuMF0KKyAgICBfX29bJyMzMjc4OCddID0gX19vYmpbMzI4LjBdCisgICAgX19vWydhY21lLnV0aWxzLkJlbmNoJ10gPSBfX29ialszMjguMF0KKyAgICBfX29bJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJ10gPSBfX29ialszMTEuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkFzc2VydCddID0gX19vYmpbMi4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuQ29yZSddID0gX19vYmpbMjAuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkRlZmF1bHRzJ10gPSBfX29ialszOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuRGlhZ3MnXSA9IF9fb2JqWzU1LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5FcnJvciddID0gX19vYmpbNzIuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkdhdGUnXSA9IF9fb2JqWzkxLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5HYXRlTnVsbCddID0gX19vYmpbMTA4LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5IZWFwU3RkJ10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkxvZyddID0gX19vYmpbMTI1LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5NYWluJ10gPSBfX29ialsxNDcuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLk1lbW9yeSddID0gX19vYmpbMTY0LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TdGFydHVwJ10gPSBfX29ialsyMDQuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlN5c01pbiddID0gX19vYmpbMjI4LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TeXN0ZW0nXSA9IF9fb2JqWzIyNS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuVGV4dCddID0gX19vYmpbMjcxLjBdCisKK19fbyA9IF9fb2JqWzJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzMuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCcsICdVVEYtOCcpKQorICAgIF9fb1snRV9hc3NlcnRGYWlsZWQnXSA9IF9fb2JqWzQuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzcwCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzUuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials2LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxOS4wXQorCitfX28gPSBfX29ialszXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2Fzc2VydGlvbitmYWlsdXJlJTI1cyUyNXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTZdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTddICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjBdICAvLyB4ZGMucnVudGltZS5Db3JlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZScsICdVVEYtOCcpKQorICAgIF9fb1snQV9pbml0aWFsaXplZFBhcmFtcyddID0gX19vYmpbMjIuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyMy4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzI0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszNy4wXQorCitfX28gPSBfX29ialsyMV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBX2luaXRpYWxpemVkUGFyYW1zJTNBK3VuaW5pdGlhbGl6ZWQrUGFyYW1zK3N0cnVjdCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyM10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzI3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialszMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzMzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialszNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjVdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNl0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjldICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzBdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzFdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzJdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszM10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNl0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzM5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials0MC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzQxLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ials1NC4wXQorCitfX28gPSBfX29ialszOV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNDFdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbNDQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzQ2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzQ4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbNTAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzUyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDJdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ1XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0Nl0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ3XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDhdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials0OS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0OV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTBdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials1MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1MV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTJdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTNdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU0XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTVdICAvLyB4ZGMucnVudGltZS5EaWFncworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbNTYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJywgJ1VURi04JykpCisgICAgX19vWydBTEwnXSA9IDY1NTM1CisgICAgX19vWydBU1NFUlQnXSA9IDE2CisgICAgX19vWydFTlRSWSddID0gMQorICAgIF9fb1snRVhJVCddID0gMgorICAgIF9fb1snSU5URVJOQUwnXSA9IDgKKyAgICBfX29bJ0xJRkVDWUNMRSddID0gNAorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydVU0VSMSddID0gMjU2CisgICAgX19vWydVU0VSMiddID0gNTEyCisgICAgX19vWydVU0VSMyddID0gMTAyNAorICAgIF9fb1snVVNFUjQnXSA9IDIwNDgKKyAgICBfX29bJ1VTRVI1J10gPSA0MDk2CisgICAgX19vWydVU0VSNiddID0gODE5MgorICAgIF9fb1snVVNFUjcnXSA9IDE2Mzg0CisgICAgX19vWydVU0VSOCddID0gMzI3NjgKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzU3LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNTguMF0KKyAgICBfX29bJ2RpY3RCYXNlJ10gPSBudWxsCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1snc2V0TWFza0VuYWJsZWQnXSA9IGZhbHNlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzcxLjBdCisKK19fbyA9IF9fb2JqWzU2XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTddICAvLyB4ZGMucnVudGltZS5EaWFncy9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials1OF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbNTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials2MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbNjMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbNjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ials2Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbNjkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1OV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjBdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYxXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjJdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYzXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjRdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2NV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzY2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY2XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2N10gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzY4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY4XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2OV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials3MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3MF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzFdICAvLyB4ZGMucnVudGltZS5EaWFncy92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3Ml0gIC8vIHhkYy5ydW50aW1lLkVycm9yCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ials3My4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3InLCAnVVRGLTgnKSkKKyAgICBfX29bJ0VfZ2VuZXJpYyddID0gX19vYmpbNzQuMF0KKyAgICBfX29bJ0VfbWVtb3J5J10gPSBfX29ials3NS4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydOVU1BUkdTJ10gPSAyCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials3Ni4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzc3LjBdCisgICAgX19vWydtYXhEZXB0aCddID0gMTYKKyAgICBfX29bJ3BvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5VTldJTkQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JhaXNlSG9vayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRScsICdVVEYtOCcpKQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbOTAuMF0KKworX19vID0gX19vYmpbNzNdICAvLyB4ZGMucnVudGltZS5FcnJvci8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3NF0gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnZW5lcmljK2Vycm9yJTNBKyUyNXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzVdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjMyJywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnb3V0K29mK21lbW9yeSUzQStoZWFwJTNEMHglMjV4JTJDK3NpemUlM0QlMjV1JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc2XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNzddICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzg4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzhdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc5XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4MF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzgxXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4Ml0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzgzXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODRdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4NV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODZdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4N10gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODhdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODldICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzkwXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3Ivdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTFdICAvLyB4ZGMucnVudGltZS5HYXRlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ials5Mi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc1CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzkzLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbOTQuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzEwNy4wXQorCitfX28gPSBfX29ials5Ml0gIC8vIHhkYy5ydW50aW1lLkdhdGUvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5M10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials5NF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials5NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzk3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials5OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxMDMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzEwNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTVdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzk2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5Nl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk3XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbOTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk4XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTldICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwMF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDFdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTAyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwMl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwM10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA1XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA2XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA3XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwOF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxMDkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc2CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1FfQkxPQ0tJTkcnXSA9IDEKKyAgICBfX29bJ1FfUFJFRU1QVElORyddID0gMgorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTEwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTExLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxMjQuMF0KKworX19vID0gX19vYmpbMTA5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTEwXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTExXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxMTIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxMTQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzExNi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMTguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxMjAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzEyMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExMl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExM10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE2XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExN10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExOF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzExOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTldICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyMF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEyMS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjFdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyMl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMjMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIzXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjRdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjVdICAvLyB4ZGMucnVudGltZS5Mb2cKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzEyNi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJywgJ1VURi04JykpCisgICAgX19vWydMX2NvbnN0cnVjdCddID0gX19vYmpbMTI3LjBdCisgICAgX19vWydMX2NyZWF0ZSddID0gX19vYmpbMTI4LjBdCisgICAgX19vWydMX2RlbGV0ZSddID0gX19vYmpbMTI5LjBdCisgICAgX19vWydMX2Rlc3RydWN0J10gPSBfX29ialsxMzAuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc3CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ05VTUFSR1MnXSA9IDgKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1BSSU5URklEJ10gPSAwCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxMzEuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxMzIuMF0KKyAgICBfX29bJ2lkVG9JbmZvJ10gPSBfX29ialsxNDUuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzE0Ni4wXQorCitfX28gPSBfX29ialsxMjZdICAvLyB4ZGMucnVudGltZS5Mb2cvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyN10gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclM0MtLStjb25zdHJ1Y3QlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI4XSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMxCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMScsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUzQy0tK2NyZWF0ZSUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjldICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMzJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMwXSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMxXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxMzJdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxMzMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxMzUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzEzNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMzkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxNDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzE0My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzNdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMzQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzNF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzVdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTM2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzZdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM3XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEzOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM4XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzldICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE0MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDBdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQxXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQyXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0M10gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE0NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDRdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ1XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2lkVG9JbmZvCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJyM0NjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfY29uc3RydWN0JTNBJTNBJTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM0NjgnKQorICAgIF9fby5wdXNoKF9fb1snIzQ5MiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUlM0ElM0ElM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzQ5MicpCisgICAgX19vLnB1c2goX19vWycjNTEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0JTNBJTNBLS0lM0UrZGVzdHJ1Y3QlM0ErJTI4JTI1cCUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNTEzJykKKyAgICBfX28ucHVzaChfX29bJyM1MzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfZGVsZXRlJTNBJTNBLS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzUzMicpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZpZFRvSW5mbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDZdICAvLyB4ZGMucnVudGltZS5Mb2cvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0N10gIC8vIHhkYy5ydW50aW1lLk1haW4KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzE0OC4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbicsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX0dhdGVQcm94eSddID0gX19vYmpbMTA4LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzgKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTQ5LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTUwLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxNjMuMF0KKworX19vID0gX19vYmpbMTQ4XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0OV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxNTBdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTUxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTUzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxNTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTU3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1MV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTUyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTJdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTNdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1NF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1NV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU2XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1N10gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU4XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU5XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjBdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjFdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjJdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjNdICAvLyB4ZGMucnVudGltZS5NYWluL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTY0XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNjUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeScsICdVVEYtOCcpKQorICAgIF9fb1snSGVhcFByb3h5J10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc5CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1FfQkxPQ0tJTkcnXSA9IDEKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzE4OS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzE5MC4wXQorICAgIF9fb1snZGVmYXVsdEhlYXBJbnN0YW5jZSddID0gX19vYmpbMTY4LjBdCisgICAgX19vWydkZWZhdWx0SGVhcFNpemUnXSA9IDQwOTYKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzIwMy4wXQorCitfX28gPSBfX29ialsxNjVdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2Nl0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzE2Ny4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCcsICdVVEYtOCcpKQorICAgIF9fb1snQV9pbnZhbGlkQWxpZ25tZW50J10gPSBfX29ialsxNzAuMF0KKyAgICBfX29bJ0FfaW52YWxpZFRvdGFsRnJlZVNpemUnXSA9IF9fb2JqWzE3MS4wXQorICAgIF9fb1snQV96ZXJvU2l6ZSddID0gX19vYmpbMTcyLjBdCisgICAgX19vWydFX25vUlRTTWVtb3J5J10gPSBfX29ialsxNzMuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxNzQuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxNzUuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzE4OC4wXQorCitfX28gPSBfX29ialsxNjddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzE2OC4wXQorCitfX28gPSBfX29ialsxNjhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snJG1vZHVsZSddID0gX19vYmpbMTY2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snaW5zdGFuY2UnXSA9IF9fb2JqWzE2OS4wXQorICAgIF9fb1snc2l6ZSddID0gNDA5NgorCitfX28gPSBfX29ialsxNjldICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAvaW5zdGFuY2UKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UlMjMwJTJGaW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWUnXSA9IG51bGwKKworX19vID0gX19vYmpbMTcwXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjM0JywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0hlYXBTdGRfYWxsb2MrLStyZXF1ZXN0ZWQrYWxpZ25tZW50K2lzK2dyZWF0ZXIrdGhhbithbGxvd2VkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3MV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMycsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkK2luc3RhbmNlK3RvdGFsRnJlZVNpemUraXMrZ3JlYXRlcit0aGFuK3N0YXJ0aW5nK3NpemUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTcyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjMyJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0hlYXBTdGRfY3JlYXRlK2Nhbm5vdCtoYXZlK2EremVybytzaXplK3ZhbHVlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3M10gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdUaGUrUlRTK2hlYXAraXMrdXNlZCt1cC4rRXhhbWluZStQcm9ncmFtLmhlYXAuJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3NF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxNzVdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTc2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3Nl0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTc3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3OV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4MF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTgxXSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4Ml0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTgzXSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg0XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODVdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg5XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxOTBdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxOTEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxOTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzE5NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxOTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxOTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzIwMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTFdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5Ml0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTNdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTk0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTRdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk1XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk2XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTddICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOThdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk5XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAwXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwMV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIwMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDJdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAzXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0RPTkUnXSA9IC0xCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODEKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snTk9URE9ORSddID0gMAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjA2LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjA3LjBdCisgICAgX19vWydleGVjSW1wbCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpcnN0RnhucyddID0gX19vYmpbMjIwLjBdCisgICAgX19vWydsYXN0RnhucyddID0gX19vYmpbMjIxLjBdCisgICAgX19vWydtYXhQYXNzZXMnXSA9IDMyCisgICAgX19vWydyZXNldEZ4biddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3NmeG5SdHMnXSA9IF9fb2JqWzIyMi4wXQorICAgIF9fb1snc2Z4blRhYiddID0gX19vYmpbMjIzLjBdCisgICAgX19vWydzdGFydE1vZHNGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMjI0LjBdCisKK19fbyA9IF9fb2JqWzIwNV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDZdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjA3XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzIwOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzIxMC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjEyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzIxNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzIxNi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjE4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDhdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIwOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA5XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjEwXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjExLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTFdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTJdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxM10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxNV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxNl0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE3XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE4XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE5XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjIwXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9maXJzdEZ4bnMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZmaXJzdEZ4bnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjIxXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9sYXN0RnhucworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmxhc3RGeG5zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMl0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blJ0cworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRnNmeG5SdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IHRydWUKKyAgICBfX29bJzEnXSA9IHRydWUKKyAgICBfX29bJzInXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIyM10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRnNmeG5UYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyNF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjVdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzIyNi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJywgJ1VURi04JykpCisgICAgX19vWydBX2Nhbm5vdEZpdEludG9BcmcnXSA9IF9fb2JqWzIyNy4wXQorICAgIF9fb1snTW9kdWxlX0dhdGVQcm94eSddID0gX19vYmpbMTA4LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydTVEFUVVNfVU5LTk9XTiddID0gNTE5NjYKKyAgICBfX29bJ1N1cHBvcnRQcm94eSddID0gX19vYmpbMjI4LjBdCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyNTUuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNTYuMF0KKyAgICBfX29bJ2V4aXRGeG5zJ10gPSBfX29ialsyNjkuMF0KKyAgICBfX29bJ2V4dGVuZEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JJywgJ1VURi04JykpCisgICAgX19vWydleHRlbmRlZEZvcm1hdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI1JTI0TCcsICdVVEYtOCcpKQorICAgIF9fb1snbWF4QXRleGl0SGFuZGxlcnMnXSA9IDgKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzI3MC4wXQorCitfX28gPSBfX29ialsyMjZdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyN10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzNScsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBX2Nhbm5vdEZpdEludG9BcmclM0Erc2l6ZW9mJTI4RmxvYXQlMjkrJTNFK3NpemVvZiUyOEFyZyUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjhdICAvLyB4ZGMucnVudGltZS5TeXNNaW4KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzIyOS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydidWZTaXplJ10gPSAxMDI0CisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyMzAuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyMzEuMF0KKyAgICBfX29bJ2ZsdXNoQXRFeGl0J10gPSB0cnVlCisgICAgX19vWydvdXRwdXRGdW5jJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ291dHB1dEZ4biddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3JvdlZpZXdJbmZvJ10gPSBfX29ialsyNDQuMF0KKyAgICBfX29bJ3NlY3Rpb25OYW1lJ10gPSBudWxsCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzI1NC4wXQorCitfX28gPSBfX29ialsyMjldICAvLyB4ZGMucnVudGltZS5TeXNNaW4vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzMF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjMxXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjMyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjM0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyMzYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjM4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjQwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyNDIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjMyXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjMzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzNdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM0XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM1XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNl0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzN10gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM4XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM5XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0MF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjQxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0MV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDJdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQzXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0NF0gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0luc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyckbW9kdWxlJ10gPSBfX29ialsyNDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJywgJ1VURi04JykpCisgICAgX19vWydzaG93UmF3VGFiJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TWFwJ10gPSBfX29ialsyNTEuMF0KKworX19vID0gX19vYmpbMjQ1XSAgLy8geGRjLnJvdi5WaWV3SW5mbworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjQ2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0Nl0gIC8vIHhkYy5yb3YuVmlld0luZm8vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mbyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gX19vYmpbMjQ3LjBdCisgICAgX19vWycxJ10gPSBfX29ialsyNDQuMF0KKworX19vID0gX19vYmpbMjQ3XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRtb2R1bGUnXSA9IF9fb2JqWzI0NS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Nob3dSYXdUYWInXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdNYXAnXSA9IF9fb2JqWzI0OC4wXQorCitfX28gPSBfX29ialsyNDhdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWydCYXNpYyddID0gX19vYmpbMjQ5LjBdKTsgX19vLiRrZXlzLnB1c2goJ0Jhc2ljJykKKyAgICBfX28ucHVzaChfX29bJ1JlY29yZHMnXSA9IF9fb2JqWzI1MC4wXSk7IF9fby4ka2V5cy5wdXNoKCdSZWNvcmRzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJTJGdmlld01hcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDldICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nQmFzaWMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAlMkYlMjdCYXNpYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdCYXNpY1ZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JTlNUQU5DRScsICdVVEYtOCcpKQorICAgIF9fb1sndmlld0luaXRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndmlld0luaXRCYXNpYycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTBdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nUmVjb3JkcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJTJGdmlld01hcCUyRiUyN1JlY29yZHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnUmVjb3JkVmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLklOU1RBTkNFX0RBVEEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0UmVjb3JkcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTFdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWydNb2R1bGUnXSA9IF9fb2JqWzI1Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCdNb2R1bGUnKQorICAgIF9fby5wdXNoKF9fb1snT3V0cHV0QnVmZmVyJ10gPSBfX29ialsyNTMuMF0pOyBfX28uJGtleXMucHVzaCgnT3V0cHV0QnVmZmVyJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJTJGdmlld01hcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTJdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nTW9kdWxlJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzElMkZ2aWV3TWFwJTJGJTI3TW9kdWxlJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZVZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5NT0RVTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0TW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1M10gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydPdXRwdXRCdWZmZXInCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMSUyRnZpZXdNYXAlMkYlMjdPdXRwdXRCdWZmZXIlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQnVmZmVyRW50cnlWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uTU9EVUxFX0RBVEEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0T3V0cHV0QnVmZmVyJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1NF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNTZdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzI2MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyNjMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyNjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzI2Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTddICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1OF0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTldICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjYwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjBdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYxXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYyXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjNdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjRdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2N10gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjhdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY5XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2V4aXRGeG5zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZleGl0RnhucycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzBdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3MV0gIC8vIHhkYy5ydW50aW1lLlRleHQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzI3Mi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCcsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzg0CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NoYXJDbnQnXSA9IDY5NworICAgIF9fb1snY2hhclRhYiddID0gX19vYmpbMjczLjBdCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyNzQuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNzUuMF0KKyAgICBfX29bJ2lzTG9hZGVkJ10gPSB0cnVlCisgICAgX19vWyduYW1lRW1wdHknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCZW1wdHktaW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZVN0YXRpYyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclN0JzdGF0aWMtaW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZVVua25vd24nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCdW5rbm93bi1pbnN0YW5jZS1uYW1lJTdEJywgJ1VURi04JykpCisgICAgX19vWydub2RlQ250J10gPSAyMQorICAgIF9fb1snbm9kZVRhYiddID0gX19vYmpbMjg4LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszMTAuMF0KKyAgICBfX29bJ3Zpc2l0Um9wZUZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSScsICdVVEYtOCcpKQorICAgIF9fb1sndmlzaXRSb3BlRnhuMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0knLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjcyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3M10gIC8vIHhkYy5ydW50aW1lLlRleHQvY2hhclRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNoYXJUYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IDAKKyAgICBfX29bJzEnXSA9IDY1CisgICAgX19vWycyJ10gPSA5NQorICAgIF9fb1snMyddID0gMTA1CisgICAgX19vWyc0J10gPSAxMTAKKyAgICBfX29bJzUnXSA9IDEwNQorICAgIF9fb1snNiddID0gMTE2CisgICAgX19vWyc3J10gPSAxMDUKKyAgICBfX29bJzgnXSA9IDk3CisgICAgX19vWyc5J10gPSAxMDgKKyAgICBfX29bJzEwJ10gPSAxMDUKKyAgICBfX29bJzExJ10gPSAxMjIKKyAgICBfX29bJzEyJ10gPSAxMDEKKyAgICBfX29bJzEzJ10gPSAxMDAKKyAgICBfX29bJzE0J10gPSA4MAorICAgIF9fb1snMTUnXSA9IDk3CisgICAgX19vWycxNiddID0gMTE0CisgICAgX19vWycxNyddID0gOTcKKyAgICBfX29bJzE4J10gPSAxMDkKKyAgICBfX29bJzE5J10gPSAxMTUKKyAgICBfX29bJzIwJ10gPSA1OAorICAgIF9fb1snMjEnXSA9IDMyCisgICAgX19vWycyMiddID0gMTE3CisgICAgX19vWycyMyddID0gMTEwCisgICAgX19vWycyNCddID0gMTA1CisgICAgX19vWycyNSddID0gMTEwCisgICAgX19vWycyNiddID0gMTA1CisgICAgX19vWycyNyddID0gMTE2CisgICAgX19vWycyOCddID0gMTA1CisgICAgX19vWycyOSddID0gOTcKKyAgICBfX29bJzMwJ10gPSAxMDgKKyAgICBfX29bJzMxJ10gPSAxMDUKKyAgICBfX29bJzMyJ10gPSAxMjIKKyAgICBfX29bJzMzJ10gPSAxMDEKKyAgICBfX29bJzM0J10gPSAxMDAKKyAgICBfX29bJzM1J10gPSAzMgorICAgIF9fb1snMzYnXSA9IDgwCisgICAgX19vWyczNyddID0gOTcKKyAgICBfX29bJzM4J10gPSAxMTQKKyAgICBfX29bJzM5J10gPSA5NworICAgIF9fb1snNDAnXSA9IDEwOQorICAgIF9fb1snNDEnXSA9IDExNQorICAgIF9fb1snNDInXSA9IDMyCisgICAgX19vWyc0MyddID0gMTE1CisgICAgX19vWyc0NCddID0gMTE2CisgICAgX19vWyc0NSddID0gMTE0CisgICAgX19vWyc0NiddID0gMTE3CisgICAgX19vWyc0NyddID0gOTkKKyAgICBfX29bJzQ4J10gPSAxMTYKKyAgICBfX29bJzQ5J10gPSAwCisgICAgX19vWyc1MCddID0gNzIKKyAgICBfX29bJzUxJ10gPSAxMDEKKyAgICBfX29bJzUyJ10gPSA5NworICAgIF9fb1snNTMnXSA9IDExMgorICAgIF9fb1snNTQnXSA9IDc3CisgICAgX19vWyc1NSddID0gMTA1CisgICAgX19vWyc1NiddID0gMTEwCisgICAgX19vWyc1NyddID0gOTUKKyAgICBfX29bJzU4J10gPSA5OQorICAgIF9fb1snNTknXSA9IDExNAorICAgIF9fb1snNjAnXSA9IDEwMQorICAgIF9fb1snNjEnXSA9IDk3CisgICAgX19vWyc2MiddID0gMTE2CisgICAgX19vWyc2MyddID0gMTAxCisgICAgX19vWyc2NCddID0gMzIKKyAgICBfX29bJzY1J10gPSA5OQorICAgIF9fb1snNjYnXSA9IDk3CisgICAgX19vWyc2NyddID0gMTEwCisgICAgX19vWyc2OCddID0gMTEwCisgICAgX19vWyc2OSddID0gMTExCisgICAgX19vWyc3MCddID0gMTE2CisgICAgX19vWyc3MSddID0gMzIKKyAgICBfX29bJzcyJ10gPSAxMDQKKyAgICBfX29bJzczJ10gPSA5NworICAgIF9fb1snNzQnXSA9IDExOAorICAgIF9fb1snNzUnXSA9IDEwMQorICAgIF9fb1snNzYnXSA9IDMyCisgICAgX19vWyc3NyddID0gOTcKKyAgICBfX29bJzc4J10gPSAzMgorICAgIF9fb1snNzknXSA9IDEyMgorICAgIF9fb1snODAnXSA9IDEwMQorICAgIF9fb1snODEnXSA9IDExNAorICAgIF9fb1snODInXSA9IDExMQorICAgIF9fb1snODMnXSA9IDMyCisgICAgX19vWyc4NCddID0gMTE1CisgICAgX19vWyc4NSddID0gMTA1CisgICAgX19vWyc4NiddID0gMTIyCisgICAgX19vWyc4NyddID0gMTAxCisgICAgX19vWyc4OCddID0gMzIKKyAgICBfX29bJzg5J10gPSAxMTgKKyAgICBfX29bJzkwJ10gPSA5NworICAgIF9fb1snOTEnXSA9IDEwOAorICAgIF9fb1snOTInXSA9IDExNworICAgIF9fb1snOTMnXSA9IDEwMQorICAgIF9fb1snOTQnXSA9IDAKKyAgICBfX29bJzk1J10gPSA3MgorICAgIF9fb1snOTYnXSA9IDEwMQorICAgIF9fb1snOTcnXSA9IDk3CisgICAgX19vWyc5OCddID0gMTEyCisgICAgX19vWyc5OSddID0gODMKKyAgICBfX29bJzEwMCddID0gMTE2CisgICAgX19vWycxMDEnXSA9IDEwMAorICAgIF9fb1snMTAyJ10gPSA5NQorICAgIF9fb1snMTAzJ10gPSA5OQorICAgIF9fb1snMTA0J10gPSAxMTQKKyAgICBfX29bJzEwNSddID0gMTAxCisgICAgX19vWycxMDYnXSA9IDk3CisgICAgX19vWycxMDcnXSA9IDExNgorICAgIF9fb1snMTA4J10gPSAxMDEKKyAgICBfX29bJzEwOSddID0gMzIKKyAgICBfX29bJzExMCddID0gOTkKKyAgICBfX29bJzExMSddID0gOTcKKyAgICBfX29bJzExMiddID0gMTEwCisgICAgX19vWycxMTMnXSA9IDExMAorICAgIF9fb1snMTE0J10gPSAxMTEKKyAgICBfX29bJzExNSddID0gMTE2CisgICAgX19vWycxMTYnXSA9IDMyCisgICAgX19vWycxMTcnXSA9IDEwNAorICAgIF9fb1snMTE4J10gPSA5NworICAgIF9fb1snMTE5J10gPSAxMTgKKyAgICBfX29bJzEyMCddID0gMTAxCisgICAgX19vWycxMjEnXSA9IDMyCisgICAgX19vWycxMjInXSA9IDk3CisgICAgX19vWycxMjMnXSA9IDMyCisgICAgX19vWycxMjQnXSA9IDEyMgorICAgIF9fb1snMTI1J10gPSAxMDEKKyAgICBfX29bJzEyNiddID0gMTE0CisgICAgX19vWycxMjcnXSA9IDExMQorICAgIF9fb1snMTI4J10gPSAzMgorICAgIF9fb1snMTI5J10gPSAxMTUKKyAgICBfX29bJzEzMCddID0gMTA1CisgICAgX19vWycxMzEnXSA9IDEyMgorICAgIF9fb1snMTMyJ10gPSAxMDEKKyAgICBfX29bJzEzMyddID0gMzIKKyAgICBfX29bJzEzNCddID0gMTE4CisgICAgX19vWycxMzUnXSA9IDk3CisgICAgX19vWycxMzYnXSA9IDEwOAorICAgIF9fb1snMTM3J10gPSAxMTcKKyAgICBfX29bJzEzOCddID0gMTAxCisgICAgX19vWycxMzknXSA9IDAKKyAgICBfX29bJzE0MCddID0gNzIKKyAgICBfX29bJzE0MSddID0gMTAxCisgICAgX19vWycxNDInXSA9IDk3CisgICAgX19vWycxNDMnXSA9IDExMgorICAgIF9fb1snMTQ0J10gPSA4MworICAgIF9fb1snMTQ1J10gPSAxMTYKKyAgICBfX29bJzE0NiddID0gMTAwCisgICAgX19vWycxNDcnXSA9IDMyCisgICAgX19vWycxNDgnXSA9IDEwNQorICAgIF9fb1snMTQ5J10gPSAxMTAKKyAgICBfX29bJzE1MCddID0gMTE1CisgICAgX19vWycxNTEnXSA9IDExNgorICAgIF9fb1snMTUyJ10gPSA5NworICAgIF9fb1snMTUzJ10gPSAxMTAKKyAgICBfX29bJzE1NCddID0gOTkKKyAgICBfX29bJzE1NSddID0gMTAxCisgICAgX19vWycxNTYnXSA9IDMyCisgICAgX19vWycxNTcnXSA9IDExNgorICAgIF9fb1snMTU4J10gPSAxMTEKKyAgICBfX29bJzE1OSddID0gMTE2CisgICAgX19vWycxNjAnXSA9IDk3CisgICAgX19vWycxNjEnXSA9IDEwOAorICAgIF9fb1snMTYyJ10gPSA3MAorICAgIF9fb1snMTYzJ10gPSAxMTQKKyAgICBfX29bJzE2NCddID0gMTAxCisgICAgX19vWycxNjUnXSA9IDEwMQorICAgIF9fb1snMTY2J10gPSA4MworICAgIF9fb1snMTY3J10gPSAxMDUKKyAgICBfX29bJzE2OCddID0gMTIyCisgICAgX19vWycxNjknXSA9IDEwMQorICAgIF9fb1snMTcwJ10gPSAzMgorICAgIF9fb1snMTcxJ10gPSAxMDUKKyAgICBfX29bJzE3MiddID0gMTE1CisgICAgX19vWycxNzMnXSA9IDMyCisgICAgX19vWycxNzQnXSA9IDEwMworICAgIF9fb1snMTc1J10gPSAxMTQKKyAgICBfX29bJzE3NiddID0gMTAxCisgICAgX19vWycxNzcnXSA9IDk3CisgICAgX19vWycxNzgnXSA9IDExNgorICAgIF9fb1snMTc5J10gPSAxMDEKKyAgICBfX29bJzE4MCddID0gMTE0CisgICAgX19vWycxODEnXSA9IDMyCisgICAgX19vWycxODInXSA9IDExNgorICAgIF9fb1snMTgzJ10gPSAxMDQKKyAgICBfX29bJzE4NCddID0gOTcKKyAgICBfX29bJzE4NSddID0gMTEwCisgICAgX19vWycxODYnXSA9IDMyCisgICAgX19vWycxODcnXSA9IDExNQorICAgIF9fb1snMTg4J10gPSAxMTYKKyAgICBfX29bJzE4OSddID0gOTcKKyAgICBfX29bJzE5MCddID0gMTE0CisgICAgX19vWycxOTEnXSA9IDExNgorICAgIF9fb1snMTkyJ10gPSAxMDUKKyAgICBfX29bJzE5MyddID0gMTEwCisgICAgX19vWycxOTQnXSA9IDEwMworICAgIF9fb1snMTk1J10gPSAzMgorICAgIF9fb1snMTk2J10gPSAxMTUKKyAgICBfX29bJzE5NyddID0gMTA1CisgICAgX19vWycxOTgnXSA9IDEyMgorICAgIF9fb1snMTk5J10gPSAxMDEKKyAgICBfX29bJzIwMCddID0gMAorICAgIF9fb1snMjAxJ10gPSA3MgorICAgIF9fb1snMjAyJ10gPSAxMDEKKyAgICBfX29bJzIwMyddID0gOTcKKyAgICBfX29bJzIwNCddID0gMTEyCisgICAgX19vWycyMDUnXSA9IDgzCisgICAgX19vWycyMDYnXSA9IDExNgorICAgIF9fb1snMjA3J10gPSAxMDAKKyAgICBfX29bJzIwOCddID0gOTUKKyAgICBfX29bJzIwOSddID0gOTcKKyAgICBfX29bJzIxMCddID0gMTA4CisgICAgX19vWycyMTEnXSA9IDEwOAorICAgIF9fb1snMjEyJ10gPSAxMTEKKyAgICBfX29bJzIxMyddID0gOTkKKyAgICBfX29bJzIxNCddID0gMzIKKyAgICBfX29bJzIxNSddID0gNDUKKyAgICBfX29bJzIxNiddID0gMzIKKyAgICBfX29bJzIxNyddID0gMTE0CisgICAgX19vWycyMTgnXSA9IDEwMQorICAgIF9fb1snMjE5J10gPSAxMTMKKyAgICBfX29bJzIyMCddID0gMTE3CisgICAgX19vWycyMjEnXSA9IDEwMQorICAgIF9fb1snMjIyJ10gPSAxMTUKKyAgICBfX29bJzIyMyddID0gMTE2CisgICAgX19vWycyMjQnXSA9IDEwMQorICAgIF9fb1snMjI1J10gPSAxMDAKKyAgICBfX29bJzIyNiddID0gMzIKKyAgICBfX29bJzIyNyddID0gOTcKKyAgICBfX29bJzIyOCddID0gMTA4CisgICAgX19vWycyMjknXSA9IDEwNQorICAgIF9fb1snMjMwJ10gPSAxMDMKKyAgICBfX29bJzIzMSddID0gMTEwCisgICAgX19vWycyMzInXSA9IDEwOQorICAgIF9fb1snMjMzJ10gPSAxMDEKKyAgICBfX29bJzIzNCddID0gMTEwCisgICAgX19vWycyMzUnXSA9IDExNgorICAgIF9fb1snMjM2J10gPSAzMgorICAgIF9fb1snMjM3J10gPSAxMDUKKyAgICBfX29bJzIzOCddID0gMTE1CisgICAgX19vWycyMzknXSA9IDMyCisgICAgX19vWycyNDAnXSA9IDEwMworICAgIF9fb1snMjQxJ10gPSAxMTQKKyAgICBfX29bJzI0MiddID0gMTAxCisgICAgX19vWycyNDMnXSA9IDk3CisgICAgX19vWycyNDQnXSA9IDExNgorICAgIF9fb1snMjQ1J10gPSAxMDEKKyAgICBfX29bJzI0NiddID0gMTE0CisgICAgX19vWycyNDcnXSA9IDMyCisgICAgX19vWycyNDgnXSA9IDExNgorICAgIF9fb1snMjQ5J10gPSAxMDQKKyAgICBfX29bJzI1MCddID0gOTcKKyAgICBfX29bJzI1MSddID0gMTEwCisgICAgX19vWycyNTInXSA9IDMyCisgICAgX19vWycyNTMnXSA9IDk3CisgICAgX19vWycyNTQnXSA9IDEwOAorICAgIF9fb1snMjU1J10gPSAxMDgKKyAgICBfX29bJzI1NiddID0gMTExCisgICAgX19vWycyNTcnXSA9IDExOQorICAgIF9fb1snMjU4J10gPSAxMDEKKyAgICBfX29bJzI1OSddID0gMTAwCisgICAgX19vWycyNjAnXSA9IDAKKyAgICBfX29bJzI2MSddID0gNjUKKyAgICBfX29bJzI2MiddID0gOTUKKyAgICBfX29bJzI2MyddID0gOTkKKyAgICBfX29bJzI2NCddID0gOTcKKyAgICBfX29bJzI2NSddID0gMTEwCisgICAgX19vWycyNjYnXSA9IDExMAorICAgIF9fb1snMjY3J10gPSAxMTEKKyAgICBfX29bJzI2OCddID0gMTE2CisgICAgX19vWycyNjknXSA9IDcwCisgICAgX19vWycyNzAnXSA9IDEwNQorICAgIF9fb1snMjcxJ10gPSAxMTYKKyAgICBfX29bJzI3MiddID0gNzMKKyAgICBfX29bJzI3MyddID0gMTEwCisgICAgX19vWycyNzQnXSA9IDExNgorICAgIF9fb1snMjc1J10gPSAxMTEKKyAgICBfX29bJzI3NiddID0gNjUKKyAgICBfX29bJzI3NyddID0gMTE0CisgICAgX19vWycyNzgnXSA9IDEwMworICAgIF9fb1snMjc5J10gPSA1OAorICAgIF9fb1snMjgwJ10gPSAzMgorICAgIF9fb1snMjgxJ10gPSAxMTUKKyAgICBfX29bJzI4MiddID0gMTA1CisgICAgX19vWycyODMnXSA9IDEyMgorICAgIF9fb1snMjg0J10gPSAxMDEKKyAgICBfX29bJzI4NSddID0gMTExCisgICAgX19vWycyODYnXSA9IDEwMgorICAgIF9fb1snMjg3J10gPSA0MAorICAgIF9fb1snMjg4J10gPSA3MAorICAgIF9fb1snMjg5J10gPSAxMDgKKyAgICBfX29bJzI5MCddID0gMTExCisgICAgX19vWycyOTEnXSA9IDk3CisgICAgX19vWycyOTInXSA9IDExNgorICAgIF9fb1snMjkzJ10gPSA0MQorICAgIF9fb1snMjk0J10gPSAzMgorICAgIF9fb1snMjk1J10gPSA2MgorICAgIF9fb1snMjk2J10gPSAzMgorICAgIF9fb1snMjk3J10gPSAxMTUKKyAgICBfX29bJzI5OCddID0gMTA1CisgICAgX19vWycyOTknXSA9IDEyMgorICAgIF9fb1snMzAwJ10gPSAxMDEKKyAgICBfX29bJzMwMSddID0gMTExCisgICAgX19vWyczMDInXSA9IDEwMgorICAgIF9fb1snMzAzJ10gPSA0MAorICAgIF9fb1snMzA0J10gPSA2NQorICAgIF9fb1snMzA1J10gPSAxMTQKKyAgICBfX29bJzMwNiddID0gMTAzCisgICAgX19vWyczMDcnXSA9IDQxCisgICAgX19vWyczMDgnXSA9IDAKKyAgICBfX29bJzMwOSddID0gOTcKKyAgICBfX29bJzMxMCddID0gMTE1CisgICAgX19vWyczMTEnXSA9IDExNQorICAgIF9fb1snMzEyJ10gPSAxMDEKKyAgICBfX29bJzMxMyddID0gMTE0CisgICAgX19vWyczMTQnXSA9IDExNgorICAgIF9fb1snMzE1J10gPSAxMDUKKyAgICBfX29bJzMxNiddID0gMTExCisgICAgX19vWyczMTcnXSA9IDExMAorICAgIF9fb1snMzE4J10gPSAzMgorICAgIF9fb1snMzE5J10gPSAxMDIKKyAgICBfX29bJzMyMCddID0gOTcKKyAgICBfX29bJzMyMSddID0gMTA1CisgICAgX19vWyczMjInXSA9IDEwOAorICAgIF9fb1snMzIzJ10gPSAxMTcKKyAgICBfX29bJzMyNCddID0gMTE0CisgICAgX19vWyczMjUnXSA9IDEwMQorICAgIF9fb1snMzI2J10gPSAzNworICAgIF9fb1snMzI3J10gPSAxMTUKKyAgICBfX29bJzMyOCddID0gMzcKKyAgICBfX29bJzMyOSddID0gMTE1CisgICAgX19vWyczMzAnXSA9IDAKKyAgICBfX29bJzMzMSddID0gMTAzCisgICAgX19vWyczMzInXSA9IDEwMQorICAgIF9fb1snMzMzJ10gPSAxMTAKKyAgICBfX29bJzMzNCddID0gMTAxCisgICAgX19vWyczMzUnXSA9IDExNAorICAgIF9fb1snMzM2J10gPSAxMDUKKyAgICBfX29bJzMzNyddID0gOTkKKyAgICBfX29bJzMzOCddID0gMzIKKyAgICBfX29bJzMzOSddID0gMTAxCisgICAgX19vWyczNDAnXSA9IDExNAorICAgIF9fb1snMzQxJ10gPSAxMTQKKyAgICBfX29bJzM0MiddID0gMTExCisgICAgX19vWyczNDMnXSA9IDExNAorICAgIF9fb1snMzQ0J10gPSA1OAorICAgIF9fb1snMzQ1J10gPSAzMgorICAgIF9fb1snMzQ2J10gPSAzNworICAgIF9fb1snMzQ3J10gPSAxMTUKKyAgICBfX29bJzM0OCddID0gMAorICAgIF9fb1snMzQ5J10gPSAxMTEKKyAgICBfX29bJzM1MCddID0gMTE3CisgICAgX19vWyczNTEnXSA9IDExNgorICAgIF9fb1snMzUyJ10gPSAzMgorICAgIF9fb1snMzUzJ10gPSAxMTEKKyAgICBfX29bJzM1NCddID0gMTAyCisgICAgX19vWyczNTUnXSA9IDMyCisgICAgX19vWyczNTYnXSA9IDEwOQorICAgIF9fb1snMzU3J10gPSAxMDEKKyAgICBfX29bJzM1OCddID0gMTA5CisgICAgX19vWyczNTknXSA9IDExMQorICAgIF9fb1snMzYwJ10gPSAxMTQKKyAgICBfX29bJzM2MSddID0gMTIxCisgICAgX19vWyczNjInXSA9IDU4CisgICAgX19vWyczNjMnXSA9IDMyCisgICAgX19vWyczNjQnXSA9IDEwNAorICAgIF9fb1snMzY1J10gPSAxMDEKKyAgICBfX29bJzM2NiddID0gOTcKKyAgICBfX29bJzM2NyddID0gMTEyCisgICAgX19vWyczNjgnXSA9IDYxCisgICAgX19vWyczNjknXSA9IDQ4CisgICAgX19vWyczNzAnXSA9IDEyMAorICAgIF9fb1snMzcxJ10gPSAzNworICAgIF9fb1snMzcyJ10gPSAxMjAKKyAgICBfX29bJzM3MyddID0gNDQKKyAgICBfX29bJzM3NCddID0gMzIKKyAgICBfX29bJzM3NSddID0gMTE1CisgICAgX19vWyczNzYnXSA9IDEwNQorICAgIF9fb1snMzc3J10gPSAxMjIKKyAgICBfX29bJzM3OCddID0gMTAxCisgICAgX19vWyczNzknXSA9IDYxCisgICAgX19vWyczODAnXSA9IDM3CisgICAgX19vWyczODEnXSA9IDExNworICAgIF9fb1snMzgyJ10gPSAwCisgICAgX19vWyczODMnXSA9IDEwMgorICAgIF9fb1snMzg0J10gPSAxMTQKKyAgICBfX29bJzM4NSddID0gMTAxCisgICAgX19vWyczODYnXSA9IDEwMQorICAgIF9fb1snMzg3J10gPSA0MAorICAgIF9fb1snMzg4J10gPSA0MQorICAgIF9fb1snMzg5J10gPSAzMgorICAgIF9fb1snMzkwJ10gPSAxMDUKKyAgICBfX29bJzM5MSddID0gMTEwCisgICAgX19vWyczOTInXSA9IDExOAorICAgIF9fb1snMzkzJ10gPSA5NworICAgIF9fb1snMzk0J10gPSAxMDgKKyAgICBfX29bJzM5NSddID0gMTA1CisgICAgX19vWyczOTYnXSA9IDEwMAorICAgIF9fb1snMzk3J10gPSAzMgorICAgIF9fb1snMzk4J10gPSAxMDUKKyAgICBfX29bJzM5OSddID0gMTEwCisgICAgX19vWyc0MDAnXSA9IDMyCisgICAgX19vWyc0MDEnXSA9IDEwMworICAgIF9fb1snNDAyJ10gPSAxMTQKKyAgICBfX29bJzQwMyddID0gMTExCisgICAgX19vWyc0MDQnXSA9IDExOQorICAgIF9fb1snNDA1J10gPSAxMTYKKyAgICBfX29bJzQwNiddID0gMTA0CisgICAgX19vWyc0MDcnXSA9IDQ1CisgICAgX19vWyc0MDgnXSA9IDExMQorICAgIF9fb1snNDA5J10gPSAxMTAKKyAgICBfX29bJzQxMCddID0gMTA4CisgICAgX19vWyc0MTEnXSA9IDEyMQorICAgIF9fb1snNDEyJ10gPSAzMgorICAgIF9fb1snNDEzJ10gPSA3MgorICAgIF9fb1snNDE0J10gPSAxMDEKKyAgICBfX29bJzQxNSddID0gOTcKKyAgICBfX29bJzQxNiddID0gMTEyCisgICAgX19vWyc0MTcnXSA9IDc3CisgICAgX19vWyc0MTgnXSA9IDEwNQorICAgIF9fb1snNDE5J10gPSAxMTAKKyAgICBfX29bJzQyMCddID0gMAorICAgIF9fb1snNDIxJ10gPSA4NAorICAgIF9fb1snNDIyJ10gPSAxMDQKKyAgICBfX29bJzQyMyddID0gMTAxCisgICAgX19vWyc0MjQnXSA9IDMyCisgICAgX19vWyc0MjUnXSA9IDgyCisgICAgX19vWyc0MjYnXSA9IDg0CisgICAgX19vWyc0MjcnXSA9IDgzCisgICAgX19vWyc0MjgnXSA9IDMyCisgICAgX19vWyc0MjknXSA9IDEwNAorICAgIF9fb1snNDMwJ10gPSAxMDEKKyAgICBfX29bJzQzMSddID0gOTcKKyAgICBfX29bJzQzMiddID0gMTEyCisgICAgX19vWyc0MzMnXSA9IDMyCisgICAgX19vWyc0MzQnXSA9IDEwNQorICAgIF9fb1snNDM1J10gPSAxMTUKKyAgICBfX29bJzQzNiddID0gMzIKKyAgICBfX29bJzQzNyddID0gMTE3CisgICAgX19vWyc0MzgnXSA9IDExNQorICAgIF9fb1snNDM5J10gPSAxMDEKKyAgICBfX29bJzQ0MCddID0gMTAwCisgICAgX19vWyc0NDEnXSA9IDMyCisgICAgX19vWyc0NDInXSA9IDExNworICAgIF9fb1snNDQzJ10gPSAxMTIKKyAgICBfX29bJzQ0NCddID0gNDYKKyAgICBfX29bJzQ0NSddID0gMzIKKyAgICBfX29bJzQ0NiddID0gNjkKKyAgICBfX29bJzQ0NyddID0gMTIwCisgICAgX19vWyc0NDgnXSA9IDk3CisgICAgX19vWyc0NDknXSA9IDEwOQorICAgIF9fb1snNDUwJ10gPSAxMDUKKyAgICBfX29bJzQ1MSddID0gMTEwCisgICAgX19vWyc0NTInXSA9IDEwMQorICAgIF9fb1snNDUzJ10gPSAzMgorICAgIF9fb1snNDU0J10gPSA4MAorICAgIF9fb1snNDU1J10gPSAxMTQKKyAgICBfX29bJzQ1NiddID0gMTExCisgICAgX19vWyc0NTcnXSA9IDEwMworICAgIF9fb1snNDU4J10gPSAxMTQKKyAgICBfX29bJzQ1OSddID0gOTcKKyAgICBfX29bJzQ2MCddID0gMTA5CisgICAgX19vWyc0NjEnXSA9IDQ2CisgICAgX19vWyc0NjInXSA9IDEwNAorICAgIF9fb1snNDYzJ10gPSAxMDEKKyAgICBfX29bJzQ2NCddID0gOTcKKyAgICBfX29bJzQ2NSddID0gMTEyCisgICAgX19vWyc0NjYnXSA9IDQ2CisgICAgX19vWyc0NjcnXSA9IDAKKyAgICBfX29bJzQ2OCddID0gNjAKKyAgICBfX29bJzQ2OSddID0gNDUKKyAgICBfX29bJzQ3MCddID0gNDUKKyAgICBfX29bJzQ3MSddID0gMzIKKyAgICBfX29bJzQ3MiddID0gOTkKKyAgICBfX29bJzQ3MyddID0gMTExCisgICAgX19vWyc0NzQnXSA9IDExMAorICAgIF9fb1snNDc1J10gPSAxMTUKKyAgICBfX29bJzQ3NiddID0gMTE2CisgICAgX19vWyc0NzcnXSA9IDExNAorICAgIF9fb1snNDc4J10gPSAxMTcKKyAgICBfX29bJzQ3OSddID0gOTkKKyAgICBfX29bJzQ4MCddID0gMTE2CisgICAgX19vWyc0ODEnXSA9IDU4CisgICAgX19vWyc0ODInXSA9IDMyCisgICAgX19vWyc0ODMnXSA9IDM3CisgICAgX19vWyc0ODQnXSA9IDExMgorICAgIF9fb1snNDg1J10gPSA0MAorICAgIF9fb1snNDg2J10gPSAzOQorICAgIF9fb1snNDg3J10gPSAzNworICAgIF9fb1snNDg4J10gPSAxMTUKKyAgICBfX29bJzQ4OSddID0gMzkKKyAgICBfX29bJzQ5MCddID0gNDEKKyAgICBfX29bJzQ5MSddID0gMAorICAgIF9fb1snNDkyJ10gPSA2MAorICAgIF9fb1snNDkzJ10gPSA0NQorICAgIF9fb1snNDk0J10gPSA0NQorICAgIF9fb1snNDk1J10gPSAzMgorICAgIF9fb1snNDk2J10gPSA5OQorICAgIF9fb1snNDk3J10gPSAxMTQKKyAgICBfX29bJzQ5OCddID0gMTAxCisgICAgX19vWyc0OTknXSA9IDk3CisgICAgX19vWyc1MDAnXSA9IDExNgorICAgIF9fb1snNTAxJ10gPSAxMDEKKyAgICBfX29bJzUwMiddID0gNTgKKyAgICBfX29bJzUwMyddID0gMzIKKyAgICBfX29bJzUwNCddID0gMzcKKyAgICBfX29bJzUwNSddID0gMTEyCisgICAgX19vWyc1MDYnXSA9IDQwCisgICAgX19vWyc1MDcnXSA9IDM5CisgICAgX19vWyc1MDgnXSA9IDM3CisgICAgX19vWyc1MDknXSA9IDExNQorICAgIF9fb1snNTEwJ10gPSAzOQorICAgIF9fb1snNTExJ10gPSA0MQorICAgIF9fb1snNTEyJ10gPSAwCisgICAgX19vWyc1MTMnXSA9IDQ1CisgICAgX19vWyc1MTQnXSA9IDQ1CisgICAgX19vWyc1MTUnXSA9IDYyCisgICAgX19vWyc1MTYnXSA9IDMyCisgICAgX19vWyc1MTcnXSA9IDEwMAorICAgIF9fb1snNTE4J10gPSAxMDEKKyAgICBfX29bJzUxOSddID0gMTE1CisgICAgX19vWyc1MjAnXSA9IDExNgorICAgIF9fb1snNTIxJ10gPSAxMTQKKyAgICBfX29bJzUyMiddID0gMTE3CisgICAgX19vWyc1MjMnXSA9IDk5CisgICAgX19vWyc1MjQnXSA9IDExNgorICAgIF9fb1snNTI1J10gPSA1OAorICAgIF9fb1snNTI2J10gPSAzMgorICAgIF9fb1snNTI3J10gPSA0MAorICAgIF9fb1snNTI4J10gPSAzNworICAgIF9fb1snNTI5J10gPSAxMTIKKyAgICBfX29bJzUzMCddID0gNDEKKyAgICBfX29bJzUzMSddID0gMAorICAgIF9fb1snNTMyJ10gPSA0NQorICAgIF9fb1snNTMzJ10gPSA0NQorICAgIF9fb1snNTM0J10gPSA2MgorICAgIF9fb1snNTM1J10gPSAzMgorICAgIF9fb1snNTM2J10gPSAxMDAKKyAgICBfX29bJzUzNyddID0gMTAxCisgICAgX19vWyc1MzgnXSA9IDEwOAorICAgIF9fb1snNTM5J10gPSAxMDEKKyAgICBfX29bJzU0MCddID0gMTE2CisgICAgX19vWyc1NDEnXSA9IDEwMQorICAgIF9fb1snNTQyJ10gPSA1OAorICAgIF9fb1snNTQzJ10gPSAzMgorICAgIF9fb1snNTQ0J10gPSA0MAorICAgIF9fb1snNTQ1J10gPSAzNworICAgIF9fb1snNTQ2J10gPSAxMTIKKyAgICBfX29bJzU0NyddID0gNDEKKyAgICBfX29bJzU0OCddID0gMAorICAgIF9fb1snNTQ5J10gPSAxMjAKKyAgICBfX29bJzU1MCddID0gMTAwCisgICAgX19vWyc1NTEnXSA9IDk5CisgICAgX19vWyc1NTInXSA9IDQ2CisgICAgX19vWyc1NTMnXSA9IDAKKyAgICBfX29bJzU1NCddID0gMTE0CisgICAgX19vWyc1NTUnXSA9IDExNworICAgIF9fb1snNTU2J10gPSAxMTAKKyAgICBfX29bJzU1NyddID0gMTE2CisgICAgX19vWyc1NTgnXSA9IDEwNQorICAgIF9fb1snNTU5J10gPSAxMDkKKyAgICBfX29bJzU2MCddID0gMTAxCisgICAgX19vWyc1NjEnXSA9IDQ2CisgICAgX19vWyc1NjInXSA9IDAKKyAgICBfX29bJzU2MyddID0gNjUKKyAgICBfX29bJzU2NCddID0gMTE1CisgICAgX19vWyc1NjUnXSA9IDExNQorICAgIF9fb1snNTY2J10gPSAxMDEKKyAgICBfX29bJzU2NyddID0gMTE0CisgICAgX19vWyc1NjgnXSA9IDExNgorICAgIF9fb1snNTY5J10gPSAwCisgICAgX19vWyc1NzAnXSA9IDY3CisgICAgX19vWyc1NzEnXSA9IDExMQorICAgIF9fb1snNTcyJ10gPSAxMTQKKyAgICBfX29bJzU3MyddID0gMTAxCisgICAgX19vWyc1NzQnXSA9IDAKKyAgICBfX29bJzU3NSddID0gNjgKKyAgICBfX29bJzU3NiddID0gMTAxCisgICAgX19vWyc1NzcnXSA9IDEwMgorICAgIF9fb1snNTc4J10gPSA5NworICAgIF9fb1snNTc5J10gPSAxMTcKKyAgICBfX29bJzU4MCddID0gMTA4CisgICAgX19vWyc1ODEnXSA9IDExNgorICAgIF9fb1snNTgyJ10gPSAxMTUKKyAgICBfX29bJzU4MyddID0gMAorICAgIF9fb1snNTg0J10gPSA2OAorICAgIF9fb1snNTg1J10gPSAxMDUKKyAgICBfX29bJzU4NiddID0gOTcKKyAgICBfX29bJzU4NyddID0gMTAzCisgICAgX19vWyc1ODgnXSA9IDExNQorICAgIF9fb1snNTg5J10gPSAwCisgICAgX19vWyc1OTAnXSA9IDY5CisgICAgX19vWyc1OTEnXSA9IDExNAorICAgIF9fb1snNTkyJ10gPSAxMTQKKyAgICBfX29bJzU5MyddID0gMTExCisgICAgX19vWyc1OTQnXSA9IDExNAorICAgIF9fb1snNTk1J10gPSAwCisgICAgX19vWyc1OTYnXSA9IDcxCisgICAgX19vWyc1OTcnXSA9IDk3CisgICAgX19vWyc1OTgnXSA9IDExNgorICAgIF9fb1snNTk5J10gPSAxMDEKKyAgICBfX29bJzYwMCddID0gMAorICAgIF9fb1snNjAxJ10gPSA3MQorICAgIF9fb1snNjAyJ10gPSA5NworICAgIF9fb1snNjAzJ10gPSAxMTYKKyAgICBfX29bJzYwNCddID0gMTAxCisgICAgX19vWyc2MDUnXSA9IDc4CisgICAgX19vWyc2MDYnXSA9IDExNworICAgIF9fb1snNjA3J10gPSAxMDgKKyAgICBfX29bJzYwOCddID0gMTA4CisgICAgX19vWyc2MDknXSA9IDAKKyAgICBfX29bJzYxMCddID0gNzYKKyAgICBfX29bJzYxMSddID0gMTExCisgICAgX19vWyc2MTInXSA9IDEwMworICAgIF9fb1snNjEzJ10gPSAwCisgICAgX19vWyc2MTQnXSA9IDc3CisgICAgX19vWyc2MTUnXSA9IDk3CisgICAgX19vWyc2MTYnXSA9IDEwNQorICAgIF9fb1snNjE3J10gPSAxMTAKKyAgICBfX29bJzYxOCddID0gMAorICAgIF9fb1snNjE5J10gPSA3NworICAgIF9fb1snNjIwJ10gPSAxMDEKKyAgICBfX29bJzYyMSddID0gMTA5CisgICAgX19vWyc2MjInXSA9IDExMQorICAgIF9fb1snNjIzJ10gPSAxMTQKKyAgICBfX29bJzYyNCddID0gMTIxCisgICAgX19vWyc2MjUnXSA9IDAKKyAgICBfX29bJzYyNiddID0gNzIKKyAgICBfX29bJzYyNyddID0gMTAxCisgICAgX19vWyc2MjgnXSA9IDk3CisgICAgX19vWyc2MjknXSA9IDExMgorICAgIF9fb1snNjMwJ10gPSA4MworICAgIF9fb1snNjMxJ10gPSAxMTYKKyAgICBfX29bJzYzMiddID0gMTAwCisgICAgX19vWyc2MzMnXSA9IDAKKyAgICBfX29bJzYzNCddID0gODMKKyAgICBfX29bJzYzNSddID0gMTE2CisgICAgX19vWyc2MzYnXSA9IDk3CisgICAgX19vWyc2MzcnXSA9IDExNAorICAgIF9fb1snNjM4J10gPSAxMTYKKyAgICBfX29bJzYzOSddID0gMTE3CisgICAgX19vWyc2NDAnXSA9IDExMgorICAgIF9fb1snNjQxJ10gPSAwCisgICAgX19vWyc2NDInXSA9IDgzCisgICAgX19vWyc2NDMnXSA9IDEyMQorICAgIF9fb1snNjQ0J10gPSAxMTUKKyAgICBfX29bJzY0NSddID0gMTE2CisgICAgX19vWyc2NDYnXSA9IDEwMQorICAgIF9fb1snNjQ3J10gPSAxMDkKKyAgICBfX29bJzY0OCddID0gMAorICAgIF9fb1snNjQ5J10gPSA4MworICAgIF9fb1snNjUwJ10gPSAxMjEKKyAgICBfX29bJzY1MSddID0gMTE1CisgICAgX19vWyc2NTInXSA9IDc3CisgICAgX19vWyc2NTMnXSA9IDEwNQorICAgIF9fb1snNjU0J10gPSAxMTAKKyAgICBfX29bJzY1NSddID0gMAorICAgIF9fb1snNjU2J10gPSA4NAorICAgIF9fb1snNjU3J10gPSAxMDEKKyAgICBfX29bJzY1OCddID0gMTIwCisgICAgX19vWyc2NTknXSA9IDExNgorICAgIF9fb1snNjYwJ10gPSAwCisgICAgX19vWyc2NjEnXSA9IDk3CisgICAgX19vWyc2NjInXSA9IDk5CisgICAgX19vWyc2NjMnXSA9IDEwOQorICAgIF9fb1snNjY0J10gPSAxMDEKKyAgICBfX29bJzY2NSddID0gNDYKKyAgICBfX29bJzY2NiddID0gMAorICAgIF9fb1snNjY3J10gPSAxMTcKKyAgICBfX29bJzY2OCddID0gMTE2CisgICAgX19vWyc2NjknXSA9IDEwNQorICAgIF9fb1snNjcwJ10gPSAxMDgKKyAgICBfX29bJzY3MSddID0gMTE1CisgICAgX19vWyc2NzInXSA9IDQ2CisgICAgX19vWyc2NzMnXSA9IDAKKyAgICBfX29bJzY3NCddID0gOTkKKyAgICBfX29bJzY3NSddID0gMTA4CisgICAgX19vWyc2NzYnXSA9IDExMQorICAgIF9fb1snNjc3J10gPSA5OQorICAgIF9fb1snNjc4J10gPSAxMDcKKyAgICBfX29bJzY3OSddID0gMTE1CisgICAgX19vWyc2ODAnXSA9IDQ2CisgICAgX19vWyc2ODEnXSA9IDAKKyAgICBfX29bJzY4MiddID0gNjcKKyAgICBfX29bJzY4MyddID0gMTA4CisgICAgX19vWyc2ODQnXSA9IDExMQorICAgIF9fb1snNjg1J10gPSA5OQorICAgIF9fb1snNjg2J10gPSAxMDcKKyAgICBfX29bJzY4NyddID0gODMKKyAgICBfX29bJzY4OCddID0gMTE2CisgICAgX19vWyc2ODknXSA9IDEwMAorICAgIF9fb1snNjkwJ10gPSAwCisgICAgX19vWyc2OTEnXSA9IDY2CisgICAgX19vWyc2OTInXSA9IDEwMQorICAgIF9fb1snNjkzJ10gPSAxMTAKKyAgICBfX29bJzY5NCddID0gOTkKKyAgICBfX29bJzY5NSddID0gMTA0CisgICAgX19vWyc2OTYnXSA9IDAKKworX19vID0gX19vYmpbMjc0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzI3NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNzYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNzguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzI4MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyODIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyODQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzI4Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjc2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3N10gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI3OS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjc5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjgxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODFdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4My4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODNdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODRdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjg1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjg3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4N10gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzI4OS4wXQorICAgIF9fb1snMSddID0gX19vYmpbMjkwLjBdCisgICAgX19vWycyJ10gPSBfX29ialsyOTEuMF0KKyAgICBfX29bJzMnXSA9IF9fb2JqWzI5Mi4wXQorICAgIF9fb1snNCddID0gX19vYmpbMjkzLjBdCisgICAgX19vWyc1J10gPSBfX29ialsyOTQuMF0KKyAgICBfX29bJzYnXSA9IF9fb2JqWzI5NS4wXQorICAgIF9fb1snNyddID0gX19vYmpbMjk2LjBdCisgICAgX19vWyc4J10gPSBfX29ialsyOTcuMF0KKyAgICBfX29bJzknXSA9IF9fb2JqWzI5OC4wXQorICAgIF9fb1snMTAnXSA9IF9fb2JqWzI5OS4wXQorICAgIF9fb1snMTEnXSA9IF9fb2JqWzMwMC4wXQorICAgIF9fb1snMTInXSA9IF9fb2JqWzMwMS4wXQorICAgIF9fb1snMTMnXSA9IF9fb2JqWzMwMi4wXQorICAgIF9fb1snMTQnXSA9IF9fb2JqWzMwMy4wXQorICAgIF9fb1snMTUnXSA9IF9fb2JqWzMwNC4wXQorICAgIF9fb1snMTYnXSA9IF9fb2JqWzMwNS4wXQorICAgIF9fb1snMTcnXSA9IF9fb2JqWzMwNi4wXQorICAgIF9fb1snMTgnXSA9IF9fb2JqWzMwNy4wXQorICAgIF9fb1snMTknXSA9IF9fb2JqWzMwOC4wXQorICAgIF9fb1snMjAnXSA9IF9fb2JqWzMwOS4wXQorCitfX28gPSBfX29ialsyODldICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYwJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAwCisgICAgX19vWydyaWdodCddID0gMAorCitfX28gPSBfX29ialsyOTBdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSA1NDkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NTQKKworX19vID0gX19vYmpbMjkxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NjMKKworX19vID0gX19vYmpbMjkyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NzAKKworX19vID0gX19vYmpbMjkzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NzUKKworX19vID0gX19vYmpbMjk0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1ODQKKworX19vID0gX19vYmpbMjk1XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzYKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1OTAKKworX19vID0gX19vYmpbMjk2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzcKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1OTYKKworX19vID0gX19vYmpbMjk3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGOCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MDEKKworX19vID0gX19vYmpbMjk4XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzkKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGOScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MTAKKworX19vID0gX19vYmpbMjk5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjEwJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYxNAorCitfX28gPSBfX29ialszMDBdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjE5CisKK19fbyA9IF9fb2JqWzMwMV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MjYKKworX19vID0gX19vYmpbMzAyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjEzJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYzNAorCitfX28gPSBfX29ialszMDNdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjQyCisKK19fbyA9IF9fb2JqWzMwNF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2NDkKKworX19vID0gX19vYmpbMzA1XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE2CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE2JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDY1NgorCitfX28gPSBfX29ialszMDZdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTcKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDY2MQorICAgIF9fb1sncmlnaHQnXSA9IDY2NworCitfX28gPSBfX29ialszMDddICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTgKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzg1CisgICAgX19vWydyaWdodCddID0gNjc0CisKK19fbyA9IF9fb2JqWzMwOF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xOQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxOScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3ODYKKyAgICBfX29bJ3JpZ2h0J10gPSA2ODIKKworX19vID0gX19vYmpbMzA5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjIwJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc4NQorICAgIF9fb1sncmlnaHQnXSA9IDY5MQorCitfX28gPSBfX29ialszMTBdICAvLyB4ZGMucnVudGltZS5UZXh0L3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzExXSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzMxMi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODcKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMzEzLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMzE0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszMjcuMF0KKworX19vID0gX19vYmpbMzEyXSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzEzXSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMzE0XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialszMTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialszMTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzMxOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialszMjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialszMjMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzMyNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxNV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxNl0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE3XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxOF0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE5XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMF0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMyMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjJdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyM10gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMyNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjRdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyNV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI2XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjddICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjhdICAvLyBhY21lLnV0aWxzLkJlbmNoCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszMjkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2gnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4OAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydQQ2xvY2snXSA9IF9fb2JqWzMxMS4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMzMwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMzMxLjBdCisgICAgX19vWydlbmFibGVGbGFnJ10gPSB0cnVlCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszNDQuMF0KKworX19vID0gX19vYmpbMzI5XSAgLy8gYWNtZS51dGlscy5CZW5jaC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzMF0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialszMzFdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMzMyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMzM0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialszMzYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMzM4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMzQwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialszNDIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzMl0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzMzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzNdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzRdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMzUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzNV0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzNl0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMzNy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM3XSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzOF0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM5XSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQwXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzM0MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDFdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDJdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzM0My4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDNdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDRdICAvLyBhY21lLnV0aWxzLkJlbmNoL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ1XSAgCisgICAgX19vWydjZmdBcmdzJ10gPSBfX29ialszNDYuMF0KKyAgICBfX29bJ2NmZ1NjcmlwdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpc3FydFRlc3QxLmNmZycsICdVVEYtOCcpKQorICAgIF9fb1sncHJvZmlsZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdyZWxlYXNlJywgJ1VURi04JykpCisgICAgX19vWydyZWxlYXNlcyddID0gX19vYmpbMzQ3LjBdCisgICAgX19vWyd0YXJnZXQnXSA9IF9fb2JqWzM1MS4wXQorICAgIF9fb1sndGVzdCddID0gX19vYmpbNDY1LjBdCisKK19fbyA9IF9fb2JqWzM0Nl0gIAorICAgIF9fb1snb3B0TW9kZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdUSU1FJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0N10gIAorICAgIF9fb1snMCddID0gX19vYmpbMzQ4LjBdCisKK19fbyA9IF9fb2JqWzM0OF0gIAorICAgIF9fb1snYXR0cnMnXSA9IF9fb2JqWzM0OS4wXQorICAgIF9fb1snbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjaGFybGllX3NxcnRsaWJfdGVzdCcsICdVVEYtOCcpKQorICAgIF9fb1snb3RoZXJGaWxlcyddID0gX19vYmpbMzUwLjBdCisKK19fbyA9IF9fb2JqWzM0OV0gIAorICAgIF9fb1snbGFiZWwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGVmYXVsdCcsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTBdICAKKworX19vID0gX19vYmpbMzUxXSAgLy8gdGkudGFyZ2V0cy5DNjRQCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduRGlyZWN0aXZlU3VwcG9ydGVkJ10gPSB0cnVlCisgICAgX19vWydhciddID0gX19vYmpbMzUyLjBdCisgICAgX19vWydhck9wdHMnXSA9IF9fb2JqWzM1My4wXQorICAgIF9fb1snYXNtJ10gPSBfX29ialszNTQuMF0KKyAgICBfX29bJ2FzbU9wdHMnXSA9IF9fb2JqWzM1NS4wXQorICAgIF9fb1snYmFzZSddID0gX19vYmpbMzU2LjBdCisgICAgX19vWydiaW5EaXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4cm9vdERpciUyOSUyRmJpbiUyRicsICdVVEYtOCcpKQorICAgIF9fb1snYmluYXJ5UGFyc2VyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMub21mLmNvZi5Db2ZmJywgJ1VURi04JykpCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY2MnXSA9IF9fb2JqWzQwNy4wXQorICAgIF9fb1snY2NDb25maWdPcHRzJ10gPSBfX29ials0MDguMF0KKyAgICBfX29bJ2NjT3B0cyddID0gX19vYmpbNDA5LjBdCisgICAgX19vWydjb21wYXRpYmxlU3VmZml4ZXMnXSA9IF9fb2JqWzQxMC4wXQorICAgIF9fb1snZGVidWdHZW4nXSA9IF9fb2JqWzQxMS4wXQorICAgIF9fb1snZXh0ZW5zaW9ucyddID0gX19vYmpbNDEyLjBdCisgICAgX19vWydpbmNsdWRlT3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctSSUyNCUyOHJvb3REaXIlMjklMkZpbmNsdWRlJywgJ1VURi04JykpCisgICAgX19vWydpc2EnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjRQJywgJ1VURi04JykpCisgICAgX19vWydsbmsnXSA9IF9fb2JqWzQyMi4wXQorICAgIF9fb1snbG5rT3B0cyddID0gX19vYmpbNDIzLjBdCisgICAgX19vWydtb2RlbCddID0gX19vYmpbNDI0LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0M2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhdGhQcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNjRQeHgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BsYXRmb3JtcyddID0gX19vYmpbNDI1LjBdCisgICAgX19vWydwcm9maWxlcyddID0gX19vYmpbNDI2LjBdCisgICAgX19vWydyb290RGlyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2QlM0ElMkZ0aSUyRmM2MDAwJTJGYWxjJywgJ1VURi04JykpCisgICAgX19vWydydHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5ydHM2MDAwJywgJ1VURi04JykpCisgICAgX19vWydzZWN0TWFwJ10gPSBfX29ials0NDUuMF0KKyAgICBfX29bJ3N0ZEluY2x1ZGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGklMkZ0YXJnZXRzJTJGc3RkLmgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0ZFR5cGVzJ10gPSBfX29ials0NDYuMF0KKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZlcnMnXSA9IF9fb2JqWzQ2My4wXQorICAgIF9fb1sndmVyc2lvbiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlN0IxJTJDMCUyQzYuMSUyQzUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZlcnNpb25NYXAnXSA9IF9fb2JqWzQ2NC4wXQorCitfX28gPSBfX29ialszNTJdICAvLyB0aS50YXJnZXRzLkM2NFAvYXIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmFyJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXI2eCcsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdycScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTNdICAvLyB0aS50YXJnZXRzLkM2NFAvYXJPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZhck9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzU0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2FzbQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGYXNtJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2w2eCstYycsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctbXY2NHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzU1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2FzbU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmFzbU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctcXEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzU2XSAgLy8gdGkudGFyZ2V0cy5DNjIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbkRpcmVjdGl2ZVN1cHBvcnRlZCddID0gdHJ1ZQorICAgIF9fb1snYmluYXJ5UGFyc2VyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMub21mLmNvZi5Db2ZmJywgJ1VURi04JykpCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY29tcGF0aWJsZVN1ZmZpeGVzJ10gPSBfX29ialszNTcuMF0KKyAgICBfX29bJ2RlYnVnR2VuJ10gPSBfX29ialszNTguMF0KKyAgICBfX29bJ2V4dGVuc2lvbnMnXSA9IF9fb2JqWzM1OS4wXQorICAgIF9fb1snaXNhJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzYyJywgJ1VURi04JykpCisgICAgX19vWydtb2RlbCddID0gX19vYmpbMzY3LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0M2MicsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkucGxhdGZvcm1zLnNpbTZ4eHglM0FUTVMzMjBDNjIxMScsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm1zJ10gPSBfX29ialszNjguMF0KKyAgICBfX29bJ3Byb2ZpbGVzJ10gPSBfX29ialszNjkuMF0KKyAgICBfX29bJ3J0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLnJ0czYwMDAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3NlY3RNYXAnXSA9IF9fb2JqWzM4OC4wXQorICAgIF9fb1snc3RkSW5jbHVkZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZzdGQuaCcsICdVVEYtOCcpKQorICAgIF9fb1snc3RkVHlwZXMnXSA9IF9fb2JqWzM4OS4wXQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzYyJywgJ1VURi04JykpCisgICAgX19vWyd2ZXJzaW9uTWFwJ10gPSBfX29ials0MDYuMF0KKworX19vID0gX19vYmpbMzU3XSAgLy8gdGkudGFyZ2V0cy5DNjIvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmNvbXBhdGlibGVTdWZmaXhlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNThdICAvLyB0aS50YXJnZXRzLkM2Mi9kZWJ1Z0dlbgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZkZWJ1Z0dlbicsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1BhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4Y2ZnRGlyJTI5JTI0JTI4Y2ZnTmFtZSUyOS5wanQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2V4ZWNUZW1wbGF0ZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZjY3NfZXhlYy54ZHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhY2thZ2VQYXR0ZXJuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3BhY2thZ2UlMkYlMjQlMjhwa2dOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVRlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19wYWNrYWdlLnhkdCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTldICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5DJ10gPSBfX29ialszNjAuMF0KKyAgICBfX29bJy5hc20nXSA9IF9fb2JqWzM2MS4wXQorICAgIF9fb1snLmMnXSA9IF9fb2JqWzM2Mi4wXQorICAgIF9fb1snLmNjJ10gPSBfX29ialszNjMuMF0KKyAgICBfX29bJy5jcHAnXSA9IF9fb2JqWzM2NC4wXQorICAgIF9fb1snLmN4eCddID0gX19vYmpbMzY1LjBdCisgICAgX19vWycuczYyJ10gPSBfX29ialszNjYuMF0KKworX19vID0gX19vYmpbMzYwXSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLkMnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuQyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5DJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2MV0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5hc20nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuYXNtJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmFzbScsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjJdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5jJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2M10gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jYycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5jYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjRdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3BwJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmNwcCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jcHAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY1XSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmN4eCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5jeHglMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY3h4JywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2Nl0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5zNjInCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuczYyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM2MicsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjddICAvLyB0aS50YXJnZXRzLkM2Mi9tb2RlbAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZtb2RlbCcsICdVVEYtOCcpKQorICAgIF9fb1snZW5kaWFuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2xpdHRsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjhdICAvLyB0aS50YXJnZXRzLkM2Mi9wbGF0Zm9ybXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcGxhdGZvcm1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2OV0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJywgJ1VURi04JykpCisgICAgX19vWydjb3ZlcmFnZSddID0gX19vYmpbMzcwLjBdCisgICAgX19vWydkZWJ1ZyddID0gX19vYmpbMzczLjBdCisgICAgX19vWydwcm9maWxlJ10gPSBfX29ialszNzYuMF0KKyAgICBfX29bJ3JlbGVhc2UnXSA9IF9fb2JqWzM3OS4wXQorICAgIF9fb1snd2hvbGVfcHJvZ3JhbSddID0gX19vYmpbMzgyLjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtX2RlYnVnJ10gPSBfX29ialszODUuMF0KKworX19vID0gX19vYmpbMzcwXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzcxLjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszNzIuMF0KKworX19vID0gX19vYmpbMzcxXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzJdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzczXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzc0LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszNzUuMF0KKworX19vID0gX19vYmpbMzc0XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1nJywgJ1VURi04JykpCisgICAgX19vWydkZWZzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1EX0RFQlVHXyUzRDEnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc1XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3Nl0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNzcuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM3OC4wXQorCitfX28gPSBfX29ialszNzddICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzhdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3OV0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszODAuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM4MS4wXQorCitfX28gPSBfX29ialszODBdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1PMicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODFdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4Ml0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW0lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszODMuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM4NC4wXQorCitfX28gPSBfX29ialszODNdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1vZSstTzIrLW1vJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4NF0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg1XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbV9kZWJ1ZyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM4Ni4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzg3LjBdCisKK19fbyA9IF9fb2JqWzM4Nl0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLW9lKy0tc3ltZGVidWclM0Fkd2FyZistbW8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg3XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODhdICAvLyB0aS50YXJnZXRzLkM2Mi9zZWN0TWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnNlY3RNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5hcmdzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5ic3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNpbml0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5jaW8nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNvbnN0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5kYXRhJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5mYXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnBpbml0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zdGFjayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdzdGFjaycsICdVVEYtOCcpKQorICAgIF9fb1snLnN3aXRjaCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuc3lzbWVtJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy50ZXh0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvZGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg5XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3RfQ2hhciddID0gX19vYmpbMzkwLjBdCisgICAgX19vWyd0X0RvdWJsZSddID0gX19vYmpbMzkxLjBdCisgICAgX19vWyd0X0Zsb2F0J10gPSBfX29ialszOTIuMF0KKyAgICBfX29bJ3RfRnhuJ10gPSBfX29ialszOTMuMF0KKyAgICBfX29bJ3RfSUFyZyddID0gX19vYmpbMzk0LjBdCisgICAgX19vWyd0X0ludCddID0gX19vYmpbMzk1LjBdCisgICAgX19vWyd0X0ludDE2J10gPSBfX29ialszOTYuMF0KKyAgICBfX29bJ3RfSW50MzInXSA9IF9fb2JqWzM5Ny4wXQorICAgIF9fb1sndF9JbnQ0MCddID0gX19vYmpbMzk4LjBdCisgICAgX19vWyd0X0ludDY0J10gPSBfX29ialszOTkuMF0KKyAgICBfX29bJ3RfSW50OCddID0gX19vYmpbNDAwLjBdCisgICAgX19vWyd0X0xEb3VibGUnXSA9IF9fb2JqWzQwMS4wXQorICAgIF9fb1sndF9MTG9uZyddID0gX19vYmpbNDAyLjBdCisgICAgX19vWyd0X0xvbmcnXSA9IF9fb2JqWzQwMy4wXQorICAgIF9fb1sndF9QdHInXSA9IF9fb2JqWzQwNC4wXQorICAgIF9fb1sndF9TaG9ydCddID0gX19vYmpbNDA1LjBdCisKK19fbyA9IF9fb2JqWzM5MF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfQ2hhcgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfQ2hhcicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbMzkxXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0RvdWJsZScsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzkyXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GbG9hdAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfRmxvYXQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM5M10gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRnhuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9GeG4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM5NF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSUFyZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSUFyZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzk1XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0ludCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzk2XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQxNgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50MTYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAyCisgICAgX19vWydzaXplJ10gPSAyCisKK19fbyA9IF9fb2JqWzM5N10gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MzIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0ludDMyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszOThdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDQwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQ0MCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzk5XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ2NAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50NjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQwMF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50OAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50OCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbNDAxXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MRG91YmxlCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9MRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0MDJdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xMb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9MTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDAzXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Mb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9Mb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0MDRdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1B0cgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfUHRyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0MDVdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1Nob3J0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9TaG9ydCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbNDA2XSAgLy8gdGkudGFyZ2V0cy5DNjIvdmVyc2lvbk1hcAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZ2ZXJzaW9uTWFwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDMjAwMF8zLjA3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy4wNyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NHhfMy44MyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzMuODMlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNTV4XzIuNTYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMyLjU2JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzZ4XzQuMzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkM0LjMyJTJDMCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDddICAvLyB0aS50YXJnZXRzLkM2NFAvY2MKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmNjJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2w2eCstYycsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctbXY2NHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDA4XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2NjQ29uZmlnT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGY2NDb25maWdPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4Y2NPcHRzLnByZWZpeCUyOSstbW8nLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjY09wdHMuc3VmZml4JTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwOV0gIC8vIHRpLnRhcmdldHMuQzY0UC9jY09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmNjT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1xcSstcGRzdzIyNScsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MTBdICAvLyB0aS50YXJnZXRzLkM2NFAvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZjb21wYXRpYmxlU3VmZml4ZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDExXSAgLy8gdGkudGFyZ2V0cy5DNjRQL2RlYnVnR2VuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZkZWJ1Z0dlbicsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1BhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4Y2ZnRGlyJTI5JTI0JTI4Y2ZnTmFtZSUyOS5wanQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2V4ZWNUZW1wbGF0ZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZjY3NfZXhlYy54ZHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhY2thZ2VQYXR0ZXJuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3BhY2thZ2UlMkYlMjQlMjhwa2dOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVRlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19wYWNrYWdlLnhkdCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MTJdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucycsICdVVEYtOCcpKQorICAgIF9fb1snLkMnXSA9IF9fb2JqWzQxMy4wXQorICAgIF9fb1snLmFzbSddID0gX19vYmpbNDE0LjBdCisgICAgX19vWycuYyddID0gX19vYmpbNDE1LjBdCisgICAgX19vWycuY2MnXSA9IF9fb2JqWzQxNi4wXQorICAgIF9fb1snLmNwcCddID0gX19vYmpbNDE3LjBdCisgICAgX19vWycuY3h4J10gPSBfX29ials0MTguMF0KKyAgICBfX29bJy5zNjInXSA9IF9fb2JqWzQxOS4wXQorICAgIF9fb1snLnM2NCddID0gX19vYmpbNDIwLjBdCisgICAgX19vWycuczY0UCddID0gX19vYmpbNDIxLjBdCisKK19fbyA9IF9fb2JqWzQxM10gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuQycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuQyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5DJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxNF0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYXNtJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5hc20lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYXNtJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQxNV0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MTZdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNjJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MTddICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNwcCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuY3BwJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNwcCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MThdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmN4eCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuY3h4JTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmN4eCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MTldICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuczYyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM2MicsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjBdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuczY0JTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM2NCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjFdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NFAnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJTJGJTI3LnM2NFAlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczY0UCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjJdICAvLyB0aS50YXJnZXRzLkM2NFAvbG5rCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZsbmsnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdsbms2eCcsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDIzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL2xua09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmxua09wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctdystcSstdStfY19pbnQwMCcsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1jKy1tKyUyNCUyOFhEQ0NGR0RJUiUyOSUyRiUyNCU0MC5tYXArLWwrJTI0JTI4cm9vdERpciUyOSUyRmxpYiUyRnJ0czY0cGx1cy5saWInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDI0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL21vZGVsCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZtb2RlbCcsICdVVEYtOCcpKQorICAgIF9fb1snZW5kaWFuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2xpdHRsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjVdICAvLyB0aS50YXJnZXRzLkM2NFAvcGxhdGZvcm1zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwbGF0Zm9ybXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkucGxhdGZvcm1zLnNpbTY0UHh4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyNl0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvdmVyYWdlJ10gPSBfX29ials0MjcuMF0KKyAgICBfX29bJ2RlYnVnJ10gPSBfX29ials0MzAuMF0KKyAgICBfX29bJ3Byb2ZpbGUnXSA9IF9fb2JqWzQzMy4wXQorICAgIF9fb1sncmVsZWFzZSddID0gX19vYmpbNDM2LjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtJ10gPSBfX29ials0MzkuMF0KKyAgICBfX29bJ3dob2xlX3Byb2dyYW1fZGVidWcnXSA9IF9fb2JqWzQ0Mi4wXQorCitfX28gPSBfX29ials0MjddICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzQyOC4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbNDI5LjBdCisKK19fbyA9IF9fb2JqWzQyOF0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjldICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MzBdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzQzMS4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbNDMyLjBdCisKK19fbyA9IF9fb2JqWzQzMV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1nJywgJ1VURi04JykpCisgICAgX19vWydkZWZzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1EX0RFQlVHXyUzRDEnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDMyXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDMzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDM0LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0MzUuMF0KKworX19vID0gX19vYmpbNDM0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MzVdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDM2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDM3LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0MzguMF0KKworX19vID0gX19vYmpbNDM3XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1PMicsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MzhdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDM5XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDQwLjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0NDEuMF0KKworX19vID0gX19vYmpbNDQwXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1vZSstTzIrLW1vJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ0MV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NDJdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ials0NDMuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzQ0NC4wXQorCitfX28gPSBfX29ials0NDNdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLW9lKy0tc3ltZGVidWclM0Fkd2FyZistbW8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDQ0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ0NV0gIC8vIHRpLnRhcmdldHMuQzY0UC9zZWN0TWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzZWN0TWFwJywgJ1VURi04JykpCisgICAgX19vWycuYXJncyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuYnNzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5jaW5pdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY2lvJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5jb25zdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuZGF0YSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuZmFyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5waW5pdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuc3RhY2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnc3RhY2snLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zd2l0Y2gnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnN5c21lbSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycudGV4dCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb2RlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ0Nl0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3RfQ2hhciddID0gX19vYmpbNDQ3LjBdCisgICAgX19vWyd0X0RvdWJsZSddID0gX19vYmpbNDQ4LjBdCisgICAgX19vWyd0X0Zsb2F0J10gPSBfX29ials0NDkuMF0KKyAgICBfX29bJ3RfRnhuJ10gPSBfX29ials0NTAuMF0KKyAgICBfX29bJ3RfSUFyZyddID0gX19vYmpbNDUxLjBdCisgICAgX19vWyd0X0ludCddID0gX19vYmpbNDUyLjBdCisgICAgX19vWyd0X0ludDE2J10gPSBfX29ials0NTMuMF0KKyAgICBfX29bJ3RfSW50MzInXSA9IF9fb2JqWzQ1NC4wXQorICAgIF9fb1sndF9JbnQ0MCddID0gX19vYmpbNDU1LjBdCisgICAgX19vWyd0X0ludDY0J10gPSBfX29ials0NTYuMF0KKyAgICBfX29bJ3RfSW50OCddID0gX19vYmpbNDU3LjBdCisgICAgX19vWyd0X0xEb3VibGUnXSA9IF9fb2JqWzQ1OC4wXQorICAgIF9fb1sndF9MTG9uZyddID0gX19vYmpbNDU5LjBdCisgICAgX19vWyd0X0xvbmcnXSA9IF9fb2JqWzQ2MC4wXQorICAgIF9fb1sndF9QdHInXSA9IF9fb2JqWzQ2MS4wXQorICAgIF9fb1sndF9TaG9ydCddID0gX19vYmpbNDYyLjBdCisKK19fbyA9IF9fb2JqWzQ0N10gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0NoYXIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9DaGFyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ials0NDhdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9Eb3VibGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQ0OV0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Zsb2F0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfRmxvYXQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQ1MF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Z4bgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0Z4bicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDUxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSUFyZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0lBcmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQ1Ml0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0ludCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDUzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MTYKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQxNicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbNDU0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MzIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQzMicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDU1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NDAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQ0MCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDU2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NjQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQ2NCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDU3XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50OAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0ludDgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAxCisgICAgX19vWydzaXplJ10gPSAxCisKK19fbyA9IF9fb2JqWzQ1OF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xEb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9MRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0NTldICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MTG9uZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0xMb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0NjBdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Mb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDYxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfUHRyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfUHRyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0NjJdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9TaG9ydAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X1Nob3J0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMgorICAgIF9fb1snc2l6ZSddID0gMgorCitfX28gPSBfX29ials0NjNdICAvLyB0aS50YXJnZXRzLkM2NFAvdmVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGdmVycycsICdVVEYtOCcpKQorICAgIF9fb1snY21kJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NsNngnLCAnVVRGLTgnKSkKKyAgICBfX29bJ29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLXZlcnNpb24nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDY0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3ZlcnNpb25NYXAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnZlcnNpb25NYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEMyMDAwXzMuMDcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMzLjA3JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzU0eF8zLjgzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy44MyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NXhfMi41NiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzIuNTYlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNnhfNC4zMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzQuMzIlMkMwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ2NV0gIAorCitkZWxldGUgX19vCitkZWxldGUgX19vYmoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5ydGEueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAucnRhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzRmMzM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAucnRhLnhtbApAQCAtMCwwICsxLDExMiBAQAorPHhkYy5ydW50aW1lLlR5cGVzLlJ0YURlY29kZXJEYXRhPg0KKyAgPHRhcmdldE5hbWU+dGkudGFyZ2V0cy5DNjRQPC90YXJnZXROYW1lPg0KKyAgPGJpbmFyeVBhcnNlcj50aS50YXJnZXRzLm9tZi5jb2YuQ29mZjwvYmluYXJ5UGFyc2VyPg0KKyAgPGVuZGlhbj5saXR0bGU8L2VuZGlhbj4NCisgIDxiaXRzUGVyQ2hhcj44PC9iaXRzUGVyQ2hhcj4NCisgIDxhcmdTaXplPjQ8L2FyZ1NpemU+DQorICA8ZXZlbnRTaXplPjQ4PC9ldmVudFNpemU+DQorICA8bG9nZ2Vycy1sZW5ndGg+MDwvbG9nZ2Vycy1sZW5ndGg+DQorICA8bW9kTWFwLWxlbmd0aD4xNzwvbW9kTWFwLWxlbmd0aD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Bc3NlcnQiPg0KKyAgICA8aWQ+MzI3NzA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Db3JlIj4NCisgICAgPGlkPjMyNzcxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiPg0KKyAgICA8aWQ+MzI3NzI8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5EaWFncyI+DQorICAgIDxpZD4zMjc3MzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkVycm9yIj4NCisgICAgPGlkPjMyNzc0PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuR2F0ZSI+DQorICAgIDxpZD4zMjc3NTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkdhdGVOdWxsIj4NCisgICAgPGlkPjMyNzc2PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nIj4NCisgICAgPGlkPjMyNzc3PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTWFpbiI+DQorICAgIDxpZD4zMjc3ODwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLk1lbW9yeSI+DQorICAgIDxpZD4zMjc3OTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkhlYXBTdGQiPg0KKyAgICA8aWQ+MzI3ODA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5TdGFydHVwIj4NCisgICAgPGlkPjMyNzgxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzdGVtIj4NCisgICAgPGlkPjMyNzgyPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzTWluIj4NCisgICAgPGlkPjMyNzgzPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuVGV4dCI+DQorICAgIDxpZD4zMjc4NDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9ImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIj4NCisgICAgPGlkPjMyNzg3PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0iYWNtZS51dGlscy5CZW5jaCI+DQorICAgIDxpZD4zMjc4ODwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPGV2dE1hcC1sZW5ndGg+NDwvZXZ0TWFwLWxlbmd0aD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9jb25zdHJ1Y3QiPg0KKyAgICA8aWQ+NDY4PC9pZD4NCisgICAgPG1zZz4lM0MtLStjb25zdHJ1Y3QlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2NyZWF0ZSI+DQorICAgIDxpZD40OTI8L2lkPg0KKyAgICA8bXNnPiUzQy0tK2NyZWF0ZSUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfZGVzdHJ1Y3QiPg0KKyAgICA8aWQ+NTEzPC9pZD4NCisgICAgPG1zZz4tLSUzRStkZXN0cnVjdCUzQSslMjglMjVwJTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9kZWxldGUiPg0KKyAgICA8aWQ+NTMyPC9pZD4NCisgICAgPG1zZz4tLSUzRStkZWxldGUlM0ErJTI4JTI1cCUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorPC94ZGMucnVudGltZS5UeXBlcy5SdGFEZWNvZGVyRGF0YT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLnhkYy5pbmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC54ZGMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjZGQzMWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC54ZGMuaW5jCkBAIC0wLDAgKzEsMiBAQAoraXNxcnRUZXN0MS5jZmcKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmNmZwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAueGRsIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAueGRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0MTBjYjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC54ZGwKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgZnJvbSB0aGUgdGVtcGxhdGUKKyAqIGxpbmtjbWQueGR0IGluIHRoZSB0aS50YXJnZXRzIHBhY2thZ2UgYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKi8KKworLyoKKyAqIHB1dCAnIidzIGFyb3VuZCBwYXRocyBiZWNhdXNlLCB3aXRob3V0IHRoaXMsIHRoZSBsaW5rZXIKKyAqIGNvbnNpZGVycyAnLScgYXMgbWludXMgb3BlcmF0b3IsIG5vdCBhIGZpbGUgbmFtZSBjaGFyYWN0ZXIuCisgKi8KKworCisKKy1sIkQ6XHdvcmtcdHV0b3JpYWxccmVwb1xhY21lXHV0aWxzXGxpYlxhY21lLnV0aWxzLmE2NFAiCistbCJEOlx3b3JrXHR1dG9yaWFsXHJlcG9cYWNtZVx1dGlsc1xjbG9ja3NcbGliXGFjbWUudXRpbHMuY2xvY2tzLmE2NFAiCistbCJFOlxydHNjXHhkY3Rvb2xzXzNfMTVfMDBfMjlccGFja2FnZXNcdGlcdGFyZ2V0c1xydHM2MDAwXGxpYlx0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCIKKy1sIkU6XHJ0c2NceGRjdG9vbHNfM18xNV8wMF8yOVxwYWNrYWdlc1x0aVx0YXJnZXRzXHJ0czYwMDBcbGliXGJvb3QuYTY0UCIKKy1sIkQ6XHdvcmtcdHV0b3JpYWxccmVwb1xjaGFybGllXHNxcnRsaWJcbGliXGlzcXJ0X3Vucm9sbC5hNjRQIgorCisKKy8qIGZ1bmN0aW9uIGFsaWFzZXMgKi8KKy8qIGlnbm9yZSBlcnJvciBhYm91dCBkZWYgYW5kIHJlZiBpbiB0aGUgc2FtZSBmaWxlICovCistLWRpYWdfcmVtYXJrPTEwMjY4CistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRT1feGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19FPV94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRT1feGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0U9X3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19FPV94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0U9X3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FPV94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FPV94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GCistLXN5bWJvbF9tYXAgX2FjbWVfdXRpbHNfQmVuY2hfZW5kX19FPV9hY21lX3V0aWxzX0JlbmNoX2VuZF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRT1feGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0U9X3hkY19ydW50aW1lX0xvZ19kb1ByaW50X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRT1feGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRT1feGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FPV94ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0U9X3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9pbml0X19FPV94ZGNfcnVudGltZV9FcnJvcl9pbml0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2dldElkX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0U9X3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FPV94ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0U9X3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0U9X3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19FPV94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0U9X3hkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRgorLS1zeW1ib2xfbWFwIF9hY21lX3V0aWxzX0JlbmNoX2JlZ2luX19FPV9hY21lX3V0aWxzX0JlbmNoX2JlZ2luX19GCistLXN5bWJvbF9tYXAgX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0U9X2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0U9X3hkY19ydW50aW1lX01lbW9yeV9mcmVlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRT1feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRT1feGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0U9X3hkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9leGl0X19FPV94ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0U9X3hkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0U9X3hkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0U9X3hkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19FPV94ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19FPV94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19FPV94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRT1feGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0U9X3hkY19ydW50aW1lX1N5c01pbl9leGl0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0U9X3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRT1feGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FPV94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19GCisKKworLyogRWxmIHN5bWJvbHMgKi8KKy0tc3ltYm9sX21hcCBfX19USV9TVEFDS19TSVpFPV9fU1RBQ0tfU0laRQorLS1zeW1ib2xfbWFwIF9fX1RJX1NUQUNLX0JBU0U9X19zdGFjaworLS1zeW1ib2xfbWFwIF9fX1RJX1NUQVRJQ19CQVNFPV9fX2Jzc19fCistLXN5bWJvbF9tYXAgX19jX2ludDAwPV9jX2ludDAwCisKKworCisKKworLS1hcmdzIDB4MjAwCistaGVhcCAgMHgxMDAwCistc3RhY2sgMHgxMDAwCisKK01FTU9SWQoreworICAgIElSQU0gKFJXWCkgOiBvcmcgPSAweDgwMDAwMCwgbGVuID0gMHgyMDAwMDAKKyAgICBERFIgOiBvcmcgPSAweDgwMDAwMDAwLCBsZW4gPSAweDEwMDAwMDAwCit9CisKKy8qCisgKiBMaW5rZXIgY29tbWFuZCBmaWxlIGNvbnRyaWJ1dGlvbnMgZnJvbSBhbGwgbG9hZGVkIHBhY2thZ2VzOgorICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLmNvcmV2ZXJzIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5nbG9iYWwgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnNoZWxmIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5zcGVjIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5pbnRlcm4uZ2VuIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5pbnRlcm4uY21kIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5yb3YgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20gY2hhcmxpZS5zcXJ0bGliIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHRpLmNhdGFsb2cuYzYwMDAgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnBsYXRmb3JtIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5jZmcgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20gdGkucGxhdGZvcm1zLnNpbTY0UHh4IChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5ydW50aW1lIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHRpLnRhcmdldHMucnRzNjAwMCAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSBhY21lLnV0aWxzLmNsb2NrcyAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSBhY21lLnV0aWxzIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIGNoYXJsaWUuc3FydGxpYi50ZXN0IChudWxsKTogKi8KKworCisvKgorICogc3ltYm9saWMgYWxpYXNlcyBmb3IgbnVtZXJpYyBjb25zdGFudHMgb3Igc3RhdGljIGluc3RhbmNlIG9iamVjdHMKKyAqLworX3hkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MgPSAxOworX3hkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DID0gMTsKKworU0VDVElPTlMKK3sKKworCisgICAgLnRleHQ6IGxvYWQgPj4gSVJBTQorICAgIC5zd2l0Y2g6IGxvYWQgPj4gRERSCisgICAgLnN0YWNrOiBsb2FkID4gRERSCisgICAgLmFyZ3M6IGxvYWQgPiBERFIgYWxpZ24gPSAweDQsIGZpbGwgPSAwIHtfYXJnc2l6ZSA9IDB4MjAwOyB9CisgICAgeGRjLm5vbG9hZDogbG9hZCA+PiBERFIsIHR5cGUgPSBOT0xPQUQKKyAgICAuc3lzbWVtOiBsb2FkID4gRERSCisgICAgLmZhcjogbG9hZCA+PiBERFIKKyAgICAuZGF0YTogbG9hZCA+PiBERFIKKyAgICAuY2luaXQ6IGxvYWQgPiBERFIKKyAgICAuYnNzOiBsb2FkID4gRERSCisgICAgLmNvbnN0OiBsb2FkID4+IEREUgorICAgIC5waW5pdDogbG9hZCA+IEREUgorICAgIC5jaW86IGxvYWQgPj4gRERSCisKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmU5ZTUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmMKQEAgLTAsMCArMSw3Nzk1IEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjZGVmaW5lIF9fbmVzdGVkX18KKyNkZWZpbmUgX19jb25maWdfXworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCisvKgorICogPT09PT09PT0gR0VORVJBVEVEIFNFQ1RJT05TID09PT09PT09CisgKiAgICAgCisgKiAgICAgTU9EVUxFIElOQ0xVREVTCisgKiAgICAgCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTlRFUk5BTFMKKyAqICAgICA8bW9kdWxlLW5hbWU+IElOSEVSSVRTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBWVEFCTEUKKyAqICAgICA8bW9kdWxlLW5hbWU+IFBBVENIIFRBQkxFCisgKiAgICAgPG1vZHVsZS1uYW1lPiBERUNMQVJBVElPTlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IE9CSkVDVCBPRkZTRVRTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBURU1QTEFURVMKKyAqICAgICA8bW9kdWxlLW5hbWU+IElOSVRJQUxJWkVSUworICogICAgIDxtb2R1bGUtbmFtZT4gRlVOQ1RJT04gU1RVQlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFBST1hZIEJPRFkKKyAqICAgICA8bW9kdWxlLW5hbWU+IE9CSkVDVCBERVNDUklQVE9SCisgKiAgICAgPG1vZHVsZS1uYW1lPiBTWVNURU0gRlVOQ1RJT05TCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQUkFHTUFTCisgKiAgICAgCisgKiAgICAgSU5JVElBTElaQVRJT04gRU5UUlkgUE9JTlQKKyAqICAgICBQUk9HUkFNIEdMT0JBTFMKKyAqICAgICBDTElOSyBESVJFQ1RJVkVTCisgKi8KKworCisvKgorICogPT09PT09PT0gTU9EVUxFIElOQ0xVREVTID09PT09PT09CisgKi8KKworI2luY2x1ZGUgPGFjbWUvdXRpbHMvQmVuY2guaD4KKyNpbmNsdWRlIDxhY21lL3V0aWxzL2Nsb2Nrcy9DbG9ja1N0ZC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Fzc2VydC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0NvcmUuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9EZWZhdWx0cy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0RpYWdzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9HYXRlLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvR2F0ZU51bGwuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9IZWFwU3RkLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTG9nLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTWFpbi5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL01lbW9yeS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N0YXJ0dXAuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXNNaW4uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UZXh0Lmg+CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2ggSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoX1BDbG9jayBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4gYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX18gYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX18gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX18geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX18geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WOworCisvKiBPYmplY3RfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18geworICAgIGNvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX0Z4bnNfXyogX19meG5zOworfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIE9iamVjdF9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHsKKyAgICBjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX0Z4bnNfXyogX19meG5zOworICAgIHhkY19ydW50aW1lX01lbW9yeV9TaXplIHJlbWFpblNpemU7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgc3RhcnRTaXplOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX18geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19yb290X19WOworCisvKiA8LS0geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0ICovCisKKy8qIE9iamVjdCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworLyogPC0tIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0ICovCisKKy8qIE9iamVjdCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIDwtLSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBJTkhFUklUUyA9PT09PT09PQorICovCisKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQyA9IHswfTsKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DID0geyh2b2lkKikmeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0N9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTkhFUklUUyA9PT09PT09PQorICovCisKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTkhFUklUUyA9PT09PT09PQorICovCisKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MgPSB7KHZvaWQqKSZ4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBJTkhFUklUUyA9PT09PT09PQorICovCisKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MgPSB7KHZvaWQqKSZ4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ307CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfRnhuc19fIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJmFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX0ZYTlNfX0MuX19zZnhucywgLyogX19zeXNwICovCisgICAgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRSwKKyAgICB7CisgICAgICAgIE5VTEwsIC8qIF9fY3JlYXRlICovCisgICAgICAgIE5VTEwsIC8qIF9fZGVsZXRlICovCisgICAgICAgIE5VTEwsIC8qIF9fbGFiZWwgKi8KKyAgICAgICAgMHg4MDEzLCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9GeG5zX18geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MuX19zZnhucywgLyogX19zeXNwICovCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UsCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UsCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UsCisgICAgeworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1MsCisgICAgICAgIDB4ODAwOCwgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX0Z4bnNfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQywgLyogYmFzZV9fICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UsCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FLAorICAgIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSwKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FLAorICAgIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TLAorICAgICAgICAweDgwMGMsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9TeXNNaW5fRnhuc19fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZ4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSwKKyAgICB7CisgICAgICAgIE5VTEwsIC8qIF9fY3JlYXRlICovCisgICAgICAgIE5VTEwsIC8qIF9fZGVsZXRlICovCisgICAgICAgIE5VTEwsIC8qIF9fbGFiZWwgKi8KKyAgICAgICAgMHg4MDBmLCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1N0cmluZyBiZWdpbk1zZzsKKyAgICB4ZGNfSW50IGJlZ2luQ2xvY2s7CisgICAgeGRjX0ludCBvdmVyaGVhZDsKK30gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfU3RhdGVfXyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2hfUENsb2NrIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1VJbnQxNiBjb3VudDsKK30geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX3RhYmxlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVlsxXTsKKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19ydW50aW1lX01lbW9yeV9TaXplIHJlbWFpblJUU1NpemU7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19TaXplVCBtYXhEZWZhdWx0VHlwZUFsaWduOworfSB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfSW50KiBzdGF0ZVRhYjsKKyAgICB4ZGNfQm9vbCBleGVjRmxhZzsKKyAgICB4ZGNfQm9vbCBydHNEb25lRmxhZzsKK30geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UgKi8KK2V4dGVybiB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSh4ZGNfSW50KTsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FKHhkY19JbnQpOworCisvKiAtLT4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRSAqLworZXh0ZXJuIHhkY19JbnQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRSh4ZGNfSW50KTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BWzNdOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FbM107CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fIHsKKyAgICBfX1RBX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfX291dGJ1ZiBvdXRidWY7CisgICAgeGRjX1VJbnQgb3V0aWR4OworICAgIHhkY19Cb29sIHdyYXBwZWQ7Cit9IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXzsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fb3V0YnVmIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0FbMTAyNF07CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0kgKi8KK2V4dGVybiB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JKHhkY19DaGFyKix4ZGNfVUludCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fIHsKKyAgICBfX1RBX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfX2F0ZXhpdEhhbmRsZXJzIGF0ZXhpdEhhbmRsZXJzOworICAgIHhkY19JbnQgbnVtQXRleGl0SGFuZGxlcnM7CisgICAgeGRjX0ludCBleGl0U3RhdHVzOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX187CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fYXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BWzhdOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JICovCitleHRlcm4geGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKHhkY19DaGFyKioseGRjX0NoYXIqKix4ZGNfVmFMaXN0LHhkY19ydW50aW1lX1N5c3RlbV9QYXJzZURhdGEqKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfUHRyIGNoYXJCYXNlOworICAgIHhkY19QdHIgbm9kZUJhc2U7Cit9IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1RleHRfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FbNjk3XTsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X25vZGVUYWIgeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BWzIxXTsKKworCisvKgorICogPT09PT09PT0geGRjLmNmZy5Qcm9ncmFtIFRFTVBMQVRFID09PT09PT09CisgKi8KKworLyoKKyAqICA9PT09PT09PSBfX0FTTV9fID09PT09PT09CisgKiAgRGVmaW5lIHRoaXMgcHJvZ3JhbSdzIHBhY2thZ2UtcGF0aCByZWxhdGl2ZSBhc3NlbWJseSBkaXJlY3RvcnkKKyAqLworX19GQVJfXyBjaGFyICpfX0FTTV9fID0gIkAoIylfX0FTTV9fID0gRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVyI7CisKKy8qCisgKiAgPT09PT09PT0gX19JU0FfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgSVNBIG9mIHRoaXMgZXhlY3V0YWJsZS4gIFRoaXMgc3ltYm9sIGlzIHVzZWQgYnkgcGxhdGZvcm0KKyAqICBzcGVjaWZpYyAiZXhlYyIgY29tbWFuZHMgdGhhdCBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgSVNBOyBlLmcuLCBnZGIKKyAqLworX19GQVJfXyBjaGFyICpfX0lTQV9fID0gIkAoIylfX0lTQV9fID0geDg2IjsKKworLyoKKyAqICA9PT09PT09PSBfX1BMQVRfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgcGxhdGZvcm0gdGhhdCBjYW4gcnVuIHRoaXMgZXhlY3V0YWJsZS4gIFRoaXMKKyAqICBzeW1ib2wgaXMgdXNlZCBieSBwbGF0Zm9ybSBpbmRlcGVuZGVudCAiZXhlYyIgY29tbWFuZHMKKyAqLworX19GQVJfXyBjaGFyICpfX1BMQVRfXyA9ICJAKCMpX19QTEFUX18gPSBob3N0LnBsYXRmb3Jtcy5QQyI7CisKKy8qCisgKiAgPT09PT09PT0gX19UQVJHX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHRhcmdldCB1c2VkIHRvIGJ1aWxkIHRoaXMgZXhlY3V0YWJsZS4KKyAqLworX19GQVJfXyBjaGFyICpfX1RBUkdfXyA9ICJAKCMpX19UQVJHX18gPSBnbnUudGFyZ2V0cy5NaW5ndyI7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fRih2b2lkKSB7CisgICAgcmV0dXJuICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWIgPT0gMCB8fCAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiWzBdIDwgMDsKK30KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMV0gPCAwOworfQoreGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMl0gPCAwOworfQorCisKK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSh2b2lkKQoreworICAgIHhkY19JbnQgc3RhdGVbNF07CisgICAgeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0Moc3RhdGUsIDMpOworfQorCisjaWZkZWYgX190aV9fCisjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JKTsKKyNlbmRpZgorCisvKgorICogID09PT09PT09IHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBib290c3RyYXAgaW5pdGlhbGl6YXRpb24gY29kZSBhcyBlYXJseSBhcworICogIHBvc3NpYmxlIGluIHRoZSBzdGFydHVwIHByb2Nlc3MuICBUaGlzIGZ1bmN0aW9uIHNpbXBseSBjYWxscyBhbnkKKyAqICBjb25maWd1cmVkIG51bGwuCisgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kodm9pZCkKK3sKK30KKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBURU1QTEFURSA9PT09PT09PQorICovCisKKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UeXBlcy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1RleHQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Bc3NlcnQuaD4KKworLyoKKyAqICA9PT09PT09PSBTeXN0ZW1fcHJpbnRmRXh0ZW5kX19JID09PT09PT09CisgKiAgVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgb3B0aW9uYWwgZXh0ZW5kZWQgZm9ybWF0cyBvZiBwcmludGYuCisgKi8KK0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKENoYXIgKipwYnVmLCBDaGFyICoqcGZtdCwgCisgICAgVmFMaXN0IHZhLCB4ZGNfcnVudGltZV9TeXN0ZW1fUGFyc2VEYXRhICpwYXJzZSkKK3sKKyAgICBDaGFyICAgICpmbXQgPSAqcGZtdDsKKyAgICBJbnQgICAgIHJlczsKKyAgICBDaGFyICAgIGM7CisgICAgQm9vbCAgICBmb3VuZCA9IEZBTFNFOworICAgIAorICAgIHJlcyA9IDA7CisKKyAgICBjID0gKmZtdCsrOworICAgICpwZm10ID0gKnBmbXQgKyAxOworCisgICAgCisgICAgaWYgKGMgPT0gJyQnKSB7CisgICAgICAgIGMgPSAqZm10Kys7CisgICAgICAgICpwZm10ID0gKnBmbXQgKyAxOworICAgICAgICBpZiAoYyA9PSAnTCcpIHsKKyAgICAgICAgICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsICpsYWIgPSBwYXJzZS0+YUZsYWcgPyAKKyAgICAgICAgICAgICAgICAoeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwgKilpYXJnVG9QdHIodmFfYXJnKHZhLCBJQXJnKSkgOgorICAgICAgICAgICAgICAgICh4ZGNfcnVudGltZV9UeXBlc19MYWJlbCAqKXZhX2FyZyh2YSwgdm9pZCAqKTsKKyAgICAgICAgICAgIHJlcyArPSB4ZGNfcnVudGltZV9UZXh0X3B1dExhYihsYWIsIHBidWYsIHBhcnNlLT5wcmVjaXMpOworICAgICAgICAgICAgcGFyc2UtPmxlbiA9IDA7CisgICAgICAgICAgICBmb3VuZCA9IFRSVUU7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGlmIChmb3VuZCA9PSBGQUxTRSkgeworICAgICAgICAgLyogb3RoZXIgY2hhcmFjdGVyIChsaWtlICUpIGNvcHkgdG8gb3V0cHV0ICovCisgICAgICAgICAqKHBhcnNlLT5wdHIpID0gYzsKKyAgICAgICAgIHBhcnNlLT5sZW4gPSAxOworICAgIH0KKworICAgIHJldHVybiAocmVzKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KK2V4dGVybiBpbnQgSE9TVHdyaXRlKGludCwgY2hhciAqLCB1bnNpZ25lZCk7CisjZWxzZQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjZW5kaWYKKworLyoKKyAqICA9PT09PT09PSBTeXNNaW5fb3V0cHV0X19JID09PT09PT09CisgKiAgSE9TVFdyaXRlIG9ubHkgd3JpdGVzIGEgbWF4IG9mIE4gY2hhcnMgYXQgYSB0aW1lLiBUaGUgYW1vdW50IGl0IHdyaXRlcworICogIGlzIHJldHVybmVkLiBUaGlzIGZ1bmN0aW9uIGxvb3BzIHVudGlsIHRoZSBlbnRpcmUgYnVmZmVyIGlzIHdyaXR0ZW4uCisgKiAgQmVpbmcgYSBzdGF0aWMgZnVuY3Rpb24gYWxsb3dzIGl0IHRvIGNvbmRpdGlvbmFsbHkgY29tcGlsZSBvdXQuCisgKi8KK1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSShDaGFyICpidWYsIFVJbnQgc2l6ZSkKK3sKKyNpZmRlZiBfX3RpX18KKyAgICBJbnQgcHJpbnRDb3VudDsKKyAgICAKKyAgICB3aGlsZSAoc2l6ZSAhPSAwKSB7CisgICAgICAgIHByaW50Q291bnQgPSBIT1NUd3JpdGUoMSwgYnVmLCBzaXplKTsKKyAgICAgICAgaWYgKChwcmludENvdW50IDw9IDApIHx8IChwcmludENvdW50ID4gc2l6ZSkpIHsKKyAgICAgICAgICAgIGJyZWFrOyAgLyogZW5zdXJlIHdlIG5ldmVyIGdldCBzdHVjayBpbiBhbiBpbmZpbml0ZSBsb29wICovCisgICAgICAgIH0KKyAgICAgICAgc2l6ZSAtPSBwcmludENvdW50OworICAgICAgICBidWYgPSBidWYgKyBwcmludENvdW50OworICAgIH0gICAgCisjZWxzZQorICAgIGZ3cml0ZShidWYsIDEsIHNpemUsIHN0ZG91dCk7CisjZW5kaWYKK30KKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKy8qCisgKiAgPT09PT09PT0geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIGlzIGluZGlyZWN0bHkgY2FsbGVkIHdpdGhpbiBUZXh0LmMgdGhyb3VnaAorICogIHRoZSB2aXNpdFJvcGVGeG4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgb2YgeGRjLnJ1bnRpbWUuVGV4dC4KKyAqLworVm9pZCB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSh4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLAorICAgIHhkY19GeG4gdmlzRnhuLCB4ZGNfUHRyIHZpc1N0YXRlKQoreworICAgIHhkY19TdHJpbmcgc3RhY2tbNF07CisgICAgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKHJvcGUsIHZpc0Z4biwgdmlzU3RhdGUsIHN0YWNrKTsKK30KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX18gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCithY21lX3V0aWxzX0JlbmNoX01vZHVsZV9TdGF0ZV9fIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAwLCAgLyogYmVnaW5Nc2cgKi8KKyAgICAoeGRjX0ludCkweDAsICAvKiBiZWdpbkNsb2NrICovCisgICAgKHhkY19JbnQpMHgwLCAgLyogb3ZlcmhlYWQgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2sgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtcyBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMTQ7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9iaiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44IGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4biBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19jb3VudCBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2YgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X190YWJsZSBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBlbmFibGVGbGFnX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWcgYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DID0gMDsKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaF9QQ2xvY2sgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCithY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfXyBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2sgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9iaiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXMgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAxMzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjggYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2YgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX18geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwMjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogRV9hc3NlcnRGYWlsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCkzMDkpIDw8IDE2IHwgMCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwMzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEFfaW5pdGlhbGl6ZWRQYXJhbXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtcyB4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMSkgPDwgMTYgfCAxNik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX18geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDQ7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBzZXRNYXNrRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MgPSAwOworCisvKiBkaWN0QmFzZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2UgeGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSkwKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICh4ZGNfVUludDE2KTB4MCwgIC8qIGNvdW50ICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBFX2dlbmVyaWNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpYyB4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCkzMzEpIDw8IDE2IHwgMCk7CisKKy8qIEVfbWVtb3J5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeSB4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTM0OSkgPDwgMTYgfCAwKTsKKworLyogcG9saWN5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9wb2xpY3kgeGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DID0geGRjX3J1bnRpbWVfRXJyb3JfVU5XSU5EOworCisvKiByYWlzZUhvb2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9vayB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2spKCh4ZGNfRnhuKXhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKSk7CisKKy8qIG1heERlcHRoX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aCB4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQyA9ICh4ZGNfVUludDE2KTB4MTA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DOworCisvKiBPYmplY3RfX1BBUkFNU19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MgPSB7CisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAwLCAvKiBfX3NlbGYgKi8KKyAgICAwLCAvKiBfX2Z4bnMgKi8KKyAgICAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyopJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLl9faXBybXMsIC8qIGluc3RhbmNlICovCisgICAgeworICAgICAgICBzaXplb2YgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAgICAgMCwgIC8qIG5hbWUgKi8KKyAgICB9LCAgLyogaW5zdGFuY2UgKi8KK307CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WID0ge3sKKyAgICB7JnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgIC8qIGxpbmsubmV4dCAqLworICAgICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmt9LCAgLyogbGluay5wcmV2ICovCisgICAgKFVDaGFyKikwLCAgLyogaW5zdEFyckJlZyAqLworICAgIChVQ2hhciopKDArLTEpLCAgLyogaW5zdEFyckVuZCAqLworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18pLCAgLyogaW5zdFNpemUgKi8KKyAgICAwLCAgLyogY3VyICovCisgICAgMCwgIC8qIGRpYWdzTWFzayAqLworfX07CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA4OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQyA9IHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyk7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQzsKKworLyogT2JqZWN0X19QQVJBTVNfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyA9IHsKKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgMCwgLyogX19zZWxmICovCisgICAgMCwgLyogX19meG5zICovCisgICAgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLl9faXBybXMsIC8qIGluc3RhbmNlICovCisgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MCkpLCAgLyogc2l6ZSAqLworICAgIHsKKyAgICAgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgICAgIDAsICAvKiBuYW1lICovCisgICAgfSwgIC8qIGluc3RhbmNlICovCit9OworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YgPSB7eworICAgIHsmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssICAvKiBsaW5rLm5leHQgKi8KKyAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmt9LCAgLyogbGluay5wcmV2ICovCisgICAgKFVDaGFyKil4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1YsICAvKiBpbnN0QXJyQmVnICovCisgICAgKFVDaGFyKikoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WKzApLCAgLyogaW5zdEFyckVuZCAqLworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyksICAvKiBpbnN0U2l6ZSAqLworICAgIDAsICAvKiBjdXIgKi8KKyAgICAwLCAgLyogZGlhZ3NNYXNrICovCit9fTsKKworLyogT2JqZWN0X190YWJsZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1ZbMV0gPSB7CisgICAgey8qIGluc3RhbmNlIzAgKi8KKyAgICAgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLAorICAgICAgICAoKHhkY19VQXJnKSgodm9pZCopMHgxMDAwKSksICAvKiByZW1haW5TaXplICovCisgICAgICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDEwMDApKSwgIC8qIHN0YXJ0U2l6ZSAqLworICAgIH0sCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoKHhkY19VQXJnKSgodm9pZCopMHgwKSksICAvKiByZW1haW5SVFNTaXplICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBjOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DID0gMTsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MgPSBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyk7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MgPSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1Y7CisKKy8qIEVfbm9SVFNNZW1vcnlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeSB4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCk0MjEpIDw8IDE2IHwgMCk7CisKKy8qIEFfemVyb1NpemVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpOTUpIDw8IDE2IHwgMTYpOworCisvKiBBX2ludmFsaWRUb3RhbEZyZWVTaXplX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTE0MCkgPDwgMTYgfCAxNik7CisKKy8qIEFfaW52YWxpZEFsaWdubWVudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMjAxKSA8PCAxNiB8IDE2KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIExfY29uc3RydWN0X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTQ2OCkgPDwgMTYgfCA0KTsKKworLyogTF9jcmVhdGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NyZWF0ZSB4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNDkyKSA8PCAxNiB8IDQpOworCisvKiBMX2Rlc3RydWN0X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk1MTMpIDw8IDE2IHwgNCk7CisKKy8qIExfZGVsZXRlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZWxldGUgeGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTUzMikgPDwgMTYgfCA0KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX01haW5fTW9kdWxlX18geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBhOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICh4ZGNfU2l6ZVQpMHg0LCAgLyogbWF4RGVmYXVsdFR5cGVBbGlnbiAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBiOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBkZWZhdWx0SGVhcEluc3RhbmNlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZSB4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyA9ICh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVlswXTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICgoeGRjX0ludCopMCksICAvKiBzdGF0ZVRhYiAqLworICAgIDAsICAvKiBleGVjRmxhZyAqLworICAgIDAsICAvKiBydHNEb25lRmxhZyAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BWzNdID0geworICAgICgoeGRjX0ludCgqKSh4ZGNfSW50KSkoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKSksICAvKiBbMF0gKi8KKyAgICAoKHhkY19JbnQoKikoeGRjX0ludCkpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSkpLCAgLyogWzFdICovCisgICAgKCh4ZGNfSW50KCopKHhkY19JbnQpKSgoeGRjX0Z4bilhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FKSksICAvKiBbMl0gKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVszXSA9IHsKKyAgICAxLCAgLyogWzBdICovCisgICAgMSwgIC8qIFsxXSAqLworICAgIDAsICAvKiBbMl0gKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGQ7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBtYXhQYXNzZXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzIHhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DID0gKHhkY19JbnQpMHgyMDsKKworLyogZmlyc3RGeG5zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQyA9IHswLCAwfTsKKworLyogbGFzdEZ4bnNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyA9IHswLCAwfTsKKworLyogc3RhcnRNb2RzRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4biB4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc19fSSkpOworCisvKiBleGVjSW1wbF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCkoKHhkY19GeG4peGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JKSk7CisKKy8qIHNmeG5UYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIpeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BKTsKKworLyogc2Z4blJ0c19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyl4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfX291dGJ1ZiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BWzEwMjRdOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQSwgIC8qIG91dGJ1ZiAqLworICAgICh4ZGNfVUludCkweDAsICAvKiBvdXRpZHggKi8KKyAgICAwLCAgLyogd3JhcHBlZCAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBmOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBidWZTaXplX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZSB4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyA9ICh4ZGNfU2l6ZVQpMHg0MDA7CisKKy8qIGZsdXNoQXRFeGl0X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DID0gMTsKKworLyogb3V0cHV0RnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuKTApOworCisvKiBvdXRwdXRGdW5jX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYyB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JKSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0FbOF0gPSB7CisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFswXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbMV0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzJdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFszXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbNF0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzVdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs2XSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbN10gKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0EsICAvKiBhdGV4aXRIYW5kbGVycyAqLworICAgICh4ZGNfSW50KTB4MCwgIC8qIG51bUF0ZXhpdEhhbmRsZXJzICovCisgICAgKHhkY19JbnQpMHhjYWZlLCAgLyogZXhpdFN0YXR1cyAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBlOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBBX2Nhbm5vdEZpdEludG9BcmdfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmcgeGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkyNjEpIDw8IDE2IHwgMTYpOworCisvKiBtYXhBdGV4aXRIYW5kbGVyc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQyA9ICh4ZGNfSW50KTB4ODsKKworLyogZXh0ZW5kRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuIHhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1RleHRfTW9kdWxlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoKHhkY19QdHIpKCh2b2lkKikmeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzBdKSksICAvKiBjaGFyQmFzZSAqLworICAgICgoeGRjX1B0cikoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FbMF0pKSwgIC8qIG5vZGVCYXNlICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FbNjk3XSA9IHsKKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzBdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsyXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs4XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTBdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTJdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMTNdICovCisgICAgKHhkY19DaGFyKTB4NTAsICAvKiBbMTRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTVdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTddICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMThdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTldICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMjBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMjJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjNdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjRdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMzBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzFdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMzJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzNdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMzRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzVdICovCisgICAgKHhkY19DaGFyKTB4NTAsICAvKiBbMzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzddICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzldICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNDBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDJdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDVdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDZdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFs1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFs3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs3N10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFs3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFs4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs4N10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFs4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs5M10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzk0XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzk1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzk2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzk3XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzk4XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzk5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzEwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsxMDFdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMTAyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzEwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxMDRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTA1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzEwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMDddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTA4XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsxMTBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTExXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzExMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxMTNdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMTE0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzExNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMTZdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMTE3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzExOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFsxMTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTIwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMjJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTIzXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzEyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMjVdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTI2XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzEyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMjhdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTI5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzEzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxMzFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTMyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFsxMzRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTM1XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzEzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFsxMzddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTM4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMTM5XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzE0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNDFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTQyXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzE0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFsxNDRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTQ1XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzE0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNDddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTQ4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxNTBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTUxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxNTNdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMTU0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNTZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTU3XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzE1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNTldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTYwXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzE2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NiwgIC8qIFsxNjJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTYzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNjVdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMTY2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxNjhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTY5XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxNzFdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTcyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsxNzRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTc1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNzddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTc4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxODBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTgxXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFsxODNdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTg0XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxODZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTg3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxODldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTkwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxOTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTkzXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzE5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxOTVdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTk2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxOThdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTk5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMjAwXSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzIwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMDJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjAzXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzIwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFsyMDVdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjA2XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzIwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsyMDhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjA5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzIxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMTFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjEyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzIxM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMTRdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbMjE1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyMTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjE4XSAqLworICAgICh4ZGNfQ2hhcikweDcxLCAgLyogWzIxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFsyMjBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjIxXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzIyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyMjNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjI0XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzIyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMjZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjI3XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzIyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyMjldICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMjMwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzIzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFsyMzJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjMzXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzIzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyMzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjM2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzIzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyMzhdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjM5XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzI0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNDFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjQyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNDRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjQ1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzI0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyNDddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjQ4XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzI0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNTBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjUxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNTNdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjU0XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzI1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyNTZdICovCisgICAgKHhkY19DaGFyKTB4NzcsICAvKiBbMjU3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyNTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFsyNjBdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMjYxXSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzI2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsyNjNdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjY0XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNjZdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjY3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NiwgIC8qIFsyNjldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjcwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OSwgIC8qIFsyNzJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjczXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyNzVdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMjc2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzI3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsyNzhdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMjc5XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyODFdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjgyXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzI4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyODRdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjg1XSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzI4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFsyODddICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMjg4XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzI4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyOTBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjkxXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFsyOTNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjk0XSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzI5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyOTZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjk3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsyOTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzAwXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzMwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszMDJdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMzAzXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzMwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMDVdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMzA2XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzMwN10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzMwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszMDldICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzEwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMTJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzEzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzMxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMTVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzE2XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzMxN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszMThdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzE5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzMyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMjFdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMzIyXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzMyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzI1XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzMyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMjddICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzI4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzMzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFszMzFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzMyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzMzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMzRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzM1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFszMzddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzM4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNDBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQxXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNDNdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMzQ0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszNDZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzQ3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzQ4XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFszNTBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMzUxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNTNdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzU0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFszNTZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzU3XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzM1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNTldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzYwXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzM2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFszNjJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzYzXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzM2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszNjVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzY2XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzM2N10gKi8KKyAgICAoeGRjX0NoYXIpMHgzZCwgIC8qIFszNjhdICovCisgICAgKHhkY19DaGFyKTB4MzAsICAvKiBbMzY5XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzM3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszNzFdICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbMzcyXSAqLworICAgICh4ZGNfQ2hhcikweDJjLCAgLyogWzM3M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNzRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzc1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFszNzddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzc4XSAqLworICAgICh4ZGNfQ2hhcikweDNkLCAgLyogWzM3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszODBdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMzgxXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzgyXSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzM4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszODRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzg1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFszODddICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbMzg4XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOTBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzkxXSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzM5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszOTNdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMzk0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFszOTZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzk3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszOTldICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDAwXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzQwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0MDJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDAzXSAqLworICAgICh4ZGNfQ2hhcikweDc3LCAgLyogWzQwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0MDVdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDA2XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0MDhdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDA5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzQxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs0MTFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDEyXSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzQxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MTRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDE1XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs0MTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNDE4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1NCwgIC8qIFs0MjFdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDIyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQyM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MjRdICovCisgICAgKHhkY19DaGFyKTB4NTIsICAvKiBbNDI1XSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzQyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs0MjddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDI4XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MzBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDMxXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MzNdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNDM0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MzZdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDM3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MzldICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNDQwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0NDJdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDQzXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzQ0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NDVdICovCisgICAgKHhkY19DaGFyKTB4NDUsICAvKiBbNDQ2XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzQ0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0NDhdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNDQ5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQ1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0NTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDUyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MCwgIC8qIFs0NTRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDU1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQ1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs0NTddICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDU4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs0NjBdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNDYxXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQ2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0NjNdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDY0XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQ2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs0NjZdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0NjddICovCisgICAgKHhkY19DaGFyKTB4M2MsICAvKiBbNDY4XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0NzBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDcxXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0NzNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDc0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQ3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0NzZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDc3XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQ3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0NzldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDgwXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzQ4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0ODJdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNDgzXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQ4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs0ODVdICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNDg2XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzQ4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0ODhdICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNDg5XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzQ5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQ5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYywgIC8qIFs0OTJdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDkzXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0OTVdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDk2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0OThdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDk5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzUwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MDFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNTAyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUwM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1MDRdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTA1XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzUwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs1MDddICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTA4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzUwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs1MTBdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNTExXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTEyXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUxM10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MTRdICovCisgICAgKHhkY19DaGFyKTB4M2UsICAvKiBbNTE1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs1MTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTE4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzUxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1MjBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTIxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzUyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs1MjNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTI0XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzUyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MjZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNTI3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzUyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1MjldICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNTMwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTMxXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MzNdICovCisgICAgKHhkY19DaGFyKTB4M2UsICAvKiBbNTM0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs1MzZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTM3XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzUzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MzldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTQwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs1NDJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTQzXSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzU0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1NDVdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTQ2XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzU0N10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFs1NDldICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTUwXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzU1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs1NTJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NTNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTU0XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzU1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs1NTZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTU3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzU1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs1NTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTYwXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzU2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFs1NjNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTY0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NjZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTY3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MywgIC8qIFs1NzBdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNTcxXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NzNdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NzRdICovCisgICAgKHhkY19DaGFyKTB4NDQsICAvKiBbNTc1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFs1NzddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTc4XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzU3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs1ODBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTgxXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg0NCwgIC8qIFs1ODRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNTg1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzU4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs1ODddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTg4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTg5XSAqLworICAgICh4ZGNfQ2hhcikweDQ1LCAgLyogWzU5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OTFdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTkyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzU5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OTRdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1OTVdICovCisgICAgKHhkY19DaGFyKTB4NDcsICAvKiBbNTk2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzU5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1OThdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTk5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjAwXSAqLworICAgICh4ZGNfQ2hhcikweDQ3LCAgLyogWzYwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MDJdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjAzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZSwgIC8qIFs2MDVdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNjA2XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzYwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2MDhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MDldICovCisgICAgKHhkY19DaGFyKTB4NGMsICAvKiBbNjEwXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzYxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs2MTJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MTNdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNjE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs2MTZdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjE3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjE4XSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzYxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MjBdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNjIxXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzYyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs2MjNdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNjI0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjI1XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzYyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MjddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjI4XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzYyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2MzBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjMxXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzYzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2MzRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjM1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs2MzddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjM4XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzYzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs2NDBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NDFdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjQyXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzY0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs2NDRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjQ1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs2NDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NDhdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjQ5XSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzY1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs2NTFdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNjUyXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzY1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2NTRdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NTVdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNjU2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFs2NThdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjU5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjYwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzY2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs2NjJdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNjYzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs2NjVdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NjZdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNjY3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs2NjldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjcwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzY3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs2NzJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NzNdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjc0XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzY3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2NzZdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjc3XSAqLworICAgICh4ZGNfQ2hhcikweDZiLCAgLyogWzY3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs2NzldICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNjgwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjgxXSAqLworICAgICh4ZGNfQ2hhcikweDQzLCAgLyogWzY4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2ODNdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjg0XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzY4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YiwgIC8qIFs2ODZdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjg3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs2ODldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2OTBdICovCisgICAgKHhkY19DaGFyKTB4NDIsICAvKiBbNjkxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2OTNdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjk0XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzY5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY5Nl0gKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVsyMV0gPSB7CisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDAsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MCwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFswXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMjUsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjJhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzFdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjMzLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzJdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjNhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzNdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjNmLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzRdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjQ4LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzVdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjRlLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzZdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjU0LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzddICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjU5LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzhdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjYyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzldICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjY2LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzEwXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI2YiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxMV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNzIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTJdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjdhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzEzXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI4MiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxNF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyODksICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTVdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjkwLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE2XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHgyOTUsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjliLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE3XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDExLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDJhMiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxOF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAxMiwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyYWEsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTldICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMTEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MmIzLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzIwXSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAxMDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIG5hbWVVbmtub3duX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duIHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MgPSAie3Vua25vd24taW5zdGFuY2UtbmFtZX0iOworCisvKiBuYW1lRW1wdHlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5IHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DID0gIntlbXB0eS1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIG5hbWVTdGF0aWNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpYyB4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MgPSAie3N0YXRpYy1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIGlzTG9hZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkIHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MgPSAxOworCisvKiBjaGFyVGFiX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiKXhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSk7CisKKy8qIG5vZGVUYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X25vZGVUYWIpeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BKTsKKworLyogY2hhckNudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250IHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQyA9ICh4ZGNfSW50MTYpMHgyYjk7CisKKy8qIG5vZGVDbnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZUNudCB4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MgPSAoeGRjX0ludDE2KTB4MTU7CisKKy8qIHZpc2l0Um9wZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kpKTsKKworLyogdmlzaXRSb3BlRnhuMl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMikoKHhkY19GeG4peGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKSk7CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2ggRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBiZWdpbl9fRSAqLworeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRSggeGRjX1N0cmluZyBtc2cgKSAKK3sKKyAgICBhY21lX3V0aWxzX0JlbmNoX2JlZ2luX19GKG1zZyk7Cit9CisKKy8qIGVuZF9fRSAqLworeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9lbmRfX0UoIHZvaWQgKSAKK3sKKyAgICBhY21lX3V0aWxzX0JlbmNoX2VuZF9fRigpOworfQorCisvKiBNb2R1bGVfc3RhcnR1cCAqLworeGRjX0ludCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9zdGFydHVwX19FKCB4ZGNfSW50IHN0YXRlICkKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRihzdGF0ZSk7Cit9CisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZ2V0VGltZV9fRSAqLworYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0YoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBzZXRNYXNrX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FKCB4ZGNfU3RyaW5nIGNvbnRyb2wgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19GKGNvbnRyb2wpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGNoZWNrX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GKGViKTsKK30KKworLyogZ2V0RGF0YV9fRSAqLworeGRjX3J1bnRpbWVfRXJyb3JfRGF0YSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0YoZWIpOworfQorCisvKiBnZXRDb2RlX19FICovCit4ZGNfVUludDE2IHhkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19GKGViKTsKK30KKworLyogZ2V0SWRfX0UgKi8KK3hkY19ydW50aW1lX0Vycm9yX0lkIHhkY19ydW50aW1lX0Vycm9yX2dldElkX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0YoZWIpOworfQorCisvKiBnZXRNc2dfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19GKGViKTsKK30KKworLyogZ2V0U2l0ZV9fRSAqLworeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0YoZWIpOworfQorCisvKiBpbml0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19GKGViKTsKK30KKworLyogcHJpbnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRihlYik7Cit9CisKKy8qIHJhaXNlWF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIsIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1vZCwgeGRjX1N0cmluZyBmaWxlLCB4ZGNfSW50IGxpbmUsIHhkY19ydW50aW1lX0Vycm9yX0lkIGlkLCB4ZGNfSUFyZyBhcmcxLCB4ZGNfSUFyZyBhcmcyICkgCit7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GKGViLCBtb2QsIGZpbGUsIGxpbmUsIGlkLCBhcmcxLCBhcmcyKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGVudGVyU3lzdGVtX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YoKTsKK30KKworLyogbGVhdmVTeXN0ZW1fX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0UoIHhkY19JQXJnIGtleSApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0Yoa2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRihxdWFsKTsKK30KKworLyogZW50ZXJfX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUgX19pbnN0ICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GKCh2b2lkKilfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSBfX2luc3QsIHhkY19JQXJnIGtleSApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19GKCh2b2lkKilfX2luc3QsIGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBmcmVlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0YoKHZvaWQqKV9faW5zdCwgYmxvY2ssIHNpemUpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0LCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRigodm9pZCopX19pbnN0LCBzdGF0cyk7Cit9CisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YoKHZvaWQqKV9faW5zdCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogaXNCbG9ja2luZ19fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GKCh2b2lkKilfX2luc3QpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBkb1ByaW50X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRSggeGRjX3J1bnRpbWVfTG9nX0V2ZW50UmVjKiBldlJlYyApIAoreworICAgIHhkY19ydW50aW1lX0xvZ19kb1ByaW50X19GKGV2UmVjKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBjYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GKGhlYXAsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9mcmVlX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRihoZWFwLCBibG9jaywgc2l6ZSk7Cit9CisKKy8qIGdldFN0YXRzX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgCit7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19GKGhlYXAsIHN0YXRzKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19JbnQgcXVhbCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0YoaGVhcCwgcXVhbCk7Cit9CisKKy8qIGdldE1heERlZmF1bHRUeXBlQWxpZ25fX0UgKi8KK3hkY19TaXplVCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRigpOworfQorCisvKiB2YWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19DaGFyIHZhbHVlLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgdmFsdWUsIGViKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGV4ZWNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRigpOworfQorCisvKiBydHNEb25lX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19GKCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GKHN0cik7Cit9CisKKy8qIGV4aXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRihzdGF0KTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRigpOworfQorCisvKiBwdXRjaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRihjaCk7Cit9CisKKy8qIHJlYWR5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GKCk7Cit9CisKKy8qIE1vZHVsZV9zdGFydHVwICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSggeGRjX0ludCBzdGF0ZSApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRihzdGF0ZSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GKHN0cik7Cit9CisKKy8qIGF0ZXhpdF9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX0F0ZXhpdEhhbmRsZXIgaGFuZGxlciApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19GKGhhbmRsZXIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0Yoc3RhdCk7Cit9CisKKy8qIHB1dGNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19GKGNoKTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRigpOworfQorCisvKiBwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRSggeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7Cit9CisKKy8qIHByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIGFwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0UoIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKK30KKworLyogYXByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRihmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogc3ByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworfQorCisvKiBzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiBhc3ByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7Cit9CisKKy8qIGFzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIHZwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19GKGZtdCwgdmEpOworfQorCisvKiBhdnByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRihmbXQsIHZhKTsKK30KKworLyogdnNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GKGJ1ZiwgZm10LCB2YSk7Cit9CisKKy8qIGF2c3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRihidWYsIGZtdCwgdmEpOworfQorCisvKiBNb2R1bGVfc3RhcnR1cCAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UoIHhkY19JbnQgc3RhdGUgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0Yoc3RhdGUpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogY29yZFRleHRfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Db3JkQWRkciBjb3JkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0YoY29yZCk7Cit9CisKKy8qIHJvcGVUZXh0X19FICovCit4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRihyb3BlKTsKK30KKworLyogbWF0Y2hSb3BlX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLCB4ZGNfU3RyaW5nIHBhdCwgeGRjX0ludCogbGVucCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRihyb3BlLCBwYXQsIGxlbnApOworfQorCisvKiBwdXRMYWJfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0UoIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0YobGFiLCBidWZwLCBsZW4pOworfQorCisvKiBwdXRNb2RfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0UoIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1pZCwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRihtaWQsIGJ1ZnAsIGxlbik7Cit9CisKKy8qIHB1dFNpdGVfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19FKCB4ZGNfcnVudGltZV9UeXBlc19TaXRlKiBzaXRlLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRihzaXRlLCBidWZwLCBsZW4pOworfQorCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoX1BDbG9jayBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBnZXRUaW1lX19FICovCithY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrX2dldFRpbWVfX0UoIHZvaWQgKQoreworICAgIHJldHVybiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9nZXRUaW1lKCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkdhdGVOdWxsICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyKXBhLCBzaXplb2YoeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2RlbGV0ZV9fUyggUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoaW5zdHApOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIGNvbnN0IHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoZHN0LCBzcmMsIHBzeiwgaXN6KTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGVfX2xhYmVsX19TKCBQdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5KHF1YWwpOworfQorCisvKiBlbnRlcl9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FKCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0KTsKK30KKworLyogbGVhdmVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19JQXJnIGtleSApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmUoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QsIGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5IZWFwU3RkICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1Mob2EsIG9zeiwgYWEsICh4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyKXBhLCBzaXplb2YoeGRjX3J1bnRpbWVfSUhlYXBfUGFyYW1zKSwgZWIpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKGluc3RwKTsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit2b2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgY29uc3QgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKQoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zX19pbml0X19TKGRzdCwgc3JjLCBwc3osIGlzeik7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZV9fbGFiZWxfX1MoIFB0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1Mob2JqLCBsYWIpOworfQorCisvKiBhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2FsbG9jX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0lIZWFwX2FsbG9jKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0LCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBmcmVlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2ZyZWVfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKQoreworICAgIHhkY19ydW50aW1lX0lIZWFwX2ZyZWUoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QsIGJsb2NrLCBzaXplKTsKK30KKworLyogaXNCbG9ja2luZ19fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9JSGVhcF9pc0Jsb2NraW5nKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0KTsKK30KKworLyogZ2V0U3RhdHNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApCit7CisgICAgeGRjX3J1bnRpbWVfSUhlYXBfZ2V0U3RhdHMoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QsIHN0YXRzKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5HYXRlTnVsbCAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1Mob2EsIG9zeiwgYWEsICh4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0cilwYSwgc2l6ZW9mKHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfUGFyYW1zKSwgZWIpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2RlbGV0ZV9fUyggUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoaW5zdHApOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgY29uc3QgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyhkc3QsIHNyYywgcHN6LCBpc3opOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlX19sYWJlbF9fUyggUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1Mob2JqLCBsYWIpOworfQorCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5KHF1YWwpOworfQorCisvKiBlbnRlcl9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCk7Cit9CisKKy8qIGxlYXZlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX0lBcmcga2V5ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZSgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCwga2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLlN5c01pbiAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogYWJvcnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnQoc3RyKTsKK30KKworLyogZXhpdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9leGl0X19FKCB4ZGNfSW50IHN0YXQgKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9leGl0KHN0YXQpOworfQorCisvKiBmbHVzaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9mbHVzaF9fRSggdm9pZCApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoKCk7Cit9CisKKy8qIHB1dGNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoKGNoKTsKK30KKworLyogcmVhZHlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcmVhZHlfX0UoIHZvaWQgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHkoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgT0JKRUNUIERFU0NSSVBUT1IgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK3R5cGVkZWYgc3RydWN0IHsgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fIHMwOyBjaGFyIGM7IH0geGRjX3J1bnRpbWVfR2F0ZU51bGxfX19TMTsKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQyA9IHsKKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MsIC8qIGZ4blRhYiAqLworICAgICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssIC8qIG1vZExpbmsgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19TMSkgLSBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fKSwgLyogb2JqQWxpZ24gKi8KKyAgICAwLCAvKiBvYmpIZWFwICovCisgICAgMCwgLyogb2JqTmFtZSAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18pLCAvKiBvYmpTaXplICovCisgICAgKFB0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MsIC8qIHBybXNJbml0ICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyksIC8qIHBybXNTaXplICovCit9OworCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgT0JKRUNUIERFU0NSSVBUT1IgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK3R5cGVkZWYgc3RydWN0IHsgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX18gczA7IGNoYXIgYzsgfSB4ZGNfcnVudGltZV9IZWFwU3RkX19fUzE7CitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQyA9IHsKKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQywgLyogZnhuVGFiICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAvKiBtb2RMaW5rICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfX19TMSkgLSBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX18pLCAvKiBvYmpBbGlnbiAqLworICAgIDAsIC8qIG9iakhlYXAgKi8KKyAgICAwLCAvKiBvYmpOYW1lICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fKSwgLyogb2JqU2l6ZSAqLworICAgIChQdHIpJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MsIC8qIHBybXNJbml0ICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zKSwgLyogcHJtc1NpemUgKi8KK307CisKKworCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5CZW5jaCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZV9fRigpOworfQorCisKKworLyoKKyAqID09PT09PT09IGFjbWUudXRpbHMuQmVuY2hfUENsb2NrIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX1BDbG9ja19Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSAKK3sKKyAgICBsYWItPmhhbmRsZSA9IG9iajsKKyAgICBsYWItPm1vZElkID0gMzI3NzY7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbChsYWIsIDAsIDApOworCisgICAgcmV0dXJuIGxhYjsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgcHJtcywgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnblBhcmFtc19fSShwcm1zLCAoeGRjX1B0cikoc3JjID8gc3JjIDogJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DKSwgcHN6LCBpc3opOworfQorCisvKiBPYmplY3RfX2dldF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYSwgeGRjX0ludCBpICkgCit7CisgICAgaWYgKG9hKSB7CisgICAgICAgIHJldHVybiAoKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKilvYSkgKyBpOworICAgIH0KKworICAgIGlmICh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DID09IDApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18qKXhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MpICsgaTsKK30KKworLyogT2JqZWN0X19maXJzdF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rLm5leHQ7CisKKyAgICBpZiAoaUhkciAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuIGlIZHIgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX25leHRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKilvYmopIC0gMTsKKworICAgIGlmIChpSGRyLT5saW5rLm5leHQgIT0gKHhkY19ydW50aW1lX1R5cGVzX0xpbmsgKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKShpSGRyLT5saW5rLm5leHQpICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMgcHJtczsKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QqIG9iajsKKworICAgIC8qIGNvbW1vbiBpbnN0YW5jZSBpbml0aWFsaXphdGlvbiAqLworICAgIG9iaiA9IHhkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsIG9hLCBvc3osICZwcm1zLCAoeGRjX1B0cilwYSwgcHN6LCBlYik7CisgICAgaWYgKG9iaiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBvYmo7Cit9CisKKy8qIE9iamVjdF9fZGVzdHJ1Y3RfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgb2JqLCBOVUxMLCAtMSwgVFJVRSk7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsICooKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCoqKWluc3RwKSwgTlVMTCwgLTEsIEZBTFNFKTsKKyAgICAqKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUqKWluc3RwKSA9IE5VTEw7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIAoreworICAgIGxhYi0+aGFuZGxlID0gb2JqOworICAgIGxhYi0+bW9kSWQgPSAzMjc4MDsKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsKGxhYiwgMCwgMCk7CisKKyAgICByZXR1cm4gbGFiOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIHBybXMsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kocHJtcywgKHhkY19QdHIpKHNyYyA/IHNyYyA6ICZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DKSwgcHN6LCBpc3opOworfQorCisvKiBPYmplY3RfX2dldF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hLCB4ZGNfSW50IGkgKSAKK3sKKyAgICBpZiAob2EpIHsKKyAgICAgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyopb2EpICsgaTsKKyAgICB9CisKKyAgICBpZiAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DID09IDApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyopeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DKSArIGk7Cit9CisKKy8qIE9iamVjdF9fZmlyc3RfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmsubmV4dDsKKworICAgIGlmIChpSGRyICE9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiBpSGRyICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19uZXh0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKilvYmopIC0gMTsKKworICAgIGlmIChpSGRyLT5saW5rLm5leHQgIT0gKHhkY19ydW50aW1lX1R5cGVzX0xpbmsgKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopKGlIZHItPmxpbmsubmV4dCkgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyBwcm1zOworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0KiBvYmo7CisgICAgaW50IGlTdGF0OworCisgICAgLyogY29tbW9uIGluc3RhbmNlIGluaXRpYWxpemF0aW9uICovCisgICAgb2JqID0geGRjX3J1bnRpbWVfQ29yZV9jcmVhdGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYSwgb3N6LCAmcHJtcywgKHhkY19QdHIpcGEsIHBzeiwgZWIpOworICAgIGlmIChvYmogPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBtb2R1bGUtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gKi8KKyAgICBpU3RhdCA9IHhkY19ydW50aW1lX0hlYXBTdGRfSW5zdGFuY2VfaW5pdF9fRihvYmosICZwcm1zLCBlYik7CisgICAgaWYgKHhkY19ydW50aW1lX0Vycm9yX2NoZWNrKGViKSkgeworICAgICAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsIG9iaiwgTlVMTCwgaVN0YXQsICh4ZGNfQm9vbCkob2EgIT0gTlVMTCkpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gb2JqOworfQorCisvKiBPYmplY3RfX2Rlc3RydWN0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYmosIE5VTEwsIDAsIFRSVUUpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgKigoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QqKilpbnN0cCksIE5VTEwsIDAsIEZBTFNFKTsKKyAgICAqKCh4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSopaW5zdHApID0gTlVMTDsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAxOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fRigpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX0YoKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSBhY21lLnV0aWxzLkJlbmNoIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRChhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX3N0YXJ0dXBfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKGFjbWVfdXRpbHNfQmVuY2hfYmVnaW5fX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKGFjbWVfdXRpbHNfQmVuY2hfZW5kX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFzayBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmogYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZVBybXMgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkIGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9iaiBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjQgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOCBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19zdGFydHVwRG9uZUZ4biBhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnQgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXAgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGUgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnIGFjbWVfdXRpbHNfQmVuY2hfZW5hYmxlRmxhZ19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGFjbWVfdXRpbHNfQmVuY2hfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBhY21lX3V0aWxzX0JlbmNoX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIGFjbWVfdXRpbHNfQmVuY2hfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgYWNtZV91dGlsc19CZW5jaF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRSggeGRjX1N0cmluZyBtc2cgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgYWNtZV91dGlsc19CZW5jaF9lbmRfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFzayBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9iaiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmogYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9fYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4gYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnQgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcCBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19hY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZiBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGUgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfQXNzZXJ0X0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Bc3NlcnRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zIHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0NvcmVfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Db3JlX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0NvcmVfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0RlZmF1bHRzX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSB4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0RpYWdzX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FKCB4ZGNfU3RyaW5nIGNvbnRyb2wgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpYyB4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeSB4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeSB4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2sgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGggeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9FcnJvcl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9EYXRhKiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1VJbnQxNiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfSWQgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiwgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbW9kLCB4ZGNfU3RyaW5nIGZpbGUsIHhkY19JbnQgbGluZSwgeGRjX3J1bnRpbWVfRXJyb3JfSWQgaWQsIHhkY19JQXJnIGFyZzEsIHhkY19JQXJnIGFyZzIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0UoIHhkY19JQXJnIGtleSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlLCB4ZGNfSUFyZyBrZXkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5IHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NyZWF0ZSB4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2RlbGV0ZSB4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9Mb2dfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRSggeGRjX3J1bnRpbWVfTG9nX0V2ZW50UmVjKiBldlJlYyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NYWluX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2UgeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NZW1vcnlfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19JbnQgcXVhbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU2l6ZVQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX0NoYXIgdmFsdWUsIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TdGFydHVwX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZSB4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYyB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c01pbl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZyB4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4geGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c3RlbV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX0F0ZXhpdEhhbmRsZXIgaGFuZGxlciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duIHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eSB4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpYyB4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkIHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhckNudCB4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25vZGVDbnQgeGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjIgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfVGV4dF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1RleHRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfVGV4dF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfQ29yZEFkZHIgY29yZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSwgeGRjX1N0cmluZyBwYXQsIHhkY19JbnQqIGxlbnAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19FKCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtaWQsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0UoIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHNpdGUsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0gSU5JVElBTElaQVRJT04gRU5UUlkgUE9JTlQgPT09PT09PT0KKyAqLworCitleHRlcm4gaW50IF9feGRjX19pbml0KHZvaWQpOworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKQorI2VuZGlmCisjZW5kaWYKK19fRkFSX18gaW50ICgqIHZvbGF0aWxlIF9feGRjX19pbml0X19hZGRyKSh2b2lkKSA9ICZfX3hkY19faW5pdDsKKworCisvKgorICogPT09PT09PT0gUFJPR1JBTSBHTE9CQUxTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gQ0xJTksgRElSRUNUSVZFUyA9PT09PT09PQorICovCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfQmVuY2hfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX0JlbmNoX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX0JlbmNoX2VuYWJsZUZsYWdfX0MsICIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19CZW5jaF9lbmFibGVGbGFnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9faGVhcF9fQywgIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDphY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6YWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWZmOWNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmNmZwpAQCAtMCwwICsxLDQ5MiBAQAorLyoKKyAqICA9PT09PT09PSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuY2ZnID09PT09PT09CisgKiAgVGhpcyBnZW5lcmF0ZWQgY29uZmlndXJhdGlvbiBzY3JpcHQgcnVucyB0aGUgdXNlcidzIGNvbmZpZ3VyYXRpb24gc2NyaXB0CisgKiAgdGhlIGNvbnRleHQgb2YgYSBzcGVjaWZpYyB0YXJnZXQgYW5kIHBsYXRmb3JtIGluIG9yZGVyIHRvIGdlbmVyYXRlCisgKiAgYWxsIHRoZSBmaWxlcyBuZWNlc3NhcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGU7IGUuZy4sIGxpbmtlciBjb21tYW5kCisgKiAgZmlsZXMsIHN0YXRpYyBDL0MrKyBkYXRhIHN0cnVjdHVyZXMsIGV0Yy4KKyAqLworCisvKgorICogID09PT09PT09IF9ydW5lc2NhcGUgPT09PT09PT0KKyAqICBSZWN1cnNpdmUgdW5lc2NhcGUgdG8gZGVjb2RlIHNlcmlhbGl6ZWQgc3RyaW5ncworICovCitmdW5jdGlvbiBfcnVuZXNjYXBlKG9iaikgeworICAgIGZvciAodmFyIGkgaW4gb2JqKSB7CisgICAgICAgIGlmIChvYmpbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpbaV0gPT0gJ3N0cmluZycpIHsKKyAgICAgICAgICAgICAgICBvYmpbaV0gPSB1bmVzY2FwZShvYmpbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9ialtpXSA9PSAnb2JqZWN0JykgeworICAgICAgICAgICAgICAgIF9ydW5lc2NhcGUob2JqW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqICA9PT09PT09PSBfZ2V0UGxhdENmZyA9PT09PT09PQorICovCitmdW5jdGlvbiBfZ2V0UGxhdENmZygpIHsKKyAgICB2YXIgdG1wID0ge307CisgICAgX3J1bmVzY2FwZSh0bXApOworICAgIHJldHVybiAodG1wKTsKK30KKy8qCisgKiAgPT09PT09PT0gX2NmZ2luaXQgPT09PT09PT0KKyAqLworZnVuY3Rpb24gX2NmZ2luaXQoKSB7CisgICAgeGRjLmxvYWRQYWNrYWdlKCd4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCcpOworICAgIHZhciBwcm9nID0geGRjLm9tWyd4ZGMuY2ZnLlByb2dyYW0nXTsKKworICAgIC8qIGluaXRpYWxpemUgcHJvZyBhdHRycyBmcm9tIGJ1aWxkIG1vZGVsICovCisgICAgdmFyIGJ1aWxkID0geworICAgICAgICByZWxlYXNlczogeworICAgICAgICAgICAgMDogeworICAgICAgICAgICAgICAgIG5hbWU6ICJjaGFybGllX3NxcnRsaWJfdGVzdCIsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICJkZWZhdWx0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb3RoZXJGaWxlczoge30KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgdGFyZ2V0OiB7CisgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3ciLAorICAgICAgICAgICAgbmFtZTogIk1pbmd3IiwKKyAgICAgICAgICAgIHN1ZmZpeDogIjg2R1ciLAorICAgICAgICAgICAgY29tcGF0aWJsZVN1ZmZpeGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2NvbXBhdGlibGVTdWZmaXhlcyIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgaXNhOiAieDg2IiwKKyAgICAgICAgICAgIG1vZGVsOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L21vZGVsIiwKKyAgICAgICAgICAgICAgICBlbmRpYW46ICJsaXR0bGUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgb3M6ICJXaW5kb3dzIiwKKyAgICAgICAgICAgIHJ0czogImdudS50YXJnZXRzLnJ0czg2R1ciLAorICAgICAgICAgICAgZGxsRXh0OiAiLnNvIiwKKyAgICAgICAgICAgIHBsYXRmb3JtOiAiaG9zdC5wbGF0Zm9ybXMuUEMiLAorICAgICAgICAgICAgcGxhdGZvcm1zOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgMDogImhvc3QucGxhdGZvcm1zLlBDIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHZlcnNpb246ICJnbnUudGFyZ2V0cy5NaW5ndyU3QjElMkMwJTJDMy40JTJDNSIsCisgICAgICAgICAgICBkZWJ1Z0dlbjogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9kZWJ1Z0dlbiIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZXh0ZW5zaW9uczogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zIiwKKyAgICAgICAgICAgICAgICAiLmFzbSI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5hc20nIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmFzbSIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuYyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYyIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY3BwIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmNwcCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jeHgiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3h4JyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jeHgiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLkMiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuQyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuQyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY2MiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY2MnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNjIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5zODZHVyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5zODZHVyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuczg2R1ciLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHZlcnNpb25NYXA6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvdmVyc2lvbk1hcCIsCisgICAgICAgICAgICAgICAgImdjYzMuMiI6ICIxJTJDMCUyQzMuMiUyQzAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYWxpZ25EaXJlY3RpdmVTdXBwb3J0ZWQ6IGZhbHNlLAorICAgICAgICAgICAgcm9vdERpcjogImUlM0EvcnRzYy9taW5ndyIsCisgICAgICAgICAgICBwcm9maWxlczogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcyIsCisgICAgICAgICAgICAgICAgZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZyciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZzOiAiLURfREVCVUdfJTNEMSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgbGlua09wdHM6ICItZyIsCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICByZWxlYXNlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncmVsZWFzZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1PMiIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgbGlua09wdHM6ICIiLAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBwcm9maWxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1nJTIwLXBnIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBsaW5rT3B0czogIi1wZyIsCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNvdmVyYWdlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWZwcm9maWxlLWFyY3MlMjAtZnRlc3QtY292ZXJhZ2UiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGxpbmtPcHRzOiAiIiwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgc2VjdE1hcDogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zZWN0TWFwIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzdGRJbmNsdWRlOiAiZ251L3RhcmdldHMvc3RkLmgiLAorICAgICAgICAgICAgc3RkVHlwZXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMiLAorICAgICAgICAgICAgICAgIHRfSUFyZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JQXJnIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfQ2hhcjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9DaGFyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMSwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRG91YmxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0RvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0Zsb2F0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Zsb2F0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRnhuOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Z4biIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ4OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDgiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQxNjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQxNiIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDMyOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDMyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50NDA6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50NDAiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ2NDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ2NCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xvbmc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xEb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTERvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDEyLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9MTG9uZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9MTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X1B0cjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9QdHIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9TaG9ydDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9TaG9ydCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGJpdHNQZXJDaGFyOiA4LAorICAgICAgICAgICAgR0NDVkVSUzogIjMuNC41IiwKKyAgICAgICAgICAgIEdDQ1RBUkc6ICJtaW5ndzMyIiwKKyAgICAgICAgICAgIExPTkdOQU1FOiAiL2Jpbi9taW5ndzMyLWdjYy5leGUiLAorICAgICAgICAgICAgQ1lHV0lOOiBmYWxzZSwKKyAgICAgICAgICAgIGFyOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2FyIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICIlMjQlMjhyb290RGlyJTI5LyUyNCUyOEdDQ1RBUkclMjkvYmluL2FyIiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiY3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXJPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2FyT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbG5rOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2xuayIsCisgICAgICAgICAgICAgICAgY21kOiAiJTI0JTI4cm9vdERpciUyOS8lMjQlMjhMT05HTkFNRSUyOSIsCisgICAgICAgICAgICAgICAgb3B0czogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBsbmtPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2xua09wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIiIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiLWxzdGRjKyslMjAtTCUyNCUyOHJvb3REaXIlMjkvbGliIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNjOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2NjIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICIlMjQlMjhyb290RGlyJTI5LyUyNCUyOExPTkdOQU1FJTI5JTIwLWMlMjAtTUQlMjAtTUYlMjAlMjRALmRlcCIsCisgICAgICAgICAgICAgICAgb3B0czogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjY09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvY2NPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICItV3VudXNlZCIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiLURmYXIlM0QlMjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXNtOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2FzbSIsCisgICAgICAgICAgICAgICAgY21kOiAiJTI0JTI4cm9vdERpciUyOS8lMjQlMjhMT05HTkFNRSUyOSUyMC1jJTIwLXglMjBhc3NlbWJsZXIiLAorICAgICAgICAgICAgICAgIG9wdHM6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXNtT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9hc21PcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICIiLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBpbmNsdWRlT3B0czogIiIsCisgICAgICAgICAgICBjbWRQcmVmaXg6ICIiCisgICAgICAgIH0sCisgICAgICAgIHRlc3Q6IHt9LAorICAgICAgICBjZmdBcmdzOiAiJTdCb3B0TW9kZSUzQSUyMCUyN1RJTUUlMjclN0QiLAorICAgICAgICBjZmdTY3JpcHQ6ICJpc3FydFRlc3QxLmNmZyIsCisgICAgICAgIHByb2ZpbGU6ICJyZWxlYXNlIgorICAgIH07CisgICAgYnVpbGQudGFyZ2V0LmZpbmRTdWZmaXggPSBmdW5jdGlvbiBmaW5kU3VmZml4KHBrZykgeworICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVGhlIGZ1bmN0aW9uIElUYXJnZXQuZmluZFN1ZmZpeCgpIHJlcXVpcmVzIGFuICIgKyAiYXJndW1lbnQiKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgc3VmZml4TWFwID0ge307CisgICAgICAgIGlmICgiYnVpbGQiIGluIHBrZykgeworICAgICAgICAgICAgdmFyIGJ1aWxkID0gcGtnLmJ1aWxkOworICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYnJhcmllcy5sZW5ndGggIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChidWlsZC5saWJEZXNjWzBdLnN1ZmZpeCAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWlsZC5saWJEZXNjLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXhNYXBbYnVpbGQubGliRGVzY1tpXS5zdWZmaXhdID0gIiI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkLmxpYkRlc2MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWlsZC5saWJEZXNjW2ldLnRhcmdldCA9PSBwcm9nLmJ1aWxkLnRhcmdldC4kbmFtZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeE1hcFtwcm9nLmJ1aWxkLnRhcmdldC5zdWZmaXhdID0gIiI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoImxlbmd0aCIgaW4gcGtnKSB7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwa2cubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc3VmZml4TWFwW3BrZ1tpXV0gPSAiIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQW4gaW52YWxpZCBhcmd1bWVudCB0eXBlIHN1cHBsaWVkIHRvICIgKyAiSVRhcmdldC5maW5kU3VmZml4KCkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB2YXIgY29tcFRhcmdzID0gW107CisgICAgICAgIGZvciAodmFyIHByb3AgaW4gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXMpIHsKKyAgICAgICAgICAgIGNvbXBUYXJnc1twcm9wXSA9IHRoaXMuY29tcGF0aWJsZVN1ZmZpeGVzW3Byb3BdOworICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLnN1ZmZpeCBpbiBzdWZmaXhNYXApIHsKKyAgICAgICAgICAgIHJldHVybiAodGhpcy5zdWZmaXgpOworICAgICAgICB9CisgICAgICAgIGlmIChjb21wVGFyZ3MubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgcmV0dXJuIChudWxsKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbXBUYXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGNvbXBUYXJnc1tpXSBpbiBzdWZmaXhNYXApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGNvbXBUYXJnc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChudWxsKTsKKyAgICB9OworCisgICAgYnVpbGQudGFyZ2V0LnNlbGVjdFN1ZmZpeCA9IGZ1bmN0aW9uIHNlbGVjdFN1ZmZpeChsaXN0KSB7CisgICAgICAgIHZhciBzdWZmaXhNYXAgPSB7fTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBzdWZmaXhNYXBbbGlzdFtpXV0gPSAiIjsKKyAgICAgICAgfQorICAgICAgICB2YXIgY29tcFRhcmdzID0gW107CisgICAgICAgIGZvciAodmFyIHByb3AgaW4gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXMpIHsKKyAgICAgICAgICAgIGNvbXBUYXJnc1twcm9wXSA9IHRoaXMuY29tcGF0aWJsZVN1ZmZpeGVzW3Byb3BdOworICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLnN1ZmZpeCBpbiBzdWZmaXhNYXApIHsKKyAgICAgICAgICAgIHJldHVybiAodGhpcy5zdWZmaXgpOworICAgICAgICB9CisgICAgICAgIGlmIChjb21wVGFyZ3MubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgcmV0dXJuIChudWxsKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbXBUYXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGNvbXBUYXJnc1tpXSBpbiBzdWZmaXhNYXApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGNvbXBUYXJnc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChudWxsKTsKKyAgICB9OworCisgICAgX3J1bmVzY2FwZShidWlsZCk7CisgICAgYnVpbGQuY2ZnQXJncyA9IHtvcHRNb2RlOiAnVElNRSd9OworICAgIHByb2cuYnVpbGQgPSBidWlsZDsKKyAgICAKKyAgICBwcm9nLm5hbWUgPSAiaXNxcnRUZXN0MS1USU1FLng4NkdXIjsKKworICAgIHByb2cuZW5kaWFuID0gcHJvZy5idWlsZC50YXJnZXQubW9kZWwuZW5kaWFuOworCisgICAgLyogdXNlIHRoZSBwbGF0Zm9ybSBwYWNrYWdlJ3MgUGxhdGZvcm0gbW9kdWxlICovCisgICAgdmFyIFBsYXRmb3JtID0geGRjLnVzZU1vZHVsZSgiaG9zdC5wbGF0Zm9ybXMuUEMuUGxhdGZvcm0iKTsKKyAgICB2YXIgcGxhdFBhcmFtcyA9IF9nZXRQbGF0Q2ZnKCk7CisgICAgZm9yICh2YXIgcHJvcCBpbiBwbGF0UGFyYW1zKSB7CisgICAgICAgIGlmICghKHByb3AgaW4gUGxhdGZvcm0uUEFSQU1TKSkgeworICAgICAgICAgICAgZGVsZXRlIHBsYXRQYXJhbXNbcHJvcF07CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvZy5wbGF0Zm9ybU5hbWUgPSAiaG9zdC5wbGF0Zm9ybXMuUEMiOworICAgIHByb2cucGxhdGZvcm0gPSBQbGF0Zm9ybS5jcmVhdGUoIiIsIF9nZXRQbGF0Q2ZnKCksIHBsYXRQYXJhbXMpOworICAgIC8qIHJlY29yZCB0aGUgZXhlY3V0YWJsZSdzIHBhY2thZ2UgbmFtZSAqLworICAgIHByb2cuYnVpbGRQYWNrYWdlID0gImNoYXJsaWUuc3FydGxpYi50ZXN0IjsKKworICAgIC8qIHJlY29yZCBidWlsZC1tb2RlbCBpbmZvcm1hdGlvbiByZXF1aXJlZCBkdXJpbmcgY29uZmlnIGdlbmVyYXRpb24gKi8KKyAgICBwcm9nLiQkYmluZCgiJCRpc2FzbSIsIDApOworICAgIHByb2cuJCRiaW5kKCIkJGlzcm9tIiwgMCk7CisgICAgcHJvZy4kJGJpbmQoIiQkZ2VudGFiIiwgWworICAgIF0pOworICAgIAorICAgIC8qIGJpbmQgcHJvZyB0byBhbiBhcHByb3ByaWF0ZSBleGVjdXRpb24gY29udGV4dCAqLworICAgIHByb2cuY3B1ID0gcHJvZy5wbGF0Zm9ybS5nZXRFeGVDb250ZXh0KHByb2cpOworCisgICAgLyogaW1wb3J0IHRoZSB0YXJnZXQncyBydW4tdGltZSBzdXBwb3J0IHBrZyAqLworICAgIHhkYy5sb2FkUGFja2FnZSgiZ251LnRhcmdldHMucnRzODZHVyIpOworfQorICAgIAorLyogZnVuY3Rpb24gdG8gaW1wb3J0IHRoZSBjZmcgc2NyaXB0J3MgcGFja2FnZSAqLworZnVuY3Rpb24gX3VzZXJzY3JpcHQoJCRsZWdhY3ksIHNjcmlwdCkgeworICAgIHZhciBob21lOworICAgIHZhciBzcGF0aDsKKyAgICAvKiBpbXBvcnQgdGhlIGV4ZWN1dGFibGUncyBwYWNrYWdlICovCisgICAgaG9tZSA9IHhkYy5sb2FkUGFja2FnZSgiY2hhcmxpZS5zcXJ0bGliLnRlc3QiKTsKKyAgICBzcGF0aCA9ICcuJzsKKyAgICAKKyAgICB4ZGMub20uJCRiaW5kKCckaG9tZXBrZycsIGhvbWUpOworCisgICAgaWYgKHNjcmlwdCAhPSBudWxsKSB7CisgICAgICAgIHV0aWxzLmV2YWx1YXRlU2NyaXB0KHNjcmlwdCk7CisgICAgfQorICAgIGVsc2UgeyAKKyAgICAgICAgLyogbG9hZCAmIHJ1biBwcm9ncmFtIGNmZyBzY3JpcHQgYW5kIG1vbml0b3IgYWxsIGxvYWRlZCBmaWxlcyAqLworICAgICAgICBfcnVuQ2ZnKCJpc3FydFRlc3QxLmNmZyIsIHNwYXRoLCAicGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXIiwgIAorICAgICAgICAgICAgICAgICBmYWxzZSwgCisgICAgICAgICAgICAgICAgIGZhbHNlLAorICAgICAgICAgICAgICAgICBfZ2V0UGxhdENmZygpKTsKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKworICAgIC8qCisgICAgICogID09PT09PT09IF9ydW5DZmcgPT09PT09PT0KKyAgICAgKiAgUnVuIGEgdXNlciBzdXBwbGllZCBjb25maWd1cmF0aW9uIHNjcmlwdCBhbmQgcHJldmVudCB1c2VyJ3Mgc2NyaXB0IGZyb20KKyAgICAgKiAgb3ZlcndyaXRpbmcgdGhlIGdsb2JhbCB2YXJpYWJsZSBwcm9nLgorICAgICAqLworICAgIGZ1bmN0aW9uIF9ydW5DZmcoY2ZnU2NyaXB0LCBwYXRoLCBwcm9ncmFtTmFtZSwgbGVnYWN5VGNmLCBsZWdhY3lDZmcsCisgICAgICAgIHBsYXRQYXJhbXMpCisgICAgeworICAgICAgICBpZiAobGVnYWN5VGNmKSB7CisgICAgICAgICAgICAvKiBzYXZlIGN1cnJlbnQgZ2xvYmFsIHZhcmlhYmxlcyAqLworICAgICAgICAgICAgdmFyICRzYXZlID0ge3Byb2c6IHV0aWxzLmdsb2JhbC5wcm9nLCBQcm9ncmFtOiBQcm9ncmFtfTsKKyAgICAKKyAgICAgICAgICAgIC8qIGluaXRpYWxpemUgZ2xvYmFsIHZhcmlhYmxlcyBmb3IgbGVnYWN5IGNvbmZpZyBzY3JpcHRzICovCisgICAgICAgICAgICBlbnZpcm9ubWVudFsiY29uZmlnLnByb2dyYW1OYW1lIl0gPSBwcm9ncmFtTmFtZTsKKyAgICAgICAgICAgIGVudmlyb25tZW50WyJjb25maWcucGxhdGZvcm0iXSA9IFByb2dyYW0ucGxhdGZvcm1OYW1lOworICAgICAgICAgICAgdXRpbHMuc2VlZFBhdGggPSBlbnZpcm9ubWVudFsiY29uZmlnLmltcG9ydFBhdGgiXTsKKyAgICAgICAgICAgIHV0aWxzLmxvYWRQbGF0Zm9ybS5wYXJhbXMgPSBwbGF0UGFyYW1zOworICAgICAgICAgICAgUHJvZ3JhbSA9ICQkbGVnYWN5LlByb2dyYW07ICAgICAvKiBkZWZpbmVkIGluIGNmZy50Y2kgKi8KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLyogcnVuIGxlZ2FjeSBjb25maWcgc2NyaXB0IHdpdGggcHJvZyA9PSB0byBSVFNDIFByb2dyYW07IHRoaXMKKyAgICAgICAgICAgICAqIGFsbG93cyBsZWdhY3kgc2NyaXB0IHRvIHJlYWQgYnVpbGQgYXRyaWJ1dGVzIGZyb20gUlRTQyBtb2RlbAorICAgICAgICAgICAgICogYmVmb3JlIHJlLWNyZWF0aW5nIHRoZSBwcm9nIG9iamVjdAorICAgICAgICAgICAgICovCisgICAgICAgICAgICB1dGlscy5sb2FkQ2Fwc3VsZShjZmdTY3JpcHQsIGZhbHNlLCBwYXRoKTsgIAorICAgIAorICAgICAgICAgICAgLyogcmVzdG9yZSBnbG9iYWwgdmFyaWFibGVzOyBub3cgcHJvZyA9PSBUQ09NIHByb2cgYmVjYXVzZQorICAgICAgICAgICAgICogdXRpbHMubG9hZFBsYXRmb3JtKCkgY3JlYXRlcyB0aGUgVENPTSBwcm9nIG9iamVjdC4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgJCRsZWdhY3kucHJvZyA9IHV0aWxzLmdsb2JhbC5wcm9nOyAgLyogaW4gY2FzZSBYREMgd2FudHMgaXQgKi8KKyAgICAgICAgICAgIHV0aWxzLmdsb2JhbC5wcm9nID0gJHNhdmUucHJvZzsKKyAgICAgICAgICAgIFByb2dyYW0gPSAkc2F2ZS5Qcm9ncmFtOworICAgIAorICAgICAgICAgICAgLyogcnVuIFhEQyBjb25maWd1cmF0aW9uIHNjcmlwdCwgaWYgaXQgZXhpc3RzICovCisgICAgICAgICAgICBpZiAobGVnYWN5Q2ZnKSB7CisgICAgICAgICAgICAgICAgdXRpbHMuaW1wb3J0RmlsZShjZmdTY3JpcHQucmVwbGFjZSgvXC50Y2YvLCAiLmNmZyIpLCBwYXRoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHV0aWxzLmxvYWRDYXBzdWxlKGNmZ1NjcmlwdCwgZmFsc2UsIHBhdGgpOworICAgICAgICB9CisgICAgfQorfQorICAgIAorZnVuY3Rpb24gX3Bvc3Rpbml0KCkgeworCisgICAgdmFyIGNvdXQgPSBudWxsOworCisgICAgdmFyIHByb2cgPSB4ZGMub21bJ3hkYy5jZmcuUHJvZ3JhbSddOworICAgIC8qIGdldCB0aGUgZXhlYyBjb21tYW5kIGZvciB0aGlzIGV4ZWN1dGFibGUgKi8KKyAgICBpZiAocHJvZy5leGVjQ21kID09IG51bGwpIHsKKyAgICAgICAgcHJvZy5leGVjQ21kID0gcHJvZy5wbGF0Zm9ybS5nZXRFeGVjQ21kKHByb2csCisgICAgICAgICAgICB4ZGMub21bImhvc3QucGxhdGZvcm1zLlBDIl0ucGFja2FnZUJhc2UpOworICAgIH0KKyAgICB2YXIgY291dCA9ICJkZWZpbmUgRVhFQy4iICsgcHJvZy5uYW1lICsgJ1xuXG4nOworICAgIGNvdXQgKz0gcHJvZy5leGVjQ21kOworICAgIGNvdXQgKz0gIlxuZW5kZWZcblxuIjsKKworICAgIHV0aWxzLmdlbkRlcCgicGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXIiwgImNoYXJsaWUuc3FydGxpYi50ZXN0IiwgdXRpbHMubG9hZGVkRmlsZXMsIGNvdXQsIG51bGwpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmNmZy5kb3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuY2ZnLmRvdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYmI0MmEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmNmZy5kb3QKQEAgLTAsMCArMSwxODkgQEAKK2RpZ3JhcGggY29uZmlndXJhdGlvbiB7CisgICAgc2l6ZT0iNy41LDEwIjsKKyAgICByYW5rZGlyPUxSOworICAgIHJhbmtzZXA9Ii41MCBlcXVhbGx5IjsKKyAgICBjb25jZW50cmF0ZT10cnVlOworICAgIGNvbXBvdW5kPXRydWU7CisgICAgbGFiZWw9IlxuQ29uZmlndXJhdGlvbiBmb3IgY2hhcmxpZS5zcXJ0bGliLnRlc3QvaXNxcnRUZXN0MS1USU1FLng4NkdXIgorICBub2RlIFtmb250PUhlbHZldGljYSwgZm9udHNpemU9MTQsIGZvbnRjb2xvcj1ibGFja107ICBzdWJncmFwaCBjbHVzdGVyMCB7bGFiZWw9IiI7IF9fY2ZnIFtsYWJlbD0iaXNxcnRUZXN0MS5jZmciLCBjb2xvcj13aGl0ZSwgZm9udGNvbG9yPWJsdWVdOworICAgIG5vZGUgW2ZvbnQ9SGVsdmV0aWNhLCBmb250c2l6ZT0xMF07ICAgIHN1YmdyYXBoIGNsdXN0ZXIxIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkY1xuMSwgMSwgMSwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjIgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX2NvcmV2ZXJzX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLmNvcmV2ZXJzXG4xNiwgMCwgMSwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjMgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5nbG9iYWxcbjEsIDAsIDEiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9DbG9jayBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDbG9jayJdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX190b3AgLT4geGRjX3NlcnZpY2VzX2dsb2JhbF9DbG9ja1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfQ2xvY2sgLT4geGRjX3NlcnZpY2VzX2dsb2JhbF9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjQgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NoZWxmX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNoZWxmXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfc3BlY19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5zcGVjXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfaW50ZXJuX3hzcl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyXG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfaW50ZXJuX2dlbl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5pbnRlcm4uZ2VuXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyOCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfaW50ZXJuX2NtZF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5pbnRlcm4uY21kXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyOSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfcm92X190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnJvdlxuMSwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3Jvdl9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTAgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgY2hhcmxpZV9zcXJ0bGliX190b3AgW3NoYXBlPWJveCxsYWJlbD0iY2hhcmxpZS5zcXJ0bGliXG4xLCAwLCAyLCA2IiwgY29sb3I9d2hpdGVdOworICAgICAgICBjaGFybGllX3NxcnRsaWJfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgY2hhcmxpZV9zcXJ0bGliX1NldHRpbmdzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlNldHRpbmdzIl07CisgICAgICAgIGNoYXJsaWVfc3FydGxpYl9fdG9wIC0+IGNoYXJsaWVfc3FydGxpYl9TZXR0aW5nc1tzdHlsZT1pbnZpc107CisgICAgICAgIGNoYXJsaWVfc3FydGxpYl9TZXR0aW5ncyAtPiBjaGFybGllX3NxcnRsaWJfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9Imhvc3QucGxhdGZvcm1zLlBDXG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19QbGF0Zm9ybSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJQbGF0Zm9ybSJdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fdG9wIC0+IGhvc3RfcGxhdGZvcm1zX1BDX1BsYXRmb3JtW3N0eWxlPWludmlzXTsKKyAgICAgICAgaG9zdF9wbGF0Zm9ybXNfUENfUGxhdGZvcm0gLT4gaG9zdF9wbGF0Zm9ybXNfUENfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIGhvc3RfcGxhdGZvcm1zX1BDX0ludGVsODA1ODYgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iSW50ZWw4MDU4NiJdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fdG9wIC0+IGhvc3RfcGxhdGZvcm1zX1BDX0ludGVsODA1ODZbc3R5bGU9aW52aXNdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19JbnRlbDgwNTg2IC0+IGhvc3RfcGxhdGZvcm1zX1BDX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTIgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3BsYXRmb3JtX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnBsYXRmb3JtXG4xLCAwLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX0V4ZUNvbnRleHQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRXhlQ29udGV4dCJdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX3RvcCAtPiB4ZGNfcGxhdGZvcm1fRXhlQ29udGV4dFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9FeGVDb250ZXh0IC0+IHhkY19wbGF0Zm9ybV9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEzIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19jZmdfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuY2ZnXG4xLCAwLCAyLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfY2ZnX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfUHJvZ3JhbSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJQcm9ncmFtIl07CisgICAgICAgIHhkY19jZmdfX3RvcCAtPiB4ZGNfY2ZnX1Byb2dyYW1bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX1Byb2dyYW0gLT4geGRjX2NmZ19fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19NYWluIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW4iXTsKKyAgICAgICAgeGRjX2NmZ19fdG9wIC0+IHhkY19jZmdfTWFpbltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfTWFpbiAtPiB4ZGNfY2ZnX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTQgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucnVudGltZVxuMiwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQXNzZXJ0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkFzc2VydCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0Fzc2VydFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Fzc2VydCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQ29yZSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDb3JlIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfQ29yZVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0NvcmUgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RlZmF1bHRzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkRlZmF1bHRzIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfRGVmYXVsdHNbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EZWZhdWx0cyAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGlhZ3MgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRGlhZ3MiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9EaWFnc1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RpYWdzIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9FcnJvciBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJFcnJvciJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0Vycm9yW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRXJyb3IgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGUgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iR2F0ZSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0dhdGVbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJHYXRlTnVsbCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0dhdGVOdWxsW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGwgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0xvZyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJMb2ciXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9Mb2dbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Mb2cgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW4gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbiJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01haW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWVtb3J5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWVtb3J5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkhlYXBTdGQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9IZWFwU3RkW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3RhcnR1cCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTdGFydHVwIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3RhcnR1cFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N0YXJ0dXAgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW0iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXN0ZW1bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW0gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c01pbiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXNNaW4iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXNNaW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXNNaW4gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1RleHQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iVGV4dCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1RleHRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9UZXh0IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbl9Nb2R1bGVfR2F0ZVByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1lbW9yeV9IZWFwUHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW1fU3VwcG9ydFByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIGdudV90YXJnZXRzX3J0czg2R1dfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJnbnUudGFyZ2V0cy5ydHM4NkdXXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTYgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgYWNtZV91dGlsc19jbG9ja3NfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJhY21lLnV0aWxzLmNsb2Nrc1xuIiwgY29sb3I9d2hpdGVdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDbG9ja1N0ZCJdOworICAgICAgICBhY21lX3V0aWxzX2Nsb2Nrc19fdG9wIC0+IGFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkW3N0eWxlPWludmlzXTsKKyAgICAgICAgYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGQgLT4gYWNtZV91dGlsc19jbG9ja3NfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBhY21lX3V0aWxzX190b3AgW3NoYXBlPWJveCxsYWJlbD0iYWNtZS51dGlsc1xuIiwgY29sb3I9d2hpdGVdOworICAgICAgICBhY21lX3V0aWxzX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfQmVuY2ggW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQmVuY2giXTsKKyAgICAgICAgYWNtZV91dGlsc19fdG9wIC0+IGFjbWVfdXRpbHNfQmVuY2hbc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX0JlbmNoIC0+IGFjbWVfdXRpbHNfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIGFjbWVfdXRpbHNfQmVuY2hfUENsb2NrIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkJlbmNoX1BDbG9jayJdOworICAgICAgICBhY21lX3V0aWxzX190b3AgLT4gYWNtZV91dGlsc19CZW5jaF9QQ2xvY2tbc3R5bGU9aW52aXNdOworICAgICAgICBhY21lX3V0aWxzX0JlbmNoX1BDbG9jayAtPiBhY21lX3V0aWxzX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTggeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgY2hhcmxpZV9zcXJ0bGliX3Rlc3RfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJjaGFybGllLnNxcnRsaWIudGVzdFxuIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgfQorICBub2RlIFtmb250PUhlbHZldGljYSwgZm9udHNpemU9MTBdOworICAgIGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtzaGFwZT1yZWNvcmQsbGFiZWw9ImdudS50YXJnZXRzLk1pbmd3fDEsMCwzLjQsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBjaGFybGllX3NxcnRsaWJfX2JvdCAtPiBnbnVfdGFyZ2V0c19NaW5nd19fMV8wXzNfXzRfNSBbbHRhaWw9Y2x1c3RlcjEwXTsKKyAgICBnbnVfdGFyZ2V0c19NaW5nd19fMV8wXzNfXzRfNSBbc2hhcGU9cmVjb3JkLGxhYmVsPSJnbnUudGFyZ2V0cy5NaW5nd3wxLDAsMy40LDUiLHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWxpZ2h0Z3JleV07CisgICAgZ251X3RhcmdldHNfcnRzODZHV19fdG9wIC0+IGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtsdGFpbD1jbHVzdGVyMTVdOworICAgIGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtzaGFwZT1yZWNvcmQsbGFiZWw9ImdudS50YXJnZXRzLk1pbmd3fDEsMCwzLjQsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19fYm90IC0+IGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtsdGFpbD1jbHVzdGVyMTZdOworICAgIGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtzaGFwZT1yZWNvcmQsbGFiZWw9ImdudS50YXJnZXRzLk1pbmd3fDEsMCwzLjQsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBhY21lX3V0aWxzX19ib3QgLT4gZ251X3RhcmdldHNfTWluZ3dfXzFfMF8zX180XzUgW2x0YWlsPWNsdXN0ZXIxN107CisgICAgZ251X3RhcmdldHNfTWluZ3dfXzFfMF8zX180XzUgW3NoYXBlPXJlY29yZCxsYWJlbD0iZ251LnRhcmdldHMuTWluZ3d8MSwwLDMuNCw1IixzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZXldOworICAgIGNoYXJsaWVfc3FydGxpYl90ZXN0X190b3AgLT4gZ251X3RhcmdldHNfTWluZ3dfXzFfMF8zX180XzUgW2x0YWlsPWNsdXN0ZXIxOF07Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuY2ZnLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5jZmcueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZTg1N2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuY2ZnLnhtbApAQCAtMCwwICsxLDIwMjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBUaGlzIGZpbGUgY29uZm9ybXMgdG8gdGhlIERURCB4ZGMvY2ZnL2NvbmZpZ3VyYXRpb24uZHRkIC0tPgorPGNvbmZpZ3VyYXRpb24gbmFtZT0iY2hhcmxpZS5zcXJ0bGliLnRlc3QvaXNxcnRUZXN0MS1USU1FLng4NkdXIgorICAgIHBsYXRmb3JtTmFtZT0iaG9zdC5wbGF0Zm9ybXMuUEMiCisgICAgZ2xvYmFsU2VjdGlvbj0ibnVsbCIKKyAgICBzeXNTdGFjaz0iNDA5NiIKKyAgICBzdGFjaz0iNDA5NiIKKyAgICBoZWFwPSI0MDk2IgorICAgIGFyZ1NpemU9IjUxMiIKKyAgICBleGVjQ21kPSIuL2lzcXJ0VGVzdDEtVElNRS54ODZHVyIKKyAgICBlbmRpYW49ImxpdHRsZSIKKyAgICBjb2RlTW9kZWw9Im51bGwiCisgICAgZGF0YU1vZGVsPSJudWxsIj4KKzx0YXJnZXRzPgorICAgIDx0YXJnZXQgbmFtZT0iZ251LnRhcmdldHMuTWluZ3ciCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsMy40LDUiCisgICAgICAgICAgICB1c2VkYnk9ImNoYXJsaWUuc3FydGxpYiIvPgorICAgIDx0YXJnZXQgbmFtZT0iZ251LnRhcmdldHMuTWluZ3ciCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsMy40LDUiCisgICAgICAgICAgICB1c2VkYnk9ImdudS50YXJnZXRzLnJ0czg2R1ciLz4KKyAgICA8dGFyZ2V0IG5hbWU9ImdudS50YXJnZXRzLk1pbmd3IgorICAgICAgICAgICAgdmVyc2lvbj0iMSwwLDMuNCw1IgorICAgICAgICAgICAgdXNlZGJ5PSJhY21lLnV0aWxzLmNsb2NrcyIvPgorICAgIDx0YXJnZXQgbmFtZT0iZ251LnRhcmdldHMuTWluZ3ciCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsMy40LDUiCisgICAgICAgICAgICB1c2VkYnk9ImFjbWUudXRpbHMiLz4KKyAgICA8dGFyZ2V0IG5hbWU9ImdudS50YXJnZXRzLk1pbmd3IgorICAgICAgICAgICAgdmVyc2lvbj0iMSwwLDMuNCw1IgorICAgICAgICAgICAgdXNlZGJ5PSJjaGFybGllLnNxcnRsaWIudGVzdCIvPgorPC90YXJnZXRzPgorPGltcG9ydHM+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjIiB2ZXJzaW9uPSIxLCAxLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLmNvcmV2ZXJzIiB2ZXJzaW9uPSIxNiwgMCwgMSwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwiIHZlcnNpb249IjEsIDAsIDEiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwuQ2xvY2siCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZW5hYmxlIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNob3dNZW1vcnkiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuc2VydmljZXMuZ2xvYmFsLlRyYWNlIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2hlbGYiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuc3BlYyIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyIiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmludGVybi5nZW4iIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5yb3YiIHZlcnNpb249IjEsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuTW9kZWwiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5Qcm9ncmFtIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuU3RydWN0dXJlRGVjb2RlciIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlN0YXRlUmVhZGVyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuVmlld0luZm8iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9ImNoYXJsaWUuc3FydGxpYiIgdmVyc2lvbj0iMSwgMCwgMiwgNiIgcmVwb3NpdG9yeT0iRDovd29yay90dXRvcmlhbC9yZXBvLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iY2hhcmxpZS5zcXJ0bGliLlNldHRpbmdzIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im9wdGltaXplIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJjaGFybGllLnNxcnRsaWIuU2V0dGluZ3MuT1BUSU1JWkVfRk9SX1RJTUUiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9Imhvc3QucGxhdGZvcm1zLlBDIiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJob3N0LnBsYXRmb3Jtcy5QQy5QbGF0Zm9ybSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJCT0FSRCIgdHlwZT0ieGRjLnBsYXRmb3JtLklQbGF0Zm9ybS5Cb2FyZCIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGJvYXJkTmFtZSUzQSUyMGludGVsLXg4NiUyQyUyMGJvYXJkRmFtaWx5JTNBJTIwaW50ZWwteDg2JTJDJTIwYm9hcmRSZXZpc2lvbiUzQSUyMG51bGwlN0QiPjxzdHJ1Y3QgaWQ9Imhvc3QucGxhdGZvcm1zLlBDLlBsYXRmb3JtL0JPQVJEIj4NCisgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmROYW1lIj5pbnRlbC14ODY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImJvYXJkRmFtaWx5Ij5pbnRlbC14ODY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImJvYXJkUmV2aXNpb24iPm51bGw8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQ1BVIiB0eXBlPSJ4ZGMucGxhdGZvcm0uSUV4ZUNvbnRleHQuQ3B1IiB2YWx1ZT0iJTdCaWQlM0ElMjAwJTJDJTIwY2F0YWxvZ05hbWUlM0ElMjBob3N0LnBsYXRmb3Jtcy5QQyUyQyUyMGRldmljZU5hbWUlM0ElMjBJbnRlbDgwNTg2JTJDJTIwcmV2aXNpb24lM0ElMjAlMkMlMjBjbG9ja1JhdGUlM0ElMjAweDNlOCU3RCI+PHN0cnVjdCBpZD0iaG9zdC5wbGF0Zm9ybXMuUEMuUGxhdGZvcm0vQ1BVIj4NCisgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY2F0YWxvZ05hbWUiPmhvc3QucGxhdGZvcm1zLlBDPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkZXZpY2VOYW1lIj5JbnRlbDgwNTg2PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyZXZpc2lvbiIvPg0KKyAgPGZpZWxkIG5hbWU9ImNsb2NrUmF0ZSI+MHgzZTg8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJob3N0LnBsYXRmb3Jtcy5QQy5JbnRlbDgwNTg2IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5wbGF0Zm9ybSIgdmVyc2lvbj0iMSwgMCwgMSwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnBsYXRmb3JtLkV4ZUNvbnRleHQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucGxhdGZvcm0uVXRpbHMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5jZmciIHZlcnNpb249IjEsIDAsIDIsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5jZmcuUHJvZ3JhbSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnZW4iIHR5cGU9InhkYy5jZmcuUHJvZ3JhbS5HZW5lcmF0aW9uT3B0aW9ucyIgdmFsdWU9IiU3QmRlYnVnZ2VyRmlsZXMlM0ElMjB1bmRlZmluZWQlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5jZmcuUHJvZ3JhbS9nZW4iPg0KKyAgPGZpZWxkIG5hbWU9ImRlYnVnZ2VyRmlsZXMiPnVuZGVmaW5lZDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnbG9iYWxTZWN0aW9uIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeXNTdGFjayIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3RhY2siIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImhlYXAiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImFyZ1NpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXhlY0NtZCIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iLi9pc3FydFRlc3QxLVRJTUUueDg2R1ciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxpbmtUZW1wbGF0ZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWFpbiIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZWN0TWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3lzdGVtIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWUiIHR5cGU9InN0cmluZyIgdmFsdWU9ImlzcXJ0VGVzdDEtVElNRS54ODZHVyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVpbGRQYWNrYWdlIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJjaGFybGllLnNxcnRsaWIudGVzdCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZW5kaWFuIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJsaXR0bGUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvZGVNb2RlbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGF0YU1vZGVsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJidWlsZCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCb2JqZWN0JTIwT2JqZWN0JTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjcHUiIHR5cGU9InhkYy5wbGF0Zm9ybS5JRXhlQ29udGV4dC5JbnN0YW5jZSIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGNhdGFsb2dOYW1lJTNBJTIwaG9zdC5wbGF0Zm9ybXMuUEMlMkMlMjBkZXZpY2VOYW1lJTNBJTIwSW50ZWw4MDU4NiUyQyUyMHJldmlzaW9uJTNBJTIwJTJDJTIwY2xvY2tSYXRlJTNBJTIwMHgzZTglMkMlMjBib2FyZCUzQSUyMCU3QmlkJTNBJTIwMCUyQyUyMGJvYXJkTmFtZSUzQSUyMGludGVsLXg4NiUyQyUyMGJvYXJkRmFtaWx5JTNBJTIwaW50ZWwteDg2JTJDJTIwYm9hcmRSZXZpc2lvbiUzQSUyMG51bGwlN0QlMkMlMjBhdHRycyUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDFhNjExNzIlM0ElM0ElMjh4ZGMucGxhdGZvcm0uSUNwdURhdGFTaGVldC5JbnN0YW5jZSUyOWhvc3QucGxhdGZvcm1zLlBDLkludGVsODA1ODYuSW5zdGFuY2UlMjMwJTJDJTIwbWVtb3J5TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTdEIj48aW5zdGFuY2UgaWQ9InhkYy5wbGF0Zm9ybS5FeGVDb250ZXh0Lkluc3RhbmNlIzAiPg0KKyAgPGZpZWxkIG5hbWU9ImlkIj4wPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjYXRhbG9nTmFtZSI+aG9zdC5wbGF0Zm9ybXMuUEM8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRldmljZU5hbWUiPkludGVsODA1ODY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJldmlzaW9uIi8+DQorICA8ZmllbGQgbmFtZT0iY2xvY2tSYXRlIj4weDNlODwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmQiPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucGxhdGZvcm0uRXhlQ29udGV4dC5JbnN0YW5jZSMwL2JvYXJkIj4NCisgICAgICA8ZmllbGQgbmFtZT0iaWQiPjA8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJib2FyZE5hbWUiPmludGVsLXg4NjwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9ImJvYXJkRmFtaWx5Ij5pbnRlbC14ODY8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJib2FyZFJldmlzaW9uIj5udWxsPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImF0dHJzIj54ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSRPYmpAMWE2MTE3Mjo6KHhkYy5wbGF0Zm9ybS5JQ3B1RGF0YVNoZWV0Lkluc3RhbmNlKWhvc3QucGxhdGZvcm1zLlBDLkludGVsODA1ODYuSW5zdGFuY2UjMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5TWFwIi8+DQorPC9pbnN0YW5jZT4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InBsYXRmb3JtTmFtZSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iaG9zdC5wbGF0Zm9ybXMuUEMiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InBsYXRmb3JtIiB0eXBlPSJ4ZGMucGxhdGZvcm0uSVBsYXRmb3JtLkluc3RhbmNlIiB2YWx1ZT0iJTdCZXh0ZXJuYWxNZW1vcnlNYXAlM0ElMjAlNUIlMEElMEElNUQlMkMlMjBjdXN0b21NZW1vcnlNYXAlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByZW5hbWVNYXAlM0ElMjAlNUIlMEElMEElNUQlMkMlMjBkYXRhTWVtb3J5JTNBJTIwdW5kZWZpbmVkJTJDJTIwY29kZU1lbW9yeSUzQSUyMHVuZGVmaW5lZCUyQyUyMHN0YWNrTWVtb3J5JTNBJTIwdW5kZWZpbmVkJTJDJTIwc2VjdE1hcCUzQSUyMCU1QiUwQSUwQSU1RCU3RCI+PGluc3RhbmNlIGlkPSJob3N0LnBsYXRmb3Jtcy5QQy5QbGF0Zm9ybS5JbnN0YW5jZSMwIj4NCisgIDxmaWVsZCBuYW1lPSJleHRlcm5hbE1lbW9yeU1hcCIvPg0KKyAgPGZpZWxkIG5hbWU9ImN1c3RvbU1lbW9yeU1hcCIvPg0KKyAgPGZpZWxkIG5hbWU9InJlbmFtZU1hcCIvPg0KKyAgPGZpZWxkIG5hbWU9ImRhdGFNZW1vcnkiPnVuZGVmaW5lZDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZU1lbW9yeSI+dW5kZWZpbmVkPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJzdGFja01lbW9yeSI+dW5kZWZpbmVkPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJzZWN0TWFwIi8+DQorPC9pbnN0YW5jZT4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Imdsb2JhbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN5bWJvbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQyUyNyUyQyUyMDB4MSU1RCUyQyUwQSU1QiUyN3hkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DJTI3JTJDJTIwMHgxJTVEJTBBJTVEIj48bWFwIGlkPSJ4ZGMuY2ZnLlByb2dyYW0vc3ltYm9sIiBsZW5ndGg9IjIiPg0KKyAgPGVudHJ5IGtleT0ieGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQyI+MHgxPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9InhkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DIj4weDE8L2VudHJ5Pg0KKzwvbWFwPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZml4ZWRDb2RlQWRkciIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZml4ZWREYXRhQWRkciIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibG9hZEZpeGVkRGF0YUFkZHIiIHR5cGU9InVuZGVmaW5lZCIgdmFsdWU9InVuZGVmaW5lZCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibG9hZFJvbSIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5jZmcuTWFpbiIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucnVudGltZSIgdmVyc2lvbj0iMiwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9hc3NlcnRGYWlsZWQiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBhc3NlcnRpb24lMjBmYWlsdXJlJTI1cyUyNXMlMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzAiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+YXNzZXJ0aW9uIGZhaWx1cmUlcyVzPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Db3JlIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2luaXRpYWxpemVkUGFyYW1zIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwQV9pbml0aWFsaXplZFBhcmFtcyUzQSUyMHVuaW5pdGlhbGl6ZWQlMjBQYXJhbXMlMjBzdHJ1Y3QlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+QV9pbml0aWFsaXplZFBhcmFtczogdW5pbml0aWFsaXplZCBQYXJhbXMgc3RydWN0PC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5EZWZhdWx0cy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5EaWFncyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkRpYWdzL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzczIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFTlRSWSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRVhJVCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTElGRUNZQ0xFIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJJTlRFUk5BTCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQVNTRVJUIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjEiIHR5cGU9Im51bWJlciIgdmFsdWU9IjI1NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjMiIHR5cGU9Im51bWJlciIgdmFsdWU9IjEwMjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI0IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyMDQ4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjYiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgxOTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI3IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNjM4NCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjgiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzY4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBTEwiIHR5cGU9Im51bWJlciIgdmFsdWU9IjY1NTM1Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZXRNYXNrRW5hYmxlZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkaWN0QmFzZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5FcnJvciIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJOVU1BUkdTIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX2dlbmVyaWMiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBnZW5lcmljJTIwZXJyb3IlM0ElMjAlMjVzJTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxIj4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPmdlbmVyaWMgZXJyb3I6ICVzPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9tZW1vcnkiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBvdXQlMjBvZiUyMG1lbW9yeSUzQSUyMGhlYXAlM0QweCUyNXglMkMlMjBzaXplJTNEJTI1dSUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5vdXQgb2YgbWVtb3J5OiBoZWFwPTB4JXgsIHNpemU9JXU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwb2xpY3kiIHR5cGU9Im9iamVjdCIgdmFsdWU9InhkYy5ydW50aW1lLkVycm9yLlVOV0lORCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icmFpc2VIb29rIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4RGVwdGgiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkdhdGUiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuR2F0ZU51bGwiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5HYXRlTnVsbC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9CTE9DS0lORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9QUkVFTVBUSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5VTUFSR1MiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlBSSU5URklEIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2NvbnN0cnVjdCIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAlM0MtLSUyMGNvbnN0cnVjdCUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2NyZWF0ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAlM0MtLSUyMGNyZWF0ZSUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2Rlc3RydWN0IiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMC0tJTNFJTIwZGVzdHJ1Y3QlM0ElMjAlMjglMjVwJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4NDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj4tLT4gZGVzdHJ1Y3Q6ICglcCk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9kZWxldGUiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwLS0lM0UlMjBkZWxldGUlM0ElMjAlMjglMjVwJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4NDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj4tLT4gZGVsZXRlOiAoJXApPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImlkVG9JbmZvIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjclMjM0NjglMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9jb25zdHJ1Y3QlM0ElM0ElM0MtLSUyMGNvbnN0cnVjdCUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTVEJTJDJTBBJTVCJTI3JTIzNDkyJTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlJTNBJTNBJTNDLS0lMjBjcmVhdGUlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU1RCUyQyUwQSU1QiUyNyUyMzUxMyUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0JTNBJTNBLS0lM0UlMjBkZXN0cnVjdCUzQSUyMCUyOCUyNXAlMjklNUQlMkMlMEElNUIlMjclMjM1MzIlMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9kZWxldGUlM0ElM0EtLSUzRSUyMGRlbGV0ZSUzQSUyMCUyOCUyNXAlMjklNUQlMEElNUQiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nZ2VyQnVmIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZ2dlclN5cyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5NYWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfR2F0ZVByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDElMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBRX0JMT0NLSU5HJTNBJTIwMHgxJTJDJTIwUV9QUkVFTVBUSU5HJTNBJTIwMHgyJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxZDg3Yjg1JTNBJTNBJTI4eGRjLnJ1bnRpbWUuSUdhdGVQcm92aWRlci5Nb2R1bGUlMjl4ZGMucnVudGltZS5HYXRlTnVsbCUyQyUyMGFic3RyYWN0SW5zdGFuY2VzJTI0JTNBJTIwZmFsc2UlN0QiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTWVtb3J5IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3OSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9CTE9DS0lORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGVmYXVsdEhlYXBJbnN0YW5jZSIgdHlwZT0ieGRjLnJ1bnRpbWUuSUhlYXAuSW5zdGFuY2UiIHZhbHVlPSIlN0IlN0QiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGVmYXVsdEhlYXBTaXplIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJIZWFwUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDIlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDlmYThmJTNBJTNBJTI4eGRjLnJ1bnRpbWUuSUhlYXAuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuSGVhcFN0ZCUyQyUyMGFic3RyYWN0SW5zdGFuY2VzJTI0JTNBJTIwdHJ1ZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5IZWFwTWluIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkhlYXBTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfbm9SVFNNZW1vcnkiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBUaGUlMjBSVFMlMjBoZWFwJTIwaXMlMjB1c2VkJTIwdXAuJTIwRXhhbWluZSUyMFByb2dyYW0uaGVhcC4lMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzQiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+VGhlIFJUUyBoZWFwIGlzIHVzZWQgdXAuIEV4YW1pbmUgUHJvZ3JhbS5oZWFwLjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfemVyb1NpemUiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBIZWFwU3RkX2NyZWF0ZSUyMGNhbm5vdCUyMGhhdmUlMjBhJTIwemVybyUyMHNpemUlMjB2YWx1ZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5IZWFwU3RkX2NyZWF0ZSBjYW5ub3QgaGF2ZSBhIHplcm8gc2l6ZSB2YWx1ZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2ludmFsaWRUb3RhbEZyZWVTaXplIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwSGVhcFN0ZCUyMGluc3RhbmNlJTIwdG90YWxGcmVlU2l6ZSUyMGlzJTIwZ3JlYXRlciUyMHRoYW4lMjBzdGFydGluZyUyMHNpemUlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZCBpbnN0YW5jZSB0b3RhbEZyZWVTaXplIGlzIGdyZWF0ZXIgdGhhbiBzdGFydGluZyBzaXplPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfaW52YWxpZEFsaWdubWVudCIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEhlYXBTdGRfYWxsb2MlMjAtJTIwcmVxdWVzdGVkJTIwYWxpZ25tZW50JTIwaXMlMjBncmVhdGVyJTIwdGhhbiUyMGFsbG93ZWQlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZF9hbGxvYyAtIHJlcXVlc3RlZCBhbGlnbm1lbnQgaXMgZ3JlYXRlciB0aGFuIGFsbG93ZWQ8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TdGFydHVwIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJET05FIiB0eXBlPSJudW1iZXIiIHZhbHVlPSItMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTk9URE9ORSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4UGFzc2VzIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZmlyc3RGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibGFzdEZ4bnMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyZXNldEZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3RhcnRNb2RzRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc19fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXhlY0ltcGwiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2Z4blRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FJTJDJTIwJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FJTJDJTIwJTI2YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2Z4blJ0cyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCdHJ1ZSUyQyUyMHRydWUlMkMlMjBmYWxzZSU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuUnRzIiBsZW5ndGg9IjMiPg0KKyAgPGVsZW0+dHJ1ZTwvZWxlbT4NCisgIDxlbGVtPnRydWU8L2VsZW0+DQorICA8ZWxlbT5mYWxzZTwvZWxlbT4NCis8L3ZlY3Rvcj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3lzdGVtIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuU3lzdGVtL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iU1RBVFVTX1VOS05PV04iIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxOTY2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2Nhbm5vdEZpdEludG9BcmciIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBBX2Nhbm5vdEZpdEludG9BcmclM0ElMjBzaXplb2YlMjhGbG9hdCUyOSUyMCUzRSUyMHNpemVvZiUyOEFyZyUyOSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNSI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5BX2Nhbm5vdEZpdEludG9Bcmc6IHNpemVvZihGbG9hdCkgPiBzaXplb2YoQXJnKTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleHRlbmRlZEZvcm1hdHMiIHR5cGU9InN0cmluZyIgdmFsdWU9IiUyNSUyNEwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlN1cHBvcnRQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4MyUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMTMyYWU3JTNBJTNBJTI4eGRjLnJ1bnRpbWUuSVN5c3RlbVN1cHBvcnQuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuU3lzTWluJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYXhBdGV4aXRIYW5kbGVycyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXh0ZW5kRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleGl0RnhucyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9HYXRlUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHg0JTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwUV9CTE9DS0lORyUzQSUyMDB4MSUyQyUyMFFfUFJFRU1QVElORyUzQSUyMDB4MiUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMTVlMjkzYSUzQSUzQSUyOHhkYy5ydW50aW1lLklHYXRlUHJvdmlkZXIuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkMlMjBhYnN0cmFjdEluc3RhbmNlcyUyNCUzQSUyMGZhbHNlJTdEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN5c1N0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXNNaW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgzIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZWaWV3SW5mbyIgdHlwZT0ieGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSIgdmFsdWU9IiU3QnZpZXdNYXAlM0ElMjAlNUIlMEElNUIlMjdNb2R1bGUlMjclMkMlMjAlN0J0eXBlJTNBJTIwTU9EVUxFJTJDJTIwdmlld0luaXRGeG4lM0ElMjB2aWV3SW5pdE1vZHVsZSUyQyUyMHN0cnVjdE5hbWUlM0ElMjBNb2R1bGVWaWV3JTdEJTVEJTJDJTBBJTVCJTI3T3V0cHV0QnVmZmVyJTI3JTJDJTIwJTdCdHlwZSUzQSUyME1PRFVMRV9EQVRBJTJDJTIwdmlld0luaXRGeG4lM0ElMjB2aWV3SW5pdE91dHB1dEJ1ZmZlciUyQyUyMHN0cnVjdE5hbWUlM0ElMjBCdWZmZXJFbnRyeVZpZXclN0QlNUQlMEElNUQlMkMlMjBzaG93UmF3VGFiJTNBJTIwdHJ1ZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVmU2l6ZSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTAyNCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZmx1c2hBdEV4aXQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZWN0aW9uTmFtZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ib3V0cHV0RnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJvdXRwdXRGdW5jIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRleHQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVVbmtub3duIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlN0J1bmtub3duLWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVFbXB0eSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCZW1wdHktaW5zdGFuY2UtbmFtZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZVN0YXRpYyIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCc3RhdGljLWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImlzTG9hZGVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2hhclRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCMHgwJTJDJTIwMHg0MSUyQyUyMDB4NWYlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4NTAlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHg3MyUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDUwJTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NjMlMkMlMjAweDc0JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NGQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg3NiUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4MjAlMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHg1ZiUyQyUyMDB4NjMlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDc2JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHgyMCUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDc2JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2MyUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDQ2JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDY1JTJDJTIwMHg1MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjclMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDVmJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjMlMkMlMjAweDIwJTJDJTIwMHgyZCUyQyUyMDB4MjAlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NzElMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg2NyUyQyUyMDB4NmUlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg3NyUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgwJTJDJTIwMHg0MSUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDQ2JTJDJTIwMHg2OSUyQyUyMDB4NzQlMkMlMjAweDQ5JTJDJTIwMHg2ZSUyQyUyMDB4NzQlMkMlMjAweDZmJTJDJTIwMHg0MSUyQyUyMDB4NzIlMkMlMjAweDY3JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2ZiUyQyUyMDB4NjYlMkMlMjAweDI4JTJDJTIwMHg0NiUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDI5JTJDJTIwMHgyMCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NmYlMkMlMjAweDY2JTJDJTIwMHgyOCUyQyUyMDB4NDElMkMlMjAweDcyJTJDJTIwMHg2NyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDYxJTJDJTIwMHg3MyUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg2NiUyQyUyMDB4NjElMkMlMjAweDY5JTJDJTIwMHg2YyUyQyUyMDB4NzUlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDY3JTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NjklMkMlMjAweDYzJTJDJTIwMHgyMCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NmYlMkMlMjAweDc1JTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDZmJTJDJTIwMHg2NiUyQyUyMDB4MjAlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4NmQlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4NzklMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDNkJTJDJTIwMHgzMCUyQyUyMDB4NzglMkMlMjAweDI1JTJDJTIwMHg3OCUyQyUyMDB4MmMlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4M2QlMkMlMjAweDI1JTJDJTIwMHg3NSUyQyUyMDB4MCUyQyUyMDB4NjYlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjUlMkMlMjAweDI4JTJDJTIwMHgyOSUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NzYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NzclMkMlMjAweDc0JTJDJTIwMHg2OCUyQyUyMDB4MmQlMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4NmMlMkMlMjAweDc5JTJDJTIwMHgyMCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDRkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDAlMkMlMjAweDU0JTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg1MiUyQyUyMDB4NTQlMkMlMjAweDUzJTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDc1JTJDJTIwMHg3MCUyQyUyMDB4MmUlMkMlMjAweDIwJTJDJTIwMHg0NSUyQyUyMDB4NzglMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDUwJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHgyZSUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHgzYyUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI4JTJDJTIwMHgyNyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDNjJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjglMkMlMjAweDI3JTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDI3JTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDY0JTJDJTIwMHg2NSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyOCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDY0JTJDJTIwMHg2NSUyQyUyMDB4NmMlMkMlMjAweDY1JTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjglMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDc4JTJDJTIwMHg2NCUyQyUyMDB4NjMlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDZlJTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDQxJTJDJTIwMHg3MyUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDAlMkMlMjAweDQzJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0NCUyQyUyMDB4NjUlMkMlMjAweDY2JTJDJTIwMHg2MSUyQyUyMDB4NzUlMkMlMjAweDZjJTJDJTIwMHg3NCUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDQ0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDY3JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NDUlMkMlMjAweDcyJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHgwJTJDJTIwMHg0NyUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDclMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDRlJTJDJTIwMHg3NSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHgwJTJDJTIwMHg0YyUyQyUyMDB4NmYlMkMlMjAweDY3JTJDJTIwMHgwJTJDJTIwMHg0ZCUyQyUyMDB4NjElMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MCUyQyUyMDB4NGQlMkMlMjAweDY1JTJDJTIwMHg2ZCUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHg3OSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4NzUlMkMlMjAweDcwJTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzklMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDZkJTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzklMkMlMjAweDczJTJDJTIwMHg0ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgwJTJDJTIwMHg1NCUyQyUyMDB4NjUlMkMlMjAweDc4JTJDJTIwMHg3NCUyQyUyMDB4MCUyQyUyMDB4NjElMkMlMjAweDYzJTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg3NSUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2YyUyQyUyMDB4NzMlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg2MyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MyUyQyUyMDB4NmIlMkMlMjAweDczJTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4NDMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjMlMkMlMjAweDZiJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHgwJTJDJTIwMHg0MiUyQyUyMDB4NjUlMkMlMjAweDZlJTJDJTIwMHg2MyUyQyUyMDB4NjglMkMlMjAweDAlNUQiPjx2ZWN0b3IgaWQ9InhkYy5ydW50aW1lLlRleHQvY2hhclRhYiIgbGVuZ3RoPSI2OTciPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDUwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDQ2PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzE8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDQ2PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDQ5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHg0NjwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4M2U8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDNkPC9lbGVtPg0KKyAgPGVsZW0+MHgzMDwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4MmM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4M2Q8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Nzc8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDU0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MjwvZWxlbT4NCisgIDxlbGVtPjB4NTQ8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NTwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDUwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgzYzwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNzwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyNzwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDNjPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgzZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgzZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQzPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDc8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDRlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmI8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDZiPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorPC92ZWN0b3I+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJub2RlVGFiIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlN0JsZWZ0JTNBJTIwMHgwJTJDJTIwcmlnaHQlM0ElMjAweDAlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHgyMjUlMkMlMjByaWdodCUzQSUyMDB4MjJhJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyMzMlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDIzYSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjNmJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNDglN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI0ZSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjU0JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNTklN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI2MiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjY2JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNmIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI3MiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjdhJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyODIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI4OSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjkwJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4Mjk1JTJDJTIwcmlnaHQlM0ElMjAweDI5YiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMTElMkMlMjByaWdodCUzQSUyMDB4MmEyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAxMiUyQyUyMHJpZ2h0JTNBJTIwMHgyYWElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDExJTJDJTIwcmlnaHQlM0ElMjAweDJiMyU3RCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiIiBsZW5ndGg9IjIxIj4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MDwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDA8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MjI1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjJhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyMzM8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIzYTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjNmPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNDg8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI0ZTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjU0PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNTk8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2NjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2YjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3YTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4OTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI5MDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4Mjk1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjliPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE4Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDExPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MmEyPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE5Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDEyPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MmFhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIwIj4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDExPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MmIzPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorPC92ZWN0b3I+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjaGFyQ250IiB0eXBlPSJudW1iZXIiIHZhbHVlPSI2OTciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5vZGVDbnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aXNpdFJvcGVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aXNpdFJvcGVGeG4yIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGltZXN0YW1wIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcE51bGwiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGltZXN0YW1wU3RkIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlR5cGVzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJnbnUudGFyZ2V0cy5ydHM4NkdXIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iYWNtZS51dGlscy5jbG9ja3MiIHZlcnNpb249IiIgcmVwb3NpdG9yeT0iRDovd29yay90dXRvcmlhbC9yZXBvLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZhY21lX3V0aWxzX2Nsb2Nrc19DbG9ja1N0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4NyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iYWNtZS51dGlscyIgdmVyc2lvbj0iIiByZXBvc2l0b3J5PSJEOi93b3JrL3R1dG9yaWFsL3JlcG8vIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJhY21lLnV0aWxzLkJlbmNoIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0iYWNtZS51dGlscy5CZW5jaC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZhY21lX3V0aWxzX0JlbmNoX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzg4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJQQ2xvY2siIHR5cGU9ImFjbWUudXRpbHMuQmVuY2hfUENsb2NrLk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHg1JTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakA3NGNiMDIlM0ElM0ElMjhhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2suTW9kdWxlJTI5YWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImVuYWJsZUZsYWciIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iY2hhcmxpZS5zcXJ0bGliLnRlc3QiIHZlcnNpb249IiIgcmVwb3NpdG9yeT0iRDovd29yay90dXRvcmlhbC9yZXBvLyI+CisgICAgPC9wYWNrYWdlPgorPC9pbXBvcnRzPgorPC9jb25maWd1cmF0aW9uPgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUzN2YxOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5kZXAKQEAgLTAsMCArMSw4NyBAQAorIworIyBUaGUgZm9sbG93aW5nIGlzIGdlbmVyYXRlZCBieSB1dGlscy5nZW5EZXAgZm9yIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVworIworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmMgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmggcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLnhkbDppc3FydFRlc3QxLmNmZyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuY2ZnIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL0JlbmNoLnhzIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2kgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL0ludGVsODA1ODYueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL1BsYXRmb3JtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9ob3N0L3BsYXRmb3Jtcy9QQy9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvTWFpbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vRXhlQ29udGV4dC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0lQbGF0Zm9ybS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL1V0aWxzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Nb2RlbC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Qcm9ncmFtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0YXRlUmVhZGVyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0cnVjdHVyZURlY29kZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBNaW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyQnVmLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJTeXMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RpbWVzdGFtcC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHMgCisKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL0JlbmNoLnhzOgorRDovd29yay90dXRvcmlhbC9yZXBvL2NoYXJsaWUvc3FydGxpYi9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL0ludGVsODA1ODYueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvaG9zdC9wbGF0Zm9ybXMvUEMvUGxhdGZvcm0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvaG9zdC9wbGF0Zm9ybXMvUEMvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvUHJvZ3JhbS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL29tMi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vRXhlQ29udGV4dC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vSVBsYXRmb3JtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9VdGlscy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L01vZGVsLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvUHJvZ3JhbS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0YXRlUmVhZGVyLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RydWN0dXJlRGVjb2Rlci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwTWluLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyQnVmLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlclN5cy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGltZXN0YW1wLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL1RyYWNlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90ZW1wbGF0ZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaToKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzOgorCisKK2RlZmluZSBFWEVDLmlzcXJ0VGVzdDEtVElNRS54ODZHVworCisuL2lzcXJ0VGVzdDEtVElNRS54ODZHVworZW5kZWYKKworIworIyBUaGUgZm9sbG93aW5nIGlzIGdlbmVyYXRlZCBieSBqYXZhCisjCisKK2lzcXJ0VGVzdDEtVElNRS54ODZHVzogRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvbGliL2FjbWUudXRpbHMuYTg2R1cgRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzL2xpYi9hY21lLnV0aWxzLmNsb2Nrcy5hODZHVyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvcnRzODZHVy9saWIvZ251LnRhcmdldHMucnRzODZHVy5hODZHVyBEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliL2xpYi9pc3FydF91bnJvbGwuYTg2R1cgCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL2xpbmtjbWQueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9saW5rY21kLnhkdCAKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5jIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy54ZGw6IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvLmludGVyZmFjZXMgRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5pbnRlcmZhY2VzIEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzLy5pbnRlcmZhY2VzIC5pbnRlcmZhY2VzIAorCisjCisjIHJ1bGUtbGVzcyBnb2FscyBmb3IgZmlsZXMgb3V0c2lkZSB0aGlzIHBhY2thZ2UKKyMgKHRoZXNlIGdvYWxzIGZvcmNlIGEgcmUtYnVpbGQgaWYgdGhlc2UgZmlsZXMgYXJlCisjIG1vdmVkIG9yIGRlbGV0ZWQpCisjCitEOi93b3JrL3R1dG9yaWFsL3JlcG8vYWNtZS91dGlscy9saWIvYWNtZS51dGlscy5hODZHVzoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9hY21lL3V0aWxzL2Nsb2Nrcy9saWIvYWNtZS51dGlscy5jbG9ja3MuYTg2R1c6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvcnRzODZHVy9saWIvZ251LnRhcmdldHMucnRzODZHVy5hODZHVzoKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9jaGFybGllL3NxcnRsaWIvbGliL2lzcXJ0X3Vucm9sbC5hODZHVzoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvbGlua2NtZC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvbGlua2NtZC54ZHQ6CitEOi93b3JrL3R1dG9yaWFsL3JlcG8vY2hhcmxpZS9zcXJ0bGliLy5pbnRlcmZhY2VzOgorRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvY2xvY2tzLy5pbnRlcmZhY2VzOgorRDovd29yay90dXRvcmlhbC9yZXBvL2FjbWUvdXRpbHMvLmludGVyZmFjZXM6CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYwZjEyOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5oCkBAIC0wLDAgKzEsMTMgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKK2V4dGVybiBpbnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQzsKKworZXh0ZXJuIGludCB4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQzsKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjUxNzBmOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5tYWsKQEAgLTAsMCArMSw3NyBAQAorIworIyAgRG8gbm90IGVkaXQgdGhpcyBmaWxlLiAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIAorIyAgcGFja2FnZS5ibGQuICBBbnkgbW9kaWZpY2F0aW9ucyB0byB0aGlzIGZpbGUgd2lsbCBiZSAKKyMgIG92ZXJ3cml0dGVuIHdoZW5ldmVyIG1ha2VmaWxlcyBhcmUgcmUtZ2VuZXJhdGVkLgorIworIyAgdGFyZ2V0IGNvbXBhdGliaWxpdHkga2V5ID0gZ251LnRhcmdldHMuTWluZ3d7MSwwLDMuNCw1CisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLm84NkdXLmRlcAorZW5kaWYKKworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLm84NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cubzg2R1c6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5jIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjICAtV3VudXNlZCAgLURmYXI9ICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2NmZy8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cubzg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLm84NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5vODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5zODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLnM4NkdXOiBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuYyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDg2R1cgLVMgJDwgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAtYyAgLXggYyAtUyAtV3VudXNlZCAgLURmYXI9ICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2NmZy8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgIC1EeGRjX2NmZ19faGVhZGVyX189J2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuczg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLnM4NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5zODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vODZHVy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm84NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vODZHVzogaXNxcnRUZXN0MS5jIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjICAtV3VudXNlZCAgLURmYXI9ICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEubzg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEubzg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEubzg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5zODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEuczg2R1c6IGlzcXJ0VGVzdDEuYyBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDg2R1cgLVMgJDwgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAtYyAgLXggYyAtUyAtV3VudXNlZCAgLURmYXI9ICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0nY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdjaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEuczg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEuczg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEuczg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitjbGVhbiw4NkdXIDo6CisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5vODZHVworCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vODZHVworCS0kKFJNKSBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuczg2R1cKKwktJChSTSkgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEuczg2R1cKKworaXNxcnRUZXN0MS1USU1FLng4NkdXOiBwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cubzg2R1cgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FL2lzcXJ0VGVzdDEubzg2R1cgcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLm1haworCitjbGVhbjo6CisJLSQoUk0pIHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5tYWsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5vODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5vODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODVmODlkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLm84NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5vODZHVy5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cubzg2R1cuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiMTY3M2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cubzg2R1cuZGVwCkBAIC0wLDAgKzEsNDkgQEAKK3BhY2thZ2UvY2ZnLy9pc3FydFRlc3QxLVRJTUVfeDg2R1cubzg2R1c6IHBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5jIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmggLi4vLi4vLi4vYWNtZS91dGlscy9CZW5jaC5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL0Nsb2NrU3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Db3JlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay5oIC4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9CZW5jaF9QQ2xvY2suaCAuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oIA0KK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5jOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmg6DQorLi4vLi4vLi4vYWNtZS91dGlscy9CZW5jaC5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL0Nsb2NrU3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Db3JlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay5oOg0KKy4uLy4uLy4uL2FjbWUvdXRpbHMvcGFja2FnZS9CZW5jaF9QQ2xvY2suaDoNCisuLi8uLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5yb3YueHMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cucm92LnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2Zjk1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cucm92LnhzCkBAIC0wLDAgKzEsNDY3MyBAQAorX19vID0gbnVsbAorX19vYmogPSBbCisgICAgdGhpcywgIC8vICMwIAorICAgIHt9LCAgICAvLyAjMSAKKyAgICB7fSwgICAgLy8gIzIgeGRjLnJ1bnRpbWUuQXNzZXJ0CisgICAgW10sICAgIC8vICMzIHhkYy5ydW50aW1lLkFzc2VydC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM0IHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMAorICAgIHt9LCAgICAvLyAjNSB4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNiB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzcgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM4IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzkgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzEwIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTEgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEyIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTMgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTQgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE2IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE4IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE5IHhkYy5ydW50aW1lLkFzc2VydC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwIHhkYy5ydW50aW1lLkNvcmUKKyAgICBbXSwgICAgLy8gIzIxIHhkYy5ydW50aW1lLkNvcmUvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjIgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMAorICAgIHt9LCAgICAvLyAjMjMgeGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kCisgICAgW10sICAgIC8vICMyNCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjcgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyOCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyOSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzMwIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMzMiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMzIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzNCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzM1IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzM2IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzNyB4ZGMucnVudGltZS5Db3JlL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzggeGRjLnJ1bnRpbWUuRGVmYXVsdHMKKyAgICBbXSwgICAgLy8gIzM5IHhkYy5ydW50aW1lLkRlZmF1bHRzLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzQwIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzQxIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM0MiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNDMgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM0NCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM0NSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNDYgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjNDcgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzQ4IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjNDkgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNTAgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM1MSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM1MiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjNTMgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM1NCB4ZGMucnVudGltZS5EZWZhdWx0cy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzU1IHhkYy5ydW50aW1lLkRpYWdzCisgICAgW10sICAgIC8vICM1NiB4ZGMucnVudGltZS5EaWFncy8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM1NyB4ZGMucnVudGltZS5EaWFncy9jb21tb24kCisgICAgW10sICAgIC8vICM1OCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNTkgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzYwIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjEgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjNjIgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzYzIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzY0IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICM2NSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzY2IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzY3IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjNjggeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjkgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzcwIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjNzEgeGRjLnJ1bnRpbWUuRGlhZ3Mvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICM3MiB4ZGMucnVudGltZS5FcnJvcgorICAgIFtdLCAgICAvLyAjNzMgeGRjLnJ1bnRpbWUuRXJyb3IvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNzQgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxCisgICAge30sICAgIC8vICM3NSB4ZGMucnVudGltZS5FcnJvci5EZXNjIzIKKyAgICB7fSwgICAgLy8gIzc2IHhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzc3IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM3OCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNzkgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM4MCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM4MSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODIgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjODMgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzg0IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjODUgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODYgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM4NyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM4OCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjODkgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM5MCB4ZGMucnVudGltZS5FcnJvci92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzkxIHhkYy5ydW50aW1lLkdhdGUKKyAgICBbXSwgICAgLy8gIzkyIHhkYy5ydW50aW1lLkdhdGUvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjOTMgeGRjLnJ1bnRpbWUuR2F0ZS9jb21tb24kCisgICAgW10sICAgIC8vICM5NCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM5NSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM5NiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjOTcgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM5OCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM5OSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEwMCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMDEgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzEwMiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEwMyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTA0IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTA1IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzEwNiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTA3IHhkYy5ydW50aW1lLkdhdGUvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxMDggeGRjLnJ1bnRpbWUuR2F0ZU51bGwKKyAgICBbXSwgICAgLy8gIzEwOSB4ZGMucnVudGltZS5HYXRlTnVsbC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxMTAgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTExIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxMTIgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzExMyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExNCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxMTUgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExNiB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMTcgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExOCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzExOSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxMjAgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxMjEgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTIyIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxMjMgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxMjQgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxMjUgeGRjLnJ1bnRpbWUuTG9nCisgICAgW10sICAgIC8vICMxMjYgeGRjLnJ1bnRpbWUuTG9nLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzEyNyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzAKKyAgICB7fSwgICAgLy8gIzEyOCB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzEKKyAgICB7fSwgICAgLy8gIzEyOSB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMKKyAgICB7fSwgICAgLy8gIzEzMCB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIKKyAgICB7fSwgICAgLy8gIzEzMSB4ZGMucnVudGltZS5Mb2cvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTMyIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTMzIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTM0IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzNSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTM2IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTM3IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMzggeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMzkgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTQwIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxNDEgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTQyIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNDMgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxNDQgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTQ1IHhkYy5ydW50aW1lLkxvZy9pZFRvSW5mbworICAgIFtdLCAgICAvLyAjMTQ2IHhkYy5ydW50aW1lLkxvZy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE0NyB4ZGMucnVudGltZS5NYWluCisgICAgW10sICAgIC8vICMxNDggeGRjLnJ1bnRpbWUuTWFpbi8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNDkgeGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kCisgICAgW10sICAgIC8vICMxNTAgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTUxIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE1MiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTUzIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTU0IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1NSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE1NiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxNTcgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE1OCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1OSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTYwIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTYxIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE2MiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTYzIHhkYy5ydW50aW1lLk1haW4vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxNjQgeGRjLnJ1bnRpbWUuTWVtb3J5CisgICAgW10sICAgIC8vICMxNjUgeGRjLnJ1bnRpbWUuTWVtb3J5LyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE2NiB4ZGMucnVudGltZS5IZWFwU3RkCisgICAgW10sICAgIC8vICMxNjcgeGRjLnJ1bnRpbWUuSGVhcFN0ZC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNjggeGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwCisgICAge30sICAgIC8vICMxNjkgeGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwL2luc3RhbmNlCisgICAge30sICAgIC8vICMxNzAgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNAorICAgIHt9LCAgICAvLyAjMTcxIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMKKyAgICB7fSwgICAgLy8gIzE3MiB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMyCisgICAge30sICAgIC8vICMxNzMgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyM0CisgICAge30sICAgIC8vICMxNzQgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb21tb24kCisgICAgW10sICAgIC8vICMxNzUgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTc2IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE3NyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTc4IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTc5IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4MCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE4MSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxODIgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE4MyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4NCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTg1IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTg2IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE4NyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTg4IHhkYy5ydW50aW1lLkhlYXBTdGQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxODkgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE5MCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE5MSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE5MiB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxOTMgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzE5NCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5NSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTk2IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk3IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE5OCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk5IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzIwMCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjAxIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjAyIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzIwMyB4ZGMucnVudGltZS5NZW1vcnkvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyMDQgeGRjLnJ1bnRpbWUuU3RhcnR1cAorICAgIFtdLCAgICAvLyAjMjA1IHhkYy5ydW50aW1lLlN0YXJ0dXAvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjA2IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjA3IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwOCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyMDkgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxMCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzIxMSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyMTIgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyMTMgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjE0IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyMTUgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyMTYgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzIxNyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxOCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyMTkgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzIyMCB4ZGMucnVudGltZS5TdGFydHVwL2ZpcnN0RnhucworICAgIFtdLCAgICAvLyAjMjIxIHhkYy5ydW50aW1lLlN0YXJ0dXAvbGFzdEZ4bnMKKyAgICBbXSwgICAgLy8gIzIyMiB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMKKyAgICBbXSwgICAgLy8gIzIyMyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5UYWIKKyAgICBbXSwgICAgLy8gIzIyNCB4ZGMucnVudGltZS5TdGFydHVwL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjI1IHhkYy5ydW50aW1lLlN5c3RlbQorICAgIFtdLCAgICAvLyAjMjI2IHhkYy5ydW50aW1lLlN5c3RlbS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMjcgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNQorICAgIHt9LCAgICAvLyAjMjI4IHhkYy5ydW50aW1lLlN5c01pbgorICAgIFtdLCAgICAvLyAjMjI5IHhkYy5ydW50aW1lLlN5c01pbi8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMzAgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzIzMSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIzMiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzIzMyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyMzQgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzIzNSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIzNiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjM3IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjM4IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzIzOSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQwIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI0MSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQyIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjQzIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI0NCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEKKyAgICB7fSwgICAgLy8gIzI0NSB4ZGMucm92LlZpZXdJbmZvCisgICAgW10sICAgIC8vICMyNDYgeGRjLnJvdi5WaWV3SW5mby8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyNDcgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwCisgICAgW10sICAgIC8vICMyNDggeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAKKyAgICB7fSwgICAgLy8gIzI0OSB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nQmFzaWMnCisgICAge30sICAgIC8vICMyNTAgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ1JlY29yZHMnCisgICAgW10sICAgIC8vICMyNTEgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAKKyAgICB7fSwgICAgLy8gIzI1MiB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nTW9kdWxlJworICAgIHt9LCAgICAvLyAjMjUzIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydPdXRwdXRCdWZmZXInCisgICAgW10sICAgIC8vICMyNTQgeGRjLnJ1bnRpbWUuU3lzTWluL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjU1IHhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kCisgICAgW10sICAgIC8vICMyNTYgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNTcgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNTggeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjU5IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyNjAgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyNjEgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzI2MiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2MyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyNjQgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2NSB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyNjYgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2NyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzI2OCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyNjkgeGRjLnJ1bnRpbWUuU3lzdGVtL2V4aXRGeG5zCisgICAgW10sICAgIC8vICMyNzAgeGRjLnJ1bnRpbWUuU3lzdGVtL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjcxIHhkYy5ydW50aW1lLlRleHQKKyAgICBbXSwgICAgLy8gIzI3MiB4ZGMucnVudGltZS5UZXh0LyRpbnN0YW5jZXMKKyAgICBbXSwgICAgLy8gIzI3MyB4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIKKyAgICB7fSwgICAgLy8gIzI3NCB4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI3NSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNzYgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjc3IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNzggeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyNzkgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjgwIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjgxIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4MiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjgzIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjg0IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyODUgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyODYgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjg3IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyODggeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiCisgICAge30sICAgIC8vICMyODkgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAKKyAgICB7fSwgICAgLy8gIzI5MCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMQorICAgIHt9LCAgICAvLyAjMjkxIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yCisgICAge30sICAgIC8vICMyOTIgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzMKKyAgICB7fSwgICAgLy8gIzI5MyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNAorICAgIHt9LCAgICAvLyAjMjk0IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81CisgICAge30sICAgIC8vICMyOTUgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzYKKyAgICB7fSwgICAgLy8gIzI5NiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNworICAgIHt9LCAgICAvLyAjMjk3IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84CisgICAge30sICAgIC8vICMyOTggeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzkKKyAgICB7fSwgICAgLy8gIzI5OSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTAKKyAgICB7fSwgICAgLy8gIzMwMCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTEKKyAgICB7fSwgICAgLy8gIzMwMSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIKKyAgICB7fSwgICAgLy8gIzMwMiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTMKKyAgICB7fSwgICAgLy8gIzMwMyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTQKKyAgICB7fSwgICAgLy8gIzMwNCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUKKyAgICB7fSwgICAgLy8gIzMwNSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTYKKyAgICB7fSwgICAgLy8gIzMwNiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTcKKyAgICB7fSwgICAgLy8gIzMwNyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTgKKyAgICB7fSwgICAgLy8gIzMwOCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTkKKyAgICB7fSwgICAgLy8gIzMwOSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMjAKKyAgICBbXSwgICAgLy8gIzMxMCB4ZGMucnVudGltZS5UZXh0L3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzExIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkCisgICAgW10sICAgIC8vICMzMTIgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMzEzIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzMxNCBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzE1IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMzMTYgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMzMTcgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMzE4IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMzMTkgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMzIwIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMzMjEgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMzMjIgYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzIzIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMzI0IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMyNSBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMzI2IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMzI3IGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzI4IGFjbWUudXRpbHMuQmVuY2gKKyAgICBbXSwgICAgLy8gIzMyOSBhY21lLnV0aWxzLkJlbmNoLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzMzMCBhY21lLnV0aWxzLkJlbmNoL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzMzMSBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMzMzIgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMzMzIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMzMzQgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMzMzUgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzM2IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMzM3IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMzOCBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMzM5IGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzQwIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzNDEgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMzNDIgYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMzQzIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzNDQgYWNtZS51dGlscy5CZW5jaC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzM0NSAKKyAgICB7fSwgICAgLy8gIzM0NiAKKyAgICB7fSwgICAgLy8gIzM0NyAKKyAgICB7fSwgICAgLy8gIzM0OCAKKyAgICB7fSwgICAgLy8gIzM0OSAKKyAgICB7fSwgICAgLy8gIzM1MCAKKyAgICB7fSwgICAgLy8gIzM1MSBnbnUudGFyZ2V0cy5NaW5ndworICAgIHt9LCAgICAvLyAjMzUyIGdudS50YXJnZXRzLk1pbmd3L2FyCisgICAge30sICAgIC8vICMzNTMgZ251LnRhcmdldHMuTWluZ3cvYXJPcHRzCisgICAge30sICAgIC8vICMzNTQgZ251LnRhcmdldHMuTWluZ3cvYXNtCisgICAge30sICAgIC8vICMzNTUgZ251LnRhcmdldHMuTWluZ3cvYXNtT3B0cworICAgIHt9LCAgICAvLyAjMzU2IGdudS50YXJnZXRzLk1pbmd3L2NjCisgICAge30sICAgIC8vICMzNTcgZ251LnRhcmdldHMuTWluZ3cvY2NPcHRzCisgICAge30sICAgIC8vICMzNTggZ251LnRhcmdldHMuTWluZ3cvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAge30sICAgIC8vICMzNTkgZ251LnRhcmdldHMuTWluZ3cvZGVidWdHZW4KKyAgICB7fSwgICAgLy8gIzM2MCBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zCisgICAge30sICAgIC8vICMzNjEgZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLkMnCisgICAge30sICAgIC8vICMzNjIgZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICB7fSwgICAgLy8gIzM2MyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuYycKKyAgICB7fSwgICAgLy8gIzM2NCBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY2MnCisgICAge30sICAgIC8vICMzNjUgZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmNwcCcKKyAgICB7fSwgICAgLy8gIzM2NiBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3h4JworICAgIHt9LCAgICAvLyAjMzY3IGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5zODZHVycKKyAgICB7fSwgICAgLy8gIzM2OCBnbnUudGFyZ2V0cy5NaW5ndy9sbmsKKyAgICB7fSwgICAgLy8gIzM2OSBnbnUudGFyZ2V0cy5NaW5ndy9sbmtPcHRzCisgICAge30sICAgIC8vICMzNzAgZ251LnRhcmdldHMuTWluZ3cvbW9kZWwKKyAgICB7fSwgICAgLy8gIzM3MSBnbnUudGFyZ2V0cy5NaW5ndy9wbGF0Zm9ybXMKKyAgICB7fSwgICAgLy8gIzM3MiBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcworICAgIHt9LCAgICAvLyAjMzczIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScKKyAgICB7fSwgICAgLy8gIzM3NCBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzNzUgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNzYgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJworICAgIHt9LCAgICAvLyAjMzc3IGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM3OCBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM3OSBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZScKKyAgICB7fSwgICAgLy8gIzM4MCBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM4MSBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzgyIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydyZWxlYXNlJworICAgIHt9LCAgICAvLyAjMzgzIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzg0IGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzODUgZ251LnRhcmdldHMuTWluZ3cvc2VjdE1hcAorICAgIHt9LCAgICAvLyAjMzg2IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzCisgICAge30sICAgIC8vICMzODcgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9DaGFyCisgICAge30sICAgIC8vICMzODggZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICB7fSwgICAgLy8gIzM4OSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Zsb2F0CisgICAge30sICAgIC8vICMzOTAgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9GeG4KKyAgICB7fSwgICAgLy8gIzM5MSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0lBcmcKKyAgICB7fSwgICAgLy8gIzM5MiBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludAorICAgIHt9LCAgICAvLyAjMzkzIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50MTYKKyAgICB7fSwgICAgLy8gIzM5NCBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDMyCisgICAge30sICAgIC8vICMzOTUgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ0MAorICAgIHt9LCAgICAvLyAjMzk2IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50NjQKKyAgICB7fSwgICAgLy8gIzM5NyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDgKKyAgICB7fSwgICAgLy8gIzM5OCBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xEb3VibGUKKyAgICB7fSwgICAgLy8gIzM5OSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xMb25nCisgICAge30sICAgIC8vICM0MDAgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Mb25nCisgICAge30sICAgIC8vICM0MDEgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9QdHIKKyAgICB7fSwgICAgLy8gIzQwMiBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1Nob3J0CisgICAge30sICAgIC8vICM0MDMgZ251LnRhcmdldHMuTWluZ3cvdmVyc2lvbk1hcAorICAgIHt9LCAgICAvLyAjNDA0IAorXQorCitfX28gPSBfX29ialswXSAgCisgICAgX19vWyckbW9kdWxlcyddID0gX19vYmpbMS4wXQorICAgIF9fb1snYnVpbGQnXSA9IF9fb2JqWzM0NS4wXQorCitfX28gPSBfX29ialsxXSAgCisgICAgX19vWycjMzI3NzAnXSA9IF9fb2JqWzIuMF0KKyAgICBfX29bJyMzMjc3MSddID0gX19vYmpbMjAuMF0KKyAgICBfX29bJyMzMjc3MiddID0gX19vYmpbMzguMF0KKyAgICBfX29bJyMzMjc3MyddID0gX19vYmpbNTUuMF0KKyAgICBfX29bJyMzMjc3NCddID0gX19vYmpbNzIuMF0KKyAgICBfX29bJyMzMjc3NSddID0gX19vYmpbOTEuMF0KKyAgICBfX29bJyMzMjc3NiddID0gX19vYmpbMTA4LjBdCisgICAgX19vWycjMzI3NzcnXSA9IF9fb2JqWzEyNS4wXQorICAgIF9fb1snIzMyNzc4J10gPSBfX29ialsxNDcuMF0KKyAgICBfX29bJyMzMjc3OSddID0gX19vYmpbMTY0LjBdCisgICAgX19vWycjMzI3ODAnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snIzMyNzgxJ10gPSBfX29ialsyMDQuMF0KKyAgICBfX29bJyMzMjc4MiddID0gX19vYmpbMjI1LjBdCisgICAgX19vWycjMzI3ODMnXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1snIzMyNzg0J10gPSBfX29ialsyNzEuMF0KKyAgICBfX29bJyMzMjc4NyddID0gX19vYmpbMzExLjBdCisgICAgX19vWycjMzI3ODgnXSA9IF9fb2JqWzMyOC4wXQorICAgIF9fb1snYWNtZS51dGlscy5CZW5jaCddID0gX19vYmpbMzI4LjBdCisgICAgX19vWydhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZCddID0gX19vYmpbMzExLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Bc3NlcnQnXSA9IF9fb2JqWzIuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkNvcmUnXSA9IF9fb2JqWzIwLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5EZWZhdWx0cyddID0gX19vYmpbMzguMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkRpYWdzJ10gPSBfX29ials1NS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuRXJyb3InXSA9IF9fb2JqWzcyLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5HYXRlJ10gPSBfX29ials5MS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuR2F0ZU51bGwnXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuSGVhcFN0ZCddID0gX19vYmpbMTY2LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Mb2cnXSA9IF9fb2JqWzEyNS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuTWFpbiddID0gX19vYmpbMTQ3LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5NZW1vcnknXSA9IF9fb2JqWzE2NC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3RhcnR1cCddID0gX19vYmpbMjA0LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TeXNNaW4nXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3lzdGVtJ10gPSBfX29ialsyMjUuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlRleHQnXSA9IF9fb2JqWzI3MS4wXQorCitfX28gPSBfX29ialsyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszLjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0VfYXNzZXJ0RmFpbGVkJ10gPSBfX29ials0LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials1LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNi4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTkuMF0KKworX19vID0gX19vYmpbM10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNF0gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhc3NlcnRpb24rZmFpbHVyZSUyNXMlMjVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzVdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzZdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbN10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzhdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTBdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTFdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxM10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTRdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTVdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMThdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTldICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwXSAgLy8geGRjLnJ1bnRpbWUuQ29yZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjEuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfaW5pdGlhbGl6ZWRQYXJhbXMnXSA9IF9fb2JqWzIyLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzEKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjMuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzcuMF0KKworX19vID0gX19vYmpbMjFdICAvLyB4ZGMucnVudGltZS5Db3JlLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQV9pbml0aWFsaXplZFBhcmFtcyUzQSt1bmluaXRpYWxpemVkK1BhcmFtcytzdHJ1Y3QnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjNdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjRdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMzEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialszMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMzUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjZdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyN10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyOF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI5XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMwXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzNdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzRdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzZdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszN10gIC8vIHhkYy5ydW50aW1lLkNvcmUvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszOS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzIKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNDAuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials0MS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbNTQuMF0KKworX19vID0gX19vYmpbMzldICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzQxXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials0Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzQ0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials0Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials0OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzUwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials1Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0M10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDRdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDZdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0N10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ4XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDldICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUwXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNTEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTFdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUyXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzUzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUzXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1NF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU1XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzU2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncycsICdVVEYtOCcpKQorICAgIF9fb1snQUxMJ10gPSA2NTUzNQorICAgIF9fb1snQVNTRVJUJ10gPSAxNgorICAgIF9fb1snRU5UUlknXSA9IDEKKyAgICBfX29bJ0VYSVQnXSA9IDIKKyAgICBfX29bJ0lOVEVSTkFMJ10gPSA4CisgICAgX19vWydMSUZFQ1lDTEUnXSA9IDQKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzMKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snVVNFUjEnXSA9IDI1NgorICAgIF9fb1snVVNFUjInXSA9IDUxMgorICAgIF9fb1snVVNFUjMnXSA9IDEwMjQKKyAgICBfX29bJ1VTRVI0J10gPSAyMDQ4CisgICAgX19vWydVU0VSNSddID0gNDA5NgorICAgIF9fb1snVVNFUjYnXSA9IDgxOTIKKyAgICBfX29bJ1VTRVI3J10gPSAxNjM4NAorICAgIF9fb1snVVNFUjgnXSA9IDMyNzY4CisgICAgX19vWydjb21tb24kJ10gPSBfX29ials1Ny4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzU4LjBdCisgICAgX19vWydkaWN0QmFzZSddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3NldE1hc2tFbmFibGVkJ10gPSBmYWxzZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ials3MS4wXQorCitfX28gPSBfX29ials1Nl0gIC8vIHhkYy5ydW50aW1lLkRpYWdzLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU3XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNThdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzYzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzY1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbNjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzY5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTldICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYwXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2MV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYyXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2M10gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY0XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjVdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2Nl0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjddICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2OF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjldICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNzAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzBdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzcxXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3Mvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzJdICAvLyB4ZGMucnVudGltZS5FcnJvcgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbNzMuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJywgJ1VURi04JykpCisgICAgX19vWydFX2dlbmVyaWMnXSA9IF9fb2JqWzc0LjBdCisgICAgX19vWydFX21lbW9yeSddID0gX19vYmpbNzUuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzQKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snTlVNQVJHUyddID0gMgorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNzYuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials3Ny4wXQorICAgIF9fb1snbWF4RGVwdGgnXSA9IDE2CisgICAgX19vWydwb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuVU5XSU5EJywgJ1VURi04JykpCisgICAgX19vWydyYWlzZUhvb2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzkwLjBdCisKK19fbyA9IF9fb2JqWzczXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzRdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjMxJywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ2VuZXJpYytlcnJvciUzQSslMjVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc1XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ291dCtvZittZW1vcnklM0EraGVhcCUzRDB4JTI1eCUyQytzaXplJTNEJTI1dScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3Nl0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzc3XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials4OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc4XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3OV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODBdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzgxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4MV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODJdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4M10gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg0XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODVdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg2XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODddICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg4XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzg5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg5XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5MF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzkxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbOTIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials5My4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzk0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxMDcuMF0KKworX19vID0gX19vYmpbOTJdICAvLyB4ZGMucnVudGltZS5HYXRlLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTNdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbOTRdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbOTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials5Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbOTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTAxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTAzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxMDUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk1XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials5Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTZdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5N10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzk4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5OF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTAwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDBdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTAxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDJdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDNdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTA0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNV0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTA2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwN10gIC8vIHhkYy5ydW50aW1lLkdhdGUvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDhdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTA5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCcsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydRX0JMT0NLSU5HJ10gPSAxCisgICAgX19vWydRX1BSRUVNUFRJTkcnXSA9IDIKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzExMC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzExMS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTI0LjBdCisKK19fbyA9IF9fb2JqWzEwOV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExMF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzExMV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTEyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTE0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMTYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTE4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTIwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxMjIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTJdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTEzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTNdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTVdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTddICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMThdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjBdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMjEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjJdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyM10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI1XSAgLy8geGRjLnJ1bnRpbWUuTG9nCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxMjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZycsICdVVEYtOCcpKQorICAgIF9fb1snTF9jb25zdHJ1Y3QnXSA9IF9fb2JqWzEyNy4wXQorICAgIF9fb1snTF9jcmVhdGUnXSA9IF9fb2JqWzEyOC4wXQorICAgIF9fb1snTF9kZWxldGUnXSA9IF9fb2JqWzEyOS4wXQorICAgIF9fb1snTF9kZXN0cnVjdCddID0gX19vYmpbMTMwLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydOVU1BUkdTJ10gPSA4CisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydQUklOVEZJRCddID0gMAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTMxLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTMyLjBdCisgICAgX19vWydpZFRvSW5mbyddID0gX19vYmpbMTQ1LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxNDYuMF0KKworX19vID0gX19vYmpbMTI2XSAgLy8geGRjLnJ1bnRpbWUuTG9nLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjddICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMwJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyOF0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI5XSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMycsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzMF0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctLSUzRStkZXN0cnVjdCUzQSslMjglMjVwJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzMV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTMyXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTMzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTM1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMzcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTM5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTQxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNDMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMzXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTM0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzRdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM1XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEzNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM2XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzN10gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMzguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzOF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM5XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQwXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0MV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0Ml0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDNdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ0XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0NV0gIC8vIHhkYy5ydW50aW1lLkxvZy9pZFRvSW5mbworICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWycjNDY4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2NvbnN0cnVjdCUzQSUzQSUzQy0tK2NvbnN0cnVjdCUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNDY4JykKKyAgICBfX28ucHVzaChfX29bJyM0OTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlJTNBJTNBJTNDLS0rY3JlYXRlJTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM0OTInKQorICAgIF9fby5wdXNoKF9fb1snIzUxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9kZXN0cnVjdCUzQSUzQS0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzUxMycpCisgICAgX19vLnB1c2goX19vWycjNTMyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2RlbGV0ZSUzQSUzQS0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM1MzInKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGaWRUb0luZm8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ2XSAgLy8geGRjLnJ1bnRpbWUuTG9nL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDddICAvLyB4ZGMucnVudGltZS5NYWluCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNDguMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9HYXRlUHJveHknXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc4CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzE0OS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzE1MC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTYzLjBdCisKK19fbyA9IF9fb2JqWzE0OF0gIC8vIHhkYy5ydW50aW1lLk1haW4vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDldICAvLyB4ZGMucnVudGltZS5NYWluL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTUwXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE1MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE1My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTU1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE1Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE1OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTYxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTFdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUyXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUzXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTRdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTVdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1Nl0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTddICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1OF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1OV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYwXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYxXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYyXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYzXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2NF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTY1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnknLCAnVVRGLTgnKSkKKyAgICBfX29bJ0hlYXBQcm94eSddID0gX19vYmpbMTY2LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3OQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydRX0JMT0NLSU5HJ10gPSAxCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxODkuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxOTAuMF0KKyAgICBfX29bJ2RlZmF1bHRIZWFwSW5zdGFuY2UnXSA9IF9fb2JqWzE2OC4wXQorICAgIF9fb1snZGVmYXVsdEhlYXBTaXplJ10gPSA0MDk2CisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyMDMuMF0KKworX19vID0gX19vYmpbMTY1XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5LyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNjcuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfaW52YWxpZEFsaWdubWVudCddID0gX19vYmpbMTcwLjBdCisgICAgX19vWydBX2ludmFsaWRUb3RhbEZyZWVTaXplJ10gPSBfX29ialsxNzEuMF0KKyAgICBfX29bJ0FfemVyb1NpemUnXSA9IF9fb2JqWzE3Mi4wXQorICAgIF9fb1snRV9ub1JUU01lbW9yeSddID0gX19vYmpbMTczLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODAKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTc0LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTc1LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxODguMF0KKworX19vID0gX19vYmpbMTY3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsxNjguMF0KKworX19vID0gX19vYmpbMTY4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRtb2R1bGUnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2luc3RhbmNlJ10gPSBfX29ialsxNjkuMF0KKyAgICBfX29bJ3NpemUnXSA9IDQwOTYKKworX19vID0gX19vYmpbMTY5XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwL2luc3RhbmNlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlJTIzMCUyRmluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyduYW1lJ10gPSBudWxsCisKK19fbyA9IF9fb2JqWzE3MF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzNCcsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkX2FsbG9jKy0rcmVxdWVzdGVkK2FsaWdubWVudCtpcytncmVhdGVyK3RoYW4rYWxsb3dlZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzFdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSGVhcFN0ZCtpbnN0YW5jZSt0b3RhbEZyZWVTaXplK2lzK2dyZWF0ZXIrdGhhbitzdGFydGluZytzaXplJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3Ml0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkX2NyZWF0ZStjYW5ub3QraGF2ZSthK3plcm8rc2l6ZSt2YWx1ZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzNdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjM0JywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVGhlK1JUUytoZWFwK2lzK3VzZWQrdXAuK0V4YW1pbmUrUHJvZ3JhbS5oZWFwLicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzRdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTc1XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE3Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE3Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzldICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODBdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4MV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODJdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4M10gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4NF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg1XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg2XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4OV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTkwXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTkxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTkzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxOTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTk3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTk5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyMDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkxXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTkyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTJdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkzXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk0XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5NV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5Nl0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk3XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk4XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5OV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjAwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwMF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDFdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAyXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwM10gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjA1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJywgJ1VURi04JykpCisgICAgX19vWydET05FJ10gPSAtMQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzgxCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ05PVERPTkUnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzIwNi4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzIwNy4wXQorICAgIF9fb1snZXhlY0ltcGwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JJywgJ1VURi04JykpCisgICAgX19vWydmaXJzdEZ4bnMnXSA9IF9fb2JqWzIyMC4wXQorICAgIF9fb1snbGFzdEZ4bnMnXSA9IF9fb2JqWzIyMS4wXQorICAgIF9fb1snbWF4UGFzc2VzJ10gPSAzMgorICAgIF9fb1sncmVzZXRGeG4nXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydzZnhuUnRzJ10gPSBfX29ialsyMjIuMF0KKyAgICBfX29bJ3NmeG5UYWInXSA9IF9fb2JqWzIyMy4wXQorICAgIF9fb1snc3RhcnRNb2RzRnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzIyNC4wXQorCitfX28gPSBfX29ialsyMDVdICAvLyB4ZGMucnVudGltZS5TdGFydHVwLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA2XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIwN10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyMDguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyMTAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzIxMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyMTQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyMTYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzIxOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA4XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwOV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxMF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxMS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjExXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjEyXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjEzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTNdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTVdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTZdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxN10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxOF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxOV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvZmlyc3RGeG5zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGZmlyc3RGeG5zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvbGFzdEZ4bnMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZsYXN0RnhucycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjJdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZzZnhuUnRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSB0cnVlCisgICAgX19vWycxJ10gPSB0cnVlCisgICAgX19vWycyJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyMjNdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5UYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZzZnhuVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2YWNtZV91dGlsc19CZW5jaF9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbScsICdVVEYtOCcpKQorICAgIF9fb1snQV9jYW5ub3RGaXRJbnRvQXJnJ10gPSBfX29ialsyMjcuMF0KKyAgICBfX29bJ01vZHVsZV9HYXRlUHJveHknXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODIKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snU1RBVFVTX1VOS05PV04nXSA9IDUxOTY2CisgICAgX19vWydTdXBwb3J0UHJveHknXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjU1LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjU2LjBdCisgICAgX19vWydleGl0RnhucyddID0gX19vYmpbMjY5LjBdCisgICAgX19vWydleHRlbmRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSScsICdVVEYtOCcpKQorICAgIF9fb1snZXh0ZW5kZWRGb3JtYXRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNSUyNEwnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21heEF0ZXhpdEhhbmRsZXJzJ10gPSA4CisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyNzAuMF0KKworX19vID0gX19vYmpbMjI2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjddICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQV9jYW5ub3RGaXRJbnRvQXJnJTNBK3NpemVvZiUyOEZsb2F0JTI5KyUzRStzaXplb2YlMjhBcmclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI4XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMjkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbicsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODMKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snYnVmU2l6ZSddID0gMTAyNAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjMwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjMxLjBdCisgICAgX19vWydmbHVzaEF0RXhpdCddID0gdHJ1ZQorICAgIF9fb1snb3V0cHV0RnVuYyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JJywgJ1VURi04JykpCisgICAgX19vWydvdXRwdXRGeG4nXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydyb3ZWaWV3SW5mbyddID0gX19vYmpbMjQ0LjBdCisgICAgX19vWydzZWN0aW9uTmFtZSddID0gbnVsbAorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyNTQuMF0KKworX19vID0gX19vYmpbMjI5XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzBdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIzMV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzIzMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzIzNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjM2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzIzOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzI0MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzMl0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjMzXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzZdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzddICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzOF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzOV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDBdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI0MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDFdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQyXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0M10gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDRdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snJG1vZHVsZSddID0gX19vYmpbMjQ1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMScsICdVVEYtOCcpKQorICAgIF9fb1snc2hvd1Jhd1RhYiddID0gdHJ1ZQorICAgIF9fb1sndmlld01hcCddID0gX19vYmpbMjUxLjBdCisKK19fbyA9IF9fb2JqWzI0NV0gIC8vIHhkYy5yb3YuVmlld0luZm8KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzI0Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDZdICAvLyB4ZGMucm92LlZpZXdJbmZvLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8lMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzI0Ny4wXQorICAgIF9fb1snMSddID0gX19vYmpbMjQ0LjBdCisKK19fbyA9IF9fb2JqWzI0N10gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0luc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyckbW9kdWxlJ10gPSBfX29ialsyNDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJywgJ1VURi04JykpCisgICAgX19vWydzaG93UmF3VGFiJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TWFwJ10gPSBfX29ialsyNDguMF0KKworX19vID0gX19vYmpbMjQ4XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snQmFzaWMnXSA9IF9fb2JqWzI0OS4wXSk7IF9fby4ka2V5cy5wdXNoKCdCYXNpYycpCisgICAgX19vLnB1c2goX19vWydSZWNvcmRzJ10gPSBfX29ialsyNTAuMF0pOyBfX28uJGtleXMucHVzaCgnUmVjb3JkcycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQ5XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ0Jhc2ljJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAlMkZ2aWV3TWFwJTJGJTI3QmFzaWMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQmFzaWNWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSU5TVEFOQ0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0QmFzaWMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUwXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ1JlY29yZHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAlMkYlMjdSZWNvcmRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1JlY29yZFZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JTlNUQU5DRV9EQVRBJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdFJlY29yZHMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUxXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snTW9kdWxlJ10gPSBfX29ialsyNTIuMF0pOyBfX28uJGtleXMucHVzaCgnTW9kdWxlJykKKyAgICBfX28ucHVzaChfX29bJ091dHB1dEJ1ZmZlciddID0gX19vYmpbMjUzLjBdKTsgX19vLiRrZXlzLnB1c2goJ091dHB1dEJ1ZmZlcicpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMSUyRnZpZXdNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUyXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ01vZHVsZScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJTJGdmlld01hcCUyRiUyN01vZHVsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGVWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uTU9EVUxFJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdE1vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTNdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nT3V0cHV0QnVmZmVyJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzElMkZ2aWV3TWFwJTJGJTI3T3V0cHV0QnVmZmVyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0J1ZmZlckVudHJ5VmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLk1PRFVMRV9EQVRBJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdE91dHB1dEJ1ZmZlcicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTRdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1NV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjU2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjU3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjYzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjY1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyNjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU3XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjU4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNThdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU5XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYwXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2MV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2Ml0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYzXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY0XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2NV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjY2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2Nl0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjddICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY4XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2OV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9leGl0RnhucworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGZXhpdEZ4bnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjcwXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzFdICAvLyB4ZGMucnVudGltZS5UZXh0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyNzIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4NAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjaGFyQ250J10gPSA2OTcKKyAgICBfX29bJ2NoYXJUYWInXSA9IF9fb2JqWzI3My4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjc0LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjc1LjBdCisgICAgX19vWydpc0xvYWRlZCddID0gdHJ1ZQorICAgIF9fb1snbmFtZUVtcHR5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QmVtcHR5LWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVTdGF0aWMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCc3RhdGljLWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVVbmtub3duJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QnVua25vd24taW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbm9kZUNudCddID0gMjEKKyAgICBfX29bJ25vZGVUYWInXSA9IF9fb2JqWzI4OC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzEwLjBdCisgICAgX19vWyd2aXNpdFJvcGVGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Zpc2l0Um9wZUZ4bjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzNdICAvLyB4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjaGFyVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSAwCisgICAgX19vWycxJ10gPSA2NQorICAgIF9fb1snMiddID0gOTUKKyAgICBfX29bJzMnXSA9IDEwNQorICAgIF9fb1snNCddID0gMTEwCisgICAgX19vWyc1J10gPSAxMDUKKyAgICBfX29bJzYnXSA9IDExNgorICAgIF9fb1snNyddID0gMTA1CisgICAgX19vWyc4J10gPSA5NworICAgIF9fb1snOSddID0gMTA4CisgICAgX19vWycxMCddID0gMTA1CisgICAgX19vWycxMSddID0gMTIyCisgICAgX19vWycxMiddID0gMTAxCisgICAgX19vWycxMyddID0gMTAwCisgICAgX19vWycxNCddID0gODAKKyAgICBfX29bJzE1J10gPSA5NworICAgIF9fb1snMTYnXSA9IDExNAorICAgIF9fb1snMTcnXSA9IDk3CisgICAgX19vWycxOCddID0gMTA5CisgICAgX19vWycxOSddID0gMTE1CisgICAgX19vWycyMCddID0gNTgKKyAgICBfX29bJzIxJ10gPSAzMgorICAgIF9fb1snMjInXSA9IDExNworICAgIF9fb1snMjMnXSA9IDExMAorICAgIF9fb1snMjQnXSA9IDEwNQorICAgIF9fb1snMjUnXSA9IDExMAorICAgIF9fb1snMjYnXSA9IDEwNQorICAgIF9fb1snMjcnXSA9IDExNgorICAgIF9fb1snMjgnXSA9IDEwNQorICAgIF9fb1snMjknXSA9IDk3CisgICAgX19vWyczMCddID0gMTA4CisgICAgX19vWyczMSddID0gMTA1CisgICAgX19vWyczMiddID0gMTIyCisgICAgX19vWyczMyddID0gMTAxCisgICAgX19vWyczNCddID0gMTAwCisgICAgX19vWyczNSddID0gMzIKKyAgICBfX29bJzM2J10gPSA4MAorICAgIF9fb1snMzcnXSA9IDk3CisgICAgX19vWyczOCddID0gMTE0CisgICAgX19vWyczOSddID0gOTcKKyAgICBfX29bJzQwJ10gPSAxMDkKKyAgICBfX29bJzQxJ10gPSAxMTUKKyAgICBfX29bJzQyJ10gPSAzMgorICAgIF9fb1snNDMnXSA9IDExNQorICAgIF9fb1snNDQnXSA9IDExNgorICAgIF9fb1snNDUnXSA9IDExNAorICAgIF9fb1snNDYnXSA9IDExNworICAgIF9fb1snNDcnXSA9IDk5CisgICAgX19vWyc0OCddID0gMTE2CisgICAgX19vWyc0OSddID0gMAorICAgIF9fb1snNTAnXSA9IDcyCisgICAgX19vWyc1MSddID0gMTAxCisgICAgX19vWyc1MiddID0gOTcKKyAgICBfX29bJzUzJ10gPSAxMTIKKyAgICBfX29bJzU0J10gPSA3NworICAgIF9fb1snNTUnXSA9IDEwNQorICAgIF9fb1snNTYnXSA9IDExMAorICAgIF9fb1snNTcnXSA9IDk1CisgICAgX19vWyc1OCddID0gOTkKKyAgICBfX29bJzU5J10gPSAxMTQKKyAgICBfX29bJzYwJ10gPSAxMDEKKyAgICBfX29bJzYxJ10gPSA5NworICAgIF9fb1snNjInXSA9IDExNgorICAgIF9fb1snNjMnXSA9IDEwMQorICAgIF9fb1snNjQnXSA9IDMyCisgICAgX19vWyc2NSddID0gOTkKKyAgICBfX29bJzY2J10gPSA5NworICAgIF9fb1snNjcnXSA9IDExMAorICAgIF9fb1snNjgnXSA9IDExMAorICAgIF9fb1snNjknXSA9IDExMQorICAgIF9fb1snNzAnXSA9IDExNgorICAgIF9fb1snNzEnXSA9IDMyCisgICAgX19vWyc3MiddID0gMTA0CisgICAgX19vWyc3MyddID0gOTcKKyAgICBfX29bJzc0J10gPSAxMTgKKyAgICBfX29bJzc1J10gPSAxMDEKKyAgICBfX29bJzc2J10gPSAzMgorICAgIF9fb1snNzcnXSA9IDk3CisgICAgX19vWyc3OCddID0gMzIKKyAgICBfX29bJzc5J10gPSAxMjIKKyAgICBfX29bJzgwJ10gPSAxMDEKKyAgICBfX29bJzgxJ10gPSAxMTQKKyAgICBfX29bJzgyJ10gPSAxMTEKKyAgICBfX29bJzgzJ10gPSAzMgorICAgIF9fb1snODQnXSA9IDExNQorICAgIF9fb1snODUnXSA9IDEwNQorICAgIF9fb1snODYnXSA9IDEyMgorICAgIF9fb1snODcnXSA9IDEwMQorICAgIF9fb1snODgnXSA9IDMyCisgICAgX19vWyc4OSddID0gMTE4CisgICAgX19vWyc5MCddID0gOTcKKyAgICBfX29bJzkxJ10gPSAxMDgKKyAgICBfX29bJzkyJ10gPSAxMTcKKyAgICBfX29bJzkzJ10gPSAxMDEKKyAgICBfX29bJzk0J10gPSAwCisgICAgX19vWyc5NSddID0gNzIKKyAgICBfX29bJzk2J10gPSAxMDEKKyAgICBfX29bJzk3J10gPSA5NworICAgIF9fb1snOTgnXSA9IDExMgorICAgIF9fb1snOTknXSA9IDgzCisgICAgX19vWycxMDAnXSA9IDExNgorICAgIF9fb1snMTAxJ10gPSAxMDAKKyAgICBfX29bJzEwMiddID0gOTUKKyAgICBfX29bJzEwMyddID0gOTkKKyAgICBfX29bJzEwNCddID0gMTE0CisgICAgX19vWycxMDUnXSA9IDEwMQorICAgIF9fb1snMTA2J10gPSA5NworICAgIF9fb1snMTA3J10gPSAxMTYKKyAgICBfX29bJzEwOCddID0gMTAxCisgICAgX19vWycxMDknXSA9IDMyCisgICAgX19vWycxMTAnXSA9IDk5CisgICAgX19vWycxMTEnXSA9IDk3CisgICAgX19vWycxMTInXSA9IDExMAorICAgIF9fb1snMTEzJ10gPSAxMTAKKyAgICBfX29bJzExNCddID0gMTExCisgICAgX19vWycxMTUnXSA9IDExNgorICAgIF9fb1snMTE2J10gPSAzMgorICAgIF9fb1snMTE3J10gPSAxMDQKKyAgICBfX29bJzExOCddID0gOTcKKyAgICBfX29bJzExOSddID0gMTE4CisgICAgX19vWycxMjAnXSA9IDEwMQorICAgIF9fb1snMTIxJ10gPSAzMgorICAgIF9fb1snMTIyJ10gPSA5NworICAgIF9fb1snMTIzJ10gPSAzMgorICAgIF9fb1snMTI0J10gPSAxMjIKKyAgICBfX29bJzEyNSddID0gMTAxCisgICAgX19vWycxMjYnXSA9IDExNAorICAgIF9fb1snMTI3J10gPSAxMTEKKyAgICBfX29bJzEyOCddID0gMzIKKyAgICBfX29bJzEyOSddID0gMTE1CisgICAgX19vWycxMzAnXSA9IDEwNQorICAgIF9fb1snMTMxJ10gPSAxMjIKKyAgICBfX29bJzEzMiddID0gMTAxCisgICAgX19vWycxMzMnXSA9IDMyCisgICAgX19vWycxMzQnXSA9IDExOAorICAgIF9fb1snMTM1J10gPSA5NworICAgIF9fb1snMTM2J10gPSAxMDgKKyAgICBfX29bJzEzNyddID0gMTE3CisgICAgX19vWycxMzgnXSA9IDEwMQorICAgIF9fb1snMTM5J10gPSAwCisgICAgX19vWycxNDAnXSA9IDcyCisgICAgX19vWycxNDEnXSA9IDEwMQorICAgIF9fb1snMTQyJ10gPSA5NworICAgIF9fb1snMTQzJ10gPSAxMTIKKyAgICBfX29bJzE0NCddID0gODMKKyAgICBfX29bJzE0NSddID0gMTE2CisgICAgX19vWycxNDYnXSA9IDEwMAorICAgIF9fb1snMTQ3J10gPSAzMgorICAgIF9fb1snMTQ4J10gPSAxMDUKKyAgICBfX29bJzE0OSddID0gMTEwCisgICAgX19vWycxNTAnXSA9IDExNQorICAgIF9fb1snMTUxJ10gPSAxMTYKKyAgICBfX29bJzE1MiddID0gOTcKKyAgICBfX29bJzE1MyddID0gMTEwCisgICAgX19vWycxNTQnXSA9IDk5CisgICAgX19vWycxNTUnXSA9IDEwMQorICAgIF9fb1snMTU2J10gPSAzMgorICAgIF9fb1snMTU3J10gPSAxMTYKKyAgICBfX29bJzE1OCddID0gMTExCisgICAgX19vWycxNTknXSA9IDExNgorICAgIF9fb1snMTYwJ10gPSA5NworICAgIF9fb1snMTYxJ10gPSAxMDgKKyAgICBfX29bJzE2MiddID0gNzAKKyAgICBfX29bJzE2MyddID0gMTE0CisgICAgX19vWycxNjQnXSA9IDEwMQorICAgIF9fb1snMTY1J10gPSAxMDEKKyAgICBfX29bJzE2NiddID0gODMKKyAgICBfX29bJzE2NyddID0gMTA1CisgICAgX19vWycxNjgnXSA9IDEyMgorICAgIF9fb1snMTY5J10gPSAxMDEKKyAgICBfX29bJzE3MCddID0gMzIKKyAgICBfX29bJzE3MSddID0gMTA1CisgICAgX19vWycxNzInXSA9IDExNQorICAgIF9fb1snMTczJ10gPSAzMgorICAgIF9fb1snMTc0J10gPSAxMDMKKyAgICBfX29bJzE3NSddID0gMTE0CisgICAgX19vWycxNzYnXSA9IDEwMQorICAgIF9fb1snMTc3J10gPSA5NworICAgIF9fb1snMTc4J10gPSAxMTYKKyAgICBfX29bJzE3OSddID0gMTAxCisgICAgX19vWycxODAnXSA9IDExNAorICAgIF9fb1snMTgxJ10gPSAzMgorICAgIF9fb1snMTgyJ10gPSAxMTYKKyAgICBfX29bJzE4MyddID0gMTA0CisgICAgX19vWycxODQnXSA9IDk3CisgICAgX19vWycxODUnXSA9IDExMAorICAgIF9fb1snMTg2J10gPSAzMgorICAgIF9fb1snMTg3J10gPSAxMTUKKyAgICBfX29bJzE4OCddID0gMTE2CisgICAgX19vWycxODknXSA9IDk3CisgICAgX19vWycxOTAnXSA9IDExNAorICAgIF9fb1snMTkxJ10gPSAxMTYKKyAgICBfX29bJzE5MiddID0gMTA1CisgICAgX19vWycxOTMnXSA9IDExMAorICAgIF9fb1snMTk0J10gPSAxMDMKKyAgICBfX29bJzE5NSddID0gMzIKKyAgICBfX29bJzE5NiddID0gMTE1CisgICAgX19vWycxOTcnXSA9IDEwNQorICAgIF9fb1snMTk4J10gPSAxMjIKKyAgICBfX29bJzE5OSddID0gMTAxCisgICAgX19vWycyMDAnXSA9IDAKKyAgICBfX29bJzIwMSddID0gNzIKKyAgICBfX29bJzIwMiddID0gMTAxCisgICAgX19vWycyMDMnXSA9IDk3CisgICAgX19vWycyMDQnXSA9IDExMgorICAgIF9fb1snMjA1J10gPSA4MworICAgIF9fb1snMjA2J10gPSAxMTYKKyAgICBfX29bJzIwNyddID0gMTAwCisgICAgX19vWycyMDgnXSA9IDk1CisgICAgX19vWycyMDknXSA9IDk3CisgICAgX19vWycyMTAnXSA9IDEwOAorICAgIF9fb1snMjExJ10gPSAxMDgKKyAgICBfX29bJzIxMiddID0gMTExCisgICAgX19vWycyMTMnXSA9IDk5CisgICAgX19vWycyMTQnXSA9IDMyCisgICAgX19vWycyMTUnXSA9IDQ1CisgICAgX19vWycyMTYnXSA9IDMyCisgICAgX19vWycyMTcnXSA9IDExNAorICAgIF9fb1snMjE4J10gPSAxMDEKKyAgICBfX29bJzIxOSddID0gMTEzCisgICAgX19vWycyMjAnXSA9IDExNworICAgIF9fb1snMjIxJ10gPSAxMDEKKyAgICBfX29bJzIyMiddID0gMTE1CisgICAgX19vWycyMjMnXSA9IDExNgorICAgIF9fb1snMjI0J10gPSAxMDEKKyAgICBfX29bJzIyNSddID0gMTAwCisgICAgX19vWycyMjYnXSA9IDMyCisgICAgX19vWycyMjcnXSA9IDk3CisgICAgX19vWycyMjgnXSA9IDEwOAorICAgIF9fb1snMjI5J10gPSAxMDUKKyAgICBfX29bJzIzMCddID0gMTAzCisgICAgX19vWycyMzEnXSA9IDExMAorICAgIF9fb1snMjMyJ10gPSAxMDkKKyAgICBfX29bJzIzMyddID0gMTAxCisgICAgX19vWycyMzQnXSA9IDExMAorICAgIF9fb1snMjM1J10gPSAxMTYKKyAgICBfX29bJzIzNiddID0gMzIKKyAgICBfX29bJzIzNyddID0gMTA1CisgICAgX19vWycyMzgnXSA9IDExNQorICAgIF9fb1snMjM5J10gPSAzMgorICAgIF9fb1snMjQwJ10gPSAxMDMKKyAgICBfX29bJzI0MSddID0gMTE0CisgICAgX19vWycyNDInXSA9IDEwMQorICAgIF9fb1snMjQzJ10gPSA5NworICAgIF9fb1snMjQ0J10gPSAxMTYKKyAgICBfX29bJzI0NSddID0gMTAxCisgICAgX19vWycyNDYnXSA9IDExNAorICAgIF9fb1snMjQ3J10gPSAzMgorICAgIF9fb1snMjQ4J10gPSAxMTYKKyAgICBfX29bJzI0OSddID0gMTA0CisgICAgX19vWycyNTAnXSA9IDk3CisgICAgX19vWycyNTEnXSA9IDExMAorICAgIF9fb1snMjUyJ10gPSAzMgorICAgIF9fb1snMjUzJ10gPSA5NworICAgIF9fb1snMjU0J10gPSAxMDgKKyAgICBfX29bJzI1NSddID0gMTA4CisgICAgX19vWycyNTYnXSA9IDExMQorICAgIF9fb1snMjU3J10gPSAxMTkKKyAgICBfX29bJzI1OCddID0gMTAxCisgICAgX19vWycyNTknXSA9IDEwMAorICAgIF9fb1snMjYwJ10gPSAwCisgICAgX19vWycyNjEnXSA9IDY1CisgICAgX19vWycyNjInXSA9IDk1CisgICAgX19vWycyNjMnXSA9IDk5CisgICAgX19vWycyNjQnXSA9IDk3CisgICAgX19vWycyNjUnXSA9IDExMAorICAgIF9fb1snMjY2J10gPSAxMTAKKyAgICBfX29bJzI2NyddID0gMTExCisgICAgX19vWycyNjgnXSA9IDExNgorICAgIF9fb1snMjY5J10gPSA3MAorICAgIF9fb1snMjcwJ10gPSAxMDUKKyAgICBfX29bJzI3MSddID0gMTE2CisgICAgX19vWycyNzInXSA9IDczCisgICAgX19vWycyNzMnXSA9IDExMAorICAgIF9fb1snMjc0J10gPSAxMTYKKyAgICBfX29bJzI3NSddID0gMTExCisgICAgX19vWycyNzYnXSA9IDY1CisgICAgX19vWycyNzcnXSA9IDExNAorICAgIF9fb1snMjc4J10gPSAxMDMKKyAgICBfX29bJzI3OSddID0gNTgKKyAgICBfX29bJzI4MCddID0gMzIKKyAgICBfX29bJzI4MSddID0gMTE1CisgICAgX19vWycyODInXSA9IDEwNQorICAgIF9fb1snMjgzJ10gPSAxMjIKKyAgICBfX29bJzI4NCddID0gMTAxCisgICAgX19vWycyODUnXSA9IDExMQorICAgIF9fb1snMjg2J10gPSAxMDIKKyAgICBfX29bJzI4NyddID0gNDAKKyAgICBfX29bJzI4OCddID0gNzAKKyAgICBfX29bJzI4OSddID0gMTA4CisgICAgX19vWycyOTAnXSA9IDExMQorICAgIF9fb1snMjkxJ10gPSA5NworICAgIF9fb1snMjkyJ10gPSAxMTYKKyAgICBfX29bJzI5MyddID0gNDEKKyAgICBfX29bJzI5NCddID0gMzIKKyAgICBfX29bJzI5NSddID0gNjIKKyAgICBfX29bJzI5NiddID0gMzIKKyAgICBfX29bJzI5NyddID0gMTE1CisgICAgX19vWycyOTgnXSA9IDEwNQorICAgIF9fb1snMjk5J10gPSAxMjIKKyAgICBfX29bJzMwMCddID0gMTAxCisgICAgX19vWyczMDEnXSA9IDExMQorICAgIF9fb1snMzAyJ10gPSAxMDIKKyAgICBfX29bJzMwMyddID0gNDAKKyAgICBfX29bJzMwNCddID0gNjUKKyAgICBfX29bJzMwNSddID0gMTE0CisgICAgX19vWyczMDYnXSA9IDEwMworICAgIF9fb1snMzA3J10gPSA0MQorICAgIF9fb1snMzA4J10gPSAwCisgICAgX19vWyczMDknXSA9IDk3CisgICAgX19vWyczMTAnXSA9IDExNQorICAgIF9fb1snMzExJ10gPSAxMTUKKyAgICBfX29bJzMxMiddID0gMTAxCisgICAgX19vWyczMTMnXSA9IDExNAorICAgIF9fb1snMzE0J10gPSAxMTYKKyAgICBfX29bJzMxNSddID0gMTA1CisgICAgX19vWyczMTYnXSA9IDExMQorICAgIF9fb1snMzE3J10gPSAxMTAKKyAgICBfX29bJzMxOCddID0gMzIKKyAgICBfX29bJzMxOSddID0gMTAyCisgICAgX19vWyczMjAnXSA9IDk3CisgICAgX19vWyczMjEnXSA9IDEwNQorICAgIF9fb1snMzIyJ10gPSAxMDgKKyAgICBfX29bJzMyMyddID0gMTE3CisgICAgX19vWyczMjQnXSA9IDExNAorICAgIF9fb1snMzI1J10gPSAxMDEKKyAgICBfX29bJzMyNiddID0gMzcKKyAgICBfX29bJzMyNyddID0gMTE1CisgICAgX19vWyczMjgnXSA9IDM3CisgICAgX19vWyczMjknXSA9IDExNQorICAgIF9fb1snMzMwJ10gPSAwCisgICAgX19vWyczMzEnXSA9IDEwMworICAgIF9fb1snMzMyJ10gPSAxMDEKKyAgICBfX29bJzMzMyddID0gMTEwCisgICAgX19vWyczMzQnXSA9IDEwMQorICAgIF9fb1snMzM1J10gPSAxMTQKKyAgICBfX29bJzMzNiddID0gMTA1CisgICAgX19vWyczMzcnXSA9IDk5CisgICAgX19vWyczMzgnXSA9IDMyCisgICAgX19vWyczMzknXSA9IDEwMQorICAgIF9fb1snMzQwJ10gPSAxMTQKKyAgICBfX29bJzM0MSddID0gMTE0CisgICAgX19vWyczNDInXSA9IDExMQorICAgIF9fb1snMzQzJ10gPSAxMTQKKyAgICBfX29bJzM0NCddID0gNTgKKyAgICBfX29bJzM0NSddID0gMzIKKyAgICBfX29bJzM0NiddID0gMzcKKyAgICBfX29bJzM0NyddID0gMTE1CisgICAgX19vWyczNDgnXSA9IDAKKyAgICBfX29bJzM0OSddID0gMTExCisgICAgX19vWyczNTAnXSA9IDExNworICAgIF9fb1snMzUxJ10gPSAxMTYKKyAgICBfX29bJzM1MiddID0gMzIKKyAgICBfX29bJzM1MyddID0gMTExCisgICAgX19vWyczNTQnXSA9IDEwMgorICAgIF9fb1snMzU1J10gPSAzMgorICAgIF9fb1snMzU2J10gPSAxMDkKKyAgICBfX29bJzM1NyddID0gMTAxCisgICAgX19vWyczNTgnXSA9IDEwOQorICAgIF9fb1snMzU5J10gPSAxMTEKKyAgICBfX29bJzM2MCddID0gMTE0CisgICAgX19vWyczNjEnXSA9IDEyMQorICAgIF9fb1snMzYyJ10gPSA1OAorICAgIF9fb1snMzYzJ10gPSAzMgorICAgIF9fb1snMzY0J10gPSAxMDQKKyAgICBfX29bJzM2NSddID0gMTAxCisgICAgX19vWyczNjYnXSA9IDk3CisgICAgX19vWyczNjcnXSA9IDExMgorICAgIF9fb1snMzY4J10gPSA2MQorICAgIF9fb1snMzY5J10gPSA0OAorICAgIF9fb1snMzcwJ10gPSAxMjAKKyAgICBfX29bJzM3MSddID0gMzcKKyAgICBfX29bJzM3MiddID0gMTIwCisgICAgX19vWyczNzMnXSA9IDQ0CisgICAgX19vWyczNzQnXSA9IDMyCisgICAgX19vWyczNzUnXSA9IDExNQorICAgIF9fb1snMzc2J10gPSAxMDUKKyAgICBfX29bJzM3NyddID0gMTIyCisgICAgX19vWyczNzgnXSA9IDEwMQorICAgIF9fb1snMzc5J10gPSA2MQorICAgIF9fb1snMzgwJ10gPSAzNworICAgIF9fb1snMzgxJ10gPSAxMTcKKyAgICBfX29bJzM4MiddID0gMAorICAgIF9fb1snMzgzJ10gPSAxMDIKKyAgICBfX29bJzM4NCddID0gMTE0CisgICAgX19vWyczODUnXSA9IDEwMQorICAgIF9fb1snMzg2J10gPSAxMDEKKyAgICBfX29bJzM4NyddID0gNDAKKyAgICBfX29bJzM4OCddID0gNDEKKyAgICBfX29bJzM4OSddID0gMzIKKyAgICBfX29bJzM5MCddID0gMTA1CisgICAgX19vWyczOTEnXSA9IDExMAorICAgIF9fb1snMzkyJ10gPSAxMTgKKyAgICBfX29bJzM5MyddID0gOTcKKyAgICBfX29bJzM5NCddID0gMTA4CisgICAgX19vWyczOTUnXSA9IDEwNQorICAgIF9fb1snMzk2J10gPSAxMDAKKyAgICBfX29bJzM5NyddID0gMzIKKyAgICBfX29bJzM5OCddID0gMTA1CisgICAgX19vWyczOTknXSA9IDExMAorICAgIF9fb1snNDAwJ10gPSAzMgorICAgIF9fb1snNDAxJ10gPSAxMDMKKyAgICBfX29bJzQwMiddID0gMTE0CisgICAgX19vWyc0MDMnXSA9IDExMQorICAgIF9fb1snNDA0J10gPSAxMTkKKyAgICBfX29bJzQwNSddID0gMTE2CisgICAgX19vWyc0MDYnXSA9IDEwNAorICAgIF9fb1snNDA3J10gPSA0NQorICAgIF9fb1snNDA4J10gPSAxMTEKKyAgICBfX29bJzQwOSddID0gMTEwCisgICAgX19vWyc0MTAnXSA9IDEwOAorICAgIF9fb1snNDExJ10gPSAxMjEKKyAgICBfX29bJzQxMiddID0gMzIKKyAgICBfX29bJzQxMyddID0gNzIKKyAgICBfX29bJzQxNCddID0gMTAxCisgICAgX19vWyc0MTUnXSA9IDk3CisgICAgX19vWyc0MTYnXSA9IDExMgorICAgIF9fb1snNDE3J10gPSA3NworICAgIF9fb1snNDE4J10gPSAxMDUKKyAgICBfX29bJzQxOSddID0gMTEwCisgICAgX19vWyc0MjAnXSA9IDAKKyAgICBfX29bJzQyMSddID0gODQKKyAgICBfX29bJzQyMiddID0gMTA0CisgICAgX19vWyc0MjMnXSA9IDEwMQorICAgIF9fb1snNDI0J10gPSAzMgorICAgIF9fb1snNDI1J10gPSA4MgorICAgIF9fb1snNDI2J10gPSA4NAorICAgIF9fb1snNDI3J10gPSA4MworICAgIF9fb1snNDI4J10gPSAzMgorICAgIF9fb1snNDI5J10gPSAxMDQKKyAgICBfX29bJzQzMCddID0gMTAxCisgICAgX19vWyc0MzEnXSA9IDk3CisgICAgX19vWyc0MzInXSA9IDExMgorICAgIF9fb1snNDMzJ10gPSAzMgorICAgIF9fb1snNDM0J10gPSAxMDUKKyAgICBfX29bJzQzNSddID0gMTE1CisgICAgX19vWyc0MzYnXSA9IDMyCisgICAgX19vWyc0MzcnXSA9IDExNworICAgIF9fb1snNDM4J10gPSAxMTUKKyAgICBfX29bJzQzOSddID0gMTAxCisgICAgX19vWyc0NDAnXSA9IDEwMAorICAgIF9fb1snNDQxJ10gPSAzMgorICAgIF9fb1snNDQyJ10gPSAxMTcKKyAgICBfX29bJzQ0MyddID0gMTEyCisgICAgX19vWyc0NDQnXSA9IDQ2CisgICAgX19vWyc0NDUnXSA9IDMyCisgICAgX19vWyc0NDYnXSA9IDY5CisgICAgX19vWyc0NDcnXSA9IDEyMAorICAgIF9fb1snNDQ4J10gPSA5NworICAgIF9fb1snNDQ5J10gPSAxMDkKKyAgICBfX29bJzQ1MCddID0gMTA1CisgICAgX19vWyc0NTEnXSA9IDExMAorICAgIF9fb1snNDUyJ10gPSAxMDEKKyAgICBfX29bJzQ1MyddID0gMzIKKyAgICBfX29bJzQ1NCddID0gODAKKyAgICBfX29bJzQ1NSddID0gMTE0CisgICAgX19vWyc0NTYnXSA9IDExMQorICAgIF9fb1snNDU3J10gPSAxMDMKKyAgICBfX29bJzQ1OCddID0gMTE0CisgICAgX19vWyc0NTknXSA9IDk3CisgICAgX19vWyc0NjAnXSA9IDEwOQorICAgIF9fb1snNDYxJ10gPSA0NgorICAgIF9fb1snNDYyJ10gPSAxMDQKKyAgICBfX29bJzQ2MyddID0gMTAxCisgICAgX19vWyc0NjQnXSA9IDk3CisgICAgX19vWyc0NjUnXSA9IDExMgorICAgIF9fb1snNDY2J10gPSA0NgorICAgIF9fb1snNDY3J10gPSAwCisgICAgX19vWyc0NjgnXSA9IDYwCisgICAgX19vWyc0NjknXSA9IDQ1CisgICAgX19vWyc0NzAnXSA9IDQ1CisgICAgX19vWyc0NzEnXSA9IDMyCisgICAgX19vWyc0NzInXSA9IDk5CisgICAgX19vWyc0NzMnXSA9IDExMQorICAgIF9fb1snNDc0J10gPSAxMTAKKyAgICBfX29bJzQ3NSddID0gMTE1CisgICAgX19vWyc0NzYnXSA9IDExNgorICAgIF9fb1snNDc3J10gPSAxMTQKKyAgICBfX29bJzQ3OCddID0gMTE3CisgICAgX19vWyc0NzknXSA9IDk5CisgICAgX19vWyc0ODAnXSA9IDExNgorICAgIF9fb1snNDgxJ10gPSA1OAorICAgIF9fb1snNDgyJ10gPSAzMgorICAgIF9fb1snNDgzJ10gPSAzNworICAgIF9fb1snNDg0J10gPSAxMTIKKyAgICBfX29bJzQ4NSddID0gNDAKKyAgICBfX29bJzQ4NiddID0gMzkKKyAgICBfX29bJzQ4NyddID0gMzcKKyAgICBfX29bJzQ4OCddID0gMTE1CisgICAgX19vWyc0ODknXSA9IDM5CisgICAgX19vWyc0OTAnXSA9IDQxCisgICAgX19vWyc0OTEnXSA9IDAKKyAgICBfX29bJzQ5MiddID0gNjAKKyAgICBfX29bJzQ5MyddID0gNDUKKyAgICBfX29bJzQ5NCddID0gNDUKKyAgICBfX29bJzQ5NSddID0gMzIKKyAgICBfX29bJzQ5NiddID0gOTkKKyAgICBfX29bJzQ5NyddID0gMTE0CisgICAgX19vWyc0OTgnXSA9IDEwMQorICAgIF9fb1snNDk5J10gPSA5NworICAgIF9fb1snNTAwJ10gPSAxMTYKKyAgICBfX29bJzUwMSddID0gMTAxCisgICAgX19vWyc1MDInXSA9IDU4CisgICAgX19vWyc1MDMnXSA9IDMyCisgICAgX19vWyc1MDQnXSA9IDM3CisgICAgX19vWyc1MDUnXSA9IDExMgorICAgIF9fb1snNTA2J10gPSA0MAorICAgIF9fb1snNTA3J10gPSAzOQorICAgIF9fb1snNTA4J10gPSAzNworICAgIF9fb1snNTA5J10gPSAxMTUKKyAgICBfX29bJzUxMCddID0gMzkKKyAgICBfX29bJzUxMSddID0gNDEKKyAgICBfX29bJzUxMiddID0gMAorICAgIF9fb1snNTEzJ10gPSA0NQorICAgIF9fb1snNTE0J10gPSA0NQorICAgIF9fb1snNTE1J10gPSA2MgorICAgIF9fb1snNTE2J10gPSAzMgorICAgIF9fb1snNTE3J10gPSAxMDAKKyAgICBfX29bJzUxOCddID0gMTAxCisgICAgX19vWyc1MTknXSA9IDExNQorICAgIF9fb1snNTIwJ10gPSAxMTYKKyAgICBfX29bJzUyMSddID0gMTE0CisgICAgX19vWyc1MjInXSA9IDExNworICAgIF9fb1snNTIzJ10gPSA5OQorICAgIF9fb1snNTI0J10gPSAxMTYKKyAgICBfX29bJzUyNSddID0gNTgKKyAgICBfX29bJzUyNiddID0gMzIKKyAgICBfX29bJzUyNyddID0gNDAKKyAgICBfX29bJzUyOCddID0gMzcKKyAgICBfX29bJzUyOSddID0gMTEyCisgICAgX19vWyc1MzAnXSA9IDQxCisgICAgX19vWyc1MzEnXSA9IDAKKyAgICBfX29bJzUzMiddID0gNDUKKyAgICBfX29bJzUzMyddID0gNDUKKyAgICBfX29bJzUzNCddID0gNjIKKyAgICBfX29bJzUzNSddID0gMzIKKyAgICBfX29bJzUzNiddID0gMTAwCisgICAgX19vWyc1MzcnXSA9IDEwMQorICAgIF9fb1snNTM4J10gPSAxMDgKKyAgICBfX29bJzUzOSddID0gMTAxCisgICAgX19vWyc1NDAnXSA9IDExNgorICAgIF9fb1snNTQxJ10gPSAxMDEKKyAgICBfX29bJzU0MiddID0gNTgKKyAgICBfX29bJzU0MyddID0gMzIKKyAgICBfX29bJzU0NCddID0gNDAKKyAgICBfX29bJzU0NSddID0gMzcKKyAgICBfX29bJzU0NiddID0gMTEyCisgICAgX19vWyc1NDcnXSA9IDQxCisgICAgX19vWyc1NDgnXSA9IDAKKyAgICBfX29bJzU0OSddID0gMTIwCisgICAgX19vWyc1NTAnXSA9IDEwMAorICAgIF9fb1snNTUxJ10gPSA5OQorICAgIF9fb1snNTUyJ10gPSA0NgorICAgIF9fb1snNTUzJ10gPSAwCisgICAgX19vWyc1NTQnXSA9IDExNAorICAgIF9fb1snNTU1J10gPSAxMTcKKyAgICBfX29bJzU1NiddID0gMTEwCisgICAgX19vWyc1NTcnXSA9IDExNgorICAgIF9fb1snNTU4J10gPSAxMDUKKyAgICBfX29bJzU1OSddID0gMTA5CisgICAgX19vWyc1NjAnXSA9IDEwMQorICAgIF9fb1snNTYxJ10gPSA0NgorICAgIF9fb1snNTYyJ10gPSAwCisgICAgX19vWyc1NjMnXSA9IDY1CisgICAgX19vWyc1NjQnXSA9IDExNQorICAgIF9fb1snNTY1J10gPSAxMTUKKyAgICBfX29bJzU2NiddID0gMTAxCisgICAgX19vWyc1NjcnXSA9IDExNAorICAgIF9fb1snNTY4J10gPSAxMTYKKyAgICBfX29bJzU2OSddID0gMAorICAgIF9fb1snNTcwJ10gPSA2NworICAgIF9fb1snNTcxJ10gPSAxMTEKKyAgICBfX29bJzU3MiddID0gMTE0CisgICAgX19vWyc1NzMnXSA9IDEwMQorICAgIF9fb1snNTc0J10gPSAwCisgICAgX19vWyc1NzUnXSA9IDY4CisgICAgX19vWyc1NzYnXSA9IDEwMQorICAgIF9fb1snNTc3J10gPSAxMDIKKyAgICBfX29bJzU3OCddID0gOTcKKyAgICBfX29bJzU3OSddID0gMTE3CisgICAgX19vWyc1ODAnXSA9IDEwOAorICAgIF9fb1snNTgxJ10gPSAxMTYKKyAgICBfX29bJzU4MiddID0gMTE1CisgICAgX19vWyc1ODMnXSA9IDAKKyAgICBfX29bJzU4NCddID0gNjgKKyAgICBfX29bJzU4NSddID0gMTA1CisgICAgX19vWyc1ODYnXSA9IDk3CisgICAgX19vWyc1ODcnXSA9IDEwMworICAgIF9fb1snNTg4J10gPSAxMTUKKyAgICBfX29bJzU4OSddID0gMAorICAgIF9fb1snNTkwJ10gPSA2OQorICAgIF9fb1snNTkxJ10gPSAxMTQKKyAgICBfX29bJzU5MiddID0gMTE0CisgICAgX19vWyc1OTMnXSA9IDExMQorICAgIF9fb1snNTk0J10gPSAxMTQKKyAgICBfX29bJzU5NSddID0gMAorICAgIF9fb1snNTk2J10gPSA3MQorICAgIF9fb1snNTk3J10gPSA5NworICAgIF9fb1snNTk4J10gPSAxMTYKKyAgICBfX29bJzU5OSddID0gMTAxCisgICAgX19vWyc2MDAnXSA9IDAKKyAgICBfX29bJzYwMSddID0gNzEKKyAgICBfX29bJzYwMiddID0gOTcKKyAgICBfX29bJzYwMyddID0gMTE2CisgICAgX19vWyc2MDQnXSA9IDEwMQorICAgIF9fb1snNjA1J10gPSA3OAorICAgIF9fb1snNjA2J10gPSAxMTcKKyAgICBfX29bJzYwNyddID0gMTA4CisgICAgX19vWyc2MDgnXSA9IDEwOAorICAgIF9fb1snNjA5J10gPSAwCisgICAgX19vWyc2MTAnXSA9IDc2CisgICAgX19vWyc2MTEnXSA9IDExMQorICAgIF9fb1snNjEyJ10gPSAxMDMKKyAgICBfX29bJzYxMyddID0gMAorICAgIF9fb1snNjE0J10gPSA3NworICAgIF9fb1snNjE1J10gPSA5NworICAgIF9fb1snNjE2J10gPSAxMDUKKyAgICBfX29bJzYxNyddID0gMTEwCisgICAgX19vWyc2MTgnXSA9IDAKKyAgICBfX29bJzYxOSddID0gNzcKKyAgICBfX29bJzYyMCddID0gMTAxCisgICAgX19vWyc2MjEnXSA9IDEwOQorICAgIF9fb1snNjIyJ10gPSAxMTEKKyAgICBfX29bJzYyMyddID0gMTE0CisgICAgX19vWyc2MjQnXSA9IDEyMQorICAgIF9fb1snNjI1J10gPSAwCisgICAgX19vWyc2MjYnXSA9IDcyCisgICAgX19vWyc2MjcnXSA9IDEwMQorICAgIF9fb1snNjI4J10gPSA5NworICAgIF9fb1snNjI5J10gPSAxMTIKKyAgICBfX29bJzYzMCddID0gODMKKyAgICBfX29bJzYzMSddID0gMTE2CisgICAgX19vWyc2MzInXSA9IDEwMAorICAgIF9fb1snNjMzJ10gPSAwCisgICAgX19vWyc2MzQnXSA9IDgzCisgICAgX19vWyc2MzUnXSA9IDExNgorICAgIF9fb1snNjM2J10gPSA5NworICAgIF9fb1snNjM3J10gPSAxMTQKKyAgICBfX29bJzYzOCddID0gMTE2CisgICAgX19vWyc2MzknXSA9IDExNworICAgIF9fb1snNjQwJ10gPSAxMTIKKyAgICBfX29bJzY0MSddID0gMAorICAgIF9fb1snNjQyJ10gPSA4MworICAgIF9fb1snNjQzJ10gPSAxMjEKKyAgICBfX29bJzY0NCddID0gMTE1CisgICAgX19vWyc2NDUnXSA9IDExNgorICAgIF9fb1snNjQ2J10gPSAxMDEKKyAgICBfX29bJzY0NyddID0gMTA5CisgICAgX19vWyc2NDgnXSA9IDAKKyAgICBfX29bJzY0OSddID0gODMKKyAgICBfX29bJzY1MCddID0gMTIxCisgICAgX19vWyc2NTEnXSA9IDExNQorICAgIF9fb1snNjUyJ10gPSA3NworICAgIF9fb1snNjUzJ10gPSAxMDUKKyAgICBfX29bJzY1NCddID0gMTEwCisgICAgX19vWyc2NTUnXSA9IDAKKyAgICBfX29bJzY1NiddID0gODQKKyAgICBfX29bJzY1NyddID0gMTAxCisgICAgX19vWyc2NTgnXSA9IDEyMAorICAgIF9fb1snNjU5J10gPSAxMTYKKyAgICBfX29bJzY2MCddID0gMAorICAgIF9fb1snNjYxJ10gPSA5NworICAgIF9fb1snNjYyJ10gPSA5OQorICAgIF9fb1snNjYzJ10gPSAxMDkKKyAgICBfX29bJzY2NCddID0gMTAxCisgICAgX19vWyc2NjUnXSA9IDQ2CisgICAgX19vWyc2NjYnXSA9IDAKKyAgICBfX29bJzY2NyddID0gMTE3CisgICAgX19vWyc2NjgnXSA9IDExNgorICAgIF9fb1snNjY5J10gPSAxMDUKKyAgICBfX29bJzY3MCddID0gMTA4CisgICAgX19vWyc2NzEnXSA9IDExNQorICAgIF9fb1snNjcyJ10gPSA0NgorICAgIF9fb1snNjczJ10gPSAwCisgICAgX19vWyc2NzQnXSA9IDk5CisgICAgX19vWyc2NzUnXSA9IDEwOAorICAgIF9fb1snNjc2J10gPSAxMTEKKyAgICBfX29bJzY3NyddID0gOTkKKyAgICBfX29bJzY3OCddID0gMTA3CisgICAgX19vWyc2NzknXSA9IDExNQorICAgIF9fb1snNjgwJ10gPSA0NgorICAgIF9fb1snNjgxJ10gPSAwCisgICAgX19vWyc2ODInXSA9IDY3CisgICAgX19vWyc2ODMnXSA9IDEwOAorICAgIF9fb1snNjg0J10gPSAxMTEKKyAgICBfX29bJzY4NSddID0gOTkKKyAgICBfX29bJzY4NiddID0gMTA3CisgICAgX19vWyc2ODcnXSA9IDgzCisgICAgX19vWyc2ODgnXSA9IDExNgorICAgIF9fb1snNjg5J10gPSAxMDAKKyAgICBfX29bJzY5MCddID0gMAorICAgIF9fb1snNjkxJ10gPSA2NgorICAgIF9fb1snNjkyJ10gPSAxMDEKKyAgICBfX29bJzY5MyddID0gMTEwCisgICAgX19vWyc2OTQnXSA9IDk5CisgICAgX19vWyc2OTUnXSA9IDEwNAorICAgIF9fb1snNjk2J10gPSAwCisKK19fbyA9IF9fb2JqWzI3NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNzVdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjc2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjc3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzddICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzhdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4MF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODVdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODZdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODddICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODhdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsyODkuMF0KKyAgICBfX29bJzEnXSA9IF9fb2JqWzI5MC4wXQorICAgIF9fb1snMiddID0gX19vYmpbMjkxLjBdCisgICAgX19vWyczJ10gPSBfX29ialsyOTIuMF0KKyAgICBfX29bJzQnXSA9IF9fb2JqWzI5My4wXQorICAgIF9fb1snNSddID0gX19vYmpbMjk0LjBdCisgICAgX19vWyc2J10gPSBfX29ialsyOTUuMF0KKyAgICBfX29bJzcnXSA9IF9fb2JqWzI5Ni4wXQorICAgIF9fb1snOCddID0gX19vYmpbMjk3LjBdCisgICAgX19vWyc5J10gPSBfX29ialsyOTguMF0KKyAgICBfX29bJzEwJ10gPSBfX29ialsyOTkuMF0KKyAgICBfX29bJzExJ10gPSBfX29ialszMDAuMF0KKyAgICBfX29bJzEyJ10gPSBfX29ialszMDEuMF0KKyAgICBfX29bJzEzJ10gPSBfX29ialszMDIuMF0KKyAgICBfX29bJzE0J10gPSBfX29ialszMDMuMF0KKyAgICBfX29bJzE1J10gPSBfX29ialszMDQuMF0KKyAgICBfX29bJzE2J10gPSBfX29ialszMDUuMF0KKyAgICBfX29bJzE3J10gPSBfX29ialszMDYuMF0KKyAgICBfX29bJzE4J10gPSBfX29ialszMDcuMF0KKyAgICBfX29bJzE5J10gPSBfX29ialszMDguMF0KKyAgICBfX29bJzIwJ10gPSBfX29ialszMDkuMF0KKworX19vID0gX19vYmpbMjg5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMAorICAgIF9fb1sncmlnaHQnXSA9IDAKKworX19vID0gX19vYmpbMjkwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gNTQ5CisgICAgX19vWydyaWdodCddID0gNTU0CisKK19fbyA9IF9fb2JqWzI5MV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTYzCisKK19fbyA9IF9fb2JqWzI5Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTcwCisKK19fbyA9IF9fb2JqWzI5M10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTc1CisKK19fbyA9IF9fb2JqWzI5NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTg0CisKK19fbyA9IF9fb2JqWzI5NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi82CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTkwCisKK19fbyA9IF9fb2JqWzI5Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTk2CisKK19fbyA9IF9fb2JqWzI5N10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjAxCisKK19fbyA9IF9fb2JqWzI5OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi85CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjknLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjEwCisKK19fbyA9IF9fb2JqWzI5OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MTQKKworX19vID0gX19vYmpbMzAwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzExCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjExJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYxOQorCitfX28gPSBfX29ialszMDFdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjI2CisKK19fbyA9IF9fb2JqWzMwMl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MzQKKworX19vID0gX19vYmpbMzAzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE0JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDY0MgorCitfX28gPSBfX29ialszMDRdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjQ5CisKK19fbyA9IF9fb2JqWzMwNV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2NTYKKworX19vID0gX19vYmpbMzA2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE3CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE3JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSA2NjEKKyAgICBfX29bJ3JpZ2h0J10gPSA2NjcKKworX19vID0gX19vYmpbMzA3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE4CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE4JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc4NQorICAgIF9fb1sncmlnaHQnXSA9IDY3NAorCitfX28gPSBfX29ialszMDhdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTkKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTknLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzg2CisgICAgX19vWydyaWdodCddID0gNjgyCisKK19fbyA9IF9fb2JqWzMwOV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYyMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3ODUKKyAgICBfX29bJ3JpZ2h0J10gPSA2OTEKKworX19vID0gX19vYmpbMzEwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxMV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszMTIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNmFjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzg3CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzMxMy4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzMxNC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzI3LjBdCisKK19fbyA9IF9fb2JqWzMxMl0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxM10gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzMxNF0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMzE1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMzE3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialszMTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMzIxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMzIzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialszMjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTVdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzE2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTZdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxN10gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzE4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMThdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxOV0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzIwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjBdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjFdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzIyXSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjNdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI0XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjVdICAvLyBhY21lLnV0aWxzLmNsb2Nrcy5DbG9ja1N0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzI2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyNl0gIC8vIGFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI3XSAgLy8gYWNtZS51dGlscy5jbG9ja3MuQ2xvY2tTdGQvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI4XSAgLy8gYWNtZS51dGlscy5CZW5jaAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMzI5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNmFjbWVfdXRpbHNfQmVuY2hfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODgKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snUENsb2NrJ10gPSBfX29ialszMTEuMF0KKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzMzMC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzMzMS4wXQorICAgIF9fb1snZW5hYmxlRmxhZyddID0gZmFsc2UKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzM0NC4wXQorCitfX28gPSBfX29ialszMjldICAvLyBhY21lLnV0aWxzLkJlbmNoLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzMwXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzMzMV0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialszMzIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialszMzQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzMzNi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialszMzguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialszNDAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzM0Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzMyXSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMzMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzM10gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzNF0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMzNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM1XSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM2XSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzM3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzddICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM4XSAgLy8gYWNtZS51dGlscy5CZW5jaC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMzOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzldICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDBdICAvLyBhY21lLnV0aWxzLkJlbmNoL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzQxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0MV0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYWNtZS51dGlscy5CZW5jaCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0Ml0gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0M10gIC8vIGFjbWUudXRpbHMuQmVuY2gvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhY21lLnV0aWxzLkJlbmNoJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0NF0gIC8vIGFjbWUudXRpbHMuQmVuY2gvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FjbWUudXRpbHMuQmVuY2glMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDVdICAKKyAgICBfX29bJ2NmZ0FyZ3MnXSA9IF9fb2JqWzM0Ni4wXQorICAgIF9fb1snY2ZnU2NyaXB0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2lzcXJ0VGVzdDEuY2ZnJywgJ1VURi04JykpCisgICAgX19vWydwcm9maWxlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3JlbGVhc2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JlbGVhc2VzJ10gPSBfX29ialszNDcuMF0KKyAgICBfX29bJ3RhcmdldCddID0gX19vYmpbMzUxLjBdCisgICAgX19vWyd0ZXN0J10gPSBfX29ials0MDQuMF0KKworX19vID0gX19vYmpbMzQ2XSAgCisgICAgX19vWydvcHRNb2RlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1RJTUUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ3XSAgCisgICAgX19vWycwJ10gPSBfX29ialszNDguMF0KKworX19vID0gX19vYmpbMzQ4XSAgCisgICAgX19vWydhdHRycyddID0gX19vYmpbMzQ5LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NoYXJsaWVfc3FydGxpYl90ZXN0JywgJ1VURi04JykpCisgICAgX19vWydvdGhlckZpbGVzJ10gPSBfX29ialszNTAuMF0KKworX19vID0gX19vYmpbMzQ5XSAgCisgICAgX19vWydsYWJlbCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkZWZhdWx0JywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1MF0gIAorCitfX28gPSBfX29ialszNTFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3cnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0NZR1dJTiddID0gZmFsc2UKKyAgICBfX29bJ0dDQ1RBUkcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbWluZ3czMicsICdVVEYtOCcpKQorICAgIF9fb1snR0NDVkVSUyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCczLjQuNScsICdVVEYtOCcpKQorICAgIF9fb1snTE9OR05BTUUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTJGYmluJTJGbWluZ3czMi1nY2MuZXhlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbkRpcmVjdGl2ZVN1cHBvcnRlZCddID0gZmFsc2UKKyAgICBfX29bJ2FyJ10gPSBfX29ialszNTIuMF0KKyAgICBfX29bJ2FyT3B0cyddID0gX19vYmpbMzUzLjBdCisgICAgX19vWydhc20nXSA9IF9fb2JqWzM1NC4wXQorICAgIF9fb1snYXNtT3B0cyddID0gX19vYmpbMzU1LjBdCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY2MnXSA9IF9fb2JqWzM1Ni4wXQorICAgIF9fb1snY2NPcHRzJ10gPSBfX29ialszNTcuMF0KKyAgICBfX29bJ2NtZFByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBhdGlibGVTdWZmaXhlcyddID0gX19vYmpbMzU4LjBdCisgICAgX19vWydkZWJ1Z0dlbiddID0gX19vYmpbMzU5LjBdCisgICAgX19vWydkbGxFeHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnNvJywgJ1VURi04JykpCisgICAgX19vWydleHRlbnNpb25zJ10gPSBfX29ialszNjAuMF0KKyAgICBfX29bJ2luY2x1ZGVPcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snaXNhJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3g4NicsICdVVEYtOCcpKQorICAgIF9fb1snbG5rJ10gPSBfX29ialszNjguMF0KKyAgICBfX29bJ2xua09wdHMnXSA9IF9fb2JqWzM2OS4wXQorICAgIF9fb1snbW9kZWwnXSA9IF9fb2JqWzM3MC4wXQorICAgIF9fb1snbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNaW5ndycsICdVVEYtOCcpKQorICAgIF9fb1snb3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnV2luZG93cycsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaG9zdC5wbGF0Zm9ybXMuUEMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BsYXRmb3JtcyddID0gX19vYmpbMzcxLjBdCisgICAgX19vWydwcm9maWxlcyddID0gX19vYmpbMzcyLjBdCisgICAgX19vWydyb290RGlyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2UlM0ElMkZydHNjJTJGbWluZ3cnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3J0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5ydHM4NkdXJywgJ1VURi04JykpCisgICAgX19vWydzZWN0TWFwJ10gPSBfX29ialszODUuMF0KKyAgICBfX29bJ3N0ZEluY2x1ZGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251JTJGdGFyZ2V0cyUyRnN0ZC5oJywgJ1VURi04JykpCisgICAgX19vWydzdGRUeXBlcyddID0gX19vYmpbMzg2LjBdCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnODZHVycsICdVVEYtOCcpKQorICAgIF9fb1sndmVyc2lvbiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyU3QjElMkMwJTJDMy40JTJDNScsICdVVEYtOCcpKQorICAgIF9fb1sndmVyc2lvbk1hcCddID0gX19vYmpbNDAzLjBdCisKK19fbyA9IF9fb2JqWzM1Ml0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2FyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmFyJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4cm9vdERpciUyOSUyRiUyNCUyOEdDQ1RBUkclMjklMkZiaW4lMkZhcicsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTNdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9hck9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGYXJPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1NF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2FzbQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZhc20nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGJTI0JTI4TE9OR05BTUUlMjkrLWMrLXgrYXNzZW1ibGVyJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9hc21PcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmFzbU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzU2XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvY2MKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGY2MnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGJTI0JTI4TE9OR05BTUUlMjkrLWMrLU1EKy1NRislMjQlNDAuZGVwJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTddICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9jY09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGY2NPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLVd1bnVzZWQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctRGZhciUzRCsnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzU4XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmNvbXBhdGlibGVTdWZmaXhlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTldICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9kZWJ1Z0dlbgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZkZWJ1Z0dlbicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjBdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmV4dGVuc2lvbnMnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5DJ10gPSBfX29ialszNjEuMF0KKyAgICBfX29bJy5hc20nXSA9IF9fb2JqWzM2Mi4wXQorICAgIF9fb1snLmMnXSA9IF9fb2JqWzM2My4wXQorICAgIF9fb1snLmNjJ10gPSBfX29ialszNjQuMF0KKyAgICBfX29bJy5jcHAnXSA9IF9fb2JqWzM2NS4wXQorICAgIF9fb1snLmN4eCddID0gX19vYmpbMzY2LjBdCisgICAgX19vWycuczg2R1cnXSA9IF9fb2JqWzM2Ny4wXQorCitfX28gPSBfX29ialszNjFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuQycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGZXh0ZW5zaW9ucyUyRiUyNy5DJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLkMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzYyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGZXh0ZW5zaW9ucyUyRiUyNy5hc20lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYXNtJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2M10gIC8vIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LmMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2MnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY0XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmNjJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LmNjJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNjJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2NV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jcHAnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmV4dGVuc2lvbnMlMkYlMjcuY3BwJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNwcCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjZdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3h4JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LmN4eCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jeHgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY3XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLnM4NkdXJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LnM4NkdXJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM4NkdXJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2OF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2xuaworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZsbmsnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGJTI0JTI4TE9OR05BTUUlMjknLCAnVVRGLTgnKSkKKyAgICBfX29bJ29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2OV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2xua09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGbG5rT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1sc3RkYyUyQiUyQistTCUyNCUyOHJvb3REaXIlMjklMkZsaWInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzcwXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvbW9kZWwKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGbW9kZWwnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2VuZGlhbiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdsaXR0bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzcxXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcGxhdGZvcm1zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnBsYXRmb3JtcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdob3N0LnBsYXRmb3Jtcy5QQycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzJdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcycsICdVVEYtOCcpKQorICAgIF9fb1snY292ZXJhZ2UnXSA9IF9fb2JqWzM3My4wXQorICAgIF9fb1snZGVidWcnXSA9IF9fb2JqWzM3Ni4wXQorICAgIF9fb1sncHJvZmlsZSddID0gX19vYmpbMzc5LjBdCisgICAgX19vWydyZWxlYXNlJ10gPSBfX29ialszODIuMF0KKworX19vID0gX19vYmpbMzczXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzc0LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszNzUuMF0KKyAgICBfX29bJ2xpbmtPcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzRdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWZwcm9maWxlLWFyY3MrLWZ0ZXN0LWNvdmVyYWdlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3NV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzZdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNzcuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM3OC4wXQorICAgIF9fb1snbGlua09wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc3XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1nJywgJ1VURi04JykpCisgICAgX19vWydkZWZzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1EX0RFQlVHXyUzRDEnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzc4XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3OV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszODAuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM4MS4wXQorICAgIF9fb1snbGlua09wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLXBnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4MF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcrLXBnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4MV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzgyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM4My4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzg0LjBdCisgICAgX19vWydsaW5rT3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzgzXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctTzInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg0XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zZWN0TWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnNlY3RNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg2XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3RfQ2hhciddID0gX19vYmpbMzg3LjBdCisgICAgX19vWyd0X0RvdWJsZSddID0gX19vYmpbMzg4LjBdCisgICAgX19vWyd0X0Zsb2F0J10gPSBfX29ialszODkuMF0KKyAgICBfX29bJ3RfRnhuJ10gPSBfX29ialszOTAuMF0KKyAgICBfX29bJ3RfSUFyZyddID0gX19vYmpbMzkxLjBdCisgICAgX19vWyd0X0ludCddID0gX19vYmpbMzkyLjBdCisgICAgX19vWyd0X0ludDE2J10gPSBfX29ialszOTMuMF0KKyAgICBfX29bJ3RfSW50MzInXSA9IF9fb2JqWzM5NC4wXQorICAgIF9fb1sndF9JbnQ0MCddID0gX19vYmpbMzk1LjBdCisgICAgX19vWyd0X0ludDY0J10gPSBfX29ialszOTYuMF0KKyAgICBfX29bJ3RfSW50OCddID0gX19vYmpbMzk3LjBdCisgICAgX19vWyd0X0xEb3VibGUnXSA9IF9fb2JqWzM5OC4wXQorICAgIF9fb1sndF9MTG9uZyddID0gX19vYmpbMzk5LjBdCisgICAgX19vWyd0X0xvbmcnXSA9IF9fb2JqWzQwMC4wXQorICAgIF9fb1sndF9QdHInXSA9IF9fb2JqWzQwMS4wXQorICAgIF9fb1sndF9TaG9ydCddID0gX19vYmpbNDAyLjBdCisKK19fbyA9IF9fb2JqWzM4N10gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfQ2hhcgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfQ2hhcicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbMzg4XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0RvdWJsZScsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzg5XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9GbG9hdAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfRmxvYXQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM5MF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfRnhuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9GeG4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM5MV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSUFyZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfSUFyZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzkyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0ludCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzkzXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQxNgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfSW50MTYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAyCisgICAgX19vWydzaXplJ10gPSAyCisKK19fbyA9IF9fb2JqWzM5NF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50MzIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0ludDMyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszOTVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDQwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JbnQ0MCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTZdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDY0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JbnQ2NCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzk3XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ4CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JbnQ4JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ialszOThdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xEb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0xEb3VibGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSAxMgorCitfX28gPSBfX29ialszOTldICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xMb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9MTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDAwXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Mb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9Mb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0MDFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1B0cgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfUHRyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0MDJdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1Nob3J0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9TaG9ydCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbNDAzXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvdmVyc2lvbk1hcAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZ2ZXJzaW9uTWFwJywgJ1VURi04JykpCisgICAgX19vWydnY2MzLjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMzLjIlMkMwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwNF0gIAorCitkZWxldGUgX19vCitkZWxldGUgX19vYmoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cucnRhLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5ydGEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3MmRmYzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cucnRhLnhtbApAQCAtMCwwICsxLDExMiBAQAorPHhkYy5ydW50aW1lLlR5cGVzLlJ0YURlY29kZXJEYXRhPg0KKyAgPHRhcmdldE5hbWU+Z251LnRhcmdldHMuTWluZ3c8L3RhcmdldE5hbWU+DQorICA8YmluYXJ5UGFyc2VyPnVuZGVmaW5lZDwvYmluYXJ5UGFyc2VyPg0KKyAgPGVuZGlhbj5saXR0bGU8L2VuZGlhbj4NCisgIDxiaXRzUGVyQ2hhcj44PC9iaXRzUGVyQ2hhcj4NCisgIDxhcmdTaXplPjQ8L2FyZ1NpemU+DQorICA8ZXZlbnRTaXplPjQ4PC9ldmVudFNpemU+DQorICA8bG9nZ2Vycy1sZW5ndGg+MDwvbG9nZ2Vycy1sZW5ndGg+DQorICA8bW9kTWFwLWxlbmd0aD4xNzwvbW9kTWFwLWxlbmd0aD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Bc3NlcnQiPg0KKyAgICA8aWQ+MzI3NzA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Db3JlIj4NCisgICAgPGlkPjMyNzcxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiPg0KKyAgICA8aWQ+MzI3NzI8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5EaWFncyI+DQorICAgIDxpZD4zMjc3MzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkVycm9yIj4NCisgICAgPGlkPjMyNzc0PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuR2F0ZSI+DQorICAgIDxpZD4zMjc3NTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkdhdGVOdWxsIj4NCisgICAgPGlkPjMyNzc2PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nIj4NCisgICAgPGlkPjMyNzc3PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTWFpbiI+DQorICAgIDxpZD4zMjc3ODwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLk1lbW9yeSI+DQorICAgIDxpZD4zMjc3OTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkhlYXBTdGQiPg0KKyAgICA8aWQ+MzI3ODA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5TdGFydHVwIj4NCisgICAgPGlkPjMyNzgxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzdGVtIj4NCisgICAgPGlkPjMyNzgyPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzTWluIj4NCisgICAgPGlkPjMyNzgzPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuVGV4dCI+DQorICAgIDxpZD4zMjc4NDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9ImFjbWUudXRpbHMuY2xvY2tzLkNsb2NrU3RkIj4NCisgICAgPGlkPjMyNzg3PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0iYWNtZS51dGlscy5CZW5jaCI+DQorICAgIDxpZD4zMjc4ODwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPGV2dE1hcC1sZW5ndGg+NDwvZXZ0TWFwLWxlbmd0aD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9jb25zdHJ1Y3QiPg0KKyAgICA8aWQ+NDY4PC9pZD4NCisgICAgPG1zZz4lM0MtLStjb25zdHJ1Y3QlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2NyZWF0ZSI+DQorICAgIDxpZD40OTI8L2lkPg0KKyAgICA8bXNnPiUzQy0tK2NyZWF0ZSUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfZGVzdHJ1Y3QiPg0KKyAgICA8aWQ+NTEzPC9pZD4NCisgICAgPG1zZz4tLSUzRStkZXN0cnVjdCUzQSslMjglMjVwJTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9kZWxldGUiPg0KKyAgICA8aWQ+NTMyPC9pZD4NCisgICAgPG1zZz4tLSUzRStkZWxldGUlM0ErJTI4JTI1cCUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorPC94ZGMucnVudGltZS5UeXBlcy5SdGFEZWNvZGVyRGF0YT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLnhkYy5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDllZjQxYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy54ZGMuaW5jCkBAIC0wLDAgKzEsMiBAQAoraXNxcnRUZXN0MS5jZmcKK3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5jZmcKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy54ZGwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cueGRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1MjNkODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cueGRsCkBAIC0wLDAgKzEsNjcgQEAKKy8qIHRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IGxpbmtjbWQueGR0IGZyb20gdGhlIGdudS50YXJnZXRzIHBhY2thZ2UgKi8KKworLyogZnVuY3Rpb24gYWxpYXNlcyAqLworX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRSA9IF94ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0Y7CitfeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0UgPSBfeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0Y7CitfeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UgPSBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0Y7CitfeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRSA9IF94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GOworX3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRjsKK194ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSA9IF94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRjsKK194ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FID0gX3hkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0Y7CitfYWNtZV91dGlsc19CZW5jaF9lbmRfX0UgPSBfYWNtZV91dGlsc19CZW5jaF9lbmRfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GOworX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSA9IF94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRSA9IF94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GOworX3hkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRSA9IF94ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0Y7CitfeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0UgPSBfeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0Y7CitfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FID0gX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRjsKK194ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UgPSBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GOworX3hkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FID0gX3hkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19GOworX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSA9IF94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9pbml0X19GOworX3hkY19ydW50aW1lX0Vycm9yX2dldElkX19FID0gX3hkY19ydW50aW1lX0Vycm9yX2dldElkX19GOworX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GOworX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0UgPSBfeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRSA9IF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRjsKK194ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FID0gX3hkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0Y7CitfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSA9IF94ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19GOworX3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FID0gX3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GOworX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19FID0gX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19GOworX3hkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0Y7CitfYWNtZV91dGlsc19CZW5jaF9iZWdpbl9fRSA9IF9hY21lX3V0aWxzX0JlbmNoX2JlZ2luX19GOworX2FjbWVfdXRpbHNfY2xvY2tzX0Nsb2NrU3RkX2dldFRpbWVfX0UgPSBfYWNtZV91dGlsc19jbG9ja3NfQ2xvY2tTdGRfZ2V0VGltZV9fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRjsKK194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0UgPSBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GOworX3hkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0Y7CitfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FID0gX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRjsKK194ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FID0gX3hkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FID0gX3hkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRjsKK194ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UgPSBfeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19GOworX3hkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19GOworX3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UgPSBfeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRjsKK194ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19FID0gX3hkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0Y7CitfeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FID0gX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRjsKK194ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSA9IF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRjsKK194ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FID0gX3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0Y7CitfeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GOworX3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UgPSBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRjsKKworLyogaW5wdXQgbGlicmFyaWVzICovCitJTlBVVCgKKyAgICAiRDpcd29ya1x0dXRvcmlhbFxyZXBvXGFjbWVcdXRpbHNcbGliXGFjbWUudXRpbHMuYTg2R1ciCisgICAgIkQ6XHdvcmtcdHV0b3JpYWxccmVwb1xhY21lXHV0aWxzXGNsb2Nrc1xsaWJcYWNtZS51dGlscy5jbG9ja3MuYTg2R1ciCisgICAgIkU6XHJ0c2NceGRjdG9vbHNfM18xNV8wMF8yOVxwYWNrYWdlc1xnbnVcdGFyZ2V0c1xydHM4NkdXXGxpYlxnbnUudGFyZ2V0cy5ydHM4NkdXLmE4NkdXIgorICAgICJEOlx3b3JrXHR1dG9yaWFsXHJlcG9cY2hhcmxpZVxzcXJ0bGliXGxpYlxpc3FydF91bnJvbGwuYTg2R1ciCispCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NoYXJsaWUuc3FydGxpYi50ZXN0LmNjcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnRlc3QuY2NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NjdjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NoYXJsaWUuc3FydGxpYi50ZXN0LmNjcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NoYXJsaWUuc3FydGxpYi50ZXN0LnBqdCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnRlc3QucGp0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4NGZiYjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NoYXJsaWUuc3FydGxpYi50ZXN0LnBqdApAQCAtMCwwICsxLDkgQEAKKzsgQ29kZSBDb21wb3NlciBQcm9qZWN0IEZpbGUsIFZlcnNpb24gMi4wIChkbyBub3QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGxpbmUpCitbUHJvamVjdCBTZXR0aW5nc10KK1Byb2plY3ROYW1lPSJjaGFybGllLnNxcnRsaWIudGVzdCIKK1Byb2plY3RUeXBlPUV4dGVybmFsCitDUFVGYW1pbHk9VE1TMzIwQzY0WFgKK1Rvb2w9IkN1c3RvbUJ1aWxkZXIiCitDb25maWc9IlBhY2thZ2UiCitbU291cmNlIEZpbGVzXQorU291cmNlPSIuLi9pc3FydFRlc3QxLmMiCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NoYXJsaWUuc3FydGxpYi50ZXN0LnNjaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnRlc3Quc2NoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NoYXJsaWUuc3FydGxpYi50ZXN0LnNjaApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jaGFybGllX3NxcnRsaWJfdGVzdC5jbGFzcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2hhcmxpZV9zcXJ0bGliX3Rlc3QuY2xhc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2I2ODVhNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvY2hhcmxpZV9zcXJ0bGliX3Rlc3QuY2xhc3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jaGFybGllX3NxcnRsaWJfdGVzdC5qYXZhIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9jaGFybGllX3NxcnRsaWJfdGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjZmE2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL2NoYXJsaWVfc3FydGxpYl90ZXN0LmphdmEKQEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCitpbXBvcnQgamF2YS51dGlsLio7CitpbXBvcnQgb3JnLm1vemlsbGEuamF2YXNjcmlwdC4qOworaW1wb3J0IHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLio7CitpbXBvcnQgeGRjLnNlcnZpY2VzLnNwZWMuKjsKKworcHVibGljIGNsYXNzIGNoYXJsaWVfc3FydGxpYl90ZXN0Cit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBWRVJTID0gIkAoIykgeGRjLXQzMlxuIjsKKworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX0Jvb2wgPSBQcm90by5FbG0ubmV3Qm9vbCgpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX051bSA9IFByb3RvLkVsbS5uZXdOdW0oKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9TdHIgPSBQcm90by5FbG0ubmV3U3RyKCk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfT2JqID0gUHJvdG8uRWxtLm5ld09iaigpOworCisgICAgc3RhdGljIGZpbmFsIFByb3RvLkZ4biAkJFRfTWV0ID0gbmV3IFByb3RvLkZ4bihudWxsLCBudWxsLCAwLCAtMSwgZmFsc2UpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5NYXAgJCRUX01hcCA9IG5ldyBQcm90by5NYXAoJCRUX09iaik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkFyciAkJFRfVmVjID0gbmV3IFByb3RvLkFycigkJFRfT2JqKTsKKworICAgIHN0YXRpYyBmaW5hbCBYU2NyaXB0TyAkJERFRkFVTFQgPSBWYWx1ZS5ERUZBVUxUOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRVTkRFRiA9IFVuZGVmaW5lZC5pbnN0YW5jZTsKKworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRQYWNrYWdlID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJFBhY2thZ2UiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkTW9kdWxlID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJE1vZHVsZSIpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRJbnN0YW5jZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRJbnN0YW5jZSIpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRQYXJhbXMgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkUGFyYW1zIik7CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkb2JqRmxkR2V0ID0gR2xvYmFsLmdldCgiJCRvYmpGbGRHZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkb2JqRmxkU2V0ID0gR2xvYmFsLmdldCgiJCRvYmpGbGRTZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkcHJveHlHZXQgPSBHbG9iYWwuZ2V0KCIkJHByb3h5R2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJHByb3h5U2V0ID0gR2xvYmFsLmdldCgiJCRwcm94eVNldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRkZWxlZ0dldCA9IEdsb2JhbC5nZXQoIiQkZGVsZWdHZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkZGVsZWdTZXQgPSBHbG9iYWwuZ2V0KCIkJGRlbGVnU2V0Iik7CisKKyAgICBTY3JpcHRhYmxlIHhkY087CisgICAgU2Vzc2lvbiBzZXM7CisgICAgVmFsdWUuT2JqIG9tOworCisgICAgYm9vbGVhbiBpc1JPVjsKKyAgICBib29sZWFuIGlzQ0ZHOworCisgICAgUHJvdG8uT2JqIHBrZ1A7CisgICAgVmFsdWUuT2JqIHBrZ1Y7CisKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBpbXBvcnRzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gbG9nZ2FibGVzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gbWNmZ3MgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBwcm94aWVzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gc2l6ZXMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiB0ZGVmcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworCisgICAgdm9pZCAkJElNUE9SVFMoKQorICAgIHsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImxvYWRQYWNrYWdlIiwgeGRjTywgImFjbWUudXRpbHMiKTsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImxvYWRQYWNrYWdlIiwgeGRjTywgImNoYXJsaWUuc3FydGxpYiIpOworICAgICAgICBHbG9iYWwuY2FsbEZ4bigibG9hZFBhY2thZ2UiLCB4ZGNPLCAieGRjIik7CisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJsb2FkUGFja2FnZSIsIHhkY08sICJ4ZGMuY29yZXZlcnMiKTsKKyAgICB9CisKKyAgICB2b2lkICQkT0JKRUNUUygpCisgICAgeworICAgICAgICBwa2dQID0gKFByb3RvLk9iailvbS5iaW5kKCJjaGFybGllLnNxcnRsaWIudGVzdC5QYWNrYWdlIiwgbmV3IFByb3RvLk9iaigpKTsKKyAgICAgICAgcGtnViA9IChWYWx1ZS5PYmopb20uYmluZCgiY2hhcmxpZS5zcXJ0bGliLnRlc3QiLCBuZXcgVmFsdWUuT2JqKCJjaGFybGllLnNxcnRsaWIudGVzdCIsIHBrZ1ApKTsKKyAgICB9CisKKyAgICB2b2lkICQkU0lOR0xFVE9OUygpCisgICAgeworICAgICAgICBwa2dQLmluaXQoImNoYXJsaWUuc3FydGxpYi50ZXN0LlBhY2thZ2UiLCAoUHJvdG8uT2JqKW9tLmZpbmQoInhkYy5JUGFja2FnZS5Nb2R1bGUiKSk7CisgICAgICAgIHBrZ1AuYmluZCgiJGNhcHN1bGUiLCAkJFVOREVGKTsKKyAgICAgICAgcGtnVi5pbml0Mihwa2dQLCAiY2hhcmxpZS5zcXJ0bGliLnRlc3QiLCBWYWx1ZS5ERUZBVUxULCBmYWxzZSk7CisgICAgICAgIHBrZ1YuYmluZCgiJG5hbWUiLCAiY2hhcmxpZS5zcXJ0bGliLnRlc3QiKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkY2F0ZWdvcnkiLCAiUGFja2FnZSIpOworICAgICAgICBwa2dWLmJpbmQoIiQkcW4iLCAiY2hhcmxpZS5zcXJ0bGliLnRlc3QuIik7CisgICAgICAgIHBrZ1YuYmluZCgiJHZlcnMiLCBHbG9iYWwubmV3QXJyYXkoKSk7CisgICAgICAgIFZhbHVlLk1hcCBhdG1hcCA9IChWYWx1ZS5NYXApcGtnVi5nZXR2KCIkYXR0ciIpOworICAgICAgICBhdG1hcC5zZWFsKCJsZW5ndGgiKTsKKyAgICAgICAgaW1wb3J0cy5jbGVhcigpOworICAgICAgICBpbXBvcnRzLmFkZChHbG9iYWwubmV3QXJyYXkoImFjbWUudXRpbHMiLCBHbG9iYWwubmV3QXJyYXkoKSkpOworICAgICAgICBpbXBvcnRzLmFkZChHbG9iYWwubmV3QXJyYXkoImNoYXJsaWUuc3FydGxpYiIsIEdsb2JhbC5uZXdBcnJheSgpKSk7CisgICAgICAgIHBrZ1YuYmluZCgiJGltcG9ydHMiLCBpbXBvcnRzKTsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CisgICAgICAgIHNiLmFwcGVuZCgidmFyIHBrZyA9IHhkYy5vbVsnY2hhcmxpZS5zcXJ0bGliLnRlc3QnXTtcbiIpOworICAgICAgICBzYi5hcHBlbmQoImlmIChwa2cuJHZlcnMubGVuZ3RoID49IDMpIHtcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCJwa2cuJHZlcnMucHVzaChQYWNrYWdlcy54ZGMuc2VydmljZXMuZ2xvYmFsLlZlcnMuZ2V0RGF0ZSh4ZGMuY3NkKCkgKyAnLy4uJykpO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgifVxuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYnJhcmllcyA9IFtcbiIpOworICAgICAgICBzYi5hcHBlbmQoIl07XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJwa2cuYnVpbGQubGliRGVzYyA9IFtcbiIpOworICAgICAgICBzYi5hcHBlbmQoIl07XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJpZignc3VmZml4JyBpbiB4ZGMub21bJ3hkYy5JUGFja2FnZSQkTGliRGVzYyddKSB7XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJ9XG4iKTsKKyAgICAgICAgR2xvYmFsLmV2YWwoc2IudG9TdHJpbmcoKSk7CisgICAgfQorCisgICAgdm9pZCAkJElOSVRJQUxJWkFUSU9OKCkKKyAgICB7CisgICAgICAgIFZhbHVlLk9iaiB2bzsKKworICAgICAgICBpZiAoaXNDRkcpIHsKKyAgICAgICAgfS8vaXNDRkcKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImluaXQiLCBwa2dWKTsKKyAgICAgICAgKChWYWx1ZS5BcnIpb20uZmluZCgiJHBhY2thZ2VzIikpLmFkZChwa2dWKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBleGVjKCBTY3JpcHRhYmxlIHhkY08sIFNlc3Npb24gc2VzICkKKyAgICB7CisgICAgICAgIHRoaXMueGRjTyA9IHhkY087CisgICAgICAgIHRoaXMuc2VzID0gc2VzOworICAgICAgICBvbSA9IChWYWx1ZS5PYmopeGRjTy5nZXQoIm9tIiwgbnVsbCk7CisKKyAgICAgICAgT2JqZWN0IG8gPSBvbS5nZXRvKCIkbmFtZSIpOworICAgICAgICBTdHJpbmcgcyA9IG8gaW5zdGFuY2VvZiBTdHJpbmcgPyAoU3RyaW5nKW8gOiBudWxsOworICAgICAgICBpc0NGRyA9IHMgIT0gbnVsbCAmJiBzLmVxdWFscygiY2ZnIik7CisgICAgICAgIGlzUk9WID0gcyAhPSBudWxsICYmIHMuZXF1YWxzKCJyb3YiKTsKKworICAgICAgICAkJElNUE9SVFMoKTsKKyAgICAgICAgJCRPQkpFQ1RTKCk7CisgICAgICAgIGlmIChpc1JPVikgeworICAgICAgICB9Ly9pc1JPVgorICAgICAgICAkJFNJTkdMRVRPTlMoKTsKKyAgICAgICAgJCRJTklUSUFMSVpBVElPTigpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvcGFja2FnZS5ibGQueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzNlYTRlYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCkBAIC0wLDAgKzEsMjM1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgVGhpcyBmaWxlIGNvbmZvcm1zIHRvIHRoZSBEVEQgeGRjL2JsZC9idWlsZC5kdGQgLS0+Cis8cGFja2FnZSBuYW1lPSJjaGFybGllLnNxcnRsaWIudGVzdCIgdmVyc2lvbj0iIiBwcm9kdWNlcklkPSJ1bmRlZmluZWQiPgorICAgIDx1bml0cz4KKyAgICA8L3VuaXRzPgorICAgIDxzb3VyY2VzPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJpc3FydFRlc3QxLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmMiLz4KKyAgICA8L3NvdXJjZXM+CisgICAgPGNvbmZpZ3VyYXRpb25zPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJpc3FydFRlc3QxLmNmZyIvPgorICAgIDwvY29uZmlndXJhdGlvbnM+CisgICAgPG1ha2VmaWxlcz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLnhkYy5kZXAiIHNyYz0icGFja2FnZS54ZGMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLm1hayIgc3JjPSJwYWNrYWdlLmJsZCIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAubzY0UC5kZXAiIHNyYz0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRS9pc3FydFRlc3QxLm82NFAuZGVwIiBzcmM9ImlzcXJ0VGVzdDEuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g2NFAuZGVwIiBzcmM9InBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDY0UC5jZmciLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g2NFAubWFrIiBzcmM9InBhY2thZ2UuYmxkIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRS9pc3FydFRlc3QxLm82NFAuZGVwIiBzcmM9ImlzcXJ0VGVzdDEuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5vNjRQLmRlcCIgc3JjPSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQLmRlcCIgc3JjPSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jZmciLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5vODZHVy5kZXAiIHNyYz0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVy5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0UvaXNxcnRUZXN0MS5vODZHVy5kZXAiIHNyYz0iaXNxcnRUZXN0MS5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuZGVwIiBzcmM9InBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtU1BBQ0VfeDg2R1cuY2ZnIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLm84NkdXLmRlcCIgc3JjPSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUUvaXNxcnRUZXN0MS5vODZHVy5kZXAiIHNyYz0iaXNxcnRUZXN0MS5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94ODZHVy5kZXAiIHNyYz0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1USU1FX3g4NkdXLmNmZyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3JlbC9jaGFybGllX3NxcnRsaWJfdGVzdC50YXIuZGVwIiBzcmM9InBhY2thZ2UvcmVsL2NoYXJsaWVfc3FydGxpYl90ZXN0LnhkYy5pbmMiLz4KKyAgICA8L21ha2VmaWxlcz4KKyAgICA8dGFyZ2V0cz4KKyAgICAgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSJ0aS50YXJnZXRzLkM2NFB7MSwwLDYuMSw1IgorICAgICAgICAgICAgcGxhdGZvcm09InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICAgICAgICAgIGlzYT0iNjRQIgorICAgICAgICAgICAgc3VmZml4PSI2NFAiCisgICAgICAgICAgICByb290RGlyPSJkOi90aS9jNjAwMC9hbGMiCisgICAgICAgICAgICBvcz0idW5kZWZpbmVkIgorICAgICAgICAgICAgcnRzPSJ0aS50YXJnZXRzLnJ0czYwMDAiPgorICAgICAgICAgICAgPG1vZGVsIGVuZGlhbj0ibGl0dGxlIgorICAgICAgICAgICAgICAgIGNvZGVNb2RlbD0idW5kZWZpbmVkIgorICAgICAgICAgICAgICAgIGRhdGFNb2RlbD0idW5kZWZpbmVkIi8+CisgICAgICAgIDwvdGFyZ2V0PgorICAgICAgICA8dGFyZ2V0IG5hbWU9ImdudS50YXJnZXRzLk1pbmd3IgorICAgICAgICAgICAgdmVyc2lvbj0iZ251LnRhcmdldHMuTWluZ3d7MSwwLDMuNCw1IgorICAgICAgICAgICAgcGxhdGZvcm09Imhvc3QucGxhdGZvcm1zLlBDIgorICAgICAgICAgICAgaXNhPSJ4ODYiCisgICAgICAgICAgICBzdWZmaXg9Ijg2R1ciCisgICAgICAgICAgICByb290RGlyPSJlOi9ydHNjL21pbmd3IgorICAgICAgICAgICAgb3M9IldpbmRvd3MiCisgICAgICAgICAgICBydHM9ImdudS50YXJnZXRzLnJ0czg2R1ciPgorICAgICAgICAgICAgPG1vZGVsIGVuZGlhbj0ibGl0dGxlIgorICAgICAgICAgICAgICAgIGNvZGVNb2RlbD0idW5kZWZpbmVkIgorICAgICAgICAgICAgICAgIGRhdGFNb2RlbD0idW5kZWZpbmVkIi8+CisgICAgICAgIDwvdGFyZ2V0PgorICAgIDwvdGFyZ2V0cz4KKyAgICA8bGlicmFyaWVzPgorICAgIDwvbGlicmFyaWVzPgorICAgIDxleGVjdXRhYmxlcz4KKyAgICA8ZXhlY3V0YWJsZSBuYW1lPSJpc3FydFRlc3QxLVNQQUNFIgorICAgICAgICBwbmFtZT0iaXNxcnRUZXN0MS1TUEFDRS54NjRQIgorICAgICAgICB0YXJnZXQ9InRpLnRhcmdldHMuQzY0UCIKKyAgICAgICAgcGxhdGZvcm09InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICAgICAgcHJvZmlsZT0icmVsZWFzZSIKKyAgICAgICAgeENmZ1NjcmlwdD0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQLmNmZyIKKyAgICAgICAgeENmZ1ByZWZpeD0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94NjRQIgorICAgICAgICBjZmdTY3JpcHQ9ImlzcXJ0VGVzdDEuY2ZnIgorICAgICAgICBjZmdBcmdzPSIlN0JvcHRNb2RlJTNBJTIwJTI3U1BBQ0UlMjclN0QiCisgICAgICAgIC8+CisgICAgPGV4ZWN1dGFibGUgbmFtZT0iaXNxcnRUZXN0MS1USU1FIgorICAgICAgICBwbmFtZT0iaXNxcnRUZXN0MS1USU1FLng2NFAiCisgICAgICAgIHRhcmdldD0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICBwbGF0Zm9ybT0idGkucGxhdGZvcm1zLnNpbTY0UHh4IgorICAgICAgICBwcm9maWxlPSJyZWxlYXNlIgorICAgICAgICB4Q2ZnU2NyaXB0PSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDY0UC5jZmciCisgICAgICAgIHhDZmdQcmVmaXg9InBhY2thZ2UvY2ZnL2lzcXJ0VGVzdDEtVElNRV94NjRQIgorICAgICAgICBjZmdTY3JpcHQ9ImlzcXJ0VGVzdDEuY2ZnIgorICAgICAgICBjZmdBcmdzPSIlN0JvcHRNb2RlJTNBJTIwJTI3VElNRSUyNyU3RCIKKyAgICAgICAgLz4KKyAgICA8ZXhlY3V0YWJsZSBuYW1lPSJpc3FydFRlc3QxLVNQQUNFIgorICAgICAgICBwbmFtZT0iaXNxcnRUZXN0MS1TUEFDRS54ODZHVyIKKyAgICAgICAgdGFyZ2V0PSJnbnUudGFyZ2V0cy5NaW5ndyIKKyAgICAgICAgcGxhdGZvcm09Imhvc3QucGxhdGZvcm1zLlBDIgorICAgICAgICBwcm9maWxlPSJyZWxlYXNlIgorICAgICAgICB4Q2ZnU2NyaXB0PSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVNQQUNFX3g4NkdXLmNmZyIKKyAgICAgICAgeENmZ1ByZWZpeD0icGFja2FnZS9jZmcvaXNxcnRUZXN0MS1TUEFDRV94ODZHVyIKKyAgICAgICAgY2ZnU2NyaXB0PSJpc3FydFRlc3QxLmNmZyIKKyAgICAgICAgY2ZnQXJncz0iJTdCb3B0TW9kZSUzQSUyMCUyN1NQQUNFJTI3JTdEIgorICAgICAgICAvPgorICAgIDxleGVjdXRhYmxlIG5hbWU9ImlzcXJ0VGVzdDEtVElNRSIKKyAgICAgICAgcG5hbWU9ImlzcXJ0VGVzdDEtVElNRS54ODZHVyIKKyAgICAgICAgdGFyZ2V0PSJnbnUudGFyZ2V0cy5NaW5ndyIKKyAgICAgICAgcGxhdGZvcm09Imhvc3QucGxhdGZvcm1zLlBDIgorICAgICAgICBwcm9maWxlPSJyZWxlYXNlIgorICAgICAgICB4Q2ZnU2NyaXB0PSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1cuY2ZnIgorICAgICAgICB4Q2ZnUHJlZml4PSJwYWNrYWdlL2NmZy9pc3FydFRlc3QxLVRJTUVfeDg2R1ciCisgICAgICAgIGNmZ1NjcmlwdD0iaXNxcnRUZXN0MS5jZmciCisgICAgICAgIGNmZ0FyZ3M9IiU3Qm9wdE1vZGUlM0ElMjAlMjdUSU1FJTI3JTdEIgorICAgICAgICAvPgorICAgIDwvZXhlY3V0YWJsZXM+CisgICAgPHRlc3RzPgorICAgIDx0ZXN0IGV4ZU5hbWU9ImlzcXJ0VGVzdDEtU1BBQ0UueDY0UCIKKyAgICAgICAgYXJncz0iMTAwIgorICAgICAgICBncm91cE5hbWU9IlNQQUNFIgorICAgICAgICByZWZPdXRwdXQ9InVuZGVmaW5lZCIKKyAgICAgICAgcmVmRXhpdENvZGU9IjAiCisgICAgICAgIGV4ZWNBcmdzPSIiCisgICAgICAgIC8+CisgICAgPHRlc3QgZXhlTmFtZT0iaXNxcnRUZXN0MS1TUEFDRS54NjRQIgorICAgICAgICBhcmdzPSIxMDAwIgorICAgICAgICBncm91cE5hbWU9IlNQQUNFIgorICAgICAgICByZWZPdXRwdXQ9InVuZGVmaW5lZCIKKyAgICAgICAgcmVmRXhpdENvZGU9IjAiCisgICAgICAgIGV4ZWNBcmdzPSIiCisgICAgICAgIC8+CisgICAgPHRlc3QgZXhlTmFtZT0iaXNxcnRUZXN0MS1TUEFDRS54NjRQIgorICAgICAgICBhcmdzPSI2NTUzNiIKKyAgICAgICAgZ3JvdXBOYW1lPSJTUEFDRSIKKyAgICAgICAgcmVmT3V0cHV0PSJ1bmRlZmluZWQiCisgICAgICAgIHJlZkV4aXRDb2RlPSIwIgorICAgICAgICBleGVjQXJncz0iIgorICAgICAgICAvPgorICAgIDx0ZXN0IGV4ZU5hbWU9ImlzcXJ0VGVzdDEtU1BBQ0UueDY0UCIKKyAgICAgICAgYXJncz0iIgorICAgICAgICBncm91cE5hbWU9ImlzcXJ0VGVzdDEtU1BBQ0UueDY0UCIKKyAgICAgICAgcmVmT3V0cHV0PSJ1bmRlZmluZWQiCisgICAgICAgIHJlZkV4aXRDb2RlPSIwIgorICAgICAgICBleGVjQXJncz0iIgorICAgICAgICAvPgorICAgIDx0ZXN0IGV4ZU5hbWU9ImlzcXJ0VGVzdDEtVElNRS54NjRQIgorICAgICAgICBhcmdzPSIxMDAiCisgICAgICAgIGdyb3VwTmFtZT0iVElNRSIKKyAgICAgICAgcmVmT3V0cHV0PSJ1bmRlZmluZWQiCisgICAgICAgIHJlZkV4aXRDb2RlPSIwIgorICAgICAgICBleGVjQXJncz0iIgorICAgICAgICAvPgorICAgIDx0ZXN0IGV4ZU5hbWU9ImlzcXJ0VGVzdDEtVElNRS54NjRQIgorICAgICAgICBhcmdzPSIxMDAwIgorICAgICAgICBncm91cE5hbWU9IlRJTUUiCisgICAgICAgIHJlZk91dHB1dD0idW5kZWZpbmVkIgorICAgICAgICByZWZFeGl0Q29kZT0iMCIKKyAgICAgICAgZXhlY0FyZ3M9IiIKKyAgICAgICAgLz4KKyAgICA8dGVzdCBleGVOYW1lPSJpc3FydFRlc3QxLVRJTUUueDY0UCIKKyAgICAgICAgYXJncz0iNjU1MzYiCisgICAgICAgIGdyb3VwTmFtZT0iVElNRSIKKyAgICAgICAgcmVmT3V0cHV0PSJ1bmRlZmluZWQiCisgICAgICAgIHJlZkV4aXRDb2RlPSIwIgorICAgICAgICBleGVjQXJncz0iIgorICAgICAgICAvPgorICAgIDx0ZXN0IGV4ZU5hbWU9ImlzcXJ0VGVzdDEtVElNRS54NjRQIgorICAgICAgICBhcmdzPSIiCisgICAgICAgIGdyb3VwTmFtZT0iaXNxcnRUZXN0MS1USU1FLng2NFAiCisgICAgICAgIHJlZk91dHB1dD0idW5kZWZpbmVkIgorICAgICAgICByZWZFeGl0Q29kZT0iMCIKKyAgICAgICAgZXhlY0FyZ3M9IiIKKyAgICAgICAgLz4KKyAgICA8dGVzdCBleGVOYW1lPSJpc3FydFRlc3QxLVNQQUNFLng4NkdXIgorICAgICAgICBhcmdzPSIxMDAiCisgICAgICAgIGdyb3VwTmFtZT0iU1BBQ0UiCisgICAgICAgIHJlZk91dHB1dD0idW5kZWZpbmVkIgorICAgICAgICByZWZFeGl0Q29kZT0iMCIKKyAgICAgICAgZXhlY0FyZ3M9IiIKKyAgICAgICAgLz4KKyAgICA8dGVzdCBleGVOYW1lPSJpc3FydFRlc3QxLVNQQUNFLng4NkdXIgorICAgICAgICBhcmdzPSIxMDAwIgorICAgICAgICBncm91cE5hbWU9IlNQQUNFIgorICAgICAgICByZWZPdXRwdXQ9InVuZGVmaW5lZCIKKyAgICAgICAgcmVmRXhpdENvZGU9IjAiCisgICAgICAgIGV4ZWNBcmdzPSIiCisgICAgICAgIC8+CisgICAgPHRlc3QgZXhlTmFtZT0iaXNxcnRUZXN0MS1TUEFDRS54ODZHVyIKKyAgICAgICAgYXJncz0iNjU1MzYiCisgICAgICAgIGdyb3VwTmFtZT0iU1BBQ0UiCisgICAgICAgIHJlZk91dHB1dD0idW5kZWZpbmVkIgorICAgICAgICByZWZFeGl0Q29kZT0iMCIKKyAgICAgICAgZXhlY0FyZ3M9IiIKKyAgICAgICAgLz4KKyAgICA8dGVzdCBleGVOYW1lPSJpc3FydFRlc3QxLVNQQUNFLng4NkdXIgorICAgICAgICBhcmdzPSIiCisgICAgICAgIGdyb3VwTmFtZT0iaXNxcnRUZXN0MS1TUEFDRS54ODZHVyIKKyAgICAgICAgcmVmT3V0cHV0PSJ1bmRlZmluZWQiCisgICAgICAgIHJlZkV4aXRDb2RlPSIwIgorICAgICAgICBleGVjQXJncz0iIgorICAgICAgICAvPgorICAgIDx0ZXN0IGV4ZU5hbWU9ImlzcXJ0VGVzdDEtVElNRS54ODZHVyIKKyAgICAgICAgYXJncz0iMTAwIgorICAgICAgICBncm91cE5hbWU9IlRJTUUiCisgICAgICAgIHJlZk91dHB1dD0idW5kZWZpbmVkIgorICAgICAgICByZWZFeGl0Q29kZT0iMCIKKyAgICAgICAgZXhlY0FyZ3M9IiIKKyAgICAgICAgLz4KKyAgICA8dGVzdCBleGVOYW1lPSJpc3FydFRlc3QxLVRJTUUueDg2R1ciCisgICAgICAgIGFyZ3M9IjEwMDAiCisgICAgICAgIGdyb3VwTmFtZT0iVElNRSIKKyAgICAgICAgcmVmT3V0cHV0PSJ1bmRlZmluZWQiCisgICAgICAgIHJlZkV4aXRDb2RlPSIwIgorICAgICAgICBleGVjQXJncz0iIgorICAgICAgICAvPgorICAgIDx0ZXN0IGV4ZU5hbWU9ImlzcXJ0VGVzdDEtVElNRS54ODZHVyIKKyAgICAgICAgYXJncz0iNjU1MzYiCisgICAgICAgIGdyb3VwTmFtZT0iVElNRSIKKyAgICAgICAgcmVmT3V0cHV0PSJ1bmRlZmluZWQiCisgICAgICAgIHJlZkV4aXRDb2RlPSIwIgorICAgICAgICBleGVjQXJncz0iIgorICAgICAgICAvPgorICAgIDx0ZXN0IGV4ZU5hbWU9ImlzcXJ0VGVzdDEtVElNRS54ODZHVyIKKyAgICAgICAgYXJncz0iIgorICAgICAgICBncm91cE5hbWU9ImlzcXJ0VGVzdDEtVElNRS54ODZHVyIKKyAgICAgICAgcmVmT3V0cHV0PSJ1bmRlZmluZWQiCisgICAgICAgIHJlZkV4aXRDb2RlPSIwIgorICAgICAgICBleGVjQXJncz0iIgorICAgICAgICAvPgorICAgIDwvdGVzdHM+CisgICAgPHJlbGVhc2VzIHJlbERpcj0icGFja2FnZS9yZWwvIj4KKyAgICA8cmVsZWFzZSBuYW1lPSJjaGFybGllX3NxcnRsaWJfdGVzdCIKKyAgICAgICAgcG5hbWU9ImNoYXJsaWVfc3FydGxpYl90ZXN0LnRhciIKKyAgICAgICAgbGFiZWw9ImRlZmF1bHQiCisgICAgPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL2J1aWxkLmNmZyIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UuZXh0LnhtbCIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UueGRjLmluYyIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UuYmxkLnhtbCIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UucmVsLmRvdCIvPgorICAgIDwvcmVsZWFzZT4KKyAgICA8L3JlbGVhc2VzPgorICAgIDxyZXBvc2l0b3JpZXM+CisgICAgPC9yZXBvc2l0b3JpZXM+Cis8L3BhY2thZ2U+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9wYWNrYWdlLmRlZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2U4YTU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9wYWNrYWdlLmRlZnMuaApAQCAtMCwwICsxLDEzIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaWZuZGVmIGNoYXJsaWVfc3FydGxpYl90ZXN0X18KKyNkZWZpbmUgY2hhcmxpZV9zcXJ0bGliX3Rlc3RfXworCisKKworI2VuZGlmIC8qIGNoYXJsaWVfc3FydGxpYl90ZXN0X18gKi8gCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL3BhY2thZ2UuZG9jLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvcGFja2FnZS5kb2MueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzNGNiZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL3BhY2thZ2UuZG9jLnhtbApAQCAtMCwwICsxLDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cGFja2FnZSBraW5kPSdwYWNrYWdlJyBuYW1lPSdjaGFybGllLnNxcnRsaWIudGVzdCcgbm9kb2M9JzAnIHJvb3Q9Jy4uLy4uLy4uLycgc3VtbWFyeT0nQ29tcGFuaW9uK3Rlc3RzK2ZvcitjaGFybGllLnNxcnRsaWIrJTVCUlRTQytQYWNrYWdpbmcrUHJpbWVyJTVEJz4KKyAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXJlcXVpcmVzJTNDJTJGc3BhbiUzRSslM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGLi4lMkZhY21lJTJGdXRpbHMlMkZwYWNrYWdlLmh0bWwlMjIrdGl0bGUlM0QlMjJhY21lLnV0aWxzJTIyJTNFYWNtZS51dGlscyUzQyUyRmElM0UlM0InLz4KKyAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXJlcXVpcmVzJTNDJTJGc3BhbiUzRSslM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGLi4lMkZjaGFybGllJTJGc3FydGxpYiUyRnBhY2thZ2UuaHRtbCUyMit0aXRsZSUzRCUyMmNoYXJsaWUuc3FydGxpYiUyMiUzRWNoYXJsaWUuc3FydGxpYiUzQyUyRmElM0UlM0InLz4KKyAgICA8bGluZSBibGFuaz0nMScgYWx3YXlzPScwJy8+CisgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VwYWNrYWdlJTNDJTJGc3BhbiUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFY2hhcmxpZS5zcXJ0bGliLnRlc3QlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTdCJy8+CisgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclN0QnLz4KKzwvcGFja2FnZT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGEwZGY1NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwCkBAIC0wLDAgKzEsNTcgQEAKK2NsZWFuOjoNCisJJChSTSkgcGFja2FnZS9jaGFybGllLnNxcnRsaWIudGVzdC5zY2gNCisJJChSTSkgcGFja2FnZS8udmVyc19nMTUwDQorCSQoUk0pIHBhY2thZ2UvLnZlcnNfcjE1MA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX2IxNTANCisJJChSTSkgcGFja2FnZS8udmVyc19jMTUwDQorCSQoUk0pIHBhY2thZ2UvLnhkYy10MzINCisJJChSTSkgcGFja2FnZS9jaGFybGllX3NxcnRsaWJfdGVzdC5qYXZhDQorCSQoUk0pIHBhY2thZ2UvY2hhcmxpZV9zcXJ0bGliX3Rlc3QuY2xhc3MNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi50ZXN0LmMNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlLmRlZnMuaA0KKwkkKFJNKSBwYWNrYWdlL3BhY2thZ2UuZG9jLnhtbA0KKwkkKFJNKSBwYWNrYWdlL2NoYXJsaWUuc3FydGxpYi50ZXN0LmNjcw0KKworLmludGVyZmFjZXM6IHBhY2thZ2UvY2hhcmxpZS5zcXJ0bGliLnRlc3Quc2NoIHBhY2thZ2UvLnZlcnNfZzE1MCBwYWNrYWdlLy52ZXJzX3IxNTAgcGFja2FnZS8udmVyc19iMTUwIHBhY2thZ2UvLnZlcnNfYzE1MCBwYWNrYWdlLy54ZGMtdDMyIHBhY2thZ2UvY2hhcmxpZV9zcXJ0bGliX3Rlc3QuamF2YSBwYWNrYWdlL2NoYXJsaWVfc3FydGxpYl90ZXN0LmNsYXNzIHBhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIudGVzdC5jIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggcGFja2FnZS9wYWNrYWdlLmRvYy54bWwgcGFja2FnZS9jaGFybGllLnNxcnRsaWIudGVzdC5jY3MgCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19nMTUwCitwYWNrYWdlLy52ZXJzX2cxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19yMTUwCitwYWNrYWdlLy52ZXJzX3IxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19iMTUwCitwYWNrYWdlLy52ZXJzX2IxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19jMTUwCitwYWNrYWdlLy52ZXJzX2MxNTA6CisKKy5pbnRlcmZhY2VzOiAKKworIyBzY2hlbWEgaW5jbHVkZSBmaWxlIGRlcGVuZGVuY2llcworCisjIHNjaGVtYSB1cGRhdGUgZGVwZW5kZW5jaWVzCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogeGRjL0lQYWNrYWdlLnhkYw0KK3hkYy9JUGFja2FnZS54ZGM6DQordnBhdGggeGRjL0lQYWNrYWdlLnhkYyAkKFhQS0dWUEFUSCkNCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCitDOi9Qcm9ncmFtXCBGaWxlcy9UZXhhc1wgSW5zdHJ1bWVudHMveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9lY2ouamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBDOi9Qcm9ncmFtXCBGaWxlcy9UZXhhc1wgSW5zdHJ1bWVudHMveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9lY2ouamFyDQorQzovUHJvZ3JhbVwgRmlsZXMvVGV4YXNcIEluc3RydW1lbnRzL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEveGJlYW4uamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBDOi9Qcm9ncmFtXCBGaWxlcy9UZXhhc1wgSW5zdHJ1bWVudHMveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS94YmVhbi5qYXINCitDOi9Qcm9ncmFtXCBGaWxlcy9UZXhhc1wgSW5zdHJ1bWVudHMveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9qcy5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEM6L1Byb2dyYW1cIEZpbGVzL1RleGFzXCBJbnN0cnVtZW50cy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2pzLmphcg0KK0M6L1Byb2dyYW1cIEZpbGVzL1RleGFzXCBJbnN0cnVtZW50cy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEM6L1Byb2dyYW1cIEZpbGVzL1RleGFzXCBJbnN0cnVtZW50cy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2phdmEvcGFja2FnZS5qYXINCitDOi9Qcm9ncmFtXCBGaWxlcy9UZXhhc1wgSW5zdHJ1bWVudHMveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS90YXIuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBDOi9Qcm9ncmFtXCBGaWxlcy9UZXhhc1wgSW5zdHJ1bWVudHMveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS90YXIuamFyDQorQzovUHJvZ3JhbVwgRmlsZXMvVGV4YXNcIEluc3RydW1lbnRzL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL3NwZWMvamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogQzovUHJvZ3JhbVwgRmlsZXMvVGV4YXNcIEluc3RydW1lbnRzL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL3NwZWMvamF2YS9wYWNrYWdlLmphcg0KK0M6L1Byb2dyYW1cIEZpbGVzL1RleGFzXCBJbnN0cnVtZW50cy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vZ2VuL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEM6L1Byb2dyYW1cIEZpbGVzL1RleGFzXCBJbnN0cnVtZW50cy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vZ2VuL2phdmEvcGFja2FnZS5qYXINCitDOi9Qcm9ncmFtXCBGaWxlcy9UZXhhc1wgSW5zdHJ1bWVudHMveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9hbnRsci5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEM6L1Byb2dyYW1cIEZpbGVzL1RleGFzXCBJbnN0cnVtZW50cy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2FudGxyLmphcg0KK0M6L1Byb2dyYW1cIEZpbGVzL1RleGFzXCBJbnN0cnVtZW50cy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4veHNyL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEM6L1Byb2dyYW1cIEZpbGVzL1RleGFzXCBJbnN0cnVtZW50cy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4veHNyL2phdmEvcGFja2FnZS5qYXINCitDOi9Qcm9ncmFtXCBGaWxlcy9UZXhhc1wgSW5zdHJ1bWVudHMveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEM6L1Byb2dyYW1cIEZpbGVzL1RleGFzXCBJbnN0cnVtZW50cy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvamF2YS9wYWNrYWdlLmphcg0KK2VuZGlmCisjIGdvYWxzIGZvciBmaWxlcyBnZW5lcmF0ZWQgZHVyaW5nIHNjaGVtYSBnZW5lcmF0aW9uIGJ1dCB1bnNwZWNpZmllZCBieSBzY2hlbWEncyBwYXR0ZXJuIHJ1bGUKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL3BhY2thZ2UueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODJkZTdhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKQEAgLTAsMCArMSwxMyBAQAorcGFja2FnZS54ZGMNCitwYWNrYWdlL2NoYXJsaWUuc3FydGxpYi50ZXN0LnNjaA0KK3BhY2thZ2UvLnZlcnNfZzE1MA0KK3BhY2thZ2UvLnZlcnNfcjE1MA0KK3BhY2thZ2UvLnZlcnNfYjE1MA0KK3BhY2thZ2UvLnZlcnNfYzE1MA0KK3BhY2thZ2UvLnhkYy10MzINCitwYWNrYWdlL2NoYXJsaWVfc3FydGxpYl90ZXN0LmphdmENCitwYWNrYWdlL2NoYXJsaWVfc3FydGxpYl90ZXN0LmNsYXNzDQorcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi50ZXN0LmMNCitwYWNrYWdlL3BhY2thZ2UuZGVmcy5oDQorcGFja2FnZS9wYWNrYWdlLmRvYy54bWwNCitwYWNrYWdlL2NoYXJsaWUuc3FydGxpYi50ZXN0LmNjcw0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIudGVzdC5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9wYWNrYWdlX2NoYXJsaWUuc3FydGxpYi50ZXN0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUxNmMzOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NoYXJsaWUvc3FydGxpYi90ZXN0L3BhY2thZ2UvcGFja2FnZV9jaGFybGllLnNxcnRsaWIudGVzdC5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKK19fRkFSX18gY2hhciBjaGFybGllX3NxcnRsaWJfdGVzdF9fZHVtbXlfXzsKKworI2RlZmluZSBfX3hkY19QS0dWRVJTIG51bGwKKyNkZWZpbmUgX194ZGNfUEtHTkFNRSBjaGFybGllLnNxcnRsaWIudGVzdAorI2RlZmluZSBfX3hkY19QS0dQUkVGSVggY2hhcmxpZV9zcXJ0bGliX3Rlc3RfCisKKyNpZmRlZiBfX3hkY19ibGRfcGtnX2NfXworI2RlZmluZSBfX3N0cmluZ2lmeShhKSAjYQorI2RlZmluZSBfX2xvY2FsX2luY2x1ZGUoYSkgX19zdHJpbmdpZnkoYSkKKyNpbmNsdWRlIF9fbG9jYWxfaW5jbHVkZShfX3hkY19ibGRfcGtnX2NfXykKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9jaGFybGllL3NxcnRsaWIvdGVzdC9wYWNrYWdlL3JlbC9jaGFybGllX3NxcnRsaWJfdGVzdC54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9yZWwvY2hhcmxpZV9zcXJ0bGliX3Rlc3QueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYWQyMzkzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY2hhcmxpZS9zcXJ0bGliL3Rlc3QvcGFja2FnZS9yZWwvY2hhcmxpZV9zcXJ0bGliX3Rlc3QueGRjLmluYwpAQCAtMCwwICsxLDUgQEAKK3BhY2thZ2UvYnVpbGQuY2ZnCitwYWNrYWdlL3BhY2thZ2UuZXh0LnhtbAorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKK3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCitwYWNrYWdlL3BhY2thZ2UucmVsLmRvdApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vY29uZmlnLmJsZCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NvbmZpZy5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI2MDMyYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2NvbmZpZy5ibGQKQEAgLTAsMCArMSwxNSBAQAorLyoNCisgKiAgPT09PT09PT0gY29uZmlnLmJsZCA9PT09PT09PQ0KKyAqLw0KKw0KK3ZhciBCdWlsZCA9IHhkYy51c2VNb2R1bGUoJ3hkYy5ibGQuQnVpbGRFbnZpcm9ubWVudCcpOw0KKyANCit2YXIgQzY0UCA9IHhkYy51c2VNb2R1bGUoJ3RpLnRhcmdldHMuQzY0UCcpOw0KK3ZhciBHQ0MgPSB4ZGMudXNlTW9kdWxlKCdnbnUudGFyZ2V0cy5NaW5ndycpOw0KKyANCitDNjRQLnJvb3REaXIgPSAiZDovdGkvYzYwMDAvYWxjIjsgIC8qIG1vZGlmeSB0byBtYXRjaCAlYzZ4dG9vbHMlICovDQorQzY0UC5wbGF0Zm9ybSA9ICd0aS5wbGF0Zm9ybXMuc2ltNjRQeHgnOw0KKyANCitHQ0Mucm9vdERpciA9ICJlOi9ydHNjL21pbmd3IjsgICAvKiBtb2RpZnkgdG8gbWF0Y2ggJWdjY3Rvb2xzJSAqLw0KKyANCitCdWlsZC50YXJnZXRzID0gW0M2NFAsIEdDQ107DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kLy5jZHRwcm9qZWN0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kLy5jZHRwcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2MTAyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLmNkdHByb2plY3QKQEAgLTAsMCArMSw2NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8P2VjbGlwc2UtY2R0IHZlcnNpb249IjIuMCI/Pg0KKw0KKzxjZHRwcm9qZWN0IGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2UiPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVMRiIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkJpbmFyeVBhcnNlciIvPg0KKzxkYXRhPg0KKzxpdGVtIGlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlckZpbGVQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L2l0ZW0+DQorPGl0ZW0gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhdGhlbnRyeSI+DQorPHBhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0ib3V0IiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5ESVNDT1ZFUkVEX1NDQU5ORVJfSU5GTyIvPg0KKzwvaXRlbT4NCis8aXRlbSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZHRhcmdldHMiPg0KKzxidWlsZFRhcmdldHM+DQorPHRhcmdldCBuYW1lPSJ0ZXN0IiBwYXRoPSIiIHRhcmdldElEPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5NYWtlVGFyZ2V0QnVpbGRlciI+DQorPGJ1aWxkQ29tbWFuZD5kOi93b3JrL2lsaWFkL3hkYzwvYnVpbGRDb21tYW5kPg0KKzxidWlsZEFyZ3VtZW50cy8+DQorPGJ1aWxkVGFyZ2V0PnRlc3Q8L2J1aWxkVGFyZ2V0Pg0KKzxzdG9wT25FcnJvcj5mYWxzZTwvc3RvcE9uRXJyb3I+DQorPHVzZURlZmF1bHRDb21tYW5kPmZhbHNlPC91c2VEZWZhdWx0Q29tbWFuZD4NCis8L3RhcmdldD4NCis8L2J1aWxkVGFyZ2V0cz4NCis8L2l0ZW0+DQorPC9kYXRhPg0KKzwvY2R0cHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLmNwcm9qZWN0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kLy5jcHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NGEyNjkyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kLy5jcHJvamVjdApAQCAtMCwwICsxLDI2OSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8P2ZpbGVWZXJzaW9uIDQuMC4wPz4NCisNCis8Y3Byb2plY3Q+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnNldHRpbmdzIj4NCis8Y2NvbmZpZ3VyYXRpb24gaWQ9IjAuMTQ4NDU3MzU1Ij4NCis8c3RvcmFnZU1vZHVsZSBidWlsZFN5c3RlbUlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5jb25maWd1cmF0aW9uRGF0YVByb3ZpZGVyIiBpZD0iMC4xNDg0NTczNTUiIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyIgbmFtZT0iRGVmYXVsdCI+DQorPGV4dGVybmFsU2V0dGluZ3MvPg0KKzxleHRlbnNpb25zPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLlZDRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkdBU0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5HTERFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuR0NDRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPC9leHRlbnNpb25zPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0iY2R0QnVpbGRTeXN0ZW0iIHZlcnNpb249IjQuMC4wIj4NCis8Y29uZmlndXJhdGlvbiBhcnRpZmFjdE5hbWU9ImhlbGxvLm1vZCIgYnVpbGRQcm9wZXJ0aWVzPSIiIGRlc2NyaXB0aW9uPSIiIGlkPSIwLjE0ODQ1NzM1NSIgbmFtZT0iRGVmYXVsdCIgcGFyZW50PSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS5jZmciPg0KKzxmb2xkZXJJbmZvIGlkPSIwLjE0ODQ1NzM1NS4iIG5hbWU9Ii8iIHJlc291cmNlUGF0aD0iIj4NCis8dG9vbENoYWluIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS50b29sY2hhaW4uNTYyNjMxMjgiIG5hbWU9Ik5vIFRvb2xDaGFpbiIgcmVzb3VyY2VUeXBlQmFzZWREaXNjb3Zlcnk9ImZhbHNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS50b29sY2hhaW4iPg0KKzx0YXJnZXRQbGF0Zm9ybSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUucHJlZmJhc2UudG9vbGNoYWluLjU2MjYzMTI4LjEyOTU2NzM0NzciIG5hbWU9IiIvPg0KKzxidWlsZGVyIGJ1aWxkUGF0aD0iIiBjb21tYW5kPSIke1hEQ1JPT1R9L3hkYyIgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmRlZmF1bHQuYnVpbGRlci44NDg4NzA3NDYiIGtlZXBFbnZpcm9ubWVudEluQnVpbGRmaWxlPSJmYWxzZSIgbWFuYWdlZEJ1aWxkT249ImZhbHNlIiBuYW1lPSJHbnUgTWFrZSBCdWlsZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5kZWZhdWx0LmJ1aWxkZXIiLz4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmxpYnMuNDM3NDc0NTExIiBuYW1lPSJob2xkZXIgZm9yIGxpYnJhcnkgc2V0dGluZ3MiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5saWJzIi8+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci4yMDA4NzcyNzQ4IiBuYW1lPSJHTlUgQysrIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuMTc4NTM1MDQ3MSIgbGFuZ3VhZ2VJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZysrIiBsYW5ndWFnZU5hbWU9IkdOVSBDKysiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5jeHhTb3VyY2Usb3JnLmVjbGlwc2UuY2R0LmNvcmUuY3h4SGVhZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuMTcxNTQ0MDM1MiIgbmFtZT0iR05VIEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS4xODAyODE2MTExIiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5nY2MiIGxhbmd1YWdlTmFtZT0iR05VIEMiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5jU291cmNlLG9yZy5lY2xpcHNlLmNkdC5jb3JlLmNIZWFkZXIiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUiLz4NCis8L3Rvb2w+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci4yMTI2NjI4ODM3IiBuYW1lPSJVUEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS4xMDMwNDUwNjYwIiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXJzZXIudXBjLnVwYyIgbGFuZ3VhZ2VOYW1lPSJVUEMiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXJzZXIudXBjLnVwY1NvdXJjZSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZSIvPg0KKzwvdG9vbD4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLjE5NDc5NTMzNDEiIG5hbWU9IkFzc2VtYmx5IiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuMTYyNzQwNDcwIiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5hc3NlbWJseSIgbGFuZ3VhZ2VOYW1lPSJBc3NlbWJseSIgc291cmNlQ29udGVudFR5cGU9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmFzbVNvdXJjZSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZSIvPg0KKzwvdG9vbD4NCis8L3Rvb2xDaGFpbj4NCis8L2ZvbGRlckluZm8+DQorPC9jb25maWd1cmF0aW9uPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ic2Nhbm5lckNvbmZpZ3VyYXRpb24iPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJGaWxlUHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9Im1ha2VmaWxlR2VuZXJhdG9yIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLWYgJHtwcm9qZWN0X25hbWV9X3NjZC5tayIgY29tbWFuZD0ibWFrZSIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmMiIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC12ICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSIke1hMX2NvbXBpbGVyUm9vdH0veGxjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci54bGMuY29yZS5YTENNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bEMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8c2Nhbm5lckNvbmZpZ0J1aWxkSW5mbyBpbnN0YW5jZUlkPSIwLjE0ODQ1NzM1NSI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyRmlsZVByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9Im1ha2VmaWxlR2VuZXJhdG9yIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLWYgJHtwcm9qZWN0X25hbWV9X3NjZC5tayIgY29tbWFuZD0ibWFrZSIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jcHAiIGNvbW1hbmQ9ImcrKyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmMiIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jcHAiIGNvbW1hbmQ9ImcrKyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmMiIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci54bGMuY29yZS5YTENNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC12ICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSIke1hMX2NvbXBpbGVyUm9vdH0veGxjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bEMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzwvc2Nhbm5lckNvbmZpZ0J1aWxkSW5mbz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhdGhlbnRyeSI+DQorPHBhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0ib3V0IiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5ESVNDT1ZFUkVEX1NDQU5ORVJfSU5GTyIvPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZXh0ZXJuYWxTZXR0aW5ncyIvPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkdGFyZ2V0cyI+DQorPGJ1aWxkVGFyZ2V0cz4NCis8dGFyZ2V0IG5hbWU9InRlc3QiIHBhdGg9IiIgdGFyZ2V0SUQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5NYWtlVGFyZ2V0QnVpbGRlciI+DQorPGJ1aWxkQ29tbWFuZD4ke1hEQ1JPT1R9L3hkYzwvYnVpbGRDb21tYW5kPg0KKzxidWlsZEFyZ3VtZW50cz48L2J1aWxkQXJndW1lbnRzPg0KKzxidWlsZFRhcmdldD50ZXN0PC9idWlsZFRhcmdldD4NCis8c3RvcE9uRXJyb3I+dHJ1ZTwvc3RvcE9uRXJyb3I+DQorPHVzZURlZmF1bHRDb21tYW5kPmZhbHNlPC91c2VEZWZhdWx0Q29tbWFuZD4NCis8cnVuQWxsQnVpbGRlcnM+dHJ1ZTwvcnVuQWxsQnVpbGRlcnM+DQorPC90YXJnZXQ+DQorPC9idWlsZFRhcmdldHM+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJjZHRCdWlsZFN5c3RlbSIgdmVyc2lvbj0iNC4wLjAiPg0KKzxwcm9qZWN0IGlkPSJoZWxsby5tb2QubnVsbC4xMTgxNjE5OTAyIiBuYW1lPSJoZWxsby5tb2QiLz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jcHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLmRsbHMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLmRsbHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8uZGxscwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kLy5leGVjdXRhYmxlcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8uZXhlY3V0YWJsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8uZXhlY3V0YWJsZXMKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8uaW50ZXJmYWNlcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8uaW50ZXJmYWNlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kLy5pbnRlcmZhY2VzCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLmxpYnJhcmllcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8ubGlicmFyaWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLmxpYnJhcmllcwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kLy5saWJyYXJpZXMsNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kLy5saWJyYXJpZXMsNjRQCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLmxpYnJhcmllcyw2NFAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8ubGlicmFyaWVzLDg2R1cgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLmxpYnJhcmllcyw4NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLmxpYnJhcmllcyw4NkdXCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLnByb2plY3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU1YzFhNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8ucHJvamVjdApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPmhlbGxvLm1vZDwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmdlbm1ha2VidWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pj9uYW1lPzwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXV0b0J1aWxkVGFyZ2V0PC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZEFyZ3VtZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGRDb21tYW5kPC9rZXk+DQorCQkJCQk8dmFsdWU+JHtYRENST09UfS94ZGM8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkTG9jYXRpb248L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmNsZWFuQnVpbGRUYXJnZXQ8L2tleT4NCisJCQkJCTx2YWx1ZT5jbGVhbjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuY29udGVudHM8L2tleT4NCisJCQkJCTx2YWx1ZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFjdGl2ZUNvbmZpZ1NldHRpbmdzPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVBdXRvQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUZ1bGxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmZ1bGxCdWlsZFRhcmdldDwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS51c2VEZWZhdWx0QnVpbGRDbWQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5TY2FubmVyQ29uZmlnQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCTwvYnVpbGRTcGVjPg0KKwk8bmF0dXJlcz4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0LmNvcmUuY25hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5TY2FubmVyQ29uZmlnTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLm1hbmFnZWRCdWlsZE5hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGNiNjhkOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKQEAgLTAsMCArMSwzIEBACisjRnJpIEZlYiAyMCAwOTo1NjozNyBQU1QgMjAwOQ0KK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQoraW5kZXhlcklkPW9yZy5lY2xpcHNlLmNkdC5jb3JlLmRvbXNvdXJjZWluZGV4ZXINCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAxYzk1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC8ueGRjZW52Lm1hawpAQCAtMCwwICsxLDE2IEBACisjCitfWERDQlVJTERDT1VOVCA9IDAKK2lmbmVxICgsJChmaW5kc3RyaW5nIHBhdGgsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDUEFUSCA9IAorb3ZlcnJpZGUgWERDUk9PVCA9IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOQorb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuLi8uLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlczsuLi8uLgorSE9TVE9TID0gV2luZG93cworZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9UYWxrZXIuYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9UYWxrZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjEyYzhiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL1RhbGtlci5jCkBAIC0wLDAgKzEsMTQgQEAKKy8qDQorICogID09PT09PT09IGhlbGxvL21vZC9UYWxrZXIuYyA9PT09PT09PQ0KKyAqLw0KKw0KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4NCisjaW5jbHVkZSAicGFja2FnZS9pbnRlcm5hbC9UYWxrZXIueGRjLmgiDQorIA0KK1ZvaWQgVGFsa2VyX3ByaW50KCkNCit7DQorICAgIEludCBpOw0KKyAgICBmb3IgKGkgPSAwOyBpIDwgVGFsa2VyX2NvdW50OyBpKyspIHsNCisgICAgICAgIFN5c3RlbV9wcmludGYoIiVzXG4iLCBUYWxrZXJfdGV4dCk7DQorICAgIH0NCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL1RhbGtlci5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL1RhbGtlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyMzlhNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvVGFsa2VyLmgKQEAgLTAsMCArMSwzNDYgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKy8qCisgKiA9PT09PT09PSBHRU5FUkFURUQgU0VDVElPTlMgPT09PT09PT0KKyAqICAgICAKKyAqICAgICBQUk9MT0dVRQorICogICAgIElOQ0xVREVTCisgKiAgICAgCisgKiAgICAgSU5URVJOQUwgREVGSU5JVElPTlMKKyAqICAgICBNT0RVTEUtV0lERSBDT05GSUdTCisgKiAgICAgRlVOQ1RJT04gREVDTEFSQVRJT05TCisgKiAgICAgU1lTVEVNIEZVTkNUSU9OUworICogICAgIEMrKyBDTElFTlQgV1JBUFBFUiBbZXhwZXJpbWVudGFsXQorICogICAgIAorICogICAgIEVQSUxPR1VFCisgKiAgICAgU1RBVEUgU1RSVUNUVVJFUworICogICAgIFBSRUZJWCBBTElBU0VTCisgKiAgICAgQysrIFNVUFBMSUVSIFdSQVBQRVIgW2V4cGVyaW1lbnRhbF0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSBQUk9MT0dVRSA9PT09PT09PQorICovCisKKyNpZm5kZWYgaGVsbG9fbW9kX1RhbGtlcl9faW5jbHVkZQorI2RlZmluZSBoZWxsb19tb2RfVGFsa2VyX19pbmNsdWRlCisKKyNpZm5kZWYgX19uZXN0ZWRfXworI2RlZmluZSBfX25lc3RlZF9fCisjZGVmaW5lIGhlbGxvX21vZF9UYWxrZXJfX3RvcF9fCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCisjZGVmaW5lIF9fZXh0ZXJuIGV4dGVybiAiQyIKKyNlbHNlCisjZGVmaW5lIF9fZXh0ZXJuIGV4dGVybgorI2VuZGlmCisKKyNkZWZpbmUgaGVsbG9fbW9kX1RhbGtlcl9fX1ZFUlMgMTUwCisKKworLyoKKyAqID09PT09PT09IElOQ0xVREVTID09PT09PT09CisgKi8KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworI2luY2x1ZGUgPHhkYy9ydW50aW1lL3hkYy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1R5cGVzLmg+CisjaW5jbHVkZSA8aGVsbG8vbW9kL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg+CisKKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9JTW9kdWxlLmg+CisKKworLyoKKyAqID09PT09PT09IEFVWElMSUFSWSBERUZJTklUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IElOVEVSTkFMIERFRklOSVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gTU9EVUxFLVdJREUgQ09ORklHUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkICovCit0eXBlZGVmIHhkY19CaXRzMzIgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0VuYWJsZWQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NFbmFibGVkIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0M7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZCAqLwordHlwZWRlZiB4ZGNfQml0czMyIENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NJbmNsdWRlZDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DOworCisvKiBNb2R1bGVfX2RpYWdzTWFzayAqLwordHlwZWRlZiB4ZGNfQml0czE2KiBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFzazsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2sgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFza19fQzsKKworLyogTW9kdWxlX19nYXRlT2JqICovCit0eXBlZGVmIHhkY19QdHIgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlT2JqOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVPYmogaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVPYmpfX0M7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXMgKi8KK3R5cGVkZWYgeGRjX1B0ciBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVQcm1zOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVQcm1zIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlUHJtc19fQzsKKworLyogTW9kdWxlX19pZCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2lkOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2lkIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19pZF9fQzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkICovCit0eXBlZGVmIHhkY19Cb29sIENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRGVmaW5lZDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJEZWZpbmVkIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DOworCisvKiBNb2R1bGVfX2xvZ2dlck9iaiAqLwordHlwZWRlZiB4ZGNfUHRyIENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyT2JqOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlck9iaiBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyT2JqX19DOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjQgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfVHlwZXNfTG9nZ2VyRnhuNCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNF9fQzsKKworLyogTW9kdWxlX19sb2dnZXJGeG44ICovCit0eXBlZGVmIHhkY19ydW50aW1lX1R5cGVzX0xvZ2dlckZ4bjggQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG44OworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjggaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0M7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG4gKi8KK3R5cGVkZWYgeGRjX0Jvb2wgKCpDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKSh2b2lkKTsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZUZ4biBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0M7CisKKy8qIE9iamVjdF9fY291bnQgKi8KK3R5cGVkZWYgeGRjX0ludCBDVF9faGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2NvdW50OworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2NvdW50IGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jb3VudF9fQzsKKworLyogT2JqZWN0X19oZWFwICovCit0eXBlZGVmIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBDVF9faGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2hlYXA7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX09iamVjdF9faGVhcCBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9faGVhcF9fQzsKKworLyogT2JqZWN0X19zaXplb2YgKi8KK3R5cGVkZWYgeGRjX1NpemVUIENUX19oZWxsb19tb2RfVGFsa2VyX09iamVjdF9fc2l6ZW9mOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX3NpemVvZiBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fc2l6ZW9mX19DOworCisvKiBPYmplY3RfX3RhYmxlICovCit0eXBlZGVmIHhkY19QdHIgQ1RfX2hlbGxvX21vZF9UYWxrZXJfT2JqZWN0X190YWJsZTsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfT2JqZWN0X190YWJsZSBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fdGFibGVfX0M7CisKKy8qIHRleHQgKi8KKyNkZWZpbmUgaGVsbG9fbW9kX1RhbGtlcl90ZXh0IChoZWxsb19tb2RfVGFsa2VyX3RleHRfX0MpCit0eXBlZGVmIHhkY19TdHJpbmcgQ1RfX2hlbGxvX21vZF9UYWxrZXJfdGV4dDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfdGV4dCBoZWxsb19tb2RfVGFsa2VyX3RleHRfX0M7CisKKy8qIGNvdW50ICovCisjZGVmaW5lIGhlbGxvX21vZF9UYWxrZXJfY291bnQgKGhlbGxvX21vZF9UYWxrZXJfY291bnRfX0MpCit0eXBlZGVmIHhkY19JbnQgQ1RfX2hlbGxvX21vZF9UYWxrZXJfY291bnQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX2NvdW50IGhlbGxvX21vZF9UYWxrZXJfY291bnRfX0M7CisKKworLyoKKyAqID09PT09PT09IEZVTkNUSU9OIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9zdGFydHVwICovCisjZGVmaW5lIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX3N0YXJ0dXAoIHN0YXRlICkgLTEKKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX19DT0RFU0VDVChoZWxsb19tb2RfVGFsa2VyX0hhbmRsZV9fbGFiZWxfX1MsICJoZWxsb19tb2RfVGFsa2VyX0hhbmRsZV9fbGFiZWwiKQorX19leHRlcm4geGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGhlbGxvX21vZF9UYWxrZXJfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX19DT0RFU0VDVChoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVfX1MsICJoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmUiKQorX19leHRlcm4geGRjX0Jvb2wgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICk7CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfX0NPREVTRUNUKGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jcmVhdGVfX1MsICJoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fY3JlYXRlIikKK19fZXh0ZXJuIHhkY19QdHIgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICk7CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit4ZGNfX0NPREVTRUNUKGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19kZWxldGVfX1MsICJoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fZGVsZXRlIikKK19fZXh0ZXJuIHhkY19Wb2lkIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKTsKKworLyogT2JqZWN0X19kZXN0cnVjdF9fUyAqLworeGRjX19DT0RFU0VDVChoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fZGVzdHJ1Y3RfX1MsICJoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fZGVzdHJ1Y3QiKQorX19leHRlcm4geGRjX1ZvaWQgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKTsKKworLyogT2JqZWN0X19nZXRfX1MgKi8KK3hkY19fQ09ERVNFQ1QoaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2dldF9fUywgImhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19nZXQiKQorX19leHRlcm4geGRjX1B0ciBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApOworCisvKiBPYmplY3RfX2ZpcnN0X19TICovCit4ZGNfX0NPREVTRUNUKGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19maXJzdF9fUywgImhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19maXJzdCIpCitfX2V4dGVybiB4ZGNfUHRyIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19maXJzdF9fUyggdm9pZCApOworCisvKiBPYmplY3RfX25leHRfX1MgKi8KK3hkY19fQ09ERVNFQ1QoaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX25leHRfX1MsICJoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fbmV4dCIpCitfX2V4dGVybiB4ZGNfUHRyIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApOworCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3hkY19fQ09ERVNFQ1QoaGVsbG9fbW9kX1RhbGtlcl9QYXJhbXNfX2luaXRfX1MsICJoZWxsb19tb2RfVGFsa2VyX1BhcmFtc19faW5pdCIpCitfX2V4dGVybiB4ZGNfVm9pZCBoZWxsb19tb2RfVGFsa2VyX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICk7CisKKy8qIFByb3h5X19hYnN0cmFjdF9fUyAqLworeGRjX19DT0RFU0VDVChoZWxsb19tb2RfVGFsa2VyX1Byb3h5X19hYnN0cmFjdF9fUywgImhlbGxvX21vZF9UYWxrZXJfUHJveHlfX2Fic3RyYWN0IikKK19fZXh0ZXJuIHhkY19Cb29sIGhlbGxvX21vZF9UYWxrZXJfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICk7CisKKy8qIFByb3h5X19kZWxlZ2F0ZV9fUyAqLworeGRjX19DT0RFU0VDVChoZWxsb19tb2RfVGFsa2VyX1Byb3h5X19kZWxlZ2F0ZV9fUywgImhlbGxvX21vZF9UYWxrZXJfUHJveHlfX2RlbGVnYXRlIikKK19fZXh0ZXJuIHhkY19QdHIgaGVsbG9fbW9kX1RhbGtlcl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKTsKKworLyogcHJpbnRfX0UgKi8KKyNkZWZpbmUgaGVsbG9fbW9kX1RhbGtlcl9wcmludCBoZWxsb19tb2RfVGFsa2VyX3ByaW50X19FCit4ZGNfX0NPREVTRUNUKGhlbGxvX21vZF9UYWxrZXJfcHJpbnRfX0UsICJoZWxsb19tb2RfVGFsa2VyX3ByaW50IikKK19fZXh0ZXJuIHhkY19Wb2lkIGhlbGxvX21vZF9UYWxrZXJfcHJpbnRfX0UoIHZvaWQgKTsKK3hkY19fQ09ERVNFQ1QoaGVsbG9fbW9kX1RhbGtlcl9wcmludF9fRiwgImhlbGxvX21vZF9UYWxrZXJfcHJpbnQiKQorX19leHRlcm4geGRjX1ZvaWQgaGVsbG9fbW9kX1RhbGtlcl9wcmludF9fRiggdm9pZCApOworX19leHRlcm4geGRjX1ZvaWQgaGVsbG9fbW9kX1RhbGtlcl9wcmludF9fUiggdm9pZCApOworCisKKy8qCisgKiA9PT09PT09PSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX3N0YXJ0dXBEb25lICovCisjZGVmaW5lIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX3N0YXJ0dXBEb25lKCkgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCkKKworLyogT2JqZWN0X2hlYXAgKi8KKyNkZWZpbmUgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfaGVhcCgpIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19oZWFwX19DCisKKy8qIE1vZHVsZV9oZWFwICovCisjZGVmaW5lIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX2hlYXAoKSBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9faGVhcF9fQworCisvKiBNb2R1bGVfaWQgKi8KK3N0YXRpYyBpbmxpbmUgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19pZCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9pZCggdm9pZCApIAoreworICAgIHJldHVybiBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9faWRfX0M7Cit9CisKKy8qIE1vZHVsZV9oYXNNYXNrICovCitzdGF0aWMgaW5saW5lIHhkY19Cb29sIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX2hhc01hc2soIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFza19fQyAhPSBOVUxMOworfQorCisvKiBNb2R1bGVfZ2V0TWFzayAqLworc3RhdGljIGlubGluZSB4ZGNfQml0czE2IGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX2dldE1hc2soIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFza19fQyAhPSBOVUxMID8gKmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2tfX0MgOiAwOworfQorCisvKiBNb2R1bGVfc2V0TWFzayAqLworc3RhdGljIGlubGluZSB4ZGNfVm9pZCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9zZXRNYXNrKCB4ZGNfQml0czE2IG1hc2sgKSAKK3sKKyAgICBpZiAoaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFza19fQyAhPSBOVUxMKSAqaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9IG1hc2s7Cit9CisKKworLyoKKyAqID09PT09PT09IEMrKyBDTElFTlQgV1JBUFBFUiBbZXhwZXJpbWVudGFsXSA9PT09PT09PQorICovCisKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorbmFtZXNwYWNlIGhlbGxvX21vZCB7IG5hbWVzcGFjZSBUYWxrZXIgeworCisvKiBUYWxrZXI6OnRleHQgKi8KK3N0YXRpYyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl90ZXh0JiB0ZXh0ID0gaGVsbG9fbW9kX1RhbGtlcl90ZXh0X19DOworCisvKiBUYWxrZXI6OmNvdW50ICovCitzdGF0aWMgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfY291bnQmIGNvdW50ID0gaGVsbG9fbW9kX1RhbGtlcl9jb3VudF9fQzsKKworLyogVGFsa2VyOjpwcmludCAqLworc3RhdGljIGlubGluZSB4ZGNfVm9pZCBwcmludCggICkKK3sKKyAgICBoZWxsb19tb2RfVGFsa2VyX3ByaW50KCk7Cit9CisKK319CisjZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KKworCisvKgorICogPT09PT09PT0gRVBJTE9HVUUgPT09PT09PT0KKyAqLworCisjaWZkZWYgaGVsbG9fbW9kX1RhbGtlcl9fdG9wX18KKyN1bmRlZiBfX25lc3RlZF9fCisjZW5kaWYKKworI2VuZGlmIC8qIGhlbGxvX21vZF9UYWxrZXJfX2luY2x1ZGUgKi8KKworCisvKgorICogPT09PT09PT0gU1RBVEUgU1RSVUNUVVJFUyA9PT09PT09PQorICovCisKKyNpZiBkZWZpbmVkKF9fY29uZmlnX18pIHx8ICghZGVmaW5lZChfX25lc3RlZF9fKSAmJiBkZWZpbmVkKGhlbGxvX21vZF9UYWxrZXJfX2ludGVybmFsYWNjZXNzKSkKKworI2lmbmRlZiBoZWxsb19tb2RfVGFsa2VyX19pbmNsdWRlX3N0YXRlCisjZGVmaW5lIGhlbGxvX21vZF9UYWxrZXJfX2luY2x1ZGVfc3RhdGUKKworLyogQysrIHdyYXBwZXIgKi8KKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorbmFtZXNwYWNlIGhlbGxvX21vZCB7IG5hbWVzcGFjZSBUYWxrZXIgeworCisKK319CisjZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KKworI2VuZGlmIC8qIGhlbGxvX21vZF9UYWxrZXJfX2luY2x1ZGVfc3RhdGUgKi8KKworI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IFBSRUZJWCBBTElBU0VTID09PT09PT09CisgKi8KKworI2lmICFkZWZpbmVkKF9fbmVzdGVkX18pICYmICFkZWZpbmVkKGhlbGxvX21vZF9UYWxrZXJfX25vbG9jYWxuYW1lcykKKworLyogbW9kdWxlIHByZWZpeCAqLworI2RlZmluZSBUYWxrZXJfdGV4dCBoZWxsb19tb2RfVGFsa2VyX3RleHQKKyNkZWZpbmUgVGFsa2VyX2NvdW50IGhlbGxvX21vZF9UYWxrZXJfY291bnQKKyNkZWZpbmUgVGFsa2VyX3ByaW50IGhlbGxvX21vZF9UYWxrZXJfcHJpbnQKKyNkZWZpbmUgVGFsa2VyX01vZHVsZV9uYW1lIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX25hbWUKKyNkZWZpbmUgVGFsa2VyX01vZHVsZV9pZCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9pZAorI2RlZmluZSBUYWxrZXJfTW9kdWxlX3N0YXJ0dXAgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfc3RhcnR1cAorI2RlZmluZSBUYWxrZXJfTW9kdWxlX3N0YXJ0dXBEb25lIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX3N0YXJ0dXBEb25lCisjZGVmaW5lIFRhbGtlcl9Nb2R1bGVfaGFzTWFzayBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9oYXNNYXNrCisjZGVmaW5lIFRhbGtlcl9Nb2R1bGVfZ2V0TWFzayBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9nZXRNYXNrCisjZGVmaW5lIFRhbGtlcl9Nb2R1bGVfc2V0TWFzayBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9zZXRNYXNrCisjZGVmaW5lIFRhbGtlcl9PYmplY3RfaGVhcCBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9oZWFwCisjZGVmaW5lIFRhbGtlcl9Nb2R1bGVfaGVhcCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9oZWFwCisKKy8qIEMrKyB3cmFwcGVyICovCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykgJiYgIWRlZmluZWQoaGVsbG9fbW9kX1RhbGtlcl9fSU5URVJOQUxfXykKK25hbWVzcGFjZSBUYWxrZXIgPSBoZWxsb19tb2Q6OlRhbGtlcjsKKyNlbmRpZgorCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0gQysrIFNVUFBMSUVSIFdSQVBQRVIgW2V4cGVyaW1lbnRhbF0gPT09PT09PT0KKyAqLworCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykgJiYgZGVmaW5lZChoZWxsb19tb2RfVGFsa2VyX19JTlRFUk5BTF9fKQorbmFtZXNwYWNlIFRhbGtlciB7CisgICAgdXNpbmcgaGVsbG9fbW9kOjpUYWxrZXI6OnRleHQ7CisgICAgdXNpbmcgaGVsbG9fbW9kOjpUYWxrZXI6OmNvdW50OworCisvKiBUYWxrZXI6OnByaW50ICovCitpbmxpbmUgeGRjX1ZvaWQgcHJpbnQoICApOworI2RlZmluZSBERUZJTkVfX3ByaW50XAorICAgIHhkY19Wb2lkIGhlbGxvX21vZF9UYWxrZXJfcHJpbnQoIHZvaWQgKVwKKyAgICB7XAorICAgICAgICBUYWxrZXI6OnByaW50KCk7XAorICAgIH1cCisKK30KKyNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL1RhbGtlci54ZGMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvVGFsa2VyLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMWM1MzliCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL1RhbGtlci54ZGMKQEAgLTAsMCArMSwxNSBAQAorLyoNCisgKiAgPT09PT09PT0gaGVsbG8vbW9kL1RhbGtlci54ZGMgPT09PT09PT0NCisgKi8NCisNCisvKiEgT3VyIGZpcnN0IG1vZHVsZSAqLw0KK21vZHVsZSBUYWxrZXIgew0KKyANCisgICAgLyohIFdoYXQgdG8gc2F5ICovDQorICAgIGNvbmZpZyBTdHJpbmcgdGV4dCA9ICJIZWxsbyBXb3JsZCI7DQorICAgIC8qISBIb3cgbWFueSB0aW1lcyAqLw0KKyAgICBjb25maWcgSW50IGNvdW50ID0gMTsNCisgDQorICAgIC8qISBTYXkgaXQgKi8NCisgICAgVm9pZCBwcmludCgpOw0KK30NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvVGFsa2VyLnhzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL1RhbGtlci54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDcwM2Q3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL1RhbGtlci54cwpAQCAtMCwwICsxLDggQEAKKy8qDQorICogID09PT09PT09IGhlbGxvL21vZC9UYWxrZXIueHMgPT09PT09PT0NCisgKi8NCisNCitmdW5jdGlvbiBtb2R1bGUkdXNlKCkNCit7DQorICAgIHhkYy51c2VNb2R1bGUoJ3hkYy5ydW50aW1lLlN5c3RlbScpOw0KK30NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvbGliL2hlbGxvLm1vZC5hNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL2xpYi9oZWxsby5tb2QuYTY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZGRiYTZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL2xpYi9oZWxsby5tb2QuYTY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvbGliL2hlbGxvLm1vZC5hNjRQLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9saWIvaGVsbG8ubW9kLmE2NFAubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM2ODg5ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvbGliL2hlbGxvLm1vZC5hNjRQLm1hawpAQCAtMCwwICsxLDc3IEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisjICB0YXJnZXQgY29tcGF0aWJpbGl0eSBrZXkgPSB0aS50YXJnZXRzLkM2NFB7MSwwLDYuMSw1CisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm82NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm82NFA6IFRhbGtlci5jIGxpYi9oZWxsby5tb2QuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZCAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZCAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm82NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLnM2NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLnM2NFA6IFRhbGtlci5jIGxpYi9oZWxsby5tb2QuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQIC1uICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZCAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZCAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIuczY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLnM2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIuczY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QubzY0UDogcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5jIGxpYi9oZWxsby5tb2QuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZSAtZmMgJDwKKwkkKE1LREVQKSAtYSAkQC5kZXAgLXAgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZQorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vNjRQOkNfRElSPQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm82NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm82NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QuczY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLnM2NFA6IHBhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QuYyBsaWIvaGVsbG8ubW9kLmE2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAtbiAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZSAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZSAtcyBvNjRQICQ8IC1DICAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZSAtZnI9Li9wYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QuczY0UDpDX0RJUj0KK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5zNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5zNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworY2xlYW4sNjRQIDo6CisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm82NFAKKwktJChSTSkgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm82NFAKKwktJChSTSkgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIuczY0UAorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QuczY0UAorCitsaWIvaGVsbG8ubW9kLmE2NFA6IHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm82NFAgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm82NFAgbGliL2hlbGxvLm1vZC5hNjRQLm1haworCitjbGVhbjo6CisJLSQoUk0pIGxpYi9oZWxsby5tb2QuYTY0UC5tYWsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9saWIvaGVsbG8ubW9kLmE4NkdXIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL2xpYi9oZWxsby5tb2QuYTg2R1cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWJjZWE3NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9saWIvaGVsbG8ubW9kLmE4NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9saWIvaGVsbG8ubW9kLmE4NkdXLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9saWIvaGVsbG8ubW9kLmE4NkdXLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNzljMmRhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL2xpYi9oZWxsby5tb2QuYTg2R1cubWFrCkBAIC0wLDAgKzEsNzcgQEAKKyMKKyMgIERvIG5vdCBlZGl0IHRoaXMgZmlsZS4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSAKKyMgIHBhY2thZ2UuYmxkLiAgQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBmaWxlIHdpbGwgYmUgCisjICBvdmVyd3JpdHRlbiB3aGVuZXZlciBtYWtlZmlsZXMgYXJlIHJlLWdlbmVyYXRlZC4KKyMKKyMgIHRhcmdldCBjb21wYXRpYmlsaXR5IGtleSA9IGdudS50YXJnZXRzLk1pbmd3ezEsMCwzLjQsNQorIworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm84NkdXLmRlcAorZW5kaWYKKworcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm84NkdXOiBUYWxrZXIuYyBsaWIvaGVsbG8ubW9kLmE4NkdXLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w4NkdXICQ8IC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgLWMgIC14IGMgIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgIC1vICRAICQ8CisJJChNS0RFUCkgLW8gJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL1RhbGtlci5zODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIuczg2R1c6IFRhbGtlci5jIGxpYi9oZWxsby5tb2QuYTg2R1cubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDg2R1cgLVMgJDwgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAtYyAgLXggYyAtUyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kLyAtcyBvODZHVyAkPCAtQyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpIAorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLnM4NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLnM4NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLnM4NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vODZHVy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm84NkdXOiBwYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLmMgbGliL2hlbGxvLm1vZC5hODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjICAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm84NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2Qubzg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2Quczg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5zODZHVzogcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5jIGxpYi9oZWxsby5tb2QuYTg2R1cubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDg2R1cgLVMgJDwgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAtYyAgLXggYyAtUyAtV3VudXNlZCAgLURmYXI9ICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLnM4NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5zODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2Quczg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitjbGVhbiw4NkdXIDo6CisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm84NkdXCisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vODZHVworCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL1RhbGtlci5zODZHVworCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2Quczg2R1cKKworbGliL2hlbGxvLm1vZC5hODZHVzogcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzg2R1cgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm84NkdXIGxpYi9oZWxsby5tb2QuYTg2R1cubWFrCisKK2NsZWFuOjoKKwktJChSTSkgbGliL2hlbGxvLm1vZC5hODZHVy5tYWsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlLmJsZCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjY4MzA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UuYmxkCkBAIC0wLDAgKzEsMTEgQEAKKy8qDQorICogID09PT09PT09IGhlbGxvL21vZC9wYWNrYWdlLmJsZCA9PT09PT09PQ0KKyAqLw0KKw0KK3ZhciBCdWlsZCA9IHhkYy51c2VNb2R1bGUoJ3hkYy5ibGQuQnVpbGRFbnZpcm9ubWVudCcpOw0KK3ZhciBQa2cgPSB4ZGMudXNlTW9kdWxlKCd4ZGMuYmxkLlBhY2thZ2VDb250ZW50cycpOw0KKyANCitmb3IgZWFjaCAodmFyIHRhcmcgaW4gQnVpbGQudGFyZ2V0cykgew0KKyAgICBQa2cuYWRkTGlicmFyeSgibGliLyIgKyBQa2cubmFtZSwgdGFyZykuYWRkT2JqZWN0cyhbIlRhbGtlci5jIl0pOw0KKyAgICBQa2cuYWRkRXhlY3V0YWJsZSgicHJvZyIsIHRhcmcsIHRhcmcucGxhdGZvcm0pLmFkZE9iamVjdHMoWyJwcm9nLmMiXSk7DQorfQ0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mN2JiMmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UubWFrCkBAIC0wLDAgKzEsMzQ4IEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisKK3VuZXhwb3J0IE1BS0VGSUxFX0xJU1QKK292ZXJyaWRlIFBLR0RJUiA9IGhlbGxvL21vZAorWERDSU5DUyA9IC1JLiAtSSQoc3RyaXAgJChzdWJzdCA7LCAtSSwkKHN1YnN0ICQoc3BhY2UpLFwkKHNwYWNlKSwkKFhQS0dQQVRIKSkpKQorWERDQ0ZHRElSID0gcGFja2FnZS9jZmcvCisKKyMKKyMgVGhlIGZvbGxvd2luZyBkZXBlbmRlbmNpZXMgZW5zdXJlIHBhY2thZ2UubWFrIGlzIHJlYnVpbHQKKyMgaW4gdGhlIGV2ZW50IHRoYXQgc29tZSBpbmNsdWRlZCBCT00gc2NyaXB0IGNoYW5nZXMuCisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0lUYXJnZXQueHMKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9jb25maWcuYmxkOgorcGFja2FnZS5tYWs6IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9jb25maWcuYmxkCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUGFja2FnZUNvbnRlbnRzLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1BhY2thZ2VDb250ZW50cy54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9MaW51eDg2LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9MaW51eDg2LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9JVGFyZ2V0LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL0lUYXJnZXQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9NaW5ndy54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvTWluZ3cueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL01WQXJtOS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvTVZBcm05LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2k6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2k6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvVUNBcm05LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9VQ0FybTkueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90ZW1wbGF0ZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvTVNQNDMwLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL01TUDQzMC54cworcGFja2FnZS5tYWs6IHBhY2thZ2UuYmxkCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3BhY2thZ2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL19nZW4ueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvX2dlbi54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9JVGFyZ2V0LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9SZXBvc2l0b3J5LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1JlcG9zaXRvcnkueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvU2NyaXB0LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1NjcmlwdC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvQnVpbGRFbnZpcm9ubWVudC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9CdWlsZEVudmlyb25tZW50LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9MaWJyYXJ5LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0xpYnJhcnkueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvVXRpbHMueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvVXRpbHMueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9FeGVjdXRhYmxlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0V4ZWN1dGFibGUueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXRGaWx0ZXIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldEZpbHRlci54cworZW5kaWYKKwordGkudGFyZ2V0cy5DNjRQLnJvb3REaXIgPz0gZDovdGkvYzYwMDAvYWxjCit0aS50YXJnZXRzLnBhY2thZ2VCYXNlID89IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzLworZ251LnRhcmdldHMuTWluZ3cucm9vdERpciA/PSBlOi9ydHNjL21pbmd3CitnbnUudGFyZ2V0cy5wYWNrYWdlQmFzZSA/PSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvCisuUFJFQ0lPVVM6ICQoWERDQ0ZHRElSKS8lLm82NFAKKy5QSE9OWTogYWxsLDY0UCAuZGxscyw2NFAgLmV4ZWN1dGFibGVzLDY0UCB0ZXN0LDY0UAorYWxsLDY0UDogLmV4ZWN1dGFibGVzLDY0UAorLmV4ZWN1dGFibGVzLDY0UDogLmxpYnJhcmllcyw2NFAKKy5leGVjdXRhYmxlcyw2NFA6IC5kbGxzLDY0UAorLmRsbHMsNjRQOiAubGlicmFyaWVzLDY0UAorLmxpYnJhcmllcyw2NFA6IC5pbnRlcmZhY2VzCisJQCQoUk0pICRACisJQCQoVE9VQ0gpICIkQCIKKworLmhlbHA6OgorCUAkKEVDSE8pIHhkYyB0ZXN0LDY0UAorCUAkKEVDSE8pIHhkYyAuZXhlY3V0YWJsZXMsNjRQCisJQCQoRUNITykgeGRjIC5saWJyYXJpZXMsNjRQCisJQCQoRUNITykgeGRjIC5kbGxzLDY0UAorCisuUFJFQ0lPVVM6ICQoWERDQ0ZHRElSKS8lLm84NkdXCisuUEhPTlk6IGFsbCw4NkdXIC5kbGxzLDg2R1cgLmV4ZWN1dGFibGVzLDg2R1cgdGVzdCw4NkdXCithbGwsODZHVzogLmV4ZWN1dGFibGVzLDg2R1cKKy5leGVjdXRhYmxlcyw4NkdXOiAubGlicmFyaWVzLDg2R1cKKy5leGVjdXRhYmxlcyw4NkdXOiAuZGxscyw4NkdXCisuZGxscyw4NkdXOiAubGlicmFyaWVzLDg2R1cKKy5saWJyYXJpZXMsODZHVzogLmludGVyZmFjZXMKKwlAJChSTSkgJEAKKwlAJChUT1VDSCkgIiRAIgorCisuaGVscDo6CisJQCQoRUNITykgeGRjIHRlc3QsODZHVworCUAkKEVDSE8pIHhkYyAuZXhlY3V0YWJsZXMsODZHVworCUAkKEVDSE8pIHhkYyAubGlicmFyaWVzLDg2R1cKKwlAJChFQ0hPKSB4ZGMgLmRsbHMsODZHVworCisKK2FsbDogLmV4ZWN1dGFibGVzIAorLmV4ZWN1dGFibGVzOiAubGlicmFyaWVzIC5kbGxzCisubGlicmFyaWVzOiAuaW50ZXJmYWNlcworCitQS0dDRkdTIDo9ICQod2lsZGNhcmQgcGFja2FnZS54cykgcGFja2FnZS9idWlsZC5jZmcKKy5pbnRlcmZhY2VzOiBwYWNrYWdlL3BhY2thZ2UueGRjLmluYyBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oIHBhY2thZ2UueGRjICQoUEtHQ0ZHUykKKworLWluY2x1ZGUgcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAKK3BhY2thZ2UvJS54ZGMuaW5jIHBhY2thZ2UvJV9oZWxsby5tb2QuYyBwYWNrYWdlLyUuZGVmcy5oOiAlLnhkYyAkKFBLR0NGR1MpCisJQCQoTVNHKSBnZW5lcmF0aW5nIGludGVyZmFjZXMgZm9yIHBhY2thZ2UgaGVsbG8ubW9kIiAoYmVjYXVzZSAkQCBpcyBvbGRlciB0aGFuICQoZmlyc3R3b3JkICQ/KSkiIC4uLgorCSQoWFNSVU4pIC1mIHhkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2J1aWxkLnhzICQoTUtfSURMT1BUUykgLW0gcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAgLWkgcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMgcGFja2FnZS54ZGMKKworLmxpYnJhcmllcyw4NkdXIC5saWJyYXJpZXM6IGxpYi9oZWxsby5tb2QuYTg2R1cKKworLWluY2x1ZGUgbGliL2hlbGxvLm1vZC5hODZHVy5tYWsKK2xpYi9oZWxsby5tb2QuYTg2R1c6IAorCSQoUk0pICRACisJQCQoTVNHKSBhcmNoaXZpbmcgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzg2R1cgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm84NkdXICBpbnRvICRAIC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvbWluZ3czMi9iaW4vYXIgIGNyICRAICAgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzg2R1cgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm84NkdXIAorbGliL2hlbGxvLm1vZC5hODZHVzpMRF9MSUJSQVJZX1BBVEg9CitsaWIvaGVsbG8ubW9kLmE4NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK2xpYi9oZWxsby5tb2QuYTg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitjbGVhbiw4NkdXIGNsZWFuOjoKKwktJChSTSkgbGliL2hlbGxvLm1vZC5hODZHVworLmxpYnJhcmllcyw2NFAgLmxpYnJhcmllczogbGliL2hlbGxvLm1vZC5hNjRQCisKKy1pbmNsdWRlIGxpYi9oZWxsby5tb2QuYTY0UC5tYWsKK2xpYi9oZWxsby5tb2QuYTY0UDogCisJJChSTSkgJEAKKwlAJChNU0cpIGFyY2hpdmluZyBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL1RhbGtlci5vNjRQIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vNjRQICBpbnRvICRAIC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9hcjZ4ICBycSAkQCAgIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm82NFAgcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm82NFAgCitsaWIvaGVsbG8ubW9kLmE2NFA6Q19ESVI9CitsaWIvaGVsbG8ubW9kLmE2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorbGliL2hlbGxvLm1vZC5hNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworY2xlYW4sNjRQIGNsZWFuOjoKKwktJChSTSkgbGliL2hlbGxvLm1vZC5hNjRQCisuZXhlY3V0YWJsZXMsNjRQIC5leGVjdXRhYmxlczogcHJvZy54NjRQCisKKy1pbmNsdWRlIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuZGVwCitlbmRpZgorcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFAgcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAgOiB8IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGwKK3Byb2cueDY0UDoKKwkkKFJNKSAkQAorCUAkKE1TRykgbG5rNjRQICRAIC4uLgorCSQoUk0pICQoWERDQ0ZHRElSKS8kQC5tYXAKKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vbG5rNnggLXcgLXEgLXUgX2NfaW50MDAgIC1xIC1vICRAIHBhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQICBwYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsICAtYyAtbSAkKFhEQ0NGR0RJUikvJEAubWFwIC1sICQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2xpYi9ydHM2NHBsdXMubGliCisJCitwcm9nLng2NFA6Q19ESVI9Citwcm9nLng2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcHJvZy54NjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworCitpZmVxICgsJCh3aWxkY2FyZCAubGlicmFyaWVzLDY0UCkpCitwcm9nLng2NFAgcGFja2FnZS9jZmcvcHJvZ194NjRQLmM6IC5saWJyYXJpZXMsNjRQCitlbmRpZgorCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuaCBwYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsOiBvdmVycmlkZSBfUFJPR19OQU1FIDo9IHByb2cueDY0UAorcGFja2FnZS9jZmcvcHJvZ194NjRQLmM6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcKK3Byb2cudGVzdCB0ZXN0LDY0UCB0ZXN0OiBwcm9nLng2NFAudGVzdAorCitwcm9nLng2NFAudGVzdDo6IHByb2cueDY0UAoraWZlcSAoLCQoX1RFU1RMRVZFTCkpCisJQCQoTUFLRSkgLVIgLXIgLS1uby1wcmludC1kaXJlY3RvcnkgLWYgJChYRENST09UKS9wYWNrYWdlcy94ZGMvYmxkL3hkYy5tYWsgX1RFU1RMRVZFTD0xIHByb2cueDY0UC50ZXN0CitlbHNlCisJQCQoTVNHKSBydW5uaW5nICQ8ICAuLi4KKwkkKGNhbGwgRVhFQy5wcm9nLng2NFAsICkgCitlbmRpZgorCisKK2NsZWFuOjogY2xlYW4sNjRQCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLmRlcAorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYworCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRjLmluYworCitjbGVhbiw2NFA6OgorCS0kKFJNKSBwcm9nLng2NFAKKwktJChSTSkgLnRtcCxwcm9nLng2NFAsKgorCitjbGVhbjo6IAorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAucGp0CisuZXhlY3V0YWJsZXMsODZHVyAuZXhlY3V0YWJsZXM6IHByb2cueDg2R1cKKworLWluY2x1ZGUgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5tYWsKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmRlcAorZW5kaWYKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vODZHVyBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm84NkdXIDogfCBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnhkbAorcHJvZy54ODZHVzoKKwkkKFJNKSAkQAorCUAkKE1TRykgbG5rODZHVyAkQCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlICAgIC1vICRAIHBhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vODZHVyBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm84NkdXICBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnhkbCAgLWxzdGRjKysgLUwkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2xpYgorCQorcHJvZy54ODZHVzpMRF9MSUJSQVJZX1BBVEg9Citwcm9nLng4NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3Byb2cueDg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCisKK2lmZXEgKCwkKHdpbGRjYXJkIC5saWJyYXJpZXMsODZHVykpCitwcm9nLng4NkdXIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYzogLmxpYnJhcmllcyw4NkdXCitlbmRpZgorCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmMgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cueGRsOiBvdmVycmlkZSBfUFJPR19OQU1FIDo9IHByb2cueDg2R1cKK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYzogcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jZmcKK3Byb2cudGVzdCB0ZXN0LDg2R1cgdGVzdDogcHJvZy54ODZHVy50ZXN0CisKK3Byb2cueDg2R1cudGVzdDo6IHByb2cueDg2R1cKK2lmZXEgKCwkKF9URVNUTEVWRUwpKQorCUAkKE1BS0UpIC1SIC1yIC0tbm8tcHJpbnQtZGlyZWN0b3J5IC1mICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2JsZC94ZGMubWFrIF9URVNUTEVWRUw9MSBwcm9nLng4NkdXLnRlc3QKK2Vsc2UKKwlAJChNU0cpIHJ1bm5pbmcgJDwgIC4uLgorCSQoY2FsbCBFWEVDLnByb2cueDg2R1csICkgCitlbmRpZgorCisKK2NsZWFuOjogY2xlYW4sODZHVworCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZworCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmRlcAorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmMKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194ODZHVy54ZGMuaW5jCisKK2NsZWFuLDg2R1c6OgorCS0kKFJNKSBwcm9nLng4NkdXCisJLSQoUk0pIC50bXAscHJvZy54ODZHVywqCisKKyUsY29weToKKwlAJChpZiAkPCwsJChNU0cpIGRvblwndCBrbm93IGhvdyB0byBidWlsZCAkKjsgZXhpdCAxKQorCUAkKE1TRykgY3AgJDwgJEAKKwkkKFJNKSAkQAorCSQoQ1ApICQ8ICRACitUYWxrZXIuczg2R1csY29weSA6IHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLnM4NkdXCitwcm9nLm82NFAsY29weSA6IHBhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQCitwcm9nLnM2NFAsY29weSA6IHBhY2thZ2UvY2ZnL3Byb2cvcHJvZy5zNjRQCitwYWNrYWdlX2hlbGxvLm1vZC5vNjRQLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QubzY0UAorcGFja2FnZV9oZWxsby5tb2QuczY0UCxjb3B5IDogcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLnM2NFAKK3Byb2dfeDY0UC5vNjRQLGNvcHkgOiBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UAorcHJvZ194NjRQLnM2NFAsY29weSA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5zNjRQCitwcm9nX3g4NkdXLm84NkdXLGNvcHkgOiBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm84NkdXCitUYWxrZXIubzY0UCxjb3B5IDogcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzY0UAorcHJvZy5vODZHVyxjb3B5IDogcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXCitUYWxrZXIuczY0UCxjb3B5IDogcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIuczY0UAorcGFja2FnZV9oZWxsby5tb2Qubzg2R1csY29weSA6IHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vODZHVworVGFsa2VyLm84NkdXLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL1RhbGtlci5vODZHVworcHJvZ194ODZHVy5zODZHVyxjb3B5IDogcGFja2FnZS9jZmcvcHJvZ194ODZHVy5zODZHVworcHJvZy5zODZHVyxjb3B5IDogcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM4NkdXCitwYWNrYWdlX2hlbGxvLm1vZC5zODZHVyxjb3B5IDogcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLnM4NkdXCisKKyQoWERDQ0ZHRElSKSUuYyAkKFhEQ0NGR0RJUiklLmggJChYRENDRkdESVIpJS54ZGw6ICQoWERDQ0ZHRElSKSUuY2ZnIC5pbnRlcmZhY2VzICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzCisJQCQoTVNHKSAiY29uZmlndXJpbmcgJChfUFJPR19OQU1FKSBmcm9tICQ8IC4uLiIKKwkkKENPTkZJRykgJChfUFJPR19YU09QVFMpIHhkYy5jZmcgJChfUFJPR19OQU1FKSAkKFhEQ0NGR0RJUikkKi5jZmcgJChYRENDRkdESVIpJCoKKworLlBIT05ZOiByZWxlYXNlLGhlbGxvX21vZAoraGVsbG9fbW9kLnRhcjogcGFja2FnZS9idWlsZC5jZmcKK2hlbGxvX21vZC50YXI6IGxpYi9oZWxsby5tb2QuYTg2R1cKK2hlbGxvX21vZC50YXI6IHBhY2thZ2UvcGFja2FnZS5leHQueG1sCitoZWxsb19tb2QudGFyOiBwYWNrYWdlL3BhY2thZ2UueGRjLmluYworaGVsbG9fbW9kLnRhcjogbGliL2hlbGxvLm1vZC5hNjRQCitoZWxsb19tb2QudGFyOiBwYWNrYWdlL3BhY2thZ2UuYmxkLnhtbAoraGVsbG9fbW9kLnRhcjogcGFja2FnZS9wYWNrYWdlLnJlbC5kb3QKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL3JlbC9oZWxsb19tb2QudGFyLmRlcAorZW5kaWYKK3BhY2thZ2UvcmVsL2hlbGxvX21vZC9oZWxsby9tb2QvcGFja2FnZS9wYWNrYWdlLnJlbC54bWw6CisKK2hlbGxvX21vZC50YXI6IHBhY2thZ2UvcmVsL2hlbGxvX21vZC54ZGMuaW5jIHBhY2thZ2UvcmVsL2hlbGxvX21vZC9oZWxsby9tb2QvcGFja2FnZS9wYWNrYWdlLnJlbC54bWwKKwlAJChNU0cpIG1ha2luZyByZWxlYXNlIGZpbGUgJEAgIihiZWNhdXNlIG9mICQoZmlyc3R3b3JkICQ/KSkiIC4uLgorCS0kKFJNKSAkQAorCSQoY2FsbCBNS1JFTFRBUixwYWNrYWdlL3JlbC9oZWxsb19tb2QueGRjLmluYyxwYWNrYWdlL3JlbC9oZWxsb19tb2QudGFyLmRlcCkKKworCityZWxlYXNlIHJlbGVhc2UsaGVsbG9fbW9kOiBhbGwgaGVsbG9fbW9kLnRhcgorY2xlYW46OiAuY2xlYW4KKwktJChSTSkgaGVsbG9fbW9kLnRhcgorCS0kKFJNKSBwYWNrYWdlL3JlbC9oZWxsb19tb2QueGRjLmluYworCS0kKFJNKSBwYWNrYWdlL3JlbC9oZWxsb19tb2QudGFyLmRlcAorCitjbGVhbjo6IC5jbGVhbgorCS0kKFJNKSAubGlicmFyaWVzIC5saWJyYXJpZXMsKgorY2xlYW46OiAKKwktJChSTSkgLmRsbHMgLmRsbHMsKgorIworIyBUaGUgZm9sbG93aW5nIGNsZWFuIHJ1bGUgcmVtb3ZlcyB1c2VyIHNwZWNpZmllZAorIyBnZW5lcmF0ZWQgZmlsZXMgb3IgZGlyZWN0b3JpZXMuCisjCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9jZmcpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9jZmcpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9saWIpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9saWIpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9saWIvbGliKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvbGliL2xpYikKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9yZWwpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9yZWwpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgbGliKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIGxpYikKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2V4dGVybmFsKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvZXh0ZXJuYWwpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9jZmcvcHJvZykpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2NmZy9wcm9nKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZSkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9pbnRlcm5hbCkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2ludGVybmFsKQorZW5kaWYKK2VuZGlmCitjbGVhbjo6CisJLSQoUk1ESVIpIHBhY2thZ2UKKworCitjbGVhbjo6IAorCS0kKFJNKSBwYWNrYWdlL2hlbGxvLm1vZC5wanQKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlLnhkYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGI1ZDJlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UueGRjCkBAIC0wLDAgKzEsOCBAQAorLyoNCisgKiAgPT09PT09PT0gaGVsbG8vbW9kL3BhY2thZ2UueGRjID09PT09PT09DQorICovDQorDQorLyohIENvbnRhaW5zIG91ciBmaXJzdCBtb2R1bGUgKi8NCitwYWNrYWdlIGhlbGxvLm1vZCB7DQorICAgIG1vZHVsZSBUYWxrZXI7DQorfTsNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS8udmVyc19iMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvLnZlcnNfYjE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvLnZlcnNfYjE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvLnZlcnNfYzE1MCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlLy52ZXJzX2MxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlLy52ZXJzX2MxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlLy52ZXJzX2cxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS8udmVyc19nMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS8udmVyc19nMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS8udmVyc19yMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvLnZlcnNfcjE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvLnZlcnNfcjE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvLnhkYy10MzIgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS8ueGRjLXQzMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvLnhkYy10MzIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2J1aWxkLmNmZyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2J1aWxkLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTRiYTc2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvYnVpbGQuY2ZnCkBAIC0wLDAgKzEsMjggQEAKK2lmIChwa2cuJHZlcnMubGVuZ3RoID49IDMpIHsKKyAgICBwa2cuJHZlcnMucHVzaChQYWNrYWdlcy54ZGMuc2VydmljZXMuZ2xvYmFsLlZlcnMuZ2V0RGF0ZSh4ZGMuY3NkKCkgKyAnLy4uJykpOworfQorCitwa2cuYnVpbGQubGlicmFyaWVzID0gWworICAgICdsaWIvaGVsbG8ubW9kLmE4NkdXJywKKyAgICAnbGliL2hlbGxvLm1vZC5hNjRQJywKK107CisKK3BrZy5idWlsZC5saWJEZXNjID0gWworICAgIFsKKyAgICAgICAgJ2xpYi9oZWxsby5tb2QuYTg2R1cnLAorICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXQ6ICdnbnUudGFyZ2V0cy5NaW5ndycKKyAgICAgICAgfQorICAgIF0sCisgICAgWworICAgICAgICAnbGliL2hlbGxvLm1vZC5hNjRQJywKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0OiAndGkudGFyZ2V0cy5DNjRQJworICAgICAgICB9CisgICAgXSwKK107CitpZiAoJ3N1ZmZpeCcgaW4geGRjLm9tWyd4ZGMuSVBhY2thZ2UkJExpYkRlc2MnXSkgeworICAgIHBrZy5idWlsZC5saWJEZXNjWydsaWIvaGVsbG8ubW9kLmE4NkdXJ10uc3VmZml4ID0gJzg2R1cnOworICAgIHBrZy5idWlsZC5saWJEZXNjWydsaWIvaGVsbG8ubW9kLmE2NFAnXS5zdWZmaXggPSAnNjRQJzsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2cueDY0UC5tYXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZy54NjRQLm1hcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODc2MTE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2cueDY0UC5tYXAKQEAgLTAsMCArMSw3MDYgQEAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgICAgICAgIFRNUzMyMEM2eCBMaW5rZXIgUEMgdjYuMS41ICAgICAgICAgICAgICAgICAgICAgIA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKz4+IExpbmtlZCBNb24gTWFyIDE2IDE3OjM5OjU2IDIwMDkNCisNCitPVVRQVVQgRklMRSBOQU1FOiAgIDxwcm9nLng2NFA+DQorRU5UUlkgUE9JTlQgU1lNQk9MOiAiX2NfaW50MDAiICBhZGRyZXNzOiAwMDgwMjcwMA0KKw0KKw0KK01FTU9SWSBDT05GSUdVUkFUSU9ODQorDQorICAgICAgICAgbmFtZSAgICAgICAgICAgIG9yaWdpbiAgICBsZW5ndGggICAgICB1c2VkICAgICB1bnVzZWQgICBhdHRyICAgIGZpbGwNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0gIC0tLS0gIC0tLS0tLS0tDQorICBJUkFNICAgICAgICAgICAgICAgICAgMDA4MDAwMDAgICAwMDIwMDAwMCAgMDAwMDM5NjAgIDAwMWZjNmEwICBSVyBYDQorICBERFIgICAgICAgICAgICAgICAgICAgODAwMDAwMDAgICAxMDAwMDAwMCAgMDAwMDMzYjIgIDBmZmZjYzRlICBSV0lYDQorDQorDQorU0VDVElPTiBBTExPQ0FUSU9OIE1BUA0KKw0KKyBvdXRwdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcy8NCitzZWN0aW9uICAgcGFnZSAgICBvcmlnaW4gICAgICBsZW5ndGggICAgICAgaW5wdXQgc2VjdGlvbnMNCistLS0tLS0tLSAgLS0tLSAgLS0tLS0tLS0tLSAgLS0tLS0tLS0tLSAgIC0tLS0tLS0tLS0tLS0tLS0NCisucGluaXQgICAgIDAgICAgODAwMDAwMDAgICAgMDAwMDAwMDAgICAgIFVOSU5JVElBTElaRUQNCisNCisudGV4dCAgICAgIDAgICAgMDA4MDAwMDAgICAgMDAwMDM5NjAgICAgIA0KKyAgICAgICAgICAgICAgICAgIDAwODAwMDAwICAgIDAwMDAwNzgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2RvUHJpbnRfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDA3ODAgICAgMDAwMDAyYTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQ29yZV9tZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAwYTIwICAgIDAwMDAwMjgwICAgICBydHM2NHBsdXMubGliIDogbWVtb3J5Lm9iaiAoLnRleHQ6X2ZyZWUpDQorICAgICAgICAgICAgICAgICAgMDA4MDBjYTAgICAgMDAwMDAyMDAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3RhcnR1cC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDBlYTAgICAgMDAwMDAxZTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogSGVhcFN0ZC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxMDgwICAgIDAwMDAwMWEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDEyMjAgICAgMDAwMDAxODAgICAgIHJ0czY0cGx1cy5saWIgOiBtZW1vcnkub2JqICgudGV4dDpfbWFsbG9jKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxM2EwICAgIDAwMDAwMTgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFRleHQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMTUyMCAgICAwMDAwMDE2MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBFcnJvci5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxNjgwICAgIDAwMDAwMTIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMTdhMCAgICAwMDAwMDEyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMThjMCAgICAwMDAwMDEwMCAgICAgYm9vdC5hNjRQIDogYXV0b2luaXQubzY0UCAoLnRleHQ6X19hdXRvX2luaXQpDQorICAgICAgICAgICAgICAgICAgMDA4MDE5YzAgICAgMDAwMDAxMDAgICAgIHJ0czY0cGx1cy5saWIgOiBzaW5pdC5vYmogKC50ZXh0Ol9jYWxsX2R0b3JzKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxYWMwICAgIDAwMDAwMTAwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IE1lbW9yeS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxYmMwICAgIDAwMDAwMTAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN0YXJ0dXAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMWNjMCAgICAwMDAwMDBlMCAgICAgcnRzNjRwbHVzLmxpYiA6IGV4aXQub2JqICgudGV4dDpfZXhpdCkNCisgICAgICAgICAgICAgICAgICAwMDgwMWRhMCAgICAwMDAwMDBlMCAgICAgICAgICAgICAgICAgICA6IG1lbXNldC5vYmogKC50ZXh0Ol9tZW1zZXQpDQorICAgICAgICAgICAgICAgICAgMDA4MDFlODAgICAgMDAwMDAwZTAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogQ29yZV9tZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxZjYwICAgIDAwMDAwMGUwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MpDQorICAgICAgICAgICAgICAgICAgMDA4MDIwNDAgICAgMDAwMDAwZTAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogVGV4dC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyMTIwICAgIDAwMDAwMGMwICAgICBydHM2NHBsdXMubGliIDogdHJnZHJ2Lm9iaiAoLnRleHQ6X0hPU1R3cml0ZSkNCisgICAgICAgICAgICAgICAgICAwMDgwMjFlMCAgICAwMDAwMDBjMCAgICAgICAgICAgICAgICAgICA6IGRpdnUub2JqICgudGV4dDpfX2RpdnUpDQorICAgICAgICAgICAgICAgICAgMDA4MDIyYTAgICAgMDAwMDAwYzAgICAgICAgICAgICAgICAgICAgOiBhdGV4aXQub2JqICgudGV4dDpfYXRleGl0KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyMzYwICAgIDAwMDAwMGMwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c01pbi5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyNDIwICAgIDAwMDAwMGMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c01pbi5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyNGUwICAgIDAwMDAwMGMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2Zvcm1hdE51bV9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMjVhMCAgICAwMDAwMDBjMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMjY2MCAgICAwMDAwMDBhMCAgICAgcnRzNjRwbHVzLmxpYiA6IHJlbXUub2JqICgudGV4dDpfX3JlbXUpDQorICAgICAgICAgICAgICAgICAgMDA4MDI3MDAgICAgMDAwMDAwYTAgICAgIGJvb3QuYTY0UCA6IGJvb3QubzY0UCAoLnRleHQ6X2NfaW50MDApDQorICAgICAgICAgICAgICAgICAgMDA4MDI3YTAgICAgMDAwMDAwYTAgICAgIHJ0czY0cGx1cy5saWIgOiBtZW1jcHk2NC5vYmogKC50ZXh0Ol9tZW1jcHkpDQorICAgICAgICAgICAgICAgICAgMDA4MDI4NDAgICAgMDAwMDAwYTAgICAgICAgICAgICAgICAgICAgOiBtZW1vcnkub2JqICgudGV4dDpfbWluc2VydCkNCisgICAgICAgICAgICAgICAgICAwMDgwMjhlMCAgICAwMDAwMDBhMCAgICAgICAgICAgICAgICAgICA6IG1lbW9yeS5vYmogKC50ZXh0Ol9tcmVtb3ZlKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyOTgwICAgIDAwMDAwMGEwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEFzc2VydC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfQXNzZXJ0X3JhaXNlX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyYTIwICAgIDAwMDAwMGEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEVycm9yLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMmFjMCAgICAwMDAwMDBhMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXNNaW4ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMmI2MCAgICAwMDAwMDBhMCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyYzAwICAgIDAwMDAwMDgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IENvcmVfbGFiZWwubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfYXNzaWduTGFiZWxfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDJjODAgICAgMDAwMDAwODAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQ29yZV9wYXJhbXMubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyZDAwICAgIDAwMDAwMDgwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDJkODAgICAgMDAwMDAwODAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3lzdGVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hhcl9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMmUwMCAgICAwMDAwMDA4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXN0ZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9ydHNFeGl0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyZTgwICAgIDAwMDAwMDgwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFRleHQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfcHJpbnRWaXNGeG5fX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDJmMDAgICAgMDAwMDAwODAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVGV4dC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfVGV4dF94cHJpbnRmX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyZjgwICAgIDAwMDAwMDgwICAgICBoZWxsby5tb2QuYTY0UCA6IFRhbGtlci5vNjRQICgudGV4dCkNCisgICAgICAgICAgICAgICAgICAwMDgwMzAwMCAgICAwMDAwMDA2MCAgICAgcnRzNjRwbHVzLmxpYiA6IHRyZ21zZy5vYmogKC50ZXh0Ol9yZWFkbXNnKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMDYwICAgIDAwMDAwMDYwICAgICAgICAgICAgICAgICAgIDogdHJnbXNnLm9iaiAoLnRleHQ6X3dyaXRlbXNnKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMGMwICAgIDAwMDAwMDYwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IE1lbW9yeS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzEyMCAgICAwMDAwMDA2MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXNNaW4ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzE4MCAgICAwMDAwMDA2MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXN0ZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzFlMCAgICAwMDAwMDA2MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXN0ZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMjQwICAgIDAwMDAwMDYwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFRleHQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDMyYTAgICAgMDAwMDAwNDAgICAgIHJ0czY0cGx1cy5saWIgOiBzaW5pdC5vYmogKC50ZXh0Ol9fX2FkZF9kdG9yKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMmUwICAgIDAwMDAwMDQwICAgICAgICAgICAgICAgICAgIDogYXJnc19tYWluLm9iaiAoLnRleHQ6X19hcmdzX21haW4pDQorICAgICAgICAgICAgICAgICAgMDA4MDMzMjAgICAgMDAwMDAwNDAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogRXJyb3IubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMzYwICAgIDAwMDAwMDQwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUykNCisgICAgICAgICAgICAgICAgICAwMDgwMzNhMCAgICAwMDAwMDA0MCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzM2UwICAgIDAwMDAwMDQwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c01pbi5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM0MjAgICAgMDAwMDAwNDAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM0NjAgICAgMDAwMDAwNDAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzRhMCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiB4ZGNfbm9pbml0Lm82NFAgKC50ZXh0Ol9fX3hkY19faW5pdCkNCisgICAgICAgICAgICAgICAgICAwMDgwMzRjMCAgICAwMDAwMDAyMCAgICAgcnRzNjRwbHVzLmxpYiA6IF9sb2NrLm9iaiAoLnRleHQ6X19ub3ApDQorICAgICAgICAgICAgICAgICAgMDA4MDM0ZTAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgOiBleGl0Lm9iaiAoLnRleHQ6X2Fib3J0KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNTAwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEVycm9yLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNTIwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEVycm9yLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9FcnJvcl9pbml0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNTQwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNTYwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEdhdGVOdWxsLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzU4MCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBHYXRlTnVsbC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM1YTAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogR2F0ZS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzVjMCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBHYXRlLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNWUwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM2MDAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNjIwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM2NDAgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogSGVhcFN0ZC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzY2MCAgICAwMDAwMDAyMCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM2ODAgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogSGVhcFN0ZC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNmEwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfYWxsb2NfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM2YzAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9mcmVlX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNmUwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IE1lbW9yeS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzcwMCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBNZW1vcnkubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX01lbW9yeV9mcmVlX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNzIwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE1lbW9yeS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM3NDAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNzYwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDM3ODAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzN2EwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzdjMCAgICAwMDAwMDAyMCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzdlMCAgICAwMDAwMDAyMCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM4MDAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzODIwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c01pbi5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzODQwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzODYwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzODgwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzhhMCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBTeXN0ZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzhjMCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXN0ZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzhlMCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXN0ZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzkwMCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzOTIwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzOTQwICAgIDAwMDAwMDIwICAgICBwcm9nLm82NFAgKC50ZXh0KQ0KKw0KKy5zdGFjayAgICAgMCAgICA4MDAwMDAwMCAgICAwMDAwMTAwMCAgICAgVU5JTklUSUFMSVpFRA0KKyAgICAgICAgICAgICAgICAgIDgwMDAwMDAwICAgIDAwMDAwMDA4ICAgICBib290LmE2NFAgOiBib290Lm82NFAgKC5zdGFjaykNCisgICAgICAgICAgICAgICAgICA4MDAwMDAwOCAgICAwMDAwMGZmOCAgICAgLS1IT0xFLS0NCisNCisuZGF0YSAgICAgIDAgICAgODAwMDAwMDAgICAgMDAwMDAwMDAgICAgIFVOSU5JVElBTElaRUQNCisNCisuYnNzICAgICAgIDAgICAgODAwMDAwMDAgICAgMDAwMDAwMDAgICAgIFVOSU5JVElBTElaRUQNCisNCisuc3lzbWVtICAgIDAgICAgODAwMDEwMDAgICAgMDAwMDEwMDAgICAgIFVOSU5JVElBTElaRUQNCisgICAgICAgICAgICAgICAgICA4MDAwMTAwMCAgICAwMDAwMDAwOCAgICAgcnRzNjRwbHVzLmxpYiA6IG1lbW9yeS5vYmogKC5zeXNtZW0pDQorICAgICAgICAgICAgICAgICAgODAwMDEwMDggICAgMDAwMDBmZjggICAgIC0tSE9MRS0tDQorDQorLmZhciAgICAgICAwICAgIDgwMDAyMDAwICAgIDAwMDAwNzU0ICAgICBVTklOSVRJQUxJWkVEDQorICAgICAgICAgICAgICAgICAgODAwMDIwMDAgICAgMDAwMDA0ZGMgICAgIHByb2dfeDY0UC5vNjRQICguZmFyKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNGRjICAgIDAwMDAwMDA0ICAgICBydHM2NHBsdXMubGliIDogc2luaXQub2JqICguZmFyKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNGUwICAgIDAwMDAwMTg4ICAgICAgICAgICAgICAgICAgIDogYXRleGl0Lm9iaiAoLmZhcikNCisgICAgICAgICAgICAgICAgICA4MDAwMjY2OCAgICAwMDAwMDBkMCAgICAgICAgICAgICAgICAgICA6IHRyZ2Rydi5vYmogKC5mYXIpDQorICAgICAgICAgICAgICAgICAgODAwMDI3MzggICAgMDAwMDAwMGMgICAgICAgICAgICAgICAgICAgOiBleGl0Lm9iaiAoLmZhcikNCisgICAgICAgICAgICAgICAgICA4MDAwMjc0NCAgICAwMDAwMDAwOCAgICAgICAgICAgICAgICAgICA6IF9sb2NrLm9iaiAoLmZhcikNCisgICAgICAgICAgICAgICAgICA4MDAwMjc0YyAgICAwMDAwMDAwOCAgICAgICAgICAgICAgICAgICA6IG1lbW9yeS5vYmogKC5mYXIpDQorDQorLmNvbnN0ICAgICAwICAgIDgwMDAyNzU4ICAgIDAwMDAwNjNhICAgICANCisgICAgICAgICAgICAgICAgICA4MDAwMjc1OCAgICAwMDAwMDJhOCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EpDQorICAgICAgICAgICAgICAgICAgODAwMDJhMDAgICAgMDAwMDAxMWIgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6LnN0cmluZykNCisgICAgICAgICAgICAgICAgICA4MDAwMmIxYiAgICAwMDAwMDAwNCAgICAgaGVsbG8ubW9kLmE2NFAgOiBUYWxrZXIubzY0UCAoLmNvbnN0Oi5zdHJpbmcpDQorICAgICAgICAgICAgICAgICAgODAwMDJiMWYgICAgMDAwMDAwMDEgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMmIyMCAgICAwMDAwMDA0YyAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EpDQorICAgICAgICAgICAgICAgICAgODAwMDJiNmMgICAgMDAwMDAwNDAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogVGV4dC5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDJiYWMgICAgMDAwMDAwMzIgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRXJyb3IubzY0UCAoLmNvbnN0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyYmRlICAgIDAwMDAwMDJhICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN0YXJ0dXAubzY0UCAoLmNvbnN0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyYzA4ICAgIDAwMDAwMDI4ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyYzMwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IExvZy5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDJjNTAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjNzAgICAgMDAwMDAwMWYgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogQ29yZV9tZW0ubzY0UCAoLmNvbnN0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyYzhmICAgIDAwMDAwMDAxICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDJjOTAgICAgMDAwMDAwMWMgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmNhYyAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDpoZWxsb19tb2RfVGFsa2VyX2NvdW50X19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyY2IwICAgIDAwMDAwMDExICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICguY29uc3Q6X2RpZ3RvaGV4KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyY2MxICAgIDAwMDAwMDAzICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDJjYzQgICAgMDAwMDAwMDggICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjY2MgICAgMDAwMDAwMDggICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmNkNCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDpoZWxsb19tb2RfVGFsa2VyX3RleHRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjZDggICAgMDAwMDAwMDggICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyY2UwICAgIDAwMDAwMDA3ICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDJjZTcgICAgMDAwMDAwMDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQXNzZXJ0Lm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMmNlYiAgICAwMDAwMDAwNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBEaWFncy5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDJjZWYgICAgMDAwMDAwMDEgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMmNmMCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjZjQgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyY2Y4ICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjZmMgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMDAgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQwNCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMDggICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMGMgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDEwICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQxNCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQxOCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMWMgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDIwICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQyNCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDI4ICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDJjICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMzAgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDM0ICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDM4ICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDNjICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNDAgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNDQgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDQ4ICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSkNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ0YyAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNTAgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNTQgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNTggICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ1YyAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDYwICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ2NCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ2OCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNmMgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ3MCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNzQgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNzggICAgMDAwMDAwMDIgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDdhICAgIDAwMDAwMDAyICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDJkN2MgICAgMDAwMDAwMDIgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkN2UgICAgMDAwMDAwMDIgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMmQ4MCAgICAwMDAwMDAwMiAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkODIgICAgMDAwMDAwMDIgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMmQ4NCAgICAwMDAwMDAwMiAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ4NiAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDg4ICAgIDAwMDAwMDAyICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ4YSAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDhjICAgIDAwMDAwMDAyICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ4ZSAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDkwICAgIDAwMDAwMDAyICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MpDQorDQorLmNpbml0ICAgICAwICAgIDgwMDAyZDk4ICAgIDAwMDAwMzA0ICAgICANCisgICAgICAgICAgICAgICAgICA4MDAwMmQ5OCAgICAwMDAwMDI0YyAgICAgcHJvZ194NjRQLm82NFAgKC5jaW5pdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMmZlNCAgICAwMDAwMDAwNCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZmU4ICAgIDAwMDAwMDJjICAgICBydHM2NHBsdXMubGliIDogZXhpdC5vYmogKC5jaW5pdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMzAxNCAgICAwMDAwMDAwNCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMDE4ICAgIDAwMDAwMDJjICAgICAgICAgICAgICAgICAgIDogbWVtb3J5Lm9iaiAoLmNpbml0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMDQ0ICAgIDAwMDAwMDA0ICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDMwNDggICAgMDAwMDAwMWMgICAgICAgICAgICAgICAgICAgOiBfbG9jay5vYmogKC5jaW5pdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMzA2NCAgICAwMDAwMDAwNCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMDY4ICAgIDAwMDAwMDFjICAgICAgICAgICAgICAgICAgIDogYXRleGl0Lm9iaiAoLmNpbml0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMDg0ICAgIDAwMDAwMDA0ICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDMwODggICAgMDAwMDAwMGMgICAgICAgICAgICAgICAgICAgOiBzaW5pdC5vYmogKC5jaW5pdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMzA5NCAgICAwMDAwMDAwNCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMDk4ICAgIDAwMDAwMDA0ICAgICAoLnBhZC5jaW5pdCkgW2ZpbGwgPSAwXQ0KKw0KKy5hcmdzICAgICAgMCAgICA4MDAwMzA5YyAgICAwMDAwMDIwMCAgICAgDQorICAgICAgICAgICAgICAgICAgODAwMDMwOWMgICAgMDAwMDAyMDAgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisNCisuY2lvICAgICAgIDAgICAgODAwMDMyYTAgICAgMDAwMDAxMjAgICAgIFVOSU5JVElBTElaRUQNCisgICAgICAgICAgICAgICAgICA4MDAwMzJhMCAgICAwMDAwMDEyMCAgICAgcnRzNjRwbHVzLmxpYiA6IHRyZ21zZy5vYmogKC5jaW8pDQorDQorDQorR0xPQkFMIFNZTUJPTFM6IFNPUlRFRCBBTFBIQUJFVElDQUxMWSBCWSBOYW1lIA0KKw0KK2FkZHJlc3MgICAgbmFtZQ0KKy0tLS0tLS0tICAgLS0tLQ0KKzgwMDAwMDAwICAgJGJzcw0KKzgwMDAwMDAwICAgLmJzcw0KK2ZmZmZmZmZmICAgLmRhdGENCitmZmZmZmZmZiAgIC50ZXh0DQorMDA4MDM0ZTAgICBDJCRFWElUDQorMDA4MDMwYjggICBDJCRJTyQkDQorMDA4MDIxMjAgICBfSE9TVHdyaXRlDQorODAwMDMyYTAgICBfX0NJT0JVRl8NCiswMDAwMTAwMCAgIF9fU1RBQ0tfU0laRQ0KKzAwMDAxMDAwICAgX19TWVNNRU1fU0laRQ0KKzgwMDAyNDAwICAgX19fQVNNX18NCis4MDAwMjQwNCAgIF9fX0lTQV9fDQorODAwMDI0MDggICBfX19QTEFUX18NCis4MDAwMjQwYyAgIF9fX1RBUkdfXw0KKzgwMDAyNzQwICAgX19fVElfZW5hYmxlX2V4aXRfcHJvZmlsZV9vdXRwdXQNCitmZmZmZmZmZiAgIF9fX1RJX3Bwcm9mX291dF9obmRsDQorZmZmZmZmZmYgICBfX19USV9wcm9mX2RhdGFfc2l6ZQ0KK2ZmZmZmZmZmICAgX19fVElfcHJvZl9kYXRhX3N0YXJ0DQorODAwMDI0MTAgICBfX19UUkRSX18NCiswMDgwMzJhMCAgIF9fX2FkZF9kdG9yDQorODAwMDI0ZTAgICBfX19hdGV4aXRfZnVuY19pZF9fDQorZmZmZmZmZmYgICBfX19iaW5pdF9fDQorODAwMDAwMDAgICBfX19ic3NfXw0KKzgwMDAzMDljICAgX19fY19hcmdzX18NCis4MDAwMmQ5OCAgIF9fX2Npbml0X18NCitmZmZmZmZmZiAgIF9fX2RhdGFfXw0KK2ZmZmZmZmZmICAgX19fZWRhdGFfXw0KKzgwMDAwMDAwICAgX19fZW5kX18NCitmZmZmZmZmZiAgIF9fX2V0ZXh0X18NCitmZmZmZmZmZiAgIF9fX3Bpbml0X18NCitmZmZmZmZmZiAgIF9fX3RleHRfXw0KKzAwODAzNGEwICAgX19feGRjX19pbml0DQorODAwMDI0ZDggICBfX194ZGNfX2luaXRfX2FkZHINCiswMDgwMzJlMCAgIF9fYXJnc19tYWluDQorMDA4MDE4YzAgICBfX2F1dG9faW5pdA0KKzgwMDAyNzM4ICAgX19jbGVhbnVwX3B0cg0KKzAwODAyMWUwICAgX19kaXZ1DQorODAwMDI3M2MgICBfX2R0b3JzX3B0cg0KKzgwMDAyNzQ0ICAgX19sb2NrDQorMDA4MDM0YzAgICBfX25vcA0KKzAwODAyNjYwICAgX19yZW11DQorODAwMDAwMDAgICBfX3N0YWNrDQorODAwMDEwMDAgICBfX3N5c19tZW1vcnkNCis4MDAwMjc0OCAgIF9fdW5sb2NrDQorMDA4MDM0ZTAgICBfYWJvcnQNCiswMDAwMDIwMCAgIF9hcmdzaXplDQorMDA4MDIyYTAgICBfYXRleGl0DQorMDA4MDI3MDAgICBfY19pbnQwMA0KKzAwODAxOWMwICAgX2NhbGxfZHRvcnMNCis4MDAwMjRkYyAgIF9kdG9ycw0KKzAwODAxY2MwICAgX2V4aXQNCiswMDgwMGEyMCAgIF9mcmVlDQorODAwMDI0MTQgICBfaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMmNhYyAgIF9oZWxsb19tb2RfVGFsa2VyX2NvdW50X19DDQorMDA4MDJmODAgICBfaGVsbG9fbW9kX1RhbGtlcl9wcmludF9fRg0KKzgwMDAyY2Q0ICAgX2hlbGxvX21vZF9UYWxrZXJfdGV4dF9fQw0KKzAwODAzOTQwICAgX21haW4NCiswMDgwMTIyMCAgIF9tYWxsb2MNCiswMDgwMjdhMCAgIF9tZW1jcHkNCiswMDgwMWRhMCAgIF9tZW1zZXQNCiswMDgwMzAwMCAgIF9yZWFkbXNnDQorMDA4MDMwNjAgICBfd3JpdGVtc2cNCis4MDAwMmNmMCAgIF94ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MNCis4MDAwMjQxNiAgIF94ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WDQorMDA4MDI5ODAgICBfeGRjX3J1bnRpbWVfQXNzZXJ0X3JhaXNlX19JDQorODAwMDJjZjQgICBfeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DDQorODAwMDJjZjggICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQw0KKzgwMDAyY2ZjICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DDQorODAwMDJkMDAgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQw0KKzgwMDAyZDc4ICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQw0KKzgwMDAyNDE4ICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WDQorMDA4MDJjMDAgICBfeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbF9fSQ0KKzAwODAyYzgwICAgX3hkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JDQorMDA4MDA3ODAgICBfeGRjX3J1bnRpbWVfQ29yZV9jcmVhdGVPYmplY3RfX0kNCiswMDgwMWU4MCAgIF94ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSQ0KKzgwMDAyNDFhICAgX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDFjICAgX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyZDA0ICAgX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQw0KKzgwMDAyZDA4ICAgX3hkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DDQorODAwMDI0MWUgICBfeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WDQorODAwMDI0MjAgICBfeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fVg0KKzAwODAzMzIwICAgX3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GDQorMDA4MDM1MDAgICBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRg0KKzAwODAzNTIwICAgX3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0YNCis4MDAwMmQ3YyAgIF94ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQw0KKzgwMDAyZDBjICAgX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQw0KKzAwODAzNTQwICAgX3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19FDQorMDA4MDJhMjAgICBfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0YNCis4MDAwMmQxMCAgIF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MNCiswMDgwMTUyMCAgIF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0YNCis4MDAwMjQyNCAgIF94ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YNCiswMDgwMzU2MCAgIF94ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRg0KKzAwODAzNTgwICAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19GDQorODAwMDI0MjIgICBfeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YNCiswMDgwMzVhMCAgIF94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GDQorMDA4MDM1YzAgICBfeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRg0KKzgwMDAyZDE0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DDQorODAwMDJkMTggICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DDQorODAwMDJkMWMgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DDQorODAwMDJkMjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DDQorMDA4MDMzNjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TDQorMDA4MDBlYTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GDQorODAwMDJjMDggICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MNCis4MDAwMmQyNCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DDQorODAwMDJkMjggICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MNCis4MDAwMmQyYyAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DDQorODAwMDJkODAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DDQorODAwMDI0NDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQ2YyAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMmM1MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQw0KKzgwMDAyYzkwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MNCiswMDgwMWY2MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TDQorMDA4MDMzYTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUw0KKzgwMDAyNDYwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVg0KKzAwODAzNWUwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UNCiswMDgwMTA4MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19GDQorMDA4MDM2MDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FDQorMDA4MDE2ODAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19GDQorMDA4MDM2MjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRQ0KKzAwODAzNjQwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0YNCiswMDgwMzY2MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UNCiswMDgwMzY4MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0YNCis4MDAwMmQzMCAgIF94ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MNCis4MDAwMmQzNCAgIF94ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQw0KKzgwMDAyNDcwICAgX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQ3MiAgIF94ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVg0KKzAwODAzMzYwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlX19sYWJlbF9fUw0KKzAwODAzM2EwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19kZWxldGVfX1MNCiswMDgwMzZhMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2FsbG9jX19FDQorMDA4MDM2YzAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9mcmVlX19FDQorODAwMDJkODQgICBfeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MNCis4MDAwMjQ3NCAgIF94ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WDQorODAwMDI0NzggICBfeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhdGVfX1YNCiswMDgwMWFjMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0YNCiswMDgwMzZlMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GDQorODAwMDJkMzggICBfeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MNCiswMDgwMzcwMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRg0KKzAwODAzNzIwICAgX3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GDQorMDA4MDMwYzAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRg0KKzgwMDAyNDdjICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WDQorODAwMDI0ODAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WDQorMDAwMDAwMDEgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQw0KKzAwMDAwMDAxICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DDQorODAwMDJkM2MgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQw0KKzAwODAxYmMwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRg0KKzAwODAzNzQwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSQ0KKzgwMDAyY2M0ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DDQorODAwMDJjY2MgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQw0KKzgwMDAyZDQwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DDQorMDA4MDM3NjAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSQ0KKzgwMDAyZDQ4ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQQ0KKzgwMDAyZDQ0ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQw0KKzgwMDAyY2Q4ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQQ0KKzgwMDAyZDRjICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQw0KKzAwODAwY2EwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JDQorODAwMDIwMDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQQ0KKzgwMDAyNDg4ICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQ4YyAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGF0ZV9fVg0KKzAwODAzNzgwICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRQ0KKzAwODAzMTIwICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRg0KKzAwODAzN2EwICAgX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRQ0KKzAwODAyMzYwICAgX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRg0KKzgwMDAyZDUwICAgX3hkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DDQorMDA4MDM3YzAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UNCiswMDgwMzNlMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRg0KKzgwMDAyZDg4ICAgX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQw0KKzAwODAyNDIwICAgX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRg0KKzgwMDAyZDU0ICAgX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DDQorMDA4MDJkMDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSQ0KKzAwODAzN2UwICAgX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRQ0KKzAwODAyYWMwICAgX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRg0KKzAwODAzODAwICAgX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRQ0KKzAwODAzODIwICAgX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRg0KKzAwODAzODQwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FDQorMDA4MDM4NjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UNCis4MDAwMjRhMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0ENCis4MDAwMmQ1OCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DDQorODAwMDI0OTggICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNGMwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXRlX19WDQorMDA4MDM4ODAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FDQorMDA4MDM4YTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19GDQorMDA4MDM3YTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9hYm9ydF9fRQ0KKzAwODAzN2MwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfZXhpdF9fRQ0KKzAwODAzN2UwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcHV0Y2hfX0UNCiswMDgwMzgwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3JlYWR5X19FDQorMDA4MDM4YzAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GDQorMDA4MDM0MjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UNCiswMDgwMzE4MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRg0KKzAwODAzMTgwICAgX3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRg0KKzAwODAwMDAwICAgX3hkY19ydW50aW1lX1N5c3RlbV9kb1ByaW50X19JDQorODAwMDJkNWMgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQw0KKzAwODAyNGUwICAgX3hkY19ydW50aW1lX1N5c3RlbV9mb3JtYXROdW1fX0kNCiswMDgwMmI2MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JDQorMDA4MDM0NjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRQ0KKzAwODAzMWUwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YNCiswMDgwMmQ4MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hhcl9fSQ0KKzAwODAyZTAwICAgX3hkY19ydW50aW1lX1N5c3RlbV9ydHNFeGl0X19JDQorMDA4MDM4ZTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YNCiswMDgwMzFlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRg0KKzAwODAzOGUwICAgX3hkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRg0KKzgwMDAyNGNjICAgX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WDQorODAwMDI0ZDAgICBfeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXRlX19WDQorODAwMDJkOGMgICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DDQorODAwMDI3NTggICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BDQorODAwMDJkNjAgICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DDQorMDA4MDMyNDAgICBfeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRg0KKzgwMDAyZDkwICAgX3hkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MNCis4MDAwMmQ2NCAgIF94ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQw0KKzgwMDAyZDY4ICAgX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQw0KKzgwMDAyZDZjICAgX3hkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MNCis4MDAwMmIyMCAgIF94ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0ENCis4MDAwMmQ3MCAgIF94ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MNCiswMDgwMmU4MCAgIF94ZGNfcnVudGltZV9UZXh0X3ByaW50VmlzRnhuX19JDQorMDA4MDE3YTAgICBfeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0YNCiswMDgwMjVhMCAgIF94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRg0KKzAwODAxM2EwICAgX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRg0KKzAwODAzOTAwICAgX3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0YNCiswMDgwMjA0MCAgIF94ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kNCis4MDAwMmQ3NCAgIF94ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQw0KKzAwODAzOTIwICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JDQorMDA4MDJmMDAgICBfeGRjX3J1bnRpbWVfVGV4dF94cHJpbnRmX19JDQorZmZmZmZmZmYgICBiaW5pdA0KKzgwMDAyZDk4ICAgY2luaXQNCitmZmZmZmZmZiAgIGVkYXRhDQorODAwMDAwMDAgICBlbmQNCitmZmZmZmZmZiAgIGV0ZXh0DQorZmZmZmZmZmYgICBwaW5pdA0KKw0KKw0KK0dMT0JBTCBTWU1CT0xTOiBTT1JURUQgQlkgU3ltYm9sIEFkZHJlc3MgDQorDQorYWRkcmVzcyAgICBuYW1lDQorLS0tLS0tLS0gICAtLS0tDQorMDAwMDAwMDEgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQw0KKzAwMDAwMDAxICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DDQorMDAwMDAyMDAgICBfYXJnc2l6ZQ0KKzAwMDAxMDAwICAgX19TVEFDS19TSVpFDQorMDAwMDEwMDAgICBfX1NZU01FTV9TSVpFDQorMDA4MDAwMDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2RvUHJpbnRfX0kNCiswMDgwMDc4MCAgIF94ZGNfcnVudGltZV9Db3JlX2NyZWF0ZU9iamVjdF9fSQ0KKzAwODAwYTIwICAgX2ZyZWUNCiswMDgwMGNhMCAgIF94ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc19fSQ0KKzAwODAwZWEwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfSW5zdGFuY2VfaW5pdF9fRg0KKzAwODAxMDgwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YNCiswMDgwMTIyMCAgIF9tYWxsb2MNCiswMDgwMTNhMCAgIF94ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0YNCiswMDgwMTUyMCAgIF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0YNCiswMDgwMTY4MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0YNCiswMDgwMTdhMCAgIF94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRg0KKzAwODAxOGMwICAgX19hdXRvX2luaXQNCiswMDgwMTljMCAgIF9jYWxsX2R0b3JzDQorMDA4MDFhYzAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GDQorMDA4MDFiYzAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GDQorMDA4MDFjYzAgICBfZXhpdA0KKzAwODAxZGEwICAgX21lbXNldA0KKzAwODAxZTgwICAgX3hkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JDQorMDA4MDFmNjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUw0KKzAwODAyMDQwICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlMl9fSQ0KKzAwODAyMTIwICAgX0hPU1R3cml0ZQ0KKzAwODAyMWUwICAgX19kaXZ1DQorMDA4MDIyYTAgICBfYXRleGl0DQorMDA4MDIzNjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GDQorMDA4MDI0MjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GDQorMDA4MDI0ZTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2Zvcm1hdE51bV9fSQ0KKzAwODAyNWEwICAgX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19GDQorMDA4MDI2NjAgICBfX3JlbXUNCiswMDgwMjcwMCAgIF9jX2ludDAwDQorMDA4MDI3YTAgICBfbWVtY3B5DQorMDA4MDI5ODAgICBfeGRjX3J1bnRpbWVfQXNzZXJ0X3JhaXNlX19JDQorMDA4MDJhMjAgICBfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0YNCiswMDgwMmFjMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0YNCiswMDgwMmI2MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JDQorMDA4MDJjMDAgICBfeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbF9fSQ0KKzAwODAyYzgwICAgX3hkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JDQorMDA4MDJkMDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSQ0KKzAwODAyZDgwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaGFyX19JDQorMDA4MDJlMDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3J0c0V4aXRfX0kNCiswMDgwMmU4MCAgIF94ZGNfcnVudGltZV9UZXh0X3ByaW50VmlzRnhuX19JDQorMDA4MDJmMDAgICBfeGRjX3J1bnRpbWVfVGV4dF94cHJpbnRmX19JDQorMDA4MDJmODAgICBfaGVsbG9fbW9kX1RhbGtlcl9wcmludF9fRg0KKzAwODAzMDAwICAgX3JlYWRtc2cNCiswMDgwMzA2MCAgIF93cml0ZW1zZw0KKzAwODAzMGI4ICAgQyQkSU8kJA0KKzAwODAzMGMwICAgX3hkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0YNCiswMDgwMzEyMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0YNCiswMDgwMzE4MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRg0KKzAwODAzMTgwICAgX3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRg0KKzAwODAzMWUwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YNCiswMDgwMzFlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRg0KKzAwODAzMjQwICAgX3hkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0YNCiswMDgwMzJhMCAgIF9fX2FkZF9kdG9yDQorMDA4MDMyZTAgICBfX2FyZ3NfbWFpbg0KKzAwODAzMzIwICAgX3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GDQorMDA4MDMzNjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TDQorMDA4MDMzNjAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGVfX2xhYmVsX19TDQorMDA4MDMzYTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUw0KKzAwODAzM2EwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19kZWxldGVfX1MNCiswMDgwMzNlMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRg0KKzAwODAzNDIwICAgX3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FDQorMDA4MDM0NjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRQ0KKzAwODAzNGEwICAgX19feGRjX19pbml0DQorMDA4MDM0YzAgICBfX25vcA0KKzAwODAzNGUwICAgQyQkRVhJVA0KKzAwODAzNGUwICAgX2Fib3J0DQorMDA4MDM1MDAgICBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRg0KKzAwODAzNTIwICAgX3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0YNCiswMDgwMzU0MCAgIF94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRQ0KKzAwODAzNTYwICAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GDQorMDA4MDM1ODAgICBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YNCiswMDgwMzVhMCAgIF94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GDQorMDA4MDM1YzAgICBfeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRg0KKzAwODAzNWUwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UNCiswMDgwMzYwMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UNCiswMDgwMzYyMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FDQorMDA4MDM2NDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRg0KKzAwODAzNjYwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRQ0KKzAwODAzNjgwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRg0KKzAwODAzNmEwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfYWxsb2NfX0UNCiswMDgwMzZjMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2ZyZWVfX0UNCiswMDgwMzZlMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GDQorMDA4MDM3MDAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0YNCiswMDgwMzcyMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRg0KKzAwODAzNzQwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSQ0KKzAwODAzNzYwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kNCiswMDgwMzc4MCAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UNCiswMDgwMzdhMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UNCiswMDgwMzdhMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2Fib3J0X19FDQorMDA4MDM3YzAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UNCiswMDgwMzdjMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2V4aXRfX0UNCiswMDgwMzdlMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UNCiswMDgwMzdlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3B1dGNoX19FDQorMDA4MDM4MDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FDQorMDA4MDM4MDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9yZWFkeV9fRQ0KKzAwODAzODIwICAgX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRg0KKzAwODAzODQwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FDQorMDA4MDM4NjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UNCiswMDgwMzg4MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UNCiswMDgwMzhhMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0YNCiswMDgwMzhjMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0YNCiswMDgwMzhlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRg0KKzAwODAzOGUwICAgX3hkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRg0KKzAwODAzOTAwICAgX3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0YNCiswMDgwMzkyMCAgIF94ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSQ0KKzAwODAzOTQwICAgX21haW4NCis4MDAwMDAwMCAgICRic3MNCis4MDAwMDAwMCAgIC5ic3MNCis4MDAwMDAwMCAgIF9fX2Jzc19fDQorODAwMDAwMDAgICBfX19lbmRfXw0KKzgwMDAwMDAwICAgX19zdGFjaw0KKzgwMDAwMDAwICAgZW5kDQorODAwMDEwMDAgICBfX3N5c19tZW1vcnkNCis4MDAwMjAwMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BDQorODAwMDI0MDAgICBfX19BU01fXw0KKzgwMDAyNDA0ICAgX19fSVNBX18NCis4MDAwMjQwOCAgIF9fX1BMQVRfXw0KKzgwMDAyNDBjICAgX19fVEFSR19fDQorODAwMDI0MTAgICBfX19UUkRSX18NCis4MDAwMjQxNCAgIF9oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDE2ICAgX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQxOCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDFhICAgX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDFjICAgX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDFlICAgX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDIwICAgX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMjQyMiAgIF94ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDI0ICAgX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDQwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WDQorODAwMDI0NjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WDQorODAwMDI0NmMgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXRlX19WDQorODAwMDI0NzAgICBfeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDcyICAgX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WDQorODAwMDI0NzQgICBfeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDc4ICAgX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXRlX19WDQorODAwMDI0N2MgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQ4MCAgIF94ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMjQ4OCAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WDQorODAwMDI0OGMgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMjQ5OCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WDQorODAwMDI0YTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BDQorODAwMDI0YzAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMjRjYyAgIF94ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNGQwICAgX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyNGQ4ICAgX19feGRjX19pbml0X19hZGRyDQorODAwMDI0ZGMgICBfZHRvcnMNCis4MDAwMjRlMCAgIF9fX2F0ZXhpdF9mdW5jX2lkX18NCis4MDAwMjczOCAgIF9fY2xlYW51cF9wdHINCis4MDAwMjczYyAgIF9fZHRvcnNfcHRyDQorODAwMDI3NDAgICBfX19USV9lbmFibGVfZXhpdF9wcm9maWxlX291dHB1dA0KKzgwMDAyNzQ0ICAgX19sb2NrDQorODAwMDI3NDggICBfX3VubG9jaw0KKzgwMDAyNzU4ICAgX3hkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQQ0KKzgwMDAyYjIwICAgX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQQ0KKzgwMDAyYzA4ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DDQorODAwMDJjNTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MNCis4MDAwMmM5MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DDQorODAwMDJjYWMgICBfaGVsbG9fbW9kX1RhbGtlcl9jb3VudF9fQw0KKzgwMDAyY2M0ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DDQorODAwMDJjY2MgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQw0KKzgwMDAyY2Q0ICAgX2hlbGxvX21vZF9UYWxrZXJfdGV4dF9fQw0KKzgwMDAyY2Q4ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQQ0KKzgwMDAyY2YwICAgX3hkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQw0KKzgwMDAyY2Y0ICAgX3hkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQw0KKzgwMDAyY2Y4ICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MNCis4MDAwMmNmYyAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQw0KKzgwMDAyZDAwICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MNCis4MDAwMmQwNCAgIF94ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MNCis4MDAwMmQwOCAgIF94ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQw0KKzgwMDAyZDBjICAgX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQw0KKzgwMDAyZDEwICAgX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQw0KKzgwMDAyZDE0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DDQorODAwMDJkMTggICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DDQorODAwMDJkMWMgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DDQorODAwMDJkMjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DDQorODAwMDJkMjQgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQw0KKzgwMDAyZDI4ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DDQorODAwMDJkMmMgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQw0KKzgwMDAyZDMwICAgX3hkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQw0KKzgwMDAyZDM0ICAgX3hkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DDQorODAwMDJkMzggICBfeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MNCis4MDAwMmQzYyAgIF94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DDQorODAwMDJkNDAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MNCis4MDAwMmQ0NCAgIF94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MNCis4MDAwMmQ0OCAgIF94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0ENCis4MDAwMmQ0YyAgIF94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MNCis4MDAwMmQ1MCAgIF94ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQw0KKzgwMDAyZDU0ICAgX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DDQorODAwMDJkNTggICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQw0KKzgwMDAyZDVjICAgX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MNCis4MDAwMmQ2MCAgIF94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MNCis4MDAwMmQ2NCAgIF94ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQw0KKzgwMDAyZDY4ICAgX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQw0KKzgwMDAyZDZjICAgX3hkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MNCis4MDAwMmQ3MCAgIF94ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MNCis4MDAwMmQ3NCAgIF94ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQw0KKzgwMDAyZDc4ICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQw0KKzgwMDAyZDdjICAgX3hkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DDQorODAwMDJkODAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DDQorODAwMDJkODQgICBfeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MNCis4MDAwMmQ4OCAgIF94ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MNCis4MDAwMmQ4YyAgIF94ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MNCis4MDAwMmQ5MCAgIF94ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DDQorODAwMDJkOTggICBfX19jaW5pdF9fDQorODAwMDJkOTggICBjaW5pdA0KKzgwMDAzMDljICAgX19fY19hcmdzX18NCis4MDAwMzJhMCAgIF9fQ0lPQlVGXw0KK2ZmZmZmZmZmICAgLmRhdGENCitmZmZmZmZmZiAgIC50ZXh0DQorZmZmZmZmZmYgICBfX19USV9wcHJvZl9vdXRfaG5kbA0KK2ZmZmZmZmZmICAgX19fVElfcHJvZl9kYXRhX3NpemUNCitmZmZmZmZmZiAgIF9fX1RJX3Byb2ZfZGF0YV9zdGFydA0KK2ZmZmZmZmZmICAgX19fYmluaXRfXw0KK2ZmZmZmZmZmICAgX19fZGF0YV9fDQorZmZmZmZmZmYgICBfX19lZGF0YV9fDQorZmZmZmZmZmYgICBfX19ldGV4dF9fDQorZmZmZmZmZmYgICBfX19waW5pdF9fDQorZmZmZmZmZmYgICBfX190ZXh0X18NCitmZmZmZmZmZiAgIGJpbml0DQorZmZmZmZmZmYgICBlZGF0YQ0KK2ZmZmZmZmZmICAgZXRleHQNCitmZmZmZmZmZiAgIHBpbml0DQorDQorWzIyNyBzeW1ib2xzXQ0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjc2MzU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4NmIyZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFAuZGVwCkBAIC0wLDAgKzEsMjUgQEAKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQOiBwcm9nLmMgVGFsa2VyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmggcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW50LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5LmggDQorcHJvZy5jOg0KK1RhbGtlci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oOg0KK3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1cgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3YjM5ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1cuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vODZHVy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTExMjhlNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1cuZGVwCkBAIC0wLDAgKzEsMjIgQEAKK3BhY2thZ2UvY2ZnL3Byb2cvL3Byb2cubzg2R1c6IHByb2cuYyBUYWxrZXIuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaCBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5LmggDQorcHJvZy5jOg0KK1RhbGtlci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oOg0KK3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2EyMzIwMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuYwpAQCAtMCwwICsxLDczODEgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNkZWZpbmUgX19uZXN0ZWRfXworI2RlZmluZSBfX2NvbmZpZ19fCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKKy8qCisgKiA9PT09PT09PSBHRU5FUkFURUQgU0VDVElPTlMgPT09PT09PT0KKyAqICAgICAKKyAqICAgICBNT0RVTEUgSU5DTFVERVMKKyAqICAgICAKKyAqICAgICA8bW9kdWxlLW5hbWU+IElOVEVSTkFMUworICogICAgIDxtb2R1bGUtbmFtZT4gSU5IRVJJVFMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFZUQUJMRQorICogICAgIDxtb2R1bGUtbmFtZT4gUEFUQ0ggVEFCTEUKKyAqICAgICA8bW9kdWxlLW5hbWU+IERFQ0xBUkFUSU9OUworICogICAgIDxtb2R1bGUtbmFtZT4gT0JKRUNUIE9GRlNFVFMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFRFTVBMQVRFUworICogICAgIDxtb2R1bGUtbmFtZT4gSU5JVElBTElaRVJTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBGVU5DVElPTiBTVFVCUworICogICAgIDxtb2R1bGUtbmFtZT4gUFJPWFkgQk9EWQorICogICAgIDxtb2R1bGUtbmFtZT4gT0JKRUNUIERFU0NSSVBUT1IKKyAqICAgICA8bW9kdWxlLW5hbWU+IFNZU1RFTSBGVU5DVElPTlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFBSQUdNQVMKKyAqICAgICAKKyAqICAgICBJTklUSUFMSVpBVElPTiBFTlRSWSBQT0lOVAorICogICAgIFBST0dSQU0gR0xPQkFMUworICogICAgIENMSU5LIERJUkVDVElWRVMKKyAqLworCisKKy8qCisgKiA9PT09PT09PSBNT0RVTEUgSU5DTFVERVMgPT09PT09PT0KKyAqLworCisjaW5jbHVkZSA8aGVsbG8vbW9kL1RhbGtlci5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Fzc2VydC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0NvcmUuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9EZWZhdWx0cy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0RpYWdzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9HYXRlLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvR2F0ZU51bGwuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9IZWFwU3RkLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTG9nLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTWFpbi5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL01lbW9yeS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N0YXJ0dXAuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXNNaW4uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UZXh0Lmg+CisKKworLyoKKyAqID09PT09PT09IGhlbGxvLm1vZC5UYWxrZXIgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX18geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX18geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WOworCisvKiBPYmplY3RfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18geworICAgIGNvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX0Z4bnNfXyogX19meG5zOworfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIE9iamVjdF9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHsKKyAgICBjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX0Z4bnNfXyogX19meG5zOworICAgIHhkY19ydW50aW1lX01lbW9yeV9TaXplIHJlbWFpblNpemU7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgc3RhcnRTaXplOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX18geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19yb290X19WOworCisvKiA8LS0geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0ICovCisKKy8qIE9iamVjdCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3QyX187CisKKy8qIF9fUGFyYW1zUHRyICovCisjaWZkZWYgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1B0cgorI2VuZGlmCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworLyogPC0tIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0ICovCisKKy8qIE9iamVjdCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIDwtLSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTkhFUklUUyA9PT09PT09PQorICovCisKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQyA9IHswfTsKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTkhFUklUUyA9PT09PT09PQorICovCisKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MgPSB7KHZvaWQqKSZ4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBJTkhFUklUUyA9PT09PT09PQorICovCisKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfQmFzZSB4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MgPSB7KHZvaWQqKSZ4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfRnhuc19fIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FLAorICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FLAorICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FLAorICAgIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TLAorICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TLAorICAgICAgICAweDgwMDgsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9GeG5zX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZ4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FLAorICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSwKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UsCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSwKKyAgICB7CisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUywKKyAgICAgICAgMHg4MDBjLCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFZUQUJMRSA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworY29uc3QgeGRjX3J1bnRpbWVfU3lzTWluX0Z4bnNfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmeGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DLCAvKiBiYXNlX18gKi8KKyAgICAmeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQy5fX3NmeG5zLCAvKiBfX3N5c3AgKi8KKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UsCisgICAgeworICAgICAgICBOVUxMLCAvKiBfX2NyZWF0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2RlbGV0ZSAqLworICAgICAgICBOVUxMLCAvKiBfX2xhYmVsICovCisgICAgICAgIDB4ODAwZiwgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IGhlbGxvLm1vZC5UYWxrZXIgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfVUludDE2IGNvdW50OworfSB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fdGFibGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzFdOworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgcmVtYWluUlRTU2l6ZTsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1NpemVUIG1heERlZmF1bHRUeXBlQWxpZ247Cit9IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19JbnQqIHN0YXRlVGFiOworICAgIHhkY19Cb29sIGV4ZWNGbGFnOworICAgIHhkY19Cb29sIHJ0c0RvbmVGbGFnOworfSB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKHhkY19JbnQpOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FICovCitleHRlcm4geGRjX0ludCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UoeGRjX0ludCk7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVsyXTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BWzJdOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXyB7CisgICAgX19UQV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgb3V0YnVmOworICAgIHhkY19VSW50IG91dGlkeDsKKyAgICB4ZGNfQm9vbCB3cmFwcGVkOworfSB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX187CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfX291dGJ1ZiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BWzEwMjRdOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JICovCitleHRlcm4geGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSh4ZGNfQ2hhcioseGRjX1VJbnQpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB7CisgICAgX19UQV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyBhdGV4aXRIYW5kbGVyczsKKyAgICB4ZGNfSW50IG51bUF0ZXhpdEhhbmRsZXJzOworICAgIHhkY19JbnQgZXhpdFN0YXR1czsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfX2F0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQVs4XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSh4ZGNfQ2hhcioqLHhkY19DaGFyKioseGRjX1ZhTGlzdCx4ZGNfcnVudGltZV9TeXN0ZW1fUGFyc2VEYXRhKik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1B0ciBjaGFyQmFzZTsKKyAgICB4ZGNfUHRyIG5vZGVCYXNlOworfSB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzY4MF07CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVsxOV07CisKKworLyoKKyAqID09PT09PT09IHhkYy5jZmcuUHJvZ3JhbSBURU1QTEFURSA9PT09PT09PQorICovCisKKy8qCisgKiAgPT09PT09PT0gX19BU01fXyA9PT09PT09PQorICogIERlZmluZSB0aGlzIHByb2dyYW0ncyBwYWNrYWdlLXBhdGggcmVsYXRpdmUgYXNzZW1ibHkgZGlyZWN0b3J5CisgKi8KK19fRkFSX18gY2hhciAqX19BU01fXyA9ICJAKCMpX19BU01fXyA9IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQIjsKKworLyoKKyAqICA9PT09PT09PSBfX0lTQV9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBJU0Egb2YgdGhpcyBleGVjdXRhYmxlLiAgVGhpcyBzeW1ib2wgaXMgdXNlZCBieSBwbGF0Zm9ybQorICogIHNwZWNpZmljICJleGVjIiBjb21tYW5kcyB0aGF0IHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBJU0E7IGUuZy4sIGdkYgorICovCitfX0ZBUl9fIGNoYXIgKl9fSVNBX18gPSAiQCgjKV9fSVNBX18gPSA2NFAiOworCisvKgorICogID09PT09PT09IF9fUExBVF9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBwbGF0Zm9ybSB0aGF0IGNhbiBydW4gdGhpcyBleGVjdXRhYmxlLiAgVGhpcworICogIHN5bWJvbCBpcyB1c2VkIGJ5IHBsYXRmb3JtIGluZGVwZW5kZW50ICJleGVjIiBjb21tYW5kcworICovCitfX0ZBUl9fIGNoYXIgKl9fUExBVF9fID0gIkAoIylfX1BMQVRfXyA9IHRpLnBsYXRmb3Jtcy5zaW02NFB4eCI7CisKKy8qCisgKiAgPT09PT09PT0gX19UQVJHX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHRhcmdldCB1c2VkIHRvIGJ1aWxkIHRoaXMgZXhlY3V0YWJsZS4KKyAqLworX19GQVJfXyBjaGFyICpfX1RBUkdfXyA9ICJAKCMpX19UQVJHX18gPSB0aS50YXJnZXRzLkM2NFAiOworCisvKgorICogID09PT09PT09IF9fVFJEUl9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBjbGFzcyB0aGF0IGNhbiByZWFkL3BhcnNlIHRoaXMgZXhlY3V0YWJsZS4KKyAqLworX19GQVJfXyBjaGFyICpfX1RSRFJfXyA9ICJAKCMpX19UUkRSX18gPSB0aS50YXJnZXRzLm9tZi5jb2YuQ29mZiI7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fRih2b2lkKSB7CisgICAgcmV0dXJuICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWIgPT0gMCB8fCAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiWzBdIDwgMDsKK30KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMV0gPCAwOworfQorCisKK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSh2b2lkKQoreworICAgIHhkY19JbnQgc3RhdGVbM107CisgICAgeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0Moc3RhdGUsIDIpOworfQorCisjaWZkZWYgX190aV9fCisjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JKTsKKyNlbmRpZgorCisvKgorICogID09PT09PT09IHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBib290c3RyYXAgaW5pdGlhbGl6YXRpb24gY29kZSBhcyBlYXJseSBhcworICogIHBvc3NpYmxlIGluIHRoZSBzdGFydHVwIHByb2Nlc3MuICBUaGlzIGZ1bmN0aW9uIHNpbXBseSBjYWxscyBhbnkKKyAqICBjb25maWd1cmVkIG51bGwuCisgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kodm9pZCkKK3sKK30KKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBURU1QTEFURSA9PT09PT09PQorICovCisKKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UeXBlcy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1RleHQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Bc3NlcnQuaD4KKworLyoKKyAqICA9PT09PT09PSBTeXN0ZW1fcHJpbnRmRXh0ZW5kX19JID09PT09PT09CisgKiAgVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgb3B0aW9uYWwgZXh0ZW5kZWQgZm9ybWF0cyBvZiBwcmludGYuCisgKi8KK0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKENoYXIgKipwYnVmLCBDaGFyICoqcGZtdCwgCisgICAgVmFMaXN0IHZhLCB4ZGNfcnVudGltZV9TeXN0ZW1fUGFyc2VEYXRhICpwYXJzZSkKK3sKKyAgICBDaGFyICAgICpmbXQgPSAqcGZtdDsKKyAgICBJbnQgICAgIHJlczsKKyAgICBDaGFyICAgIGM7CisgICAgQm9vbCAgICBmb3VuZCA9IEZBTFNFOworICAgIAorICAgIHJlcyA9IDA7CisKKyAgICBjID0gKmZtdCsrOworICAgICpwZm10ID0gKnBmbXQgKyAxOworCisgICAgCisgICAgaWYgKGMgPT0gJyQnKSB7CisgICAgICAgIGMgPSAqZm10Kys7CisgICAgICAgICpwZm10ID0gKnBmbXQgKyAxOworICAgICAgICBpZiAoYyA9PSAnTCcpIHsKKyAgICAgICAgICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsICpsYWIgPSBwYXJzZS0+YUZsYWcgPyAKKyAgICAgICAgICAgICAgICAoeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwgKilpYXJnVG9QdHIodmFfYXJnKHZhLCBJQXJnKSkgOgorICAgICAgICAgICAgICAgICh4ZGNfcnVudGltZV9UeXBlc19MYWJlbCAqKXZhX2FyZyh2YSwgdm9pZCAqKTsKKyAgICAgICAgICAgIHJlcyArPSB4ZGNfcnVudGltZV9UZXh0X3B1dExhYihsYWIsIHBidWYsIHBhcnNlLT5wcmVjaXMpOworICAgICAgICAgICAgcGFyc2UtPmxlbiA9IDA7CisgICAgICAgICAgICBmb3VuZCA9IFRSVUU7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGlmIChmb3VuZCA9PSBGQUxTRSkgeworICAgICAgICAgLyogb3RoZXIgY2hhcmFjdGVyIChsaWtlICUpIGNvcHkgdG8gb3V0cHV0ICovCisgICAgICAgICAqKHBhcnNlLT5wdHIpID0gYzsKKyAgICAgICAgIHBhcnNlLT5sZW4gPSAxOworICAgIH0KKworICAgIHJldHVybiAocmVzKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KK2V4dGVybiBpbnQgSE9TVHdyaXRlKGludCwgY2hhciAqLCB1bnNpZ25lZCk7CisjZWxzZQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjZW5kaWYKKworLyoKKyAqICA9PT09PT09PSBTeXNNaW5fb3V0cHV0X19JID09PT09PT09CisgKiAgSE9TVFdyaXRlIG9ubHkgd3JpdGVzIGEgbWF4IG9mIE4gY2hhcnMgYXQgYSB0aW1lLiBUaGUgYW1vdW50IGl0IHdyaXRlcworICogIGlzIHJldHVybmVkLiBUaGlzIGZ1bmN0aW9uIGxvb3BzIHVudGlsIHRoZSBlbnRpcmUgYnVmZmVyIGlzIHdyaXR0ZW4uCisgKiAgQmVpbmcgYSBzdGF0aWMgZnVuY3Rpb24gYWxsb3dzIGl0IHRvIGNvbmRpdGlvbmFsbHkgY29tcGlsZSBvdXQuCisgKi8KK1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSShDaGFyICpidWYsIFVJbnQgc2l6ZSkKK3sKKyNpZmRlZiBfX3RpX18KKyAgICBJbnQgcHJpbnRDb3VudDsKKyAgICAKKyAgICB3aGlsZSAoc2l6ZSAhPSAwKSB7CisgICAgICAgIHByaW50Q291bnQgPSBIT1NUd3JpdGUoMSwgYnVmLCBzaXplKTsKKyAgICAgICAgaWYgKChwcmludENvdW50IDw9IDApIHx8IChwcmludENvdW50ID4gc2l6ZSkpIHsKKyAgICAgICAgICAgIGJyZWFrOyAgLyogZW5zdXJlIHdlIG5ldmVyIGdldCBzdHVjayBpbiBhbiBpbmZpbml0ZSBsb29wICovCisgICAgICAgIH0KKyAgICAgICAgc2l6ZSAtPSBwcmludENvdW50OworICAgICAgICBidWYgPSBidWYgKyBwcmludENvdW50OworICAgIH0gICAgCisjZWxzZQorICAgIGZ3cml0ZShidWYsIDEsIHNpemUsIHN0ZG91dCk7CisjZW5kaWYKK30KKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKy8qCisgKiAgPT09PT09PT0geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIGlzIGluZGlyZWN0bHkgY2FsbGVkIHdpdGhpbiBUZXh0LmMgdGhyb3VnaAorICogIHRoZSB2aXNpdFJvcGVGeG4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgb2YgeGRjLnJ1bnRpbWUuVGV4dC4KKyAqLworVm9pZCB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSh4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLAorICAgIHhkY19GeG4gdmlzRnhuLCB4ZGNfUHRyIHZpc1N0YXRlKQoreworICAgIHhkY19TdHJpbmcgc3RhY2tbM107CisgICAgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKHJvcGUsIHZpc0Z4biwgdmlzU3RhdGUsIHN0YWNrKTsKK30KKworCisvKgorICogPT09PT09PT0gaGVsbG8ubW9kLlRhbGtlciBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX18gaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NNYXNrIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZU9iaiBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZVBybXMgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9faWQgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDEyOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJEZWZpbmVkIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJPYmogaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjQgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuOCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVGeG4gaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX09iamVjdF9fY291bnQgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX09iamVjdF9faGVhcCBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX09iamVjdF9fc2l6ZW9mIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX09iamVjdF9fdGFibGUgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogdGV4dF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl90ZXh0IGhlbGxvX21vZF9UYWxrZXJfdGV4dF9fQyA9ICJHb29kbmlnaHQgTW9vbiI7CisKKy8qIGNvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX2NvdW50IGhlbGxvX21vZF9UYWxrZXJfY291bnRfX0MgPSAoeGRjX0ludCkweDM7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDAyOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBFX2Fzc2VydEZhaWxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkIHhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTMwOSkgPDwgMTYgfCAwKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDAzOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogQV9pbml0aWFsaXplZFBhcmFtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zIHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkxKSA8PCAxNiB8IDE2KTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwNDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA1OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIHNldE1hc2tFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQyA9IDA7CisKKy8qIGRpY3RCYXNlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSB4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlKTApOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKHhkY19VSW50MTYpMHgwLCAgLyogY291bnQgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA2OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEVfZ2VuZXJpY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljIHhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTMzMSkgPDwgMTYgfCAwKTsKKworLyogRV9tZW1vcnlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5IHhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzQ5KSA8PCAxNiB8IDApOworCisvKiBwb2xpY3lfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeSB4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MgPSB4ZGNfcnVudGltZV9FcnJvcl9VTldJTkQ7CisKKy8qIHJhaXNlSG9va19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9vaykoKHhkY19GeG4peGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UpKTsKKworLyogbWF4RGVwdGhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX21heERlcHRoIHhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DID0gKHhkY19VSW50MTYpMHgxMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX18geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA3OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0M7CisKKy8qIE9iamVjdF9fUEFSQU1TX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyA9IHsKKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgIDAsIC8qIF9fc2VsZiAqLworICAgIDAsIC8qIF9fZnhucyAqLworICAgICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MuX19pcHJtcywgLyogaW5zdGFuY2UgKi8KKyAgICB7CisgICAgICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgICAgICAwLCAgLyogbmFtZSAqLworICAgIH0sICAvKiBpbnN0YW5jZSAqLworfTsKKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YgPSB7eworICAgIHsmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAgLyogbGluay5uZXh0ICovCisgICAgJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGlua30sICAvKiBsaW5rLnByZXYgKi8KKyAgICAoVUNoYXIqKTAsICAvKiBpbnN0QXJyQmVnICovCisgICAgKFVDaGFyKikoMCstMSksICAvKiBpbnN0QXJyRW5kICovCisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyksICAvKiBpbnN0U2l6ZSAqLworICAgIDAsICAvKiBjdXIgKi8KKyAgICAwLCAgLyogZGlhZ3NNYXNrICovCit9fTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDg7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DID0gc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKTsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DOworCisvKiBPYmplY3RfX1BBUkFNU19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DID0geworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAwLCAvKiBfX3NlbGYgKi8KKyAgICAwLCAvKiBfX2Z4bnMgKi8KKyAgICAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyopJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MuX19pcHJtcywgLyogaW5zdGFuY2UgKi8KKyAgICAoKHhkY19VQXJnKSgodm9pZCopMHgwKSksICAvKiBzaXplICovCisgICAgeworICAgICAgICBzaXplb2YgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMpLCAvKiBfX3NpemUgKi8KKyAgICAgICAgMCwgIC8qIG5hbWUgKi8KKyAgICB9LCAgLyogaW5zdGFuY2UgKi8KK307CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fViA9IHt7CisgICAgeyZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgIC8qIGxpbmsubmV4dCAqLworICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGlua30sICAvKiBsaW5rLnByZXYgKi8KKyAgICAoVUNoYXIqKXhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fViwgIC8qIGluc3RBcnJCZWcgKi8KKyAgICAoVUNoYXIqKSh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1YrMCksICAvKiBpbnN0QXJyRW5kICovCisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKSwgIC8qIGluc3RTaXplICovCisgICAgMCwgIC8qIGN1ciAqLworICAgIDAsICAvKiBkaWFnc01hc2sgKi8KK319OworCisvKiBPYmplY3RfX3RhYmxlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVlsxXSA9IHsKKyAgICB7LyogaW5zdGFuY2UjMCAqLworICAgICAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MsCisgICAgICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDEwMDApKSwgIC8qIHJlbWFpblNpemUgKi8KKyAgICAgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MTAwMCkpLCAgLyogc3RhcnRTaXplICovCisgICAgfSwKK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDApKSwgIC8qIHJlbWFpblJUU1NpemUgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGM7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MgPSAxOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQyA9IHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKTsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQyA9IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fVjsKKworLyogRV9ub1JUU01lbW9yeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5IHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyA9ICgoKHhkY19ydW50aW1lX0Vycm9yX0lkKTQyMSkgPDwgMTYgfCAwKTsKKworLyogQV96ZXJvU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCk5NSkgPDwgMTYgfCAxNik7CisKKy8qIEFfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMTQwKSA8PCAxNiB8IDE2KTsKKworLyogQV9pbnZhbGlkQWxpZ25tZW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudCB4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkyMDEpIDw8IDE2IHwgMTYpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwOTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogTF9jb25zdHJ1Y3RfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNDY4KSA8PCAxNiB8IDQpOworCisvKiBMX2NyZWF0ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlIHhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk0OTIpIDw8IDE2IHwgNCk7CisKKy8qIExfZGVzdHJ1Y3RfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTUxMykgPDwgMTYgfCA0KTsKKworLyogTF9kZWxldGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2RlbGV0ZSB4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNTMyKSA8PCAxNiB8IDQpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGE7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKHhkY19TaXplVCkweDgsICAvKiBtYXhEZWZhdWx0VHlwZUFsaWduICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGI7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIGRlZmF1bHRIZWFwSW5zdGFuY2VfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlIHhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DID0gKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSkmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzBdOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfSW50KikwKSwgIC8qIHN0YXRlVGFiICovCisgICAgMCwgIC8qIGV4ZWNGbGFnICovCisgICAgMCwgIC8qIHJ0c0RvbmVGbGFnICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FbMl0gPSB7CisgICAgKCh4ZGNfSW50KCopKHhkY19JbnQpKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UpKSwgIC8qIFswXSAqLworICAgICgoeGRjX0ludCgqKSh4ZGNfSW50KSkoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FKSksICAvKiBbMV0gKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVsyXSA9IHsKKyAgICAxLCAgLyogWzBdICovCisgICAgMSwgIC8qIFsxXSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIG1heFBhc3Nlc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MgPSAoeGRjX0ludCkweDIwOworCisvKiBmaXJzdEZ4bnNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DID0gezAsIDB9OworCisvKiBsYXN0Rnhuc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DID0gezAsIDB9OworCisvKiBzdGFydE1vZHNGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG4pKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JKSk7CisKKy8qIGV4ZWNJbXBsX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0kpKTsKKworLyogc2Z4blRhYl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYil4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EpOworCisvKiBzZnhuUnRzX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzKXhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fb3V0YnVmIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0FbMTAyNF07CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BLCAgLyogb3V0YnVmICovCisgICAgKHhkY19VSW50KTB4MCwgIC8qIG91dGlkeCAqLworICAgIDAsICAvKiB3cmFwcGVkICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGY7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIGJ1ZlNpemVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9idWZTaXplIHhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DID0gKHhkY19TaXplVCkweDQwMDsKKworLyogZmx1c2hBdEV4aXRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MgPSAxOworCisvKiBvdXRwdXRGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG4geGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG4pMCk7CisKKy8qIG91dHB1dEZ1bmNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmMpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0kpKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfX2F0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQVs4XSA9IHsKKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzBdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFsxXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbMl0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzNdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs0XSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbNV0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzZdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs3XSAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXRlX19WID0geworICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQSwgIC8qIGF0ZXhpdEhhbmRsZXJzICovCisgICAgKHhkY19JbnQpMHgwLCAgLyogbnVtQXRleGl0SGFuZGxlcnMgKi8KKyAgICAoeGRjX0ludCkweGNhZmUsICAvKiBleGl0U3RhdHVzICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMGU7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEFfY2Fubm90Rml0SW50b0FyZ19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZyB4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTI2MSkgPDwgMTYgfCAxNik7CisKKy8qIG1heEF0ZXhpdEhhbmRsZXJzX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DID0gKHhkY19JbnQpMHg4OworCisvKiBleHRlbmRGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4geGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4pKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kpKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1RleHRfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXRlX19WID0geworICAgICgoeGRjX1B0cikoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FbMF0pKSwgIC8qIGNoYXJCYXNlICovCisgICAgKCh4ZGNfUHRyKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVswXSkpLCAgLyogbm9kZUJhc2UgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiIHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVs2ODBdID0geworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFsxXSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzJdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzVdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzhdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg1MCwgIC8qIFsxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFsxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFsyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFsyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFszMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFszMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFszNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MCwgIC8qIFszNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQ5XSAqLworICAgICh4ZGNfQ2hhcikweDQ4LCAgLyogWzUwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzUyXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzUzXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzU0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzU1XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzU2XSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzU3XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzU4XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYxXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzY0XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzY1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzY2XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY3XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY4XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzY5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzcwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzcxXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzcyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzczXSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzc0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzc1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzc2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzc3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzc4XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzc5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzgwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzgxXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzgyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzgzXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzg0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzg1XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzg2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzg3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzg4XSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzg5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzkwXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzkxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzkyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzkzXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbOTRdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbOTVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbOTZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOTddICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbOThdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbOTldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTAwXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzEwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsxMDJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMTAzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzEwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMDVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTA2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzEwN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMDhdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTA5XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzExMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMTFdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTEyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzExM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxMTRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTE1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzExNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFsxMTddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTE4XSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzExOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMjBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTIxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzEyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMjNdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTI0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxMjZdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMTI3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxMjldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTMwXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzEzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMzJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTMzXSAqLworICAgICh4ZGNfQ2hhcikweDc2LCAgLyogWzEzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMzVdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMTM2XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzEzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxMzhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFsxMzldICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbMTQwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNDJdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbMTQzXSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzE0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNDVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMTQ2XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxNDhdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTQ5XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNTFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTUyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsxNTRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTU1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNTddICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMTU4XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNjBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMTYxXSAqLworICAgICh4ZGNfQ2hhcikweDQ2LCAgLyogWzE2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxNjNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTY0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFsxNjZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTY3XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzE2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNjldICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTcwXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxNzJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTczXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzE3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxNzVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTc2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxNzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTc5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxODFdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTgyXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzE4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxODRdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTg1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxODddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTg4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsxOTBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTkxXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxOTNdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMTk0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsxOTZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTk3XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzE5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxOTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFsyMDBdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbMjAxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyMDNdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbMjA0XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzIwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyMDZdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMjA3XSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzIwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyMDldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjEwXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzIxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyMTJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMjEzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFsyMTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjE2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzIxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMThdICovCisgICAgKHhkY19DaGFyKTB4NzEsICAvKiBbMjE5XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzIyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMjFdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjIyXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzIyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMjRdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMjI1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyMjddICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjI4XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzIyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsyMzBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjMxXSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzIzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyMzNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjM0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzIzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMzZdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjM3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzIzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMzldICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMjQwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzI0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyNDJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjQzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyNDVdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjQ2XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI0N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNDhdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMjQ5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNTFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjUyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyNTRdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjU1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NywgIC8qIFsyNTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjU4XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzI1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzI2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFsyNjFdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMjYyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzI2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNjRdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjY1XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyNjddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjY4XSAqLworICAgICh4ZGNfQ2hhcikweDQ2LCAgLyogWzI2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyNzBdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjcxXSAqLworICAgICh4ZGNfQ2hhcikweDQ5LCAgLyogWzI3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNzNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjc0XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFsyNzZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjc3XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzI3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFsyNzldICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjgwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzI4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyODJdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMjgzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsyODVdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMjg2XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzI4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg0NiwgIC8qIFsyODhdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjg5XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyOTFdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjkyXSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzI5M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyOTRdICovCisgICAgKHhkY19DaGFyKTB4M2UsICAvKiBbMjk1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyOTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjk4XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzI5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMDBdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzAxXSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzMwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFszMDNdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbMzA0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFszMDZdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbMzA3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzA4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzMwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMTBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzExXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMTNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMzE0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszMTZdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzE3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzMxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszMTldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzIwXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFszMjJdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMzIzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMjVdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzI2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszMjhdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzI5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMzMwXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzMzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMzJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzMzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszMzVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzM2XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzMzN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszMzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzM5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNDFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzQyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFszNDRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzQ1XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzM0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszNDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszNDhdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzQ5XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzM1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFszNTFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzUyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszNTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzU1XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzM1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszNTddICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMzU4XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzM1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFszNjBdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbMzYxXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzM2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNjNdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMzY0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszNjZdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbMzY3XSAqLworICAgICh4ZGNfQ2hhcikweDNkLCAgLyogWzM2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzMCwgIC8qIFszNjldICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbMzcwXSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzM3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFszNzJdICovCisgICAgKHhkY19DaGFyKTB4MmMsICAvKiBbMzczXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszNzVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzc2XSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzM3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszNzhdICovCisgICAgKHhkY19DaGFyKTB4M2QsICAvKiBbMzc5XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzM4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFszODFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszODJdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzgzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszODVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzg2XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzM4N10gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFszODhdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzg5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzM5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszOTFdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMzkyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFszOTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzk1XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzM5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszOTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzk4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzM5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MDBdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNDAxXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0MDNdICovCisgICAgKHhkY19DaGFyKTB4NzcsICAvKiBbNDA0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0MDZdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDA3XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0MDldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNDEwXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzQxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MTJdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbNDEzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0MTVdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDE2XSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzQxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs0MThdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDE5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDIwXSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzQyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0MjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDIzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MiwgIC8qIFs0MjVdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNDI2XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzQyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0MjhdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDI5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0MzFdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDMyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs0MzRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDM1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0MzddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDM4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs0NDBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDQxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQ0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0NDNdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNDQ0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NSwgIC8qIFs0NDZdICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNDQ3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs0NDldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNDUwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQ1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0NTJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDUzXSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzQ1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NTVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDU2XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzQ1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NThdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDU5XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQ2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs0NjFdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNDYyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQ2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0NjRdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDY1XSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzQ2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzQ2N10gKi8KKyAgICAoeGRjX0NoYXIpMHgzYywgIC8qIFs0NjhdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDY5XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NzFdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDcyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQ3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0NzRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDc1XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0NzddICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDc4XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs0ODBdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNDgxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs0ODNdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNDg0XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzQ4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs0ODZdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNDg3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQ4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNywgIC8qIFs0ODldICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNDkwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDkxXSAqLworICAgICh4ZGNfQ2hhcikweDNjLCAgLyogWzQ5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0OTNdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDk0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0OTZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDk3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQ5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0OTldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTAwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUwMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs1MDJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTAzXSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzUwNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1MDVdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNTA2XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzUwN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1MDhdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTA5XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzUxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs1MTFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1MTJdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTEzXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZSwgIC8qIFs1MTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTE2XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzUxN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MThdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTE5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzUyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1MjFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNTIyXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzUyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1MjRdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNTI1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzUyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1MjddICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTI4XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzUyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs1MzBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1MzFdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTMyXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzUzM10gKi8KKyAgICAoeGRjX0NoYXIpMHgzZSwgIC8qIFs1MzRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTM1XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzUzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1MzddICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNTM4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1NDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTQxXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzU0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1NDNdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNTQ0XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzU0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs1NDZdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbNTQ3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTQ4XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzU0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs1NTBdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNTUxXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzU1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU1M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1NTRdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNTU1XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzU1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1NTddICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNTU4XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzU1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NjBdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNTYxXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTYyXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzU2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1NjRdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTY1XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1NjddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTY4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTY5XSAqLworICAgICh4ZGNfQ2hhcikweDQzLCAgLyogWzU3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs1NzFdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTcyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU3M10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NCwgIC8qIFs1NzVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTc2XSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzU3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1NzhdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNTc5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzU4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1ODFdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNTgyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTgzXSAqLworICAgICh4ZGNfQ2hhcikweDQ0LCAgLyogWzU4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1ODVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTg2XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzU4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1ODhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1ODldICovCisgICAgKHhkY19DaGFyKTB4NDUsICAvKiBbNTkwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1OTJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNTkzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NywgIC8qIFs1OTZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTk3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1OTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MDBdICovCisgICAgKHhkY19DaGFyKTB4NDcsICAvKiBbNjAxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MDNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjA0XSAqLworICAgICh4ZGNfQ2hhcikweDRlLCAgLyogWzYwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs2MDZdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjA3XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzYwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0YywgIC8qIFs2MTBdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjExXSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzYxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs2MTRdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjE1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzYxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs2MTddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MThdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNjE5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs2MjFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjIyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzYyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2MjRdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MjVdICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbNjI2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzYyN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MjhdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNjI5XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzYzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MzFdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNjMyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjMzXSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzYzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MzVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjM2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzYzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2MzhdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNjM5XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzY0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2NDJdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNjQzXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzY0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2NDVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjQ2XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzY0N10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs2NDldICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNjUwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzY1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs2NTJdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNjUzXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzY1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1NCwgIC8qIFs2NTZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjU3XSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzY1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2NTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NjBdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNjYxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY2Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2NjNdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjY0XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzY2NV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs2NjZdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NjddICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNjY4XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzY2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs2NzBdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNjcxXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjcyXSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzY3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2NzRdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjc1XSAqLworICAgICh4ZGNfQ2hhcikweDZiLCAgLyogWzY3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2NzddICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNjc4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjc5XSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X25vZGVUYWIgeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BWzE5XSA9IHsKKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4MCwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgwLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzBdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDIyNSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMmEsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMzMsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyM2EsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbM10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyM2YsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNDgsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNGUsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbNl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNTQsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbN10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNTksICAvKiByaWdodCAqLworICAgIH0sICAvKiBbOF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNjIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbOV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNjYsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTBdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjZiLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzExXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI3MiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxMl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyN2EsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTNdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjgyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE0XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI4OSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxNV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyOTAsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTZdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDI5NSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyOWMsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTddICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMTEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MmExLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE4XSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAxMDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIG5hbWVVbmtub3duX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duIHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MgPSAie3Vua25vd24taW5zdGFuY2UtbmFtZX0iOworCisvKiBuYW1lRW1wdHlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5IHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DID0gIntlbXB0eS1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIG5hbWVTdGF0aWNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpYyB4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MgPSAie3N0YXRpYy1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIGlzTG9hZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkIHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MgPSAxOworCisvKiBjaGFyVGFiX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiKXhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSk7CisKKy8qIG5vZGVUYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X25vZGVUYWIpeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BKTsKKworLyogY2hhckNudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250IHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQyA9ICh4ZGNfSW50MTYpMHgyYTg7CisKKy8qIG5vZGVDbnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZUNudCB4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MgPSAoeGRjX0ludDE2KTB4MTM7CisKKy8qIHZpc2l0Um9wZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kpKTsKKworLyogdmlzaXRSb3BlRnhuMl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMikoKHhkY19GeG4peGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKSk7CisKKworLyoKKyAqID09PT09PT09IGhlbGxvLm1vZC5UYWxrZXIgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBwcmludF9fRSAqLworeGRjX1ZvaWQgaGVsbG9fbW9kX1RhbGtlcl9wcmludF9fRSggdm9pZCApIAoreworICAgIGhlbGxvX21vZF9UYWxrZXJfcHJpbnRfX0YoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBzZXRNYXNrX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FKCB4ZGNfU3RyaW5nIGNvbnRyb2wgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19GKGNvbnRyb2wpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGNoZWNrX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GKGViKTsKK30KKworLyogZ2V0RGF0YV9fRSAqLworeGRjX3J1bnRpbWVfRXJyb3JfRGF0YSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0YoZWIpOworfQorCisvKiBnZXRDb2RlX19FICovCit4ZGNfVUludDE2IHhkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19GKGViKTsKK30KKworLyogZ2V0SWRfX0UgKi8KK3hkY19ydW50aW1lX0Vycm9yX0lkIHhkY19ydW50aW1lX0Vycm9yX2dldElkX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0YoZWIpOworfQorCisvKiBnZXRNc2dfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19GKGViKTsKK30KKworLyogZ2V0U2l0ZV9fRSAqLworeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0YoZWIpOworfQorCisvKiBpbml0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19GKGViKTsKK30KKworLyogcHJpbnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRihlYik7Cit9CisKKy8qIHJhaXNlWF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIsIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1vZCwgeGRjX1N0cmluZyBmaWxlLCB4ZGNfSW50IGxpbmUsIHhkY19ydW50aW1lX0Vycm9yX0lkIGlkLCB4ZGNfSUFyZyBhcmcxLCB4ZGNfSUFyZyBhcmcyICkgCit7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GKGViLCBtb2QsIGZpbGUsIGxpbmUsIGlkLCBhcmcxLCBhcmcyKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGVudGVyU3lzdGVtX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YoKTsKK30KKworLyogbGVhdmVTeXN0ZW1fX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0UoIHhkY19JQXJnIGtleSApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0Yoa2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRihxdWFsKTsKK30KKworLyogZW50ZXJfX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUgX19pbnN0ICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GKCh2b2lkKilfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSBfX2luc3QsIHhkY19JQXJnIGtleSApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19GKCh2b2lkKilfX2luc3QsIGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBmcmVlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0YoKHZvaWQqKV9faW5zdCwgYmxvY2ssIHNpemUpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0LCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRigodm9pZCopX19pbnN0LCBzdGF0cyk7Cit9CisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YoKHZvaWQqKV9faW5zdCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogaXNCbG9ja2luZ19fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GKCh2b2lkKilfX2luc3QpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBkb1ByaW50X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRSggeGRjX3J1bnRpbWVfTG9nX0V2ZW50UmVjKiBldlJlYyApIAoreworICAgIHhkY19ydW50aW1lX0xvZ19kb1ByaW50X19GKGV2UmVjKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBjYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GKGhlYXAsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9mcmVlX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRihoZWFwLCBibG9jaywgc2l6ZSk7Cit9CisKKy8qIGdldFN0YXRzX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgCit7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19GKGhlYXAsIHN0YXRzKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19JbnQgcXVhbCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0YoaGVhcCwgcXVhbCk7Cit9CisKKy8qIGdldE1heERlZmF1bHRUeXBlQWxpZ25fX0UgKi8KK3hkY19TaXplVCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRigpOworfQorCisvKiB2YWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19DaGFyIHZhbHVlLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgdmFsdWUsIGViKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGV4ZWNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRigpOworfQorCisvKiBydHNEb25lX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19GKCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GKHN0cik7Cit9CisKKy8qIGV4aXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRihzdGF0KTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRigpOworfQorCisvKiBwdXRjaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRihjaCk7Cit9CisKKy8qIHJlYWR5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GKCk7Cit9CisKKy8qIE1vZHVsZV9zdGFydHVwICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSggeGRjX0ludCBzdGF0ZSApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRihzdGF0ZSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GKHN0cik7Cit9CisKKy8qIGF0ZXhpdF9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX0F0ZXhpdEhhbmRsZXIgaGFuZGxlciApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19GKGhhbmRsZXIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0Yoc3RhdCk7Cit9CisKKy8qIHB1dGNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19GKGNoKTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRSggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRigpOworfQorCisvKiBwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRSggeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7Cit9CisKKy8qIHByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIGFwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0UoIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKK30KKworLyogYXByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRihmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogc3ByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworfQorCisvKiBzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiBhc3ByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7Cit9CisKKy8qIGFzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIHZwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19GKGZtdCwgdmEpOworfQorCisvKiBhdnByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRihmbXQsIHZhKTsKK30KKworLyogdnNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GKGJ1ZiwgZm10LCB2YSk7Cit9CisKKy8qIGF2c3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRihidWYsIGZtdCwgdmEpOworfQorCisvKiBNb2R1bGVfc3RhcnR1cCAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UoIHhkY19JbnQgc3RhdGUgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0Yoc3RhdGUpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogY29yZFRleHRfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Db3JkQWRkciBjb3JkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0YoY29yZCk7Cit9CisKKy8qIHJvcGVUZXh0X19FICovCit4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRihyb3BlKTsKK30KKworLyogbWF0Y2hSb3BlX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLCB4ZGNfU3RyaW5nIHBhdCwgeGRjX0ludCogbGVucCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRihyb3BlLCBwYXQsIGxlbnApOworfQorCisvKiBwdXRMYWJfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0UoIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0YobGFiLCBidWZwLCBsZW4pOworfQorCisvKiBwdXRNb2RfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0UoIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1pZCwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRihtaWQsIGJ1ZnAsIGxlbik7Cit9CisKKy8qIHB1dFNpdGVfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19FKCB4ZGNfcnVudGltZV9UeXBlc19TaXRlKiBzaXRlLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRihzaXRlLCBidWZwLCBsZW4pOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5HYXRlTnVsbCAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1Mob2EsIG9zeiwgYWEsICh4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0cilwYSwgc2l6ZW9mKHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfUGFyYW1zKSwgZWIpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19kZWxldGVfX1MoIFB0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKGluc3RwKTsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit2b2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKGRzdCwgc3JjLCBwc3osIGlzeik7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlX19sYWJlbF9fUyggUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1Mob2JqLCBsYWIpOworfQorCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeShxdWFsKTsKK30KKworLyogZW50ZXJfX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9lbnRlcl9fRSggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCk7Cit9CisKKy8qIGxlYXZlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UoIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfSUFyZyBrZXkgKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0LCBrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuSGVhcFN0ZCAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TKG9hLCBvc3osIGFhLCAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0cilwYSwgc2l6ZW9mKHhkY19ydW50aW1lX0lIZWFwX1BhcmFtcyksIGViKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfX2RlbGV0ZV9fUyggUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIGNvbnN0IHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtc19faW5pdF9fUyhkc3QsIHNyYywgcHN6LCBpc3opOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGVfX2xhYmVsX19TKCBQdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TKG9iaiwgbGFiKTsKK30KKworLyogYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9hbGxvY19fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9JSGVhcF9hbGxvYygoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogZnJlZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9mcmVlX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkKK3sKKyAgICB4ZGNfcnVudGltZV9JSGVhcF9mcmVlKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0LCBibG9jaywgc2l6ZSk7Cit9CisKKy8qIGlzQmxvY2tpbmdfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0ICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSUhlYXBfaXNCbG9ja2luZygoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCk7Cit9CisKKy8qIGdldFN0YXRzX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKQoreworICAgIHhkY19ydW50aW1lX0lIZWFwX2dldFN0YXRzKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0LCBzdGF0cyk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuR2F0ZU51bGwgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKG9hLCBvc3osIGFhLCAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX1BhcmFtcyksIGViKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19kZWxldGVfX1MoIFB0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKGluc3RwKTsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit2b2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIGNvbnN0IHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoZHN0LCBzcmMsIHBzeiwgaXN6KTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZV9fbGFiZWxfX1MoIFB0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKG9iaiwgbGFiKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeShxdWFsKTsKK30KKworLyogZW50ZXJfX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0ICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXIoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19JQXJnIGtleSApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmUoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QsIGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5TeXNNaW4gKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCk7Cit9CisKKy8qIGFib3J0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0KHN0cik7Cit9CisKKy8qIGV4aXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfZXhpdF9fRSggeGRjX0ludCBzdGF0ICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdChzdGF0KTsKK30KKworLyogZmx1c2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfZmx1c2hfX0UoIHZvaWQgKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaCgpOworfQorCisvKiBwdXRjaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaChjaCk7Cit9CisKKy8qIHJlYWR5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3JlYWR5X19FKCB2b2lkICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5KCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIE9CSkVDVCBERVNDUklQVE9SID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCit0eXBlZGVmIHN0cnVjdCB7IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXyBzMDsgY2hhciBjOyB9IHhkY19ydW50aW1lX0dhdGVOdWxsX19fUzE7CitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MgPSB7CisgICAgKFB0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DLCAvKiBmeG5UYWIgKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAvKiBtb2RMaW5rICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX19fUzEpIC0gc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXyksIC8qIG9iakFsaWduICovCisgICAgMCwgLyogb2JqSGVhcCAqLworICAgIDAsIC8qIG9iak5hbWUgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fKSwgLyogb2JqU2l6ZSAqLworICAgIChQdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAvKiBwcm1zSW5pdCAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMpLCAvKiBwcm1zU2l6ZSAqLworfTsKKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIE9CSkVDVCBERVNDUklQVE9SID09PT09PT09CisgKi8KKworLyogT2JqZWN0X19ERVNDX19DICovCit0eXBlZGVmIHN0cnVjdCB7IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fIHMwOyBjaGFyIGM7IH0geGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1MxOworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MgPSB7CisgICAgKFB0cikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MsIC8qIGZ4blRhYiAqLworICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgLyogbW9kTGluayAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX19fUzEpIC0gc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fKSwgLyogb2JqQWxpZ24gKi8KKyAgICAwLCAvKiBvYmpIZWFwICovCisgICAgMCwgLyogb2JqTmFtZSAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyksIC8qIG9ialNpemUgKi8KKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAvKiBwcm1zSW5pdCAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyksIC8qIHBybXNTaXplICovCit9OworCisKKworLyoKKyAqID09PT09PT09IGhlbGxvLm1vZC5UYWxrZXIgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSAKK3sKKyAgICBsYWItPmhhbmRsZSA9IG9iajsKKyAgICBsYWItPm1vZElkID0gMzI3NzY7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbChsYWIsIDAsIDApOworCisgICAgcmV0dXJuIGxhYjsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgcHJtcywgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnblBhcmFtc19fSShwcm1zLCAoeGRjX1B0cikoc3JjID8gc3JjIDogJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DKSwgcHN6LCBpc3opOworfQorCisvKiBPYmplY3RfX2dldF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYSwgeGRjX0ludCBpICkgCit7CisgICAgaWYgKG9hKSB7CisgICAgICAgIHJldHVybiAoKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKilvYSkgKyBpOworICAgIH0KKworICAgIGlmICh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DID09IDApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18qKXhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MpICsgaTsKK30KKworLyogT2JqZWN0X19maXJzdF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rLm5leHQ7CisKKyAgICBpZiAoaUhkciAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuIGlIZHIgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX25leHRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKilvYmopIC0gMTsKKworICAgIGlmIChpSGRyLT5saW5rLm5leHQgIT0gKHhkY19ydW50aW1lX1R5cGVzX0xpbmsgKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKShpSGRyLT5saW5rLm5leHQpICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXMgcHJtczsKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QqIG9iajsKKworICAgIC8qIGNvbW1vbiBpbnN0YW5jZSBpbml0aWFsaXphdGlvbiAqLworICAgIG9iaiA9IHhkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsIG9hLCBvc3osICZwcm1zLCAoeGRjX1B0cilwYSwgcHN6LCBlYik7CisgICAgaWYgKG9iaiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBvYmo7Cit9CisKKy8qIE9iamVjdF9fZGVzdHJ1Y3RfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgb2JqLCBOVUxMLCAtMSwgVFJVRSk7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsICooKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCoqKWluc3RwKSwgTlVMTCwgLTEsIEZBTFNFKTsKKyAgICAqKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUqKWluc3RwKSA9IE5VTEw7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIAoreworICAgIGxhYi0+aGFuZGxlID0gb2JqOworICAgIGxhYi0+bW9kSWQgPSAzMjc4MDsKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsKGxhYiwgMCwgMCk7CisKKyAgICByZXR1cm4gbGFiOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIHBybXMsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kocHJtcywgKHhkY19QdHIpKHNyYyA/IHNyYyA6ICZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DKSwgcHN6LCBpc3opOworfQorCisvKiBPYmplY3RfX2dldF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hLCB4ZGNfSW50IGkgKSAKK3sKKyAgICBpZiAob2EpIHsKKyAgICAgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyopb2EpICsgaTsKKyAgICB9CisKKyAgICBpZiAoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DID09IDApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyopeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DKSArIGk7Cit9CisKKy8qIE9iamVjdF9fZmlyc3RfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmsubmV4dDsKKworICAgIGlmIChpSGRyICE9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiBpSGRyICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19uZXh0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKilvYmopIC0gMTsKKworICAgIGlmIChpSGRyLT5saW5rLm5leHQgIT0gKHhkY19ydW50aW1lX1R5cGVzX0xpbmsgKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopKGlIZHItPmxpbmsubmV4dCkgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyBwcm1zOworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0KiBvYmo7CisgICAgaW50IGlTdGF0OworCisgICAgLyogY29tbW9uIGluc3RhbmNlIGluaXRpYWxpemF0aW9uICovCisgICAgb2JqID0geGRjX3J1bnRpbWVfQ29yZV9jcmVhdGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYSwgb3N6LCAmcHJtcywgKHhkY19QdHIpcGEsIHBzeiwgZWIpOworICAgIGlmIChvYmogPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBtb2R1bGUtc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gKi8KKyAgICBpU3RhdCA9IHhkY19ydW50aW1lX0hlYXBTdGRfSW5zdGFuY2VfaW5pdF9fRihvYmosICZwcm1zLCBlYik7CisgICAgaWYgKHhkY19ydW50aW1lX0Vycm9yX2NoZWNrKGViKSkgeworICAgICAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsIG9iaiwgTlVMTCwgaVN0YXQsICh4ZGNfQm9vbCkob2EgIT0gTlVMTCkpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gb2JqOworfQorCisvKiBPYmplY3RfX2Rlc3RydWN0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYmosIE5VTEwsIDAsIFRSVUUpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgKigoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QqKilpbnN0cCksIE5VTEwsIDAsIEZBTFNFKTsKKyAgICAqKCh4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSopaW5zdHApID0gTlVMTDsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAxOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fRigpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX0YoKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSBoZWxsby5tb2QuVGFsa2VyIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRChoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKGhlbGxvX21vZF9UYWxrZXJfcHJpbnRfX0UpOworI2VuZGlmCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NNYXNrIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZU9iaiBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlUHJtcyBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9faWQgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyT2JqIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG44IGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jb3VudCBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX09iamVjdF9faGVhcCBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19zaXplb2YgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfT2JqZWN0X190YWJsZSBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX3RleHQgaGVsbG9fbW9kX1RhbGtlcl90ZXh0X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9jb3VudCBoZWxsb19tb2RfVGFsa2VyX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogaGVsbG9fbW9kX1RhbGtlcl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGhlbGxvX21vZF9UYWxrZXJfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgaGVsbG9fbW9kX1RhbGtlcl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBoZWxsb19tb2RfVGFsa2VyX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBoZWxsb19tb2RfVGFsa2VyX3ByaW50X19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkIHhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0Fzc2VydF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQXNzZXJ0X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Fzc2VydF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtcyB4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9Db3JlX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQ29yZV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Db3JlX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9EZWZhdWx0c19IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9EZWZhdWx0c19Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2UgeGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9EaWFnc19IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9EaWFnc19Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRSggeGRjX1N0cmluZyBjb250cm9sICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWMgeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnkgeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9wb2xpY3kgeGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX21heERlcHRoIHhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfRXJyb3JfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX2NoZWNrX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfRGF0YSogeGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19VSW50MTYgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX0Vycm9yX0lkIHhkY19ydW50aW1lX0Vycm9yX2dldElkX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1N0cmluZyB4ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19TaXRlKiB4ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIsIHhkY19ydW50aW1lX1R5cGVzX01vZHVsZUlkIG1vZCwgeGRjX1N0cmluZyBmaWxlLCB4ZGNfSW50IGxpbmUsIHhkY19ydW50aW1lX0Vycm9yX0lkIGlkLCB4ZGNfSUFyZyBhcmcxLCB4ZGNfSUFyZyBhcmcyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0dhdGVfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FKCB4ZGNfSUFyZyBrZXkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JQXJnIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSwgeGRjX0lBcmcga2V5ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeSB4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50IHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGUgeGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZWxldGUgeGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTG9nX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTG9nX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0UoIHhkY19ydW50aW1lX0xvZ19FdmVudFJlYyogZXZSZWMgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWFpbl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01haW5fUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlIHhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWVtb3J5X0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9mcmVlX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfSW50IHF1YWwgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1NpemVUIHhkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19DaGFyIHZhbHVlLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRSk7CisjZW5kaWYKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzIHhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4biB4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGwgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3RhcnR1cF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemUgeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4biB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmMgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TeXNNaW5fSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fUyk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRSk7CisjZW5kaWYKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmcgeGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuIHhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TeXN0ZW1fSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9BdGV4aXRIYW5kbGVyIGhhbmRsZXIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93biB4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHkgeGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWMgeGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZCB4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiIHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJDbnQgeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250IHhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1RleHRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9UZXh0X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1RleHRfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1N0cmluZyB4ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19FKCB4ZGNfcnVudGltZV9UZXh0X0NvcmRBZGRyIGNvcmQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1N0cmluZyB4ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUsIHhkY19TdHJpbmcgcGF0LCB4ZGNfSW50KiBsZW5wICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0UoIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbWlkLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19FKCB4ZGNfcnVudGltZV9UeXBlc19TaXRlKiBzaXRlLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IElOSVRJQUxJWkFUSU9OIEVOVFJZIFBPSU5UID09PT09PT09CisgKi8KKworZXh0ZXJuIGludCBfX3hkY19faW5pdCh2b2lkKTsKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSkKKyNlbmRpZgorI2VuZGlmCitfX0ZBUl9fIGludCAoKiB2b2xhdGlsZSBfX3hkY19faW5pdF9fYWRkcikodm9pZCkgPSAmX194ZGNfX2luaXQ7CisKKworLyoKKyAqID09PT09PT09IFBST0dSQU0gR0xPQkFMUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IENMSU5LIERJUkVDVElWRVMgPT09PT09PT0KKyAqLworCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSVN5c3RlbVN1cHBvcnRfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9faWRfX0MsICIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfdGV4dF9fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX3RleHRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX3RleHRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX3RleHRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX3RleHRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfY291bnRfX0MsICIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVwiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjY2MDI4NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnCkBAIC0wLDAgKzEsNzg2IEBACisvKgorICogID09PT09PT09IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcgPT09PT09PT0KKyAqICBUaGlzIGdlbmVyYXRlZCBjb25maWd1cmF0aW9uIHNjcmlwdCBydW5zIHRoZSB1c2VyJ3MgY29uZmlndXJhdGlvbiBzY3JpcHQKKyAqICB0aGUgY29udGV4dCBvZiBhIHNwZWNpZmljIHRhcmdldCBhbmQgcGxhdGZvcm0gaW4gb3JkZXIgdG8gZ2VuZXJhdGUKKyAqICBhbGwgdGhlIGZpbGVzIG5lY2Vzc2FyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZTsgZS5nLiwgbGlua2VyIGNvbW1hbmQKKyAqICBmaWxlcywgc3RhdGljIEMvQysrIGRhdGEgc3RydWN0dXJlcywgZXRjLgorICovCisKKy8qCisgKiAgPT09PT09PT0gX3J1bmVzY2FwZSA9PT09PT09PQorICogIFJlY3Vyc2l2ZSB1bmVzY2FwZSB0byBkZWNvZGUgc2VyaWFsaXplZCBzdHJpbmdzCisgKi8KK2Z1bmN0aW9uIF9ydW5lc2NhcGUob2JqKSB7CisgICAgZm9yICh2YXIgaSBpbiBvYmopIHsKKyAgICAgICAgaWYgKG9ialtpXSAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAodHlwZW9mIG9ialtpXSA9PSAnc3RyaW5nJykgeworICAgICAgICAgICAgICAgIG9ialtpXSA9IHVuZXNjYXBlKG9ialtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb2JqW2ldID09ICdvYmplY3QnKSB7CisgICAgICAgICAgICAgICAgX3J1bmVzY2FwZShvYmpbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvKgorICogID09PT09PT09IF9nZXRQbGF0Q2ZnID09PT09PT09CisgKi8KK2Z1bmN0aW9uIF9nZXRQbGF0Q2ZnKCkgeworICAgIHZhciB0bXAgPSB7fTsKKyAgICBfcnVuZXNjYXBlKHRtcCk7CisgICAgcmV0dXJuICh0bXApOworfQorLyoKKyAqICA9PT09PT09PSBfY2ZnaW5pdCA9PT09PT09PQorICovCitmdW5jdGlvbiBfY2ZnaW5pdCgpIHsKKyAgICB4ZGMubG9hZFBhY2thZ2UoJ3hkYy5zZXJ2aWNlcy5pbnRlcm4uY21kJyk7CisgICAgdmFyIHByb2cgPSB4ZGMub21bJ3hkYy5jZmcuUHJvZ3JhbSddOworCisgICAgLyogaW5pdGlhbGl6ZSBwcm9nIGF0dHJzIGZyb20gYnVpbGQgbW9kZWwgKi8KKyAgICB2YXIgYnVpbGQgPSB7CisgICAgICAgIHJlbGVhc2VzOiB7CisgICAgICAgICAgICAwOiB7CisgICAgICAgICAgICAgICAgbmFtZTogImhlbGxvX21vZCIsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICJkZWZhdWx0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb3RoZXJGaWxlczoge30KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgdGFyZ2V0OiB7CisgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQIiwKKyAgICAgICAgICAgIG5hbWU6ICJDNjRQIiwKKyAgICAgICAgICAgIHN1ZmZpeDogIjY0UCIsCisgICAgICAgICAgICBjb21wYXRpYmxlU3VmZml4ZXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2NvbXBhdGlibGVTdWZmaXhlcyIsCisgICAgICAgICAgICAgICAgMDogIjY0IiwKKyAgICAgICAgICAgICAgICAxOiAiNjIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgaXNhOiAiNjRQIiwKKyAgICAgICAgICAgIG1vZGVsOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9tb2RlbCIsCisgICAgICAgICAgICAgICAgZW5kaWFuOiAibGl0dGxlIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHJ0czogInRpLnRhcmdldHMucnRzNjAwMCIsCisgICAgICAgICAgICBiYXNlOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyIiwKKyAgICAgICAgICAgICAgICBuYW1lOiAiQzYyIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICI2MiIsCisgICAgICAgICAgICAgICAgY29tcGF0aWJsZVN1ZmZpeGVzOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9jb21wYXRpYmxlU3VmZml4ZXMiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgaXNhOiAiNjIiLAorICAgICAgICAgICAgICAgIG1vZGVsOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9tb2RlbCIsCisgICAgICAgICAgICAgICAgICAgIGVuZGlhbjogImxpdHRsZSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHJ0czogInRpLnRhcmdldHMucnRzNjAwMCIsCisgICAgICAgICAgICAgICAgcGxhdGZvcm06ICJ0aS5wbGF0Zm9ybXMuc2ltNnh4eCUzQVRNUzMyMEM2MjExIiwKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybXM6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBiaW5hcnlQYXJzZXI6ICJ0aS50YXJnZXRzLm9tZi5jb2YuQ29mZiIsCisgICAgICAgICAgICAgICAgZGVidWdHZW46IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2RlYnVnR2VuIiwKKyAgICAgICAgICAgICAgICAgICAgZXhlY1RlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfZXhlYy54ZHQiLAorICAgICAgICAgICAgICAgICAgICBleGVjUGF0dGVybjogIiUyNCUyOGNmZ0RpciUyOSUyNCUyOGNmZ05hbWUlMjkucGp0IiwKKyAgICAgICAgICAgICAgICAgICAgcGFja2FnZVRlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfcGFja2FnZS54ZHQiLAorICAgICAgICAgICAgICAgICAgICBwYWNrYWdlUGF0dGVybjogInBhY2thZ2UvJTI0JTI4cGtnTmFtZSUyOS5wanQiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBleHRlbnNpb25zOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zIiwKKyAgICAgICAgICAgICAgICAgICAgIi5zNjIiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLnM2MiciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLnM2MiIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuYXNtIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5hc20nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5hc20iLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmMiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmMnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImMiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuY3BwIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jcHAnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jcHAiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmN4eCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3h4JyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3h4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIi5DIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5DJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuQyIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuY2MiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmNjJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY2MiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB2ZXJzaW9uTWFwOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi92ZXJzaW9uTWFwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEM2eF80LjMyIjogIjElMkMwJTJDNC4zMiUyQzAiLAorICAgICAgICAgICAgICAgICAgICAiVE1TMzIwQzU1eF8yLjU2IjogIjElMkMwJTJDMi41NiUyQzAiLAorICAgICAgICAgICAgICAgICAgICAiVE1TMzIwQzU0eF8zLjgzIjogIjElMkMwJTJDMy44MyUyQzAiLAorICAgICAgICAgICAgICAgICAgICAiVE1TMzIwQzIwMDBfMy4wNyI6ICIxJTJDMCUyQzMuMDclMkMwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgYWxpZ25EaXJlY3RpdmVTdXBwb3J0ZWQ6IHRydWUsCisgICAgICAgICAgICAgICAgcHJvZmlsZXM6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzIiwKKyAgICAgICAgICAgICAgICAgICAgZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZnM6ICItRF9ERUJVR18lM0QxIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgcmVsZWFzZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLU8yIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBwcm9maWxlOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZ3AiCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGNvdmVyYWdlOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1ncCIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHdob2xlX3Byb2dyYW06IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbSciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1vZSUyMC1PMiUyMC1tbyIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgd2hvbGVfcHJvZ3JhbV9kZWJ1ZzogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLW9lJTIwLS1zeW1kZWJ1ZyUzQWR3YXJmJTIwLW1vIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBzZWN0TWFwOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zZWN0TWFwIiwKKyAgICAgICAgICAgICAgICAgICAgIi50ZXh0IjogImNvZGUiLAorICAgICAgICAgICAgICAgICAgICAiLnN0YWNrIjogInN0YWNrIiwKKyAgICAgICAgICAgICAgICAgICAgIi5ic3MiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuY2luaXQiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIucGluaXQiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuY29uc3QiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuZGF0YSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5zd2l0Y2giOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuc3lzbWVtIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmZhciI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5hcmdzIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmNpbyI6ICJkYXRhIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgc3RkSW5jbHVkZTogInRpL3RhcmdldHMvc3RkLmgiLAorICAgICAgICAgICAgICAgIHN0ZFR5cGVzOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcyIsCisgICAgICAgICAgICAgICAgICAgIHRfSUFyZzogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSUFyZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9DaGFyOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9DaGFyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0RvdWJsZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0Zsb2F0OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GbG9hdCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9GeG46IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0Z4biIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQ6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQ4OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0ludDE2OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQxNiIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQzMjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50NDA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDQwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0ludDY0OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ2NCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9Mb25nOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Mb25nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0xEb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xEb3VibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfTExvbmc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xMb25nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X1B0cjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfUHRyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X1Nob3J0OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9TaG9ydCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAyLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgYml0c1BlckNoYXI6IDgKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBwbGF0Zm9ybTogInRpLnBsYXRmb3Jtcy5zaW02NFB4eCIsCisgICAgICAgICAgICBwbGF0Zm9ybXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgMDogInRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBiaW5hcnlQYXJzZXI6ICJ0aS50YXJnZXRzLm9tZi5jb2YuQ29mZiIsCisgICAgICAgICAgICB2ZXJzaW9uOiAidGkudGFyZ2V0cy5DNjRQJTdCMSUyQzAlMkM2LjElMkM1IiwKKyAgICAgICAgICAgIGRlYnVnR2VuOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9kZWJ1Z0dlbiIsCisgICAgICAgICAgICAgICAgZXhlY1RlbXBsYXRlOiAidGkvdGFyZ2V0cy9jY3NfZXhlYy54ZHQiLAorICAgICAgICAgICAgICAgIGV4ZWNQYXR0ZXJuOiAiJTI0JTI4Y2ZnRGlyJTI5JTI0JTI4Y2ZnTmFtZSUyOS5wanQiLAorICAgICAgICAgICAgICAgIHBhY2thZ2VUZW1wbGF0ZTogInRpL3RhcmdldHMvY2NzX3BhY2thZ2UueGR0IiwKKyAgICAgICAgICAgICAgICBwYWNrYWdlUGF0dGVybjogInBhY2thZ2UvJTI0JTI4cGtnTmFtZSUyOS5wanQiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZXh0ZW5zaW9uczogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucyIsCisgICAgICAgICAgICAgICAgIi5zNjRQIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5zNjRQJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zNjRQIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5zNjQiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuczY0IiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5zNjIiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2MiciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuczYyIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5hc20iOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmFzbSciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYXNtIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYyIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY3BwIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jcHAnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNwcCIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY3h4IjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jeHgnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmN4eCIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuQyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuQyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuQyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY2MiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNjJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jYyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdmVyc2lvbk1hcDogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvdmVyc2lvbk1hcCIsCisgICAgICAgICAgICAgICAgIlRNUzMyMEM2eF80LjMyIjogIjElMkMwJTJDNC4zMiUyQzAiLAorICAgICAgICAgICAgICAgICJUTVMzMjBDNTV4XzIuNTYiOiAiMSUyQzAlMkMyLjU2JTJDMCIsCisgICAgICAgICAgICAgICAgIlRNUzMyMEM1NHhfMy44MyI6ICIxJTJDMCUyQzMuODMlMkMwIiwKKyAgICAgICAgICAgICAgICAiVE1TMzIwQzIwMDBfMy4wNyI6ICIxJTJDMCUyQzMuMDclMkMwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFsaWduRGlyZWN0aXZlU3VwcG9ydGVkOiB0cnVlLAorICAgICAgICAgICAgcm9vdERpcjogImQlM0EvdGkvYzYwMDAvYWxjIiwKKyAgICAgICAgICAgIHByb2ZpbGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcyIsCisgICAgICAgICAgICAgICAgZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZnM6ICItRF9ERUJVR18lM0QxIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHJlbGVhc2U6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItTzIiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBwcm9maWxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWdwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY292ZXJhZ2U6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1ncCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB3aG9sZV9wcm9ncmFtOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLW9lJTIwLU8yJTIwLW1vIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgd2hvbGVfcHJvZ3JhbV9kZWJ1ZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1vZSUyMC0tc3ltZGVidWclM0Fkd2FyZiUyMC1tbyIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgc2VjdE1hcDogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc2VjdE1hcCIsCisgICAgICAgICAgICAgICAgIi50ZXh0IjogImNvZGUiLAorICAgICAgICAgICAgICAgICIuc3RhY2siOiAic3RhY2siLAorICAgICAgICAgICAgICAgICIuYnNzIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuY2luaXQiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5waW5pdCI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmNvbnN0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuZGF0YSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLnN3aXRjaCI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLnN5c21lbSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmZhciI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmFyZ3MiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5jaW8iOiAiZGF0YSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzdGRJbmNsdWRlOiAidGkvdGFyZ2V0cy9zdGQuaCIsCisgICAgICAgICAgICBzdGRUeXBlczogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMiLAorICAgICAgICAgICAgICAgIHRfSUFyZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSUFyZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0NoYXI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0NoYXIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9Eb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0RvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0Zsb2F0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9GbG9hdCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0Z4bjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRnhuIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ4OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ4IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMSwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50MTY6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDE2IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50MzI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDMyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50NDA6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDQwIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50NjQ6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDY0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfTG9uZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xEb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xEb3VibGUiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9MTG9uZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfTExvbmciLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9QdHI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X1B0ciIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X1Nob3J0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9TaG9ydCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGJpdHNQZXJDaGFyOiA4LAorICAgICAgICAgICAgYmluRGlyOiAiJTI0JTI4cm9vdERpciUyOS9iaW4vIiwKKyAgICAgICAgICAgIHBhdGhQcmVmaXg6ICIiLAorICAgICAgICAgICAgYXI6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FyIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICJhcjZ4IiwKKyAgICAgICAgICAgICAgICBvcHRzOiAicnEiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXJPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9hck9wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIiIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGxuazogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvbG5rIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICJsbms2eCIsCisgICAgICAgICAgICAgICAgb3B0czogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBsbmtPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9sbmtPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICItdyUyMC1xJTIwLXUlMjBfY19pbnQwMCIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiLWMlMjAtbSUyMCUyNCUyOFhEQ0NGR0RJUiUyOS8lMjRALm1hcCUyMC1sJTIwJTI0JTI4cm9vdERpciUyOS9saWIvcnRzNjRwbHVzLmxpYiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjYzogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvY2MiLAorICAgICAgICAgICAgICAgIGNtZDogImNsNnglMjAtYyIsCisgICAgICAgICAgICAgICAgb3B0czogIi1tdjY0cCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjY09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2NjT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiLXFxJTIwLXBkc3cyMjUiLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjY0NvbmZpZ09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2NjQ29uZmlnT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiJTI0JTI4Y2NPcHRzLnByZWZpeCUyOSUyMC1tbyIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiJTI0JTI4Y2NPcHRzLnN1ZmZpeCUyOSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhc206IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FzbSIsCisgICAgICAgICAgICAgICAgY21kOiAiY2w2eCUyMC1jIiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiLW12NjRwIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFzbU9wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2FzbU9wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIi1xcSIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHZlcnM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3ZlcnMiLAorICAgICAgICAgICAgICAgIGNtZDogImNsNngiLAorICAgICAgICAgICAgICAgIG9wdHM6ICItdmVyc2lvbiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBpbmNsdWRlT3B0czogIi1JJTI0JTI4cm9vdERpciUyOS9pbmNsdWRlIgorICAgICAgICB9LAorICAgICAgICB0ZXN0OiB7fSwKKyAgICAgICAgY2ZnU2NyaXB0OiAicHJvZy5jZmciLAorICAgICAgICBwcm9maWxlOiAicmVsZWFzZSIKKyAgICB9OworICAgIGJ1aWxkLnRhcmdldC5maW5kU3VmZml4ID0gZnVuY3Rpb24gZmluZFN1ZmZpeChwa2cpIHsKKyAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRoZSBmdW5jdGlvbiBJVGFyZ2V0LmZpbmRTdWZmaXgoKSByZXF1aXJlcyBhbiAiICsgImFyZ3VtZW50Iik7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHN1ZmZpeE1hcCA9IHt9OworICAgICAgICBpZiAoImJ1aWxkIiBpbiBwa2cpIHsKKyAgICAgICAgICAgIHZhciBidWlsZCA9IHBrZy5idWlsZDsKKyAgICAgICAgICAgIGlmIChidWlsZC5saWJyYXJpZXMubGVuZ3RoICE9IDApIHsKKyAgICAgICAgICAgICAgICBpZiAoYnVpbGQubGliRGVzY1swXS5zdWZmaXggIT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGQubGliRGVzYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4TWFwW2J1aWxkLmxpYkRlc2NbaV0uc3VmZml4XSA9ICIiOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWlsZC5saWJEZXNjLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnVpbGQubGliRGVzY1tpXS50YXJnZXQgPT0gcHJvZy5idWlsZC50YXJnZXQuJG5hbWUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXhNYXBbcHJvZy5idWlsZC50YXJnZXQuc3VmZml4XSA9ICIiOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCJsZW5ndGgiIGluIHBrZykgeworICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGtnLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHN1ZmZpeE1hcFtwa2dbaV1dID0gIiI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkFuIGludmFsaWQgYXJndW1lbnQgdHlwZSBzdXBwbGllZCB0byAiICsgIklUYXJnZXQuZmluZFN1ZmZpeCgpIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNvbXBUYXJncyA9IFtdOworICAgICAgICBmb3IgKHZhciBwcm9wIGluIHRoaXMuY29tcGF0aWJsZVN1ZmZpeGVzKSB7CisgICAgICAgICAgICBjb21wVGFyZ3NbcHJvcF0gPSB0aGlzLmNvbXBhdGlibGVTdWZmaXhlc1twcm9wXTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5zdWZmaXggaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICByZXR1cm4gKHRoaXMuc3VmZml4KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcFRhcmdzLmxlbmd0aCA8IDEpIHsKKyAgICAgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wVGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChjb21wVGFyZ3NbaV0gaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChjb21wVGFyZ3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgfTsKKworICAgIGJ1aWxkLnRhcmdldC5zZWxlY3RTdWZmaXggPSBmdW5jdGlvbiBzZWxlY3RTdWZmaXgobGlzdCkgeworICAgICAgICB2YXIgc3VmZml4TWFwID0ge307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgc3VmZml4TWFwW2xpc3RbaV1dID0gIiI7CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNvbXBUYXJncyA9IFtdOworICAgICAgICBmb3IgKHZhciBwcm9wIGluIHRoaXMuY29tcGF0aWJsZVN1ZmZpeGVzKSB7CisgICAgICAgICAgICBjb21wVGFyZ3NbcHJvcF0gPSB0aGlzLmNvbXBhdGlibGVTdWZmaXhlc1twcm9wXTsKKyAgICAgICAgfQorICAgICAgICBpZiAodGhpcy5zdWZmaXggaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICByZXR1cm4gKHRoaXMuc3VmZml4KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcFRhcmdzLmxlbmd0aCA8IDEpIHsKKyAgICAgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgICAgIH0KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb21wVGFyZ3MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChjb21wVGFyZ3NbaV0gaW4gc3VmZml4TWFwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIChjb21wVGFyZ3NbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgfTsKKworICAgIGJ1aWxkLnRhcmdldC5hc21OYW1lID0gZnVuY3Rpb24gYXNtTmFtZShjbmFtZSkgeworICAgICAgICByZXR1cm4gKCJfIiArIGNuYW1lKTsKKyAgICB9OworCisgICAgX3J1bmVzY2FwZShidWlsZCk7CisgICAgYnVpbGQuY2ZnQXJncyA9IHVuZGVmaW5lZDsKKyAgICBwcm9nLmJ1aWxkID0gYnVpbGQ7CisgICAgCisgICAgcHJvZy5uYW1lID0gInByb2cueDY0UCI7CisKKyAgICBwcm9nLmVuZGlhbiA9IHByb2cuYnVpbGQudGFyZ2V0Lm1vZGVsLmVuZGlhbjsKKworICAgIC8qIHVzZSB0aGUgcGxhdGZvcm0gcGFja2FnZSdzIFBsYXRmb3JtIG1vZHVsZSAqLworICAgIHZhciBQbGF0Zm9ybSA9IHhkYy51c2VNb2R1bGUoInRpLnBsYXRmb3Jtcy5zaW02NFB4eC5QbGF0Zm9ybSIpOworICAgIHZhciBwbGF0UGFyYW1zID0gX2dldFBsYXRDZmcoKTsKKyAgICBmb3IgKHZhciBwcm9wIGluIHBsYXRQYXJhbXMpIHsKKyAgICAgICAgaWYgKCEocHJvcCBpbiBQbGF0Zm9ybS5QQVJBTVMpKSB7CisgICAgICAgICAgICBkZWxldGUgcGxhdFBhcmFtc1twcm9wXTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcm9nLnBsYXRmb3JtTmFtZSA9ICJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiOworICAgIHByb2cucGxhdGZvcm0gPSBQbGF0Zm9ybS5jcmVhdGUoIiIsIF9nZXRQbGF0Q2ZnKCksIHBsYXRQYXJhbXMpOworICAgIC8qIHJlY29yZCB0aGUgZXhlY3V0YWJsZSdzIHBhY2thZ2UgbmFtZSAqLworICAgIHByb2cuYnVpbGRQYWNrYWdlID0gImhlbGxvLm1vZCI7CisKKyAgICAvKiByZWNvcmQgYnVpbGQtbW9kZWwgaW5mb3JtYXRpb24gcmVxdWlyZWQgZHVyaW5nIGNvbmZpZyBnZW5lcmF0aW9uICovCisgICAgcHJvZy4kJGJpbmQoIiQkaXNhc20iLCAwKTsKKyAgICBwcm9nLiQkYmluZCgiJCRpc3JvbSIsIDApOworICAgIHByb2cuJCRiaW5kKCIkJGdlbnRhYiIsIFsKKyAgICBdKTsKKyAgICAKKyAgICAvKiBiaW5kIHByb2cgdG8gYW4gYXBwcm9wcmlhdGUgZXhlY3V0aW9uIGNvbnRleHQgKi8KKyAgICBwcm9nLmNwdSA9IHByb2cucGxhdGZvcm0uZ2V0RXhlQ29udGV4dChwcm9nKTsKKworICAgIC8qIGltcG9ydCB0aGUgdGFyZ2V0J3MgcnVuLXRpbWUgc3VwcG9ydCBwa2cgKi8KKyAgICB4ZGMubG9hZFBhY2thZ2UoInRpLnRhcmdldHMucnRzNjAwMCIpOworfQorICAgIAorLyogZnVuY3Rpb24gdG8gaW1wb3J0IHRoZSBjZmcgc2NyaXB0J3MgcGFja2FnZSAqLworZnVuY3Rpb24gX3VzZXJzY3JpcHQoJCRsZWdhY3ksIHNjcmlwdCkgeworICAgIHZhciBob21lOworICAgIHZhciBzcGF0aDsKKyAgICAvKiBpbXBvcnQgdGhlIGV4ZWN1dGFibGUncyBwYWNrYWdlICovCisgICAgaG9tZSA9IHhkYy5sb2FkUGFja2FnZSgiaGVsbG8ubW9kIik7CisgICAgc3BhdGggPSAnLic7CisgICAgCisgICAgeGRjLm9tLiQkYmluZCgnJGhvbWVwa2cnLCBob21lKTsKKworICAgIGlmIChzY3JpcHQgIT0gbnVsbCkgeworICAgICAgICB1dGlscy5ldmFsdWF0ZVNjcmlwdChzY3JpcHQpOworICAgIH0KKyAgICBlbHNlIHsgCisgICAgICAgIC8qIGxvYWQgJiBydW4gcHJvZ3JhbSBjZmcgc2NyaXB0IGFuZCBtb25pdG9yIGFsbCBsb2FkZWQgZmlsZXMgKi8KKyAgICAgICAgX3J1bkNmZygicHJvZy5jZmciLCBzcGF0aCwgInBhY2thZ2UvY2ZnL3Byb2dfeDY0UCIsICAKKyAgICAgICAgICAgICAgICAgZmFsc2UsIAorICAgICAgICAgICAgICAgICBmYWxzZSwKKyAgICAgICAgICAgICAgICAgX2dldFBsYXRDZmcoKSk7CisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCisKKyAgICAvKgorICAgICAqICA9PT09PT09PSBfcnVuQ2ZnID09PT09PT09CisgICAgICogIFJ1biBhIHVzZXIgc3VwcGxpZWQgY29uZmlndXJhdGlvbiBzY3JpcHQgYW5kIHByZXZlbnQgdXNlcidzIHNjcmlwdCBmcm9tCisgICAgICogIG92ZXJ3cml0aW5nIHRoZSBnbG9iYWwgdmFyaWFibGUgcHJvZy4KKyAgICAgKi8KKyAgICBmdW5jdGlvbiBfcnVuQ2ZnKGNmZ1NjcmlwdCwgcGF0aCwgcHJvZ3JhbU5hbWUsIGxlZ2FjeVRjZiwgbGVnYWN5Q2ZnLAorICAgICAgICBwbGF0UGFyYW1zKQorICAgIHsKKyAgICAgICAgaWYgKGxlZ2FjeVRjZikgeworICAgICAgICAgICAgLyogc2F2ZSBjdXJyZW50IGdsb2JhbCB2YXJpYWJsZXMgKi8KKyAgICAgICAgICAgIHZhciAkc2F2ZSA9IHtwcm9nOiB1dGlscy5nbG9iYWwucHJvZywgUHJvZ3JhbTogUHJvZ3JhbX07CisgICAgCisgICAgICAgICAgICAvKiBpbml0aWFsaXplIGdsb2JhbCB2YXJpYWJsZXMgZm9yIGxlZ2FjeSBjb25maWcgc2NyaXB0cyAqLworICAgICAgICAgICAgZW52aXJvbm1lbnRbImNvbmZpZy5wcm9ncmFtTmFtZSJdID0gcHJvZ3JhbU5hbWU7CisgICAgICAgICAgICBlbnZpcm9ubWVudFsiY29uZmlnLnBsYXRmb3JtIl0gPSBQcm9ncmFtLnBsYXRmb3JtTmFtZTsKKyAgICAgICAgICAgIHV0aWxzLnNlZWRQYXRoID0gZW52aXJvbm1lbnRbImNvbmZpZy5pbXBvcnRQYXRoIl07CisgICAgICAgICAgICB1dGlscy5sb2FkUGxhdGZvcm0ucGFyYW1zID0gcGxhdFBhcmFtczsKKyAgICAgICAgICAgIFByb2dyYW0gPSAkJGxlZ2FjeS5Qcm9ncmFtOyAgICAgLyogZGVmaW5lZCBpbiBjZmcudGNpICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIHJ1biBsZWdhY3kgY29uZmlnIHNjcmlwdCB3aXRoIHByb2cgPT0gdG8gUlRTQyBQcm9ncmFtOyB0aGlzCisgICAgICAgICAgICAgKiBhbGxvd3MgbGVnYWN5IHNjcmlwdCB0byByZWFkIGJ1aWxkIGF0cmlidXRlcyBmcm9tIFJUU0MgbW9kZWwKKyAgICAgICAgICAgICAqIGJlZm9yZSByZS1jcmVhdGluZyB0aGUgcHJvZyBvYmplY3QKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgdXRpbHMubG9hZENhcHN1bGUoY2ZnU2NyaXB0LCBmYWxzZSwgcGF0aCk7ICAKKyAgICAKKyAgICAgICAgICAgIC8qIHJlc3RvcmUgZ2xvYmFsIHZhcmlhYmxlczsgbm93IHByb2cgPT0gVENPTSBwcm9nIGJlY2F1c2UKKyAgICAgICAgICAgICAqIHV0aWxzLmxvYWRQbGF0Zm9ybSgpIGNyZWF0ZXMgdGhlIFRDT00gcHJvZyBvYmplY3QuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICQkbGVnYWN5LnByb2cgPSB1dGlscy5nbG9iYWwucHJvZzsgIC8qIGluIGNhc2UgWERDIHdhbnRzIGl0ICovCisgICAgICAgICAgICB1dGlscy5nbG9iYWwucHJvZyA9ICRzYXZlLnByb2c7CisgICAgICAgICAgICBQcm9ncmFtID0gJHNhdmUuUHJvZ3JhbTsKKyAgICAKKyAgICAgICAgICAgIC8qIHJ1biBYREMgY29uZmlndXJhdGlvbiBzY3JpcHQsIGlmIGl0IGV4aXN0cyAqLworICAgICAgICAgICAgaWYgKGxlZ2FjeUNmZykgeworICAgICAgICAgICAgICAgIHV0aWxzLmltcG9ydEZpbGUoY2ZnU2NyaXB0LnJlcGxhY2UoL1wudGNmLywgIi5jZmciKSwgcGF0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB1dGlscy5sb2FkQ2Fwc3VsZShjZmdTY3JpcHQsIGZhbHNlLCBwYXRoKTsKKyAgICAgICAgfQorICAgIH0KK30KKyAgICAKK2Z1bmN0aW9uIF9wb3N0aW5pdCgpIHsKKworICAgIHZhciBjb3V0ID0gbnVsbDsKKworICAgIHZhciBwcm9nID0geGRjLm9tWyd4ZGMuY2ZnLlByb2dyYW0nXTsKKyAgICAvKiBnZXQgdGhlIGV4ZWMgY29tbWFuZCBmb3IgdGhpcyBleGVjdXRhYmxlICovCisgICAgaWYgKHByb2cuZXhlY0NtZCA9PSBudWxsKSB7CisgICAgICAgIHByb2cuZXhlY0NtZCA9IHByb2cucGxhdGZvcm0uZ2V0RXhlY0NtZChwcm9nLAorICAgICAgICAgICAgeGRjLm9tWyJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiXS5wYWNrYWdlQmFzZSk7CisgICAgfQorICAgIHZhciBjb3V0ID0gImRlZmluZSBFWEVDLiIgKyBwcm9nLm5hbWUgKyAnXG5cbic7CisgICAgY291dCArPSBwcm9nLmV4ZWNDbWQ7CisgICAgY291dCArPSAiXG5lbmRlZlxuXG4iOworCisgICAgdXRpbHMuZ2VuRGVwKCJwYWNrYWdlL2NmZy9wcm9nX3g2NFAiLCAiaGVsbG8ubW9kIiwgdXRpbHMubG9hZGVkRmlsZXMsIGNvdXQsIG51bGwpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcuZG90IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcuZG90Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhNmJkZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZy5kb3QKQEAgLTAsMCArMSwxNjggQEAKK2RpZ3JhcGggY29uZmlndXJhdGlvbiB7CisgICAgc2l6ZT0iNy41LDEwIjsKKyAgICByYW5rZGlyPUxSOworICAgIHJhbmtzZXA9Ii41MCBlcXVhbGx5IjsKKyAgICBjb25jZW50cmF0ZT10cnVlOworICAgIGNvbXBvdW5kPXRydWU7CisgICAgbGFiZWw9IlxuQ29uZmlndXJhdGlvbiBmb3IgaGVsbG8ubW9kL3Byb2cueDY0UCIKKyAgbm9kZSBbZm9udD1IZWx2ZXRpY2EsIGZvbnRzaXplPTE0LCBmb250Y29sb3I9YmxhY2tdOyAgc3ViZ3JhcGggY2x1c3RlcjAge2xhYmVsPSIiOyBfX2NmZyBbbGFiZWw9InByb2cuY2ZnIiwgY29sb3I9d2hpdGUsIGZvbnRjb2xvcj1ibHVlXTsKKyAgICBub2RlIFtmb250PUhlbHZldGljYSwgZm9udHNpemU9MTBdOyAgICBzdWJncmFwaCBjbHVzdGVyMSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGNcbjEsIDEsIDEsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIyIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19jb3JldmVyc19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5jb3JldmVyc1xuMTYsIDAsIDEsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIzIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuZ2xvYmFsXG4xLCAwLCAxIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfQ2xvY2sgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQ2xvY2siXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9fdG9wIC0+IHhkY19zZXJ2aWNlc19nbG9iYWxfQ2xvY2tbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrIC0+IHhkY19zZXJ2aWNlc19nbG9iYWxfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI0IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zaGVsZl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zaGVsZlxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjUgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX3NwZWNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuc3BlY1xuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjYgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2ludGVybl94c3JfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuaW50ZXJuLnhzclxuMSwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjcgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2ludGVybl9nZW5fX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmdlblxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjggeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2ludGVybl9jbWRfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmNtZFxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjkgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3Jvdl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5yb3ZcbjEsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19yb3ZfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEwIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHRpX2NhdGFsb2dfYzYwMDBfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ0aS5jYXRhbG9nLmM2MDAwXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB0aV9jYXRhbG9nX2M2MDAwX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHRpX2NhdGFsb2dfYzYwMDBfVE1TMzIwQ1RDSTY0ODIgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iVE1TMzIwQ1RDSTY0ODIiXTsKKyAgICAgICAgdGlfY2F0YWxvZ19jNjAwMF9fdG9wIC0+IHRpX2NhdGFsb2dfYzYwMDBfVE1TMzIwQ1RDSTY0ODJbc3R5bGU9aW52aXNdOworICAgICAgICB0aV9jYXRhbG9nX2M2MDAwX1RNUzMyMENUQ0k2NDgyIC0+IHRpX2NhdGFsb2dfYzYwMDBfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfcGxhdGZvcm1fX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucGxhdGZvcm1cbjEsIDAsIDEsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19wbGF0Zm9ybV9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcGxhdGZvcm1fRXhlQ29udGV4dCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJFeGVDb250ZXh0Il07CisgICAgICAgIHhkY19wbGF0Zm9ybV9fdG9wIC0+IHhkY19wbGF0Zm9ybV9FeGVDb250ZXh0W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX0V4ZUNvbnRleHQgLT4geGRjX3BsYXRmb3JtX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcGxhdGZvcm1fVXRpbHMgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iVXRpbHMiXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX190b3AgLT4geGRjX3BsYXRmb3JtX1V0aWxzW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX1V0aWxzIC0+IHhkY19wbGF0Zm9ybV9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEyIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19jZmdfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuY2ZnXG4xLCAwLCAyLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfY2ZnX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfUHJvZ3JhbSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJQcm9ncmFtIl07CisgICAgICAgIHhkY19jZmdfX3RvcCAtPiB4ZGNfY2ZnX1Byb2dyYW1bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX1Byb2dyYW0gLT4geGRjX2NmZ19fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19NYWluIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW4iXTsKKyAgICAgICAgeGRjX2NmZ19fdG9wIC0+IHhkY19jZmdfTWFpbltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfTWFpbiAtPiB4ZGNfY2ZnX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTMgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgdGlfcGxhdGZvcm1zX3NpbTY0UHh4X190b3AgW3NoYXBlPWJveCxsYWJlbD0idGkucGxhdGZvcm1zLnNpbTY0UHh4XG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgdGlfcGxhdGZvcm1zX3NpbTY0UHh4X1BsYXRmb3JtIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlBsYXRmb3JtIl07CisgICAgICAgIHRpX3BsYXRmb3Jtc19zaW02NFB4eF9fdG9wIC0+IHRpX3BsYXRmb3Jtc19zaW02NFB4eF9QbGF0Zm9ybVtzdHlsZT1pbnZpc107CisgICAgICAgIHRpX3BsYXRmb3Jtc19zaW02NFB4eF9QbGF0Zm9ybSAtPiB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5ydW50aW1lXG4yLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcnVudGltZV9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Bc3NlcnQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQXNzZXJ0Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfQXNzZXJ0W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQXNzZXJ0IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Db3JlIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkNvcmUiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9Db3JlW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQ29yZSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGVmYXVsdHMgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRGVmYXVsdHMiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9EZWZhdWx0c1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RlZmF1bHRzIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EaWFncyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJEaWFncyJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0RpYWdzW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGlhZ3MgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Vycm9yIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkVycm9yIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfRXJyb3Jbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9FcnJvciAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJHYXRlIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfR2F0ZVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGUgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkdhdGVOdWxsIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfR2F0ZU51bGxbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTG9nIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkxvZyJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0xvZ1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0xvZyAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNYWluIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWFpbltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW4gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01lbW9yeSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNZW1vcnkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NZW1vcnlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iSGVhcFN0ZCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0hlYXBTdGRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TdGFydHVwIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN0YXJ0dXAiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TdGFydHVwW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3RhcnR1cCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c3RlbSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N5c3RlbVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzTWluIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c01pbiJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N5c01pbltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c01pbiAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfVGV4dCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJUZXh0Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfVGV4dFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1RleHQgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNYWluX01vZHVsZV9HYXRlUHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWVtb3J5X0hlYXBQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c3RlbV9TdXBwb3J0UHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzdGVtX01vZHVsZV9HYXRlUHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTUgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgdGlfdGFyZ2V0c19ydHM2MDAwX190b3AgW3NoYXBlPWJveCxsYWJlbD0idGkudGFyZ2V0cy5ydHM2MDAwXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTYgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgaGVsbG9fbW9kX190b3AgW3NoYXBlPWJveCxsYWJlbD0iaGVsbG8ubW9kXG4iLCBjb2xvcj13aGl0ZV07CisgICAgICAgIGhlbGxvX21vZF9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICBoZWxsb19tb2RfVGFsa2VyIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlRhbGtlciJdOworICAgICAgICBoZWxsb19tb2RfX3RvcCAtPiBoZWxsb19tb2RfVGFsa2VyW3N0eWxlPWludmlzXTsKKyAgICAgICAgaGVsbG9fbW9kX1RhbGtlciAtPiBoZWxsb19tb2RfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICB9CisgIG5vZGUgW2ZvbnQ9SGVsdmV0aWNhLCBmb250c2l6ZT0xMF07CisgICAgdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMF8xNiBbc2hhcGU9cmVjb3JkLGxhYmVsPSJ0aS50YXJnZXRzLkM2NFB8MSwwLDYuMCwxNiIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICB0aV90YXJnZXRzX3J0czYwMDBfX3RvcCAtPiB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18wXzE2IFtsdGFpbD1jbHVzdGVyMTVdOworICAgIHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzFfNSBbc2hhcGU9cmVjb3JkLGxhYmVsPSJ0aS50YXJnZXRzLkM2NFB8MSwwLDYuMSw1IixzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZXldOworICAgIGhlbGxvX21vZF9fYm90IC0+IHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzFfNSBbbHRhaWw9Y2x1c3RlcjE2XTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmI0NWYxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcueG1sCkBAIC0wLDAgKzEsMjI4MCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIFRoaXMgZmlsZSBjb25mb3JtcyB0byB0aGUgRFREIHhkYy9jZmcvY29uZmlndXJhdGlvbi5kdGQgLS0+Cis8Y29uZmlndXJhdGlvbiBuYW1lPSJoZWxsby5tb2QvcHJvZy54NjRQIgorICAgIHBsYXRmb3JtTmFtZT0idGkucGxhdGZvcm1zLnNpbTY0UHh4IgorICAgIGdsb2JhbFNlY3Rpb249Im51bGwiCisgICAgc3lzU3RhY2s9IjQwOTYiCisgICAgc3RhY2s9IjQwOTYiCisgICAgaGVhcD0iNDA5NiIKKyAgICBhcmdTaXplPSI1MTIiCisgICAgZXhlY0NtZD0iRSUzQS9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1dpbmRvd3Mva2VsdmluJTIwLXF1aWV0JTIwLW1lbV9pZ25vcmUlMjBEJTNBJTVDd29yayU1Q3R1dG9yaWFsJTVDcmVwbyU1Q2hlbGxvJTVDbW9kJTVDcHJvZy54NjRQIgorICAgIGVuZGlhbj0ibGl0dGxlIgorICAgIGNvZGVNb2RlbD0ibnVsbCIKKyAgICBkYXRhTW9kZWw9Im51bGwiPgorPHRhcmdldHM+CisgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsNi4wLDE2IgorICAgICAgICAgICAgdXNlZGJ5PSJ0aS50YXJnZXRzLnJ0czYwMDAiLz4KKyAgICA8dGFyZ2V0IG5hbWU9InRpLnRhcmdldHMuQzY0UCIKKyAgICAgICAgICAgIHZlcnNpb249IjEsMCw2LjEsNSIKKyAgICAgICAgICAgIHVzZWRieT0iaGVsbG8ubW9kIi8+Cis8L3RhcmdldHM+Cis8aW1wb3J0cz4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMiIHZlcnNpb249IjEsIDEsIDEsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuY29yZXZlcnMiIHZlcnNpb249IjE2LCAwLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmdsb2JhbCIgdmVyc2lvbj0iMSwgMCwgMSIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnNlcnZpY2VzLmdsb2JhbC5DbG9jayIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJlbmFibGUiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2hvd01lbW9yeSIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwuVHJhY2UiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zaGVsZiIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5zcGVjIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmludGVybi54c3IiIHZlcnNpb249IjEsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmdlbiIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5pbnRlcm4uY21kIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnJvdiIgdmVyc2lvbj0iMSwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5Nb2RlbCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlByb2dyYW0iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5TdHJ1Y3R1cmVEZWNvZGVyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuU3RhdGVSZWFkZXIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5WaWV3SW5mbyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0idGkuY2F0YWxvZy5jNjAwMCIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQ1MiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0OCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUTkVUVjI2ODUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQyOCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzExIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MTFCIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MTIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcxMyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjExIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMTFCIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDEyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDE1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxOCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDIxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MjQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDREE3MDAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDREE3MDUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDREE3MDciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDREE3MTAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDREE3MDBTSU0iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDQyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQ0NCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0NDYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEUkE0NDciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcyMiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzI2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MjciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE00MTUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE00MjAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE00MjEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE00MjUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE00MjYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDMxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQzMyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MzUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDM3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ0MSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0NDMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDQ2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwRE0zNTciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDY3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSSTMwMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDgyIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNhY2hlU2l6ZUwxIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjcwayUyNyUyQyUyMDB4MCU1RCUyQyUwQSU1QiUyNzRrJTI3JTJDJTIwMHgxMDAwJTVEJTJDJTBBJTVCJTI3OGslMjclMkMlMjAweDIwMDAlNUQlMkMlMEElNUIlMjcxNmslMjclMkMlMjAweDQwMDAlNUQlMkMlMEElNUIlMjczMmslMjclMkMlMjAweDgwMDAlNUQlMEElNUQiPjxtYXAgaWQ9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODIvY2FjaGVTaXplTDEiIGxlbmd0aD0iNSI+DQorICA8ZW50cnkga2V5PSIwayI+MHgwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjRrIj4weDEwMDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iOGsiPjB4MjAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSIxNmsiPjB4NDAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSIzMmsiPjB4ODAwMDwvZW50cnk+DQorPC9tYXA+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjYWNoZVNpemVMMiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3MGslMjclMkMlMjAweDAlNUQlMkMlMEElNUIlMjczMmslMjclMkMlMjAweDgwMDAlNUQlMkMlMEElNUIlMjc2NGslMjclMkMlMjAweDEwMDAwJTVEJTJDJTBBJTVCJTI3MTI4ayUyNyUyQyUyMDB4MjAwMDAlNUQlMkMlMEElNUIlMjcyNTZrJTI3JTJDJTIwMHg0MDAwMCU1RCUwQSU1RCI+PG1hcCBpZD0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4Mi9jYWNoZVNpemVMMiIgbGVuZ3RoPSI1Ij4NCisgIDxlbnRyeSBrZXk9IjBrIj4weDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iMzJrIj4weDgwMDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iNjRrIj4weDEwMDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjEyOGsiPjB4MjAwMDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iMjU2ayI+MHg0MDAwMDwvZW50cnk+DQorPC9tYXA+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDg4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQ1NCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDU1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzI0MzAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDMzQzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzAxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMDEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwMiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjAzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMDNCIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMDQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0MDYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDAyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQwNCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0MTQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDE2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0Y3NjE5OTAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMjQzMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAyNTMwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDI1MzEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMzQyNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAzNTI1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDM1MzAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgwNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODA3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MDgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgxMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODI4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MzAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQ3MiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDc0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3NDciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjc0NSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVBMMTM3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NTciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5wbGF0Zm9ybSIgdmVyc2lvbj0iMSwgMCwgMSwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnBsYXRmb3JtLkV4ZUNvbnRleHQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucGxhdGZvcm0uVXRpbHMiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLmNmZyIgdmVyc2lvbj0iMSwgMCwgMiwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLmNmZy5Qcm9ncmFtIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImdlbiIgdHlwZT0ieGRjLmNmZy5Qcm9ncmFtLkdlbmVyYXRpb25PcHRpb25zIiB2YWx1ZT0iJTdCZGVidWdnZXJGaWxlcyUzQSUyMHVuZGVmaW5lZCU3RCI+PHN0cnVjdCBpZD0ieGRjLmNmZy5Qcm9ncmFtL2dlbiI+DQorICA8ZmllbGQgbmFtZT0iZGVidWdnZXJGaWxlcyI+dW5kZWZpbmVkPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Imdsb2JhbFNlY3Rpb24iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN5c1N0YWNrIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzdGFjayIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iaGVhcCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYXJnU2l6ZSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNTEyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleGVjQ21kIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJFJTNBL3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9wbGF0Zm9ybXMvc2ltNjRQeHgvV2luZG93cy9rZWx2aW4lMjAtcXVpZXQlMjAtbWVtX2lnbm9yZSUyMEQlM0ElNUN3b3JrJTVDdHV0b3JpYWwlNUNyZXBvJTVDaGVsbG8lNUNtb2QlNUNwcm9nLng2NFAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxpbmtUZW1wbGF0ZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWFpbiIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZWN0TWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3lzdGVtIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWUiIHR5cGU9InN0cmluZyIgdmFsdWU9InByb2cueDY0UCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVpbGRQYWNrYWdlIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJoZWxsby5tb2QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImVuZGlhbiIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0ibGl0dGxlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb2RlTW9kZWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImRhdGFNb2RlbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVpbGQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1Qm9iamVjdCUyME9iamVjdCU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY3B1IiB0eXBlPSJ4ZGMucGxhdGZvcm0uSUV4ZUNvbnRleHQuSW5zdGFuY2UiIHZhbHVlPSIlN0JpZCUzQSUyMDAlMkMlMjBjYXRhbG9nTmFtZSUzQSUyMHRpLmNhdGFsb2cuYzYwMDAlMkMlMjBkZXZpY2VOYW1lJTNBJTIwVE1TMzIwQ1RDSTY0ODIlMkMlMjByZXZpc2lvbiUzQSUyMCUyQyUyMGNsb2NrUmF0ZSUzQSUyMDB4M2U4JTJDJTIwYm9hcmQlM0ElMjAlN0JpZCUzQSUyMDAlMkMlMjBib2FyZE5hbWUlM0ElMjBzaW02NFB4eCUyQyUyMGJvYXJkRmFtaWx5JTNBJTIwc2ltNjRQeHglMkMlMjBib2FyZFJldmlzaW9uJTNBJTIwbnVsbCU3RCUyQyUyMGF0dHJzJTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMWE3ZjlkYyUzQSUzQSUyOHhkYy5wbGF0Zm9ybS5JQ3B1RGF0YVNoZWV0Lkluc3RhbmNlJTI5dGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4Mi5JbnN0YW5jZSUyMzAlMkMlMjBtZW1vcnlNYXAlM0ElMjAlNUIlMEElNUIlMjdJUkFNJTI3JTJDJTIwJTdCY29tbWVudCUzQSUyMEludGVybmFsJTIwMk1CJTIwVU1BUDAlMjBtZW1vcnklMkMlMjBuYW1lJTNBJTIwSVJBTSUyQyUyMHNwYWNlJTNBJTIwY29kZS9kYXRhJTJDJTIwcGFnZSUzQSUyMHVuZGVmaW5lZCUyQyUyMGJhc2UlM0ElMjAweDgwMDAwMCUyQyUyMGxlbiUzQSUyMDB4MjAwMDAwJTJDJTIwYWNjZXNzJTNBJTIwUldYJTdEJTVEJTJDJTBBJTVCJTI3RERSJTI3JTJDJTIwJTdCY29tbWVudCUzQSUyMHVuZGVmaW5lZCUyQyUyMG5hbWUlM0ElMjBERFIlMkMlMjBzcGFjZSUzQSUyMHVuZGVmaW5lZCUyQyUyMHBhZ2UlM0ElMjB1bmRlZmluZWQlMkMlMjBiYXNlJTNBJTIwMHg4MDAwMDAwMCUyQyUyMGxlbiUzQSUyMDB4MTAwMDAwMDAlMkMlMjBhY2Nlc3MlM0ElMjB1bmRlZmluZWQlN0QlNUQlMEElNUQlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InBsYXRmb3JtTmFtZSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0idGkucGxhdGZvcm1zLnNpbTY0UHh4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwbGF0Zm9ybSIgdHlwZT0ieGRjLnBsYXRmb3JtLklQbGF0Zm9ybS5JbnN0YW5jZSIgdmFsdWU9IiU3QmV4dGVybmFsTWVtb3J5TWFwJTNBJTIwJTVCJTBBJTVCJTI3RERSJTI3JTJDJTIwJTdCY29tbWVudCUzQSUyMHVuZGVmaW5lZCUyQyUyMG5hbWUlM0ElMjBERFIlMkMlMjBzcGFjZSUzQSUyMHVuZGVmaW5lZCUyQyUyMHBhZ2UlM0ElMjB1bmRlZmluZWQlMkMlMjBiYXNlJTNBJTIwMHg4MDAwMDAwMCUyQyUyMGxlbiUzQSUyMDB4MTAwMDAwMDAlMkMlMjBhY2Nlc3MlM0ElMjB1bmRlZmluZWQlN0QlNUQlMEElNUQlMkMlMjBjdXN0b21NZW1vcnlNYXAlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByZW5hbWVNYXAlM0ElMjAlNUIlMEElMEElNUQlMkMlMjBkYXRhTWVtb3J5JTNBJTIwRERSJTJDJTIwY29kZU1lbW9yeSUzQSUyMElSQU0lMkMlMjBzdGFja01lbW9yeSUzQSUyMEREUiUyQyUyMHNlY3RNYXAlM0ElMjAlNUIlMEElMEElNUQlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Imdsb2JhbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN5bWJvbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQyUyNyUyQyUyMDB4MSU1RCUyQyUwQSU1QiUyN3hkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DJTI3JTJDJTIwMHgxJTVEJTBBJTVEIj48bWFwIGlkPSJ4ZGMuY2ZnLlByb2dyYW0vc3ltYm9sIiBsZW5ndGg9IjIiPg0KKyAgPGVudHJ5IGtleT0ieGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQyI+MHgxPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9InhkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DIj4weDE8L2VudHJ5Pg0KKzwvbWFwPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZml4ZWRDb2RlQWRkciIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZml4ZWREYXRhQWRkciIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibG9hZEZpeGVkRGF0YUFkZHIiIHR5cGU9InVuZGVmaW5lZCIgdmFsdWU9InVuZGVmaW5lZCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibG9hZFJvbSIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5jZmcuTWFpbiIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiIHZlcnNpb249IjEsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLnBsYXRmb3Jtcy5zaW02NFB4eC5QbGF0Zm9ybSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJCT0FSRCIgdHlwZT0ieGRjLnBsYXRmb3JtLklQbGF0Zm9ybS5Cb2FyZCIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGJvYXJkTmFtZSUzQSUyMHNpbTY0UHh4JTJDJTIwYm9hcmRGYW1pbHklM0ElMjBzaW02NFB4eCUyQyUyMGJvYXJkUmV2aXNpb24lM0ElMjBudWxsJTdEIj48c3RydWN0IGlkPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHguUGxhdGZvcm0vQk9BUkQiPg0KKyAgPGZpZWxkIG5hbWU9ImlkIj4wPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZE5hbWUiPnNpbTY0UHh4PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZEZhbWlseSI+c2ltNjRQeHg8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImJvYXJkUmV2aXNpb24iPm51bGw8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQ1BVIiB0eXBlPSJ4ZGMucGxhdGZvcm0uSUV4ZUNvbnRleHQuQ3B1IiB2YWx1ZT0iJTdCaWQlM0ElMjAwJTJDJTIwY2F0YWxvZ05hbWUlM0ElMjB0aS5jYXRhbG9nLmM2MDAwJTJDJTIwZGV2aWNlTmFtZSUzQSUyMFRNUzMyMENUQ0k2NDgyJTJDJTIwcmV2aXNpb24lM0ElMjAlMkMlMjBjbG9ja1JhdGUlM0ElMjAweDNlOCU3RCI+PHN0cnVjdCBpZD0idGkucGxhdGZvcm1zLnNpbTY0UHh4LlBsYXRmb3JtL0NQVSI+DQorICA8ZmllbGQgbmFtZT0iaWQiPjA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNhdGFsb2dOYW1lIj50aS5jYXRhbG9nLmM2MDAwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkZXZpY2VOYW1lIj5UTVMzMjBDVENJNjQ4MjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icmV2aXNpb24iLz4NCisgIDxmaWVsZCBuYW1lPSJjbG9ja1JhdGUiPjB4M2U4PC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5ydW50aW1lIiB2ZXJzaW9uPSIyLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Bc3NlcnQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX2Fzc2VydEZhaWxlZCIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMGFzc2VydGlvbiUyMGZhaWx1cmUlMjVzJTI1cyUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjMCI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5hc3NlcnRpb24gZmFpbHVyZSVzJXM8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkNvcmUiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfaW5pdGlhbGl6ZWRQYXJhbXMiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBBX2luaXRpYWxpemVkUGFyYW1zJTNBJTIwdW5pbml0aWFsaXplZCUyMFBhcmFtcyUyMHN0cnVjdCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMCI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5BX2luaXRpYWxpemVkUGFyYW1zOiB1bmluaXRpYWxpemVkIFBhcmFtcyBzdHJ1Y3Q8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5EZWZhdWx0cyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkRpYWdzIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRGlhZ3MvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzMiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVOVFJZIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFWElUIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMSUZFQ1lDTEUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IklOVEVSTkFMIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBU1NFUlQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSMSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMjU2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSMiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNTEyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSMyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTAyNCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjIwNDgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI1IiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iODE5MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjciIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Mzg0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSOCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFMTCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNjU1MzUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNldE1hc2tFbmFibGVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImRpY3RCYXNlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkVycm9yIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5VTUFSR1MiIHR5cGU9Im51bWJlciIgdmFsdWU9IjIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfZ2VuZXJpYyIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMGdlbmVyaWMlMjBlcnJvciUzQSUyMCUyNXMlMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzEiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+Z2VuZXJpYyBlcnJvcjogJXM8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX21lbW9yeSIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMG91dCUyMG9mJTIwbWVtb3J5JTNBJTIwaGVhcCUzRDB4JTI1eCUyQyUyMHNpemUlM0QlMjV1JTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMyIj4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPm91dCBvZiBtZW1vcnk6IGhlYXA9MHgleCwgc2l6ZT0ldTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InBvbGljeSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ieGRjLnJ1bnRpbWUuRXJyb3IuVU5XSU5EIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyYWlzZUhvb2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYXhEZXB0aCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuR2F0ZSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkdhdGUvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5HYXRlTnVsbCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJRX0JMT0NLSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJRX1BSRUVNUFRJTkciIHR5cGU9Im51bWJlciIgdmFsdWU9IjIiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTG9nL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTlVNQVJHUyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUFJJTlRGSUQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfY29uc3RydWN0IiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMCUzQy0tJTIwY29uc3RydWN0JTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfY3JlYXRlIiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMCUzQy0tJTIwY3JlYXRlJTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfZGVzdHJ1Y3QiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwLS0lM0UlMjBkZXN0cnVjdCUzQSUyMCUyOCUyNXAlMjklN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHg0PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPi0tPiBkZXN0cnVjdDogKCVwKTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2RlbGV0ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAtLSUzRSUyMGRlbGV0ZSUzQSUyMCUyOCUyNXAlMjklN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMyI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHg0PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPi0tPiBkZWxldGU6ICglcCk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iaWRUb0luZm8iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyNyUyMzQ2OCUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2NvbnN0cnVjdCUzQSUzQSUzQy0tJTIwY29uc3RydWN0JTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklNUQlMkMlMEElNUIlMjclMjM0OTIlMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUlM0ElM0ElM0MtLSUyMGNyZWF0ZSUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTVEJTJDJTBBJTVCJTI3JTIzNTEzJTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfZGVzdHJ1Y3QlM0ElM0EtLSUzRSUyMGRlc3RydWN0JTNBJTIwJTI4JTI1cCUyOSU1RCUyQyUwQSU1QiUyNyUyMzUzMiUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2RlbGV0ZSUzQSUzQS0tJTNFJTIwZGVsZXRlJTNBJTIwJTI4JTI1cCUyOSU1RCUwQSU1RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Mb2dnZXJCdWYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nZ2VyU3lzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLk1haW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5NYWluL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9HYXRlUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4MSUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMFFfQkxPQ0tJTkclM0ElMjAweDElMkMlMjBRX1BSRUVNUFRJTkclM0ElMjAweDIlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDFkZjVmMjElM0ElM0ElMjh4ZGMucnVudGltZS5JR2F0ZVByb3ZpZGVyLk1vZHVsZSUyOXhkYy5ydW50aW1lLkdhdGVOdWxsJTJDJTIwYWJzdHJhY3RJbnN0YW5jZXMlMjQlM0ElMjBmYWxzZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5NZW1vcnkiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5NZW1vcnkvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc5Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJRX0JMT0NLSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkZWZhdWx0SGVhcEluc3RhbmNlIiB0eXBlPSJ4ZGMucnVudGltZS5JSGVhcC5JbnN0YW5jZSIgdmFsdWU9IiU3QiU3RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkZWZhdWx0SGVhcFNpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkhlYXBQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4MiUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMjJjZTAwJTNBJTNBJTI4eGRjLnJ1bnRpbWUuSUhlYXAuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuSGVhcFN0ZCUyQyUyMGFic3RyYWN0SW5zdGFuY2VzJTI0JTNBJTIwdHJ1ZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5IZWFwTWluIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkhlYXBTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfbm9SVFNNZW1vcnkiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBUaGUlMjBSVFMlMjBoZWFwJTIwaXMlMjB1c2VkJTIwdXAuJTIwRXhhbWluZSUyMFByb2dyYW0uaGVhcC4lMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzQiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+VGhlIFJUUyBoZWFwIGlzIHVzZWQgdXAuIEV4YW1pbmUgUHJvZ3JhbS5oZWFwLjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfemVyb1NpemUiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBIZWFwU3RkX2NyZWF0ZSUyMGNhbm5vdCUyMGhhdmUlMjBhJTIwemVybyUyMHNpemUlMjB2YWx1ZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5IZWFwU3RkX2NyZWF0ZSBjYW5ub3QgaGF2ZSBhIHplcm8gc2l6ZSB2YWx1ZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2ludmFsaWRUb3RhbEZyZWVTaXplIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwSGVhcFN0ZCUyMGluc3RhbmNlJTIwdG90YWxGcmVlU2l6ZSUyMGlzJTIwZ3JlYXRlciUyMHRoYW4lMjBzdGFydGluZyUyMHNpemUlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZCBpbnN0YW5jZSB0b3RhbEZyZWVTaXplIGlzIGdyZWF0ZXIgdGhhbiBzdGFydGluZyBzaXplPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfaW52YWxpZEFsaWdubWVudCIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEhlYXBTdGRfYWxsb2MlMjAtJTIwcmVxdWVzdGVkJTIwYWxpZ25tZW50JTIwaXMlMjBncmVhdGVyJTIwdGhhbiUyMGFsbG93ZWQlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZF9hbGxvYyAtIHJlcXVlc3RlZCBhbGlnbm1lbnQgaXMgZ3JlYXRlciB0aGFuIGFsbG93ZWQ8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TdGFydHVwIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJET05FIiB0eXBlPSJudW1iZXIiIHZhbHVlPSItMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTk9URE9ORSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4UGFzc2VzIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZmlyc3RGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibGFzdEZ4bnMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyZXNldEZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3RhcnRNb2RzRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc19fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXhlY0ltcGwiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2Z4blRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FJTJDJTIwJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZnhuUnRzIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUJ0cnVlJTJDJTIwdHJ1ZSU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuUnRzIiBsZW5ndGg9IjIiPg0KKyAgPGVsZW0+dHJ1ZTwvZWxlbT4NCisgIDxlbGVtPnRydWU8L2VsZW0+DQorPC92ZWN0b3I+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN5c3RlbSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlNUQVRVU19VTktOT1dOIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI1MTk2NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9jYW5ub3RGaXRJbnRvQXJnIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwQV9jYW5ub3RGaXRJbnRvQXJnJTNBJTIwc2l6ZW9mJTI4RmxvYXQlMjklMjAlM0UlMjBzaXplb2YlMjhBcmclMjklN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzUiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+QV9jYW5ub3RGaXRJbnRvQXJnOiBzaXplb2YoRmxvYXQpID4gc2l6ZW9mKEFyZyk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXh0ZW5kZWRGb3JtYXRzIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlMjUlMjRMIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJTdXBwb3J0UHJveHkiIHR5cGU9InhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDMlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDFlZmU0NzUlM0ElM0ElMjh4ZGMucnVudGltZS5JU3lzdGVtU3VwcG9ydC5Nb2R1bGUlMjl4ZGMucnVudGltZS5TeXNNaW4lN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1heEF0ZXhpdEhhbmRsZXJzIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleHRlbmRGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4aXRGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX0dhdGVQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDQlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBRX0JMT0NLSU5HJTNBJTIwMHgxJTJDJTIwUV9QUkVFTVBUSU5HJTNBJTIwMHgyJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakBhNDE1YTMlM0ElM0ElMjh4ZGMucnVudGltZS5JR2F0ZVByb3ZpZGVyLk1vZHVsZSUyOXhkYy5ydW50aW1lLkdhdGVOdWxsJTJDJTIwYWJzdHJhY3RJbnN0YW5jZXMlMjQlM0ElMjBmYWxzZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXNTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3lzTWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuU3lzTWluL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92Vmlld0luZm8iIHR5cGU9InhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UiIHZhbHVlPSIlN0J2aWV3TWFwJTNBJTIwJTVCJTBBJTVCJTI3TW9kdWxlJTI3JTJDJTIwJTdCdHlwZSUzQSUyME1PRFVMRSUyQyUyMHZpZXdJbml0RnhuJTNBJTIwdmlld0luaXRNb2R1bGUlMkMlMjBzdHJ1Y3ROYW1lJTNBJTIwTW9kdWxlVmlldyU3RCU1RCUyQyUwQSU1QiUyN091dHB1dEJ1ZmZlciUyNyUyQyUyMCU3QnR5cGUlM0ElMjBNT0RVTEVfREFUQSUyQyUyMHZpZXdJbml0RnhuJTNBJTIwdmlld0luaXRPdXRwdXRCdWZmZXIlMkMlMjBzdHJ1Y3ROYW1lJTNBJTIwQnVmZmVyRW50cnlWaWV3JTdEJTVEJTBBJTVEJTJDJTIwc2hvd1Jhd1RhYiUzQSUyMHRydWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1ZlNpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjEwMjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZsdXNoQXRFeGl0IiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2VjdGlvbk5hbWUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im91dHB1dEZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ib3V0cHV0RnVuYyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UZXh0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzg0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lVW5rbm93biIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCdW5rbm93bi1pbnN0YW5jZS1uYW1lJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lRW1wdHkiIHR5cGU9InN0cmluZyIgdmFsdWU9IiU3QmVtcHR5LWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVTdGF0aWMiIHR5cGU9InN0cmluZyIgdmFsdWU9IiU3QnN0YXRpYy1pbnN0YW5jZS1uYW1lJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJpc0xvYWRlZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNoYXJUYWIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QjB4MCUyQyUyMDB4NDElMkMlMjAweDVmJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDUwJTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NzMlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4NzUlMkMlMjAweDZlJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg1MCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg2MSUyQyUyMDB4NmQlMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDRkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDVmJTJDJTIwMHg2MyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4NmUlMkMlMjAweDZmJTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NzYlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjElMkMlMjAweDIwJTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NzYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NzUlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2NCUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg3NiUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4MjAlMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4NjMlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDZmJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg0NiUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2NSUyQyUyMDB4NTMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg2NyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4MjAlMkMlMjAweDc0JTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY3JTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHg1ZiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2YyUyQyUyMDB4NmYlMkMlMjAweDYzJTJDJTIwMHgyMCUyQyUyMDB4MmQlMkMlMjAweDIwJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDcxJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4NjclMkMlMjAweDZlJTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDZlJTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NzclMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MCUyQyUyMDB4NDElMkMlMjAweDVmJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHg0NiUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg0OSUyQyUyMDB4NmUlMkMlMjAweDc0JTJDJTIwMHg2ZiUyQyUyMDB4NDElMkMlMjAweDcyJTJDJTIwMHg2NyUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NmYlMkMlMjAweDY2JTJDJTIwMHgyOCUyQyUyMDB4NDYlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHgyOSUyQyUyMDB4MjAlMkMlMjAweDNlJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDZmJTJDJTIwMHg2NiUyQyUyMDB4MjglMkMlMjAweDQxJTJDJTIwMHg3MiUyQyUyMDB4NjclMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHg2MSUyQyUyMDB4NzMlMkMlMjAweDczJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NmYlMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NjYlMkMlMjAweDYxJTJDJTIwMHg2OSUyQyUyMDB4NmMlMkMlMjAweDc1JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgwJTJDJTIwMHg2NyUyQyUyMDB4NjUlMkMlMjAweDZlJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDY5JTJDJTIwMHg2MyUyQyUyMDB4MjAlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDZmJTJDJTIwMHg3NSUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2ZiUyQyUyMDB4NjYlMkMlMjAweDIwJTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDZkJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDc5JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHgzZCUyQyUyMDB4MzAlMkMlMjAweDc4JTJDJTIwMHgyNSUyQyUyMDB4NzglMkMlMjAweDJjJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDNkJTJDJTIwMHgyNSUyQyUyMDB4NzUlMkMlMjAweDAlMkMlMjAweDY2JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDY1JTJDJTIwMHgyOCUyQyUyMDB4MjklMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDc2JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDc3JTJDJTIwMHg3NCUyQyUyMDB4NjglMkMlMjAweDJkJTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDZjJTJDJTIwMHg3OSUyQyUyMDB4MjAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg0ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgwJTJDJTIwMHg1NCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NTIlMkMlMjAweDU0JTJDJTIwMHg1MyUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NzUlMkMlMjAweDczJTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NzAlMkMlMjAweDJlJTJDJTIwMHgyMCUyQyUyMDB4NDUlMkMlMjAweDc4JTJDJTIwMHg2MSUyQyUyMDB4NmQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg1MCUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg2NyUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4MmUlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4M2MlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2MyUyQyUyMDB4NzQlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOCUyQyUyMDB4MjclMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MjclMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHgzYyUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI4JTJDJTIwMHgyNyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg2NCUyQyUyMDB4NjUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2MyUyQyUyMDB4NzQlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjglMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg2NCUyQyUyMDB4NjUlMkMlMjAweDZjJTJDJTIwMHg2NSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI4JTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHg3OCUyQyUyMDB4NjQlMkMlMjAweDYzJTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2ZSUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg0MSUyQyUyMDB4NzMlMkMlMjAweDczJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHgwJTJDJTIwMHg0MyUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDQlMkMlMjAweDY1JTJDJTIwMHg2NiUyQyUyMDB4NjElMkMlMjAweDc1JTJDJTIwMHg2YyUyQyUyMDB4NzQlMkMlMjAweDczJTJDJTIwMHgwJTJDJTIwMHg0NCUyQyUyMDB4NjklMkMlMjAweDYxJTJDJTIwMHg2NyUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDQ1JTJDJTIwMHg3MiUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4MCUyQyUyMDB4NDclMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ3JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg0ZSUyQyUyMDB4NzUlMkMlMjAweDZjJTJDJTIwMHg2YyUyQyUyMDB4MCUyQyUyMDB4NGMlMkMlMjAweDZmJTJDJTIwMHg2NyUyQyUyMDB4MCUyQyUyMDB4NGQlMkMlMjAweDYxJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDAlMkMlMjAweDRkJTJDJTIwMHg2NSUyQyUyMDB4NmQlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4NzklMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDc1JTJDJTIwMHg3MCUyQyUyMDB4MCUyQyUyMDB4NTMlMkMlMjAweDc5JTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg2ZCUyQyUyMDB4MCUyQyUyMDB4NTMlMkMlMjAweDc5JTJDJTIwMHg3MyUyQyUyMDB4NGQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MCUyQyUyMDB4NTQlMkMlMjAweDY1JTJDJTIwMHg3OCUyQyUyMDB4NzQlMkMlMjAweDAlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDZkJTJDJTIwMHg2ZiUyQyUyMDB4NjQlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg1NCUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2YiUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHgwJTVEIj48dmVjdG9yIGlkPSJ4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIiIGxlbmd0aD0iNjgwIj4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDUwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg0NjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Nzc8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg0NjwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg0OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgzZDwvZWxlbT4NCisgIDxlbGVtPjB4MzA8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDJjPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDNkPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc3PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTI8L2VsZW0+DQorICA8ZWxlbT4weDU0PC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NDU8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4M2M8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgzYzwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNzwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyNzwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4M2U8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4M2U8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDc8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ3PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg0ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NGM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibm9kZVRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTdCbGVmdCUzQSUyMDB4MCUyQyUyMHJpZ2h0JTNBJTIwMHgwJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4MjI1JTJDJTIwcmlnaHQlM0ElMjAweDIyYSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjMzJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyM2ElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDIzZiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjQ4JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNGUlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI1NCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjU5JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNjIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI2NiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjZiJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNzIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI3YSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjgyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyODklN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI5MCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDI5NSUyQyUyMHJpZ2h0JTNBJTIwMHgyOWMlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDExJTJDJTIwcmlnaHQlM0ElMjAweDJhMSU3RCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiIiBsZW5ndGg9IjE5Ij4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MDwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDA8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MjI1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjJhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyMzM8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIzYTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjNmPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNDg8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI0ZTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjU0PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNTk8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2NjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2YjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3YTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4OTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI5MDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4Mjk1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjljPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE4Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDExPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MmExPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorPC92ZWN0b3I+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjaGFyQ250IiB0eXBlPSJudW1iZXIiIHZhbHVlPSI2ODAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5vZGVDbnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE5Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aXNpdFJvcGVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aXNpdFJvcGVGeG4yIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGltZXN0YW1wIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcE51bGwiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGltZXN0YW1wU3RkIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlR5cGVzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ0aS50YXJnZXRzLnJ0czYwMDAiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJoZWxsby5tb2QiIHZlcnNpb249IiIgcmVwb3NpdG9yeT0iRDovd29yay90dXRvcmlhbC9yZXBvLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iaGVsbG8ubW9kLlRhbGtlciIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9ImhlbGxvLm1vZC5UYWxrZXIvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idGV4dCIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iR29vZG5pZ2h0JTIwTW9vbiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorPC9pbXBvcnRzPgorPC9jb25maWd1cmF0aW9uPgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNWU5YjJkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAKQEAgLTAsMCArMSwxMTAgQEAKKyMKKyMgVGhlIGZvbGxvd2luZyBpcyBnZW5lcmF0ZWQgYnkgdXRpbHMuZ2VuRGVwIGZvciBwYWNrYWdlL2NmZy9wcm9nX3g2NFAKKyMKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGw6VGFsa2VyLnhzIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcgcHJvZy5jZmcgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lBbnRhcmEueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSURhVmluY2kueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSUhpbWFsYXlhLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lPTUFQMngzeC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JT01BUDN4eHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NDJ4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMTI4Sy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzFNLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMjU2Sy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzUxMksueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2eDB4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngxeC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RNNjQ2Ny54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RSQTQ0eC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RSeDQweC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0ODQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENUQ0k2NDg2LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4eC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwREE4eHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0MjEueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0MjgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0NTIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0NTQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQzMS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRE02NDcueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQ4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENGNzYxOTkwLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENUTkVUVjI2ODUueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvYzZ4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9QbGF0Zm9ybS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9ydHM2MDAwL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL29tMi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9FeGVDb250ZXh0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vSVBsYXRmb3JtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vVXRpbHMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L01vZGVsLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1Byb2dyYW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RhdGVSZWFkZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RydWN0dXJlRGVjb2Rlci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcE1pbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJCdWYueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlclN5cy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGltZXN0YW1wLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL1RyYWNlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54cyAKKworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSUFudGFyYS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lEYVZpbmNpLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSUhpbWFsYXlhLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSU9NQVAyeDN4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSU9NQVAzeHh4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NDJ4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8xMjhLLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8xTS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMjU2Sy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfNTEySy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngweC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngxeC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDRE02NDY3LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENEUkE0NHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RSeDQweC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4NC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4Ni54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBEQTh4eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDIxLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0MjgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQ1Mi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDU0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQzMS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0Ny54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0OC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENGNzYxOTkwLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ1RORVRWMjY4NS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL2M2eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1BsYXRmb3JtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL01haW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9FeGVDb250ZXh0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9JUGxhdGZvcm0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL1V0aWxzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvTW9kZWwueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Qcm9ncmFtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RhdGVSZWFkZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdHJ1Y3R1cmVEZWNvZGVyLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBNaW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJCdWYueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyU3lzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UaW1lc3RhbXAueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHM6CisKKworZGVmaW5lIEVYRUMucHJvZy54NjRQCisKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9wbGF0Zm9ybXMvc2ltNjRQeHgvV2luZG93cy9rZWx2aW4gLXF1aWV0IC1tZW1faWdub3JlIEQ6XHdvcmtcdHV0b3JpYWxccmVwb1xoZWxsb1xtb2RccHJvZy54NjRQCitlbmRlZgorCisjCisjIFRoZSBmb2xsb3dpbmcgaXMgZ2VuZXJhdGVkIGJ5IGphdmEKKyMKKworcHJvZy54NjRQOiBsaWIvaGVsbG8ubW9kLmE2NFAgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9saWIvdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9saWIvYm9vdC5hNjRQIAorCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvUHJvZ3JhbS54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL2xpbmtjbWQueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL2xpbmtjbWQueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL2xpbmtVdGlscy54cyAKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGw6IC5pbnRlcmZhY2VzIAorCisjCisjIHJ1bGUtbGVzcyBnb2FscyBmb3IgZmlsZXMgb3V0c2lkZSB0aGlzIHBhY2thZ2UKKyMgKHRoZXNlIGdvYWxzIGZvcmNlIGEgcmUtYnVpbGQgaWYgdGhlc2UgZmlsZXMgYXJlCisjIG1vdmVkIG9yIGRlbGV0ZWQpCisjCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9ydHM2MDAwL2xpYi90aS50YXJnZXRzLnJ0czYwMDAuYTY0UDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvbGliL2Jvb3QuYTY0UDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rY21kLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL2xpbmtjbWQueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua1V0aWxzLnhzOgorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLmggYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTYwZjEyOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuaApAQCAtMCwwICsxLDEzIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCitleHRlcm4gaW50IHhkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0M7CisKK2V4dGVybiBpbnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0M7CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTU3N2M5YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrCkBAIC0wLDAgKzEsNzcgQEAKKyMKKyMgIERvIG5vdCBlZGl0IHRoaXMgZmlsZS4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSAKKyMgIHBhY2thZ2UuYmxkLiAgQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBmaWxlIHdpbGwgYmUgCisjICBvdmVyd3JpdHRlbiB3aGVuZXZlciBtYWtlZmlsZXMgYXJlIHJlLWdlbmVyYXRlZC4KKyMKKyMgIHRhcmdldCBjb21wYXRpYmlsaXR5IGtleSA9IHRpLnRhcmdldHMuQzY0UHsxLDAsNi4xLDUKKyMKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UDogcHJvZy5jIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0naGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnL3Byb2cgLWZyPS4vcGFja2FnZS9jZmcvcHJvZyAtZmMgJDwKKwkkKE1LREVQKSAtYSAkQC5kZXAgLXAgcGFja2FnZS9jZmcvcHJvZyAtcyBvNjRQICQ8IC1DICAgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2NmZy9wcm9nIC1mcj0uL3BhY2thZ2UvY2ZnL3Byb2cKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UDpDX0RJUj0KK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM2NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5zNjRQOiBwcm9nLmMgcGFja2FnZS9jZmcvcHJvZ194NjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgLW4gJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcvcHJvZyAtZnI9Li9wYWNrYWdlL2NmZy9wcm9nIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2NmZy9wcm9nIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0naGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnL3Byb2cgLWZyPS4vcGFja2FnZS9jZmcvcHJvZworCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5zNjRQOkNfRElSPQorcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM2NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAuZGVwCitlbmRpZgorCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2NmZyAtZnI9Li9wYWNrYWdlL2NmZyAtZmMgJDwKKwkkKE1LREVQKSAtYSAkQC5kZXAgLXAgcGFja2FnZS9jZmcgLXMgbzY0UCAkPCAtQyAgIC1xcSAtcGRzdzIyNSAtbW8gLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0naGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnIC1mcj0uL3BhY2thZ2UvY2ZnCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFA6Q19ESVI9CitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5zNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuczY0UDogcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgcGFja2FnZS9jZmcvcHJvZ194NjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgLW4gJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbW8gLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0naGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnIC1mcj0uL3BhY2thZ2UvY2ZnIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2NmZyAtcyBvNjRQICQ8IC1DICAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tbyAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuczY0UDpDX0RJUj0KK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5zNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5zNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworY2xlYW4sNjRQIDo6CisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2cvcHJvZy5zNjRQCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5zNjRQCisKK3Byb2cueDY0UDogcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFAgcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAgcGFja2FnZS9jZmcvcHJvZ194NjRQLm1haworCitjbGVhbjo6CisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDI2Njc1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxNzJhNmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAuZGVwCkBAIC0wLDAgKzEsNTEgQEAKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQOiBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIFRhbGtlci5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQ29yZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGltaXRzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmggZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW8uaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmggcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbmthZ2UuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCANCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYzoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oOg0KK1RhbGtlci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQ29yZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0Lmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGltaXRzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW8uaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbmthZ2UuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJvdi54cyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAucm92LnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1MGI5YWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJvdi54cwpAQCAtMCwwICsxLDQ4NjUgQEAKK19fbyA9IG51bGwKK19fb2JqID0gWworICAgIHRoaXMsICAvLyAjMCAKKyAgICB7fSwgICAgLy8gIzEgCisgICAge30sICAgIC8vICMyIHhkYy5ydW50aW1lLkFzc2VydAorICAgIFtdLCAgICAvLyAjMyB4ZGMucnVudGltZS5Bc3NlcnQvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNCB4ZGMucnVudGltZS5FcnJvci5EZXNjIzAKKyAgICB7fSwgICAgLy8gIzUgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzYgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM3IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjOCB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM5IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxMCB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMiB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE0IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxNSB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxNiB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTcgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxOCB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxOSB4ZGMucnVudGltZS5Bc3NlcnQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyMCB4ZGMucnVudGltZS5Db3JlCisgICAgW10sICAgIC8vICMyMSB4ZGMucnVudGltZS5Db3JlLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzIyIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAKKyAgICB7fSwgICAgLy8gIzIzIHhkYy5ydW50aW1lLkNvcmUvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjQgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjUgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjYgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI3IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjggeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjkgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMzMCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMzMSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMzIgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMzMyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMzQgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMzNSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMzNiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMzcgeGRjLnJ1bnRpbWUuQ29yZS92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzM4IHhkYy5ydW50aW1lLkRlZmF1bHRzCisgICAgW10sICAgIC8vICMzOSB4ZGMucnVudGltZS5EZWZhdWx0cy8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM0MCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb21tb24kCisgICAgW10sICAgIC8vICM0MSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNDIgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzQzIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNDQgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjNDUgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzQ2IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzQ3IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICM0OCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzQ5IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzUwIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjNTEgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNTIgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzUzIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjNTQgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICM1NSB4ZGMucnVudGltZS5EaWFncworICAgIFtdLCAgICAvLyAjNTYgeGRjLnJ1bnRpbWUuRGlhZ3MvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNTcgeGRjLnJ1bnRpbWUuRGlhZ3MvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNTggeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzU5IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM2MCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzYxIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzYyIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM2MyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICM2NCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjUgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICM2NiB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICM2NyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzY4IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzY5IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICM3MCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzcxIHhkYy5ydW50aW1lLkRpYWdzL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNzIgeGRjLnJ1bnRpbWUuRXJyb3IKKyAgICBbXSwgICAgLy8gIzczIHhkYy5ydW50aW1lLkVycm9yLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzc0IHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMQorICAgIHt9LCAgICAvLyAjNzUgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMyCisgICAge30sICAgIC8vICM3NiB4ZGMucnVudGltZS5FcnJvci9jb21tb24kCisgICAgW10sICAgIC8vICM3NyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNzggeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzc5IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODAgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjODEgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzgyIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzgzIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICM4NCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzg1IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzg2IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjODcgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODggeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzg5IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjOTAgeGRjLnJ1bnRpbWUuRXJyb3Ivdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICM5MSB4ZGMucnVudGltZS5HYXRlCisgICAgW10sICAgIC8vICM5MiB4ZGMucnVudGltZS5HYXRlLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzkzIHhkYy5ydW50aW1lLkdhdGUvY29tbW9uJAorICAgIFtdLCAgICAvLyAjOTQgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjOTUgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjOTYgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzk3IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjOTggeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjOTkgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMDAgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTAxIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxMDIgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxMDMgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzEwNCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEwNSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxMDYgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzEwNyB4ZGMucnVudGltZS5HYXRlL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTA4IHhkYy5ydW50aW1lLkdhdGVOdWxsCisgICAgW10sICAgIC8vICMxMDkgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTEwIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzExMSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTEyIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxMTMgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxMTQgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTE1IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxMTYgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTE3IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMTggeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxMTkgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTIwIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTIxIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEyMiB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTIzIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTI0IHhkYy5ydW50aW1lLkdhdGVOdWxsL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTI1IHhkYy5ydW50aW1lLkxvZworICAgIFtdLCAgICAvLyAjMTI2IHhkYy5ydW50aW1lLkxvZy8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxMjcgeGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMwCisgICAge30sICAgIC8vICMxMjggeGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMxCisgICAge30sICAgIC8vICMxMjkgeGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMzCisgICAge30sICAgIC8vICMxMzAgeGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMyCisgICAge30sICAgIC8vICMxMzEgeGRjLnJ1bnRpbWUuTG9nL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzEzMiB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzEzMyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzEzNCB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxMzUgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzEzNiB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzNyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTM4IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTM5IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE0MCB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTQxIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE0MiB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTQzIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTQ0IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE0NSB4ZGMucnVudGltZS5Mb2cvaWRUb0luZm8KKyAgICBbXSwgICAgLy8gIzE0NiB4ZGMucnVudGltZS5Mb2cvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxNDcgeGRjLnJ1bnRpbWUuTWFpbgorICAgIFtdLCAgICAvLyAjMTQ4IHhkYy5ydW50aW1lLk1haW4vJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTQ5IHhkYy5ydW50aW1lLk1haW4vY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTUwIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE1MSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxNTIgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1MyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzE1NCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxNTUgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxNTYgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTU3IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxNTggeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxNTkgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE2MCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE2MSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxNjIgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE2MyB4ZGMucnVudGltZS5NYWluL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTY0IHhkYy5ydW50aW1lLk1lbW9yeQorICAgIFtdLCAgICAvLyAjMTY1IHhkYy5ydW50aW1lLk1lbW9yeS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNjYgeGRjLnJ1bnRpbWUuSGVhcFN0ZAorICAgIFtdLCAgICAvLyAjMTY3IHhkYy5ydW50aW1lLkhlYXBTdGQvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTY4IHhkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UjMAorICAgIHt9LCAgICAvLyAjMTY5IHhkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UjMC9pbnN0YW5jZQorICAgIHt9LCAgICAvLyAjMTcwIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQKKyAgICB7fSwgICAgLy8gIzE3MSB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMzCisgICAge30sICAgIC8vICMxNzIgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMgorICAgIHt9LCAgICAvLyAjMTczIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjNAorICAgIHt9LCAgICAvLyAjMTc0IHhkYy5ydW50aW1lLkhlYXBTdGQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTc1IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE3NiB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxNzcgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE3OCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzE3OSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxODAgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxODEgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTgyIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxODMgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxODQgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE4NSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4NiB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxODcgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE4OCB4ZGMucnVudGltZS5IZWFwU3RkL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTg5IHhkYy5ydW50aW1lLk1lbW9yeS9jb21tb24kCisgICAgW10sICAgIC8vICMxOTAgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxOTEgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxOTIgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTkzIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxOTQgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxOTUgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE5NiB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5NyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxOTggeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5OSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyMDAgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIwMSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzIwMiB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyMDMgeGRjLnJ1bnRpbWUuTWVtb3J5L3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjA0IHhkYy5ydW50aW1lLlN0YXJ0dXAKKyAgICBbXSwgICAgLy8gIzIwNSB4ZGMucnVudGltZS5TdGFydHVwLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzIwNiB4ZGMucnVudGltZS5TdGFydHVwL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzIwNyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyMDggeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjA5IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyMTAgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyMTEgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjEyIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjEzIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxNCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjE1IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjE2IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyMTcgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyMTggeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjE5IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyMjAgeGRjLnJ1bnRpbWUuU3RhcnR1cC9maXJzdEZ4bnMKKyAgICBbXSwgICAgLy8gIzIyMSB4ZGMucnVudGltZS5TdGFydHVwL2xhc3RGeG5zCisgICAgW10sICAgIC8vICMyMjIgeGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuUnRzCisgICAgW10sICAgIC8vICMyMjMgeGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuVGFiCisgICAgW10sICAgIC8vICMyMjQgeGRjLnJ1bnRpbWUuU3RhcnR1cC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIyNSB4ZGMucnVudGltZS5TeXN0ZW0KKyAgICBbXSwgICAgLy8gIzIyNiB4ZGMucnVudGltZS5TeXN0ZW0vJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjI3IHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzUKKyAgICB7fSwgICAgLy8gIzIyOCB4ZGMucnVudGltZS5TeXNNaW4KKyAgICBbXSwgICAgLy8gIzIyOSB4ZGMucnVudGltZS5TeXNNaW4vJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjMwIHhkYy5ydW50aW1lLlN5c01pbi9jb21tb24kCisgICAgW10sICAgIC8vICMyMzEgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyMzIgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyMzMgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjM0IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyMzUgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyMzYgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzIzNyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIzOCB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyMzkgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI0MCB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyNDEgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI0MiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzI0MyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAge30sICAgIC8vICMyNDQgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxCisgICAge30sICAgIC8vICMyNDUgeGRjLnJvdi5WaWV3SW5mbworICAgIFtdLCAgICAvLyAjMjQ2IHhkYy5yb3YuVmlld0luZm8vJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjQ3IHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMAorICAgIFtdLCAgICAvLyAjMjQ4IHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMC92aWV3TWFwCisgICAge30sICAgIC8vICMyNDkgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ0Jhc2ljJworICAgIHt9LCAgICAvLyAjMjUwIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMC92aWV3TWFwLydSZWNvcmRzJworICAgIFtdLCAgICAvLyAjMjUxIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwCisgICAge30sICAgIC8vICMyNTIgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ01vZHVsZScKKyAgICB7fSwgICAgLy8gIzI1MyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nT3V0cHV0QnVmZmVyJworICAgIFtdLCAgICAvLyAjMjU0IHhkYy5ydW50aW1lLlN5c01pbi92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI1NSB4ZGMucnVudGltZS5TeXN0ZW0vY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjU2IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjU3IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjU4IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI1OSB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjYwIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjYxIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyNjIgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMyNjMgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjY0IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyNjUgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjY2IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyNjcgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyNjggeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMjY5IHhkYy5ydW50aW1lLlN5c3RlbS9leGl0RnhucworICAgIFtdLCAgICAvLyAjMjcwIHhkYy5ydW50aW1lLlN5c3RlbS92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI3MSB4ZGMucnVudGltZS5UZXh0CisgICAgW10sICAgIC8vICMyNzIgeGRjLnJ1bnRpbWUuVGV4dC8kaW5zdGFuY2VzCisgICAgW10sICAgIC8vICMyNzMgeGRjLnJ1bnRpbWUuVGV4dC9jaGFyVGFiCisgICAge30sICAgIC8vICMyNzQgeGRjLnJ1bnRpbWUuVGV4dC9jb21tb24kCisgICAgW10sICAgIC8vICMyNzUgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjc2IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzI3NyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjc4IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjc5IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4MCB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzI4MSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMyODIgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzI4MyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4NCB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjg1IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjg2IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzI4NyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMjg4IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYgorICAgIHt9LCAgICAvLyAjMjg5IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8wCisgICAge30sICAgIC8vICMyOTAgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEKKyAgICB7fSwgICAgLy8gIzI5MSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMgorICAgIHt9LCAgICAvLyAjMjkyIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8zCisgICAge30sICAgIC8vICMyOTMgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzQKKyAgICB7fSwgICAgLy8gIzI5NCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNQorICAgIHt9LCAgICAvLyAjMjk1IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi82CisgICAge30sICAgIC8vICMyOTYgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzcKKyAgICB7fSwgICAgLy8gIzI5NyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOAorICAgIHt9LCAgICAvLyAjMjk4IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi85CisgICAge30sICAgIC8vICMyOTkgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEwCisgICAge30sICAgIC8vICMzMDAgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzExCisgICAge30sICAgIC8vICMzMDEgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEyCisgICAge30sICAgIC8vICMzMDIgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEzCisgICAge30sICAgIC8vICMzMDMgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE0CisgICAge30sICAgIC8vICMzMDQgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE1CisgICAge30sICAgIC8vICMzMDUgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE2CisgICAge30sICAgIC8vICMzMDYgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE3CisgICAge30sICAgIC8vICMzMDcgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE4CisgICAgW10sICAgIC8vICMzMDggeGRjLnJ1bnRpbWUuVGV4dC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzMwOSBoZWxsby5tb2QuVGFsa2VyCisgICAgW10sICAgIC8vICMzMTAgaGVsbG8ubW9kLlRhbGtlci8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMzMTEgaGVsbG8ubW9kLlRhbGtlci9jb21tb24kCisgICAgW10sICAgIC8vICMzMTIgaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzEzIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzMxNCBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzE1IGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMzE2IGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxNyBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzMxOCBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMzMTkgaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzMyMCBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMyMSBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMzIyIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzIzIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzMyNCBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMzI1IGhlbGxvLm1vZC5UYWxrZXIvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMzMjYgCisgICAge30sICAgIC8vICMzMjcgCisgICAge30sICAgIC8vICMzMjggCisgICAge30sICAgIC8vICMzMjkgCisgICAge30sICAgIC8vICMzMzAgCisgICAge30sICAgIC8vICMzMzEgdGkudGFyZ2V0cy5DNjRQCisgICAge30sICAgIC8vICMzMzIgdGkudGFyZ2V0cy5DNjRQL2FyCisgICAge30sICAgIC8vICMzMzMgdGkudGFyZ2V0cy5DNjRQL2FyT3B0cworICAgIHt9LCAgICAvLyAjMzM0IHRpLnRhcmdldHMuQzY0UC9hc20KKyAgICB7fSwgICAgLy8gIzMzNSB0aS50YXJnZXRzLkM2NFAvYXNtT3B0cworICAgIHt9LCAgICAvLyAjMzM2IHRpLnRhcmdldHMuQzYyCisgICAge30sICAgIC8vICMzMzcgdGkudGFyZ2V0cy5DNjIvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAge30sICAgIC8vICMzMzggdGkudGFyZ2V0cy5DNjIvZGVidWdHZW4KKyAgICB7fSwgICAgLy8gIzMzOSB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zCisgICAge30sICAgIC8vICMzNDAgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLkMnCisgICAge30sICAgIC8vICMzNDEgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICB7fSwgICAgLy8gIzM0MiB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYycKKyAgICB7fSwgICAgLy8gIzM0MyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY2MnCisgICAge30sICAgIC8vICMzNDQgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmNwcCcKKyAgICB7fSwgICAgLy8gIzM0NSB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3h4JworICAgIHt9LCAgICAvLyAjMzQ2IHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5zNjInCisgICAge30sICAgIC8vICMzNDcgdGkudGFyZ2V0cy5DNjIvbW9kZWwKKyAgICB7fSwgICAgLy8gIzM0OCB0aS50YXJnZXRzLkM2Mi9wbGF0Zm9ybXMKKyAgICB7fSwgICAgLy8gIzM0OSB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcworICAgIHt9LCAgICAvLyAjMzUwIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScKKyAgICB7fSwgICAgLy8gIzM1MSB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzNTIgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNTMgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJworICAgIHt9LCAgICAvLyAjMzU0IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM1NSB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM1NiB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScKKyAgICB7fSwgICAgLy8gIzM1NyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM1OCB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzU5IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIHt9LCAgICAvLyAjMzYwIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzYxIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNjIgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nCisgICAge30sICAgIC8vICMzNjMgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzNjQgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM2NSB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycKKyAgICB7fSwgICAgLy8gIzM2NiB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM2NyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzY4IHRpLnRhcmdldHMuQzYyL3NlY3RNYXAKKyAgICB7fSwgICAgLy8gIzM2OSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcworICAgIHt9LCAgICAvLyAjMzcwIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfQ2hhcgorICAgIHt9LCAgICAvLyAjMzcxIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRG91YmxlCisgICAge30sICAgIC8vICMzNzIgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GbG9hdAorICAgIHt9LCAgICAvLyAjMzczIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRnhuCisgICAge30sICAgIC8vICMzNzQgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JQXJnCisgICAge30sICAgIC8vICMzNzUgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQKKyAgICB7fSwgICAgLy8gIzM3NiB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDE2CisgICAge30sICAgIC8vICMzNzcgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQzMgorICAgIHt9LCAgICAvLyAjMzc4IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NDAKKyAgICB7fSwgICAgLy8gIzM3OSB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDY0CisgICAge30sICAgIC8vICMzODAgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ4CisgICAge30sICAgIC8vICMzODEgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MRG91YmxlCisgICAge30sICAgIC8vICMzODIgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MTG9uZworICAgIHt9LCAgICAvLyAjMzgzIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfTG9uZworICAgIHt9LCAgICAvLyAjMzg0IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfUHRyCisgICAge30sICAgIC8vICMzODUgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9TaG9ydAorICAgIHt9LCAgICAvLyAjMzg2IHRpLnRhcmdldHMuQzYyL3ZlcnNpb25NYXAKKyAgICB7fSwgICAgLy8gIzM4NyB0aS50YXJnZXRzLkM2NFAvY2MKKyAgICB7fSwgICAgLy8gIzM4OCB0aS50YXJnZXRzLkM2NFAvY2NDb25maWdPcHRzCisgICAge30sICAgIC8vICMzODkgdGkudGFyZ2V0cy5DNjRQL2NjT3B0cworICAgIHt9LCAgICAvLyAjMzkwIHRpLnRhcmdldHMuQzY0UC9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICB7fSwgICAgLy8gIzM5MSB0aS50YXJnZXRzLkM2NFAvZGVidWdHZW4KKyAgICB7fSwgICAgLy8gIzM5MiB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucworICAgIHt9LCAgICAvLyAjMzkzIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuQycKKyAgICB7fSwgICAgLy8gIzM5NCB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICB7fSwgICAgLy8gIzM5NSB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmMnCisgICAge30sICAgIC8vICMzOTYgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jYycKKyAgICB7fSwgICAgLy8gIzM5NyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNwcCcKKyAgICB7fSwgICAgLy8gIzM5OCB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmN4eCcKKyAgICB7fSwgICAgLy8gIzM5OSB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICB7fSwgICAgLy8gIzQwMCB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NCcKKyAgICB7fSwgICAgLy8gIzQwMSB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NFAnCisgICAge30sICAgIC8vICM0MDIgdGkudGFyZ2V0cy5DNjRQL2xuaworICAgIHt9LCAgICAvLyAjNDAzIHRpLnRhcmdldHMuQzY0UC9sbmtPcHRzCisgICAge30sICAgIC8vICM0MDQgdGkudGFyZ2V0cy5DNjRQL21vZGVsCisgICAge30sICAgIC8vICM0MDUgdGkudGFyZ2V0cy5DNjRQL3BsYXRmb3JtcworICAgIHt9LCAgICAvLyAjNDA2IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcworICAgIHt9LCAgICAvLyAjNDA3IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnCisgICAge30sICAgIC8vICM0MDggdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzQwOSB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzCisgICAge30sICAgIC8vICM0MTAgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycKKyAgICB7fSwgICAgLy8gIzQxMSB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjNDEyIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzQxMyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnCisgICAge30sICAgIC8vICM0MTQgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjNDE1IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycworICAgIHt9LCAgICAvLyAjNDE2IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScKKyAgICB7fSwgICAgLy8gIzQxNyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICM0MTggdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAge30sICAgIC8vICM0MTkgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJworICAgIHt9LCAgICAvLyAjNDIwIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzQyMSB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzQyMiB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnCisgICAge30sICAgIC8vICM0MjMgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjNDI0IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjNDI1IHRpLnRhcmdldHMuQzY0UC9zZWN0TWFwCisgICAge30sICAgIC8vICM0MjYgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzCisgICAge30sICAgIC8vICM0MjcgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfQ2hhcgorICAgIHt9LCAgICAvLyAjNDI4IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0RvdWJsZQorICAgIHt9LCAgICAvLyAjNDI5IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Zsb2F0CisgICAge30sICAgIC8vICM0MzAgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRnhuCisgICAge30sICAgIC8vICM0MzEgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSUFyZworICAgIHt9LCAgICAvLyAjNDMyIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludAorICAgIHt9LCAgICAvLyAjNDMzIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDE2CisgICAge30sICAgIC8vICM0MzQgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MzIKKyAgICB7fSwgICAgLy8gIzQzNSB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ0MAorICAgIHt9LCAgICAvLyAjNDM2IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDY0CisgICAge30sICAgIC8vICM0MzcgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50OAorICAgIHt9LCAgICAvLyAjNDM4IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xEb3VibGUKKyAgICB7fSwgICAgLy8gIzQzOSB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MTG9uZworICAgIHt9LCAgICAvLyAjNDQwIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xvbmcKKyAgICB7fSwgICAgLy8gIzQ0MSB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9QdHIKKyAgICB7fSwgICAgLy8gIzQ0MiB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9TaG9ydAorICAgIHt9LCAgICAvLyAjNDQzIHRpLnRhcmdldHMuQzY0UC92ZXJzCisgICAge30sICAgIC8vICM0NDQgdGkudGFyZ2V0cy5DNjRQL3ZlcnNpb25NYXAKKyAgICB7fSwgICAgLy8gIzQ0NSAKK10KKworX19vID0gX19vYmpbMF0gIAorICAgIF9fb1snJG1vZHVsZXMnXSA9IF9fb2JqWzEuMF0KKyAgICBfX29bJ2J1aWxkJ10gPSBfX29ialszMjYuMF0KKworX19vID0gX19vYmpbMV0gIAorICAgIF9fb1snIzMyNzcwJ10gPSBfX29ialsyLjBdCisgICAgX19vWycjMzI3NzEnXSA9IF9fb2JqWzIwLjBdCisgICAgX19vWycjMzI3NzInXSA9IF9fb2JqWzM4LjBdCisgICAgX19vWycjMzI3NzMnXSA9IF9fb2JqWzU1LjBdCisgICAgX19vWycjMzI3NzQnXSA9IF9fb2JqWzcyLjBdCisgICAgX19vWycjMzI3NzUnXSA9IF9fb2JqWzkxLjBdCisgICAgX19vWycjMzI3NzYnXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snIzMyNzc3J10gPSBfX29ialsxMjUuMF0KKyAgICBfX29bJyMzMjc3OCddID0gX19vYmpbMTQ3LjBdCisgICAgX19vWycjMzI3NzknXSA9IF9fb2JqWzE2NC4wXQorICAgIF9fb1snIzMyNzgwJ10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJyMzMjc4MSddID0gX19vYmpbMjA0LjBdCisgICAgX19vWycjMzI3ODInXSA9IF9fb2JqWzIyNS4wXQorICAgIF9fb1snIzMyNzgzJ10gPSBfX29ialsyMjguMF0KKyAgICBfX29bJyMzMjc4NCddID0gX19vYmpbMjcxLjBdCisgICAgX19vWycjMzI3ODYnXSA9IF9fb2JqWzMwOS4wXQorICAgIF9fb1snaGVsbG8ubW9kLlRhbGtlciddID0gX19vYmpbMzA5LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Bc3NlcnQnXSA9IF9fb2JqWzIuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkNvcmUnXSA9IF9fb2JqWzIwLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5EZWZhdWx0cyddID0gX19vYmpbMzguMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkRpYWdzJ10gPSBfX29ials1NS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuRXJyb3InXSA9IF9fb2JqWzcyLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5HYXRlJ10gPSBfX29ials5MS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuR2F0ZU51bGwnXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuSGVhcFN0ZCddID0gX19vYmpbMTY2LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Mb2cnXSA9IF9fb2JqWzEyNS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuTWFpbiddID0gX19vYmpbMTQ3LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5NZW1vcnknXSA9IF9fb2JqWzE2NC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3RhcnR1cCddID0gX19vYmpbMjA0LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TeXNNaW4nXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3lzdGVtJ10gPSBfX29ialsyMjUuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlRleHQnXSA9IF9fb2JqWzI3MS4wXQorCitfX28gPSBfX29ialsyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszLjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0VfYXNzZXJ0RmFpbGVkJ10gPSBfX29ials0LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials1LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNi4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTkuMF0KKworX19vID0gX19vYmpbM10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNF0gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhc3NlcnRpb24rZmFpbHVyZSUyNXMlMjVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzVdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzZdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbN10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzhdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTBdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTFdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxM10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTRdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTVdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMThdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTldICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwXSAgLy8geGRjLnJ1bnRpbWUuQ29yZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjEuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfaW5pdGlhbGl6ZWRQYXJhbXMnXSA9IF9fb2JqWzIyLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzEKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjMuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzcuMF0KKworX19vID0gX19vYmpbMjFdICAvLyB4ZGMucnVudGltZS5Db3JlLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQV9pbml0aWFsaXplZFBhcmFtcyUzQSt1bmluaXRpYWxpemVkK1BhcmFtcytzdHJ1Y3QnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjNdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjRdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMzEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialszMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMzUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjZdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyN10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyOF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI5XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMwXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzNdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzRdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzZdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszN10gIC8vIHhkYy5ydW50aW1lLkNvcmUvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszOS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzIKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNDAuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials0MS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbNTQuMF0KKworX19vID0gX19vYmpbMzldICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzQxXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials0Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzQ0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials0Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials0OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzUwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials1Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0M10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDRdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDZdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0N10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ4XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDldICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUwXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNTEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTFdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUyXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzUzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUzXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1NF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU1XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzU2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncycsICdVVEYtOCcpKQorICAgIF9fb1snQUxMJ10gPSA2NTUzNQorICAgIF9fb1snQVNTRVJUJ10gPSAxNgorICAgIF9fb1snRU5UUlknXSA9IDEKKyAgICBfX29bJ0VYSVQnXSA9IDIKKyAgICBfX29bJ0lOVEVSTkFMJ10gPSA4CisgICAgX19vWydMSUZFQ1lDTEUnXSA9IDQKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzMKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snVVNFUjEnXSA9IDI1NgorICAgIF9fb1snVVNFUjInXSA9IDUxMgorICAgIF9fb1snVVNFUjMnXSA9IDEwMjQKKyAgICBfX29bJ1VTRVI0J10gPSAyMDQ4CisgICAgX19vWydVU0VSNSddID0gNDA5NgorICAgIF9fb1snVVNFUjYnXSA9IDgxOTIKKyAgICBfX29bJ1VTRVI3J10gPSAxNjM4NAorICAgIF9fb1snVVNFUjgnXSA9IDMyNzY4CisgICAgX19vWydjb21tb24kJ10gPSBfX29ials1Ny4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzU4LjBdCisgICAgX19vWydkaWN0QmFzZSddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3NldE1hc2tFbmFibGVkJ10gPSBmYWxzZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ials3MS4wXQorCitfX28gPSBfX29ials1Nl0gIC8vIHhkYy5ydW50aW1lLkRpYWdzLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU3XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNThdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzYzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzY1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbNjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzY5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTldICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYwXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2MV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYyXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2M10gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY0XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjVdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2Nl0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjddICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2OF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjldICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNzAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzBdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzcxXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3Mvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzJdICAvLyB4ZGMucnVudGltZS5FcnJvcgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbNzMuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJywgJ1VURi04JykpCisgICAgX19vWydFX2dlbmVyaWMnXSA9IF9fb2JqWzc0LjBdCisgICAgX19vWydFX21lbW9yeSddID0gX19vYmpbNzUuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzQKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snTlVNQVJHUyddID0gMgorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNzYuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials3Ny4wXQorICAgIF9fb1snbWF4RGVwdGgnXSA9IDE2CisgICAgX19vWydwb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuVU5XSU5EJywgJ1VURi04JykpCisgICAgX19vWydyYWlzZUhvb2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzkwLjBdCisKK19fbyA9IF9fb2JqWzczXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzRdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjMxJywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ2VuZXJpYytlcnJvciUzQSslMjVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc1XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ291dCtvZittZW1vcnklM0EraGVhcCUzRDB4JTI1eCUyQytzaXplJTNEJTI1dScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3Nl0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzc3XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials4OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc4XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3OV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODBdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzgxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4MV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODJdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4M10gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg0XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODVdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg2XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODddICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg4XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzg5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg5XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5MF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzkxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbOTIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials5My4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzk0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxMDcuMF0KKworX19vID0gX19vYmpbOTJdICAvLyB4ZGMucnVudGltZS5HYXRlLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTNdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbOTRdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbOTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials5Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbOTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTAxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTAzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxMDUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk1XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials5Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTZdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5N10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzk4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5OF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTAwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDBdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTAxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDJdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDNdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTA0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNV0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTA2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwN10gIC8vIHhkYy5ydW50aW1lLkdhdGUvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDhdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTA5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCcsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydRX0JMT0NLSU5HJ10gPSAxCisgICAgX19vWydRX1BSRUVNUFRJTkcnXSA9IDIKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzExMC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzExMS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTI0LjBdCisKK19fbyA9IF9fb2JqWzEwOV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExMF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzExMV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTEyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTE0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMTYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTE4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTIwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxMjIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTJdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTEzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTNdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTVdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTddICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMThdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjBdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMjEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjJdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyM10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI1XSAgLy8geGRjLnJ1bnRpbWUuTG9nCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxMjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZycsICdVVEYtOCcpKQorICAgIF9fb1snTF9jb25zdHJ1Y3QnXSA9IF9fb2JqWzEyNy4wXQorICAgIF9fb1snTF9jcmVhdGUnXSA9IF9fb2JqWzEyOC4wXQorICAgIF9fb1snTF9kZWxldGUnXSA9IF9fb2JqWzEyOS4wXQorICAgIF9fb1snTF9kZXN0cnVjdCddID0gX19vYmpbMTMwLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydOVU1BUkdTJ10gPSA4CisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydQUklOVEZJRCddID0gMAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTMxLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTMyLjBdCisgICAgX19vWydpZFRvSW5mbyddID0gX19vYmpbMTQ1LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxNDYuMF0KKworX19vID0gX19vYmpbMTI2XSAgLy8geGRjLnJ1bnRpbWUuTG9nLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjddICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMwJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyOF0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI5XSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMycsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzMF0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctLSUzRStkZXN0cnVjdCUzQSslMjglMjVwJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzMV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTMyXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTMzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTM1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMzcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTM5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTQxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNDMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMzXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTM0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzRdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM1XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEzNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM2XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzN10gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMzguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzOF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM5XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQwXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0MV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0Ml0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDNdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ0XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0NV0gIC8vIHhkYy5ydW50aW1lLkxvZy9pZFRvSW5mbworICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWycjNDY4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2NvbnN0cnVjdCUzQSUzQSUzQy0tK2NvbnN0cnVjdCUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNDY4JykKKyAgICBfX28ucHVzaChfX29bJyM0OTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlJTNBJTNBJTNDLS0rY3JlYXRlJTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM0OTInKQorICAgIF9fby5wdXNoKF9fb1snIzUxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9kZXN0cnVjdCUzQSUzQS0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzUxMycpCisgICAgX19vLnB1c2goX19vWycjNTMyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2RlbGV0ZSUzQSUzQS0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM1MzInKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGaWRUb0luZm8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ2XSAgLy8geGRjLnJ1bnRpbWUuTG9nL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDddICAvLyB4ZGMucnVudGltZS5NYWluCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNDguMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9HYXRlUHJveHknXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc4CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzE0OS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzE1MC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTYzLjBdCisKK19fbyA9IF9fb2JqWzE0OF0gIC8vIHhkYy5ydW50aW1lLk1haW4vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDldICAvLyB4ZGMucnVudGltZS5NYWluL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTUwXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE1MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE1My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTU1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE1Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE1OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTYxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTFdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUyXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUzXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTRdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTVdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1Nl0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTddICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1OF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1OV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYwXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYxXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYyXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYzXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2NF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTY1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnknLCAnVVRGLTgnKSkKKyAgICBfX29bJ0hlYXBQcm94eSddID0gX19vYmpbMTY2LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3OQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydRX0JMT0NLSU5HJ10gPSAxCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxODkuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxOTAuMF0KKyAgICBfX29bJ2RlZmF1bHRIZWFwSW5zdGFuY2UnXSA9IF9fb2JqWzE2OC4wXQorICAgIF9fb1snZGVmYXVsdEhlYXBTaXplJ10gPSA0MDk2CisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyMDMuMF0KKworX19vID0gX19vYmpbMTY1XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5LyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNjcuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfaW52YWxpZEFsaWdubWVudCddID0gX19vYmpbMTcwLjBdCisgICAgX19vWydBX2ludmFsaWRUb3RhbEZyZWVTaXplJ10gPSBfX29ialsxNzEuMF0KKyAgICBfX29bJ0FfemVyb1NpemUnXSA9IF9fb2JqWzE3Mi4wXQorICAgIF9fb1snRV9ub1JUU01lbW9yeSddID0gX19vYmpbMTczLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODAKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTc0LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTc1LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxODguMF0KKworX19vID0gX19vYmpbMTY3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsxNjguMF0KKworX19vID0gX19vYmpbMTY4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRtb2R1bGUnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2luc3RhbmNlJ10gPSBfX29ialsxNjkuMF0KKyAgICBfX29bJ3NpemUnXSA9IDQwOTYKKworX19vID0gX19vYmpbMTY5XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwL2luc3RhbmNlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlJTIzMCUyRmluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyduYW1lJ10gPSBudWxsCisKK19fbyA9IF9fb2JqWzE3MF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzNCcsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkX2FsbG9jKy0rcmVxdWVzdGVkK2FsaWdubWVudCtpcytncmVhdGVyK3RoYW4rYWxsb3dlZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzFdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSGVhcFN0ZCtpbnN0YW5jZSt0b3RhbEZyZWVTaXplK2lzK2dyZWF0ZXIrdGhhbitzdGFydGluZytzaXplJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3Ml0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkX2NyZWF0ZStjYW5ub3QraGF2ZSthK3plcm8rc2l6ZSt2YWx1ZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzNdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjM0JywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVGhlK1JUUytoZWFwK2lzK3VzZWQrdXAuK0V4YW1pbmUrUHJvZ3JhbS5oZWFwLicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzRdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTc1XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE3Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE3Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzldICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODBdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4MV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODJdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4M10gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4NF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg1XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg2XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4OV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTkwXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTkxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTkzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxOTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTk3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTk5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyMDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkxXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTkyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTJdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkzXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk0XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5NV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5Nl0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk3XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk4XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5OV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjAwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwMF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDFdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAyXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwM10gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjA1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJywgJ1VURi04JykpCisgICAgX19vWydET05FJ10gPSAtMQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzgxCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ05PVERPTkUnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzIwNi4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzIwNy4wXQorICAgIF9fb1snZXhlY0ltcGwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JJywgJ1VURi04JykpCisgICAgX19vWydmaXJzdEZ4bnMnXSA9IF9fb2JqWzIyMC4wXQorICAgIF9fb1snbGFzdEZ4bnMnXSA9IF9fb2JqWzIyMS4wXQorICAgIF9fb1snbWF4UGFzc2VzJ10gPSAzMgorICAgIF9fb1sncmVzZXRGeG4nXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydzZnhuUnRzJ10gPSBfX29ialsyMjIuMF0KKyAgICBfX29bJ3NmeG5UYWInXSA9IF9fb2JqWzIyMy4wXQorICAgIF9fb1snc3RhcnRNb2RzRnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzIyNC4wXQorCitfX28gPSBfX29ialsyMDVdICAvLyB4ZGMucnVudGltZS5TdGFydHVwLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA2XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIwN10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyMDguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyMTAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzIxMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyMTQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyMTYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzIxOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA4XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwOV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxMF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxMS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjExXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjEyXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjEzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTNdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTVdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTZdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxN10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxOF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxOV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvZmlyc3RGeG5zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGZmlyc3RGeG5zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvbGFzdEZ4bnMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZsYXN0RnhucycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjJdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZzZnhuUnRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSB0cnVlCisgICAgX19vWycxJ10gPSB0cnVlCisKK19fbyA9IF9fb2JqWzIyM10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRnNmeG5UYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbScsICdVVEYtOCcpKQorICAgIF9fb1snQV9jYW5ub3RGaXRJbnRvQXJnJ10gPSBfX29ialsyMjcuMF0KKyAgICBfX29bJ01vZHVsZV9HYXRlUHJveHknXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODIKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snU1RBVFVTX1VOS05PV04nXSA9IDUxOTY2CisgICAgX19vWydTdXBwb3J0UHJveHknXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjU1LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjU2LjBdCisgICAgX19vWydleGl0RnhucyddID0gX19vYmpbMjY5LjBdCisgICAgX19vWydleHRlbmRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSScsICdVVEYtOCcpKQorICAgIF9fb1snZXh0ZW5kZWRGb3JtYXRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNSUyNEwnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21heEF0ZXhpdEhhbmRsZXJzJ10gPSA4CisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyNzAuMF0KKworX19vID0gX19vYmpbMjI2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjddICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQV9jYW5ub3RGaXRJbnRvQXJnJTNBK3NpemVvZiUyOEZsb2F0JTI5KyUzRStzaXplb2YlMjhBcmclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI4XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMjkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbicsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODMKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snYnVmU2l6ZSddID0gMTAyNAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjMwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjMxLjBdCisgICAgX19vWydmbHVzaEF0RXhpdCddID0gdHJ1ZQorICAgIF9fb1snb3V0cHV0RnVuYyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JJywgJ1VURi04JykpCisgICAgX19vWydvdXRwdXRGeG4nXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydyb3ZWaWV3SW5mbyddID0gX19vYmpbMjQ0LjBdCisgICAgX19vWydzZWN0aW9uTmFtZSddID0gbnVsbAorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyNTQuMF0KKworX19vID0gX19vYmpbMjI5XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzBdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIzMV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzIzMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzIzNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjM2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzIzOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzI0MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzMl0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjMzXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzZdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzddICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzOF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzOV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDBdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI0MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDFdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQyXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0M10gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDRdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snJG1vZHVsZSddID0gX19vYmpbMjQ1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMScsICdVVEYtOCcpKQorICAgIF9fb1snc2hvd1Jhd1RhYiddID0gdHJ1ZQorICAgIF9fb1sndmlld01hcCddID0gX19vYmpbMjUxLjBdCisKK19fbyA9IF9fb2JqWzI0NV0gIC8vIHhkYy5yb3YuVmlld0luZm8KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzI0Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDZdICAvLyB4ZGMucm92LlZpZXdJbmZvLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8lMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzI0Ny4wXQorICAgIF9fb1snMSddID0gX19vYmpbMjQ0LjBdCisKK19fbyA9IF9fb2JqWzI0N10gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0luc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyckbW9kdWxlJ10gPSBfX29ialsyNDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJywgJ1VURi04JykpCisgICAgX19vWydzaG93UmF3VGFiJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TWFwJ10gPSBfX29ialsyNDguMF0KKworX19vID0gX19vYmpbMjQ4XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snQmFzaWMnXSA9IF9fb2JqWzI0OS4wXSk7IF9fby4ka2V5cy5wdXNoKCdCYXNpYycpCisgICAgX19vLnB1c2goX19vWydSZWNvcmRzJ10gPSBfX29ialsyNTAuMF0pOyBfX28uJGtleXMucHVzaCgnUmVjb3JkcycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQ5XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ0Jhc2ljJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAlMkZ2aWV3TWFwJTJGJTI3QmFzaWMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQmFzaWNWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSU5TVEFOQ0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0QmFzaWMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUwXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ1JlY29yZHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAlMkYlMjdSZWNvcmRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1JlY29yZFZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JTlNUQU5DRV9EQVRBJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdFJlY29yZHMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUxXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snTW9kdWxlJ10gPSBfX29ialsyNTIuMF0pOyBfX28uJGtleXMucHVzaCgnTW9kdWxlJykKKyAgICBfX28ucHVzaChfX29bJ091dHB1dEJ1ZmZlciddID0gX19vYmpbMjUzLjBdKTsgX19vLiRrZXlzLnB1c2goJ091dHB1dEJ1ZmZlcicpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMSUyRnZpZXdNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUyXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ01vZHVsZScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJTJGdmlld01hcCUyRiUyN01vZHVsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGVWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uTU9EVUxFJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdE1vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTNdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nT3V0cHV0QnVmZmVyJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzElMkZ2aWV3TWFwJTJGJTI3T3V0cHV0QnVmZmVyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0J1ZmZlckVudHJ5VmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLk1PRFVMRV9EQVRBJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdE91dHB1dEJ1ZmZlcicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTRdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1NV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjU2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjU3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjYzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjY1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyNjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU3XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjU4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNThdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU5XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYwXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2MV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2Ml0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYzXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY0XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2NV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjY2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2Nl0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjddICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY4XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2OV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9leGl0RnhucworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGZXhpdEZ4bnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjcwXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzFdICAvLyB4ZGMucnVudGltZS5UZXh0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyNzIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4NAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjaGFyQ250J10gPSA2ODAKKyAgICBfX29bJ2NoYXJUYWInXSA9IF9fb2JqWzI3My4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjc0LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjc1LjBdCisgICAgX19vWydpc0xvYWRlZCddID0gdHJ1ZQorICAgIF9fb1snbmFtZUVtcHR5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QmVtcHR5LWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVTdGF0aWMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCc3RhdGljLWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVVbmtub3duJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QnVua25vd24taW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbm9kZUNudCddID0gMTkKKyAgICBfX29bJ25vZGVUYWInXSA9IF9fb2JqWzI4OC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzA4LjBdCisgICAgX19vWyd2aXNpdFJvcGVGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Zpc2l0Um9wZUZ4bjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzNdICAvLyB4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjaGFyVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSAwCisgICAgX19vWycxJ10gPSA2NQorICAgIF9fb1snMiddID0gOTUKKyAgICBfX29bJzMnXSA9IDEwNQorICAgIF9fb1snNCddID0gMTEwCisgICAgX19vWyc1J10gPSAxMDUKKyAgICBfX29bJzYnXSA9IDExNgorICAgIF9fb1snNyddID0gMTA1CisgICAgX19vWyc4J10gPSA5NworICAgIF9fb1snOSddID0gMTA4CisgICAgX19vWycxMCddID0gMTA1CisgICAgX19vWycxMSddID0gMTIyCisgICAgX19vWycxMiddID0gMTAxCisgICAgX19vWycxMyddID0gMTAwCisgICAgX19vWycxNCddID0gODAKKyAgICBfX29bJzE1J10gPSA5NworICAgIF9fb1snMTYnXSA9IDExNAorICAgIF9fb1snMTcnXSA9IDk3CisgICAgX19vWycxOCddID0gMTA5CisgICAgX19vWycxOSddID0gMTE1CisgICAgX19vWycyMCddID0gNTgKKyAgICBfX29bJzIxJ10gPSAzMgorICAgIF9fb1snMjInXSA9IDExNworICAgIF9fb1snMjMnXSA9IDExMAorICAgIF9fb1snMjQnXSA9IDEwNQorICAgIF9fb1snMjUnXSA9IDExMAorICAgIF9fb1snMjYnXSA9IDEwNQorICAgIF9fb1snMjcnXSA9IDExNgorICAgIF9fb1snMjgnXSA9IDEwNQorICAgIF9fb1snMjknXSA9IDk3CisgICAgX19vWyczMCddID0gMTA4CisgICAgX19vWyczMSddID0gMTA1CisgICAgX19vWyczMiddID0gMTIyCisgICAgX19vWyczMyddID0gMTAxCisgICAgX19vWyczNCddID0gMTAwCisgICAgX19vWyczNSddID0gMzIKKyAgICBfX29bJzM2J10gPSA4MAorICAgIF9fb1snMzcnXSA9IDk3CisgICAgX19vWyczOCddID0gMTE0CisgICAgX19vWyczOSddID0gOTcKKyAgICBfX29bJzQwJ10gPSAxMDkKKyAgICBfX29bJzQxJ10gPSAxMTUKKyAgICBfX29bJzQyJ10gPSAzMgorICAgIF9fb1snNDMnXSA9IDExNQorICAgIF9fb1snNDQnXSA9IDExNgorICAgIF9fb1snNDUnXSA9IDExNAorICAgIF9fb1snNDYnXSA9IDExNworICAgIF9fb1snNDcnXSA9IDk5CisgICAgX19vWyc0OCddID0gMTE2CisgICAgX19vWyc0OSddID0gMAorICAgIF9fb1snNTAnXSA9IDcyCisgICAgX19vWyc1MSddID0gMTAxCisgICAgX19vWyc1MiddID0gOTcKKyAgICBfX29bJzUzJ10gPSAxMTIKKyAgICBfX29bJzU0J10gPSA3NworICAgIF9fb1snNTUnXSA9IDEwNQorICAgIF9fb1snNTYnXSA9IDExMAorICAgIF9fb1snNTcnXSA9IDk1CisgICAgX19vWyc1OCddID0gOTkKKyAgICBfX29bJzU5J10gPSAxMTQKKyAgICBfX29bJzYwJ10gPSAxMDEKKyAgICBfX29bJzYxJ10gPSA5NworICAgIF9fb1snNjInXSA9IDExNgorICAgIF9fb1snNjMnXSA9IDEwMQorICAgIF9fb1snNjQnXSA9IDMyCisgICAgX19vWyc2NSddID0gOTkKKyAgICBfX29bJzY2J10gPSA5NworICAgIF9fb1snNjcnXSA9IDExMAorICAgIF9fb1snNjgnXSA9IDExMAorICAgIF9fb1snNjknXSA9IDExMQorICAgIF9fb1snNzAnXSA9IDExNgorICAgIF9fb1snNzEnXSA9IDMyCisgICAgX19vWyc3MiddID0gMTA0CisgICAgX19vWyc3MyddID0gOTcKKyAgICBfX29bJzc0J10gPSAxMTgKKyAgICBfX29bJzc1J10gPSAxMDEKKyAgICBfX29bJzc2J10gPSAzMgorICAgIF9fb1snNzcnXSA9IDk3CisgICAgX19vWyc3OCddID0gMzIKKyAgICBfX29bJzc5J10gPSAxMjIKKyAgICBfX29bJzgwJ10gPSAxMDEKKyAgICBfX29bJzgxJ10gPSAxMTQKKyAgICBfX29bJzgyJ10gPSAxMTEKKyAgICBfX29bJzgzJ10gPSAzMgorICAgIF9fb1snODQnXSA9IDExNQorICAgIF9fb1snODUnXSA9IDEwNQorICAgIF9fb1snODYnXSA9IDEyMgorICAgIF9fb1snODcnXSA9IDEwMQorICAgIF9fb1snODgnXSA9IDMyCisgICAgX19vWyc4OSddID0gMTE4CisgICAgX19vWyc5MCddID0gOTcKKyAgICBfX29bJzkxJ10gPSAxMDgKKyAgICBfX29bJzkyJ10gPSAxMTcKKyAgICBfX29bJzkzJ10gPSAxMDEKKyAgICBfX29bJzk0J10gPSAwCisgICAgX19vWyc5NSddID0gNzIKKyAgICBfX29bJzk2J10gPSAxMDEKKyAgICBfX29bJzk3J10gPSA5NworICAgIF9fb1snOTgnXSA9IDExMgorICAgIF9fb1snOTknXSA9IDgzCisgICAgX19vWycxMDAnXSA9IDExNgorICAgIF9fb1snMTAxJ10gPSAxMDAKKyAgICBfX29bJzEwMiddID0gOTUKKyAgICBfX29bJzEwMyddID0gOTkKKyAgICBfX29bJzEwNCddID0gMTE0CisgICAgX19vWycxMDUnXSA9IDEwMQorICAgIF9fb1snMTA2J10gPSA5NworICAgIF9fb1snMTA3J10gPSAxMTYKKyAgICBfX29bJzEwOCddID0gMTAxCisgICAgX19vWycxMDknXSA9IDMyCisgICAgX19vWycxMTAnXSA9IDk5CisgICAgX19vWycxMTEnXSA9IDk3CisgICAgX19vWycxMTInXSA9IDExMAorICAgIF9fb1snMTEzJ10gPSAxMTAKKyAgICBfX29bJzExNCddID0gMTExCisgICAgX19vWycxMTUnXSA9IDExNgorICAgIF9fb1snMTE2J10gPSAzMgorICAgIF9fb1snMTE3J10gPSAxMDQKKyAgICBfX29bJzExOCddID0gOTcKKyAgICBfX29bJzExOSddID0gMTE4CisgICAgX19vWycxMjAnXSA9IDEwMQorICAgIF9fb1snMTIxJ10gPSAzMgorICAgIF9fb1snMTIyJ10gPSA5NworICAgIF9fb1snMTIzJ10gPSAzMgorICAgIF9fb1snMTI0J10gPSAxMjIKKyAgICBfX29bJzEyNSddID0gMTAxCisgICAgX19vWycxMjYnXSA9IDExNAorICAgIF9fb1snMTI3J10gPSAxMTEKKyAgICBfX29bJzEyOCddID0gMzIKKyAgICBfX29bJzEyOSddID0gMTE1CisgICAgX19vWycxMzAnXSA9IDEwNQorICAgIF9fb1snMTMxJ10gPSAxMjIKKyAgICBfX29bJzEzMiddID0gMTAxCisgICAgX19vWycxMzMnXSA9IDMyCisgICAgX19vWycxMzQnXSA9IDExOAorICAgIF9fb1snMTM1J10gPSA5NworICAgIF9fb1snMTM2J10gPSAxMDgKKyAgICBfX29bJzEzNyddID0gMTE3CisgICAgX19vWycxMzgnXSA9IDEwMQorICAgIF9fb1snMTM5J10gPSAwCisgICAgX19vWycxNDAnXSA9IDcyCisgICAgX19vWycxNDEnXSA9IDEwMQorICAgIF9fb1snMTQyJ10gPSA5NworICAgIF9fb1snMTQzJ10gPSAxMTIKKyAgICBfX29bJzE0NCddID0gODMKKyAgICBfX29bJzE0NSddID0gMTE2CisgICAgX19vWycxNDYnXSA9IDEwMAorICAgIF9fb1snMTQ3J10gPSAzMgorICAgIF9fb1snMTQ4J10gPSAxMDUKKyAgICBfX29bJzE0OSddID0gMTEwCisgICAgX19vWycxNTAnXSA9IDExNQorICAgIF9fb1snMTUxJ10gPSAxMTYKKyAgICBfX29bJzE1MiddID0gOTcKKyAgICBfX29bJzE1MyddID0gMTEwCisgICAgX19vWycxNTQnXSA9IDk5CisgICAgX19vWycxNTUnXSA9IDEwMQorICAgIF9fb1snMTU2J10gPSAzMgorICAgIF9fb1snMTU3J10gPSAxMTYKKyAgICBfX29bJzE1OCddID0gMTExCisgICAgX19vWycxNTknXSA9IDExNgorICAgIF9fb1snMTYwJ10gPSA5NworICAgIF9fb1snMTYxJ10gPSAxMDgKKyAgICBfX29bJzE2MiddID0gNzAKKyAgICBfX29bJzE2MyddID0gMTE0CisgICAgX19vWycxNjQnXSA9IDEwMQorICAgIF9fb1snMTY1J10gPSAxMDEKKyAgICBfX29bJzE2NiddID0gODMKKyAgICBfX29bJzE2NyddID0gMTA1CisgICAgX19vWycxNjgnXSA9IDEyMgorICAgIF9fb1snMTY5J10gPSAxMDEKKyAgICBfX29bJzE3MCddID0gMzIKKyAgICBfX29bJzE3MSddID0gMTA1CisgICAgX19vWycxNzInXSA9IDExNQorICAgIF9fb1snMTczJ10gPSAzMgorICAgIF9fb1snMTc0J10gPSAxMDMKKyAgICBfX29bJzE3NSddID0gMTE0CisgICAgX19vWycxNzYnXSA9IDEwMQorICAgIF9fb1snMTc3J10gPSA5NworICAgIF9fb1snMTc4J10gPSAxMTYKKyAgICBfX29bJzE3OSddID0gMTAxCisgICAgX19vWycxODAnXSA9IDExNAorICAgIF9fb1snMTgxJ10gPSAzMgorICAgIF9fb1snMTgyJ10gPSAxMTYKKyAgICBfX29bJzE4MyddID0gMTA0CisgICAgX19vWycxODQnXSA9IDk3CisgICAgX19vWycxODUnXSA9IDExMAorICAgIF9fb1snMTg2J10gPSAzMgorICAgIF9fb1snMTg3J10gPSAxMTUKKyAgICBfX29bJzE4OCddID0gMTE2CisgICAgX19vWycxODknXSA9IDk3CisgICAgX19vWycxOTAnXSA9IDExNAorICAgIF9fb1snMTkxJ10gPSAxMTYKKyAgICBfX29bJzE5MiddID0gMTA1CisgICAgX19vWycxOTMnXSA9IDExMAorICAgIF9fb1snMTk0J10gPSAxMDMKKyAgICBfX29bJzE5NSddID0gMzIKKyAgICBfX29bJzE5NiddID0gMTE1CisgICAgX19vWycxOTcnXSA9IDEwNQorICAgIF9fb1snMTk4J10gPSAxMjIKKyAgICBfX29bJzE5OSddID0gMTAxCisgICAgX19vWycyMDAnXSA9IDAKKyAgICBfX29bJzIwMSddID0gNzIKKyAgICBfX29bJzIwMiddID0gMTAxCisgICAgX19vWycyMDMnXSA9IDk3CisgICAgX19vWycyMDQnXSA9IDExMgorICAgIF9fb1snMjA1J10gPSA4MworICAgIF9fb1snMjA2J10gPSAxMTYKKyAgICBfX29bJzIwNyddID0gMTAwCisgICAgX19vWycyMDgnXSA9IDk1CisgICAgX19vWycyMDknXSA9IDk3CisgICAgX19vWycyMTAnXSA9IDEwOAorICAgIF9fb1snMjExJ10gPSAxMDgKKyAgICBfX29bJzIxMiddID0gMTExCisgICAgX19vWycyMTMnXSA9IDk5CisgICAgX19vWycyMTQnXSA9IDMyCisgICAgX19vWycyMTUnXSA9IDQ1CisgICAgX19vWycyMTYnXSA9IDMyCisgICAgX19vWycyMTcnXSA9IDExNAorICAgIF9fb1snMjE4J10gPSAxMDEKKyAgICBfX29bJzIxOSddID0gMTEzCisgICAgX19vWycyMjAnXSA9IDExNworICAgIF9fb1snMjIxJ10gPSAxMDEKKyAgICBfX29bJzIyMiddID0gMTE1CisgICAgX19vWycyMjMnXSA9IDExNgorICAgIF9fb1snMjI0J10gPSAxMDEKKyAgICBfX29bJzIyNSddID0gMTAwCisgICAgX19vWycyMjYnXSA9IDMyCisgICAgX19vWycyMjcnXSA9IDk3CisgICAgX19vWycyMjgnXSA9IDEwOAorICAgIF9fb1snMjI5J10gPSAxMDUKKyAgICBfX29bJzIzMCddID0gMTAzCisgICAgX19vWycyMzEnXSA9IDExMAorICAgIF9fb1snMjMyJ10gPSAxMDkKKyAgICBfX29bJzIzMyddID0gMTAxCisgICAgX19vWycyMzQnXSA9IDExMAorICAgIF9fb1snMjM1J10gPSAxMTYKKyAgICBfX29bJzIzNiddID0gMzIKKyAgICBfX29bJzIzNyddID0gMTA1CisgICAgX19vWycyMzgnXSA9IDExNQorICAgIF9fb1snMjM5J10gPSAzMgorICAgIF9fb1snMjQwJ10gPSAxMDMKKyAgICBfX29bJzI0MSddID0gMTE0CisgICAgX19vWycyNDInXSA9IDEwMQorICAgIF9fb1snMjQzJ10gPSA5NworICAgIF9fb1snMjQ0J10gPSAxMTYKKyAgICBfX29bJzI0NSddID0gMTAxCisgICAgX19vWycyNDYnXSA9IDExNAorICAgIF9fb1snMjQ3J10gPSAzMgorICAgIF9fb1snMjQ4J10gPSAxMTYKKyAgICBfX29bJzI0OSddID0gMTA0CisgICAgX19vWycyNTAnXSA9IDk3CisgICAgX19vWycyNTEnXSA9IDExMAorICAgIF9fb1snMjUyJ10gPSAzMgorICAgIF9fb1snMjUzJ10gPSA5NworICAgIF9fb1snMjU0J10gPSAxMDgKKyAgICBfX29bJzI1NSddID0gMTA4CisgICAgX19vWycyNTYnXSA9IDExMQorICAgIF9fb1snMjU3J10gPSAxMTkKKyAgICBfX29bJzI1OCddID0gMTAxCisgICAgX19vWycyNTknXSA9IDEwMAorICAgIF9fb1snMjYwJ10gPSAwCisgICAgX19vWycyNjEnXSA9IDY1CisgICAgX19vWycyNjInXSA9IDk1CisgICAgX19vWycyNjMnXSA9IDk5CisgICAgX19vWycyNjQnXSA9IDk3CisgICAgX19vWycyNjUnXSA9IDExMAorICAgIF9fb1snMjY2J10gPSAxMTAKKyAgICBfX29bJzI2NyddID0gMTExCisgICAgX19vWycyNjgnXSA9IDExNgorICAgIF9fb1snMjY5J10gPSA3MAorICAgIF9fb1snMjcwJ10gPSAxMDUKKyAgICBfX29bJzI3MSddID0gMTE2CisgICAgX19vWycyNzInXSA9IDczCisgICAgX19vWycyNzMnXSA9IDExMAorICAgIF9fb1snMjc0J10gPSAxMTYKKyAgICBfX29bJzI3NSddID0gMTExCisgICAgX19vWycyNzYnXSA9IDY1CisgICAgX19vWycyNzcnXSA9IDExNAorICAgIF9fb1snMjc4J10gPSAxMDMKKyAgICBfX29bJzI3OSddID0gNTgKKyAgICBfX29bJzI4MCddID0gMzIKKyAgICBfX29bJzI4MSddID0gMTE1CisgICAgX19vWycyODInXSA9IDEwNQorICAgIF9fb1snMjgzJ10gPSAxMjIKKyAgICBfX29bJzI4NCddID0gMTAxCisgICAgX19vWycyODUnXSA9IDExMQorICAgIF9fb1snMjg2J10gPSAxMDIKKyAgICBfX29bJzI4NyddID0gNDAKKyAgICBfX29bJzI4OCddID0gNzAKKyAgICBfX29bJzI4OSddID0gMTA4CisgICAgX19vWycyOTAnXSA9IDExMQorICAgIF9fb1snMjkxJ10gPSA5NworICAgIF9fb1snMjkyJ10gPSAxMTYKKyAgICBfX29bJzI5MyddID0gNDEKKyAgICBfX29bJzI5NCddID0gMzIKKyAgICBfX29bJzI5NSddID0gNjIKKyAgICBfX29bJzI5NiddID0gMzIKKyAgICBfX29bJzI5NyddID0gMTE1CisgICAgX19vWycyOTgnXSA9IDEwNQorICAgIF9fb1snMjk5J10gPSAxMjIKKyAgICBfX29bJzMwMCddID0gMTAxCisgICAgX19vWyczMDEnXSA9IDExMQorICAgIF9fb1snMzAyJ10gPSAxMDIKKyAgICBfX29bJzMwMyddID0gNDAKKyAgICBfX29bJzMwNCddID0gNjUKKyAgICBfX29bJzMwNSddID0gMTE0CisgICAgX19vWyczMDYnXSA9IDEwMworICAgIF9fb1snMzA3J10gPSA0MQorICAgIF9fb1snMzA4J10gPSAwCisgICAgX19vWyczMDknXSA9IDk3CisgICAgX19vWyczMTAnXSA9IDExNQorICAgIF9fb1snMzExJ10gPSAxMTUKKyAgICBfX29bJzMxMiddID0gMTAxCisgICAgX19vWyczMTMnXSA9IDExNAorICAgIF9fb1snMzE0J10gPSAxMTYKKyAgICBfX29bJzMxNSddID0gMTA1CisgICAgX19vWyczMTYnXSA9IDExMQorICAgIF9fb1snMzE3J10gPSAxMTAKKyAgICBfX29bJzMxOCddID0gMzIKKyAgICBfX29bJzMxOSddID0gMTAyCisgICAgX19vWyczMjAnXSA9IDk3CisgICAgX19vWyczMjEnXSA9IDEwNQorICAgIF9fb1snMzIyJ10gPSAxMDgKKyAgICBfX29bJzMyMyddID0gMTE3CisgICAgX19vWyczMjQnXSA9IDExNAorICAgIF9fb1snMzI1J10gPSAxMDEKKyAgICBfX29bJzMyNiddID0gMzcKKyAgICBfX29bJzMyNyddID0gMTE1CisgICAgX19vWyczMjgnXSA9IDM3CisgICAgX19vWyczMjknXSA9IDExNQorICAgIF9fb1snMzMwJ10gPSAwCisgICAgX19vWyczMzEnXSA9IDEwMworICAgIF9fb1snMzMyJ10gPSAxMDEKKyAgICBfX29bJzMzMyddID0gMTEwCisgICAgX19vWyczMzQnXSA9IDEwMQorICAgIF9fb1snMzM1J10gPSAxMTQKKyAgICBfX29bJzMzNiddID0gMTA1CisgICAgX19vWyczMzcnXSA9IDk5CisgICAgX19vWyczMzgnXSA9IDMyCisgICAgX19vWyczMzknXSA9IDEwMQorICAgIF9fb1snMzQwJ10gPSAxMTQKKyAgICBfX29bJzM0MSddID0gMTE0CisgICAgX19vWyczNDInXSA9IDExMQorICAgIF9fb1snMzQzJ10gPSAxMTQKKyAgICBfX29bJzM0NCddID0gNTgKKyAgICBfX29bJzM0NSddID0gMzIKKyAgICBfX29bJzM0NiddID0gMzcKKyAgICBfX29bJzM0NyddID0gMTE1CisgICAgX19vWyczNDgnXSA9IDAKKyAgICBfX29bJzM0OSddID0gMTExCisgICAgX19vWyczNTAnXSA9IDExNworICAgIF9fb1snMzUxJ10gPSAxMTYKKyAgICBfX29bJzM1MiddID0gMzIKKyAgICBfX29bJzM1MyddID0gMTExCisgICAgX19vWyczNTQnXSA9IDEwMgorICAgIF9fb1snMzU1J10gPSAzMgorICAgIF9fb1snMzU2J10gPSAxMDkKKyAgICBfX29bJzM1NyddID0gMTAxCisgICAgX19vWyczNTgnXSA9IDEwOQorICAgIF9fb1snMzU5J10gPSAxMTEKKyAgICBfX29bJzM2MCddID0gMTE0CisgICAgX19vWyczNjEnXSA9IDEyMQorICAgIF9fb1snMzYyJ10gPSA1OAorICAgIF9fb1snMzYzJ10gPSAzMgorICAgIF9fb1snMzY0J10gPSAxMDQKKyAgICBfX29bJzM2NSddID0gMTAxCisgICAgX19vWyczNjYnXSA9IDk3CisgICAgX19vWyczNjcnXSA9IDExMgorICAgIF9fb1snMzY4J10gPSA2MQorICAgIF9fb1snMzY5J10gPSA0OAorICAgIF9fb1snMzcwJ10gPSAxMjAKKyAgICBfX29bJzM3MSddID0gMzcKKyAgICBfX29bJzM3MiddID0gMTIwCisgICAgX19vWyczNzMnXSA9IDQ0CisgICAgX19vWyczNzQnXSA9IDMyCisgICAgX19vWyczNzUnXSA9IDExNQorICAgIF9fb1snMzc2J10gPSAxMDUKKyAgICBfX29bJzM3NyddID0gMTIyCisgICAgX19vWyczNzgnXSA9IDEwMQorICAgIF9fb1snMzc5J10gPSA2MQorICAgIF9fb1snMzgwJ10gPSAzNworICAgIF9fb1snMzgxJ10gPSAxMTcKKyAgICBfX29bJzM4MiddID0gMAorICAgIF9fb1snMzgzJ10gPSAxMDIKKyAgICBfX29bJzM4NCddID0gMTE0CisgICAgX19vWyczODUnXSA9IDEwMQorICAgIF9fb1snMzg2J10gPSAxMDEKKyAgICBfX29bJzM4NyddID0gNDAKKyAgICBfX29bJzM4OCddID0gNDEKKyAgICBfX29bJzM4OSddID0gMzIKKyAgICBfX29bJzM5MCddID0gMTA1CisgICAgX19vWyczOTEnXSA9IDExMAorICAgIF9fb1snMzkyJ10gPSAxMTgKKyAgICBfX29bJzM5MyddID0gOTcKKyAgICBfX29bJzM5NCddID0gMTA4CisgICAgX19vWyczOTUnXSA9IDEwNQorICAgIF9fb1snMzk2J10gPSAxMDAKKyAgICBfX29bJzM5NyddID0gMzIKKyAgICBfX29bJzM5OCddID0gMTA1CisgICAgX19vWyczOTknXSA9IDExMAorICAgIF9fb1snNDAwJ10gPSAzMgorICAgIF9fb1snNDAxJ10gPSAxMDMKKyAgICBfX29bJzQwMiddID0gMTE0CisgICAgX19vWyc0MDMnXSA9IDExMQorICAgIF9fb1snNDA0J10gPSAxMTkKKyAgICBfX29bJzQwNSddID0gMTE2CisgICAgX19vWyc0MDYnXSA9IDEwNAorICAgIF9fb1snNDA3J10gPSA0NQorICAgIF9fb1snNDA4J10gPSAxMTEKKyAgICBfX29bJzQwOSddID0gMTEwCisgICAgX19vWyc0MTAnXSA9IDEwOAorICAgIF9fb1snNDExJ10gPSAxMjEKKyAgICBfX29bJzQxMiddID0gMzIKKyAgICBfX29bJzQxMyddID0gNzIKKyAgICBfX29bJzQxNCddID0gMTAxCisgICAgX19vWyc0MTUnXSA9IDk3CisgICAgX19vWyc0MTYnXSA9IDExMgorICAgIF9fb1snNDE3J10gPSA3NworICAgIF9fb1snNDE4J10gPSAxMDUKKyAgICBfX29bJzQxOSddID0gMTEwCisgICAgX19vWyc0MjAnXSA9IDAKKyAgICBfX29bJzQyMSddID0gODQKKyAgICBfX29bJzQyMiddID0gMTA0CisgICAgX19vWyc0MjMnXSA9IDEwMQorICAgIF9fb1snNDI0J10gPSAzMgorICAgIF9fb1snNDI1J10gPSA4MgorICAgIF9fb1snNDI2J10gPSA4NAorICAgIF9fb1snNDI3J10gPSA4MworICAgIF9fb1snNDI4J10gPSAzMgorICAgIF9fb1snNDI5J10gPSAxMDQKKyAgICBfX29bJzQzMCddID0gMTAxCisgICAgX19vWyc0MzEnXSA9IDk3CisgICAgX19vWyc0MzInXSA9IDExMgorICAgIF9fb1snNDMzJ10gPSAzMgorICAgIF9fb1snNDM0J10gPSAxMDUKKyAgICBfX29bJzQzNSddID0gMTE1CisgICAgX19vWyc0MzYnXSA9IDMyCisgICAgX19vWyc0MzcnXSA9IDExNworICAgIF9fb1snNDM4J10gPSAxMTUKKyAgICBfX29bJzQzOSddID0gMTAxCisgICAgX19vWyc0NDAnXSA9IDEwMAorICAgIF9fb1snNDQxJ10gPSAzMgorICAgIF9fb1snNDQyJ10gPSAxMTcKKyAgICBfX29bJzQ0MyddID0gMTEyCisgICAgX19vWyc0NDQnXSA9IDQ2CisgICAgX19vWyc0NDUnXSA9IDMyCisgICAgX19vWyc0NDYnXSA9IDY5CisgICAgX19vWyc0NDcnXSA9IDEyMAorICAgIF9fb1snNDQ4J10gPSA5NworICAgIF9fb1snNDQ5J10gPSAxMDkKKyAgICBfX29bJzQ1MCddID0gMTA1CisgICAgX19vWyc0NTEnXSA9IDExMAorICAgIF9fb1snNDUyJ10gPSAxMDEKKyAgICBfX29bJzQ1MyddID0gMzIKKyAgICBfX29bJzQ1NCddID0gODAKKyAgICBfX29bJzQ1NSddID0gMTE0CisgICAgX19vWyc0NTYnXSA9IDExMQorICAgIF9fb1snNDU3J10gPSAxMDMKKyAgICBfX29bJzQ1OCddID0gMTE0CisgICAgX19vWyc0NTknXSA9IDk3CisgICAgX19vWyc0NjAnXSA9IDEwOQorICAgIF9fb1snNDYxJ10gPSA0NgorICAgIF9fb1snNDYyJ10gPSAxMDQKKyAgICBfX29bJzQ2MyddID0gMTAxCisgICAgX19vWyc0NjQnXSA9IDk3CisgICAgX19vWyc0NjUnXSA9IDExMgorICAgIF9fb1snNDY2J10gPSA0NgorICAgIF9fb1snNDY3J10gPSAwCisgICAgX19vWyc0NjgnXSA9IDYwCisgICAgX19vWyc0NjknXSA9IDQ1CisgICAgX19vWyc0NzAnXSA9IDQ1CisgICAgX19vWyc0NzEnXSA9IDMyCisgICAgX19vWyc0NzInXSA9IDk5CisgICAgX19vWyc0NzMnXSA9IDExMQorICAgIF9fb1snNDc0J10gPSAxMTAKKyAgICBfX29bJzQ3NSddID0gMTE1CisgICAgX19vWyc0NzYnXSA9IDExNgorICAgIF9fb1snNDc3J10gPSAxMTQKKyAgICBfX29bJzQ3OCddID0gMTE3CisgICAgX19vWyc0NzknXSA9IDk5CisgICAgX19vWyc0ODAnXSA9IDExNgorICAgIF9fb1snNDgxJ10gPSA1OAorICAgIF9fb1snNDgyJ10gPSAzMgorICAgIF9fb1snNDgzJ10gPSAzNworICAgIF9fb1snNDg0J10gPSAxMTIKKyAgICBfX29bJzQ4NSddID0gNDAKKyAgICBfX29bJzQ4NiddID0gMzkKKyAgICBfX29bJzQ4NyddID0gMzcKKyAgICBfX29bJzQ4OCddID0gMTE1CisgICAgX19vWyc0ODknXSA9IDM5CisgICAgX19vWyc0OTAnXSA9IDQxCisgICAgX19vWyc0OTEnXSA9IDAKKyAgICBfX29bJzQ5MiddID0gNjAKKyAgICBfX29bJzQ5MyddID0gNDUKKyAgICBfX29bJzQ5NCddID0gNDUKKyAgICBfX29bJzQ5NSddID0gMzIKKyAgICBfX29bJzQ5NiddID0gOTkKKyAgICBfX29bJzQ5NyddID0gMTE0CisgICAgX19vWyc0OTgnXSA9IDEwMQorICAgIF9fb1snNDk5J10gPSA5NworICAgIF9fb1snNTAwJ10gPSAxMTYKKyAgICBfX29bJzUwMSddID0gMTAxCisgICAgX19vWyc1MDInXSA9IDU4CisgICAgX19vWyc1MDMnXSA9IDMyCisgICAgX19vWyc1MDQnXSA9IDM3CisgICAgX19vWyc1MDUnXSA9IDExMgorICAgIF9fb1snNTA2J10gPSA0MAorICAgIF9fb1snNTA3J10gPSAzOQorICAgIF9fb1snNTA4J10gPSAzNworICAgIF9fb1snNTA5J10gPSAxMTUKKyAgICBfX29bJzUxMCddID0gMzkKKyAgICBfX29bJzUxMSddID0gNDEKKyAgICBfX29bJzUxMiddID0gMAorICAgIF9fb1snNTEzJ10gPSA0NQorICAgIF9fb1snNTE0J10gPSA0NQorICAgIF9fb1snNTE1J10gPSA2MgorICAgIF9fb1snNTE2J10gPSAzMgorICAgIF9fb1snNTE3J10gPSAxMDAKKyAgICBfX29bJzUxOCddID0gMTAxCisgICAgX19vWyc1MTknXSA9IDExNQorICAgIF9fb1snNTIwJ10gPSAxMTYKKyAgICBfX29bJzUyMSddID0gMTE0CisgICAgX19vWyc1MjInXSA9IDExNworICAgIF9fb1snNTIzJ10gPSA5OQorICAgIF9fb1snNTI0J10gPSAxMTYKKyAgICBfX29bJzUyNSddID0gNTgKKyAgICBfX29bJzUyNiddID0gMzIKKyAgICBfX29bJzUyNyddID0gNDAKKyAgICBfX29bJzUyOCddID0gMzcKKyAgICBfX29bJzUyOSddID0gMTEyCisgICAgX19vWyc1MzAnXSA9IDQxCisgICAgX19vWyc1MzEnXSA9IDAKKyAgICBfX29bJzUzMiddID0gNDUKKyAgICBfX29bJzUzMyddID0gNDUKKyAgICBfX29bJzUzNCddID0gNjIKKyAgICBfX29bJzUzNSddID0gMzIKKyAgICBfX29bJzUzNiddID0gMTAwCisgICAgX19vWyc1MzcnXSA9IDEwMQorICAgIF9fb1snNTM4J10gPSAxMDgKKyAgICBfX29bJzUzOSddID0gMTAxCisgICAgX19vWyc1NDAnXSA9IDExNgorICAgIF9fb1snNTQxJ10gPSAxMDEKKyAgICBfX29bJzU0MiddID0gNTgKKyAgICBfX29bJzU0MyddID0gMzIKKyAgICBfX29bJzU0NCddID0gNDAKKyAgICBfX29bJzU0NSddID0gMzcKKyAgICBfX29bJzU0NiddID0gMTEyCisgICAgX19vWyc1NDcnXSA9IDQxCisgICAgX19vWyc1NDgnXSA9IDAKKyAgICBfX29bJzU0OSddID0gMTIwCisgICAgX19vWyc1NTAnXSA9IDEwMAorICAgIF9fb1snNTUxJ10gPSA5OQorICAgIF9fb1snNTUyJ10gPSA0NgorICAgIF9fb1snNTUzJ10gPSAwCisgICAgX19vWyc1NTQnXSA9IDExNAorICAgIF9fb1snNTU1J10gPSAxMTcKKyAgICBfX29bJzU1NiddID0gMTEwCisgICAgX19vWyc1NTcnXSA9IDExNgorICAgIF9fb1snNTU4J10gPSAxMDUKKyAgICBfX29bJzU1OSddID0gMTA5CisgICAgX19vWyc1NjAnXSA9IDEwMQorICAgIF9fb1snNTYxJ10gPSA0NgorICAgIF9fb1snNTYyJ10gPSAwCisgICAgX19vWyc1NjMnXSA9IDY1CisgICAgX19vWyc1NjQnXSA9IDExNQorICAgIF9fb1snNTY1J10gPSAxMTUKKyAgICBfX29bJzU2NiddID0gMTAxCisgICAgX19vWyc1NjcnXSA9IDExNAorICAgIF9fb1snNTY4J10gPSAxMTYKKyAgICBfX29bJzU2OSddID0gMAorICAgIF9fb1snNTcwJ10gPSA2NworICAgIF9fb1snNTcxJ10gPSAxMTEKKyAgICBfX29bJzU3MiddID0gMTE0CisgICAgX19vWyc1NzMnXSA9IDEwMQorICAgIF9fb1snNTc0J10gPSAwCisgICAgX19vWyc1NzUnXSA9IDY4CisgICAgX19vWyc1NzYnXSA9IDEwMQorICAgIF9fb1snNTc3J10gPSAxMDIKKyAgICBfX29bJzU3OCddID0gOTcKKyAgICBfX29bJzU3OSddID0gMTE3CisgICAgX19vWyc1ODAnXSA9IDEwOAorICAgIF9fb1snNTgxJ10gPSAxMTYKKyAgICBfX29bJzU4MiddID0gMTE1CisgICAgX19vWyc1ODMnXSA9IDAKKyAgICBfX29bJzU4NCddID0gNjgKKyAgICBfX29bJzU4NSddID0gMTA1CisgICAgX19vWyc1ODYnXSA9IDk3CisgICAgX19vWyc1ODcnXSA9IDEwMworICAgIF9fb1snNTg4J10gPSAxMTUKKyAgICBfX29bJzU4OSddID0gMAorICAgIF9fb1snNTkwJ10gPSA2OQorICAgIF9fb1snNTkxJ10gPSAxMTQKKyAgICBfX29bJzU5MiddID0gMTE0CisgICAgX19vWyc1OTMnXSA9IDExMQorICAgIF9fb1snNTk0J10gPSAxMTQKKyAgICBfX29bJzU5NSddID0gMAorICAgIF9fb1snNTk2J10gPSA3MQorICAgIF9fb1snNTk3J10gPSA5NworICAgIF9fb1snNTk4J10gPSAxMTYKKyAgICBfX29bJzU5OSddID0gMTAxCisgICAgX19vWyc2MDAnXSA9IDAKKyAgICBfX29bJzYwMSddID0gNzEKKyAgICBfX29bJzYwMiddID0gOTcKKyAgICBfX29bJzYwMyddID0gMTE2CisgICAgX19vWyc2MDQnXSA9IDEwMQorICAgIF9fb1snNjA1J10gPSA3OAorICAgIF9fb1snNjA2J10gPSAxMTcKKyAgICBfX29bJzYwNyddID0gMTA4CisgICAgX19vWyc2MDgnXSA9IDEwOAorICAgIF9fb1snNjA5J10gPSAwCisgICAgX19vWyc2MTAnXSA9IDc2CisgICAgX19vWyc2MTEnXSA9IDExMQorICAgIF9fb1snNjEyJ10gPSAxMDMKKyAgICBfX29bJzYxMyddID0gMAorICAgIF9fb1snNjE0J10gPSA3NworICAgIF9fb1snNjE1J10gPSA5NworICAgIF9fb1snNjE2J10gPSAxMDUKKyAgICBfX29bJzYxNyddID0gMTEwCisgICAgX19vWyc2MTgnXSA9IDAKKyAgICBfX29bJzYxOSddID0gNzcKKyAgICBfX29bJzYyMCddID0gMTAxCisgICAgX19vWyc2MjEnXSA9IDEwOQorICAgIF9fb1snNjIyJ10gPSAxMTEKKyAgICBfX29bJzYyMyddID0gMTE0CisgICAgX19vWyc2MjQnXSA9IDEyMQorICAgIF9fb1snNjI1J10gPSAwCisgICAgX19vWyc2MjYnXSA9IDcyCisgICAgX19vWyc2MjcnXSA9IDEwMQorICAgIF9fb1snNjI4J10gPSA5NworICAgIF9fb1snNjI5J10gPSAxMTIKKyAgICBfX29bJzYzMCddID0gODMKKyAgICBfX29bJzYzMSddID0gMTE2CisgICAgX19vWyc2MzInXSA9IDEwMAorICAgIF9fb1snNjMzJ10gPSAwCisgICAgX19vWyc2MzQnXSA9IDgzCisgICAgX19vWyc2MzUnXSA9IDExNgorICAgIF9fb1snNjM2J10gPSA5NworICAgIF9fb1snNjM3J10gPSAxMTQKKyAgICBfX29bJzYzOCddID0gMTE2CisgICAgX19vWyc2MzknXSA9IDExNworICAgIF9fb1snNjQwJ10gPSAxMTIKKyAgICBfX29bJzY0MSddID0gMAorICAgIF9fb1snNjQyJ10gPSA4MworICAgIF9fb1snNjQzJ10gPSAxMjEKKyAgICBfX29bJzY0NCddID0gMTE1CisgICAgX19vWyc2NDUnXSA9IDExNgorICAgIF9fb1snNjQ2J10gPSAxMDEKKyAgICBfX29bJzY0NyddID0gMTA5CisgICAgX19vWyc2NDgnXSA9IDAKKyAgICBfX29bJzY0OSddID0gODMKKyAgICBfX29bJzY1MCddID0gMTIxCisgICAgX19vWyc2NTEnXSA9IDExNQorICAgIF9fb1snNjUyJ10gPSA3NworICAgIF9fb1snNjUzJ10gPSAxMDUKKyAgICBfX29bJzY1NCddID0gMTEwCisgICAgX19vWyc2NTUnXSA9IDAKKyAgICBfX29bJzY1NiddID0gODQKKyAgICBfX29bJzY1NyddID0gMTAxCisgICAgX19vWyc2NTgnXSA9IDEyMAorICAgIF9fb1snNjU5J10gPSAxMTYKKyAgICBfX29bJzY2MCddID0gMAorICAgIF9fb1snNjYxJ10gPSAxMDQKKyAgICBfX29bJzY2MiddID0gMTAxCisgICAgX19vWyc2NjMnXSA9IDEwOAorICAgIF9fb1snNjY0J10gPSAxMDgKKyAgICBfX29bJzY2NSddID0gMTExCisgICAgX19vWyc2NjYnXSA9IDQ2CisgICAgX19vWyc2NjcnXSA9IDAKKyAgICBfX29bJzY2OCddID0gMTA5CisgICAgX19vWyc2NjknXSA9IDExMQorICAgIF9fb1snNjcwJ10gPSAxMDAKKyAgICBfX29bJzY3MSddID0gNDYKKyAgICBfX29bJzY3MiddID0gMAorICAgIF9fb1snNjczJ10gPSA4NAorICAgIF9fb1snNjc0J10gPSA5NworICAgIF9fb1snNjc1J10gPSAxMDgKKyAgICBfX29bJzY3NiddID0gMTA3CisgICAgX19vWyc2NzcnXSA9IDEwMQorICAgIF9fb1snNjc4J10gPSAxMTQKKyAgICBfX29bJzY3OSddID0gMAorCitfX28gPSBfX29ialsyNzRdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjc1XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzI3Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzI3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzI4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzI4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzZdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI3Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjc3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjc4XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzldICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODBdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4MV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODJdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4M10gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg1XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg4XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYicsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gX19vYmpbMjg5LjBdCisgICAgX19vWycxJ10gPSBfX29ialsyOTAuMF0KKyAgICBfX29bJzInXSA9IF9fb2JqWzI5MS4wXQorICAgIF9fb1snMyddID0gX19vYmpbMjkyLjBdCisgICAgX19vWyc0J10gPSBfX29ialsyOTMuMF0KKyAgICBfX29bJzUnXSA9IF9fb2JqWzI5NC4wXQorICAgIF9fb1snNiddID0gX19vYmpbMjk1LjBdCisgICAgX19vWyc3J10gPSBfX29ialsyOTYuMF0KKyAgICBfX29bJzgnXSA9IF9fb2JqWzI5Ny4wXQorICAgIF9fb1snOSddID0gX19vYmpbMjk4LjBdCisgICAgX19vWycxMCddID0gX19vYmpbMjk5LjBdCisgICAgX19vWycxMSddID0gX19vYmpbMzAwLjBdCisgICAgX19vWycxMiddID0gX19vYmpbMzAxLjBdCisgICAgX19vWycxMyddID0gX19vYmpbMzAyLjBdCisgICAgX19vWycxNCddID0gX19vYmpbMzAzLjBdCisgICAgX19vWycxNSddID0gX19vYmpbMzA0LjBdCisgICAgX19vWycxNiddID0gX19vYmpbMzA1LjBdCisgICAgX19vWycxNyddID0gX19vYmpbMzA2LjBdCisgICAgX19vWycxOCddID0gX19vYmpbMzA3LjBdCisKK19fbyA9IF9fb2JqWzI4OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8wCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDAKKyAgICBfX29bJ3JpZ2h0J10gPSAwCisKK19fbyA9IF9fb2JqWzI5MF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDU0OQorICAgIF9fb1sncmlnaHQnXSA9IDU1NAorCitfX28gPSBfX29ialsyOTFdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYyJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU2MworCitfX28gPSBfX29ialsyOTJdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYzJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU3MAorCitfX28gPSBfX29ialsyOTNdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY0JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU3NQorCitfX28gPSBfX29ialsyOTRdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY1JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU4NAorCitfX28gPSBfX29ialsyOTVdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY2JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU5MAorCitfX28gPSBfX29ialsyOTZdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY3JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU5NgorCitfX28gPSBfX29ialsyOTddICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY4JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYwMQorCitfX28gPSBfX29ialsyOThdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY5JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYxMAorCitfX28gPSBfX29ialsyOTldICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjE0CisKK19fbyA9IF9fb2JqWzMwMF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MTkKKworX19vID0gX19vYmpbMzAxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjEyJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYyNgorCitfX28gPSBfX29ialszMDJdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjM0CisKK19fbyA9IF9fb2JqWzMwM10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2NDIKKworX19vID0gX19vYmpbMzA0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE1CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE1JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDY0OQorCitfX28gPSBfX29ialszMDVdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTYKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjU2CisKK19fbyA9IF9fb2JqWzMwNl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gNjYxCisgICAgX19vWydyaWdodCddID0gNjY4CisKK19fbyA9IF9fb2JqWzMwN10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xOAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxOCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3ODUKKyAgICBfX29bJ3JpZ2h0J10gPSA2NzMKKworX19vID0gX19vYmpbMzA4XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMwOV0gIC8vIGhlbGxvLm1vZC5UYWxrZXIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzMxMC4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlcicsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzg2CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzMxMS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzMxMi4wXQorICAgIF9fb1snY291bnQnXSA9IDMKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd0ZXh0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0dvb2RuaWdodCtNb29uJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzMyNS4wXQorCitfX28gPSBfX29ialszMTBdICAvLyBoZWxsby5tb2QuVGFsa2VyLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvLm1vZC5UYWxrZXIlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzExXSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzMxMl0gIC8vIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialszMTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialszMTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzMxNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialszMTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialszMjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzMyMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzEzXSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxNF0gIC8vIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxNV0gIC8vIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMxNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE2XSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE3XSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzE4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMThdICAvLyBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE5XSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvLm1vZC5UYWxrZXIlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMyMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjBdICAvLyBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvLm1vZC5UYWxrZXIlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjFdICAvLyBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzIyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMl0gIC8vIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyM10gIC8vIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvLm1vZC5UYWxrZXIlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzI0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyNF0gIC8vIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyNV0gIC8vIGhlbGxvLm1vZC5UYWxrZXIvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvLm1vZC5UYWxrZXIlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjZdICAKKyAgICBfX29bJ2NmZ0FyZ3MnXSA9IHVuZGVmaW5lZAorICAgIF9fb1snY2ZnU2NyaXB0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3Byb2cuY2ZnJywgJ1VURi04JykpCisgICAgX19vWydwcm9maWxlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3JlbGVhc2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JlbGVhc2VzJ10gPSBfX29ialszMjcuMF0KKyAgICBfX29bJ3RhcmdldCddID0gX19vYmpbMzMxLjBdCisgICAgX19vWyd0ZXN0J10gPSBfX29ials0NDUuMF0KKworX19vID0gX19vYmpbMzI3XSAgCisgICAgX19vWycwJ10gPSBfX29ialszMjguMF0KKworX19vID0gX19vYmpbMzI4XSAgCisgICAgX19vWydhdHRycyddID0gX19vYmpbMzI5LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvX21vZCcsICdVVEYtOCcpKQorICAgIF9fb1snb3RoZXJGaWxlcyddID0gX19vYmpbMzMwLjBdCisKK19fbyA9IF9fb2JqWzMyOV0gIAorICAgIF9fb1snbGFiZWwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGVmYXVsdCcsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzBdICAKKworX19vID0gX19vYmpbMzMxXSAgLy8gdGkudGFyZ2V0cy5DNjRQCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduRGlyZWN0aXZlU3VwcG9ydGVkJ10gPSB0cnVlCisgICAgX19vWydhciddID0gX19vYmpbMzMyLjBdCisgICAgX19vWydhck9wdHMnXSA9IF9fb2JqWzMzMy4wXQorICAgIF9fb1snYXNtJ10gPSBfX29ialszMzQuMF0KKyAgICBfX29bJ2FzbU9wdHMnXSA9IF9fb2JqWzMzNS4wXQorICAgIF9fb1snYmFzZSddID0gX19vYmpbMzM2LjBdCisgICAgX19vWydiaW5EaXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4cm9vdERpciUyOSUyRmJpbiUyRicsICdVVEYtOCcpKQorICAgIF9fb1snYmluYXJ5UGFyc2VyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMub21mLmNvZi5Db2ZmJywgJ1VURi04JykpCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY2MnXSA9IF9fb2JqWzM4Ny4wXQorICAgIF9fb1snY2NDb25maWdPcHRzJ10gPSBfX29ialszODguMF0KKyAgICBfX29bJ2NjT3B0cyddID0gX19vYmpbMzg5LjBdCisgICAgX19vWydjb21wYXRpYmxlU3VmZml4ZXMnXSA9IF9fb2JqWzM5MC4wXQorICAgIF9fb1snZGVidWdHZW4nXSA9IF9fb2JqWzM5MS4wXQorICAgIF9fb1snZXh0ZW5zaW9ucyddID0gX19vYmpbMzkyLjBdCisgICAgX19vWydpbmNsdWRlT3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctSSUyNCUyOHJvb3REaXIlMjklMkZpbmNsdWRlJywgJ1VURi04JykpCisgICAgX19vWydpc2EnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjRQJywgJ1VURi04JykpCisgICAgX19vWydsbmsnXSA9IF9fb2JqWzQwMi4wXQorICAgIF9fb1snbG5rT3B0cyddID0gX19vYmpbNDAzLjBdCisgICAgX19vWydtb2RlbCddID0gX19vYmpbNDA0LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0M2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhdGhQcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNjRQeHgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BsYXRmb3JtcyddID0gX19vYmpbNDA1LjBdCisgICAgX19vWydwcm9maWxlcyddID0gX19vYmpbNDA2LjBdCisgICAgX19vWydyb290RGlyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2QlM0ElMkZ0aSUyRmM2MDAwJTJGYWxjJywgJ1VURi04JykpCisgICAgX19vWydydHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5ydHM2MDAwJywgJ1VURi04JykpCisgICAgX19vWydzZWN0TWFwJ10gPSBfX29ials0MjUuMF0KKyAgICBfX29bJ3N0ZEluY2x1ZGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGklMkZ0YXJnZXRzJTJGc3RkLmgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0ZFR5cGVzJ10gPSBfX29ials0MjYuMF0KKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZlcnMnXSA9IF9fb2JqWzQ0My4wXQorICAgIF9fb1sndmVyc2lvbiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlN0IxJTJDMCUyQzYuMSUyQzUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZlcnNpb25NYXAnXSA9IF9fb2JqWzQ0NC4wXQorCitfX28gPSBfX29ialszMzJdICAvLyB0aS50YXJnZXRzLkM2NFAvYXIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmFyJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXI2eCcsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdycScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzNdICAvLyB0aS50YXJnZXRzLkM2NFAvYXJPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZhck9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2FzbQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGYXNtJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2w2eCstYycsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctbXY2NHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2FzbU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmFzbU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctcXEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM2XSAgLy8gdGkudGFyZ2V0cy5DNjIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbkRpcmVjdGl2ZVN1cHBvcnRlZCddID0gdHJ1ZQorICAgIF9fb1snYmluYXJ5UGFyc2VyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMub21mLmNvZi5Db2ZmJywgJ1VURi04JykpCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY29tcGF0aWJsZVN1ZmZpeGVzJ10gPSBfX29ialszMzcuMF0KKyAgICBfX29bJ2RlYnVnR2VuJ10gPSBfX29ialszMzguMF0KKyAgICBfX29bJ2V4dGVuc2lvbnMnXSA9IF9fb2JqWzMzOS4wXQorICAgIF9fb1snaXNhJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzYyJywgJ1VURi04JykpCisgICAgX19vWydtb2RlbCddID0gX19vYmpbMzQ3LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0M2MicsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkucGxhdGZvcm1zLnNpbTZ4eHglM0FUTVMzMjBDNjIxMScsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm1zJ10gPSBfX29ialszNDguMF0KKyAgICBfX29bJ3Byb2ZpbGVzJ10gPSBfX29ialszNDkuMF0KKyAgICBfX29bJ3J0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLnJ0czYwMDAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3NlY3RNYXAnXSA9IF9fb2JqWzM2OC4wXQorICAgIF9fb1snc3RkSW5jbHVkZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZzdGQuaCcsICdVVEYtOCcpKQorICAgIF9fb1snc3RkVHlwZXMnXSA9IF9fb2JqWzM2OS4wXQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzYyJywgJ1VURi04JykpCisgICAgX19vWyd2ZXJzaW9uTWFwJ10gPSBfX29ialszODYuMF0KKworX19vID0gX19vYmpbMzM3XSAgLy8gdGkudGFyZ2V0cy5DNjIvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmNvbXBhdGlibGVTdWZmaXhlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzhdICAvLyB0aS50YXJnZXRzLkM2Mi9kZWJ1Z0dlbgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZkZWJ1Z0dlbicsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1BhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4Y2ZnRGlyJTI5JTI0JTI4Y2ZnTmFtZSUyOS5wanQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2V4ZWNUZW1wbGF0ZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZjY3NfZXhlYy54ZHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhY2thZ2VQYXR0ZXJuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3BhY2thZ2UlMkYlMjQlMjhwa2dOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVRlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19wYWNrYWdlLnhkdCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzldICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5DJ10gPSBfX29ialszNDAuMF0KKyAgICBfX29bJy5hc20nXSA9IF9fb2JqWzM0MS4wXQorICAgIF9fb1snLmMnXSA9IF9fb2JqWzM0Mi4wXQorICAgIF9fb1snLmNjJ10gPSBfX29ialszNDMuMF0KKyAgICBfX29bJy5jcHAnXSA9IF9fb2JqWzM0NC4wXQorICAgIF9fb1snLmN4eCddID0gX19vYmpbMzQ1LjBdCisgICAgX19vWycuczYyJ10gPSBfX29ialszNDYuMF0KKworX19vID0gX19vYmpbMzQwXSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLkMnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuQyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5DJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0MV0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5hc20nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuYXNtJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmFzbScsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDJdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5jJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0M10gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jYycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5jYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDRdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3BwJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmNwcCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jcHAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ1XSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmN4eCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5jeHglMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY3h4JywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0Nl0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5zNjInCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuczYyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM2MicsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDddICAvLyB0aS50YXJnZXRzLkM2Mi9tb2RlbAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZtb2RlbCcsICdVVEYtOCcpKQorICAgIF9fb1snZW5kaWFuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2xpdHRsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDhdICAvLyB0aS50YXJnZXRzLkM2Mi9wbGF0Zm9ybXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcGxhdGZvcm1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0OV0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJywgJ1VURi04JykpCisgICAgX19vWydjb3ZlcmFnZSddID0gX19vYmpbMzUwLjBdCisgICAgX19vWydkZWJ1ZyddID0gX19vYmpbMzUzLjBdCisgICAgX19vWydwcm9maWxlJ10gPSBfX29ialszNTYuMF0KKyAgICBfX29bJ3JlbGVhc2UnXSA9IF9fb2JqWzM1OS4wXQorICAgIF9fb1snd2hvbGVfcHJvZ3JhbSddID0gX19vYmpbMzYyLjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtX2RlYnVnJ10gPSBfX29ialszNjUuMF0KKworX19vID0gX19vYmpbMzUwXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzUxLjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszNTIuMF0KKworX19vID0gX19vYmpbMzUxXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTJdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzUzXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzU0LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszNTUuMF0KKworX19vID0gX19vYmpbMzU0XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1nJywgJ1VURi04JykpCisgICAgX19vWydkZWZzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1EX0RFQlVHXyUzRDEnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzU1XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1Nl0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNTcuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM1OC4wXQorCitfX28gPSBfX29ialszNTddICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNThdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1OV0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNjAuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM2MS4wXQorCitfX28gPSBfX29ialszNjBdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1PMicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjFdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2Ml0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW0lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNjMuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM2NC4wXQorCitfX28gPSBfX29ialszNjNdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1vZSstTzIrLW1vJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2NF0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY1XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbV9kZWJ1ZyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM2Ni4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzY3LjBdCisKK19fbyA9IF9fb2JqWzM2Nl0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLW9lKy0tc3ltZGVidWclM0Fkd2FyZistbW8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY3XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjhdICAvLyB0aS50YXJnZXRzLkM2Mi9zZWN0TWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnNlY3RNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5hcmdzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5ic3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNpbml0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5jaW8nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNvbnN0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5kYXRhJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5mYXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnBpbml0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zdGFjayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdzdGFjaycsICdVVEYtOCcpKQorICAgIF9fb1snLnN3aXRjaCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuc3lzbWVtJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy50ZXh0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvZGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY5XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3RfQ2hhciddID0gX19vYmpbMzcwLjBdCisgICAgX19vWyd0X0RvdWJsZSddID0gX19vYmpbMzcxLjBdCisgICAgX19vWyd0X0Zsb2F0J10gPSBfX29ialszNzIuMF0KKyAgICBfX29bJ3RfRnhuJ10gPSBfX29ialszNzMuMF0KKyAgICBfX29bJ3RfSUFyZyddID0gX19vYmpbMzc0LjBdCisgICAgX19vWyd0X0ludCddID0gX19vYmpbMzc1LjBdCisgICAgX19vWyd0X0ludDE2J10gPSBfX29ialszNzYuMF0KKyAgICBfX29bJ3RfSW50MzInXSA9IF9fb2JqWzM3Ny4wXQorICAgIF9fb1sndF9JbnQ0MCddID0gX19vYmpbMzc4LjBdCisgICAgX19vWyd0X0ludDY0J10gPSBfX29ialszNzkuMF0KKyAgICBfX29bJ3RfSW50OCddID0gX19vYmpbMzgwLjBdCisgICAgX19vWyd0X0xEb3VibGUnXSA9IF9fb2JqWzM4MS4wXQorICAgIF9fb1sndF9MTG9uZyddID0gX19vYmpbMzgyLjBdCisgICAgX19vWyd0X0xvbmcnXSA9IF9fb2JqWzM4My4wXQorICAgIF9fb1sndF9QdHInXSA9IF9fb2JqWzM4NC4wXQorICAgIF9fb1sndF9TaG9ydCddID0gX19vYmpbMzg1LjBdCisKK19fbyA9IF9fb2JqWzM3MF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfQ2hhcgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfQ2hhcicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbMzcxXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0RvdWJsZScsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzcyXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GbG9hdAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfRmxvYXQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM3M10gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRnhuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9GeG4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM3NF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSUFyZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSUFyZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzc1XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0ludCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzc2XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQxNgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50MTYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAyCisgICAgX19vWydzaXplJ10gPSAyCisKK19fbyA9IF9fb2JqWzM3N10gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MzIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0ludDMyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszNzhdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDQwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQ0MCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzc5XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ2NAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50NjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzM4MF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50OAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50OCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbMzgxXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MRG91YmxlCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9MRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszODJdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xMb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9MTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzgzXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Mb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9Mb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszODRdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1B0cgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfUHRyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszODVdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1Nob3J0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9TaG9ydCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbMzg2XSAgLy8gdGkudGFyZ2V0cy5DNjIvdmVyc2lvbk1hcAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZ2ZXJzaW9uTWFwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDMjAwMF8zLjA3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy4wNyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NHhfMy44MyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzMuODMlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNTV4XzIuNTYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMyLjU2JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzZ4XzQuMzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkM0LjMyJTJDMCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODddICAvLyB0aS50YXJnZXRzLkM2NFAvY2MKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmNjJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2w2eCstYycsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctbXY2NHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg4XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2NjQ29uZmlnT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGY2NDb25maWdPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4Y2NPcHRzLnByZWZpeCUyOSstbW8nLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjY09wdHMuc3VmZml4JTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4OV0gIC8vIHRpLnRhcmdldHMuQzY0UC9jY09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmNjT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1xcSstcGRzdzIyNScsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTBdICAvLyB0aS50YXJnZXRzLkM2NFAvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZjb21wYXRpYmxlU3VmZml4ZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzkxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL2RlYnVnR2VuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZkZWJ1Z0dlbicsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1BhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4Y2ZnRGlyJTI5JTI0JTI4Y2ZnTmFtZSUyOS5wanQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2V4ZWNUZW1wbGF0ZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZjY3NfZXhlYy54ZHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhY2thZ2VQYXR0ZXJuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3BhY2thZ2UlMkYlMjQlMjhwa2dOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVRlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19wYWNrYWdlLnhkdCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTJdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucycsICdVVEYtOCcpKQorICAgIF9fb1snLkMnXSA9IF9fb2JqWzM5My4wXQorICAgIF9fb1snLmFzbSddID0gX19vYmpbMzk0LjBdCisgICAgX19vWycuYyddID0gX19vYmpbMzk1LjBdCisgICAgX19vWycuY2MnXSA9IF9fb2JqWzM5Ni4wXQorICAgIF9fb1snLmNwcCddID0gX19vYmpbMzk3LjBdCisgICAgX19vWycuY3h4J10gPSBfX29ialszOTguMF0KKyAgICBfX29bJy5zNjInXSA9IF9fb2JqWzM5OS4wXQorICAgIF9fb1snLnM2NCddID0gX19vYmpbNDAwLjBdCisgICAgX19vWycuczY0UCddID0gX19vYmpbNDAxLjBdCisKK19fbyA9IF9fb2JqWzM5M10gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuQycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuQyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5DJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM5NF0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYXNtJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5hc20lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYXNtJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM5NV0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTZdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNjJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTddICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNwcCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuY3BwJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNwcCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOThdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmN4eCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuY3h4JTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmN4eCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTldICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuczYyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM2MicsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDBdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuczY0JTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM2NCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDFdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NFAnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJTJGJTI3LnM2NFAlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczY0UCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDJdICAvLyB0aS50YXJnZXRzLkM2NFAvbG5rCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZsbmsnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdsbms2eCcsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDAzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL2xua09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmxua09wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctdystcSstdStfY19pbnQwMCcsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1jKy1tKyUyNCUyOFhEQ0NGR0RJUiUyOSUyRiUyNCU0MC5tYXArLWwrJTI0JTI4cm9vdERpciUyOSUyRmxpYiUyRnJ0czY0cGx1cy5saWInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDA0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL21vZGVsCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZtb2RlbCcsICdVVEYtOCcpKQorICAgIF9fb1snZW5kaWFuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2xpdHRsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDVdICAvLyB0aS50YXJnZXRzLkM2NFAvcGxhdGZvcm1zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwbGF0Zm9ybXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkucGxhdGZvcm1zLnNpbTY0UHh4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwNl0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvdmVyYWdlJ10gPSBfX29ials0MDcuMF0KKyAgICBfX29bJ2RlYnVnJ10gPSBfX29ials0MTAuMF0KKyAgICBfX29bJ3Byb2ZpbGUnXSA9IF9fb2JqWzQxMy4wXQorICAgIF9fb1sncmVsZWFzZSddID0gX19vYmpbNDE2LjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtJ10gPSBfX29ials0MTkuMF0KKyAgICBfX29bJ3dob2xlX3Byb2dyYW1fZGVidWcnXSA9IF9fb2JqWzQyMi4wXQorCitfX28gPSBfX29ials0MDddICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzQwOC4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbNDA5LjBdCisKK19fbyA9IF9fb2JqWzQwOF0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDldICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MTBdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzQxMS4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbNDEyLjBdCisKK19fbyA9IF9fb2JqWzQxMV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1nJywgJ1VURi04JykpCisgICAgX19vWydkZWZzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1EX0RFQlVHXyUzRDEnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDEyXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDEzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDE0LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0MTUuMF0KKworX19vID0gX19vYmpbNDE0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MTVdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDE2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDE3LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0MTguMF0KKworX19vID0gX19vYmpbNDE3XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1PMicsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MThdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDE5XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDIwLjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0MjEuMF0KKworX19vID0gX19vYmpbNDIwXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1vZSstTzIrLW1vJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyMV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MjJdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ials0MjMuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzQyNC4wXQorCitfX28gPSBfX29ials0MjNdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLW9lKy0tc3ltZGVidWclM0Fkd2FyZistbW8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDI0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyNV0gIC8vIHRpLnRhcmdldHMuQzY0UC9zZWN0TWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzZWN0TWFwJywgJ1VURi04JykpCisgICAgX19vWycuYXJncyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuYnNzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5jaW5pdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY2lvJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5jb25zdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuZGF0YSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuZmFyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5waW5pdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuc3RhY2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnc3RhY2snLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zd2l0Y2gnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnN5c21lbSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycudGV4dCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb2RlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyNl0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3RfQ2hhciddID0gX19vYmpbNDI3LjBdCisgICAgX19vWyd0X0RvdWJsZSddID0gX19vYmpbNDI4LjBdCisgICAgX19vWyd0X0Zsb2F0J10gPSBfX29ials0MjkuMF0KKyAgICBfX29bJ3RfRnhuJ10gPSBfX29ials0MzAuMF0KKyAgICBfX29bJ3RfSUFyZyddID0gX19vYmpbNDMxLjBdCisgICAgX19vWyd0X0ludCddID0gX19vYmpbNDMyLjBdCisgICAgX19vWyd0X0ludDE2J10gPSBfX29ials0MzMuMF0KKyAgICBfX29bJ3RfSW50MzInXSA9IF9fb2JqWzQzNC4wXQorICAgIF9fb1sndF9JbnQ0MCddID0gX19vYmpbNDM1LjBdCisgICAgX19vWyd0X0ludDY0J10gPSBfX29ials0MzYuMF0KKyAgICBfX29bJ3RfSW50OCddID0gX19vYmpbNDM3LjBdCisgICAgX19vWyd0X0xEb3VibGUnXSA9IF9fb2JqWzQzOC4wXQorICAgIF9fb1sndF9MTG9uZyddID0gX19vYmpbNDM5LjBdCisgICAgX19vWyd0X0xvbmcnXSA9IF9fb2JqWzQ0MC4wXQorICAgIF9fb1sndF9QdHInXSA9IF9fb2JqWzQ0MS4wXQorICAgIF9fb1sndF9TaG9ydCddID0gX19vYmpbNDQyLjBdCisKK19fbyA9IF9fb2JqWzQyN10gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0NoYXIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9DaGFyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ials0MjhdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9Eb3VibGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQyOV0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Zsb2F0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfRmxvYXQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQzMF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Z4bgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0Z4bicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDMxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSUFyZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0lBcmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQzMl0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0ludCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDMzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MTYKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQxNicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbNDM0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MzIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQzMicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDM1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NDAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQ0MCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDM2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NjQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQ2NCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDM3XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50OAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0ludDgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAxCisgICAgX19vWydzaXplJ10gPSAxCisKK19fbyA9IF9fb2JqWzQzOF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xEb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9MRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0MzldICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MTG9uZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0xMb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0NDBdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Mb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDQxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfUHRyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfUHRyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0NDJdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9TaG9ydAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X1Nob3J0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMgorICAgIF9fb1snc2l6ZSddID0gMgorCitfX28gPSBfX29ials0NDNdICAvLyB0aS50YXJnZXRzLkM2NFAvdmVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGdmVycycsICdVVEYtOCcpKQorICAgIF9fb1snY21kJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NsNngnLCAnVVRGLTgnKSkKKyAgICBfX29bJ29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLXZlcnNpb24nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDQ0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3ZlcnNpb25NYXAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnZlcnNpb25NYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEMyMDAwXzMuMDcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMzLjA3JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzU0eF8zLjgzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy44MyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NXhfMi41NiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzIuNTYlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNnhfNC4zMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzQuMzIlMkMwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ0NV0gIAorCitkZWxldGUgX19vCitkZWxldGUgX19vYmoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJ0YS54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJ0YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY0MDU3NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAucnRhLnhtbApAQCAtMCwwICsxLDEwNyBAQAorPHhkYy5ydW50aW1lLlR5cGVzLlJ0YURlY29kZXJEYXRhPg0KKyAgPHRhcmdldE5hbWU+dGkudGFyZ2V0cy5DNjRQPC90YXJnZXROYW1lPg0KKyAgPGJpbmFyeVBhcnNlcj50aS50YXJnZXRzLm9tZi5jb2YuQ29mZjwvYmluYXJ5UGFyc2VyPg0KKyAgPGVuZGlhbj5saXR0bGU8L2VuZGlhbj4NCisgIDxiaXRzUGVyQ2hhcj44PC9iaXRzUGVyQ2hhcj4NCisgIDxhcmdTaXplPjQ8L2FyZ1NpemU+DQorICA8ZXZlbnRTaXplPjQ4PC9ldmVudFNpemU+DQorICA8bG9nZ2Vycy1sZW5ndGg+MDwvbG9nZ2Vycy1sZW5ndGg+DQorICA8bW9kTWFwLWxlbmd0aD4xNjwvbW9kTWFwLWxlbmd0aD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Bc3NlcnQiPg0KKyAgICA8aWQ+MzI3NzA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Db3JlIj4NCisgICAgPGlkPjMyNzcxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiPg0KKyAgICA8aWQ+MzI3NzI8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5EaWFncyI+DQorICAgIDxpZD4zMjc3MzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkVycm9yIj4NCisgICAgPGlkPjMyNzc0PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuR2F0ZSI+DQorICAgIDxpZD4zMjc3NTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkdhdGVOdWxsIj4NCisgICAgPGlkPjMyNzc2PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nIj4NCisgICAgPGlkPjMyNzc3PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTWFpbiI+DQorICAgIDxpZD4zMjc3ODwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLk1lbW9yeSI+DQorICAgIDxpZD4zMjc3OTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkhlYXBTdGQiPg0KKyAgICA8aWQ+MzI3ODA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5TdGFydHVwIj4NCisgICAgPGlkPjMyNzgxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzdGVtIj4NCisgICAgPGlkPjMyNzgyPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzTWluIj4NCisgICAgPGlkPjMyNzgzPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuVGV4dCI+DQorICAgIDxpZD4zMjc4NDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9ImhlbGxvLm1vZC5UYWxrZXIiPg0KKyAgICA8aWQ+MzI3ODY8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxldnRNYXAtbGVuZ3RoPjQ8L2V2dE1hcC1sZW5ndGg+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfY29uc3RydWN0Ij4NCisgICAgPGlkPjQ2ODwvaWQ+DQorICAgIDxtc2c+JTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUiPg0KKyAgICA8aWQ+NDkyPC9pZD4NCisgICAgPG1zZz4lM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0Ij4NCisgICAgPGlkPjUxMzwvaWQ+DQorICAgIDxtc2c+LS0lM0UrZGVzdHJ1Y3QlM0ErJTI4JTI1cCUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfZGVsZXRlIj4NCisgICAgPGlkPjUzMjwvaWQ+DQorICAgIDxtc2c+LS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKzwveGRjLnJ1bnRpbWUuVHlwZXMuUnRhRGVjb2RlckRhdGE+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkYy5pbmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkYy5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ3ZWQzYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRjLmluYwpAQCAtMCwwICsxLDMgQEAKK1RhbGtlci54cworcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZworcHJvZy5jZmcKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBhOTE5NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsCkBAIC0wLDAgKzEsMTU5IEBACisvKgorICogRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIHRlbXBsYXRlCisgKiBsaW5rY21kLnhkdCBpbiB0aGUgdGkudGFyZ2V0cyBwYWNrYWdlIGFuZCB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICovCisKKy8qCisgKiBwdXQgJyIncyBhcm91bmQgcGF0aHMgYmVjYXVzZSwgd2l0aG91dCB0aGlzLCB0aGUgbGlua2VyCisgKiBjb25zaWRlcnMgJy0nIGFzIG1pbnVzIG9wZXJhdG9yLCBub3QgYSBmaWxlIG5hbWUgY2hhcmFjdGVyLgorICovCisKKworCistbCJEOlx3b3JrXHR1dG9yaWFsXHJlcG9caGVsbG9cbW9kXGxpYlxoZWxsby5tb2QuYTY0UCIKKy1sIkU6XHJ0c2NceGRjdG9vbHNfM18xNV8wMF8yOVxwYWNrYWdlc1x0aVx0YXJnZXRzXHJ0czYwMDBcbGliXHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIgorLWwiRTpccnRzY1x4ZGN0b29sc18zXzE1XzAwXzI5XHBhY2thZ2VzXHRpXHRhcmdldHNccnRzNjAwMFxsaWJcYm9vdC5hNjRQIgorCisKKy8qIGZ1bmN0aW9uIGFsaWFzZXMgKi8KKy8qIGlnbm9yZSBlcnJvciBhYm91dCBkZWYgYW5kIHJlZiBpbiB0aGUgc2FtZSBmaWxlICovCistLWRpYWdfcmVtYXJrPTEwMjY4CistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRT1feGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19FPV94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRT1feGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0U9X3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19FPV94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0U9X3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FPV94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FPV94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0U9X3hkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FPV94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0U9X3hkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRT1feGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FPV94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FPV94ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0U9X3hkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRT1feGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0U9X3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0U9X3hkY19ydW50aW1lX0Vycm9yX2dldElkX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRT1feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0U9X3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19GCistLXN5bWJvbF9tYXAgX2hlbGxvX21vZF9UYWxrZXJfcHJpbnRfX0U9X2hlbGxvX21vZF9UYWxrZXJfcHJpbnRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRT1feGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FPV94ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FPV94ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRT1feGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19FPV94ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0U9X3hkY19ydW50aW1lX01lbW9yeV9mcmVlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRT1feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRT1feGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0U9X3hkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9leGl0X19FPV94ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0U9X3hkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0U9X3hkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0U9X3hkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19FPV94ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19FPV94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19FPV94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRT1feGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0U9X3hkY19ydW50aW1lX1N5c01pbl9leGl0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0U9X3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRT1feGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FPV94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19GCisKKworLyogRWxmIHN5bWJvbHMgKi8KKy0tc3ltYm9sX21hcCBfX19USV9TVEFDS19TSVpFPV9fU1RBQ0tfU0laRQorLS1zeW1ib2xfbWFwIF9fX1RJX1NUQUNLX0JBU0U9X19zdGFjaworLS1zeW1ib2xfbWFwIF9fX1RJX1NUQVRJQ19CQVNFPV9fX2Jzc19fCistLXN5bWJvbF9tYXAgX19jX2ludDAwPV9jX2ludDAwCisKKworCisKKworLS1hcmdzIDB4MjAwCistaGVhcCAgMHgxMDAwCistc3RhY2sgMHgxMDAwCisKK01FTU9SWQoreworICAgIElSQU0gKFJXWCkgOiBvcmcgPSAweDgwMDAwMCwgbGVuID0gMHgyMDAwMDAKKyAgICBERFIgOiBvcmcgPSAweDgwMDAwMDAwLCBsZW4gPSAweDEwMDAwMDAwCit9CisKKy8qCisgKiBMaW5rZXIgY29tbWFuZCBmaWxlIGNvbnRyaWJ1dGlvbnMgZnJvbSBhbGwgbG9hZGVkIHBhY2thZ2VzOgorICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLmNvcmV2ZXJzIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5nbG9iYWwgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnNoZWxmIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5zcGVjIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5pbnRlcm4uZ2VuIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5zZXJ2aWNlcy5pbnRlcm4uY21kIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5yb3YgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20gdGkuY2F0YWxvZy5jNjAwMCAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMucGxhdGZvcm0gKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLmNmZyAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB0aS5wbGF0Zm9ybXMuc2ltNjRQeHggKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnJ1bnRpbWUgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20gdGkudGFyZ2V0cy5ydHM2MDAwIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIGhlbGxvLm1vZCAobnVsbCk6ICovCisKKworLyoKKyAqIHN5bWJvbGljIGFsaWFzZXMgZm9yIG51bWVyaWMgY29uc3RhbnRzIG9yIHN0YXRpYyBpbnN0YW5jZSBvYmplY3RzCisgKi8KK194ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DID0gMTsKK194ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyA9IDE7CisKK1NFQ1RJT05TCit7CisKKworICAgIC50ZXh0OiBsb2FkID4+IElSQU0KKyAgICAuc3dpdGNoOiBsb2FkID4+IEREUgorICAgIC5zdGFjazogbG9hZCA+IEREUgorICAgIC5hcmdzOiBsb2FkID4gRERSIGFsaWduID0gMHg0LCBmaWxsID0gMCB7X2FyZ3NpemUgPSAweDIwMDsgfQorICAgIHhkYy5ub2xvYWQ6IGxvYWQgPj4gRERSLCB0eXBlID0gTk9MT0FECisgICAgLnN5c21lbTogbG9hZCA+IEREUgorICAgIC5mYXI6IGxvYWQgPj4gRERSCisgICAgLmRhdGE6IGxvYWQgPj4gRERSCisgICAgLmNpbml0OiBsb2FkID4gRERSCisgICAgLmJzczogbG9hZCA+IEREUgorICAgIC5jb25zdDogbG9hZCA+PiBERFIKKyAgICAucGluaXQ6IGxvYWQgPiBERFIKKyAgICAuY2lvOiBsb2FkID4+IEREUgorCit9CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMDk3NTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jCkBAIC0wLDAgKzEsNzM3NSBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2RlZmluZSBfX25lc3RlZF9fCisjZGVmaW5lIF9fY29uZmlnX18KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworLyoKKyAqID09PT09PT09IEdFTkVSQVRFRCBTRUNUSU9OUyA9PT09PT09PQorICogICAgIAorICogICAgIE1PRFVMRSBJTkNMVURFUworICogICAgIAorICogICAgIDxtb2R1bGUtbmFtZT4gSU5URVJOQUxTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTkhFUklUUworICogICAgIDxtb2R1bGUtbmFtZT4gVlRBQkxFCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQQVRDSCBUQUJMRQorICogICAgIDxtb2R1bGUtbmFtZT4gREVDTEFSQVRJT05TCisgKiAgICAgPG1vZHVsZS1uYW1lPiBPQkpFQ1QgT0ZGU0VUUworICogICAgIDxtb2R1bGUtbmFtZT4gVEVNUExBVEVTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTklUSUFMSVpFUlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IEZVTkNUSU9OIFNUVUJTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQUk9YWSBCT0RZCisgKiAgICAgPG1vZHVsZS1uYW1lPiBPQkpFQ1QgREVTQ1JJUFRPUgorICogICAgIDxtb2R1bGUtbmFtZT4gU1lTVEVNIEZVTkNUSU9OUworICogICAgIDxtb2R1bGUtbmFtZT4gUFJBR01BUworICogICAgIAorICogICAgIElOSVRJQUxJWkFUSU9OIEVOVFJZIFBPSU5UCisgKiAgICAgUFJPR1JBTSBHTE9CQUxTCisgKiAgICAgQ0xJTksgRElSRUNUSVZFUworICovCisKKworLyoKKyAqID09PT09PT09IE1PRFVMRSBJTkNMVURFUyA9PT09PT09PQorICovCisKKyNpbmNsdWRlIDxoZWxsby9tb2QvVGFsa2VyLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvQXNzZXJ0Lmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvQ29yZS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0RlZmF1bHRzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRGlhZ3MuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9FcnJvci5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0dhdGUuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9HYXRlTnVsbC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0hlYXBTdGQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Mb2cuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9NYWluLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTWVtb3J5Lmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3RhcnR1cC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c01pbi5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c3RlbS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1RleHQuaD4KKworCisvKgorICogPT09PT09PT0gaGVsbG8ubW9kLlRhbGtlciBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX18gaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX18geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIE9iamVjdF9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyB7CisgICAgY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfRnhuc19fKiBfX2Z4bnM7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVjsKKworLyogT2JqZWN0X18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geworICAgIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfRnhuc19fKiBfX2Z4bnM7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgcmVtYWluU2l6ZTsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfU2l6ZSBzdGFydFNpemU7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9IZWFwU3RkX19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIDwtLSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX19yb290X19WOworCisvKiA8LS0geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworLyogPC0tIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCAqLworCisvKiBPYmplY3QgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DID0gezB9OworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DID0geyh2b2lkKikmeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0N9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9GeG5zX18geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MuX19zZnhucywgLyogX19zeXNwICovCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UsCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UsCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UsCisgICAgeworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1MsCisgICAgICAgIDB4ODAwOCwgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX0Z4bnNfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQywgLyogYmFzZV9fICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UsCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FLAorICAgIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSwKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FLAorICAgIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TLAorICAgICAgICAweDgwMGMsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9TeXNNaW5fRnhuc19fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZ4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSwKKyAgICB7CisgICAgICAgIE5VTEwsIC8qIF9fY3JlYXRlICovCisgICAgICAgIE5VTEwsIC8qIF9fZGVsZXRlICovCisgICAgICAgIE5VTEwsIC8qIF9fbGFiZWwgKi8KKyAgICAgICAgMHg4MDBmLCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0gaGVsbG8ubW9kLlRhbGtlciBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19VSW50MTYgY291bnQ7Cit9IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogT2JqZWN0X190YWJsZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfXyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1ZbMV07CisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfU2l6ZSByZW1haW5SVFNTaXplOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfU2l6ZVQgbWF4RGVmYXVsdFR5cGVBbGlnbjsKK30geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX0ludCogc3RhdGVUYWI7CisgICAgeGRjX0Jvb2wgZXhlY0ZsYWc7CisgICAgeGRjX0Jvb2wgcnRzRG9uZUZsYWc7Cit9IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FICovCitleHRlcm4geGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UoeGRjX0ludCk7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UgKi8KK2V4dGVybiB4ZGNfSW50IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSh4ZGNfSW50KTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BWzJdOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FbMl07CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fIHsKKyAgICBfX1RBX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfX291dGJ1ZiBvdXRidWY7CisgICAgeGRjX1VJbnQgb3V0aWR4OworICAgIHhkY19Cb29sIHdyYXBwZWQ7Cit9IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXzsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fb3V0YnVmIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0FbMTAyNF07CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0kgKi8KK2V4dGVybiB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JKHhkY19DaGFyKix4ZGNfVUludCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fIHsKKyAgICBfX1RBX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfX2F0ZXhpdEhhbmRsZXJzIGF0ZXhpdEhhbmRsZXJzOworICAgIHhkY19JbnQgbnVtQXRleGl0SGFuZGxlcnM7CisgICAgeGRjX0ludCBleGl0U3RhdHVzOworfSB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX187CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fYXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BWzhdOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JICovCitleHRlcm4geGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKHhkY19DaGFyKioseGRjX0NoYXIqKix4ZGNfVmFMaXN0LHhkY19ydW50aW1lX1N5c3RlbV9QYXJzZURhdGEqKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9TdGF0ZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfUHRyIGNoYXJCYXNlOworICAgIHhkY19QdHIgbm9kZUJhc2U7Cit9IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX1N0YXRlX187CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX1RleHRfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FbNjgwXTsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X25vZGVUYWIgeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BWzE5XTsKKworCisvKgorICogPT09PT09PT0geGRjLmNmZy5Qcm9ncmFtIFRFTVBMQVRFID09PT09PT09CisgKi8KKworLyoKKyAqICA9PT09PT09PSBfX0FTTV9fID09PT09PT09CisgKiAgRGVmaW5lIHRoaXMgcHJvZ3JhbSdzIHBhY2thZ2UtcGF0aCByZWxhdGl2ZSBhc3NlbWJseSBkaXJlY3RvcnkKKyAqLworX19GQVJfXyBjaGFyICpfX0FTTV9fID0gIkAoIylfX0FTTV9fID0gRDovd29yay90dXRvcmlhbC9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXIjsKKworLyoKKyAqICA9PT09PT09PSBfX0lTQV9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBJU0Egb2YgdGhpcyBleGVjdXRhYmxlLiAgVGhpcyBzeW1ib2wgaXMgdXNlZCBieSBwbGF0Zm9ybQorICogIHNwZWNpZmljICJleGVjIiBjb21tYW5kcyB0aGF0IHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBJU0E7IGUuZy4sIGdkYgorICovCitfX0ZBUl9fIGNoYXIgKl9fSVNBX18gPSAiQCgjKV9fSVNBX18gPSB4ODYiOworCisvKgorICogID09PT09PT09IF9fUExBVF9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBwbGF0Zm9ybSB0aGF0IGNhbiBydW4gdGhpcyBleGVjdXRhYmxlLiAgVGhpcworICogIHN5bWJvbCBpcyB1c2VkIGJ5IHBsYXRmb3JtIGluZGVwZW5kZW50ICJleGVjIiBjb21tYW5kcworICovCitfX0ZBUl9fIGNoYXIgKl9fUExBVF9fID0gIkAoIylfX1BMQVRfXyA9IGhvc3QucGxhdGZvcm1zLlBDIjsKKworLyoKKyAqICA9PT09PT09PSBfX1RBUkdfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgdGFyZ2V0IHVzZWQgdG8gYnVpbGQgdGhpcyBleGVjdXRhYmxlLgorICovCitfX0ZBUl9fIGNoYXIgKl9fVEFSR19fID0gIkAoIylfX1RBUkdfXyA9IGdudS50YXJnZXRzLk1pbmd3IjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMF0gPCAwOworfQoreGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX0Yodm9pZCkgeworICAgIHJldHVybiAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiID09IDAgfHwgKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYlsxXSA8IDA7Cit9CisKKworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JKHZvaWQpCit7CisgICAgeGRjX0ludCBzdGF0ZVszXTsKKyAgICB4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyhzdGF0ZSwgMik7Cit9CisKKyNpZmRlZiBfX3RpX18KKyNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kpOworI2VuZGlmCisKKy8qCisgKiAgPT09PT09PT0geGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSSA9PT09PT09PQorICogIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGJvb3RzdHJhcCBpbml0aWFsaXphdGlvbiBjb2RlIGFzIGVhcmx5IGFzCisgKiAgcG9zc2libGUgaW4gdGhlIHN0YXJ0dXAgcHJvY2Vzcy4gIFRoaXMgZnVuY3Rpb24gc2ltcGx5IGNhbGxzIGFueQorICogIGNvbmZpZ3VyZWQgbnVsbC4KKyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSSh2b2lkKQoreworfQorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1R5cGVzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvVGV4dC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Fzc2VydC5oPgorCisvKgorICogID09PT09PT09IFN5c3RlbV9wcmludGZFeHRlbmRfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyBvcHRpb25hbCBleHRlbmRlZCBmb3JtYXRzIG9mIHByaW50Zi4KKyAqLworSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0koQ2hhciAqKnBidWYsIENoYXIgKipwZm10LCAKKyAgICBWYUxpc3QgdmEsIHhkY19ydW50aW1lX1N5c3RlbV9QYXJzZURhdGEgKnBhcnNlKQoreworICAgIENoYXIgICAgKmZtdCA9ICpwZm10OworICAgIEludCAgICAgcmVzOworICAgIENoYXIgICAgYzsKKyAgICBCb29sICAgIGZvdW5kID0gRkFMU0U7CisgICAgCisgICAgcmVzID0gMDsKKworICAgIGMgPSAqZm10Kys7CisgICAgKnBmbXQgPSAqcGZtdCArIDE7CisKKyAgICAKKyAgICBpZiAoYyA9PSAnJCcpIHsKKyAgICAgICAgYyA9ICpmbXQrKzsKKyAgICAgICAgKnBmbXQgPSAqcGZtdCArIDE7CisgICAgICAgIGlmIChjID09ICdMJykgeworICAgICAgICAgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwgKmxhYiA9IHBhcnNlLT5hRmxhZyA/IAorICAgICAgICAgICAgICAgICh4ZGNfcnVudGltZV9UeXBlc19MYWJlbCAqKWlhcmdUb1B0cih2YV9hcmcodmEsIElBcmcpKSA6CisgICAgICAgICAgICAgICAgKHhkY19ydW50aW1lX1R5cGVzX0xhYmVsICopdmFfYXJnKHZhLCB2b2lkICopOworICAgICAgICAgICAgcmVzICs9IHhkY19ydW50aW1lX1RleHRfcHV0TGFiKGxhYiwgcGJ1ZiwgcGFyc2UtPnByZWNpcyk7CisgICAgICAgICAgICBwYXJzZS0+bGVuID0gMDsKKyAgICAgICAgICAgIGZvdW5kID0gVFJVRTsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgaWYgKGZvdW5kID09IEZBTFNFKSB7CisgICAgICAgICAvKiBvdGhlciBjaGFyYWN0ZXIgKGxpa2UgJSkgY29weSB0byBvdXRwdXQgKi8KKyAgICAgICAgICoocGFyc2UtPnB0cikgPSBjOworICAgICAgICAgcGFyc2UtPmxlbiA9IDE7CisgICAgfQorCisgICAgcmV0dXJuIChyZXMpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBURU1QTEFURSA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworZXh0ZXJuIGludCBIT1NUd3JpdGUoaW50LCBjaGFyICosIHVuc2lnbmVkKTsKKyNlbHNlCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCisvKgorICogID09PT09PT09IFN5c01pbl9vdXRwdXRfX0kgPT09PT09PT0KKyAqICBIT1NUV3JpdGUgb25seSB3cml0ZXMgYSBtYXggb2YgTiBjaGFycyBhdCBhIHRpbWUuIFRoZSBhbW91bnQgaXQgd3JpdGVzCisgKiAgaXMgcmV0dXJuZWQuIFRoaXMgZnVuY3Rpb24gbG9vcHMgdW50aWwgdGhlIGVudGlyZSBidWZmZXIgaXMgd3JpdHRlbi4KKyAqICBCZWluZyBhIHN0YXRpYyBmdW5jdGlvbiBhbGxvd3MgaXQgdG8gY29uZGl0aW9uYWxseSBjb21waWxlIG91dC4KKyAqLworVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JKENoYXIgKmJ1ZiwgVUludCBzaXplKQoreworI2lmZGVmIF9fdGlfXworICAgIEludCBwcmludENvdW50OworICAgIAorICAgIHdoaWxlIChzaXplICE9IDApIHsKKyAgICAgICAgcHJpbnRDb3VudCA9IEhPU1R3cml0ZSgxLCBidWYsIHNpemUpOworICAgICAgICBpZiAoKHByaW50Q291bnQgPD0gMCkgfHwgKHByaW50Q291bnQgPiBzaXplKSkgeworICAgICAgICAgICAgYnJlYWs7ICAvKiBlbnN1cmUgd2UgbmV2ZXIgZ2V0IHN0dWNrIGluIGFuIGluZmluaXRlIGxvb3AgKi8KKyAgICAgICAgfQorICAgICAgICBzaXplIC09IHByaW50Q291bnQ7CisgICAgICAgIGJ1ZiA9IGJ1ZiArIHByaW50Q291bnQ7CisgICAgfSAgICAKKyNlbHNlCisgICAgZndyaXRlKGJ1ZiwgMSwgc2l6ZSwgc3Rkb3V0KTsKKyNlbmRpZgorfQorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBURU1QTEFURSA9PT09PT09PQorICovCisKKworLyoKKyAqICA9PT09PT09PSB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSA9PT09PT09PQorICogIFRoaXMgZnVuY3Rpb24gaXMgaW5kaXJlY3RseSBjYWxsZWQgd2l0aGluIFRleHQuYyB0aHJvdWdoCisgKiAgdGhlIHZpc2l0Um9wZUZ4biBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBvZiB4ZGMucnVudGltZS5UZXh0LgorICovCitWb2lkIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JKHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUsCisgICAgeGRjX0Z4biB2aXNGeG4sIHhkY19QdHIgdmlzU3RhdGUpCit7CisgICAgeGRjX1N0cmluZyBzdGFja1szXTsKKyAgICB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kocm9wZSwgdmlzRnhuLCB2aXNTdGF0ZSwgc3RhY2spOworfQorCisKKy8qCisgKiA9PT09PT09PSBoZWxsby5tb2QuVGFsa2VyIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfXyBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NFbmFibGVkIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0luY2x1ZGVkIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2sgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlT2JqIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlUHJtcyBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19pZCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMTI7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlck9iaiBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG44IGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZUZ4biBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jb3VudCBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19oZWFwIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19zaXplb2YgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfT2JqZWN0X190YWJsZSBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiB0ZXh0X19DICovCitfX0ZBUl9fIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX3RleHQgaGVsbG9fbW9kX1RhbGtlcl90ZXh0X19DID0gIkdvb2RuaWdodCBNb29uIjsKKworLyogY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfY291bnQgaGVsbG9fbW9kX1RhbGtlcl9jb3VudF9fQyA9ICh4ZGNfSW50KTB4MzsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDI7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEVfYXNzZXJ0RmFpbGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzA5KSA8PCAxNiB8IDApOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDM7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBBX2luaXRpYWxpemVkUGFyYW1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXMgeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTEpIDw8IDE2IHwgMTYpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA0OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX18geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDU7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogc2V0TWFza0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DID0gMDsKKworLyogZGljdEJhc2VfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlIHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2UpMCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoeGRjX1VJbnQxNikweDAsICAvKiBjb3VudCAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDY7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogRV9nZW5lcmljX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWMgeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzMxKSA8PCAxNiB8IDApOworCisvKiBFX21lbW9yeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnkgeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCkzNDkpIDw8IDE2IHwgMCk7CisKKy8qIHBvbGljeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5IHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQyA9IHhkY19ydW50aW1lX0Vycm9yX1VOV0lORDsKKworLyogcmFpc2VIb29rX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2sgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSkpOworCisvKiBtYXhEZXB0aF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGggeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MgPSAoeGRjX1VJbnQxNikweDEwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDc7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQzsKKworLyogT2JqZWN0X19QQVJBTVNfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DID0geworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgMCwgLyogX19zZWxmICovCisgICAgMCwgLyogX19meG5zICovCisgICAgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQy5fX2lwcm1zLCAvKiBpbnN0YW5jZSAqLworICAgIHsKKyAgICAgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgICAgIDAsICAvKiBuYW1lICovCisgICAgfSwgIC8qIGluc3RhbmNlICovCit9OworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fViA9IHt7CisgICAgeyZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssICAvKiBsaW5rLm5leHQgKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rfSwgIC8qIGxpbmsucHJldiAqLworICAgIChVQ2hhciopMCwgIC8qIGluc3RBcnJCZWcgKi8KKyAgICAoVUNoYXIqKSgwKy0xKSwgIC8qIGluc3RBcnJFbmQgKi8KKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKSwgIC8qIGluc3RTaXplICovCisgICAgMCwgIC8qIGN1ciAqLworICAgIDAsICAvKiBkaWFnc01hc2sgKi8KK319OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwODsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MgPSBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18pOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0M7CisKKy8qIE9iamVjdF9fUEFSQU1TX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MgPSB7CisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgIDAsIC8qIF9fc2VsZiAqLworICAgIDAsIC8qIF9fZnhucyAqLworICAgICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQy5fX2lwcm1zLCAvKiBpbnN0YW5jZSAqLworICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDApKSwgIC8qIHNpemUgKi8KKyAgICB7CisgICAgICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgICAgICAwLCAgLyogbmFtZSAqLworICAgIH0sICAvKiBpbnN0YW5jZSAqLworfTsKKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WID0ge3sKKyAgICB7JnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAgLyogbGluay5uZXh0ICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rfSwgIC8qIGxpbmsucHJldiAqLworICAgIChVQ2hhciopeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WLCAgLyogaW5zdEFyckJlZyAqLworICAgIChVQ2hhciopKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fViswKSwgIC8qIGluc3RBcnJFbmQgKi8KKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18pLCAgLyogaW5zdFNpemUgKi8KKyAgICAwLCAgLyogY3VyICovCisgICAgMCwgIC8qIGRpYWdzTWFzayAqLworfX07CisKKy8qIE9iamVjdF9fdGFibGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzFdID0geworICAgIHsvKiBpbnN0YW5jZSMwICovCisgICAgICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQywKKyAgICAgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MTAwMCkpLCAgLyogcmVtYWluU2l6ZSAqLworICAgICAgICAoKHhkY19VQXJnKSgodm9pZCopMHgxMDAwKSksICAvKiBzdGFydFNpemUgKi8KKyAgICB9LAorfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MCkpLCAgLyogcmVtYWluUlRTU2l6ZSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyA9IDE7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DID0gc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18pOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DID0geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WOworCisvKiBFX25vUlRTTWVtb3J5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnkgeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpNDIxKSA8PCAxNiB8IDApOworCisvKiBBX3plcm9TaXplX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTk1KSA8PCAxNiB8IDE2KTsKKworLyogQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkxNDApIDw8IDE2IHwgMTYpOworCisvKiBBX2ludmFsaWRBbGlnbm1lbnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50IHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTIwMSkgPDwgMTYgfCAxNik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA5OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBMX2NvbnN0cnVjdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk0NjgpIDw8IDE2IHwgNCk7CisKKy8qIExfY3JlYXRlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGUgeGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTQ5MikgPDwgMTYgfCA0KTsKKworLyogTF9kZXN0cnVjdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNTEzKSA8PCAxNiB8IDQpOworCisvKiBMX2RlbGV0ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlIHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk1MzIpIDw8IDE2IHwgNCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoeGRjX1NpemVUKTB4NCwgIC8qIG1heERlZmF1bHRUeXBlQWxpZ24gKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2UgeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MgPSAoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKSZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1ZbMF07CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoKHhkY19JbnQqKTApLCAgLyogc3RhdGVUYWIgKi8KKyAgICAwLCAgLyogZXhlY0ZsYWcgKi8KKyAgICAwLCAgLyogcnRzRG9uZUZsYWcgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVsyXSA9IHsKKyAgICAoKHhkY19JbnQoKikoeGRjX0ludCkpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSkpLCAgLyogWzBdICovCisgICAgKCh4ZGNfSW50KCopKHhkY19JbnQpKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UpKSwgIC8qIFsxXSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BWzJdID0geworICAgIDEsICAvKiBbMF0gKi8KKyAgICAxLCAgLyogWzFdICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBkOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogbWF4UGFzc2VzX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3NlcyB4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyA9ICh4ZGNfSW50KTB4MjA7CisKKy8qIGZpcnN0Rnhuc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MgPSB7MCwgMH07CisKKy8qIGxhc3RGeG5zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MgPSB7MCwgMH07CisKKy8qIHN0YXJ0TW9kc0Z4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kpKTsKKworLyogZXhlY0ltcGxfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGwgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGwpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSkpOworCisvKiBzZnhuVGFiX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiKXhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSk7CisKKy8qIHNmeG5SdHNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMpeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQVsxMDI0XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXRlX19WID0geworICAgIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0EsICAvKiBvdXRidWYgKi8KKyAgICAoeGRjX1VJbnQpMHgwLCAgLyogb3V0aWR4ICovCisgICAgMCwgIC8qIHdyYXBwZWQgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogYnVmU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemUgeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MgPSAoeGRjX1NpemVUKTB4NDAwOworCisvKiBmbHVzaEF0RXhpdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0IHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyA9IDE7CisKKy8qIG91dHB1dEZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4biB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bikwKTsKKworLyogb3V0cHV0RnVuY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmMgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYykoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSkpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fYXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BWzhdID0geworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbMF0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzFdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFsyXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbM10gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzRdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs1XSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbNl0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzddICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BLCAgLyogYXRleGl0SGFuZGxlcnMgKi8KKyAgICAoeGRjX0ludCkweDAsICAvKiBudW1BdGV4aXRIYW5kbGVycyAqLworICAgICh4ZGNfSW50KTB4Y2FmZSwgIC8qIGV4aXRTdGF0dXMgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogQV9jYW5ub3RGaXRJbnRvQXJnX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnIHhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMjYxKSA8PCAxNiB8IDE2KTsKKworLyogbWF4QXRleGl0SGFuZGxlcnNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MgPSAoeGRjX0ludCkweDg7CisKKy8qIGV4dGVuZEZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSkpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfUHRyKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVswXSkpLCAgLyogY2hhckJhc2UgKi8KKyAgICAoKHhkY19QdHIpKCh2b2lkKikmeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BWzBdKSksICAvKiBub2RlQmFzZSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzY4MF0gPSB7CisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFswXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzFdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzEwXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzExXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzEzXSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE3XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzE4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE5XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzIwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzIyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzIzXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI0XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzMwXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMxXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzMyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzM0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM1XSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzM2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM3XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM5XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQ2XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDldICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbNTBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTJdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTNdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNTVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNTZdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbNTddICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNThdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjFdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNjRdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjZdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjddICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjhdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNzBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzFdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNzJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNzNdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbNzRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNzddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzhdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbNzldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbODBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbODFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbODJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbODNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbODRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbODVdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbODZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbODddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbODhdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbODldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOTBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbOTFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbOTJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbOTNdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMDBdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMTAxXSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzEwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsxMDNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTA0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMDZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTA3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMDldICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMTEwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzExMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxMTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTEzXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzExNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTE2XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzExN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMThdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMTE5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMjFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTIyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxMjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTI1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzEyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxMjddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTI4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzEyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxMzBdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTMxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMzNdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMTM0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzEzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsxMzZdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMTM3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzEzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFsxNDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTQxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFsxNDNdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMTQ0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsxNDZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTQ3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxNDldICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTUwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTUzXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzE1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTU2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxNThdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTU5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsxNjFdICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMTYyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTY1XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzE2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxNjddICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTY4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNzBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTcxXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNzNdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMTc0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTc3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNzldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTgwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxODJdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMTgzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxODVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTg2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxODhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTg5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxOTFdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTkyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsxOTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTk1XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxOTddICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTk4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzIwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFsyMDFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjAyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFsyMDRdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMjA1XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzIwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyMDddICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMjA4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMTBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjExXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzIxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsyMTNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjE0XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzIxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMTZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjE3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MSwgIC8qIFsyMTldICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMjIwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyMjJdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjIzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyMjVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjI2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIyN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMjhdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjI5XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzIzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyMzFdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMjMyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyMzRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjM1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyMzddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjM4XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsyNDBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjQxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNDNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjQ0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNDZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjQ3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFsyNDldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjUwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyNTJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjUzXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzI1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyNTVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjU2XSAqLworICAgICh4ZGNfQ2hhcikweDc3LCAgLyogWzI1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyNThdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMjU5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMjYwXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzI2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsyNjJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMjYzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNjVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjY2XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNjhdICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMjY5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNzFdICovCisgICAgKHhkY19DaGFyKTB4NDksICAvKiBbMjcyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNzRdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjc1XSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzI3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNzddICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMjc4XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzI3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyODBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjgxXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsyODNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjg0XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFsyODZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMjg3XSAqLworICAgICh4ZGNfQ2hhcikweDQ2LCAgLyogWzI4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyODldICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjkwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyOTJdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbMjkzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZSwgIC8qIFsyOTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjk2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzI5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyOThdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMjk5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszMDFdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzAyXSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzMwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFszMDRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzA1XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzMwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFszMDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszMDhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzA5XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzEyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFszMTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzE1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzMxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszMTddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzE4XSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzMxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszMjBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzIxXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzMyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFszMjNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzI0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszMjZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzI3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzMyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMjldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszMzBdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMzMxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszMzNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzM0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMzZdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMzM3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzMzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMzldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNDJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQzXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzM0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNDVdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzQ2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzM0N10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzM0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNDldICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMzUwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzM1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNTJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzUzXSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzM1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNTVdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMzU2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFszNThdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzU5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFszNjFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMzYyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFszNjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzY1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFszNjddICovCisgICAgKHhkY19DaGFyKTB4M2QsICAvKiBbMzY4XSAqLworICAgICh4ZGNfQ2hhcikweDMwLCAgLyogWzM2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFszNzBdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzcxXSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzM3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyYywgIC8qIFszNzNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzc0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzM3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszNzZdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMzc3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZCwgIC8qIFszNzldICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzgwXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzM4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzM4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszODNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzg0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszODZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMzg3XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzM4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszODldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzkwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzM5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFszOTJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzkzXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzM5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOTVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMzk2XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOThdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzk5XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs0MDFdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDAyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NywgIC8qIFs0MDRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDA1XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0MDddICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDA4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs0MTBdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNDExXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs0MTNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0MTZdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNDE3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0MTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0MjBdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNDIxXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MjNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDI0XSAqLworICAgICh4ZGNfQ2hhcikweDUyLCAgLyogWzQyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1NCwgIC8qIFs0MjZdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNDI3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0MjldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDMwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0MzJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDMzXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDM2XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDM5XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzQ0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NDFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDQyXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQ0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs0NDRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDQ1XSAqLworICAgICh4ZGNfQ2hhcikweDQ1LCAgLyogWzQ0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFs0NDddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDQ4XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQ0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs0NTBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDUxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQ1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NTNdICovCisgICAgKHhkY19DaGFyKTB4NTAsICAvKiBbNDU0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0NTZdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNDU3XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0NTldICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNDYwXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzQ2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0NjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDYzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0NjVdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNDY2XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDY3XSAqLworICAgICh4ZGNfQ2hhcikweDNjLCAgLyogWzQ2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0NjldICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDcwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0NzJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDczXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQ3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0NzVdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDc2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0NzhdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDc5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs0ODFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDgyXSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzQ4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0ODRdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNDg1XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzQ4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs0ODddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDg4XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzQ4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs0OTBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0OTFdICovCisgICAgKHhkY19DaGFyKTB4M2MsICAvKiBbNDkyXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ5M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0OTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDk1XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0OTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDk4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1MDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTAxXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzUwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MDNdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTA0XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzUwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1MDZdICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNTA3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzUwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1MDldICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNTEwXSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzUxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzUxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MTNdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTE0XSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzUxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MTZdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTE3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1MTldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTIwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzUyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1MjJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNTIzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzUyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs1MjVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTI2XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzUyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1MjhdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTI5XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzUzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzUzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MzJdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTMzXSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzUzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MzVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTM2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs1MzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTM5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NDFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNTQyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzU0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1NDRdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTQ1XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzU0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs1NDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NDhdICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNTQ5XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzU1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs1NTFdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNTUyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTUzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1NTVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNTU2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1NThdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNTU5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs1NjFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NjJdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbNTYzXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1NjVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTY2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1NjhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NjldICovCisgICAgKHhkY19DaGFyKTB4NDMsICAvKiBbNTcwXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzU3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1NzJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTczXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTc0XSAqLworICAgICh4ZGNfQ2hhcikweDQ0LCAgLyogWzU3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NzZdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbNTc3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzU3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1NzldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNTgwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1ODJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1ODNdICovCisgICAgKHhkY19DaGFyKTB4NDQsICAvKiBbNTg0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzU4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1ODZdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNTg3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NSwgIC8qIFs1OTBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTkxXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs1OTNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTk0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTk1XSAqLworICAgICh4ZGNfQ2hhcikweDQ3LCAgLyogWzU5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1OTddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTk4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NywgIC8qIFs2MDFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjAyXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MDRdICovCisgICAgKHhkY19DaGFyKTB4NGUsICAvKiBbNjA1XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzYwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2MDddICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjA4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjA5XSAqLworICAgICh4ZGNfQ2hhcikweDRjLCAgLyogWzYxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2MTFdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNjEyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjEzXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzYxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MTVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNjE2XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzYxN10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs2MTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjIwXSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzYyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2MjJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNjIzXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzYyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs2MjZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjI3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs2MjldICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjMwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs2MzJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MzNdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjM0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MzZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNjM3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs2MzldICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNjQwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjQxXSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzY0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2NDNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjQ0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2NDZdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNjQ3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjQ4XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzY0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2NTBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjUxXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzY1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs2NTNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjU0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjU1XSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzY1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2NTddICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNjU4XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs2NjFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjYyXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzY2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2NjRdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjY1XSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzY2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFs2NjhdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjY5XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzY3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs2NzFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NzJdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNjczXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzY3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2NzVdICovCisgICAgKHhkY19DaGFyKTB4NmIsICAvKiBbNjc2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzY3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs2NzhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2NzldICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BICovCitjb25zdCBfX1QxX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FbMTldID0geworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHgwLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDAsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4MjI1LCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDIyYSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDIzMywgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsyXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDIzYSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFszXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDIzZiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs0XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI0OCwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs1XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI0ZSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs2XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI1NCwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs3XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI1OSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs4XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI2MiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFs5XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI2NiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxMF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNmIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTFdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjcyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzEyXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI3YSwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxM10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyODIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTRdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4Mjg5LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE1XSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI5MCwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxNl0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4Mjk1LCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI5YywgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxN10gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAxMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyYTEsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMThdICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDEwOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogbmFtZVVua25vd25fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVVua25vd24geGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQyA9ICJ7dW5rbm93bi1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIG5hbWVFbXB0eV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHkgeGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MgPSAie2VtcHR5LWluc3RhbmNlLW5hbWV9IjsKKworLyogbmFtZVN0YXRpY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljIHhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyA9ICJ7c3RhdGljLWluc3RhbmNlLW5hbWV9IjsKKworLyogaXNMb2FkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfaXNMb2FkZWQgeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQyA9IDE7CisKKy8qIGNoYXJUYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhclRhYiB4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIpeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BKTsKKworLyogbm9kZVRhYl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYil4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EpOworCisvKiBjaGFyQ250X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJDbnQgeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DID0gKHhkY19JbnQxNikweDJhODsKKworLyogbm9kZUNudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250IHhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQyA9ICh4ZGNfSW50MTYpMHgxMzsKKworLyogdmlzaXRSb3BlRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4biB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSkpOworCisvKiB2aXNpdFJvcGVGeG4yX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjIgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kpKTsKKworCisvKgorICogPT09PT09PT0gaGVsbG8ubW9kLlRhbGtlciBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIHByaW50X19FICovCit4ZGNfVm9pZCBoZWxsb19tb2RfVGFsa2VyX3ByaW50X19FKCB2b2lkICkgCit7CisgICAgaGVsbG9fbW9kX1RhbGtlcl9wcmludF9fRigpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIHNldE1hc2tfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0UoIHhkY19TdHJpbmcgY29udHJvbCApIAoreworICAgIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0YoY29udHJvbCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogY2hlY2tfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0Vycm9yX2NoZWNrX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0YoZWIpOworfQorCisvKiBnZXREYXRhX19FICovCit4ZGNfcnVudGltZV9FcnJvcl9EYXRhKiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRihlYik7Cit9CisKKy8qIGdldENvZGVfX0UgKi8KK3hkY19VSW50MTYgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0YoZWIpOworfQorCisvKiBnZXRJZF9fRSAqLworeGRjX3J1bnRpbWVfRXJyb3JfSWQgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRihlYik7Cit9CisKKy8qIGdldE1zZ19fRSAqLworeGRjX1N0cmluZyB4ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0YoZWIpOworfQorCisvKiBnZXRTaXRlX19FICovCit4ZGNfcnVudGltZV9UeXBlc19TaXRlKiB4ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRihlYik7Cit9CisKKy8qIGluaXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX2luaXRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHhkY19ydW50aW1lX0Vycm9yX2luaXRfX0YoZWIpOworfQorCisvKiBwcmludF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHhkY19ydW50aW1lX0Vycm9yX3ByaW50X19GKGViKTsKK30KKworLyogcmFpc2VYX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiwgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbW9kLCB4ZGNfU3RyaW5nIGZpbGUsIHhkY19JbnQgbGluZSwgeGRjX3J1bnRpbWVfRXJyb3JfSWQgaWQsIHhkY19JQXJnIGFyZzEsIHhkY19JQXJnIGFyZzIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0YoZWIsIG1vZCwgZmlsZSwgbGluZSwgaWQsIGFyZzEsIGFyZzIpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZW50ZXJTeXN0ZW1fX0UgKi8KK3hkY19JQXJnIHhkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRigpOworfQorCisvKiBsZWF2ZVN5c3RlbV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRSggeGRjX0lBcmcga2V5ICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRihrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19GKHF1YWwpOworfQorCisvKiBlbnRlcl9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSBfX2luc3QgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0YoKHZvaWQqKV9faW5zdCk7Cit9CisKKy8qIGxlYXZlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlIF9faW5zdCwgeGRjX0lBcmcga2V5ICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YoKHZvaWQqKV9faW5zdCwga2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0LCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIAoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRigodm9pZCopX19pbnN0LCBibG9jaywgc2l6ZSk7Cit9CisKKy8qIGdldFN0YXRzX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19GKCh2b2lkKilfX2luc3QsIHN0YXRzKTsKK30KKworLyogYWxsb2NfX0UgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0LCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRigodm9pZCopX19pbnN0LCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBpc0Jsb2NraW5nX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0YoKHZvaWQqKV9faW5zdCk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGRvUHJpbnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19kb1ByaW50X19FKCB4ZGNfcnVudGltZV9Mb2dfRXZlbnRSZWMqIGV2UmVjICkgCit7CisgICAgeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0YoZXZSZWMpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GKGhlYXAsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGNhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0YoaGVhcCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogZnJlZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIAoreworICAgIHhkY19ydW50aW1lX01lbW9yeV9mcmVlX19GKGhlYXAsIGJsb2NrLCBzaXplKTsKK30KKworLyogZ2V0U3RhdHNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19ydW50aW1lX01lbW9yeV9TdGF0cyogc3RhdHMgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0YoaGVhcCwgc3RhdHMpOworfQorCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX0ludCBxdWFsICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRihoZWFwLCBxdWFsKTsKK30KKworLyogZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSAqLworeGRjX1NpemVUIHhkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GKCk7Cit9CisKKy8qIHZhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX0NoYXIgdmFsdWUsIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GKGhlYXAsIHNpemUsIGFsaWduLCB2YWx1ZSwgZWIpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZXhlY19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GKCk7Cit9CisKKy8qIHJ0c0RvbmVfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0YoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYWJvcnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0Yoc3RyKTsKK30KKworLyogZXhpdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9leGl0X19GKHN0YXQpOworfQorCisvKiBmbHVzaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GKCk7Cit9CisKKy8qIHB1dGNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GKGNoKTsKK30KKworLyogcmVhZHlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0YoKTsKK30KKworLyogTW9kdWxlX3N0YXJ0dXAgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FKCB4ZGNfSW50IHN0YXRlICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19GKHN0YXRlKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogYWJvcnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0Yoc3RyKTsKK30KKworLyogYXRleGl0X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fQXRleGl0SGFuZGxlciBoYW5kbGVyICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0YoaGFuZGxlcik7Cit9CisKKy8qIGV4aXRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19FKCB4ZGNfSW50IHN0YXQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRihzdGF0KTsKK30KKworLyogcHV0Y2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0YoY2gpOworfQorCisvKiBmbHVzaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKCB2b2lkICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19GKCk7Cit9CisKKy8qIHByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19FKCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKK30KKworLyogcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRihmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogYXByaW50Zl92YV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRSggeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRihmbXQsIF9fdmEpOworfQorCisvKiBhcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiBzcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7Cit9CisKKy8qIHNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIGFzcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKK30KKworLyogYXNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogdnByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0YoZm10LCB2YSk7Cit9CisKKy8qIGF2cHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19GKGZtdCwgdmEpOworfQorCisvKiB2c3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0YoYnVmLCBmbXQsIHZhKTsKK30KKworLyogYXZzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19GKGJ1ZiwgZm10LCB2YSk7Cit9CisKKy8qIE1vZHVsZV9zdGFydHVwICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSggeGRjX0ludCBzdGF0ZSApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRihzdGF0ZSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBjb3JkVGV4dF9fRSAqLworeGRjX1N0cmluZyB4ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19FKCB4ZGNfcnVudGltZV9UZXh0X0NvcmRBZGRyIGNvcmQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRihjb3JkKTsKK30KKworLyogcm9wZVRleHRfX0UgKi8KK3hkY19TdHJpbmcgeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19GKHJvcGUpOworfQorCisvKiBtYXRjaFJvcGVfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUsIHhkY19TdHJpbmcgcGF0LCB4ZGNfSW50KiBsZW5wICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19GKHJvcGUsIHBhdCwgbGVucCk7Cit9CisKKy8qIHB1dExhYl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRihsYWIsIGJ1ZnAsIGxlbik7Cit9CisKKy8qIHB1dE1vZF9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbWlkLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19GKG1pZCwgYnVmcCwgbGVuKTsKK30KKworLyogcHV0U2l0ZV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0UoIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHNpdGUsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GKHNpdGUsIGJ1ZnAsIGxlbik7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkdhdGVOdWxsICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyKXBhLCBzaXplb2YoeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2RlbGV0ZV9fUyggUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoaW5zdHApOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIGNvbnN0IHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9QYXJhbXNfX2luaXRfX1MoZHN0LCBzcmMsIHBzeiwgaXN6KTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGVfX2xhYmVsX19TKCBQdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5KHF1YWwpOworfQorCisvKiBlbnRlcl9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X2VudGVyX19FKCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0KTsKK30KKworLyogbGVhdmVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19JQXJnIGtleSApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmUoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QsIGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5IZWFwU3RkICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1Mob2EsIG9zeiwgYWEsICh4ZGNfcnVudGltZV9IZWFwU3RkX19fUGFyYW1zUHRyKXBhLCBzaXplb2YoeGRjX3J1bnRpbWVfSUhlYXBfUGFyYW1zKSwgZWIpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKGluc3RwKTsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit2b2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgY29uc3QgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKQoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zX19pbml0X19TKGRzdCwgc3JjLCBwc3osIGlzeik7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZV9fbGFiZWxfX1MoIFB0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1Mob2JqLCBsYWIpOworfQorCisvKiBhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2FsbG9jX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0lIZWFwX2FsbG9jKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0LCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBmcmVlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2ZyZWVfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX1B0ciBibG9jaywgeGRjX1NpemVUIHNpemUgKQoreworICAgIHhkY19ydW50aW1lX0lIZWFwX2ZyZWUoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QsIGJsb2NrLCBzaXplKTsKK30KKworLyogaXNCbG9ja2luZ19fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9pc0Jsb2NraW5nX19FKCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X0hhbmRsZSBfX2luc3QgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9JSGVhcF9pc0Jsb2NraW5nKCh4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUpX19pbnN0KTsKK30KKworLyogZ2V0U3RhdHNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApCit7CisgICAgeGRjX3J1bnRpbWVfSUhlYXBfZ2V0U3RhdHMoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QsIHN0YXRzKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgUFJPWFkgQk9EWSA9PT09PT09PQorICovCisKKy8qIERFTEVHQVRFUyBUTyB4ZGMucnVudGltZS5HYXRlTnVsbCAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jcmVhdGVfX1Mob2EsIG9zeiwgYWEsICh4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0cilwYSwgc2l6ZW9mKHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfUGFyYW1zKSwgZWIpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2RlbGV0ZV9fUyggUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoaW5zdHApOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgY29uc3QgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyhkc3QsIHNyYywgcHN6LCBpc3opOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlX19sYWJlbF9fUyggUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1Mob2JqLCBsYWIpOworfQorCisvKiBxdWVyeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfcXVlcnlfX0UoIHhkY19JbnQgcXVhbCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5KHF1YWwpOworfQorCisvKiBlbnRlcl9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZSBfX2luc3QgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCk7Cit9CisKKy8qIGxlYXZlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX0lBcmcga2V5ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZSgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCwga2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLlN5c01pbiAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoKTsKK30KKworLyogYWJvcnRfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfYWJvcnRfX0UoIHhkY19TdHJpbmcgc3RyICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fYWJvcnQoc3RyKTsKK30KKworLyogZXhpdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9leGl0X19FKCB4ZGNfSW50IHN0YXQgKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9leGl0KHN0YXQpOworfQorCisvKiBmbHVzaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9mbHVzaF9fRSggdm9pZCApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoKCk7Cit9CisKKy8qIHB1dGNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoKGNoKTsKK30KKworLyogcmVhZHlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcmVhZHlfX0UoIHZvaWQgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHkoKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgT0JKRUNUIERFU0NSSVBUT1IgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK3R5cGVkZWYgc3RydWN0IHsgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fIHMwOyBjaGFyIGM7IH0geGRjX3J1bnRpbWVfR2F0ZU51bGxfX19TMTsKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQyA9IHsKKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MsIC8qIGZ4blRhYiAqLworICAgICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssIC8qIG1vZExpbmsgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19TMSkgLSBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0Ml9fKSwgLyogb2JqQWxpZ24gKi8KKyAgICAwLCAvKiBvYmpIZWFwICovCisgICAgMCwgLyogb2JqTmFtZSAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18pLCAvKiBvYmpTaXplICovCisgICAgKFB0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MsIC8qIHBybXNJbml0ICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyksIC8qIHBybXNTaXplICovCit9OworCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgT0JKRUNUIERFU0NSSVBUT1IgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK3R5cGVkZWYgc3RydWN0IHsgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX18gczA7IGNoYXIgYzsgfSB4ZGNfcnVudGltZV9IZWFwU3RkX19fUzE7CitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0NvcmVfT2JqRGVzYyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQyA9IHsKKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQywgLyogZnhuVGFiICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAvKiBtb2RMaW5rICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfX19TMSkgLSBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX18pLCAvKiBvYmpBbGlnbiAqLworICAgIDAsIC8qIG9iakhlYXAgKi8KKyAgICAwLCAvKiBvYmpOYW1lICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0Ml9fKSwgLyogb2JqU2l6ZSAqLworICAgIChQdHIpJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MsIC8qIHBybXNJbml0ICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zKSwgLyogcHJtc1NpemUgKi8KK307CisKKworCisvKgorICogPT09PT09PT0gaGVsbG8ubW9kLlRhbGtlciBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5FcnJvciBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIAoreworICAgIGxhYi0+aGFuZGxlID0gb2JqOworICAgIGxhYi0+bW9kSWQgPSAzMjc3NjsKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsKGxhYiwgMCwgMCk7CisKKyAgICByZXR1cm4gbGFiOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBwcm1zLCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JKHBybXMsICh4ZGNfUHRyKShzcmMgPyBzcmMgOiAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MpLCBwc3osIGlzeik7Cit9CisKKy8qIE9iamVjdF9fZ2V0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hLCB4ZGNfSW50IGkgKSAKK3sKKyAgICBpZiAob2EpIHsKKyAgICAgICAgcmV0dXJuICgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18qKW9hKSArIGk7CisgICAgfQorCisgICAgaWYgKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MgPT0gMCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyopeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQykgKyBpOworfQorCisvKiBPYmplY3RfX2ZpcnN0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKil4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmsubmV4dDsKKworICAgIGlmIChpSGRyICE9ICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gaUhkciArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fbmV4dF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICgoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKW9iaikgLSAxOworCisgICAgaWYgKGlIZHItPmxpbmsubmV4dCAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfTGluayAqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuICh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopKGlIZHItPmxpbmsubmV4dCkgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtcyBwcm1zOworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCogb2JqOworCisgICAgLyogY29tbW9uIGluc3RhbmNlIGluaXRpYWxpemF0aW9uICovCisgICAgb2JqID0geGRjX3J1bnRpbWVfQ29yZV9jcmVhdGVPYmplY3RfX0koJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgb2EsIG9zeiwgJnBybXMsICh4ZGNfUHRyKXBhLCBwc3osIGViKTsKKyAgICBpZiAob2JqID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIG9iajsKK30KKworLyogT2JqZWN0X19kZXN0cnVjdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCBvYmosIE5VTEwsIC0xLCBUUlVFKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQywgKigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0KiopaW5zdHApLCBOVUxMLCAtMSwgRkFMU0UpOworICAgICooKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSopaW5zdHApID0gTlVMTDsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgCit7CisgICAgbGFiLT5oYW5kbGUgPSBvYmo7CisgICAgbGFiLT5tb2RJZCA9IDMyNzgwOworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduTGFiZWwobGFiLCAwLCAwKTsKKworICAgIHJldHVybiBsYWI7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgcHJtcywgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2Fzc2lnblBhcmFtc19fSShwcm1zLCAoeGRjX1B0cikoc3JjID8gc3JjIDogJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MpLCBwc3osIGlzeik7Cit9CisKKy8qIE9iamVjdF9fZ2V0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2EsIHhkY19JbnQgaSApIAoreworICAgIGlmIChvYSkgeworICAgICAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKilvYSkgKyBpOworICAgIH0KKworICAgIGlmICh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MgPT0gMCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fKil4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MpICsgaTsKK30KKworLyogT2JqZWN0X19maXJzdF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKil4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIubGluay5uZXh0OworCisgICAgaWYgKGlIZHIgIT0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YpIHsKKyAgICAgICAgcmV0dXJuIGlIZHIgKyAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBPYmplY3RfX25leHRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgCit7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqaUhkciA9ICgoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKW9iaikgLSAxOworCisgICAgaWYgKGlIZHItPmxpbmsubmV4dCAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfTGluayAqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikoaUhkci0+bGluay5uZXh0KSArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zIHBybXM7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QqIG9iajsKKyAgICBpbnQgaVN0YXQ7CisKKyAgICAvKiBjb21tb24gaW5zdGFuY2UgaW5pdGlhbGl6YXRpb24gKi8KKyAgICBvYmogPSB4ZGNfcnVudGltZV9Db3JlX2NyZWF0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsIG9hLCBvc3osICZwcm1zLCAoeGRjX1B0cilwYSwgcHN6LCBlYik7CisgICAgaWYgKG9iaiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIC8qIG1vZHVsZS1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiAqLworICAgIGlTdGF0ID0geGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GKG9iaiwgJnBybXMsIGViKTsKKyAgICBpZiAoeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2soZWIpKSB7CisgICAgICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgb2JqLCBOVUxMLCBpU3RhdCwgKHhkY19Cb29sKShvYSAhPSBOVUxMKSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBvYmo7Cit9CisKKy8qIE9iamVjdF9fZGVzdHJ1Y3RfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsIG9iaiwgTlVMTCwgMCwgVFJVRSk7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCAqKCh4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdCoqKWluc3RwKSwgTlVMTCwgMCwgRkFMU0UpOworICAgICooKHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlKilpbnN0cCkgPSBOVUxMOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Mb2cgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbiBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDE7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKCk7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fRigpOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IGhlbGxvLm1vZC5UYWxrZXIgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZV9fUyk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoaGVsbG9fbW9kX1RhbGtlcl9wcmludF9fRSk7CisjZW5kaWYKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NFbmFibGVkIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2sgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlT2JqIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVQcm1zIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19pZCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJPYmogaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG40IGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjggaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fc3RhcnR1cERvbmVGeG4gaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2NvdW50IGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19oZWFwIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX3NpemVvZiBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9faGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX3RhYmxlIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX2hlbGxvX21vZF9UYWxrZXJfdGV4dCBoZWxsb19tb2RfVGFsa2VyX3RleHRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX19oZWxsb19tb2RfVGFsa2VyX2NvdW50IGhlbGxvX21vZF9UYWxrZXJfY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBoZWxsb19tb2RfVGFsa2VyX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciBoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgaGVsbG9fbW9kX1RhbGtlcl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCBoZWxsb19tb2RfVGFsa2VyX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIGhlbGxvX21vZF9UYWxrZXJfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIGhlbGxvX21vZF9UYWxrZXJfcHJpbnRfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfQXNzZXJ0X0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Bc3NlcnRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zIHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0NvcmVfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Db3JlX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0NvcmVfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0RlZmF1bHRzX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSB4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0RpYWdzX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FKCB4ZGNfU3RyaW5nIGNvbnRyb2wgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpYyB4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeSB4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeSB4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2sgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGggeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9FcnJvcl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9EYXRhKiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1VJbnQxNiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfSWQgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiwgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbW9kLCB4ZGNfU3RyaW5nIGZpbGUsIHhkY19JbnQgbGluZSwgeGRjX3J1bnRpbWVfRXJyb3JfSWQgaWQsIHhkY19JQXJnIGFyZzEsIHhkY19JQXJnIGFyZzIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0UoIHhkY19JQXJnIGtleSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlLCB4ZGNfSUFyZyBrZXkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5IHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NyZWF0ZSB4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2RlbGV0ZSB4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9Mb2dfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRSggeGRjX3J1bnRpbWVfTG9nX0V2ZW50UmVjKiBldlJlYyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NYWluX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2UgeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NZW1vcnlfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19JbnQgcXVhbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU2l6ZVQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX0NoYXIgdmFsdWUsIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TdGFydHVwX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZSB4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYyB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c01pbl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZyB4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4geGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c3RlbV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX0F0ZXhpdEhhbmRsZXIgaGFuZGxlciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duIHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eSB4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpYyB4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkIHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhckNudCB4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25vZGVDbnQgeGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjIgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfVGV4dF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1RleHRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfVGV4dF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfQ29yZEFkZHIgY29yZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSwgeGRjX1N0cmluZyBwYXQsIHhkY19JbnQqIGxlbnAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19FKCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtaWQsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0UoIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHNpdGUsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0gSU5JVElBTElaQVRJT04gRU5UUlkgUE9JTlQgPT09PT09PT0KKyAqLworCitleHRlcm4gaW50IF9feGRjX19pbml0KHZvaWQpOworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKQorI2VuZGlmCisjZW5kaWYKK19fRkFSX18gaW50ICgqIHZvbGF0aWxlIF9feGRjX19pbml0X19hZGRyKSh2b2lkKSA9ICZfX3hkY19faW5pdDsKKworCisvKgorICogPT09PT09PT0gUFJPR1JBTSBHTE9CQUxTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gQ0xJTksgRElSRUNUSVZFUyA9PT09PT09PQorICovCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19pZF9fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTihoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKGhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oaGVsbG9fbW9kX1RhbGtlcl90ZXh0X19DLCAiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfdGV4dF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfdGV4dF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfdGV4dF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfdGV4dF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oaGVsbG9fbW9kX1RhbGtlcl9jb3VudF9fQywgIi5jb25zdDpoZWxsb19tb2RfVGFsa2VyX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6aGVsbG9fbW9kX1RhbGtlcl9jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OmhlbGxvX21vZF9UYWxrZXJfY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDpoZWxsb19tb2RfVGFsa2VyX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZUNudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMWM4NjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jZmcKQEAgLTAsMCArMSw0OTEgQEAKKy8qCisgKiAgPT09PT09PT0gcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jZmcgPT09PT09PT0KKyAqICBUaGlzIGdlbmVyYXRlZCBjb25maWd1cmF0aW9uIHNjcmlwdCBydW5zIHRoZSB1c2VyJ3MgY29uZmlndXJhdGlvbiBzY3JpcHQKKyAqICB0aGUgY29udGV4dCBvZiBhIHNwZWNpZmljIHRhcmdldCBhbmQgcGxhdGZvcm0gaW4gb3JkZXIgdG8gZ2VuZXJhdGUKKyAqICBhbGwgdGhlIGZpbGVzIG5lY2Vzc2FyeSB0byBjcmVhdGUgYW4gZXhlY3V0YWJsZTsgZS5nLiwgbGlua2VyIGNvbW1hbmQKKyAqICBmaWxlcywgc3RhdGljIEMvQysrIGRhdGEgc3RydWN0dXJlcywgZXRjLgorICovCisKKy8qCisgKiAgPT09PT09PT0gX3J1bmVzY2FwZSA9PT09PT09PQorICogIFJlY3Vyc2l2ZSB1bmVzY2FwZSB0byBkZWNvZGUgc2VyaWFsaXplZCBzdHJpbmdzCisgKi8KK2Z1bmN0aW9uIF9ydW5lc2NhcGUob2JqKSB7CisgICAgZm9yICh2YXIgaSBpbiBvYmopIHsKKyAgICAgICAgaWYgKG9ialtpXSAhPSBudWxsKSB7CisgICAgICAgICAgICBpZiAodHlwZW9mIG9ialtpXSA9PSAnc3RyaW5nJykgeworICAgICAgICAgICAgICAgIG9ialtpXSA9IHVuZXNjYXBlKG9ialtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb2JqW2ldID09ICdvYmplY3QnKSB7CisgICAgICAgICAgICAgICAgX3J1bmVzY2FwZShvYmpbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvKgorICogID09PT09PT09IF9nZXRQbGF0Q2ZnID09PT09PT09CisgKi8KK2Z1bmN0aW9uIF9nZXRQbGF0Q2ZnKCkgeworICAgIHZhciB0bXAgPSB7fTsKKyAgICBfcnVuZXNjYXBlKHRtcCk7CisgICAgcmV0dXJuICh0bXApOworfQorLyoKKyAqICA9PT09PT09PSBfY2ZnaW5pdCA9PT09PT09PQorICovCitmdW5jdGlvbiBfY2ZnaW5pdCgpIHsKKyAgICB4ZGMubG9hZFBhY2thZ2UoJ3hkYy5zZXJ2aWNlcy5pbnRlcm4uY21kJyk7CisgICAgdmFyIHByb2cgPSB4ZGMub21bJ3hkYy5jZmcuUHJvZ3JhbSddOworCisgICAgLyogaW5pdGlhbGl6ZSBwcm9nIGF0dHJzIGZyb20gYnVpbGQgbW9kZWwgKi8KKyAgICB2YXIgYnVpbGQgPSB7CisgICAgICAgIHJlbGVhc2VzOiB7CisgICAgICAgICAgICAwOiB7CisgICAgICAgICAgICAgICAgbmFtZTogImhlbGxvX21vZCIsCisgICAgICAgICAgICAgICAgYXR0cnM6IHsKKyAgICAgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICJkZWZhdWx0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb3RoZXJGaWxlczoge30KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgdGFyZ2V0OiB7CisgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3ciLAorICAgICAgICAgICAgbmFtZTogIk1pbmd3IiwKKyAgICAgICAgICAgIHN1ZmZpeDogIjg2R1ciLAorICAgICAgICAgICAgY29tcGF0aWJsZVN1ZmZpeGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2NvbXBhdGlibGVTdWZmaXhlcyIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgaXNhOiAieDg2IiwKKyAgICAgICAgICAgIG1vZGVsOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L21vZGVsIiwKKyAgICAgICAgICAgICAgICBlbmRpYW46ICJsaXR0bGUiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgb3M6ICJXaW5kb3dzIiwKKyAgICAgICAgICAgIHJ0czogImdudS50YXJnZXRzLnJ0czg2R1ciLAorICAgICAgICAgICAgZGxsRXh0OiAiLnNvIiwKKyAgICAgICAgICAgIHBsYXRmb3JtOiAiaG9zdC5wbGF0Zm9ybXMuUEMiLAorICAgICAgICAgICAgcGxhdGZvcm1zOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3BsYXRmb3JtcyIsCisgICAgICAgICAgICAgICAgMDogImhvc3QucGxhdGZvcm1zLlBDIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHZlcnNpb246ICJnbnUudGFyZ2V0cy5NaW5ndyU3QjElMkMwJTJDMy40JTJDNSIsCisgICAgICAgICAgICBkZWJ1Z0dlbjogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9kZWJ1Z0dlbiIsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZXh0ZW5zaW9uczogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zIiwKKyAgICAgICAgICAgICAgICAiLmFzbSI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5hc20nIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmFzbSIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuYyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYyIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY3BwIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmNwcCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jeHgiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3h4JyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jeHgiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLkMiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuQyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuQyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuY2MiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY2MnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNjIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5zODZHVyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5zODZHVyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuczg2R1ciLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJhc20iCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHZlcnNpb25NYXA6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvdmVyc2lvbk1hcCIsCisgICAgICAgICAgICAgICAgImdjYzMuMiI6ICIxJTJDMCUyQzMuMiUyQzAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYWxpZ25EaXJlY3RpdmVTdXBwb3J0ZWQ6IGZhbHNlLAorICAgICAgICAgICAgcm9vdERpcjogImUlM0EvcnRzYy9taW5ndyIsCisgICAgICAgICAgICBwcm9maWxlczogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcyIsCisgICAgICAgICAgICAgICAgZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZyciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZzOiAiLURfREVCVUdfJTNEMSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgbGlua09wdHM6ICItZyIsCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICByZWxlYXNlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncmVsZWFzZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1PMiIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgbGlua09wdHM6ICIiLAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBwcm9maWxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1nJTIwLXBnIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBsaW5rT3B0czogIi1wZyIsCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNvdmVyYWdlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWZwcm9maWxlLWFyY3MlMjAtZnRlc3QtY292ZXJhZ2UiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGxpbmtPcHRzOiAiIiwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgc2VjdE1hcDogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zZWN0TWFwIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzdGRJbmNsdWRlOiAiZ251L3RhcmdldHMvc3RkLmgiLAorICAgICAgICAgICAgc3RkVHlwZXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMiLAorICAgICAgICAgICAgICAgIHRfSUFyZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JQXJnIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfQ2hhcjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9DaGFyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMSwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRG91YmxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0RvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0Zsb2F0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Zsb2F0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRnhuOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Z4biIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ4OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDgiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQxNjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQxNiIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDMyOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDMyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50NDA6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50NDAiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ2NDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ2NCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xvbmc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xEb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTERvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDEyLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9MTG9uZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9MTG9uZyIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X1B0cjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9QdHIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9TaG9ydDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9TaG9ydCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGJpdHNQZXJDaGFyOiA4LAorICAgICAgICAgICAgR0NDVkVSUzogIjMuNC41IiwKKyAgICAgICAgICAgIEdDQ1RBUkc6ICJtaW5ndzMyIiwKKyAgICAgICAgICAgIExPTkdOQU1FOiAiL2Jpbi9taW5ndzMyLWdjYy5leGUiLAorICAgICAgICAgICAgQ1lHV0lOOiBmYWxzZSwKKyAgICAgICAgICAgIGFyOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2FyIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICIlMjQlMjhyb290RGlyJTI5LyUyNCUyOEdDQ1RBUkclMjkvYmluL2FyIiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiY3IiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXJPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2FyT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbG5rOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2xuayIsCisgICAgICAgICAgICAgICAgY21kOiAiJTI0JTI4cm9vdERpciUyOS8lMjQlMjhMT05HTkFNRSUyOSIsCisgICAgICAgICAgICAgICAgb3B0czogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBsbmtPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2xua09wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIiIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiLWxzdGRjKyslMjAtTCUyNCUyOHJvb3REaXIlMjkvbGliIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNjOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2NjIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICIlMjQlMjhyb290RGlyJTI5LyUyNCUyOExPTkdOQU1FJTI5JTIwLWMlMjAtTUQlMjAtTUYlMjAlMjRALmRlcCIsCisgICAgICAgICAgICAgICAgb3B0czogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBjY09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvY2NPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICItV3VudXNlZCIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiLURmYXIlM0QlMjAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXNtOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2FzbSIsCisgICAgICAgICAgICAgICAgY21kOiAiJTI0JTI4cm9vdERpciUyOS8lMjQlMjhMT05HTkFNRSUyOSUyMC1jJTIwLXglMjBhc3NlbWJsZXIiLAorICAgICAgICAgICAgICAgIG9wdHM6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXNtT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9hc21PcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICIiLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBpbmNsdWRlT3B0czogIiIsCisgICAgICAgICAgICBjbWRQcmVmaXg6ICIiCisgICAgICAgIH0sCisgICAgICAgIHRlc3Q6IHt9LAorICAgICAgICBjZmdTY3JpcHQ6ICJwcm9nLmNmZyIsCisgICAgICAgIHByb2ZpbGU6ICJyZWxlYXNlIgorICAgIH07CisgICAgYnVpbGQudGFyZ2V0LmZpbmRTdWZmaXggPSBmdW5jdGlvbiBmaW5kU3VmZml4KHBrZykgeworICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA8IDEpIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVGhlIGZ1bmN0aW9uIElUYXJnZXQuZmluZFN1ZmZpeCgpIHJlcXVpcmVzIGFuICIgKyAiYXJndW1lbnQiKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgc3VmZml4TWFwID0ge307CisgICAgICAgIGlmICgiYnVpbGQiIGluIHBrZykgeworICAgICAgICAgICAgdmFyIGJ1aWxkID0gcGtnLmJ1aWxkOworICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYnJhcmllcy5sZW5ndGggIT0gMCkgeworICAgICAgICAgICAgICAgIGlmIChidWlsZC5saWJEZXNjWzBdLnN1ZmZpeCAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidWlsZC5saWJEZXNjLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXhNYXBbYnVpbGQubGliRGVzY1tpXS5zdWZmaXhdID0gIiI7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkLmxpYkRlc2MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChidWlsZC5saWJEZXNjW2ldLnRhcmdldCA9PSBwcm9nLmJ1aWxkLnRhcmdldC4kbmFtZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeE1hcFtwcm9nLmJ1aWxkLnRhcmdldC5zdWZmaXhdID0gIiI7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoImxlbmd0aCIgaW4gcGtnKSB7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwa2cubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgc3VmZml4TWFwW3BrZ1tpXV0gPSAiIjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQW4gaW52YWxpZCBhcmd1bWVudCB0eXBlIHN1cHBsaWVkIHRvICIgKyAiSVRhcmdldC5maW5kU3VmZml4KCkiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB2YXIgY29tcFRhcmdzID0gW107CisgICAgICAgIGZvciAodmFyIHByb3AgaW4gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXMpIHsKKyAgICAgICAgICAgIGNvbXBUYXJnc1twcm9wXSA9IHRoaXMuY29tcGF0aWJsZVN1ZmZpeGVzW3Byb3BdOworICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLnN1ZmZpeCBpbiBzdWZmaXhNYXApIHsKKyAgICAgICAgICAgIHJldHVybiAodGhpcy5zdWZmaXgpOworICAgICAgICB9CisgICAgICAgIGlmIChjb21wVGFyZ3MubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgcmV0dXJuIChudWxsKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbXBUYXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGNvbXBUYXJnc1tpXSBpbiBzdWZmaXhNYXApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGNvbXBUYXJnc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChudWxsKTsKKyAgICB9OworCisgICAgYnVpbGQudGFyZ2V0LnNlbGVjdFN1ZmZpeCA9IGZ1bmN0aW9uIHNlbGVjdFN1ZmZpeChsaXN0KSB7CisgICAgICAgIHZhciBzdWZmaXhNYXAgPSB7fTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBzdWZmaXhNYXBbbGlzdFtpXV0gPSAiIjsKKyAgICAgICAgfQorICAgICAgICB2YXIgY29tcFRhcmdzID0gW107CisgICAgICAgIGZvciAodmFyIHByb3AgaW4gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXMpIHsKKyAgICAgICAgICAgIGNvbXBUYXJnc1twcm9wXSA9IHRoaXMuY29tcGF0aWJsZVN1ZmZpeGVzW3Byb3BdOworICAgICAgICB9CisgICAgICAgIGlmICh0aGlzLnN1ZmZpeCBpbiBzdWZmaXhNYXApIHsKKyAgICAgICAgICAgIHJldHVybiAodGhpcy5zdWZmaXgpOworICAgICAgICB9CisgICAgICAgIGlmIChjb21wVGFyZ3MubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgcmV0dXJuIChudWxsKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvbXBUYXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGNvbXBUYXJnc1tpXSBpbiBzdWZmaXhNYXApIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGNvbXBUYXJnc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChudWxsKTsKKyAgICB9OworCisgICAgX3J1bmVzY2FwZShidWlsZCk7CisgICAgYnVpbGQuY2ZnQXJncyA9IHVuZGVmaW5lZDsKKyAgICBwcm9nLmJ1aWxkID0gYnVpbGQ7CisgICAgCisgICAgcHJvZy5uYW1lID0gInByb2cueDg2R1ciOworCisgICAgcHJvZy5lbmRpYW4gPSBwcm9nLmJ1aWxkLnRhcmdldC5tb2RlbC5lbmRpYW47CisKKyAgICAvKiB1c2UgdGhlIHBsYXRmb3JtIHBhY2thZ2UncyBQbGF0Zm9ybSBtb2R1bGUgKi8KKyAgICB2YXIgUGxhdGZvcm0gPSB4ZGMudXNlTW9kdWxlKCJob3N0LnBsYXRmb3Jtcy5QQy5QbGF0Zm9ybSIpOworICAgIHZhciBwbGF0UGFyYW1zID0gX2dldFBsYXRDZmcoKTsKKyAgICBmb3IgKHZhciBwcm9wIGluIHBsYXRQYXJhbXMpIHsKKyAgICAgICAgaWYgKCEocHJvcCBpbiBQbGF0Zm9ybS5QQVJBTVMpKSB7CisgICAgICAgICAgICBkZWxldGUgcGxhdFBhcmFtc1twcm9wXTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwcm9nLnBsYXRmb3JtTmFtZSA9ICJob3N0LnBsYXRmb3Jtcy5QQyI7CisgICAgcHJvZy5wbGF0Zm9ybSA9IFBsYXRmb3JtLmNyZWF0ZSgiIiwgX2dldFBsYXRDZmcoKSwgcGxhdFBhcmFtcyk7CisgICAgLyogcmVjb3JkIHRoZSBleGVjdXRhYmxlJ3MgcGFja2FnZSBuYW1lICovCisgICAgcHJvZy5idWlsZFBhY2thZ2UgPSAiaGVsbG8ubW9kIjsKKworICAgIC8qIHJlY29yZCBidWlsZC1tb2RlbCBpbmZvcm1hdGlvbiByZXF1aXJlZCBkdXJpbmcgY29uZmlnIGdlbmVyYXRpb24gKi8KKyAgICBwcm9nLiQkYmluZCgiJCRpc2FzbSIsIDApOworICAgIHByb2cuJCRiaW5kKCIkJGlzcm9tIiwgMCk7CisgICAgcHJvZy4kJGJpbmQoIiQkZ2VudGFiIiwgWworICAgIF0pOworICAgIAorICAgIC8qIGJpbmQgcHJvZyB0byBhbiBhcHByb3ByaWF0ZSBleGVjdXRpb24gY29udGV4dCAqLworICAgIHByb2cuY3B1ID0gcHJvZy5wbGF0Zm9ybS5nZXRFeGVDb250ZXh0KHByb2cpOworCisgICAgLyogaW1wb3J0IHRoZSB0YXJnZXQncyBydW4tdGltZSBzdXBwb3J0IHBrZyAqLworICAgIHhkYy5sb2FkUGFja2FnZSgiZ251LnRhcmdldHMucnRzODZHVyIpOworfQorICAgIAorLyogZnVuY3Rpb24gdG8gaW1wb3J0IHRoZSBjZmcgc2NyaXB0J3MgcGFja2FnZSAqLworZnVuY3Rpb24gX3VzZXJzY3JpcHQoJCRsZWdhY3ksIHNjcmlwdCkgeworICAgIHZhciBob21lOworICAgIHZhciBzcGF0aDsKKyAgICAvKiBpbXBvcnQgdGhlIGV4ZWN1dGFibGUncyBwYWNrYWdlICovCisgICAgaG9tZSA9IHhkYy5sb2FkUGFja2FnZSgiaGVsbG8ubW9kIik7CisgICAgc3BhdGggPSAnLic7CisgICAgCisgICAgeGRjLm9tLiQkYmluZCgnJGhvbWVwa2cnLCBob21lKTsKKworICAgIGlmIChzY3JpcHQgIT0gbnVsbCkgeworICAgICAgICB1dGlscy5ldmFsdWF0ZVNjcmlwdChzY3JpcHQpOworICAgIH0KKyAgICBlbHNlIHsgCisgICAgICAgIC8qIGxvYWQgJiBydW4gcHJvZ3JhbSBjZmcgc2NyaXB0IGFuZCBtb25pdG9yIGFsbCBsb2FkZWQgZmlsZXMgKi8KKyAgICAgICAgX3J1bkNmZygicHJvZy5jZmciLCBzcGF0aCwgInBhY2thZ2UvY2ZnL3Byb2dfeDg2R1ciLCAgCisgICAgICAgICAgICAgICAgIGZhbHNlLCAKKyAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgIF9nZXRQbGF0Q2ZnKCkpOworICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAKKworCisgICAgLyoKKyAgICAgKiAgPT09PT09PT0gX3J1bkNmZyA9PT09PT09PQorICAgICAqICBSdW4gYSB1c2VyIHN1cHBsaWVkIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGFuZCBwcmV2ZW50IHVzZXIncyBzY3JpcHQgZnJvbQorICAgICAqICBvdmVyd3JpdGluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHByb2cuCisgICAgICovCisgICAgZnVuY3Rpb24gX3J1bkNmZyhjZmdTY3JpcHQsIHBhdGgsIHByb2dyYW1OYW1lLCBsZWdhY3lUY2YsIGxlZ2FjeUNmZywKKyAgICAgICAgcGxhdFBhcmFtcykKKyAgICB7CisgICAgICAgIGlmIChsZWdhY3lUY2YpIHsKKyAgICAgICAgICAgIC8qIHNhdmUgY3VycmVudCBnbG9iYWwgdmFyaWFibGVzICovCisgICAgICAgICAgICB2YXIgJHNhdmUgPSB7cHJvZzogdXRpbHMuZ2xvYmFsLnByb2csIFByb2dyYW06IFByb2dyYW19OworICAgIAorICAgICAgICAgICAgLyogaW5pdGlhbGl6ZSBnbG9iYWwgdmFyaWFibGVzIGZvciBsZWdhY3kgY29uZmlnIHNjcmlwdHMgKi8KKyAgICAgICAgICAgIGVudmlyb25tZW50WyJjb25maWcucHJvZ3JhbU5hbWUiXSA9IHByb2dyYW1OYW1lOworICAgICAgICAgICAgZW52aXJvbm1lbnRbImNvbmZpZy5wbGF0Zm9ybSJdID0gUHJvZ3JhbS5wbGF0Zm9ybU5hbWU7CisgICAgICAgICAgICB1dGlscy5zZWVkUGF0aCA9IGVudmlyb25tZW50WyJjb25maWcuaW1wb3J0UGF0aCJdOworICAgICAgICAgICAgdXRpbHMubG9hZFBsYXRmb3JtLnBhcmFtcyA9IHBsYXRQYXJhbXM7CisgICAgICAgICAgICBQcm9ncmFtID0gJCRsZWdhY3kuUHJvZ3JhbTsgICAgIC8qIGRlZmluZWQgaW4gY2ZnLnRjaSAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiBydW4gbGVnYWN5IGNvbmZpZyBzY3JpcHQgd2l0aCBwcm9nID09IHRvIFJUU0MgUHJvZ3JhbTsgdGhpcworICAgICAgICAgICAgICogYWxsb3dzIGxlZ2FjeSBzY3JpcHQgdG8gcmVhZCBidWlsZCBhdHJpYnV0ZXMgZnJvbSBSVFNDIG1vZGVsCisgICAgICAgICAgICAgKiBiZWZvcmUgcmUtY3JlYXRpbmcgdGhlIHByb2cgb2JqZWN0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHV0aWxzLmxvYWRDYXBzdWxlKGNmZ1NjcmlwdCwgZmFsc2UsIHBhdGgpOyAgCisgICAgCisgICAgICAgICAgICAvKiByZXN0b3JlIGdsb2JhbCB2YXJpYWJsZXM7IG5vdyBwcm9nID09IFRDT00gcHJvZyBiZWNhdXNlCisgICAgICAgICAgICAgKiB1dGlscy5sb2FkUGxhdGZvcm0oKSBjcmVhdGVzIHRoZSBUQ09NIHByb2cgb2JqZWN0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICAkJGxlZ2FjeS5wcm9nID0gdXRpbHMuZ2xvYmFsLnByb2c7ICAvKiBpbiBjYXNlIFhEQyB3YW50cyBpdCAqLworICAgICAgICAgICAgdXRpbHMuZ2xvYmFsLnByb2cgPSAkc2F2ZS5wcm9nOworICAgICAgICAgICAgUHJvZ3JhbSA9ICRzYXZlLlByb2dyYW07CisgICAgCisgICAgICAgICAgICAvKiBydW4gWERDIGNvbmZpZ3VyYXRpb24gc2NyaXB0LCBpZiBpdCBleGlzdHMgKi8KKyAgICAgICAgICAgIGlmIChsZWdhY3lDZmcpIHsKKyAgICAgICAgICAgICAgICB1dGlscy5pbXBvcnRGaWxlKGNmZ1NjcmlwdC5yZXBsYWNlKC9cLnRjZi8sICIuY2ZnIiksIHBhdGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdXRpbHMubG9hZENhcHN1bGUoY2ZnU2NyaXB0LCBmYWxzZSwgcGF0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisgICAgCitmdW5jdGlvbiBfcG9zdGluaXQoKSB7CisKKyAgICB2YXIgY291dCA9IG51bGw7CisKKyAgICB2YXIgcHJvZyA9IHhkYy5vbVsneGRjLmNmZy5Qcm9ncmFtJ107CisgICAgLyogZ2V0IHRoZSBleGVjIGNvbW1hbmQgZm9yIHRoaXMgZXhlY3V0YWJsZSAqLworICAgIGlmIChwcm9nLmV4ZWNDbWQgPT0gbnVsbCkgeworICAgICAgICBwcm9nLmV4ZWNDbWQgPSBwcm9nLnBsYXRmb3JtLmdldEV4ZWNDbWQocHJvZywKKyAgICAgICAgICAgIHhkYy5vbVsiaG9zdC5wbGF0Zm9ybXMuUEMiXS5wYWNrYWdlQmFzZSk7CisgICAgfQorICAgIHZhciBjb3V0ID0gImRlZmluZSBFWEVDLiIgKyBwcm9nLm5hbWUgKyAnXG5cbic7CisgICAgY291dCArPSBwcm9nLmV4ZWNDbWQ7CisgICAgY291dCArPSAiXG5lbmRlZlxuXG4iOworCisgICAgdXRpbHMuZ2VuRGVwKCJwYWNrYWdlL2NmZy9wcm9nX3g4NkdXIiwgImhlbGxvLm1vZCIsIHV0aWxzLmxvYWRlZEZpbGVzLCBjb3V0LCBudWxsKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZy5kb3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jZmcuZG90Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczNmRjOWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jZmcuZG90CkBAIC0wLDAgKzEsMTYwIEBACitkaWdyYXBoIGNvbmZpZ3VyYXRpb24geworICAgIHNpemU9IjcuNSwxMCI7CisgICAgcmFua2Rpcj1MUjsKKyAgICByYW5rc2VwPSIuNTAgZXF1YWxseSI7CisgICAgY29uY2VudHJhdGU9dHJ1ZTsKKyAgICBjb21wb3VuZD10cnVlOworICAgIGxhYmVsPSJcbkNvbmZpZ3VyYXRpb24gZm9yIGhlbGxvLm1vZC9wcm9nLng4NkdXIgorICBub2RlIFtmb250PUhlbHZldGljYSwgZm9udHNpemU9MTQsIGZvbnRjb2xvcj1ibGFja107ICBzdWJncmFwaCBjbHVzdGVyMCB7bGFiZWw9IiI7IF9fY2ZnIFtsYWJlbD0icHJvZy5jZmciLCBjb2xvcj13aGl0ZSwgZm9udGNvbG9yPWJsdWVdOworICAgIG5vZGUgW2ZvbnQ9SGVsdmV0aWNhLCBmb250c2l6ZT0xMF07ICAgIHN1YmdyYXBoIGNsdXN0ZXIxIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkY1xuMSwgMSwgMSwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjIgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX2NvcmV2ZXJzX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLmNvcmV2ZXJzXG4xNiwgMCwgMSwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjMgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5nbG9iYWxcbjEsIDAsIDEiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9DbG9jayBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDbG9jayJdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX190b3AgLT4geGRjX3NlcnZpY2VzX2dsb2JhbF9DbG9ja1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfQ2xvY2sgLT4geGRjX3NlcnZpY2VzX2dsb2JhbF9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjQgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3NoZWxmX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNoZWxmXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfc3BlY19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5zcGVjXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfaW50ZXJuX3hzcl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyXG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfaW50ZXJuX2dlbl9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5pbnRlcm4uZ2VuXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyOCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfaW50ZXJuX2NtZF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5zZXJ2aWNlcy5pbnRlcm4uY21kXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyOSB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfcm92X190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnJvdlxuMSwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3Jvdl9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTAgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgaG9zdF9wbGF0Zm9ybXNfUENfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJob3N0LnBsYXRmb3Jtcy5QQ1xuMSwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgaG9zdF9wbGF0Zm9ybXNfUENfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgaG9zdF9wbGF0Zm9ybXNfUENfUGxhdGZvcm0gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iUGxhdGZvcm0iXTsKKyAgICAgICAgaG9zdF9wbGF0Zm9ybXNfUENfX3RvcCAtPiBob3N0X3BsYXRmb3Jtc19QQ19QbGF0Zm9ybVtzdHlsZT1pbnZpc107CisgICAgICAgIGhvc3RfcGxhdGZvcm1zX1BDX1BsYXRmb3JtIC0+IGhvc3RfcGxhdGZvcm1zX1BDX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19JbnRlbDgwNTg2IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkludGVsODA1ODYiXTsKKyAgICAgICAgaG9zdF9wbGF0Zm9ybXNfUENfX3RvcCAtPiBob3N0X3BsYXRmb3Jtc19QQ19JbnRlbDgwNTg2W3N0eWxlPWludmlzXTsKKyAgICAgICAgaG9zdF9wbGF0Zm9ybXNfUENfSW50ZWw4MDU4NiAtPiBob3N0X3BsYXRmb3Jtc19QQ19fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjExIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19wbGF0Zm9ybV9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InhkYy5wbGF0Zm9ybVxuMSwgMCwgMSwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9FeGVDb250ZXh0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkV4ZUNvbnRleHQiXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX190b3AgLT4geGRjX3BsYXRmb3JtX0V4ZUNvbnRleHRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcGxhdGZvcm1fRXhlQ29udGV4dCAtPiB4ZGNfcGxhdGZvcm1fX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfY2ZnX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLmNmZ1xuMSwgMCwgMiwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX2NmZ19fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX1Byb2dyYW0gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iUHJvZ3JhbSJdOworICAgICAgICB4ZGNfY2ZnX190b3AgLT4geGRjX2NmZ19Qcm9ncmFtW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19Qcm9ncmFtIC0+IHhkY19jZmdfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfTWFpbiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNYWluIl07CisgICAgICAgIHhkY19jZmdfX3RvcCAtPiB4ZGNfY2ZnX01haW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX01haW4gLT4geGRjX2NmZ19fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEzIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19ydW50aW1lX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnJ1bnRpbWVcbjIsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgICAgIHhkY19ydW50aW1lX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Fzc2VydCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJBc3NlcnQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9Bc3NlcnRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Bc3NlcnQgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0NvcmUgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iQ29yZSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0NvcmVbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Db3JlIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EZWZhdWx0cyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJEZWZhdWx0cyJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0RlZmF1bHRzW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGVmYXVsdHMgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RpYWdzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkRpYWdzIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfRGlhZ3Nbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EaWFncyAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRXJyb3IgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRXJyb3IiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9FcnJvcltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Vycm9yIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkdhdGUiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9HYXRlW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGwgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iR2F0ZU51bGwiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9HYXRlTnVsbFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Mb2cgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTG9nIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTG9nW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTG9nIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW4iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NYWluW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbiAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1lbW9yeSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01lbW9yeVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01lbW9yeSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJIZWFwU3RkIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfSGVhcFN0ZFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0hlYXBTdGQgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N0YXJ0dXAgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3RhcnR1cCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N0YXJ0dXBbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TdGFydHVwIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW0gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzdGVtIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXNNaW4gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzTWluIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzTWluW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzTWluIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9UZXh0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlRleHQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9UZXh0W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfVGV4dCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW5fTW9kdWxlX0dhdGVQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNZW1vcnlfSGVhcFByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iU3lzdGVtX1N1cHBvcnRQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxNCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBnbnVfdGFyZ2V0c19ydHM4NkdXX190b3AgW3NoYXBlPWJveCxsYWJlbD0iZ251LnRhcmdldHMucnRzODZHV1xuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIGhlbGxvX21vZF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9ImhlbGxvLm1vZFxuIiwgY29sb3I9d2hpdGVdOworICAgICAgICBoZWxsb19tb2RfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgaGVsbG9fbW9kX1RhbGtlciBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJUYWxrZXIiXTsKKyAgICAgICAgaGVsbG9fbW9kX190b3AgLT4gaGVsbG9fbW9kX1RhbGtlcltzdHlsZT1pbnZpc107CisgICAgICAgIGhlbGxvX21vZF9UYWxrZXIgLT4gaGVsbG9fbW9kX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgfQorICBub2RlIFtmb250PUhlbHZldGljYSwgZm9udHNpemU9MTBdOworICAgIGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtzaGFwZT1yZWNvcmQsbGFiZWw9ImdudS50YXJnZXRzLk1pbmd3fDEsMCwzLjQsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBnbnVfdGFyZ2V0c19ydHM4NkdXX190b3AgLT4gZ251X3RhcmdldHNfTWluZ3dfXzFfMF8zX180XzUgW2x0YWlsPWNsdXN0ZXIxNF07CisgICAgZ251X3RhcmdldHNfTWluZ3dfXzFfMF8zX180XzUgW3NoYXBlPXJlY29yZCxsYWJlbD0iZ251LnRhcmdldHMuTWluZ3d8MSwwLDMuNCw1IixzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZXldOworICAgIGhlbGxvX21vZF9fYm90IC0+IGdudV90YXJnZXRzX01pbmd3X18xXzBfM19fNF81IFtsdGFpbD1jbHVzdGVyMTVdOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuY2ZnLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2MxM2Q0YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZy54bWwKQEAgLTAsMCArMSwxOTI4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgVGhpcyBmaWxlIGNvbmZvcm1zIHRvIHRoZSBEVEQgeGRjL2NmZy9jb25maWd1cmF0aW9uLmR0ZCAtLT4KKzxjb25maWd1cmF0aW9uIG5hbWU9ImhlbGxvLm1vZC9wcm9nLng4NkdXIgorICAgIHBsYXRmb3JtTmFtZT0iaG9zdC5wbGF0Zm9ybXMuUEMiCisgICAgZ2xvYmFsU2VjdGlvbj0ibnVsbCIKKyAgICBzeXNTdGFjaz0iNDA5NiIKKyAgICBzdGFjaz0iNDA5NiIKKyAgICBoZWFwPSI0MDk2IgorICAgIGFyZ1NpemU9IjUxMiIKKyAgICBleGVjQ21kPSIuL3Byb2cueDg2R1ciCisgICAgZW5kaWFuPSJsaXR0bGUiCisgICAgY29kZU1vZGVsPSJudWxsIgorICAgIGRhdGFNb2RlbD0ibnVsbCI+Cis8dGFyZ2V0cz4KKyAgICA8dGFyZ2V0IG5hbWU9ImdudS50YXJnZXRzLk1pbmd3IgorICAgICAgICAgICAgdmVyc2lvbj0iMSwwLDMuNCw1IgorICAgICAgICAgICAgdXNlZGJ5PSJnbnUudGFyZ2V0cy5ydHM4NkdXIi8+CisgICAgPHRhcmdldCBuYW1lPSJnbnUudGFyZ2V0cy5NaW5ndyIKKyAgICAgICAgICAgIHZlcnNpb249IjEsMCwzLjQsNSIKKyAgICAgICAgICAgIHVzZWRieT0iaGVsbG8ubW9kIi8+Cis8L3RhcmdldHM+Cis8aW1wb3J0cz4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMiIHZlcnNpb249IjEsIDEsIDEsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuY29yZXZlcnMiIHZlcnNpb249IjE2LCAwLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmdsb2JhbCIgdmVyc2lvbj0iMSwgMCwgMSIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnNlcnZpY2VzLmdsb2JhbC5DbG9jayIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJlbmFibGUiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2hvd01lbW9yeSIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwuVHJhY2UiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zaGVsZiIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5zcGVjIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmludGVybi54c3IiIHZlcnNpb249IjEsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmdlbiIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5pbnRlcm4uY21kIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnJvdiIgdmVyc2lvbj0iMSwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5Nb2RlbCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlByb2dyYW0iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5TdHJ1Y3R1cmVEZWNvZGVyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuU3RhdGVSZWFkZXIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5WaWV3SW5mbyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iaG9zdC5wbGF0Zm9ybXMuUEMiIHZlcnNpb249IjEsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9Imhvc3QucGxhdGZvcm1zLlBDLlBsYXRmb3JtIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkJPQVJEIiB0eXBlPSJ4ZGMucGxhdGZvcm0uSVBsYXRmb3JtLkJvYXJkIiB2YWx1ZT0iJTdCaWQlM0ElMjAwJTJDJTIwYm9hcmROYW1lJTNBJTIwaW50ZWwteDg2JTJDJTIwYm9hcmRGYW1pbHklM0ElMjBpbnRlbC14ODYlMkMlMjBib2FyZFJldmlzaW9uJTNBJTIwbnVsbCU3RCI+PHN0cnVjdCBpZD0iaG9zdC5wbGF0Zm9ybXMuUEMuUGxhdGZvcm0vQk9BUkQiPg0KKyAgPGZpZWxkIG5hbWU9ImlkIj4wPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZE5hbWUiPmludGVsLXg4NjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmRGYW1pbHkiPmludGVsLXg4NjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmRSZXZpc2lvbiI+bnVsbDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJDUFUiIHR5cGU9InhkYy5wbGF0Zm9ybS5JRXhlQ29udGV4dC5DcHUiIHZhbHVlPSIlN0JpZCUzQSUyMDAlMkMlMjBjYXRhbG9nTmFtZSUzQSUyMGhvc3QucGxhdGZvcm1zLlBDJTJDJTIwZGV2aWNlTmFtZSUzQSUyMEludGVsODA1ODYlMkMlMjByZXZpc2lvbiUzQSUyMCUyQyUyMGNsb2NrUmF0ZSUzQSUyMDB4M2U4JTdEIj48c3RydWN0IGlkPSJob3N0LnBsYXRmb3Jtcy5QQy5QbGF0Zm9ybS9DUFUiPg0KKyAgPGZpZWxkIG5hbWU9ImlkIj4wPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjYXRhbG9nTmFtZSI+aG9zdC5wbGF0Zm9ybXMuUEM8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRldmljZU5hbWUiPkludGVsODA1ODY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJldmlzaW9uIi8+DQorICA8ZmllbGQgbmFtZT0iY2xvY2tSYXRlIj4weDNlODwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9Imhvc3QucGxhdGZvcm1zLlBDLkludGVsODA1ODYiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnBsYXRmb3JtIiB2ZXJzaW9uPSIxLCAwLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucGxhdGZvcm0uRXhlQ29udGV4dCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5wbGF0Zm9ybS5VdGlscyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLmNmZyIgdmVyc2lvbj0iMSwgMCwgMiwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLmNmZy5Qcm9ncmFtIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImdlbiIgdHlwZT0ieGRjLmNmZy5Qcm9ncmFtLkdlbmVyYXRpb25PcHRpb25zIiB2YWx1ZT0iJTdCZGVidWdnZXJGaWxlcyUzQSUyMHVuZGVmaW5lZCU3RCI+PHN0cnVjdCBpZD0ieGRjLmNmZy5Qcm9ncmFtL2dlbiI+DQorICA8ZmllbGQgbmFtZT0iZGVidWdnZXJGaWxlcyI+dW5kZWZpbmVkPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Imdsb2JhbFNlY3Rpb24iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN5c1N0YWNrIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzdGFjayIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iaGVhcCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYXJnU2l6ZSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNTEyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleGVjQ21kIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIuL3Byb2cueDg2R1ciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxpbmtUZW1wbGF0ZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWFpbiIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZWN0TWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3lzdGVtIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWUiIHR5cGU9InN0cmluZyIgdmFsdWU9InByb2cueDg2R1ciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1aWxkUGFja2FnZSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iaGVsbG8ubW9kIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJlbmRpYW4iIHR5cGU9InN0cmluZyIgdmFsdWU9ImxpdHRsZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29kZU1vZGVsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkYXRhTW9kZWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1aWxkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUJvYmplY3QlMjBPYmplY3QlNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNwdSIgdHlwZT0ieGRjLnBsYXRmb3JtLklFeGVDb250ZXh0Lkluc3RhbmNlIiB2YWx1ZT0iJTdCaWQlM0ElMjAwJTJDJTIwY2F0YWxvZ05hbWUlM0ElMjBob3N0LnBsYXRmb3Jtcy5QQyUyQyUyMGRldmljZU5hbWUlM0ElMjBJbnRlbDgwNTg2JTJDJTIwcmV2aXNpb24lM0ElMjAlMkMlMjBjbG9ja1JhdGUlM0ElMjAweDNlOCUyQyUyMGJvYXJkJTNBJTIwJTdCaWQlM0ElMjAwJTJDJTIwYm9hcmROYW1lJTNBJTIwaW50ZWwteDg2JTJDJTIwYm9hcmRGYW1pbHklM0ElMjBpbnRlbC14ODYlMkMlMjBib2FyZFJldmlzaW9uJTNBJTIwbnVsbCU3RCUyQyUyMGF0dHJzJTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMTFmMjNlNSUzQSUzQSUyOHhkYy5wbGF0Zm9ybS5JQ3B1RGF0YVNoZWV0Lkluc3RhbmNlJTI5aG9zdC5wbGF0Zm9ybXMuUEMuSW50ZWw4MDU4Ni5JbnN0YW5jZSUyMzAlMkMlMjBtZW1vcnlNYXAlM0ElMjAlNUIlMEElMEElNUQlN0QiPjxpbnN0YW5jZSBpZD0ieGRjLnBsYXRmb3JtLkV4ZUNvbnRleHQuSW5zdGFuY2UjMCI+DQorICA8ZmllbGQgbmFtZT0iaWQiPjA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNhdGFsb2dOYW1lIj5ob3N0LnBsYXRmb3Jtcy5QQzwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGV2aWNlTmFtZSI+SW50ZWw4MDU4NjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icmV2aXNpb24iLz4NCisgIDxmaWVsZCBuYW1lPSJjbG9ja1JhdGUiPjB4M2U4PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZCI+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5wbGF0Zm9ybS5FeGVDb250ZXh0Lkluc3RhbmNlIzAvYm9hcmQiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9ImJvYXJkTmFtZSI+aW50ZWwteDg2PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0iYm9hcmRGYW1pbHkiPmludGVsLXg4NjwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9ImJvYXJkUmV2aXNpb24iPm51bGw8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYXR0cnMiPnhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJE9iakAxMWYyM2U1OjooeGRjLnBsYXRmb3JtLklDcHVEYXRhU2hlZXQuSW5zdGFuY2UpaG9zdC5wbGF0Zm9ybXMuUEMuSW50ZWw4MDU4Ni5JbnN0YW5jZSMwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlNYXAiLz4NCis8L2luc3RhbmNlPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icGxhdGZvcm1OYW1lIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJob3N0LnBsYXRmb3Jtcy5QQyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icGxhdGZvcm0iIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uSW5zdGFuY2UiIHZhbHVlPSIlN0JleHRlcm5hbE1lbW9yeU1hcCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMGN1c3RvbU1lbW9yeU1hcCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJlbmFtZU1hcCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMGRhdGFNZW1vcnklM0ElMjB1bmRlZmluZWQlMkMlMjBjb2RlTWVtb3J5JTNBJTIwdW5kZWZpbmVkJTJDJTIwc3RhY2tNZW1vcnklM0ElMjB1bmRlZmluZWQlMkMlMjBzZWN0TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTdEIj48aW5zdGFuY2UgaWQ9Imhvc3QucGxhdGZvcm1zLlBDLlBsYXRmb3JtLkluc3RhbmNlIzAiPg0KKyAgPGZpZWxkIG5hbWU9ImV4dGVybmFsTWVtb3J5TWFwIi8+DQorICA8ZmllbGQgbmFtZT0iY3VzdG9tTWVtb3J5TWFwIi8+DQorICA8ZmllbGQgbmFtZT0icmVuYW1lTWFwIi8+DQorICA8ZmllbGQgbmFtZT0iZGF0YU1lbW9yeSI+dW5kZWZpbmVkPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlTWVtb3J5Ij51bmRlZmluZWQ8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InN0YWNrTWVtb3J5Ij51bmRlZmluZWQ8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InNlY3RNYXAiLz4NCis8L2luc3RhbmNlPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2xvYmFsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3ltYm9sIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DJTI3JTJDJTIwMHgxJTVEJTJDJTBBJTVCJTI3eGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MlMjclMkMlMjAweDElNUQlMEElNUQiPjxtYXAgaWQ9InhkYy5jZmcuUHJvZ3JhbS9zeW1ib2wiIGxlbmd0aD0iMiI+DQorICA8ZW50cnkga2V5PSJ4ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DIj4weDE8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0ieGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MiPjB4MTwvZW50cnk+DQorPC9tYXA+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmaXhlZENvZGVBZGRyIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmaXhlZERhdGFBZGRyIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsb2FkRml4ZWREYXRhQWRkciIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsb2FkUm9tIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLmNmZy5NYWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5ydW50aW1lIiB2ZXJzaW9uPSIyLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Bc3NlcnQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX2Fzc2VydEZhaWxlZCIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMGFzc2VydGlvbiUyMGZhaWx1cmUlMjVzJTI1cyUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjMCI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5hc3NlcnRpb24gZmFpbHVyZSVzJXM8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkNvcmUiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfaW5pdGlhbGl6ZWRQYXJhbXMiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBBX2luaXRpYWxpemVkUGFyYW1zJTNBJTIwdW5pbml0aWFsaXplZCUyMFBhcmFtcyUyMHN0cnVjdCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMCI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5BX2luaXRpYWxpemVkUGFyYW1zOiB1bmluaXRpYWxpemVkIFBhcmFtcyBzdHJ1Y3Q8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5EZWZhdWx0cyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkRpYWdzIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRGlhZ3MvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzMiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVOVFJZIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFWElUIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMSUZFQ1lDTEUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IklOVEVSTkFMIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBU1NFUlQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSMSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMjU2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSMiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNTEyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSMyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTAyNCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjIwNDgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI1IiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iODE5MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjciIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Mzg0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSOCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFMTCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNjU1MzUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNldE1hc2tFbmFibGVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImRpY3RCYXNlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkVycm9yIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5VTUFSR1MiIHR5cGU9Im51bWJlciIgdmFsdWU9IjIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfZ2VuZXJpYyIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMGdlbmVyaWMlMjBlcnJvciUzQSUyMCUyNXMlMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzEiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+Z2VuZXJpYyBlcnJvcjogJXM8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX21lbW9yeSIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMG91dCUyMG9mJTIwbWVtb3J5JTNBJTIwaGVhcCUzRDB4JTI1eCUyQyUyMHNpemUlM0QlMjV1JTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMyIj4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPm91dCBvZiBtZW1vcnk6IGhlYXA9MHgleCwgc2l6ZT0ldTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InBvbGljeSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ieGRjLnJ1bnRpbWUuRXJyb3IuVU5XSU5EIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyYWlzZUhvb2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYXhEZXB0aCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuR2F0ZSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkdhdGUvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5HYXRlTnVsbCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJRX0JMT0NLSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJRX1BSRUVNUFRJTkciIHR5cGU9Im51bWJlciIgdmFsdWU9IjIiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTG9nL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTlVNQVJHUyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUFJJTlRGSUQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfY29uc3RydWN0IiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMCUzQy0tJTIwY29uc3RydWN0JTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfY3JlYXRlIiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMCUzQy0tJTIwY3JlYXRlJTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfZGVzdHJ1Y3QiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwLS0lM0UlMjBkZXN0cnVjdCUzQSUyMCUyOCUyNXAlMjklN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHg0PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPi0tPiBkZXN0cnVjdDogKCVwKTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2RlbGV0ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAtLSUzRSUyMGRlbGV0ZSUzQSUyMCUyOCUyNXAlMjklN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMyI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHg0PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPi0tPiBkZWxldGU6ICglcCk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iaWRUb0luZm8iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyNyUyMzQ2OCUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2NvbnN0cnVjdCUzQSUzQSUzQy0tJTIwY29uc3RydWN0JTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklNUQlMkMlMEElNUIlMjclMjM0OTIlMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUlM0ElM0ElM0MtLSUyMGNyZWF0ZSUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTVEJTJDJTBBJTVCJTI3JTIzNTEzJTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfZGVzdHJ1Y3QlM0ElM0EtLSUzRSUyMGRlc3RydWN0JTNBJTIwJTI4JTI1cCUyOSU1RCUyQyUwQSU1QiUyNyUyMzUzMiUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2RlbGV0ZSUzQSUzQS0tJTNFJTIwZGVsZXRlJTNBJTIwJTI4JTI1cCUyOSU1RCUwQSU1RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Mb2dnZXJCdWYiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nZ2VyU3lzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLk1haW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5NYWluL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9HYXRlUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4MSUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMFFfQkxPQ0tJTkclM0ElMjAweDElMkMlMjBRX1BSRUVNUFRJTkclM0ElMjAweDIlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDE5ZWNkODAlM0ElM0ElMjh4ZGMucnVudGltZS5JR2F0ZVByb3ZpZGVyLk1vZHVsZSUyOXhkYy5ydW50aW1lLkdhdGVOdWxsJTJDJTIwYWJzdHJhY3RJbnN0YW5jZXMlMjQlM0ElMjBmYWxzZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5NZW1vcnkiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5NZW1vcnkvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc5Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJRX0JMT0NLSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkZWZhdWx0SGVhcEluc3RhbmNlIiB0eXBlPSJ4ZGMucnVudGltZS5JSGVhcC5JbnN0YW5jZSIgdmFsdWU9IiU3QiU3RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkZWZhdWx0SGVhcFNpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkhlYXBQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4MiUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMzU0NzQ5JTNBJTNBJTI4eGRjLnJ1bnRpbWUuSUhlYXAuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuSGVhcFN0ZCUyQyUyMGFic3RyYWN0SW5zdGFuY2VzJTI0JTNBJTIwdHJ1ZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5IZWFwTWluIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkhlYXBTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfbm9SVFNNZW1vcnkiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBUaGUlMjBSVFMlMjBoZWFwJTIwaXMlMjB1c2VkJTIwdXAuJTIwRXhhbWluZSUyMFByb2dyYW0uaGVhcC4lMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzQiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+VGhlIFJUUyBoZWFwIGlzIHVzZWQgdXAuIEV4YW1pbmUgUHJvZ3JhbS5oZWFwLjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfemVyb1NpemUiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBIZWFwU3RkX2NyZWF0ZSUyMGNhbm5vdCUyMGhhdmUlMjBhJTIwemVybyUyMHNpemUlMjB2YWx1ZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5IZWFwU3RkX2NyZWF0ZSBjYW5ub3QgaGF2ZSBhIHplcm8gc2l6ZSB2YWx1ZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2ludmFsaWRUb3RhbEZyZWVTaXplIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwSGVhcFN0ZCUyMGluc3RhbmNlJTIwdG90YWxGcmVlU2l6ZSUyMGlzJTIwZ3JlYXRlciUyMHRoYW4lMjBzdGFydGluZyUyMHNpemUlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZCBpbnN0YW5jZSB0b3RhbEZyZWVTaXplIGlzIGdyZWF0ZXIgdGhhbiBzdGFydGluZyBzaXplPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfaW52YWxpZEFsaWdubWVudCIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEhlYXBTdGRfYWxsb2MlMjAtJTIwcmVxdWVzdGVkJTIwYWxpZ25tZW50JTIwaXMlMjBncmVhdGVyJTIwdGhhbiUyMGFsbG93ZWQlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZF9hbGxvYyAtIHJlcXVlc3RlZCBhbGlnbm1lbnQgaXMgZ3JlYXRlciB0aGFuIGFsbG93ZWQ8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TdGFydHVwIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJET05FIiB0eXBlPSJudW1iZXIiIHZhbHVlPSItMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTk9URE9ORSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4UGFzc2VzIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZmlyc3RGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibGFzdEZ4bnMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyZXNldEZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3RhcnRNb2RzRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc19fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXhlY0ltcGwiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2Z4blRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FJTJDJTIwJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZnhuUnRzIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUJ0cnVlJTJDJTIwdHJ1ZSU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuUnRzIiBsZW5ndGg9IjIiPg0KKyAgPGVsZW0+dHJ1ZTwvZWxlbT4NCisgIDxlbGVtPnRydWU8L2VsZW0+DQorPC92ZWN0b3I+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN5c3RlbSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlNUQVRVU19VTktOT1dOIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI1MTk2NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9jYW5ub3RGaXRJbnRvQXJnIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwQV9jYW5ub3RGaXRJbnRvQXJnJTNBJTIwc2l6ZW9mJTI4RmxvYXQlMjklMjAlM0UlMjBzaXplb2YlMjhBcmclMjklN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzUiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+QV9jYW5ub3RGaXRJbnRvQXJnOiBzaXplb2YoRmxvYXQpID4gc2l6ZW9mKEFyZyk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXh0ZW5kZWRGb3JtYXRzIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlMjUlMjRMIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJTdXBwb3J0UHJveHkiIHR5cGU9InhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDMlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDFlYjkwNGQlM0ElM0ElMjh4ZGMucnVudGltZS5JU3lzdGVtU3VwcG9ydC5Nb2R1bGUlMjl4ZGMucnVudGltZS5TeXNNaW4lN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1heEF0ZXhpdEhhbmRsZXJzIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleHRlbmRGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4aXRGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX0dhdGVQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDQlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBRX0JMT0NLSU5HJTNBJTIwMHgxJTJDJTIwUV9QUkVFTVBUSU5HJTNBJTIwMHgyJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxNjM5NTYlM0ElM0ElMjh4ZGMucnVudGltZS5JR2F0ZVByb3ZpZGVyLk1vZHVsZSUyOXhkYy5ydW50aW1lLkdhdGVOdWxsJTJDJTIwYWJzdHJhY3RJbnN0YW5jZXMlMjQlM0ElMjBmYWxzZSU3RCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXNTdGQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3lzTWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuU3lzTWluL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92Vmlld0luZm8iIHR5cGU9InhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UiIHZhbHVlPSIlN0J2aWV3TWFwJTNBJTIwJTVCJTBBJTVCJTI3TW9kdWxlJTI3JTJDJTIwJTdCdHlwZSUzQSUyME1PRFVMRSUyQyUyMHZpZXdJbml0RnhuJTNBJTIwdmlld0luaXRNb2R1bGUlMkMlMjBzdHJ1Y3ROYW1lJTNBJTIwTW9kdWxlVmlldyU3RCU1RCUyQyUwQSU1QiUyN091dHB1dEJ1ZmZlciUyNyUyQyUyMCU3QnR5cGUlM0ElMjBNT0RVTEVfREFUQSUyQyUyMHZpZXdJbml0RnhuJTNBJTIwdmlld0luaXRPdXRwdXRCdWZmZXIlMkMlMjBzdHJ1Y3ROYW1lJTNBJTIwQnVmZmVyRW50cnlWaWV3JTdEJTVEJTBBJTVEJTJDJTIwc2hvd1Jhd1RhYiUzQSUyMHRydWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1ZlNpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjEwMjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZsdXNoQXRFeGl0IiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2VjdGlvbk5hbWUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im91dHB1dEZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ib3V0cHV0RnVuYyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UZXh0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzg0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lVW5rbm93biIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCdW5rbm93bi1pbnN0YW5jZS1uYW1lJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lRW1wdHkiIHR5cGU9InN0cmluZyIgdmFsdWU9IiU3QmVtcHR5LWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVTdGF0aWMiIHR5cGU9InN0cmluZyIgdmFsdWU9IiU3QnN0YXRpYy1pbnN0YW5jZS1uYW1lJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJpc0xvYWRlZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNoYXJUYWIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QjB4MCUyQyUyMDB4NDElMkMlMjAweDVmJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDUwJTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NzMlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4NzUlMkMlMjAweDZlJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg1MCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg2MSUyQyUyMDB4NmQlMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDRkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDVmJTJDJTIwMHg2MyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4NmUlMkMlMjAweDZmJTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NzYlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NjElMkMlMjAweDIwJTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NzYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NzUlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NTMlMkMlMjAweDc0JTJDJTIwMHg2NCUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg3NiUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4MjAlMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4NjMlMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDZmJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg0NiUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2NSUyQyUyMDB4NTMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg2NyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4MjAlMkMlMjAweDc0JTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDY3JTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHg1ZiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2YyUyQyUyMDB4NmYlMkMlMjAweDYzJTJDJTIwMHgyMCUyQyUyMDB4MmQlMkMlMjAweDIwJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDcxJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4NjclMkMlMjAweDZlJTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDZlJTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NzclMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MCUyQyUyMDB4NDElMkMlMjAweDVmJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHg0NiUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg0OSUyQyUyMDB4NmUlMkMlMjAweDc0JTJDJTIwMHg2ZiUyQyUyMDB4NDElMkMlMjAweDcyJTJDJTIwMHg2NyUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NmYlMkMlMjAweDY2JTJDJTIwMHgyOCUyQyUyMDB4NDYlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHgyOSUyQyUyMDB4MjAlMkMlMjAweDNlJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDZmJTJDJTIwMHg2NiUyQyUyMDB4MjglMkMlMjAweDQxJTJDJTIwMHg3MiUyQyUyMDB4NjclMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHg2MSUyQyUyMDB4NzMlMkMlMjAweDczJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NmYlMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NjYlMkMlMjAweDYxJTJDJTIwMHg2OSUyQyUyMDB4NmMlMkMlMjAweDc1JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgwJTJDJTIwMHg2NyUyQyUyMDB4NjUlMkMlMjAweDZlJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDY5JTJDJTIwMHg2MyUyQyUyMDB4MjAlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDZmJTJDJTIwMHg3NSUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2ZiUyQyUyMDB4NjYlMkMlMjAweDIwJTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDZkJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDc5JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHgzZCUyQyUyMDB4MzAlMkMlMjAweDc4JTJDJTIwMHgyNSUyQyUyMDB4NzglMkMlMjAweDJjJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDNkJTJDJTIwMHgyNSUyQyUyMDB4NzUlMkMlMjAweDAlMkMlMjAweDY2JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDY1JTJDJTIwMHgyOCUyQyUyMDB4MjklMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDc2JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDc3JTJDJTIwMHg3NCUyQyUyMDB4NjglMkMlMjAweDJkJTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDZjJTJDJTIwMHg3OSUyQyUyMDB4MjAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg0ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgwJTJDJTIwMHg1NCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHgyMCUyQyUyMDB4NTIlMkMlMjAweDU0JTJDJTIwMHg1MyUyQyUyMDB4MjAlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NzUlMkMlMjAweDczJTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NzAlMkMlMjAweDJlJTJDJTIwMHgyMCUyQyUyMDB4NDUlMkMlMjAweDc4JTJDJTIwMHg2MSUyQyUyMDB4NmQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg1MCUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg2NyUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4MmUlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4M2MlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2MyUyQyUyMDB4NzQlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOCUyQyUyMDB4MjclMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MjclMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHgzYyUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI4JTJDJTIwMHgyNyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg2NCUyQyUyMDB4NjUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2MyUyQyUyMDB4NzQlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjglMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDJkJTJDJTIwMHgyZCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg2NCUyQyUyMDB4NjUlMkMlMjAweDZjJTJDJTIwMHg2NSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI4JTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI5JTJDJTIwMHgwJTJDJTIwMHg3OCUyQyUyMDB4NjQlMkMlMjAweDYzJTJDJTIwMHgyZSUyQyUyMDB4MCUyQyUyMDB4NzIlMkMlMjAweDc1JTJDJTIwMHg2ZSUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZCUyQyUyMDB4NjUlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg0MSUyQyUyMDB4NzMlMkMlMjAweDczJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDc0JTJDJTIwMHgwJTJDJTIwMHg0MyUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDQlMkMlMjAweDY1JTJDJTIwMHg2NiUyQyUyMDB4NjElMkMlMjAweDc1JTJDJTIwMHg2YyUyQyUyMDB4NzQlMkMlMjAweDczJTJDJTIwMHgwJTJDJTIwMHg0NCUyQyUyMDB4NjklMkMlMjAweDYxJTJDJTIwMHg2NyUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDQ1JTJDJTIwMHg3MiUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4MCUyQyUyMDB4NDclMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ3JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg0ZSUyQyUyMDB4NzUlMkMlMjAweDZjJTJDJTIwMHg2YyUyQyUyMDB4MCUyQyUyMDB4NGMlMkMlMjAweDZmJTJDJTIwMHg2NyUyQyUyMDB4MCUyQyUyMDB4NGQlMkMlMjAweDYxJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDAlMkMlMjAweDRkJTJDJTIwMHg2NSUyQyUyMDB4NmQlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4NzklMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDc1JTJDJTIwMHg3MCUyQyUyMDB4MCUyQyUyMDB4NTMlMkMlMjAweDc5JTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHg2ZCUyQyUyMDB4MCUyQyUyMDB4NTMlMkMlMjAweDc5JTJDJTIwMHg3MyUyQyUyMDB4NGQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MCUyQyUyMDB4NTQlMkMlMjAweDY1JTJDJTIwMHg3OCUyQyUyMDB4NzQlMkMlMjAweDAlMkMlMjAweDY4JTJDJTIwMHg2NSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDZkJTJDJTIwMHg2ZiUyQyUyMDB4NjQlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg1NCUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2YiUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHgwJTVEIj48dmVjdG9yIGlkPSJ4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIiIGxlbmd0aD0iNjgwIj4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDUwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg0NjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Nzc8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg0NjwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg0OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgzZDwvZWxlbT4NCisgIDxlbGVtPjB4MzA8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDJjPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDNkPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc3PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTI8L2VsZW0+DQorICA8ZWxlbT4weDU0PC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NDU8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4M2M8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgzYzwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNzwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyNzwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4M2U8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4M2U8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0MzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDc8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ3PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg0ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NGM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibm9kZVRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTdCbGVmdCUzQSUyMDB4MCUyQyUyMHJpZ2h0JTNBJTIwMHgwJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4MjI1JTJDJTIwcmlnaHQlM0ElMjAweDIyYSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjMzJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyM2ElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDIzZiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjQ4JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNGUlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI1NCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjU5JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNjIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI2NiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjZiJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNzIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI3YSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjgyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyODklN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI5MCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDI5NSUyQyUyMHJpZ2h0JTNBJTIwMHgyOWMlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDExJTJDJTIwcmlnaHQlM0ElMjAweDJhMSU3RCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiIiBsZW5ndGg9IjE5Ij4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MDwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDA8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MjI1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjJhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyMzM8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIzYTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjNmPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNDg8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI0ZTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjU0PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNTk8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2NjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2YjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3YTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4OTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI5MDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4Mjk1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjljPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE4Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDExPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MmExPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorPC92ZWN0b3I+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjaGFyQ250IiB0eXBlPSJudW1iZXIiIHZhbHVlPSI2ODAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5vZGVDbnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE5Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aXNpdFJvcGVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aXNpdFJvcGVGeG4yIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0kiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGltZXN0YW1wIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcE51bGwiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuVGltZXN0YW1wU3RkIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlR5cGVzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJnbnUudGFyZ2V0cy5ydHM4NkdXIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iaGVsbG8ubW9kIiB2ZXJzaW9uPSIiIHJlcG9zaXRvcnk9IkQ6L3dvcmsvdHV0b3JpYWwvcmVwby8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9ImhlbGxvLm1vZC5UYWxrZXIiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJoZWxsby5tb2QuVGFsa2VyL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InRleHQiIHR5cGU9InN0cmluZyIgdmFsdWU9Ikdvb2RuaWdodCUyME1vb24iLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKzwvaW1wb3J0cz4KKzwvY29uZmlndXJhdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MDY1MjkzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuZGVwCkBAIC0wLDAgKzEsNzkgQEAKKyMKKyMgVGhlIGZvbGxvd2luZyBpcyBnZW5lcmF0ZWQgYnkgdXRpbHMuZ2VuRGVwIGZvciBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXCisjCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmMgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cueGRsOlRhbGtlci54cyBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZyBwcm9nLmNmZyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2kgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL0ludGVsODA1ODYueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL1BsYXRmb3JtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9ob3N0L3BsYXRmb3Jtcy9QQy9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvTWFpbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vRXhlQ29udGV4dC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0lQbGF0Zm9ybS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL1V0aWxzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Nb2RlbC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Qcm9ncmFtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0YXRlUmVhZGVyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0cnVjdHVyZURlY29kZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBNaW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyQnVmLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJTeXMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RpbWVzdGFtcC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHMgCisKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaToKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9ob3N0L3BsYXRmb3Jtcy9QQy9JbnRlbDgwNTg2LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL1BsYXRmb3JtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvTWFpbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0V4ZUNvbnRleHQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0lQbGF0Zm9ybS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vVXRpbHMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Nb2RlbC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1Byb2dyYW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdGF0ZVJlYWRlci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0cnVjdHVyZURlY29kZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcE1pbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlckJ1Zi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJTeXMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RpbWVzdGFtcC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvQ2xvY2sueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2k6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54czoKKworCitkZWZpbmUgRVhFQy5wcm9nLng4NkdXCisKKy4vcHJvZy54ODZHVworZW5kZWYKKworIworIyBUaGUgZm9sbG93aW5nIGlzIGdlbmVyYXRlZCBieSBqYXZhCisjCisKK3Byb2cueDg2R1c6IGxpYi9oZWxsby5tb2QuYTg2R1cgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3J0czg2R1cvbGliL2dudS50YXJnZXRzLnJ0czg2R1cuYTg2R1cgCisKK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvUHJvZ3JhbS54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9saW5rY21kLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvbGlua2NtZC54ZHQgCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmMgcGFja2FnZS9jZmcvcHJvZ194ODZHVy54ZGw6IC5pbnRlcmZhY2VzIAorCisjCisjIHJ1bGUtbGVzcyBnb2FscyBmb3IgZmlsZXMgb3V0c2lkZSB0aGlzIHBhY2thZ2UKKyMgKHRoZXNlIGdvYWxzIGZvcmNlIGEgcmUtYnVpbGQgaWYgdGhlc2UgZmlsZXMgYXJlCisjIG1vdmVkIG9yIGRlbGV0ZWQpCisjCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvcnRzODZHVy9saWIvZ251LnRhcmdldHMucnRzODZHVy5hODZHVzoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvbGlua2NtZC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvbGlua2NtZC54ZHQ6CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmggYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2MGYxMjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oCkBAIC0wLDAgKzEsMTMgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKK2V4dGVybiBpbnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQzsKKworZXh0ZXJuIGludCB4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQzsKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubWFrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlYmIwNGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5tYWsKQEAgLTAsMCArMSw3NyBAQAorIworIyAgRG8gbm90IGVkaXQgdGhpcyBmaWxlLiAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIAorIyAgcGFja2FnZS5ibGQuICBBbnkgbW9kaWZpY2F0aW9ucyB0byB0aGlzIGZpbGUgd2lsbCBiZSAKKyMgIG92ZXJ3cml0dGVuIHdoZW5ldmVyIG1ha2VmaWxlcyBhcmUgcmUtZ2VuZXJhdGVkLgorIworIyAgdGFyZ2V0IGNvbXBhdGliaWxpdHkga2V5ID0gZ251LnRhcmdldHMuTWluZ3d7MSwwLDMuNCw1CisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXLmRlcAorZW5kaWYKKworcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1c6IHByb2cuYyBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w4NkdXICQ8IC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgLWMgIC14IGMgIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAgLW8gJEAgJDwKKwkkKE1LREVQKSAtbyAkQC5kZXAgLXAgcGFja2FnZS9jZmcvcHJvZy8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgIC1EeGRjX2NmZ19faGVhZGVyX189J2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpIAorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vODZHVzpMRF9MSUJSQVJZX1BBVEg9CitwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM4NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9wcm9nL3Byb2cuczg2R1c6IHByb2cuYyBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w4NkdXIC1TICQ8IC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgLWMgIC14IGMgLVMgLVd1bnVzZWQgIC1EZmFyPSAgIC1EeGRjX2NmZ19faGVhZGVyX189J2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2NmZy9wcm9nLyAtcyBvODZHVyAkPCAtQyAtV3VudXNlZCAgLURmYXI9ICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0naGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM4NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5zODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2NmZy9wcm9nL3Byb2cuczg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1c6IHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYyBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w4NkdXICQ8IC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgLWMgIC14IGMgIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAgLW8gJEAgJDwKKwkkKE1LREVQKSAtbyAkQC5kZXAgLXAgcGFja2FnZS9jZmcvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm84NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuczg2R1c6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuczg2R1c6IHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYyBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w4NkdXIC1TICQ8IC4uLgorCSQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvL2Jpbi9taW5ndzMyLWdjYy5leGUgLWMgIC14IGMgLVMgLVd1bnVzZWQgIC1EZmFyPSAgIC1EeGRjX2NmZ19faGVhZGVyX189J2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpICAtbyAkQCAkPAorCSQoTUtERVApIC1vICRALmRlcCAtcCBwYWNrYWdlL2NmZy8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgIC1EeGRjX2NmZ19faGVhZGVyX189J2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpIAorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuczg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9jZmcvcHJvZ194ODZHVy5zODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnM4NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworY2xlYW4sODZHVyA6OgorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1cKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVworCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nL3Byb2cuczg2R1cKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5zODZHVworCitwcm9nLng4NkdXOiBwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1cgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVyBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm1haworCitjbGVhbjo6CisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubWFrCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm84NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkMjA3MzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVy5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY2ZDY2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm84NkdXLmRlcApAQCAtMCwwICsxLDQ1IEBACitwYWNrYWdlL2NmZy8vcHJvZ194ODZHVy5vODZHVzogcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmggVGFsa2VyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Db3JlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaCANCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmM6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitUYWxrZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0NvcmUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnJvdi54cyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnJvdi54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OWE3YmUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cucm92LnhzCkBAIC0wLDAgKzEsNDQ1MiBAQAorX19vID0gbnVsbAorX19vYmogPSBbCisgICAgdGhpcywgIC8vICMwIAorICAgIHt9LCAgICAvLyAjMSAKKyAgICB7fSwgICAgLy8gIzIgeGRjLnJ1bnRpbWUuQXNzZXJ0CisgICAgW10sICAgIC8vICMzIHhkYy5ydW50aW1lLkFzc2VydC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM0IHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMAorICAgIHt9LCAgICAvLyAjNSB4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNiB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzcgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM4IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzkgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzEwIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTEgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEyIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTMgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTQgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE2IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE4IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE5IHhkYy5ydW50aW1lLkFzc2VydC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwIHhkYy5ydW50aW1lLkNvcmUKKyAgICBbXSwgICAgLy8gIzIxIHhkYy5ydW50aW1lLkNvcmUvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjIgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMAorICAgIHt9LCAgICAvLyAjMjMgeGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kCisgICAgW10sICAgIC8vICMyNCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjcgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyOCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyOSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzMwIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMzMiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMzIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzNCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzM1IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzM2IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzNyB4ZGMucnVudGltZS5Db3JlL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzggeGRjLnJ1bnRpbWUuRGVmYXVsdHMKKyAgICBbXSwgICAgLy8gIzM5IHhkYy5ydW50aW1lLkRlZmF1bHRzLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzQwIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzQxIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM0MiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNDMgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM0NCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM0NSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNDYgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjNDcgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzQ4IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjNDkgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNTAgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM1MSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM1MiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjNTMgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM1NCB4ZGMucnVudGltZS5EZWZhdWx0cy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzU1IHhkYy5ydW50aW1lLkRpYWdzCisgICAgW10sICAgIC8vICM1NiB4ZGMucnVudGltZS5EaWFncy8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM1NyB4ZGMucnVudGltZS5EaWFncy9jb21tb24kCisgICAgW10sICAgIC8vICM1OCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNTkgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzYwIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjEgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjNjIgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzYzIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzY0IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICM2NSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzY2IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzY3IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjNjggeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjkgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzcwIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjNzEgeGRjLnJ1bnRpbWUuRGlhZ3Mvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICM3MiB4ZGMucnVudGltZS5FcnJvcgorICAgIFtdLCAgICAvLyAjNzMgeGRjLnJ1bnRpbWUuRXJyb3IvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNzQgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxCisgICAge30sICAgIC8vICM3NSB4ZGMucnVudGltZS5FcnJvci5EZXNjIzIKKyAgICB7fSwgICAgLy8gIzc2IHhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzc3IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM3OCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNzkgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM4MCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM4MSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODIgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjODMgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzg0IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjODUgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODYgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM4NyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM4OCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjODkgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM5MCB4ZGMucnVudGltZS5FcnJvci92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzkxIHhkYy5ydW50aW1lLkdhdGUKKyAgICBbXSwgICAgLy8gIzkyIHhkYy5ydW50aW1lLkdhdGUvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjOTMgeGRjLnJ1bnRpbWUuR2F0ZS9jb21tb24kCisgICAgW10sICAgIC8vICM5NCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM5NSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM5NiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjOTcgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM5OCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM5OSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEwMCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMDEgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzEwMiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEwMyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTA0IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTA1IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzEwNiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTA3IHhkYy5ydW50aW1lLkdhdGUvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxMDggeGRjLnJ1bnRpbWUuR2F0ZU51bGwKKyAgICBbXSwgICAgLy8gIzEwOSB4ZGMucnVudGltZS5HYXRlTnVsbC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxMTAgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTExIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxMTIgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzExMyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExNCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxMTUgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExNiB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMTcgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExOCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzExOSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxMjAgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxMjEgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTIyIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxMjMgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxMjQgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxMjUgeGRjLnJ1bnRpbWUuTG9nCisgICAgW10sICAgIC8vICMxMjYgeGRjLnJ1bnRpbWUuTG9nLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzEyNyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzAKKyAgICB7fSwgICAgLy8gIzEyOCB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzEKKyAgICB7fSwgICAgLy8gIzEyOSB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMKKyAgICB7fSwgICAgLy8gIzEzMCB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIKKyAgICB7fSwgICAgLy8gIzEzMSB4ZGMucnVudGltZS5Mb2cvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTMyIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTMzIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTM0IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzNSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTM2IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTM3IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMzggeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMzkgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTQwIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxNDEgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTQyIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNDMgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxNDQgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTQ1IHhkYy5ydW50aW1lLkxvZy9pZFRvSW5mbworICAgIFtdLCAgICAvLyAjMTQ2IHhkYy5ydW50aW1lLkxvZy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE0NyB4ZGMucnVudGltZS5NYWluCisgICAgW10sICAgIC8vICMxNDggeGRjLnJ1bnRpbWUuTWFpbi8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNDkgeGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kCisgICAgW10sICAgIC8vICMxNTAgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTUxIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE1MiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTUzIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTU0IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1NSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE1NiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxNTcgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE1OCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1OSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTYwIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTYxIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE2MiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTYzIHhkYy5ydW50aW1lLk1haW4vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxNjQgeGRjLnJ1bnRpbWUuTWVtb3J5CisgICAgW10sICAgIC8vICMxNjUgeGRjLnJ1bnRpbWUuTWVtb3J5LyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE2NiB4ZGMucnVudGltZS5IZWFwU3RkCisgICAgW10sICAgIC8vICMxNjcgeGRjLnJ1bnRpbWUuSGVhcFN0ZC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNjggeGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwCisgICAge30sICAgIC8vICMxNjkgeGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwL2luc3RhbmNlCisgICAge30sICAgIC8vICMxNzAgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNAorICAgIHt9LCAgICAvLyAjMTcxIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMKKyAgICB7fSwgICAgLy8gIzE3MiB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMyCisgICAge30sICAgIC8vICMxNzMgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyM0CisgICAge30sICAgIC8vICMxNzQgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb21tb24kCisgICAgW10sICAgIC8vICMxNzUgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTc2IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE3NyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTc4IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTc5IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4MCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE4MSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxODIgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE4MyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4NCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTg1IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTg2IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE4NyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTg4IHhkYy5ydW50aW1lLkhlYXBTdGQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxODkgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE5MCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE5MSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE5MiB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxOTMgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzE5NCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5NSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTk2IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk3IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE5OCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk5IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzIwMCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjAxIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjAyIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzIwMyB4ZGMucnVudGltZS5NZW1vcnkvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyMDQgeGRjLnJ1bnRpbWUuU3RhcnR1cAorICAgIFtdLCAgICAvLyAjMjA1IHhkYy5ydW50aW1lLlN0YXJ0dXAvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjA2IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjA3IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwOCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyMDkgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxMCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzIxMSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyMTIgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyMTMgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjE0IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyMTUgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyMTYgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzIxNyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxOCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyMTkgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzIyMCB4ZGMucnVudGltZS5TdGFydHVwL2ZpcnN0RnhucworICAgIFtdLCAgICAvLyAjMjIxIHhkYy5ydW50aW1lLlN0YXJ0dXAvbGFzdEZ4bnMKKyAgICBbXSwgICAgLy8gIzIyMiB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMKKyAgICBbXSwgICAgLy8gIzIyMyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5UYWIKKyAgICBbXSwgICAgLy8gIzIyNCB4ZGMucnVudGltZS5TdGFydHVwL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjI1IHhkYy5ydW50aW1lLlN5c3RlbQorICAgIFtdLCAgICAvLyAjMjI2IHhkYy5ydW50aW1lLlN5c3RlbS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMjcgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNQorICAgIHt9LCAgICAvLyAjMjI4IHhkYy5ydW50aW1lLlN5c01pbgorICAgIFtdLCAgICAvLyAjMjI5IHhkYy5ydW50aW1lLlN5c01pbi8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMzAgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzIzMSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIzMiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzIzMyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyMzQgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzIzNSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIzNiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjM3IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjM4IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzIzOSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQwIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI0MSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQyIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjQzIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI0NCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEKKyAgICB7fSwgICAgLy8gIzI0NSB4ZGMucm92LlZpZXdJbmZvCisgICAgW10sICAgIC8vICMyNDYgeGRjLnJvdi5WaWV3SW5mby8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyNDcgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwCisgICAgW10sICAgIC8vICMyNDggeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAKKyAgICB7fSwgICAgLy8gIzI0OSB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nQmFzaWMnCisgICAge30sICAgIC8vICMyNTAgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ1JlY29yZHMnCisgICAgW10sICAgIC8vICMyNTEgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAKKyAgICB7fSwgICAgLy8gIzI1MiB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nTW9kdWxlJworICAgIHt9LCAgICAvLyAjMjUzIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydPdXRwdXRCdWZmZXInCisgICAgW10sICAgIC8vICMyNTQgeGRjLnJ1bnRpbWUuU3lzTWluL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjU1IHhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kCisgICAgW10sICAgIC8vICMyNTYgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNTcgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNTggeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjU5IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyNjAgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyNjEgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzI2MiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2MyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyNjQgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2NSB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyNjYgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2NyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzI2OCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyNjkgeGRjLnJ1bnRpbWUuU3lzdGVtL2V4aXRGeG5zCisgICAgW10sICAgIC8vICMyNzAgeGRjLnJ1bnRpbWUuU3lzdGVtL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjcxIHhkYy5ydW50aW1lLlRleHQKKyAgICBbXSwgICAgLy8gIzI3MiB4ZGMucnVudGltZS5UZXh0LyRpbnN0YW5jZXMKKyAgICBbXSwgICAgLy8gIzI3MyB4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIKKyAgICB7fSwgICAgLy8gIzI3NCB4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI3NSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNzYgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjc3IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNzggeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyNzkgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjgwIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjgxIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4MiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjgzIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjg0IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyODUgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyODYgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjg3IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyODggeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiCisgICAge30sICAgIC8vICMyODkgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAKKyAgICB7fSwgICAgLy8gIzI5MCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMQorICAgIHt9LCAgICAvLyAjMjkxIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yCisgICAge30sICAgIC8vICMyOTIgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzMKKyAgICB7fSwgICAgLy8gIzI5MyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNAorICAgIHt9LCAgICAvLyAjMjk0IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81CisgICAge30sICAgIC8vICMyOTUgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzYKKyAgICB7fSwgICAgLy8gIzI5NiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNworICAgIHt9LCAgICAvLyAjMjk3IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84CisgICAge30sICAgIC8vICMyOTggeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzkKKyAgICB7fSwgICAgLy8gIzI5OSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTAKKyAgICB7fSwgICAgLy8gIzMwMCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTEKKyAgICB7fSwgICAgLy8gIzMwMSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIKKyAgICB7fSwgICAgLy8gIzMwMiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTMKKyAgICB7fSwgICAgLy8gIzMwMyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTQKKyAgICB7fSwgICAgLy8gIzMwNCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUKKyAgICB7fSwgICAgLy8gIzMwNSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTYKKyAgICB7fSwgICAgLy8gIzMwNiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTcKKyAgICB7fSwgICAgLy8gIzMwNyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTgKKyAgICBbXSwgICAgLy8gIzMwOCB4ZGMucnVudGltZS5UZXh0L3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzA5IGhlbGxvLm1vZC5UYWxrZXIKKyAgICBbXSwgICAgLy8gIzMxMCBoZWxsby5tb2QuVGFsa2VyLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzMxMSBoZWxsby5tb2QuVGFsa2VyL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzMxMiBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMzMTMgaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMzE0IGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMzMTUgaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMzMTYgaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzE3IGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMzE4IGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxOSBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMzIwIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzIxIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzMjIgaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMzMjMgaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMzI0IGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzMjUgaGVsbG8ubW9kLlRhbGtlci92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzMyNiAKKyAgICB7fSwgICAgLy8gIzMyNyAKKyAgICB7fSwgICAgLy8gIzMyOCAKKyAgICB7fSwgICAgLy8gIzMyOSAKKyAgICB7fSwgICAgLy8gIzMzMCAKKyAgICB7fSwgICAgLy8gIzMzMSBnbnUudGFyZ2V0cy5NaW5ndworICAgIHt9LCAgICAvLyAjMzMyIGdudS50YXJnZXRzLk1pbmd3L2FyCisgICAge30sICAgIC8vICMzMzMgZ251LnRhcmdldHMuTWluZ3cvYXJPcHRzCisgICAge30sICAgIC8vICMzMzQgZ251LnRhcmdldHMuTWluZ3cvYXNtCisgICAge30sICAgIC8vICMzMzUgZ251LnRhcmdldHMuTWluZ3cvYXNtT3B0cworICAgIHt9LCAgICAvLyAjMzM2IGdudS50YXJnZXRzLk1pbmd3L2NjCisgICAge30sICAgIC8vICMzMzcgZ251LnRhcmdldHMuTWluZ3cvY2NPcHRzCisgICAge30sICAgIC8vICMzMzggZ251LnRhcmdldHMuTWluZ3cvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAge30sICAgIC8vICMzMzkgZ251LnRhcmdldHMuTWluZ3cvZGVidWdHZW4KKyAgICB7fSwgICAgLy8gIzM0MCBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zCisgICAge30sICAgIC8vICMzNDEgZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLkMnCisgICAge30sICAgIC8vICMzNDIgZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICB7fSwgICAgLy8gIzM0MyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuYycKKyAgICB7fSwgICAgLy8gIzM0NCBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY2MnCisgICAge30sICAgIC8vICMzNDUgZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmNwcCcKKyAgICB7fSwgICAgLy8gIzM0NiBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3h4JworICAgIHt9LCAgICAvLyAjMzQ3IGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5zODZHVycKKyAgICB7fSwgICAgLy8gIzM0OCBnbnUudGFyZ2V0cy5NaW5ndy9sbmsKKyAgICB7fSwgICAgLy8gIzM0OSBnbnUudGFyZ2V0cy5NaW5ndy9sbmtPcHRzCisgICAge30sICAgIC8vICMzNTAgZ251LnRhcmdldHMuTWluZ3cvbW9kZWwKKyAgICB7fSwgICAgLy8gIzM1MSBnbnUudGFyZ2V0cy5NaW5ndy9wbGF0Zm9ybXMKKyAgICB7fSwgICAgLy8gIzM1MiBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcworICAgIHt9LCAgICAvLyAjMzUzIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScKKyAgICB7fSwgICAgLy8gIzM1NCBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzNTUgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNTYgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJworICAgIHt9LCAgICAvLyAjMzU3IGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM1OCBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM1OSBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZScKKyAgICB7fSwgICAgLy8gIzM2MCBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM2MSBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzYyIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydyZWxlYXNlJworICAgIHt9LCAgICAvLyAjMzYzIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzY0IGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNjUgZ251LnRhcmdldHMuTWluZ3cvc2VjdE1hcAorICAgIHt9LCAgICAvLyAjMzY2IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzCisgICAge30sICAgIC8vICMzNjcgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9DaGFyCisgICAge30sICAgIC8vICMzNjggZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICB7fSwgICAgLy8gIzM2OSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Zsb2F0CisgICAge30sICAgIC8vICMzNzAgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9GeG4KKyAgICB7fSwgICAgLy8gIzM3MSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0lBcmcKKyAgICB7fSwgICAgLy8gIzM3MiBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludAorICAgIHt9LCAgICAvLyAjMzczIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50MTYKKyAgICB7fSwgICAgLy8gIzM3NCBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDMyCisgICAge30sICAgIC8vICMzNzUgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ0MAorICAgIHt9LCAgICAvLyAjMzc2IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50NjQKKyAgICB7fSwgICAgLy8gIzM3NyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDgKKyAgICB7fSwgICAgLy8gIzM3OCBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xEb3VibGUKKyAgICB7fSwgICAgLy8gIzM3OSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xMb25nCisgICAge30sICAgIC8vICMzODAgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Mb25nCisgICAge30sICAgIC8vICMzODEgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9QdHIKKyAgICB7fSwgICAgLy8gIzM4MiBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1Nob3J0CisgICAge30sICAgIC8vICMzODMgZ251LnRhcmdldHMuTWluZ3cvdmVyc2lvbk1hcAorICAgIHt9LCAgICAvLyAjMzg0IAorXQorCitfX28gPSBfX29ialswXSAgCisgICAgX19vWyckbW9kdWxlcyddID0gX19vYmpbMS4wXQorICAgIF9fb1snYnVpbGQnXSA9IF9fb2JqWzMyNi4wXQorCitfX28gPSBfX29ialsxXSAgCisgICAgX19vWycjMzI3NzAnXSA9IF9fb2JqWzIuMF0KKyAgICBfX29bJyMzMjc3MSddID0gX19vYmpbMjAuMF0KKyAgICBfX29bJyMzMjc3MiddID0gX19vYmpbMzguMF0KKyAgICBfX29bJyMzMjc3MyddID0gX19vYmpbNTUuMF0KKyAgICBfX29bJyMzMjc3NCddID0gX19vYmpbNzIuMF0KKyAgICBfX29bJyMzMjc3NSddID0gX19vYmpbOTEuMF0KKyAgICBfX29bJyMzMjc3NiddID0gX19vYmpbMTA4LjBdCisgICAgX19vWycjMzI3NzcnXSA9IF9fb2JqWzEyNS4wXQorICAgIF9fb1snIzMyNzc4J10gPSBfX29ialsxNDcuMF0KKyAgICBfX29bJyMzMjc3OSddID0gX19vYmpbMTY0LjBdCisgICAgX19vWycjMzI3ODAnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snIzMyNzgxJ10gPSBfX29ialsyMDQuMF0KKyAgICBfX29bJyMzMjc4MiddID0gX19vYmpbMjI1LjBdCisgICAgX19vWycjMzI3ODMnXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1snIzMyNzg0J10gPSBfX29ialsyNzEuMF0KKyAgICBfX29bJyMzMjc4NiddID0gX19vYmpbMzA5LjBdCisgICAgX19vWydoZWxsby5tb2QuVGFsa2VyJ10gPSBfX29ialszMDkuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkFzc2VydCddID0gX19vYmpbMi4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuQ29yZSddID0gX19vYmpbMjAuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkRlZmF1bHRzJ10gPSBfX29ialszOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuRGlhZ3MnXSA9IF9fb2JqWzU1LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5FcnJvciddID0gX19vYmpbNzIuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkdhdGUnXSA9IF9fb2JqWzkxLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5HYXRlTnVsbCddID0gX19vYmpbMTA4LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5IZWFwU3RkJ10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkxvZyddID0gX19vYmpbMTI1LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5NYWluJ10gPSBfX29ialsxNDcuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLk1lbW9yeSddID0gX19vYmpbMTY0LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TdGFydHVwJ10gPSBfX29ialsyMDQuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlN5c01pbiddID0gX19vYmpbMjI4LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TeXN0ZW0nXSA9IF9fb2JqWzIyNS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuVGV4dCddID0gX19vYmpbMjcxLjBdCisKK19fbyA9IF9fb2JqWzJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzMuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCcsICdVVEYtOCcpKQorICAgIF9fb1snRV9hc3NlcnRGYWlsZWQnXSA9IF9fb2JqWzQuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzcwCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzUuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials2LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxOS4wXQorCitfX28gPSBfX29ialszXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2Fzc2VydGlvbitmYWlsdXJlJTI1cyUyNXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTZdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTddICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjBdICAvLyB4ZGMucnVudGltZS5Db3JlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZScsICdVVEYtOCcpKQorICAgIF9fb1snQV9pbml0aWFsaXplZFBhcmFtcyddID0gX19vYmpbMjIuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyMy4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzI0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszNy4wXQorCitfX28gPSBfX29ialsyMV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBX2luaXRpYWxpemVkUGFyYW1zJTNBK3VuaW5pdGlhbGl6ZWQrUGFyYW1zK3N0cnVjdCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyM10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzI3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialszMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzMzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialszNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjVdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNl0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjldICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzBdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzFdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzJdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszM10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNl0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzM5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials0MC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzQxLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ials1NC4wXQorCitfX28gPSBfX29ialszOV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNDFdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbNDQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzQ2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzQ4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbNTAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzUyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDJdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQzXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ1XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0Nl0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ3XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDhdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials0OS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0OV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTBdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials1MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1MV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTJdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTNdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU0XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTVdICAvLyB4ZGMucnVudGltZS5EaWFncworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbNTYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJywgJ1VURi04JykpCisgICAgX19vWydBTEwnXSA9IDY1NTM1CisgICAgX19vWydBU1NFUlQnXSA9IDE2CisgICAgX19vWydFTlRSWSddID0gMQorICAgIF9fb1snRVhJVCddID0gMgorICAgIF9fb1snSU5URVJOQUwnXSA9IDgKKyAgICBfX29bJ0xJRkVDWUNMRSddID0gNAorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydVU0VSMSddID0gMjU2CisgICAgX19vWydVU0VSMiddID0gNTEyCisgICAgX19vWydVU0VSMyddID0gMTAyNAorICAgIF9fb1snVVNFUjQnXSA9IDIwNDgKKyAgICBfX29bJ1VTRVI1J10gPSA0MDk2CisgICAgX19vWydVU0VSNiddID0gODE5MgorICAgIF9fb1snVVNFUjcnXSA9IDE2Mzg0CisgICAgX19vWydVU0VSOCddID0gMzI3NjgKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzU3LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNTguMF0KKyAgICBfX29bJ2RpY3RCYXNlJ10gPSBudWxsCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1snc2V0TWFza0VuYWJsZWQnXSA9IGZhbHNlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzcxLjBdCisKK19fbyA9IF9fb2JqWzU2XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTddICAvLyB4ZGMucnVudGltZS5EaWFncy9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials1OF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbNTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials2MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbNjMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbNjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ials2Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbNjkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1OV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjBdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYxXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjJdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYzXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjRdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2NV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzY2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY2XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2N10gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzY4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY4XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2OV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials3MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3MF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzFdICAvLyB4ZGMucnVudGltZS5EaWFncy92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3Ml0gIC8vIHhkYy5ydW50aW1lLkVycm9yCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ials3My4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3InLCAnVVRGLTgnKSkKKyAgICBfX29bJ0VfZ2VuZXJpYyddID0gX19vYmpbNzQuMF0KKyAgICBfX29bJ0VfbWVtb3J5J10gPSBfX29ials3NS4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydOVU1BUkdTJ10gPSAyCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials3Ni4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzc3LjBdCisgICAgX19vWydtYXhEZXB0aCddID0gMTYKKyAgICBfX29bJ3BvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5VTldJTkQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JhaXNlSG9vayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRScsICdVVEYtOCcpKQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbOTAuMF0KKworX19vID0gX19vYmpbNzNdICAvLyB4ZGMucnVudGltZS5FcnJvci8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3NF0gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnZW5lcmljK2Vycm9yJTNBKyUyNXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzVdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjMyJywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnb3V0K29mK21lbW9yeSUzQStoZWFwJTNEMHglMjV4JTJDK3NpemUlM0QlMjV1JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc2XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNzddICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzg4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzhdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc5XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4MF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzgxXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4Ml0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzgzXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODRdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4NV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODZdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4N10gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODhdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODldICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzkwXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3Ivdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTFdICAvLyB4ZGMucnVudGltZS5HYXRlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ials5Mi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc1CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzkzLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbOTQuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzEwNy4wXQorCitfX28gPSBfX29ials5Ml0gIC8vIHhkYy5ydW50aW1lLkdhdGUvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5M10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials5NF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials5NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzk3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials5OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxMDMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzEwNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTVdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzk2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5Nl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk3XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbOTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk4XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTldICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwMF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDFdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTAyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwMl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwM10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA1XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA2XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA3XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwOF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxMDkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc2CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1FfQkxPQ0tJTkcnXSA9IDEKKyAgICBfX29bJ1FfUFJFRU1QVElORyddID0gMgorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTEwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTExLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxMjQuMF0KKworX19vID0gX19vYmpbMTA5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTEwXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTExXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxMTIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxMTQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzExNi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMTguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxMjAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzEyMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExMl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExM10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE2XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExN10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExOF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzExOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTldICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyMF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEyMS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjFdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyMl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMjMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIzXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjRdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjVdICAvLyB4ZGMucnVudGltZS5Mb2cKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzEyNi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJywgJ1VURi04JykpCisgICAgX19vWydMX2NvbnN0cnVjdCddID0gX19vYmpbMTI3LjBdCisgICAgX19vWydMX2NyZWF0ZSddID0gX19vYmpbMTI4LjBdCisgICAgX19vWydMX2RlbGV0ZSddID0gX19vYmpbMTI5LjBdCisgICAgX19vWydMX2Rlc3RydWN0J10gPSBfX29ialsxMzAuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc3CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ05VTUFSR1MnXSA9IDgKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1BSSU5URklEJ10gPSAwCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxMzEuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxMzIuMF0KKyAgICBfX29bJ2lkVG9JbmZvJ10gPSBfX29ialsxNDUuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzE0Ni4wXQorCitfX28gPSBfX29ialsxMjZdICAvLyB4ZGMucnVudGltZS5Mb2cvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyN10gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclM0MtLStjb25zdHJ1Y3QlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI4XSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMxCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMScsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUzQy0tK2NyZWF0ZSUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjldICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMzJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMwXSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMxXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxMzJdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxMzMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxMzUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzEzNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxMzkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxNDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzE0My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzNdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMzQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzNF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzVdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTM2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzZdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM3XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEzOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM4XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzldICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE0MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDBdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQxXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQyXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0M10gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE0NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDRdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ1XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2lkVG9JbmZvCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJyM0NjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfY29uc3RydWN0JTNBJTNBJTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM0NjgnKQorICAgIF9fby5wdXNoKF9fb1snIzQ5MiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUlM0ElM0ElM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzQ5MicpCisgICAgX19vLnB1c2goX19vWycjNTEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0JTNBJTNBLS0lM0UrZGVzdHJ1Y3QlM0ErJTI4JTI1cCUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNTEzJykKKyAgICBfX28ucHVzaChfX29bJyM1MzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfZGVsZXRlJTNBJTNBLS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzUzMicpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZpZFRvSW5mbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDZdICAvLyB4ZGMucnVudGltZS5Mb2cvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0N10gIC8vIHhkYy5ydW50aW1lLk1haW4KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzE0OC4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbicsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX0dhdGVQcm94eSddID0gX19vYmpbMTA4LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzgKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTQ5LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTUwLjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxNjMuMF0KKworX19vID0gX19vYmpbMTQ4XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0OV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxNTBdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTUxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTUzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxNTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTU3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1MV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTUyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTJdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTNdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1NF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1NV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU2XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1N10gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU4XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU5XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjBdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjFdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjJdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjNdICAvLyB4ZGMucnVudGltZS5NYWluL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTY0XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNjUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeScsICdVVEYtOCcpKQorICAgIF9fb1snSGVhcFByb3h5J10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc5CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1FfQkxPQ0tJTkcnXSA9IDEKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzE4OS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzE5MC4wXQorICAgIF9fb1snZGVmYXVsdEhlYXBJbnN0YW5jZSddID0gX19vYmpbMTY4LjBdCisgICAgX19vWydkZWZhdWx0SGVhcFNpemUnXSA9IDQwOTYKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzIwMy4wXQorCitfX28gPSBfX29ialsxNjVdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2Nl0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzE2Ny4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCcsICdVVEYtOCcpKQorICAgIF9fb1snQV9pbnZhbGlkQWxpZ25tZW50J10gPSBfX29ialsxNzAuMF0KKyAgICBfX29bJ0FfaW52YWxpZFRvdGFsRnJlZVNpemUnXSA9IF9fb2JqWzE3MS4wXQorICAgIF9fb1snQV96ZXJvU2l6ZSddID0gX19vYmpbMTcyLjBdCisgICAgX19vWydFX25vUlRTTWVtb3J5J10gPSBfX29ialsxNzMuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxNzQuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxNzUuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzE4OC4wXQorCitfX28gPSBfX29ialsxNjddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzE2OC4wXQorCitfX28gPSBfX29ialsxNjhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snJG1vZHVsZSddID0gX19vYmpbMTY2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snaW5zdGFuY2UnXSA9IF9fb2JqWzE2OS4wXQorICAgIF9fb1snc2l6ZSddID0gNDA5NgorCitfX28gPSBfX29ialsxNjldICAvLyB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAvaW5zdGFuY2UKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UlMjMwJTJGaW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWUnXSA9IG51bGwKKworX19vID0gX19vYmpbMTcwXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjM0JywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0hlYXBTdGRfYWxsb2MrLStyZXF1ZXN0ZWQrYWxpZ25tZW50K2lzK2dyZWF0ZXIrdGhhbithbGxvd2VkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3MV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMycsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkK2luc3RhbmNlK3RvdGFsRnJlZVNpemUraXMrZ3JlYXRlcit0aGFuK3N0YXJ0aW5nK3NpemUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTcyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjMyJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0hlYXBTdGRfY3JlYXRlK2Nhbm5vdCtoYXZlK2EremVybytzaXplK3ZhbHVlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3M10gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdUaGUrUlRTK2hlYXAraXMrdXNlZCt1cC4rRXhhbWluZStQcm9ncmFtLmhlYXAuJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3NF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxNzVdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTc2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3Nl0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTc3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3OV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4MF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTgxXSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4Ml0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTgzXSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg0XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODVdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODddICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODhdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg5XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxOTBdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxOTEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxOTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzE5NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxOTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxOTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzIwMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTFdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5Ml0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTNdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTk0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTRdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk1XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk2XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTddICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOThdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk5XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAwXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwMV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIwMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDJdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAzXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0RPTkUnXSA9IC0xCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODEKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snTk9URE9ORSddID0gMAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjA2LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjA3LjBdCisgICAgX19vWydleGVjSW1wbCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpcnN0RnhucyddID0gX19vYmpbMjIwLjBdCisgICAgX19vWydsYXN0RnhucyddID0gX19vYmpbMjIxLjBdCisgICAgX19vWydtYXhQYXNzZXMnXSA9IDMyCisgICAgX19vWydyZXNldEZ4biddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3NmeG5SdHMnXSA9IF9fb2JqWzIyMi4wXQorICAgIF9fb1snc2Z4blRhYiddID0gX19vYmpbMjIzLjBdCisgICAgX19vWydzdGFydE1vZHNGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMjI0LjBdCisKK19fbyA9IF9fb2JqWzIwNV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDZdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjA3XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzIwOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzIxMC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjEyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzIxNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzIxNi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjE4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDhdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIwOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA5XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjEwXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjExLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTFdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTJdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxM10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxNV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxNl0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE3XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE4XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE5XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjIwXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9maXJzdEZ4bnMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZmaXJzdEZ4bnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjIxXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9sYXN0RnhucworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmxhc3RGeG5zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMl0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blJ0cworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRnNmeG5SdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IHRydWUKKyAgICBfX29bJzEnXSA9IHRydWUKKworX19vID0gX19vYmpbMjIzXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuVGFiCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGc2Z4blRhYicsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyNF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjVdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzIyNi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJywgJ1VURi04JykpCisgICAgX19vWydBX2Nhbm5vdEZpdEludG9BcmcnXSA9IF9fb2JqWzIyNy4wXQorICAgIF9fb1snTW9kdWxlX0dhdGVQcm94eSddID0gX19vYmpbMTA4LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydTVEFUVVNfVU5LTk9XTiddID0gNTE5NjYKKyAgICBfX29bJ1N1cHBvcnRQcm94eSddID0gX19vYmpbMjI4LjBdCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyNTUuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNTYuMF0KKyAgICBfX29bJ2V4aXRGeG5zJ10gPSBfX29ialsyNjkuMF0KKyAgICBfX29bJ2V4dGVuZEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JJywgJ1VURi04JykpCisgICAgX19vWydleHRlbmRlZEZvcm1hdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI1JTI0TCcsICdVVEYtOCcpKQorICAgIF9fb1snbWF4QXRleGl0SGFuZGxlcnMnXSA9IDgKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzI3MC4wXQorCitfX28gPSBfX29ialsyMjZdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyN10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzNScsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBX2Nhbm5vdEZpdEludG9BcmclM0Erc2l6ZW9mJTI4RmxvYXQlMjkrJTNFK3NpemVvZiUyOEFyZyUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjhdICAvLyB4ZGMucnVudGltZS5TeXNNaW4KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzIyOS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydidWZTaXplJ10gPSAxMDI0CisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyMzAuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyMzEuMF0KKyAgICBfX29bJ2ZsdXNoQXRFeGl0J10gPSB0cnVlCisgICAgX19vWydvdXRwdXRGdW5jJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ291dHB1dEZ4biddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3JvdlZpZXdJbmZvJ10gPSBfX29ialsyNDQuMF0KKyAgICBfX29bJ3NlY3Rpb25OYW1lJ10gPSBudWxsCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzI1NC4wXQorCitfX28gPSBfX29ialsyMjldICAvLyB4ZGMucnVudGltZS5TeXNNaW4vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzMF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjMxXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjMyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjM0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyMzYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjM4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjQwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyNDIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjMyXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjMzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzNdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM0XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM1XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNl0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzN10gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM4XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM5XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0MF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjQxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0MV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDJdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNDMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQzXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0NF0gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0luc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyckbW9kdWxlJ10gPSBfX29ialsyNDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJywgJ1VURi04JykpCisgICAgX19vWydzaG93UmF3VGFiJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TWFwJ10gPSBfX29ialsyNTEuMF0KKworX19vID0gX19vYmpbMjQ1XSAgLy8geGRjLnJvdi5WaWV3SW5mbworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjQ2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0Nl0gIC8vIHhkYy5yb3YuVmlld0luZm8vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mbyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gX19vYmpbMjQ3LjBdCisgICAgX19vWycxJ10gPSBfX29ialsyNDQuMF0KKworX19vID0gX19vYmpbMjQ3XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRtb2R1bGUnXSA9IF9fb2JqWzI0NS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Nob3dSYXdUYWInXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdNYXAnXSA9IF9fb2JqWzI0OC4wXQorCitfX28gPSBfX29ialsyNDhdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWydCYXNpYyddID0gX19vYmpbMjQ5LjBdKTsgX19vLiRrZXlzLnB1c2goJ0Jhc2ljJykKKyAgICBfX28ucHVzaChfX29bJ1JlY29yZHMnXSA9IF9fb2JqWzI1MC4wXSk7IF9fby4ka2V5cy5wdXNoKCdSZWNvcmRzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJTJGdmlld01hcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDldICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nQmFzaWMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAlMkYlMjdCYXNpYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdCYXNpY1ZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JTlNUQU5DRScsICdVVEYtOCcpKQorICAgIF9fb1sndmlld0luaXRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndmlld0luaXRCYXNpYycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTBdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nUmVjb3JkcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJTJGdmlld01hcCUyRiUyN1JlY29yZHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnUmVjb3JkVmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLklOU1RBTkNFX0RBVEEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0UmVjb3JkcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTFdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWydNb2R1bGUnXSA9IF9fb2JqWzI1Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCdNb2R1bGUnKQorICAgIF9fby5wdXNoKF9fb1snT3V0cHV0QnVmZmVyJ10gPSBfX29ialsyNTMuMF0pOyBfX28uJGtleXMucHVzaCgnT3V0cHV0QnVmZmVyJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJTJGdmlld01hcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTJdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nTW9kdWxlJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzElMkZ2aWV3TWFwJTJGJTI3TW9kdWxlJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZVZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5NT0RVTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0TW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1M10gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydPdXRwdXRCdWZmZXInCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMSUyRnZpZXdNYXAlMkYlMjdPdXRwdXRCdWZmZXIlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQnVmZmVyRW50cnlWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uTU9EVUxFX0RBVEEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0T3V0cHV0QnVmZmVyJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1NF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNTZdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzI2MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyNjMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyNjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzI2Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTddICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1OF0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTldICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjYwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjBdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYxXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYyXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjNdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjRdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2N10gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjhdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY5XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2V4aXRGeG5zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZleGl0RnhucycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzBdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3MV0gIC8vIHhkYy5ydW50aW1lLlRleHQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzI3Mi4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCcsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzg0CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NoYXJDbnQnXSA9IDY4MAorICAgIF9fb1snY2hhclRhYiddID0gX19vYmpbMjczLjBdCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyNzQuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNzUuMF0KKyAgICBfX29bJ2lzTG9hZGVkJ10gPSB0cnVlCisgICAgX19vWyduYW1lRW1wdHknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCZW1wdHktaW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZVN0YXRpYyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclN0JzdGF0aWMtaW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZVVua25vd24nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCdW5rbm93bi1pbnN0YW5jZS1uYW1lJTdEJywgJ1VURi04JykpCisgICAgX19vWydub2RlQ250J10gPSAxOQorICAgIF9fb1snbm9kZVRhYiddID0gX19vYmpbMjg4LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialszMDguMF0KKyAgICBfX29bJ3Zpc2l0Um9wZUZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSScsICdVVEYtOCcpKQorICAgIF9fb1sndmlzaXRSb3BlRnhuMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZTJfX0knLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjcyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3M10gIC8vIHhkYy5ydW50aW1lLlRleHQvY2hhclRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNoYXJUYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IDAKKyAgICBfX29bJzEnXSA9IDY1CisgICAgX19vWycyJ10gPSA5NQorICAgIF9fb1snMyddID0gMTA1CisgICAgX19vWyc0J10gPSAxMTAKKyAgICBfX29bJzUnXSA9IDEwNQorICAgIF9fb1snNiddID0gMTE2CisgICAgX19vWyc3J10gPSAxMDUKKyAgICBfX29bJzgnXSA9IDk3CisgICAgX19vWyc5J10gPSAxMDgKKyAgICBfX29bJzEwJ10gPSAxMDUKKyAgICBfX29bJzExJ10gPSAxMjIKKyAgICBfX29bJzEyJ10gPSAxMDEKKyAgICBfX29bJzEzJ10gPSAxMDAKKyAgICBfX29bJzE0J10gPSA4MAorICAgIF9fb1snMTUnXSA9IDk3CisgICAgX19vWycxNiddID0gMTE0CisgICAgX19vWycxNyddID0gOTcKKyAgICBfX29bJzE4J10gPSAxMDkKKyAgICBfX29bJzE5J10gPSAxMTUKKyAgICBfX29bJzIwJ10gPSA1OAorICAgIF9fb1snMjEnXSA9IDMyCisgICAgX19vWycyMiddID0gMTE3CisgICAgX19vWycyMyddID0gMTEwCisgICAgX19vWycyNCddID0gMTA1CisgICAgX19vWycyNSddID0gMTEwCisgICAgX19vWycyNiddID0gMTA1CisgICAgX19vWycyNyddID0gMTE2CisgICAgX19vWycyOCddID0gMTA1CisgICAgX19vWycyOSddID0gOTcKKyAgICBfX29bJzMwJ10gPSAxMDgKKyAgICBfX29bJzMxJ10gPSAxMDUKKyAgICBfX29bJzMyJ10gPSAxMjIKKyAgICBfX29bJzMzJ10gPSAxMDEKKyAgICBfX29bJzM0J10gPSAxMDAKKyAgICBfX29bJzM1J10gPSAzMgorICAgIF9fb1snMzYnXSA9IDgwCisgICAgX19vWyczNyddID0gOTcKKyAgICBfX29bJzM4J10gPSAxMTQKKyAgICBfX29bJzM5J10gPSA5NworICAgIF9fb1snNDAnXSA9IDEwOQorICAgIF9fb1snNDEnXSA9IDExNQorICAgIF9fb1snNDInXSA9IDMyCisgICAgX19vWyc0MyddID0gMTE1CisgICAgX19vWyc0NCddID0gMTE2CisgICAgX19vWyc0NSddID0gMTE0CisgICAgX19vWyc0NiddID0gMTE3CisgICAgX19vWyc0NyddID0gOTkKKyAgICBfX29bJzQ4J10gPSAxMTYKKyAgICBfX29bJzQ5J10gPSAwCisgICAgX19vWyc1MCddID0gNzIKKyAgICBfX29bJzUxJ10gPSAxMDEKKyAgICBfX29bJzUyJ10gPSA5NworICAgIF9fb1snNTMnXSA9IDExMgorICAgIF9fb1snNTQnXSA9IDc3CisgICAgX19vWyc1NSddID0gMTA1CisgICAgX19vWyc1NiddID0gMTEwCisgICAgX19vWyc1NyddID0gOTUKKyAgICBfX29bJzU4J10gPSA5OQorICAgIF9fb1snNTknXSA9IDExNAorICAgIF9fb1snNjAnXSA9IDEwMQorICAgIF9fb1snNjEnXSA9IDk3CisgICAgX19vWyc2MiddID0gMTE2CisgICAgX19vWyc2MyddID0gMTAxCisgICAgX19vWyc2NCddID0gMzIKKyAgICBfX29bJzY1J10gPSA5OQorICAgIF9fb1snNjYnXSA9IDk3CisgICAgX19vWyc2NyddID0gMTEwCisgICAgX19vWyc2OCddID0gMTEwCisgICAgX19vWyc2OSddID0gMTExCisgICAgX19vWyc3MCddID0gMTE2CisgICAgX19vWyc3MSddID0gMzIKKyAgICBfX29bJzcyJ10gPSAxMDQKKyAgICBfX29bJzczJ10gPSA5NworICAgIF9fb1snNzQnXSA9IDExOAorICAgIF9fb1snNzUnXSA9IDEwMQorICAgIF9fb1snNzYnXSA9IDMyCisgICAgX19vWyc3NyddID0gOTcKKyAgICBfX29bJzc4J10gPSAzMgorICAgIF9fb1snNzknXSA9IDEyMgorICAgIF9fb1snODAnXSA9IDEwMQorICAgIF9fb1snODEnXSA9IDExNAorICAgIF9fb1snODInXSA9IDExMQorICAgIF9fb1snODMnXSA9IDMyCisgICAgX19vWyc4NCddID0gMTE1CisgICAgX19vWyc4NSddID0gMTA1CisgICAgX19vWyc4NiddID0gMTIyCisgICAgX19vWyc4NyddID0gMTAxCisgICAgX19vWyc4OCddID0gMzIKKyAgICBfX29bJzg5J10gPSAxMTgKKyAgICBfX29bJzkwJ10gPSA5NworICAgIF9fb1snOTEnXSA9IDEwOAorICAgIF9fb1snOTInXSA9IDExNworICAgIF9fb1snOTMnXSA9IDEwMQorICAgIF9fb1snOTQnXSA9IDAKKyAgICBfX29bJzk1J10gPSA3MgorICAgIF9fb1snOTYnXSA9IDEwMQorICAgIF9fb1snOTcnXSA9IDk3CisgICAgX19vWyc5OCddID0gMTEyCisgICAgX19vWyc5OSddID0gODMKKyAgICBfX29bJzEwMCddID0gMTE2CisgICAgX19vWycxMDEnXSA9IDEwMAorICAgIF9fb1snMTAyJ10gPSA5NQorICAgIF9fb1snMTAzJ10gPSA5OQorICAgIF9fb1snMTA0J10gPSAxMTQKKyAgICBfX29bJzEwNSddID0gMTAxCisgICAgX19vWycxMDYnXSA9IDk3CisgICAgX19vWycxMDcnXSA9IDExNgorICAgIF9fb1snMTA4J10gPSAxMDEKKyAgICBfX29bJzEwOSddID0gMzIKKyAgICBfX29bJzExMCddID0gOTkKKyAgICBfX29bJzExMSddID0gOTcKKyAgICBfX29bJzExMiddID0gMTEwCisgICAgX19vWycxMTMnXSA9IDExMAorICAgIF9fb1snMTE0J10gPSAxMTEKKyAgICBfX29bJzExNSddID0gMTE2CisgICAgX19vWycxMTYnXSA9IDMyCisgICAgX19vWycxMTcnXSA9IDEwNAorICAgIF9fb1snMTE4J10gPSA5NworICAgIF9fb1snMTE5J10gPSAxMTgKKyAgICBfX29bJzEyMCddID0gMTAxCisgICAgX19vWycxMjEnXSA9IDMyCisgICAgX19vWycxMjInXSA9IDk3CisgICAgX19vWycxMjMnXSA9IDMyCisgICAgX19vWycxMjQnXSA9IDEyMgorICAgIF9fb1snMTI1J10gPSAxMDEKKyAgICBfX29bJzEyNiddID0gMTE0CisgICAgX19vWycxMjcnXSA9IDExMQorICAgIF9fb1snMTI4J10gPSAzMgorICAgIF9fb1snMTI5J10gPSAxMTUKKyAgICBfX29bJzEzMCddID0gMTA1CisgICAgX19vWycxMzEnXSA9IDEyMgorICAgIF9fb1snMTMyJ10gPSAxMDEKKyAgICBfX29bJzEzMyddID0gMzIKKyAgICBfX29bJzEzNCddID0gMTE4CisgICAgX19vWycxMzUnXSA9IDk3CisgICAgX19vWycxMzYnXSA9IDEwOAorICAgIF9fb1snMTM3J10gPSAxMTcKKyAgICBfX29bJzEzOCddID0gMTAxCisgICAgX19vWycxMzknXSA9IDAKKyAgICBfX29bJzE0MCddID0gNzIKKyAgICBfX29bJzE0MSddID0gMTAxCisgICAgX19vWycxNDInXSA9IDk3CisgICAgX19vWycxNDMnXSA9IDExMgorICAgIF9fb1snMTQ0J10gPSA4MworICAgIF9fb1snMTQ1J10gPSAxMTYKKyAgICBfX29bJzE0NiddID0gMTAwCisgICAgX19vWycxNDcnXSA9IDMyCisgICAgX19vWycxNDgnXSA9IDEwNQorICAgIF9fb1snMTQ5J10gPSAxMTAKKyAgICBfX29bJzE1MCddID0gMTE1CisgICAgX19vWycxNTEnXSA9IDExNgorICAgIF9fb1snMTUyJ10gPSA5NworICAgIF9fb1snMTUzJ10gPSAxMTAKKyAgICBfX29bJzE1NCddID0gOTkKKyAgICBfX29bJzE1NSddID0gMTAxCisgICAgX19vWycxNTYnXSA9IDMyCisgICAgX19vWycxNTcnXSA9IDExNgorICAgIF9fb1snMTU4J10gPSAxMTEKKyAgICBfX29bJzE1OSddID0gMTE2CisgICAgX19vWycxNjAnXSA9IDk3CisgICAgX19vWycxNjEnXSA9IDEwOAorICAgIF9fb1snMTYyJ10gPSA3MAorICAgIF9fb1snMTYzJ10gPSAxMTQKKyAgICBfX29bJzE2NCddID0gMTAxCisgICAgX19vWycxNjUnXSA9IDEwMQorICAgIF9fb1snMTY2J10gPSA4MworICAgIF9fb1snMTY3J10gPSAxMDUKKyAgICBfX29bJzE2OCddID0gMTIyCisgICAgX19vWycxNjknXSA9IDEwMQorICAgIF9fb1snMTcwJ10gPSAzMgorICAgIF9fb1snMTcxJ10gPSAxMDUKKyAgICBfX29bJzE3MiddID0gMTE1CisgICAgX19vWycxNzMnXSA9IDMyCisgICAgX19vWycxNzQnXSA9IDEwMworICAgIF9fb1snMTc1J10gPSAxMTQKKyAgICBfX29bJzE3NiddID0gMTAxCisgICAgX19vWycxNzcnXSA9IDk3CisgICAgX19vWycxNzgnXSA9IDExNgorICAgIF9fb1snMTc5J10gPSAxMDEKKyAgICBfX29bJzE4MCddID0gMTE0CisgICAgX19vWycxODEnXSA9IDMyCisgICAgX19vWycxODInXSA9IDExNgorICAgIF9fb1snMTgzJ10gPSAxMDQKKyAgICBfX29bJzE4NCddID0gOTcKKyAgICBfX29bJzE4NSddID0gMTEwCisgICAgX19vWycxODYnXSA9IDMyCisgICAgX19vWycxODcnXSA9IDExNQorICAgIF9fb1snMTg4J10gPSAxMTYKKyAgICBfX29bJzE4OSddID0gOTcKKyAgICBfX29bJzE5MCddID0gMTE0CisgICAgX19vWycxOTEnXSA9IDExNgorICAgIF9fb1snMTkyJ10gPSAxMDUKKyAgICBfX29bJzE5MyddID0gMTEwCisgICAgX19vWycxOTQnXSA9IDEwMworICAgIF9fb1snMTk1J10gPSAzMgorICAgIF9fb1snMTk2J10gPSAxMTUKKyAgICBfX29bJzE5NyddID0gMTA1CisgICAgX19vWycxOTgnXSA9IDEyMgorICAgIF9fb1snMTk5J10gPSAxMDEKKyAgICBfX29bJzIwMCddID0gMAorICAgIF9fb1snMjAxJ10gPSA3MgorICAgIF9fb1snMjAyJ10gPSAxMDEKKyAgICBfX29bJzIwMyddID0gOTcKKyAgICBfX29bJzIwNCddID0gMTEyCisgICAgX19vWycyMDUnXSA9IDgzCisgICAgX19vWycyMDYnXSA9IDExNgorICAgIF9fb1snMjA3J10gPSAxMDAKKyAgICBfX29bJzIwOCddID0gOTUKKyAgICBfX29bJzIwOSddID0gOTcKKyAgICBfX29bJzIxMCddID0gMTA4CisgICAgX19vWycyMTEnXSA9IDEwOAorICAgIF9fb1snMjEyJ10gPSAxMTEKKyAgICBfX29bJzIxMyddID0gOTkKKyAgICBfX29bJzIxNCddID0gMzIKKyAgICBfX29bJzIxNSddID0gNDUKKyAgICBfX29bJzIxNiddID0gMzIKKyAgICBfX29bJzIxNyddID0gMTE0CisgICAgX19vWycyMTgnXSA9IDEwMQorICAgIF9fb1snMjE5J10gPSAxMTMKKyAgICBfX29bJzIyMCddID0gMTE3CisgICAgX19vWycyMjEnXSA9IDEwMQorICAgIF9fb1snMjIyJ10gPSAxMTUKKyAgICBfX29bJzIyMyddID0gMTE2CisgICAgX19vWycyMjQnXSA9IDEwMQorICAgIF9fb1snMjI1J10gPSAxMDAKKyAgICBfX29bJzIyNiddID0gMzIKKyAgICBfX29bJzIyNyddID0gOTcKKyAgICBfX29bJzIyOCddID0gMTA4CisgICAgX19vWycyMjknXSA9IDEwNQorICAgIF9fb1snMjMwJ10gPSAxMDMKKyAgICBfX29bJzIzMSddID0gMTEwCisgICAgX19vWycyMzInXSA9IDEwOQorICAgIF9fb1snMjMzJ10gPSAxMDEKKyAgICBfX29bJzIzNCddID0gMTEwCisgICAgX19vWycyMzUnXSA9IDExNgorICAgIF9fb1snMjM2J10gPSAzMgorICAgIF9fb1snMjM3J10gPSAxMDUKKyAgICBfX29bJzIzOCddID0gMTE1CisgICAgX19vWycyMzknXSA9IDMyCisgICAgX19vWycyNDAnXSA9IDEwMworICAgIF9fb1snMjQxJ10gPSAxMTQKKyAgICBfX29bJzI0MiddID0gMTAxCisgICAgX19vWycyNDMnXSA9IDk3CisgICAgX19vWycyNDQnXSA9IDExNgorICAgIF9fb1snMjQ1J10gPSAxMDEKKyAgICBfX29bJzI0NiddID0gMTE0CisgICAgX19vWycyNDcnXSA9IDMyCisgICAgX19vWycyNDgnXSA9IDExNgorICAgIF9fb1snMjQ5J10gPSAxMDQKKyAgICBfX29bJzI1MCddID0gOTcKKyAgICBfX29bJzI1MSddID0gMTEwCisgICAgX19vWycyNTInXSA9IDMyCisgICAgX19vWycyNTMnXSA9IDk3CisgICAgX19vWycyNTQnXSA9IDEwOAorICAgIF9fb1snMjU1J10gPSAxMDgKKyAgICBfX29bJzI1NiddID0gMTExCisgICAgX19vWycyNTcnXSA9IDExOQorICAgIF9fb1snMjU4J10gPSAxMDEKKyAgICBfX29bJzI1OSddID0gMTAwCisgICAgX19vWycyNjAnXSA9IDAKKyAgICBfX29bJzI2MSddID0gNjUKKyAgICBfX29bJzI2MiddID0gOTUKKyAgICBfX29bJzI2MyddID0gOTkKKyAgICBfX29bJzI2NCddID0gOTcKKyAgICBfX29bJzI2NSddID0gMTEwCisgICAgX19vWycyNjYnXSA9IDExMAorICAgIF9fb1snMjY3J10gPSAxMTEKKyAgICBfX29bJzI2OCddID0gMTE2CisgICAgX19vWycyNjknXSA9IDcwCisgICAgX19vWycyNzAnXSA9IDEwNQorICAgIF9fb1snMjcxJ10gPSAxMTYKKyAgICBfX29bJzI3MiddID0gNzMKKyAgICBfX29bJzI3MyddID0gMTEwCisgICAgX19vWycyNzQnXSA9IDExNgorICAgIF9fb1snMjc1J10gPSAxMTEKKyAgICBfX29bJzI3NiddID0gNjUKKyAgICBfX29bJzI3NyddID0gMTE0CisgICAgX19vWycyNzgnXSA9IDEwMworICAgIF9fb1snMjc5J10gPSA1OAorICAgIF9fb1snMjgwJ10gPSAzMgorICAgIF9fb1snMjgxJ10gPSAxMTUKKyAgICBfX29bJzI4MiddID0gMTA1CisgICAgX19vWycyODMnXSA9IDEyMgorICAgIF9fb1snMjg0J10gPSAxMDEKKyAgICBfX29bJzI4NSddID0gMTExCisgICAgX19vWycyODYnXSA9IDEwMgorICAgIF9fb1snMjg3J10gPSA0MAorICAgIF9fb1snMjg4J10gPSA3MAorICAgIF9fb1snMjg5J10gPSAxMDgKKyAgICBfX29bJzI5MCddID0gMTExCisgICAgX19vWycyOTEnXSA9IDk3CisgICAgX19vWycyOTInXSA9IDExNgorICAgIF9fb1snMjkzJ10gPSA0MQorICAgIF9fb1snMjk0J10gPSAzMgorICAgIF9fb1snMjk1J10gPSA2MgorICAgIF9fb1snMjk2J10gPSAzMgorICAgIF9fb1snMjk3J10gPSAxMTUKKyAgICBfX29bJzI5OCddID0gMTA1CisgICAgX19vWycyOTknXSA9IDEyMgorICAgIF9fb1snMzAwJ10gPSAxMDEKKyAgICBfX29bJzMwMSddID0gMTExCisgICAgX19vWyczMDInXSA9IDEwMgorICAgIF9fb1snMzAzJ10gPSA0MAorICAgIF9fb1snMzA0J10gPSA2NQorICAgIF9fb1snMzA1J10gPSAxMTQKKyAgICBfX29bJzMwNiddID0gMTAzCisgICAgX19vWyczMDcnXSA9IDQxCisgICAgX19vWyczMDgnXSA9IDAKKyAgICBfX29bJzMwOSddID0gOTcKKyAgICBfX29bJzMxMCddID0gMTE1CisgICAgX19vWyczMTEnXSA9IDExNQorICAgIF9fb1snMzEyJ10gPSAxMDEKKyAgICBfX29bJzMxMyddID0gMTE0CisgICAgX19vWyczMTQnXSA9IDExNgorICAgIF9fb1snMzE1J10gPSAxMDUKKyAgICBfX29bJzMxNiddID0gMTExCisgICAgX19vWyczMTcnXSA9IDExMAorICAgIF9fb1snMzE4J10gPSAzMgorICAgIF9fb1snMzE5J10gPSAxMDIKKyAgICBfX29bJzMyMCddID0gOTcKKyAgICBfX29bJzMyMSddID0gMTA1CisgICAgX19vWyczMjInXSA9IDEwOAorICAgIF9fb1snMzIzJ10gPSAxMTcKKyAgICBfX29bJzMyNCddID0gMTE0CisgICAgX19vWyczMjUnXSA9IDEwMQorICAgIF9fb1snMzI2J10gPSAzNworICAgIF9fb1snMzI3J10gPSAxMTUKKyAgICBfX29bJzMyOCddID0gMzcKKyAgICBfX29bJzMyOSddID0gMTE1CisgICAgX19vWyczMzAnXSA9IDAKKyAgICBfX29bJzMzMSddID0gMTAzCisgICAgX19vWyczMzInXSA9IDEwMQorICAgIF9fb1snMzMzJ10gPSAxMTAKKyAgICBfX29bJzMzNCddID0gMTAxCisgICAgX19vWyczMzUnXSA9IDExNAorICAgIF9fb1snMzM2J10gPSAxMDUKKyAgICBfX29bJzMzNyddID0gOTkKKyAgICBfX29bJzMzOCddID0gMzIKKyAgICBfX29bJzMzOSddID0gMTAxCisgICAgX19vWyczNDAnXSA9IDExNAorICAgIF9fb1snMzQxJ10gPSAxMTQKKyAgICBfX29bJzM0MiddID0gMTExCisgICAgX19vWyczNDMnXSA9IDExNAorICAgIF9fb1snMzQ0J10gPSA1OAorICAgIF9fb1snMzQ1J10gPSAzMgorICAgIF9fb1snMzQ2J10gPSAzNworICAgIF9fb1snMzQ3J10gPSAxMTUKKyAgICBfX29bJzM0OCddID0gMAorICAgIF9fb1snMzQ5J10gPSAxMTEKKyAgICBfX29bJzM1MCddID0gMTE3CisgICAgX19vWyczNTEnXSA9IDExNgorICAgIF9fb1snMzUyJ10gPSAzMgorICAgIF9fb1snMzUzJ10gPSAxMTEKKyAgICBfX29bJzM1NCddID0gMTAyCisgICAgX19vWyczNTUnXSA9IDMyCisgICAgX19vWyczNTYnXSA9IDEwOQorICAgIF9fb1snMzU3J10gPSAxMDEKKyAgICBfX29bJzM1OCddID0gMTA5CisgICAgX19vWyczNTknXSA9IDExMQorICAgIF9fb1snMzYwJ10gPSAxMTQKKyAgICBfX29bJzM2MSddID0gMTIxCisgICAgX19vWyczNjInXSA9IDU4CisgICAgX19vWyczNjMnXSA9IDMyCisgICAgX19vWyczNjQnXSA9IDEwNAorICAgIF9fb1snMzY1J10gPSAxMDEKKyAgICBfX29bJzM2NiddID0gOTcKKyAgICBfX29bJzM2NyddID0gMTEyCisgICAgX19vWyczNjgnXSA9IDYxCisgICAgX19vWyczNjknXSA9IDQ4CisgICAgX19vWyczNzAnXSA9IDEyMAorICAgIF9fb1snMzcxJ10gPSAzNworICAgIF9fb1snMzcyJ10gPSAxMjAKKyAgICBfX29bJzM3MyddID0gNDQKKyAgICBfX29bJzM3NCddID0gMzIKKyAgICBfX29bJzM3NSddID0gMTE1CisgICAgX19vWyczNzYnXSA9IDEwNQorICAgIF9fb1snMzc3J10gPSAxMjIKKyAgICBfX29bJzM3OCddID0gMTAxCisgICAgX19vWyczNzknXSA9IDYxCisgICAgX19vWyczODAnXSA9IDM3CisgICAgX19vWyczODEnXSA9IDExNworICAgIF9fb1snMzgyJ10gPSAwCisgICAgX19vWyczODMnXSA9IDEwMgorICAgIF9fb1snMzg0J10gPSAxMTQKKyAgICBfX29bJzM4NSddID0gMTAxCisgICAgX19vWyczODYnXSA9IDEwMQorICAgIF9fb1snMzg3J10gPSA0MAorICAgIF9fb1snMzg4J10gPSA0MQorICAgIF9fb1snMzg5J10gPSAzMgorICAgIF9fb1snMzkwJ10gPSAxMDUKKyAgICBfX29bJzM5MSddID0gMTEwCisgICAgX19vWyczOTInXSA9IDExOAorICAgIF9fb1snMzkzJ10gPSA5NworICAgIF9fb1snMzk0J10gPSAxMDgKKyAgICBfX29bJzM5NSddID0gMTA1CisgICAgX19vWyczOTYnXSA9IDEwMAorICAgIF9fb1snMzk3J10gPSAzMgorICAgIF9fb1snMzk4J10gPSAxMDUKKyAgICBfX29bJzM5OSddID0gMTEwCisgICAgX19vWyc0MDAnXSA9IDMyCisgICAgX19vWyc0MDEnXSA9IDEwMworICAgIF9fb1snNDAyJ10gPSAxMTQKKyAgICBfX29bJzQwMyddID0gMTExCisgICAgX19vWyc0MDQnXSA9IDExOQorICAgIF9fb1snNDA1J10gPSAxMTYKKyAgICBfX29bJzQwNiddID0gMTA0CisgICAgX19vWyc0MDcnXSA9IDQ1CisgICAgX19vWyc0MDgnXSA9IDExMQorICAgIF9fb1snNDA5J10gPSAxMTAKKyAgICBfX29bJzQxMCddID0gMTA4CisgICAgX19vWyc0MTEnXSA9IDEyMQorICAgIF9fb1snNDEyJ10gPSAzMgorICAgIF9fb1snNDEzJ10gPSA3MgorICAgIF9fb1snNDE0J10gPSAxMDEKKyAgICBfX29bJzQxNSddID0gOTcKKyAgICBfX29bJzQxNiddID0gMTEyCisgICAgX19vWyc0MTcnXSA9IDc3CisgICAgX19vWyc0MTgnXSA9IDEwNQorICAgIF9fb1snNDE5J10gPSAxMTAKKyAgICBfX29bJzQyMCddID0gMAorICAgIF9fb1snNDIxJ10gPSA4NAorICAgIF9fb1snNDIyJ10gPSAxMDQKKyAgICBfX29bJzQyMyddID0gMTAxCisgICAgX19vWyc0MjQnXSA9IDMyCisgICAgX19vWyc0MjUnXSA9IDgyCisgICAgX19vWyc0MjYnXSA9IDg0CisgICAgX19vWyc0MjcnXSA9IDgzCisgICAgX19vWyc0MjgnXSA9IDMyCisgICAgX19vWyc0MjknXSA9IDEwNAorICAgIF9fb1snNDMwJ10gPSAxMDEKKyAgICBfX29bJzQzMSddID0gOTcKKyAgICBfX29bJzQzMiddID0gMTEyCisgICAgX19vWyc0MzMnXSA9IDMyCisgICAgX19vWyc0MzQnXSA9IDEwNQorICAgIF9fb1snNDM1J10gPSAxMTUKKyAgICBfX29bJzQzNiddID0gMzIKKyAgICBfX29bJzQzNyddID0gMTE3CisgICAgX19vWyc0MzgnXSA9IDExNQorICAgIF9fb1snNDM5J10gPSAxMDEKKyAgICBfX29bJzQ0MCddID0gMTAwCisgICAgX19vWyc0NDEnXSA9IDMyCisgICAgX19vWyc0NDInXSA9IDExNworICAgIF9fb1snNDQzJ10gPSAxMTIKKyAgICBfX29bJzQ0NCddID0gNDYKKyAgICBfX29bJzQ0NSddID0gMzIKKyAgICBfX29bJzQ0NiddID0gNjkKKyAgICBfX29bJzQ0NyddID0gMTIwCisgICAgX19vWyc0NDgnXSA9IDk3CisgICAgX19vWyc0NDknXSA9IDEwOQorICAgIF9fb1snNDUwJ10gPSAxMDUKKyAgICBfX29bJzQ1MSddID0gMTEwCisgICAgX19vWyc0NTInXSA9IDEwMQorICAgIF9fb1snNDUzJ10gPSAzMgorICAgIF9fb1snNDU0J10gPSA4MAorICAgIF9fb1snNDU1J10gPSAxMTQKKyAgICBfX29bJzQ1NiddID0gMTExCisgICAgX19vWyc0NTcnXSA9IDEwMworICAgIF9fb1snNDU4J10gPSAxMTQKKyAgICBfX29bJzQ1OSddID0gOTcKKyAgICBfX29bJzQ2MCddID0gMTA5CisgICAgX19vWyc0NjEnXSA9IDQ2CisgICAgX19vWyc0NjInXSA9IDEwNAorICAgIF9fb1snNDYzJ10gPSAxMDEKKyAgICBfX29bJzQ2NCddID0gOTcKKyAgICBfX29bJzQ2NSddID0gMTEyCisgICAgX19vWyc0NjYnXSA9IDQ2CisgICAgX19vWyc0NjcnXSA9IDAKKyAgICBfX29bJzQ2OCddID0gNjAKKyAgICBfX29bJzQ2OSddID0gNDUKKyAgICBfX29bJzQ3MCddID0gNDUKKyAgICBfX29bJzQ3MSddID0gMzIKKyAgICBfX29bJzQ3MiddID0gOTkKKyAgICBfX29bJzQ3MyddID0gMTExCisgICAgX19vWyc0NzQnXSA9IDExMAorICAgIF9fb1snNDc1J10gPSAxMTUKKyAgICBfX29bJzQ3NiddID0gMTE2CisgICAgX19vWyc0NzcnXSA9IDExNAorICAgIF9fb1snNDc4J10gPSAxMTcKKyAgICBfX29bJzQ3OSddID0gOTkKKyAgICBfX29bJzQ4MCddID0gMTE2CisgICAgX19vWyc0ODEnXSA9IDU4CisgICAgX19vWyc0ODInXSA9IDMyCisgICAgX19vWyc0ODMnXSA9IDM3CisgICAgX19vWyc0ODQnXSA9IDExMgorICAgIF9fb1snNDg1J10gPSA0MAorICAgIF9fb1snNDg2J10gPSAzOQorICAgIF9fb1snNDg3J10gPSAzNworICAgIF9fb1snNDg4J10gPSAxMTUKKyAgICBfX29bJzQ4OSddID0gMzkKKyAgICBfX29bJzQ5MCddID0gNDEKKyAgICBfX29bJzQ5MSddID0gMAorICAgIF9fb1snNDkyJ10gPSA2MAorICAgIF9fb1snNDkzJ10gPSA0NQorICAgIF9fb1snNDk0J10gPSA0NQorICAgIF9fb1snNDk1J10gPSAzMgorICAgIF9fb1snNDk2J10gPSA5OQorICAgIF9fb1snNDk3J10gPSAxMTQKKyAgICBfX29bJzQ5OCddID0gMTAxCisgICAgX19vWyc0OTknXSA9IDk3CisgICAgX19vWyc1MDAnXSA9IDExNgorICAgIF9fb1snNTAxJ10gPSAxMDEKKyAgICBfX29bJzUwMiddID0gNTgKKyAgICBfX29bJzUwMyddID0gMzIKKyAgICBfX29bJzUwNCddID0gMzcKKyAgICBfX29bJzUwNSddID0gMTEyCisgICAgX19vWyc1MDYnXSA9IDQwCisgICAgX19vWyc1MDcnXSA9IDM5CisgICAgX19vWyc1MDgnXSA9IDM3CisgICAgX19vWyc1MDknXSA9IDExNQorICAgIF9fb1snNTEwJ10gPSAzOQorICAgIF9fb1snNTExJ10gPSA0MQorICAgIF9fb1snNTEyJ10gPSAwCisgICAgX19vWyc1MTMnXSA9IDQ1CisgICAgX19vWyc1MTQnXSA9IDQ1CisgICAgX19vWyc1MTUnXSA9IDYyCisgICAgX19vWyc1MTYnXSA9IDMyCisgICAgX19vWyc1MTcnXSA9IDEwMAorICAgIF9fb1snNTE4J10gPSAxMDEKKyAgICBfX29bJzUxOSddID0gMTE1CisgICAgX19vWyc1MjAnXSA9IDExNgorICAgIF9fb1snNTIxJ10gPSAxMTQKKyAgICBfX29bJzUyMiddID0gMTE3CisgICAgX19vWyc1MjMnXSA9IDk5CisgICAgX19vWyc1MjQnXSA9IDExNgorICAgIF9fb1snNTI1J10gPSA1OAorICAgIF9fb1snNTI2J10gPSAzMgorICAgIF9fb1snNTI3J10gPSA0MAorICAgIF9fb1snNTI4J10gPSAzNworICAgIF9fb1snNTI5J10gPSAxMTIKKyAgICBfX29bJzUzMCddID0gNDEKKyAgICBfX29bJzUzMSddID0gMAorICAgIF9fb1snNTMyJ10gPSA0NQorICAgIF9fb1snNTMzJ10gPSA0NQorICAgIF9fb1snNTM0J10gPSA2MgorICAgIF9fb1snNTM1J10gPSAzMgorICAgIF9fb1snNTM2J10gPSAxMDAKKyAgICBfX29bJzUzNyddID0gMTAxCisgICAgX19vWyc1MzgnXSA9IDEwOAorICAgIF9fb1snNTM5J10gPSAxMDEKKyAgICBfX29bJzU0MCddID0gMTE2CisgICAgX19vWyc1NDEnXSA9IDEwMQorICAgIF9fb1snNTQyJ10gPSA1OAorICAgIF9fb1snNTQzJ10gPSAzMgorICAgIF9fb1snNTQ0J10gPSA0MAorICAgIF9fb1snNTQ1J10gPSAzNworICAgIF9fb1snNTQ2J10gPSAxMTIKKyAgICBfX29bJzU0NyddID0gNDEKKyAgICBfX29bJzU0OCddID0gMAorICAgIF9fb1snNTQ5J10gPSAxMjAKKyAgICBfX29bJzU1MCddID0gMTAwCisgICAgX19vWyc1NTEnXSA9IDk5CisgICAgX19vWyc1NTInXSA9IDQ2CisgICAgX19vWyc1NTMnXSA9IDAKKyAgICBfX29bJzU1NCddID0gMTE0CisgICAgX19vWyc1NTUnXSA9IDExNworICAgIF9fb1snNTU2J10gPSAxMTAKKyAgICBfX29bJzU1NyddID0gMTE2CisgICAgX19vWyc1NTgnXSA9IDEwNQorICAgIF9fb1snNTU5J10gPSAxMDkKKyAgICBfX29bJzU2MCddID0gMTAxCisgICAgX19vWyc1NjEnXSA9IDQ2CisgICAgX19vWyc1NjInXSA9IDAKKyAgICBfX29bJzU2MyddID0gNjUKKyAgICBfX29bJzU2NCddID0gMTE1CisgICAgX19vWyc1NjUnXSA9IDExNQorICAgIF9fb1snNTY2J10gPSAxMDEKKyAgICBfX29bJzU2NyddID0gMTE0CisgICAgX19vWyc1NjgnXSA9IDExNgorICAgIF9fb1snNTY5J10gPSAwCisgICAgX19vWyc1NzAnXSA9IDY3CisgICAgX19vWyc1NzEnXSA9IDExMQorICAgIF9fb1snNTcyJ10gPSAxMTQKKyAgICBfX29bJzU3MyddID0gMTAxCisgICAgX19vWyc1NzQnXSA9IDAKKyAgICBfX29bJzU3NSddID0gNjgKKyAgICBfX29bJzU3NiddID0gMTAxCisgICAgX19vWyc1NzcnXSA9IDEwMgorICAgIF9fb1snNTc4J10gPSA5NworICAgIF9fb1snNTc5J10gPSAxMTcKKyAgICBfX29bJzU4MCddID0gMTA4CisgICAgX19vWyc1ODEnXSA9IDExNgorICAgIF9fb1snNTgyJ10gPSAxMTUKKyAgICBfX29bJzU4MyddID0gMAorICAgIF9fb1snNTg0J10gPSA2OAorICAgIF9fb1snNTg1J10gPSAxMDUKKyAgICBfX29bJzU4NiddID0gOTcKKyAgICBfX29bJzU4NyddID0gMTAzCisgICAgX19vWyc1ODgnXSA9IDExNQorICAgIF9fb1snNTg5J10gPSAwCisgICAgX19vWyc1OTAnXSA9IDY5CisgICAgX19vWyc1OTEnXSA9IDExNAorICAgIF9fb1snNTkyJ10gPSAxMTQKKyAgICBfX29bJzU5MyddID0gMTExCisgICAgX19vWyc1OTQnXSA9IDExNAorICAgIF9fb1snNTk1J10gPSAwCisgICAgX19vWyc1OTYnXSA9IDcxCisgICAgX19vWyc1OTcnXSA9IDk3CisgICAgX19vWyc1OTgnXSA9IDExNgorICAgIF9fb1snNTk5J10gPSAxMDEKKyAgICBfX29bJzYwMCddID0gMAorICAgIF9fb1snNjAxJ10gPSA3MQorICAgIF9fb1snNjAyJ10gPSA5NworICAgIF9fb1snNjAzJ10gPSAxMTYKKyAgICBfX29bJzYwNCddID0gMTAxCisgICAgX19vWyc2MDUnXSA9IDc4CisgICAgX19vWyc2MDYnXSA9IDExNworICAgIF9fb1snNjA3J10gPSAxMDgKKyAgICBfX29bJzYwOCddID0gMTA4CisgICAgX19vWyc2MDknXSA9IDAKKyAgICBfX29bJzYxMCddID0gNzYKKyAgICBfX29bJzYxMSddID0gMTExCisgICAgX19vWyc2MTInXSA9IDEwMworICAgIF9fb1snNjEzJ10gPSAwCisgICAgX19vWyc2MTQnXSA9IDc3CisgICAgX19vWyc2MTUnXSA9IDk3CisgICAgX19vWyc2MTYnXSA9IDEwNQorICAgIF9fb1snNjE3J10gPSAxMTAKKyAgICBfX29bJzYxOCddID0gMAorICAgIF9fb1snNjE5J10gPSA3NworICAgIF9fb1snNjIwJ10gPSAxMDEKKyAgICBfX29bJzYyMSddID0gMTA5CisgICAgX19vWyc2MjInXSA9IDExMQorICAgIF9fb1snNjIzJ10gPSAxMTQKKyAgICBfX29bJzYyNCddID0gMTIxCisgICAgX19vWyc2MjUnXSA9IDAKKyAgICBfX29bJzYyNiddID0gNzIKKyAgICBfX29bJzYyNyddID0gMTAxCisgICAgX19vWyc2MjgnXSA9IDk3CisgICAgX19vWyc2MjknXSA9IDExMgorICAgIF9fb1snNjMwJ10gPSA4MworICAgIF9fb1snNjMxJ10gPSAxMTYKKyAgICBfX29bJzYzMiddID0gMTAwCisgICAgX19vWyc2MzMnXSA9IDAKKyAgICBfX29bJzYzNCddID0gODMKKyAgICBfX29bJzYzNSddID0gMTE2CisgICAgX19vWyc2MzYnXSA9IDk3CisgICAgX19vWyc2MzcnXSA9IDExNAorICAgIF9fb1snNjM4J10gPSAxMTYKKyAgICBfX29bJzYzOSddID0gMTE3CisgICAgX19vWyc2NDAnXSA9IDExMgorICAgIF9fb1snNjQxJ10gPSAwCisgICAgX19vWyc2NDInXSA9IDgzCisgICAgX19vWyc2NDMnXSA9IDEyMQorICAgIF9fb1snNjQ0J10gPSAxMTUKKyAgICBfX29bJzY0NSddID0gMTE2CisgICAgX19vWyc2NDYnXSA9IDEwMQorICAgIF9fb1snNjQ3J10gPSAxMDkKKyAgICBfX29bJzY0OCddID0gMAorICAgIF9fb1snNjQ5J10gPSA4MworICAgIF9fb1snNjUwJ10gPSAxMjEKKyAgICBfX29bJzY1MSddID0gMTE1CisgICAgX19vWyc2NTInXSA9IDc3CisgICAgX19vWyc2NTMnXSA9IDEwNQorICAgIF9fb1snNjU0J10gPSAxMTAKKyAgICBfX29bJzY1NSddID0gMAorICAgIF9fb1snNjU2J10gPSA4NAorICAgIF9fb1snNjU3J10gPSAxMDEKKyAgICBfX29bJzY1OCddID0gMTIwCisgICAgX19vWyc2NTknXSA9IDExNgorICAgIF9fb1snNjYwJ10gPSAwCisgICAgX19vWyc2NjEnXSA9IDEwNAorICAgIF9fb1snNjYyJ10gPSAxMDEKKyAgICBfX29bJzY2MyddID0gMTA4CisgICAgX19vWyc2NjQnXSA9IDEwOAorICAgIF9fb1snNjY1J10gPSAxMTEKKyAgICBfX29bJzY2NiddID0gNDYKKyAgICBfX29bJzY2NyddID0gMAorICAgIF9fb1snNjY4J10gPSAxMDkKKyAgICBfX29bJzY2OSddID0gMTExCisgICAgX19vWyc2NzAnXSA9IDEwMAorICAgIF9fb1snNjcxJ10gPSA0NgorICAgIF9fb1snNjcyJ10gPSAwCisgICAgX19vWyc2NzMnXSA9IDg0CisgICAgX19vWyc2NzQnXSA9IDk3CisgICAgX19vWyc2NzUnXSA9IDEwOAorICAgIF9fb1snNjc2J10gPSAxMDcKKyAgICBfX29bJzY3NyddID0gMTAxCisgICAgX19vWyc2NzgnXSA9IDExNAorICAgIF9fb1snNjc5J10gPSAwCisKK19fbyA9IF9fb2JqWzI3NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyNzVdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjc2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjc4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyODAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjgyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjg0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyODYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjc3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzddICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzhdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNzkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4MF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODVdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODZdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODddICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODhdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsyODkuMF0KKyAgICBfX29bJzEnXSA9IF9fb2JqWzI5MC4wXQorICAgIF9fb1snMiddID0gX19vYmpbMjkxLjBdCisgICAgX19vWyczJ10gPSBfX29ialsyOTIuMF0KKyAgICBfX29bJzQnXSA9IF9fb2JqWzI5My4wXQorICAgIF9fb1snNSddID0gX19vYmpbMjk0LjBdCisgICAgX19vWyc2J10gPSBfX29ialsyOTUuMF0KKyAgICBfX29bJzcnXSA9IF9fb2JqWzI5Ni4wXQorICAgIF9fb1snOCddID0gX19vYmpbMjk3LjBdCisgICAgX19vWyc5J10gPSBfX29ialsyOTguMF0KKyAgICBfX29bJzEwJ10gPSBfX29ialsyOTkuMF0KKyAgICBfX29bJzExJ10gPSBfX29ialszMDAuMF0KKyAgICBfX29bJzEyJ10gPSBfX29ialszMDEuMF0KKyAgICBfX29bJzEzJ10gPSBfX29ialszMDIuMF0KKyAgICBfX29bJzE0J10gPSBfX29ialszMDMuMF0KKyAgICBfX29bJzE1J10gPSBfX29ialszMDQuMF0KKyAgICBfX29bJzE2J10gPSBfX29ialszMDUuMF0KKyAgICBfX29bJzE3J10gPSBfX29ialszMDYuMF0KKyAgICBfX29bJzE4J10gPSBfX29ialszMDcuMF0KKworX19vID0gX19vYmpbMjg5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMAorICAgIF9fb1sncmlnaHQnXSA9IDAKKworX19vID0gX19vYmpbMjkwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gNTQ5CisgICAgX19vWydyaWdodCddID0gNTU0CisKK19fbyA9IF9fb2JqWzI5MV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTYzCisKK19fbyA9IF9fb2JqWzI5Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTcwCisKK19fbyA9IF9fb2JqWzI5M10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTc1CisKK19fbyA9IF9fb2JqWzI5NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTg0CisKK19fbyA9IF9fb2JqWzI5NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi82CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTkwCisKK19fbyA9IF9fb2JqWzI5Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNTk2CisKK19fbyA9IF9fb2JqWzI5N10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjAxCisKK19fbyA9IF9fb2JqWzI5OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi85CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjknLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjEwCisKK19fbyA9IF9fb2JqWzI5OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MTQKKworX19vID0gX19vYmpbMzAwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzExCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjExJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYxOQorCitfX28gPSBfX29ialszMDFdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjI2CisKK19fbyA9IF9fb2JqWzMwMl0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MzQKKworX19vID0gX19vYmpbMzAzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE0JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDY0MgorCitfX28gPSBfX29ialszMDRdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjQ5CisKK19fbyA9IF9fb2JqWzMwNV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2NTYKKworX19vID0gX19vYmpbMzA2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE3CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE3JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSA2NjEKKyAgICBfX29bJ3JpZ2h0J10gPSA2NjgKKworX19vID0gX19vYmpbMzA3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE4CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE4JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc4NQorICAgIF9fb1sncmlnaHQnXSA9IDY3MworCitfX28gPSBfX29ialszMDhdICAvLyB4ZGMucnVudGltZS5UZXh0L3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzA5XSAgLy8gaGVsbG8ubW9kLlRhbGtlcgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMzEwLjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNmhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODYKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMzExLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMzEyLjBdCisgICAgX19vWydjb3VudCddID0gMworICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3RleHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnR29vZG5pZ2h0K01vb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzI1LjBdCisKK19fbyA9IF9fb2JqWzMxMF0gIC8vIGhlbGxvLm1vZC5UYWxrZXIvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTFdICAvLyBoZWxsby5tb2QuVGFsa2VyL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvLm1vZC5UYWxrZXIlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMzEyXSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzMxMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzMxNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMzE3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzMxOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzMyMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMzIzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTNdICAvLyBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMxNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE0XSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvLm1vZC5UYWxrZXIlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE1XSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzE2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTZdICAvLyBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTddICAvLyBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvLm1vZC5UYWxrZXIlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxOF0gIC8vIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvLm1vZC5UYWxrZXIlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTldICAvLyBoZWxsby5tb2QuVGFsa2VyL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzIwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMF0gIC8vIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMV0gIC8vIGhlbGxvLm1vZC5UYWxrZXIvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzIyXSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsby5tb2QuVGFsa2VyJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzIzXSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI0XSAgLy8gaGVsbG8ubW9kLlRhbGtlci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvLm1vZC5UYWxrZXIlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI1XSAgLy8gaGVsbG8ubW9kLlRhbGtlci92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG8ubW9kLlRhbGtlciUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyNl0gIAorICAgIF9fb1snY2ZnQXJncyddID0gdW5kZWZpbmVkCisgICAgX19vWydjZmdTY3JpcHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncHJvZy5jZmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Byb2ZpbGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgncmVsZWFzZScsICdVVEYtOCcpKQorICAgIF9fb1sncmVsZWFzZXMnXSA9IF9fb2JqWzMyNy4wXQorICAgIF9fb1sndGFyZ2V0J10gPSBfX29ialszMzEuMF0KKyAgICBfX29bJ3Rlc3QnXSA9IF9fb2JqWzM4NC4wXQorCitfX28gPSBfX29ialszMjddICAKKyAgICBfX29bJzAnXSA9IF9fb2JqWzMyOC4wXQorCitfX28gPSBfX29ialszMjhdICAKKyAgICBfX29bJ2F0dHJzJ10gPSBfX29ialszMjkuMF0KKyAgICBfX29bJ25hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaGVsbG9fbW9kJywgJ1VURi04JykpCisgICAgX19vWydvdGhlckZpbGVzJ10gPSBfX29ialszMzAuMF0KKworX19vID0gX19vYmpbMzI5XSAgCisgICAgX19vWydsYWJlbCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkZWZhdWx0JywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzMF0gIAorCitfX28gPSBfX29ialszMzFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3cnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0NZR1dJTiddID0gZmFsc2UKKyAgICBfX29bJ0dDQ1RBUkcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbWluZ3czMicsICdVVEYtOCcpKQorICAgIF9fb1snR0NDVkVSUyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCczLjQuNScsICdVVEYtOCcpKQorICAgIF9fb1snTE9OR05BTUUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTJGYmluJTJGbWluZ3czMi1nY2MuZXhlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbkRpcmVjdGl2ZVN1cHBvcnRlZCddID0gZmFsc2UKKyAgICBfX29bJ2FyJ10gPSBfX29ialszMzIuMF0KKyAgICBfX29bJ2FyT3B0cyddID0gX19vYmpbMzMzLjBdCisgICAgX19vWydhc20nXSA9IF9fb2JqWzMzNC4wXQorICAgIF9fb1snYXNtT3B0cyddID0gX19vYmpbMzM1LjBdCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY2MnXSA9IF9fb2JqWzMzNi4wXQorICAgIF9fb1snY2NPcHRzJ10gPSBfX29ialszMzcuMF0KKyAgICBfX29bJ2NtZFByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBhdGlibGVTdWZmaXhlcyddID0gX19vYmpbMzM4LjBdCisgICAgX19vWydkZWJ1Z0dlbiddID0gX19vYmpbMzM5LjBdCisgICAgX19vWydkbGxFeHQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnNvJywgJ1VURi04JykpCisgICAgX19vWydleHRlbnNpb25zJ10gPSBfX29ialszNDAuMF0KKyAgICBfX29bJ2luY2x1ZGVPcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snaXNhJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3g4NicsICdVVEYtOCcpKQorICAgIF9fb1snbG5rJ10gPSBfX29ialszNDguMF0KKyAgICBfX29bJ2xua09wdHMnXSA9IF9fb2JqWzM0OS4wXQorICAgIF9fb1snbW9kZWwnXSA9IF9fb2JqWzM1MC4wXQorICAgIF9fb1snbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNaW5ndycsICdVVEYtOCcpKQorICAgIF9fb1snb3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnV2luZG93cycsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaG9zdC5wbGF0Zm9ybXMuUEMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BsYXRmb3JtcyddID0gX19vYmpbMzUxLjBdCisgICAgX19vWydwcm9maWxlcyddID0gX19vYmpbMzUyLjBdCisgICAgX19vWydyb290RGlyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2UlM0ElMkZydHNjJTJGbWluZ3cnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3J0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5ydHM4NkdXJywgJ1VURi04JykpCisgICAgX19vWydzZWN0TWFwJ10gPSBfX29ialszNjUuMF0KKyAgICBfX29bJ3N0ZEluY2x1ZGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251JTJGdGFyZ2V0cyUyRnN0ZC5oJywgJ1VURi04JykpCisgICAgX19vWydzdGRUeXBlcyddID0gX19vYmpbMzY2LjBdCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnODZHVycsICdVVEYtOCcpKQorICAgIF9fb1sndmVyc2lvbiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyU3QjElMkMwJTJDMy40JTJDNScsICdVVEYtOCcpKQorICAgIF9fb1sndmVyc2lvbk1hcCddID0gX19vYmpbMzgzLjBdCisKK19fbyA9IF9fb2JqWzMzMl0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2FyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmFyJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4cm9vdERpciUyOSUyRiUyNCUyOEdDQ1RBUkclMjklMkZiaW4lMkZhcicsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzNdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9hck9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGYXJPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzNF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2FzbQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZhc20nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGJTI0JTI4TE9OR05BTUUlMjkrLWMrLXgrYXNzZW1ibGVyJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9hc21PcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmFzbU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM2XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvY2MKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGY2MnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGJTI0JTI4TE9OR05BTUUlMjkrLWMrLU1EKy1NRislMjQlNDAuZGVwJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzddICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9jY09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGY2NPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLVd1bnVzZWQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctRGZhciUzRCsnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM4XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmNvbXBhdGlibGVTdWZmaXhlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzldICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9kZWJ1Z0dlbgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZkZWJ1Z0dlbicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDBdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmV4dGVuc2lvbnMnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5DJ10gPSBfX29ialszNDEuMF0KKyAgICBfX29bJy5hc20nXSA9IF9fb2JqWzM0Mi4wXQorICAgIF9fb1snLmMnXSA9IF9fb2JqWzM0My4wXQorICAgIF9fb1snLmNjJ10gPSBfX29ialszNDQuMF0KKyAgICBfX29bJy5jcHAnXSA9IF9fb2JqWzM0NS4wXQorICAgIF9fb1snLmN4eCddID0gX19vYmpbMzQ2LjBdCisgICAgX19vWycuczg2R1cnXSA9IF9fb2JqWzM0Ny4wXQorCitfX28gPSBfX29ialszNDFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuQycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGZXh0ZW5zaW9ucyUyRiUyNy5DJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLkMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGZXh0ZW5zaW9ucyUyRiUyNy5hc20lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYXNtJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0M10gIC8vIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LmMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2MnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ0XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmNjJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LmNjJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNjJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0NV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jcHAnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmV4dGVuc2lvbnMlMkYlMjcuY3BwJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNwcCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDZdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3h4JworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LmN4eCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jeHgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ3XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLnM4NkdXJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LnM4NkdXJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM4NkdXJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0OF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2xuaworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZsbmsnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGJTI0JTI4TE9OR05BTUUlMjknLCAnVVRGLTgnKSkKKyAgICBfX29bJ29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0OV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2xua09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGbG5rT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1sc3RkYyUyQiUyQistTCUyNCUyOHJvb3REaXIlMjklMkZsaWInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzUwXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvbW9kZWwKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGbW9kZWwnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2VuZGlhbiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdsaXR0bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzUxXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcGxhdGZvcm1zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnBsYXRmb3JtcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdob3N0LnBsYXRmb3Jtcy5QQycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTJdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcycsICdVVEYtOCcpKQorICAgIF9fb1snY292ZXJhZ2UnXSA9IF9fb2JqWzM1My4wXQorICAgIF9fb1snZGVidWcnXSA9IF9fb2JqWzM1Ni4wXQorICAgIF9fb1sncHJvZmlsZSddID0gX19vYmpbMzU5LjBdCisgICAgX19vWydyZWxlYXNlJ10gPSBfX29ialszNjIuMF0KKworX19vID0gX19vYmpbMzUzXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzU0LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszNTUuMF0KKyAgICBfX29bJ2xpbmtPcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTRdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWZwcm9maWxlLWFyY3MrLWZ0ZXN0LWNvdmVyYWdlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1NV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNTZdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNTcuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM1OC4wXQorICAgIF9fb1snbGlua09wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzU3XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1nJywgJ1VURi04JykpCisgICAgX19vWydkZWZzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1EX0RFQlVHXyUzRDEnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzU4XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1OV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNjAuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM2MS4wXQorICAgIF9fb1snbGlua09wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLXBnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2MF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcrLXBnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2MV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzYyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM2My4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzY0LjBdCisgICAgX19vWydsaW5rT3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzYzXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctTzInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY0XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zZWN0TWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnNlY3RNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY2XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3RfQ2hhciddID0gX19vYmpbMzY3LjBdCisgICAgX19vWyd0X0RvdWJsZSddID0gX19vYmpbMzY4LjBdCisgICAgX19vWyd0X0Zsb2F0J10gPSBfX29ialszNjkuMF0KKyAgICBfX29bJ3RfRnhuJ10gPSBfX29ialszNzAuMF0KKyAgICBfX29bJ3RfSUFyZyddID0gX19vYmpbMzcxLjBdCisgICAgX19vWyd0X0ludCddID0gX19vYmpbMzcyLjBdCisgICAgX19vWyd0X0ludDE2J10gPSBfX29ialszNzMuMF0KKyAgICBfX29bJ3RfSW50MzInXSA9IF9fb2JqWzM3NC4wXQorICAgIF9fb1sndF9JbnQ0MCddID0gX19vYmpbMzc1LjBdCisgICAgX19vWyd0X0ludDY0J10gPSBfX29ialszNzYuMF0KKyAgICBfX29bJ3RfSW50OCddID0gX19vYmpbMzc3LjBdCisgICAgX19vWyd0X0xEb3VibGUnXSA9IF9fb2JqWzM3OC4wXQorICAgIF9fb1sndF9MTG9uZyddID0gX19vYmpbMzc5LjBdCisgICAgX19vWyd0X0xvbmcnXSA9IF9fb2JqWzM4MC4wXQorICAgIF9fb1sndF9QdHInXSA9IF9fb2JqWzM4MS4wXQorICAgIF9fb1sndF9TaG9ydCddID0gX19vYmpbMzgyLjBdCisKK19fbyA9IF9fb2JqWzM2N10gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfQ2hhcgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfQ2hhcicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbMzY4XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0RvdWJsZScsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzY5XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9GbG9hdAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfRmxvYXQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM3MF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfRnhuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9GeG4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM3MV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSUFyZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfSUFyZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzcyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0ludCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzczXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQxNgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfSW50MTYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAyCisgICAgX19vWydzaXplJ10gPSAyCisKK19fbyA9IF9fb2JqWzM3NF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50MzIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0ludDMyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszNzVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDQwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JbnQ0MCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzZdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDY0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JbnQ2NCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzc3XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ4CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JbnQ4JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ialszNzhdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xEb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0xEb3VibGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSAxMgorCitfX28gPSBfX29ialszNzldICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xMb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9MTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzgwXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Mb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9Mb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszODFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1B0cgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfUHRyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszODJdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1Nob3J0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9TaG9ydCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbMzgzXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvdmVyc2lvbk1hcAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZ2ZXJzaW9uTWFwJywgJ1VURi04JykpCisgICAgX19vWydnY2MzLjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMzLjIlMkMwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4NF0gIAorCitkZWxldGUgX19vCitkZWxldGUgX19vYmoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5ydGEueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cucnRhLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODg1NjUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cucnRhLnhtbApAQCAtMCwwICsxLDEwNyBAQAorPHhkYy5ydW50aW1lLlR5cGVzLlJ0YURlY29kZXJEYXRhPg0KKyAgPHRhcmdldE5hbWU+Z251LnRhcmdldHMuTWluZ3c8L3RhcmdldE5hbWU+DQorICA8YmluYXJ5UGFyc2VyPnVuZGVmaW5lZDwvYmluYXJ5UGFyc2VyPg0KKyAgPGVuZGlhbj5saXR0bGU8L2VuZGlhbj4NCisgIDxiaXRzUGVyQ2hhcj44PC9iaXRzUGVyQ2hhcj4NCisgIDxhcmdTaXplPjQ8L2FyZ1NpemU+DQorICA8ZXZlbnRTaXplPjQ4PC9ldmVudFNpemU+DQorICA8bG9nZ2Vycy1sZW5ndGg+MDwvbG9nZ2Vycy1sZW5ndGg+DQorICA8bW9kTWFwLWxlbmd0aD4xNjwvbW9kTWFwLWxlbmd0aD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Bc3NlcnQiPg0KKyAgICA8aWQ+MzI3NzA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Db3JlIj4NCisgICAgPGlkPjMyNzcxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiPg0KKyAgICA8aWQ+MzI3NzI8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5EaWFncyI+DQorICAgIDxpZD4zMjc3MzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkVycm9yIj4NCisgICAgPGlkPjMyNzc0PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuR2F0ZSI+DQorICAgIDxpZD4zMjc3NTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkdhdGVOdWxsIj4NCisgICAgPGlkPjMyNzc2PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nIj4NCisgICAgPGlkPjMyNzc3PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTWFpbiI+DQorICAgIDxpZD4zMjc3ODwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLk1lbW9yeSI+DQorICAgIDxpZD4zMjc3OTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkhlYXBTdGQiPg0KKyAgICA8aWQ+MzI3ODA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5TdGFydHVwIj4NCisgICAgPGlkPjMyNzgxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzdGVtIj4NCisgICAgPGlkPjMyNzgyPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzTWluIj4NCisgICAgPGlkPjMyNzgzPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuVGV4dCI+DQorICAgIDxpZD4zMjc4NDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9ImhlbGxvLm1vZC5UYWxrZXIiPg0KKyAgICA8aWQ+MzI3ODY8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxldnRNYXAtbGVuZ3RoPjQ8L2V2dE1hcC1sZW5ndGg+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfY29uc3RydWN0Ij4NCisgICAgPGlkPjQ2ODwvaWQ+DQorICAgIDxtc2c+JTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9jcmVhdGUiPg0KKyAgICA8aWQ+NDkyPC9pZD4NCisgICAgPG1zZz4lM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0Ij4NCisgICAgPGlkPjUxMzwvaWQ+DQorICAgIDxtc2c+LS0lM0UrZGVzdHJ1Y3QlM0ErJTI4JTI1cCUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfZGVsZXRlIj4NCisgICAgPGlkPjUzMjwvaWQ+DQorICAgIDxtc2c+LS0lM0UrZGVsZXRlJTNBKyUyOCUyNXAlMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKzwveGRjLnJ1bnRpbWUuVHlwZXMuUnRhRGVjb2RlckRhdGE+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTk0YThiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cueGRjLmluYwpAQCAtMCwwICsxLDMgQEAKK1RhbGtlci54cworcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jZmcKK3Byb2cuY2ZnCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy54ZGwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9jZmcvcHJvZ194ODZHVy54ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzIxMDFjNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnhkbApAQCAtMCwwICsxLDYzIEBACisvKiB0aGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBieSBsaW5rY21kLnhkdCBmcm9tIHRoZSBnbnUudGFyZ2V0cyBwYWNrYWdlICovCisKKy8qIGZ1bmN0aW9uIGFsaWFzZXMgKi8KK194ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0UgPSBfeGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GOworX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19FID0gX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19GOworX3hkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FID0gX3hkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19GOworX3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19FID0gX3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19GOworX3hkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0UgPSBfeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0Y7CitfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0Y7CitfeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UgPSBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0Y7CitfeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRSA9IF94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GOworX3hkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRjsKK194ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UgPSBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GOworX3hkY19ydW50aW1lX0xvZ19kb1ByaW50X19FID0gX3hkY19ydW50aW1lX0xvZ19kb1ByaW50X19GOworX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSA9IF94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0Y7CitfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FID0gX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRjsKK194ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRSA9IF94ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRjsKK194ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UgPSBfeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GOworX3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRjsKK194ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRjsKK194ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSA9IF94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRjsKK194ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FID0gX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0Y7CitfaGVsbG9fbW9kX1RhbGtlcl9wcmludF9fRSA9IF9oZWxsb19tb2RfVGFsa2VyX3ByaW50X19GOworX3hkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0RGF0YV9fRjsKK194ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FID0gX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0Y7CitfeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UgPSBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0Y7CitfeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0UgPSBfeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0Y7CitfeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19FID0gX3hkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRjsKK194ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0UgPSBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GOworX3hkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0Y7CitfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19FID0gX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRjsKK194ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FID0gX3hkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19FID0gX3hkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRjsKK194ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UgPSBfeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19GOworX3hkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19GOworX3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UgPSBfeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRjsKK194ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19FID0gX3hkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0Y7CitfeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FID0gX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRjsKK194ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSA9IF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRjsKK194ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FID0gX3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0Y7CitfeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GOworX3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UgPSBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRjsKKworLyogaW5wdXQgbGlicmFyaWVzICovCitJTlBVVCgKKyAgICAiRDpcd29ya1x0dXRvcmlhbFxyZXBvXGhlbGxvXG1vZFxsaWJcaGVsbG8ubW9kLmE4NkdXIgorICAgICJFOlxydHNjXHhkY3Rvb2xzXzNfMTVfMDBfMjlccGFja2FnZXNcZ251XHRhcmdldHNccnRzODZHV1xsaWJcZ251LnRhcmdldHMucnRzODZHVy5hODZHVyIKKykKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2hlbGxvLm1vZC5jY3MgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9oZWxsby5tb2QuY2NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjM2ZlZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9oZWxsby5tb2QuY2NzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2hlbGxvLm1vZC5wanQgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9oZWxsby5tb2QucGp0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNTY0MWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9oZWxsby5tb2QucGp0CkBAIC0wLDAgKzEsMTEgQEAKKzsgQ29kZSBDb21wb3NlciBQcm9qZWN0IEZpbGUsIFZlcnNpb24gMi4wIChkbyBub3QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGxpbmUpCitbUHJvamVjdCBTZXR0aW5nc10KK1Byb2plY3ROYW1lPSJoZWxsby5tb2QiCitQcm9qZWN0VHlwZT1FeHRlcm5hbAorQ1BVRmFtaWx5PVRNUzMyMEM2NFhYCitUb29sPSJDdXN0b21CdWlsZGVyIgorQ29uZmlnPSJQYWNrYWdlIgorW1NvdXJjZSBGaWxlc10KK1NvdXJjZT0iLi4vcHJvZy5jIgorU291cmNlPSIuLi9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLmMiCitTb3VyY2U9Ii4uL1RhbGtlci5jIgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvaGVsbG8ubW9kLnNjaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2hlbGxvLm1vZC5zY2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2hlbGxvLm1vZC5zY2gKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2hlbGxvX21vZC5jbGFzcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2hlbGxvX21vZC5jbGFzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODA2ZTYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvaGVsbG9fbW9kLmNsYXNzCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2hlbGxvX21vZC5qYXZhIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvaGVsbG9fbW9kLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGNjNmRkZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2hlbGxvX21vZC5qYXZhCkBAIC0wLDAgKzEsMjgxIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworaW1wb3J0IGphdmEudXRpbC4qOworaW1wb3J0IG9yZy5tb3ppbGxhLmphdmFzY3JpcHQuKjsKK2ltcG9ydCB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci4qOworaW1wb3J0IHhkYy5zZXJ2aWNlcy5zcGVjLio7CisKK3B1YmxpYyBjbGFzcyBoZWxsb19tb2QKK3sKKyAgICBzdGF0aWMgZmluYWwgU3RyaW5nIFZFUlMgPSAiQCgjKSB4ZGMtdDMyXG4iOworCisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfQm9vbCA9IFByb3RvLkVsbS5uZXdCb29sKCk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfTnVtID0gUHJvdG8uRWxtLm5ld051bSgpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX1N0ciA9IFByb3RvLkVsbS5uZXdTdHIoKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9PYmogPSBQcm90by5FbG0ubmV3T2JqKCk7CisKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRnhuICQkVF9NZXQgPSBuZXcgUHJvdG8uRnhuKG51bGwsIG51bGwsIDAsIC0xLCBmYWxzZSk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLk1hcCAkJFRfTWFwID0gbmV3IFByb3RvLk1hcCgkJFRfT2JqKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uQXJyICQkVF9WZWMgPSBuZXcgUHJvdG8uQXJyKCQkVF9PYmopOworCisgICAgc3RhdGljIGZpbmFsIFhTY3JpcHRPICQkREVGQVVMVCA9IFZhbHVlLkRFRkFVTFQ7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJFVOREVGID0gVW5kZWZpbmVkLmluc3RhbmNlOworCisgICAgc3RhdGljIGZpbmFsIFByb3RvLk9iaiAkJFBhY2thZ2UgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkUGFja2FnZSIpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRNb2R1bGUgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkTW9kdWxlIik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLk9iaiAkJEluc3RhbmNlID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJEluc3RhbmNlIik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLk9iaiAkJFBhcmFtcyA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRQYXJhbXMiKTsKKworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRvYmpGbGRHZXQgPSBHbG9iYWwuZ2V0KCIkJG9iakZsZEdldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRvYmpGbGRTZXQgPSBHbG9iYWwuZ2V0KCIkJG9iakZsZFNldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRwcm94eUdldCA9IEdsb2JhbC5nZXQoIiQkcHJveHlHZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkcHJveHlTZXQgPSBHbG9iYWwuZ2V0KCIkJHByb3h5U2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJGRlbGVnR2V0ID0gR2xvYmFsLmdldCgiJCRkZWxlZ0dldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRkZWxlZ1NldCA9IEdsb2JhbC5nZXQoIiQkZGVsZWdTZXQiKTsKKworICAgIFNjcmlwdGFibGUgeGRjTzsKKyAgICBTZXNzaW9uIHNlczsKKyAgICBWYWx1ZS5PYmogb207CisKKyAgICBib29sZWFuIGlzUk9WOworICAgIGJvb2xlYW4gaXNDRkc7CisKKyAgICBQcm90by5PYmogcGtnUDsKKyAgICBWYWx1ZS5PYmogcGtnVjsKKworICAgIEFycmF5TGlzdDxPYmplY3Q+IGltcG9ydHMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBsb2dnYWJsZXMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBtY2ZncyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IHByb3hpZXMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBzaXplcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IHRkZWZzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisKKyAgICB2b2lkICQkSU1QT1JUUygpCisgICAgeworICAgICAgICBHbG9iYWwuY2FsbEZ4bigibG9hZFBhY2thZ2UiLCB4ZGNPLCAieGRjIik7CisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJsb2FkUGFja2FnZSIsIHhkY08sICJ4ZGMuY29yZXZlcnMiKTsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImxvYWRQYWNrYWdlIiwgeGRjTywgInhkYy5ydW50aW1lIik7CisgICAgfQorCisgICAgdm9pZCAkJE9CSkVDVFMoKQorICAgIHsKKyAgICAgICAgcGtnUCA9IChQcm90by5PYmopb20uYmluZCgiaGVsbG8ubW9kLlBhY2thZ2UiLCBuZXcgUHJvdG8uT2JqKCkpOworICAgICAgICBwa2dWID0gKFZhbHVlLk9iailvbS5iaW5kKCJoZWxsby5tb2QiLCBuZXcgVmFsdWUuT2JqKCJoZWxsby5tb2QiLCBwa2dQKSk7CisgICAgfQorCisgICAgdm9pZCBUYWxrZXIkJE9CSkVDVFMoKQorICAgIHsKKyAgICAgICAgUHJvdG8uT2JqIHBvLCBzcG87CisgICAgICAgIFZhbHVlLk9iaiB2bzsKKworICAgICAgICBwbyA9IChQcm90by5PYmopb20uYmluZCgiaGVsbG8ubW9kLlRhbGtlci5Nb2R1bGUiLCBuZXcgUHJvdG8uT2JqKCkpOworICAgICAgICB2byA9IChWYWx1ZS5PYmopb20uYmluZCgiaGVsbG8ubW9kLlRhbGtlciIsIG5ldyBWYWx1ZS5PYmooImhlbGxvLm1vZC5UYWxrZXIiLCBwbykpOworICAgICAgICBwa2dWLmJpbmQoIlRhbGtlciIsIHZvKTsKKyAgICAgICAgLy8gZGVjbHMgCisgICAgfQorCisgICAgdm9pZCBUYWxrZXIkJENPTlNUUygpCisgICAgeworICAgICAgICAvLyBtb2R1bGUgVGFsa2VyCisgICAgICAgIG9tLmJpbmQoImhlbGxvLm1vZC5UYWxrZXIucHJpbnQiLCBuZXcgRXh0ZXJuKCJoZWxsb19tb2RfVGFsa2VyX3ByaW50X19FIiwgInhkY19Wb2lkKCopKHhkY19Wb2lkKSIsIHRydWUsIGZhbHNlLCAiaGVsbG8ubW9kLlRhbGtlci5wcmludCIpKTsKKyAgICB9CisKKyAgICB2b2lkIFRhbGtlciQkQ1JFQVRFUygpCisgICAgeworICAgICAgICBQcm90by5GeG4gZnhuOworICAgICAgICBTdHJpbmdCdWlsZGVyIHNiOworCisgICAgfQorCisgICAgdm9pZCBUYWxrZXIkJEZVTkNUSU9OUygpCisgICAgeworICAgICAgICBQcm90by5GeG4gZnhuOworCisgICAgfQorCisgICAgdm9pZCBUYWxrZXIkJFNJWkVTKCkKKyAgICB7CisgICAgICAgIFByb3RvLlN0ciBzbzsKKyAgICAgICAgT2JqZWN0IGZ4bjsKKworICAgIH0KKworICAgIHZvaWQgVGFsa2VyJCRUWVBFUygpCisgICAgeworICAgICAgICBTY3JpcHRhYmxlIGNhcDsKKyAgICAgICAgUHJvdG8uT2JqIHBvOworICAgICAgICBQcm90by5TdHIgcHM7CisgICAgICAgIFByb3RvLlR5cGVkZWYgcHQ7CisgICAgICAgIE9iamVjdCBmeG47CisKKyAgICAgICAgY2FwID0gKFNjcmlwdGFibGUpR2xvYmFsLmNhbGxGeG4oImxvYWRDYXBzdWxlIiwgeGRjTywgImhlbGxvL21vZC9UYWxrZXIueHMiKTsKKyAgICAgICAgb20uYmluZCgiaGVsbG8ubW9kLlRhbGtlciQkY2Fwc3VsZSIsIGNhcCk7CisgICAgICAgIHBvID0gKFByb3RvLk9iailvbS5maW5kKCJoZWxsby5tb2QuVGFsa2VyLk1vZHVsZSIpOworICAgICAgICBwby5pbml0KCJoZWxsby5tb2QuVGFsa2VyLk1vZHVsZSIsIG9tLmZpbmQoInhkYy5ydW50aW1lLklNb2R1bGUuTW9kdWxlIikpOworICAgICAgICAgICAgICAgIHBvLmFkZEZsZCgiJGhvc3Rvbmx5IiwgJCRUX051bSwgMCwgInIiKTsKKyAgICAgICAgaWYgKGlzQ0ZHKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwby5hZGRGbGQoInRleHQiLCAkJFRfU3RyLCAiSGVsbG8gV29ybGQiLCAidyIpOworICAgICAgICAgICAgICAgICAgICAgICAgcG8uYWRkRmxkKCJjb3VudCIsIFByb3RvLkVsbS5uZXdDTnVtKCIoeGRjX0ludCkiKSwgMUwsICJ3Iik7CisgICAgICAgIH0vL2lzQ0ZHCisgICAgICAgICAgICAgICAgZnhuID0gR2xvYmFsLmdldChjYXAsICJtb2R1bGUkdXNlIik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBvbS5iaW5kKCJoZWxsby5tb2QuVGFsa2VyJCRtb2R1bGUkdXNlIiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwby5hZGRGeG4oIm1vZHVsZSR1c2UiLCAkJFRfTWV0LCBmeG4pOworICAgICAgICAgICAgICAgIGZ4biA9IEdsb2JhbC5nZXQoY2FwLCAibW9kdWxlJG1ldGEkaW5pdCIpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgb20uYmluZCgiaGVsbG8ubW9kLlRhbGtlciQkbW9kdWxlJG1ldGEkaW5pdCIsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgcG8uYWRkRnhuKCJtb2R1bGUkbWV0YSRpbml0IiwgJCRUX01ldCwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgIm1vZHVsZSRzdGF0aWMkaW5pdCIpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgb20uYmluZCgiaGVsbG8ubW9kLlRhbGtlciQkbW9kdWxlJHN0YXRpYyRpbml0IiwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBwby5hZGRGeG4oIm1vZHVsZSRzdGF0aWMkaW5pdCIsICQkVF9NZXQsIGZ4bik7CisgICAgICAgICAgICAgICAgZnhuID0gR2xvYmFsLmdldChjYXAsICJtb2R1bGUkdmFsaWRhdGUiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIG9tLmJpbmQoImhlbGxvLm1vZC5UYWxrZXIkJG1vZHVsZSR2YWxpZGF0ZSIsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgcG8uYWRkRnhuKCJtb2R1bGUkdmFsaWRhdGUiLCAkJFRfTWV0LCBmeG4pOworICAgIH0KKworICAgIHZvaWQgVGFsa2VyJCRST1YoKQorICAgIHsKKyAgICAgICAgUHJvdG8uT2JqIHBvOworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgdm8gPSAoVmFsdWUuT2JqKW9tLmZpbmQoImhlbGxvLm1vZC5UYWxrZXIiKTsKKyAgICB9CisKKyAgICB2b2lkICQkU0lOR0xFVE9OUygpCisgICAgeworICAgICAgICBwa2dQLmluaXQoImhlbGxvLm1vZC5QYWNrYWdlIiwgKFByb3RvLk9iailvbS5maW5kKCJ4ZGMuSVBhY2thZ2UuTW9kdWxlIikpOworICAgICAgICBwa2dQLmJpbmQoIiRjYXBzdWxlIiwgJCRVTkRFRik7CisgICAgICAgIHBrZ1YuaW5pdDIocGtnUCwgImhlbGxvLm1vZCIsIFZhbHVlLkRFRkFVTFQsIGZhbHNlKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkbmFtZSIsICJoZWxsby5tb2QiKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkY2F0ZWdvcnkiLCAiUGFja2FnZSIpOworICAgICAgICBwa2dWLmJpbmQoIiQkcW4iLCAiaGVsbG8ubW9kLiIpOworICAgICAgICBwa2dWLmJpbmQoIiR2ZXJzIiwgR2xvYmFsLm5ld0FycmF5KCkpOworICAgICAgICBWYWx1ZS5NYXAgYXRtYXAgPSAoVmFsdWUuTWFwKXBrZ1YuZ2V0digiJGF0dHIiKTsKKyAgICAgICAgYXRtYXAuc2VhbCgibGVuZ3RoIik7CisgICAgICAgIGltcG9ydHMuY2xlYXIoKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkaW1wb3J0cyIsIGltcG9ydHMpOworICAgICAgICBTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKKyAgICAgICAgc2IuYXBwZW5kKCJ2YXIgcGtnID0geGRjLm9tWydoZWxsby5tb2QnXTtcbiIpOworICAgICAgICBzYi5hcHBlbmQoImlmIChwa2cuJHZlcnMubGVuZ3RoID49IDMpIHtcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCJwa2cuJHZlcnMucHVzaChQYWNrYWdlcy54ZGMuc2VydmljZXMuZ2xvYmFsLlZlcnMuZ2V0RGF0ZSh4ZGMuY3NkKCkgKyAnLy4uJykpO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgifVxuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYnJhcmllcyA9IFtcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCInbGliL2hlbGxvLm1vZC5hODZHVycsXG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiJ2xpYi9oZWxsby5tb2QuYTY0UCcsXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2MgPSBbXG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiWydsaWIvaGVsbG8ubW9kLmE4NkdXJywge3RhcmdldDogJ2dudS50YXJnZXRzLk1pbmd3J31dLFxuIik7CisgICAgICAgICAgICBzYi5hcHBlbmQoIlsnbGliL2hlbGxvLm1vZC5hNjRQJywge3RhcmdldDogJ3RpLnRhcmdldHMuQzY0UCd9XSxcbiIpOworICAgICAgICBzYi5hcHBlbmQoIl07XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJpZignc3VmZml4JyBpbiB4ZGMub21bJ3hkYy5JUGFja2FnZSQkTGliRGVzYyddKSB7XG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2NbJ2xpYi9oZWxsby5tb2QuYTg2R1cnXS5zdWZmaXggPSAnODZHVyc7XG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2NbJ2xpYi9oZWxsby5tb2QuYTY0UCddLnN1ZmZpeCA9ICc2NFAnO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgifVxuIik7CisgICAgICAgIEdsb2JhbC5ldmFsKHNiLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHZvaWQgVGFsa2VyJCRTSU5HTEVUT05TKCkKKyAgICB7CisgICAgICAgIFByb3RvLk9iaiBwbzsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIHZvID0gKFZhbHVlLk9iailvbS5maW5kKCJoZWxsby5tb2QuVGFsa2VyIik7CisgICAgICAgIHBvID0gKFByb3RvLk9iailvbS5maW5kKCJoZWxsby5tb2QuVGFsa2VyLk1vZHVsZSIpOworICAgICAgICB2by5pbml0MihwbywgImhlbGxvLm1vZC5UYWxrZXIiLCAkJERFRkFVTFQsIGZhbHNlKTsKKyAgICAgICAgdm8uYmluZCgiTW9kdWxlIiwgcG8pOworICAgICAgICB2by5iaW5kKCIkY2F0ZWdvcnkiLCAiTW9kdWxlIik7CisgICAgICAgIHZvLmJpbmQoIiRjYXBzdWxlIiwgb20uZmluZCgiaGVsbG8ubW9kLlRhbGtlciQkY2Fwc3VsZSIpKTsKKyAgICAgICAgdm8uYmluZCgiJHBhY2thZ2UiLCBvbS5maW5kKCJoZWxsby5tb2QiKSk7CisgICAgICAgIHRkZWZzLmNsZWFyKCk7CisgICAgICAgIHByb3hpZXMuY2xlYXIoKTsKKyAgICAgICAgbWNmZ3MuY2xlYXIoKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2RpYWdzRW5hYmxlZCIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fZGlhZ3NNYXNrIik7CisgICAgICAgIG1jZmdzLmFkZCgiTW9kdWxlX19nYXRlT2JqIik7CisgICAgICAgIG1jZmdzLmFkZCgiTW9kdWxlX19nYXRlUHJtcyIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9faWQiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2xvZ2dlckRlZmluZWQiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2xvZ2dlck9iaiIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fbG9nZ2VyRnhuNCIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fbG9nZ2VyRnhuOCIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fc3RhcnR1cERvbmVGeG4iKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJPYmplY3RfX2NvdW50Iik7CisgICAgICAgIG1jZmdzLmFkZCgiT2JqZWN0X19oZWFwIik7CisgICAgICAgIG1jZmdzLmFkZCgiT2JqZWN0X19zaXplb2YiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJPYmplY3RfX3RhYmxlIik7CisgICAgICAgIG1jZmdzLmFkZCgidGV4dCIpOworICAgICAgICBtY2Zncy5hZGQoImNvdW50Iik7CisgICAgICAgIHZvLmJpbmQoIiQkdGRlZnMiLCBHbG9iYWwubmV3QXJyYXkodGRlZnMudG9BcnJheSgpKSk7CisgICAgICAgIHZvLmJpbmQoIiQkcHJveGllcyIsIEdsb2JhbC5uZXdBcnJheShwcm94aWVzLnRvQXJyYXkoKSkpOworICAgICAgICB2by5iaW5kKCIkJG1jZmdzIiwgR2xvYmFsLm5ld0FycmF5KG1jZmdzLnRvQXJyYXkoKSkpOworICAgICAgICAoKFZhbHVlLkFycilwa2dWLmdldHYoIiRtb2R1bGVzIikpLmFkZCh2byk7CisgICAgICAgICgoVmFsdWUuQXJyKW9tLmZpbmQoIiRtb2R1bGVzIikpLmFkZCh2byk7CisgICAgICAgIHZvLmJpbmQoIiQkaW5zdGZsYWciLCAwKTsKKyAgICAgICAgdm8uYmluZCgiJCRpb2JqZmxhZyIsIDApOworICAgICAgICB2by5iaW5kKCIkJHNpemVmbGFnIiwgMSk7CisgICAgICAgIHZvLmJpbmQoIiQkZGxnZmxhZyIsIDApOworICAgICAgICB2by5iaW5kKCIkJGlmbGFnIiwgMCk7CisgICAgICAgIHZvLmJpbmQoIiQkcm9tY2ZncyIsICJ8Iik7CisgICAgICAgIGlmIChpc0NGRykgeworICAgICAgICAgICAgUHJvdG8uU3RyIHBzID0gKFByb3RvLlN0cil2by5maW5kKCJNb2R1bGVfU3RhdGUiKTsKKyAgICAgICAgICAgIGlmIChwcyAhPSBudWxsKSB2by5iaW5kKCIkb2JqZWN0IiwgcHMubmV3SW5zdGFuY2UoKSk7CisgICAgICAgICAgICB2by5iaW5kKCIkJG1ldGFfaW9iaiIsIDEpOworICAgICAgICB9Ly9pc0NGRworICAgICAgICB2by5iaW5kKCJwcmludCIsIG9tLmZpbmQoImhlbGxvLm1vZC5UYWxrZXIucHJpbnQiKSk7CisgICAgICAgIHZvLmJpbmQoIiQkZnhudGFiIiwgR2xvYmFsLm5ld0FycmF5KCJoZWxsb19tb2RfVGFsa2VyX0hhbmRsZV9fbGFiZWxfX0UiLCAiaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19FIiwgImhlbGxvX21vZF9UYWxrZXJfT2JqZWN0X19jcmVhdGVfX0UiLCAiaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2RlbGV0ZV9fRSIsICJoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fZGVzdHJ1Y3RfX0UiLCAiaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX2dldF9fRSIsICJoZWxsb19tb2RfVGFsa2VyX09iamVjdF9fZmlyc3RfX0UiLCAiaGVsbG9fbW9kX1RhbGtlcl9PYmplY3RfX25leHRfX0UiLCAiaGVsbG9fbW9kX1RhbGtlcl9QYXJhbXNfX2luaXRfX0UiLCAiaGVsbG9fbW9kX1RhbGtlcl9Qcm94eV9fYWJzdHJhY3RfX0UiLCAiaGVsbG9fbW9kX1RhbGtlcl9Qcm94eV9fZGVsZWdhdGVfX0UiLCAiaGVsbG9fbW9kX1RhbGtlcl9wcmludF9fRSIpKTsKKyAgICAgICAgdm8uYmluZCgiJCRsb2dFdnRDZmdzIiwgR2xvYmFsLm5ld0FycmF5KCkpOworICAgICAgICB2by5iaW5kKCIkJGVycm9yRGVzY0NmZ3MiLCBHbG9iYWwubmV3QXJyYXkoKSk7CisgICAgICAgIHZvLmJpbmQoIiQkYXNzZXJ0RGVzY0NmZ3MiLCBHbG9iYWwubmV3QXJyYXkoKSk7CisgICAgICAgIFZhbHVlLk1hcCBhdG1hcCA9IChWYWx1ZS5NYXApdm8uZ2V0digiJGF0dHIiKTsKKyAgICAgICAgYXRtYXAuc2VhbCgibGVuZ3RoIik7CisgICAgICAgIHZvLmJpbmQoIk1PRFVMRV9TVEFSVFVQJCIsIDApOworICAgICAgICB2by5iaW5kKCJQUk9YWSQiLCAwKTsKKyAgICAgICAgbG9nZ2FibGVzLmNsZWFyKCk7CisgICAgICAgIGxvZ2dhYmxlcy5hZGQoR2xvYmFsLm5ld09iamVjdCgibmFtZSIsICJwcmludCIsICJlbnRyeSIsICIiLCAiZXhpdCIsICIiKSk7CisgICAgICAgIHZvLmJpbmQoIiQkbG9nZ2FibGVzIiwgbG9nZ2FibGVzLnRvQXJyYXkoKSk7CisgICAgICAgIHBrZ1YuYmluZCgiVGFsa2VyIiwgdm8pOworICAgICAgICAoKFZhbHVlLkFycilwa2dWLmdldHYoIiR1bml0TmFtZXMiKSkuYWRkKCJUYWxrZXIiKTsKKyAgICB9CisKKyAgICB2b2lkICQkSU5JVElBTElaQVRJT04oKQorICAgIHsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIGlmIChpc0NGRykgeworICAgICAgICB9Ly9pc0NGRworICAgICAgICBHbG9iYWwuY2FsbEZ4bigibW9kdWxlJG1ldGEkaW5pdCIsIChTY3JpcHRhYmxlKW9tLmZpbmQoImhlbGxvLm1vZC5UYWxrZXIiKSk7CisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJpbml0IiwgcGtnVik7CisgICAgICAgICgoVmFsdWUuT2JqKW9tLmdldHYoImhlbGxvLm1vZC5UYWxrZXIiKSkuYmxlc3MoKTsKKyAgICAgICAgKChWYWx1ZS5BcnIpb20uZmluZCgiJHBhY2thZ2VzIikpLmFkZChwa2dWKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBleGVjKCBTY3JpcHRhYmxlIHhkY08sIFNlc3Npb24gc2VzICkKKyAgICB7CisgICAgICAgIHRoaXMueGRjTyA9IHhkY087CisgICAgICAgIHRoaXMuc2VzID0gc2VzOworICAgICAgICBvbSA9IChWYWx1ZS5PYmopeGRjTy5nZXQoIm9tIiwgbnVsbCk7CisKKyAgICAgICAgT2JqZWN0IG8gPSBvbS5nZXRvKCIkbmFtZSIpOworICAgICAgICBTdHJpbmcgcyA9IG8gaW5zdGFuY2VvZiBTdHJpbmcgPyAoU3RyaW5nKW8gOiBudWxsOworICAgICAgICBpc0NGRyA9IHMgIT0gbnVsbCAmJiBzLmVxdWFscygiY2ZnIik7CisgICAgICAgIGlzUk9WID0gcyAhPSBudWxsICYmIHMuZXF1YWxzKCJyb3YiKTsKKworICAgICAgICAkJElNUE9SVFMoKTsKKyAgICAgICAgJCRPQkpFQ1RTKCk7CisgICAgICAgIFRhbGtlciQkT0JKRUNUUygpOworICAgICAgICBUYWxrZXIkJENPTlNUUygpOworICAgICAgICBUYWxrZXIkJENSRUFURVMoKTsKKyAgICAgICAgVGFsa2VyJCRGVU5DVElPTlMoKTsKKyAgICAgICAgVGFsa2VyJCRTSVpFUygpOworICAgICAgICBUYWxrZXIkJFRZUEVTKCk7CisgICAgICAgIGlmIChpc1JPVikgeworICAgICAgICAgICAgVGFsa2VyJCRST1YoKTsKKyAgICAgICAgfS8vaXNST1YKKyAgICAgICAgJCRTSU5HTEVUT05TKCk7CisgICAgICAgIFRhbGtlciQkU0lOR0xFVE9OUygpOworICAgICAgICAkJElOSVRJQUxJWkFUSU9OKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvaW50ZXJuYWwvVGFsa2VyLnhkYy5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvaW50ZXJuYWwvVGFsa2VyLnhkYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ZmM2MjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9pbnRlcm5hbC9UYWxrZXIueGRjLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2lmbmRlZiBoZWxsb19tb2RfVGFsa2VyX19JTlRFUk5BTF9fCisjZGVmaW5lIGhlbGxvX21vZF9UYWxrZXJfX0lOVEVSTkFMX18KKworI2lmbmRlZiBoZWxsb19tb2RfVGFsa2VyX19pbnRlcm5hbGFjY2VzcworI2RlZmluZSBoZWxsb19tb2RfVGFsa2VyX19pbnRlcm5hbGFjY2VzcworI2VuZGlmCisKKyNpbmNsdWRlIDxoZWxsby9tb2QvVGFsa2VyLmg+CisKKyN1bmRlZiB4ZGNfRklMRV9fCisjaWZuZGVmIHhkY19GSUxFCisjZGVmaW5lIHhkY19GSUxFX18gTlVMTAorI2Vsc2UKKyNkZWZpbmUgeGRjX0ZJTEVfXyB4ZGNfRklMRQorI2VuZGlmCisKKy8qIHByaW50ICovCisjdW5kZWYgaGVsbG9fbW9kX1RhbGtlcl9wcmludAorI2RlZmluZSBoZWxsb19tb2RfVGFsa2VyX3ByaW50IGhlbGxvX21vZF9UYWxrZXJfcHJpbnRfX0YKKworLyogTW9kdWxlX3N0YXJ0dXAgKi8KKyN1bmRlZiBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9zdGFydHVwCisjZGVmaW5lIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX3N0YXJ0dXAgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfc3RhcnR1cF9fRgorCisvKiBJbnN0YW5jZV9pbml0ICovCisjdW5kZWYgaGVsbG9fbW9kX1RhbGtlcl9JbnN0YW5jZV9pbml0CisjZGVmaW5lIGhlbGxvX21vZF9UYWxrZXJfSW5zdGFuY2VfaW5pdCBoZWxsb19tb2RfVGFsa2VyX0luc3RhbmNlX2luaXRfX0YKKworLyogSW5zdGFuY2VfZmluYWxpemUgKi8KKyN1bmRlZiBoZWxsb19tb2RfVGFsa2VyX0luc3RhbmNlX2ZpbmFsaXplCisjZGVmaW5lIGhlbGxvX21vZF9UYWxrZXJfSW5zdGFuY2VfZmluYWxpemUgaGVsbG9fbW9kX1RhbGtlcl9JbnN0YW5jZV9maW5hbGl6ZV9fRgorCisvKiBwZXItbW9kdWxlIHJ1bnRpbWUgc3ltYm9scyAqLworI3VuZGVmIE1vZHVsZV9fTUlECisjZGVmaW5lIE1vZHVsZV9fTUlEIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19pZF9fQworI3VuZGVmIE1vZHVsZV9fREdTSU5DTAorI2RlZmluZSBNb2R1bGVfX0RHU0lOQ0wgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MKKyN1bmRlZiBNb2R1bGVfX0RHU0VOQUIKKyNkZWZpbmUgTW9kdWxlX19ER1NFTkFCIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MKKyN1bmRlZiBNb2R1bGVfX0RHU01BU0sKKyNkZWZpbmUgTW9kdWxlX19ER1NNQVNLIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19kaWFnc01hc2tfX0MKKyN1bmRlZiBNb2R1bGVfX0xPR0RFRgorI2RlZmluZSBNb2R1bGVfX0xPR0RFRiBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQworI3VuZGVmIE1vZHVsZV9fTE9HT0JKCisjZGVmaW5lIE1vZHVsZV9fTE9HT0JKIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJPYmpfX0MKKyN1bmRlZiBNb2R1bGVfX0xPR0ZYTjQKKyNkZWZpbmUgTW9kdWxlX19MT0dGWE40IGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19sb2dnZXJGeG40X19DCisjdW5kZWYgTW9kdWxlX19MT0dGWE44CisjZGVmaW5lIE1vZHVsZV9fTE9HRlhOOCBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fbG9nZ2VyRnhuOF9fQworI3VuZGVmIE1vZHVsZV9fR19PQkoKKyNkZWZpbmUgTW9kdWxlX19HX09CSiBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9fZ2F0ZU9ial9fQworI3VuZGVmIE1vZHVsZV9fR19QUk1TCisjZGVmaW5lIE1vZHVsZV9fR19QUk1TIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX19nYXRlUHJtc19fQworI3VuZGVmIE1vZHVsZV9fR1BfY3JlYXRlCisjZGVmaW5lIE1vZHVsZV9fR1BfY3JlYXRlIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX0dhdGVQcm94eV9jcmVhdGUKKyN1bmRlZiBNb2R1bGVfX0dQX2RlbGV0ZQorI2RlZmluZSBNb2R1bGVfX0dQX2RlbGV0ZSBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9HYXRlUHJveHlfZGVsZXRlCisjdW5kZWYgTW9kdWxlX19HUF9lbnRlcgorI2RlZmluZSBNb2R1bGVfX0dQX2VudGVyIGhlbGxvX21vZF9UYWxrZXJfTW9kdWxlX0dhdGVQcm94eV9lbnRlcgorI3VuZGVmIE1vZHVsZV9fR1BfbGVhdmUKKyNkZWZpbmUgTW9kdWxlX19HUF9sZWF2ZSBoZWxsb19tb2RfVGFsa2VyX01vZHVsZV9HYXRlUHJveHlfbGVhdmUKKyN1bmRlZiBNb2R1bGVfX0dQX3F1ZXJ5CisjZGVmaW5lIE1vZHVsZV9fR1BfcXVlcnkgaGVsbG9fbW9kX1RhbGtlcl9Nb2R1bGVfR2F0ZVByb3h5X3F1ZXJ5CisKKworI2VuZGlmIC8qIGhlbGxvX21vZF9UYWxrZXJfX0lOVEVSTkFMX19fXyAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm82NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45N2E2NDIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm82NFAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm82NFAuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4NDFhNjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzY0UC5kZXAKQEAgLTAsMCArMSwzNiBAQAorcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzY0UDogVGFsa2VyLmMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oIC4vcGFja2FnZS9pbnRlcm5hbC9UYWxrZXIueGRjLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaCBUYWxrZXIuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmggcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oIA0KK1RhbGtlci5jOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaDoNCisuL3BhY2thZ2UvaW50ZXJuYWwvVGFsa2VyLnhkYy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Lmg6DQorVGFsa2VyLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkYXJnLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkZGVmLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oOg0KK3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW50Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzg2R1cgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzg2R1cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzU5ODFhMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL1RhbGtlci5vODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9UYWxrZXIubzg2R1cuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm84NkdXLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTVhZGE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvVGFsa2VyLm84NkdXLmRlcApAQCAtMCwwICsxLDMzIEBACitwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kLy9UYWxrZXIubzg2R1c6IFRhbGtlci5jIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaCAuL3BhY2thZ2UvaW50ZXJuYWwvVGFsa2VyLnhkYy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5LmggVGFsa2VyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaCBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5LmggDQorVGFsa2VyLmM6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oOg0KKy4vcGFja2FnZS9pbnRlcm5hbC9UYWxrZXIueGRjLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaDoNCitUYWxrZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oOg0KK3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm82NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm82NFAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQwNmE1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QubzY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm82NFAuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vNjRQLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzBlN2U5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vNjRQLmRlcApAQCAtMCwwICsxLDcgQEAKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vNjRQOiBwYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLmMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCANCitwYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLmM6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm84NkdXIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lM2QzOGUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5vODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm84NkdXLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2Qubzg2R1cuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZhOWY0YWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm84NkdXLmRlcApAQCAtMCwwICsxLDQgQEAKK3BhY2thZ2UvbGliL2xpYi9oZWxsby5tb2QvcGFja2FnZS8vcGFja2FnZV9oZWxsby5tb2Qubzg2R1c6IHBhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QuYyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9zdGQuaCANCitwYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLmM6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvc3RkLmg6DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcGFja2FnZS5ibGQueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxY2M4ODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKQEAgLTAsMCArMSwxMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBUaGlzIGZpbGUgY29uZm9ybXMgdG8gdGhlIERURCB4ZGMvYmxkL2J1aWxkLmR0ZCAtLT4KKzxwYWNrYWdlIG5hbWU9ImhlbGxvLm1vZCIgdmVyc2lvbj0iIiBwcm9kdWNlcklkPSJ1bmRlZmluZWQiPgorICAgIDx1bml0cz4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJUYWxrZXIiLz4KKyAgICA8L3VuaXRzPgorICAgIDxzb3VyY2VzPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwcm9nLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJUYWxrZXIuYyIvPgorICAgIDwvc291cmNlcz4KKyAgICA8Y29uZmlndXJhdGlvbnM+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InByb2cuY2ZnIi8+CisgICAgPC9jb25maWd1cmF0aW9ucz4KKyAgICA8bWFrZWZpbGVzPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlLm1hayIgc3JjPSJwYWNrYWdlLmJsZCIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UueGRjLmRlcCIgc3JjPSJwYWNrYWdlLnhkYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJsaWIvaGVsbG8ubW9kLmE4NkdXLm1hayIgc3JjPSJwYWNrYWdlLmJsZCIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL1RhbGtlci5vODZHVy5kZXAiIHNyYz0iVGFsa2VyLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9saWIvbGliL2hlbGxvLm1vZC9wYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLm84NkdXLmRlcCIgc3JjPSJwYWNrYWdlL3BhY2thZ2VfaGVsbG8ubW9kLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0ibGliL2hlbGxvLm1vZC5hNjRQLm1hayIgc3JjPSJwYWNrYWdlLmJsZCIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL1RhbGtlci5vNjRQLmRlcCIgc3JjPSJUYWxrZXIuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2xpYi9saWIvaGVsbG8ubW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QubzY0UC5kZXAiIHNyYz0icGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFAuZGVwIiBzcmM9InByb2cuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UC5kZXAiIHNyYz0icGFja2FnZS9jZmcvcHJvZ194NjRQLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZ194NjRQLmRlcCIgc3JjPSJwYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubWFrIiBzcmM9InBhY2thZ2UuYmxkIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vODZHVy5kZXAiIHNyYz0icHJvZy5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1cuZGVwIiBzcmM9InBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmRlcCIgc3JjPSJwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3JlbC9oZWxsb19tb2QudGFyLmRlcCIgc3JjPSJwYWNrYWdlL3JlbC9oZWxsb19tb2QueGRjLmluYyIvPgorICAgIDwvbWFrZWZpbGVzPgorICAgIDx0YXJnZXRzPgorICAgICAgICA8dGFyZ2V0IG5hbWU9InRpLnRhcmdldHMuQzY0UCIKKyAgICAgICAgICAgIHZlcnNpb249InRpLnRhcmdldHMuQzY0UHsxLDAsNi4xLDUiCisgICAgICAgICAgICBwbGF0Zm9ybT0idGkucGxhdGZvcm1zLnNpbTY0UHh4IgorICAgICAgICAgICAgaXNhPSI2NFAiCisgICAgICAgICAgICBzdWZmaXg9IjY0UCIKKyAgICAgICAgICAgIHJvb3REaXI9ImQ6L3RpL2M2MDAwL2FsYyIKKyAgICAgICAgICAgIG9zPSJ1bmRlZmluZWQiCisgICAgICAgICAgICBydHM9InRpLnRhcmdldHMucnRzNjAwMCI+CisgICAgICAgICAgICA8bW9kZWwgZW5kaWFuPSJsaXR0bGUiCisgICAgICAgICAgICAgICAgY29kZU1vZGVsPSJ1bmRlZmluZWQiCisgICAgICAgICAgICAgICAgZGF0YU1vZGVsPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgPC90YXJnZXQ+CisgICAgICAgIDx0YXJnZXQgbmFtZT0iZ251LnRhcmdldHMuTWluZ3ciCisgICAgICAgICAgICB2ZXJzaW9uPSJnbnUudGFyZ2V0cy5NaW5nd3sxLDAsMy40LDUiCisgICAgICAgICAgICBwbGF0Zm9ybT0iaG9zdC5wbGF0Zm9ybXMuUEMiCisgICAgICAgICAgICBpc2E9Ing4NiIKKyAgICAgICAgICAgIHN1ZmZpeD0iODZHVyIKKyAgICAgICAgICAgIHJvb3REaXI9ImU6L3J0c2MvbWluZ3ciCisgICAgICAgICAgICBvcz0iV2luZG93cyIKKyAgICAgICAgICAgIHJ0cz0iZ251LnRhcmdldHMucnRzODZHVyI+CisgICAgICAgICAgICA8bW9kZWwgZW5kaWFuPSJsaXR0bGUiCisgICAgICAgICAgICAgICAgY29kZU1vZGVsPSJ1bmRlZmluZWQiCisgICAgICAgICAgICAgICAgZGF0YU1vZGVsPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgPC90YXJnZXQ+CisgICAgPC90YXJnZXRzPgorICAgIDxsaWJyYXJpZXM+CisgICAgPGxpYnJhcnkgbmFtZT0ibGliL2hlbGxvLm1vZCIKKyAgICAgICAgcG5hbWU9ImxpYi9oZWxsby5tb2QuYTg2R1ciCisgICAgICAgIHByb2ZpbGU9InJlbGVhc2UiCisgICAgICAgIHRhcmdldD0iZ251LnRhcmdldHMuTWluZ3ciLz4KKyAgICA8bGlicmFyeSBuYW1lPSJsaWIvaGVsbG8ubW9kIgorICAgICAgICBwbmFtZT0ibGliL2hlbGxvLm1vZC5hNjRQIgorICAgICAgICBwcm9maWxlPSJyZWxlYXNlIgorICAgICAgICB0YXJnZXQ9InRpLnRhcmdldHMuQzY0UCIvPgorICAgIDwvbGlicmFyaWVzPgorICAgIDxleGVjdXRhYmxlcz4KKyAgICA8ZXhlY3V0YWJsZSBuYW1lPSJwcm9nIgorICAgICAgICBwbmFtZT0icHJvZy54NjRQIgorICAgICAgICB0YXJnZXQ9InRpLnRhcmdldHMuQzY0UCIKKyAgICAgICAgcGxhdGZvcm09InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICAgICAgcHJvZmlsZT0icmVsZWFzZSIKKyAgICAgICAgeENmZ1NjcmlwdD0icGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZyIKKyAgICAgICAgeENmZ1ByZWZpeD0icGFja2FnZS9jZmcvcHJvZ194NjRQIgorICAgICAgICBjZmdTY3JpcHQ9InByb2cuY2ZnIgorICAgICAgICAvPgorICAgIDxleGVjdXRhYmxlIG5hbWU9InByb2ciCisgICAgICAgIHBuYW1lPSJwcm9nLng4NkdXIgorICAgICAgICB0YXJnZXQ9ImdudS50YXJnZXRzLk1pbmd3IgorICAgICAgICBwbGF0Zm9ybT0iaG9zdC5wbGF0Zm9ybXMuUEMiCisgICAgICAgIHByb2ZpbGU9InJlbGVhc2UiCisgICAgICAgIHhDZmdTY3JpcHQ9InBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuY2ZnIgorICAgICAgICB4Q2ZnUHJlZml4PSJwYWNrYWdlL2NmZy9wcm9nX3g4NkdXIgorICAgICAgICBjZmdTY3JpcHQ9InByb2cuY2ZnIgorICAgICAgICAvPgorICAgIDwvZXhlY3V0YWJsZXM+CisgICAgPHRlc3RzPgorICAgIDx0ZXN0IGV4ZU5hbWU9InByb2cueDY0UCIKKyAgICAgICAgYXJncz0iIgorICAgICAgICBncm91cE5hbWU9InByb2cueDY0UCIKKyAgICAgICAgcmVmT3V0cHV0PSJ1bmRlZmluZWQiCisgICAgICAgIHJlZkV4aXRDb2RlPSIwIgorICAgICAgICBleGVjQXJncz0iIgorICAgICAgICAvPgorICAgIDx0ZXN0IGV4ZU5hbWU9InByb2cueDg2R1ciCisgICAgICAgIGFyZ3M9IiIKKyAgICAgICAgZ3JvdXBOYW1lPSJwcm9nLng4NkdXIgorICAgICAgICByZWZPdXRwdXQ9InVuZGVmaW5lZCIKKyAgICAgICAgcmVmRXhpdENvZGU9IjAiCisgICAgICAgIGV4ZWNBcmdzPSIiCisgICAgICAgIC8+CisgICAgPC90ZXN0cz4KKyAgICA8cmVsZWFzZXMgcmVsRGlyPSJwYWNrYWdlL3JlbC8iPgorICAgIDxyZWxlYXNlIG5hbWU9ImhlbGxvX21vZCIKKyAgICAgICAgcG5hbWU9ImhlbGxvX21vZC50YXIiCisgICAgICAgIGxhYmVsPSJkZWZhdWx0IgorICAgID4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9idWlsZC5jZmciLz4KKyAgICAgICAgPGZpbGUgbmFtZT0ibGliL2hlbGxvLm1vZC5hODZHVyIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UuZXh0LnhtbCIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJwYWNrYWdlL3BhY2thZ2UueGRjLmluYyIvPgorICAgICAgICA8ZmlsZSBuYW1lPSJsaWIvaGVsbG8ubW9kLmE2NFAiLz4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLmJsZC54bWwiLz4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLnJlbC5kb3QiLz4KKyAgICA8L3JlbGVhc2U+CisgICAgPC9yZWxlYXNlcz4KKyAgICA8cmVwb3NpdG9yaWVzPgorICAgIDwvcmVwb3NpdG9yaWVzPgorPC9wYWNrYWdlPgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9wYWNrYWdlLmRlZnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41N2ExOWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcGFja2FnZS5kZWZzLmgKQEAgLTAsMCArMSwxOCBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2lmbmRlZiBoZWxsb19tb2RfXworI2RlZmluZSBoZWxsb19tb2RfXworCisKKy8qCisgKiA9PT09PT09PSBtb2R1bGUgaGVsbG8ubW9kLlRhbGtlciA9PT09PT09PQorICovCisKKworCisjZW5kaWYgLyogaGVsbG9fbW9kX18gKi8gCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9wYWNrYWdlLmRvYy54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9wYWNrYWdlLmRvYy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTA2NGY4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL3BhY2thZ2UuZG9jLnhtbApAQCAtMCwwICsxLDMxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwYWNrYWdlIGtpbmQ9J3BhY2thZ2UnIG5hbWU9J2hlbGxvLm1vZCcgbm9kb2M9JzAnIHJvb3Q9Jy4uLy4uLycgc3VtbWFyeT0nQ29udGFpbnMrb3VyK2ZpcnN0K21vZHVsZSc+CisgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VwYWNrYWdlJTNDJTJGc3BhbiUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFaGVsbG8ubW9kJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyU3QicvPgorICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTdEJy8+CisgICAgPHVuaXQgbmFtZT0nVGFsa2VyJyBraW5kPSdtb2R1bGUnIG5vZG9jPScwJyBtZXRhb25seT0nMCcgc3VtbWFyeT0nT3VyK2ZpcnN0K21vZHVsZSc+CisgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXBhY2thZ2UlM0MlMkZzcGFuJTNFKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZoZWxsbyUyRm1vZCUyRnBhY2thZ2UuaHRtbCUyMit0aXRsZSUzRCUyMmhlbGxvLm1vZCUyMiUzRWhlbGxvLm1vZCUzQyUyRmElM0UlM0InLz4KKyAgICAgICAgICAgIDxsaW5lIGJsYW5rPScxJyBhbHdheXM9JzAnLz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbW9kdWxlJTNDJTJGc3BhbiUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFVGFsa2VyJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyU3QicvPgorICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclN0QnLz4KKyAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgIDxzcGVjSW5mbz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbW9kdWxlJTNDJTJGc3BhbiUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFVGFsa2VyJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyU3QiUzQ2IlM0UlMjZuYnNwJTNCJTI2bmJzcCUzQi4uLiUzQyUyRmIlM0UnLz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29tbWVudD0naW5oZXJpdHMrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZJTW9kdWxlLmh0bWwlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlJTIyJTNFeGRjLnJ1bnRpbWUuSU1vZHVsZSUzQyUyRmElM0UnLz4KKyAgICAgICAgPC9zcGVjSW5mbz4KKyAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFdmFyJTNDJTJGc3BhbiUzRStUYWxrZXIrJTNEKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MyUyMiUzRXhkYy51c2VNb2R1bGUlM0MlMkZzcGFuJTNFJTI4JTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0UlMjdoZWxsby5tb2QuVGFsa2VyJTI3JTNDJTJGc3BhbiUzRSUyOSUzQicvPgorICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3czJTIyJTNFJTIzaW5jbHVkZSUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0UlMjZsdCUzQmhlbGxvJTJGbW9kJTJGVGFsa2VyLmglMjZndCUzQiUzQyUyRnNwYW4lM0UnLz4KKyAgICAgICAgPC9zeW5vcFRhcmc+CisgICAgICAgIDxncm91cCBuYW1lPSdsb2NhbCBwcm94eSBtb2R1bGVzJz4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGNvbnN0YW50cyAmYW1wOyB0eXBlcyc+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGNvbmZpZyBwYXJhbWV0ZXJzJz4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wga2luZD0nY29uZmlnJyBuYW1lPSdjb25maWdOYW1lTWFwJCcgYW5jaG9yPSdjb25maWcuTmFtZS5NYXAkJyBhbHRleHQ9J2hlbGxvLm1vZC5UYWxrZXIuY29uZmlnTmFtZU1hcCQnIG5vZG9jPScxJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMScgaW5zdGFuY2U9JzAnIHN1bW1hcnk9Jycgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklNb2R1bGUuaHRtbCUyM2NvbmZpZy5OYW1lLk1hcCUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLklNb2R1bGUuY29uZmlnTmFtZU1hcCUyNCUyMiUzRUlNb2R1bGUlM0MlMkZhJTNFJyBtZXRhb25seT0nMSc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VtZXRhb25seSslM0MlMkZzcGFuJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFcmVhZG9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbmZpZyUzQyUyRnNwYW4lM0UrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLlZpZXcuSW5mbyUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLlZpZXdJbmZvJTIyJTNFVHlwZXMuVmlld0luZm8lM0MlMkZhJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vjb25maWdOYW1lTWFwJTI0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTVCJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFc3RyaW5nJTNDJTJGc3BhbiUzRSU1RCslM0QrJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRk1lbW9yeSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZUhlYXAlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZVNlY3Rpb24lMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5tZW1vcnlQb2xpY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5uYW1lZE1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lm5hbWVkSW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5meG50YWIlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5yb21QYXRjaFRhYmxlJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRGlhZ25vc3RpY3MlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQubG9nZ2VyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfQVNTRVJUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfRU5UUlklMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19FWElUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfSU5URVJOQUwlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19MSUZFQ1lDTEUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSMSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVIyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI1JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjYlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI4JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQ29uY3VycmVuY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZ2F0ZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmdhdGVQYXJhbXMlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZMb2clMkJFdmVudHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGTG9nJTJCRXZlbnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQXNzZXJ0cyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJBc3NlcnQuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZBc3NlcnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyQXNzZXJ0LklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkVycm9yLklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyRXJyb3IuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUyNTVEJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25zdCUzQyUyRnNwYW4lM0UrJTNDZ28lM0VUYWxrZXIuJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vjb25maWdOYW1lTWFwJTI0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyUzRCslM0NpJTNFJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLlZpZXcuSW5mbyUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLlZpZXdJbmZvJTIyJTNFVHlwZXMuVmlld0luZm8lM0MlMkZhJTNFJTVCJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFc3RyaW5nJTNDJTJGc3BhbiUzRSU1RCUzQyUyRmklM0UrJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRk1lbW9yeSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZUhlYXAlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZVNlY3Rpb24lMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5tZW1vcnlQb2xpY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5uYW1lZE1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lm5hbWVkSW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5meG50YWIlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5yb21QYXRjaFRhYmxlJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRGlhZ25vc3RpY3MlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQubG9nZ2VyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfQVNTRVJUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfRU5UUlklMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19FWElUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfSU5URVJOQUwlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19MSUZFQ1lDTEUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSMSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVIyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI1JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjYlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI4JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQ29uY3VycmVuY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZ2F0ZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmdhdGVQYXJhbXMlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZMb2clMkJFdmVudHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGTG9nJTJCRXZlbnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQXNzZXJ0cyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJBc3NlcnQuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZBc3NlcnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyQXNzZXJ0LklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkVycm9yLklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyRXJyb3IuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUyNTVEJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcE1ldGE+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2NvbmZpZycgbmFtZT0nY291bnQnIGFuY2hvcj0nY291bnQnIGFsdGV4dD0naGVsbG8ubW9kLlRhbGtlci5jb3VudCcgbm9kb2M9JzAnIGV4dGVybmFsPScxJyBvdmVycmlkZXM9JzAnIHJlYWRvbmx5PScwJyBpbnN0YW5jZT0nMCcgc3VtbWFyeT0nSG93K21hbnkrdGltZXMnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFY29uZmlnJTNDJTJGc3BhbiUzRSslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VJbnQlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vjb3VudCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrMSUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICAgICAgICAgIDxzeW5vcE1ldGE+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDZ28lM0VUYWxrZXIuJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vjb3VudCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrJTNDaSUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRUludCUzQyUyRnNwYW4lM0UlM0MlMkZpJTNFKzElM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICA8c3lub3BUYXJnPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWV4dGVybitjb25zdCUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFSW50JTNDJTJGc3BhbiUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFVGFsa2VyX2NvdW50JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFRhcmc+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBraW5kPSdjb25maWcnIG5hbWU9J3RleHQnIGFuY2hvcj0ndGV4dCcgYWx0ZXh0PSdoZWxsby5tb2QuVGFsa2VyLnRleHQnIG5vZG9jPScwJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9J1doYXQrdG8rc2F5Jz4KKyAgICAgICAgICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbmZpZyUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFU3RyaW5nJTNDJTJGc3BhbiUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFdGV4dCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrJTI1MjJIZWxsbyUyQldvcmxkJTI1MjIlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICA8c3lub3BNZXRhPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ2dvJTNFVGFsa2VyLiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFdGV4dCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrJTNDaSUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRVN0cmluZyUzQyUyRnNwYW4lM0UlM0MlMkZpJTNFKyUyNTIySGVsbG8lMkJXb3JsZCUyNTIyJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcE1ldGE+CisgICAgICAgICAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VleHRlcm4rY29uc3QlM0MlMkZzcGFuJTNFKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRVN0cmluZyUzQyUyRnNwYW4lM0UlMjZuYnNwJTNCJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRVRhbGtlcl90ZXh0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFRhcmc+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2NvbmZpZycgbmFtZT0nY29tbW9uJCcgYW5jaG9yPSdjb21tb24kJyBhbHRleHQ9J2hlbGxvLm1vZC5UYWxrZXIuY29tbW9uJCcgbm9kb2M9JzAnIGV4dGVybmFsPScxJyBvdmVycmlkZXM9JzAnIHJlYWRvbmx5PScwJyBpbnN0YW5jZT0nMCcgc3VtbWFyeT0nQ29tbW9uK21vZHVsZStjb25maWd1cmF0aW9uK3BhcmFtZXRlcnMnIG9yaWdpbj0nJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZJTW9kdWxlLmh0bWwlMjNjb21tb24lMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlLmNvbW1vbiUyNCUyMiUzRUlNb2R1bGUlM0MlMkZhJTNFJyBtZXRhb25seT0nMSc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VtZXRhb25seSslM0MlMkZzcGFuJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFY29uZmlnJTNDJTJGc3BhbiUzRSslM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRlR5cGVzLmh0bWwlMjMuQ29tbW9uJTI0JTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0JTIyJTNFVHlwZXMuQ29tbW9uJTI0JTNDJTJGYSUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFY29tbW9uJTI0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NnbyUzRVRhbGtlci4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWNvbW1vbiUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrJTNDaSUzRSUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGVHlwZXMuaHRtbCUyMy5Db21tb24lMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQlMjIlM0VUeXBlcy5Db21tb24lMjQlM0MlMkZhJTNFJTNDJTJGaSUzRSslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0V1bmRlZmluZWQlM0MlMkZzcGFuJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcE1ldGE+CisgICAgICAgICAgICAgICAgPGRvY1NlY3QgbmFtZT0nZGV0YWlscyc+CisgICAgICAgICAgICAgICAgICAgIDxkb2NQYXJhIGNvbnRlbnQ9J0FsbCttb2R1bGVzK2hhdmUrdGhpcytjb25maWd1cmF0aW9uK3BhcmFtZXRlci4rK0l0cytuYW1lJTBBKytjb250YWlucyt0aGUrJTI3JTI0JTI3K2NoYXJhY3Rlcit0bytlbnN1cmUraXQrZG9lcytub3QrY29uZmxpY3Qrd2l0aCUwQSsrY29uZmlndXJhdGlvbitwYXJhbWV0ZXJzK2RlY2xhcmVkK2J5K3RoZSttb2R1bGUuKytUaGlzK2FsbG93cyUwQSsrbmV3K2NvbmZpZ3VyYXRpb24rcGFyYW1ldGVycyt0bytiZSthZGRlZCtpbit0aGUrZnV0dXJlK3dpdGhvdXQlMEErK2FueStjaGFuY2Urb2YrYnJlYWtpbmcrZXhpc3RpbmcrbW9kdWxlcy4nLz4KKyAgICAgICAgICAgICAgICA8L2RvY1NlY3Q+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBraW5kPSdjb25maWcnIG5hbWU9J3JvdlNob3dSYXdUYWIkJyBhbmNob3I9J3Jvdi5TaG93LlJhdy5UYWIkJyBhbHRleHQ9J2hlbGxvLm1vZC5UYWxrZXIucm92U2hvd1Jhd1RhYiQnIG5vZG9jPScxJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9Jycgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklNb2R1bGUuaHRtbCUyM3Jvdi5TaG93LlJhdy5UYWIlMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlLnJvdlNob3dSYXdUYWIlMjQlMjIlM0VJTW9kdWxlJTNDJTJGYSUzRScgbWV0YW9ubHk9JzEnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbWV0YW9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbmZpZyUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFQm9vbCUzQyUyRnNwYW4lM0UlMjZuYnNwJTNCJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRXJvdlNob3dSYXdUYWIlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUyNTNDc3BhbiUyQmNsYXNzJTI1M0QlMjUyMnhkb2Mta3cyJTI1MjIlMjUzRXRydWUlMjUzQyUyNTJGc3BhbiUyNTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NnbyUzRVRhbGtlci4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRXJvdlNob3dSYXdUYWIlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUzQ2klM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VCb29sJTNDJTJGc3BhbiUzRSUzQyUyRmklM0UrJTI1M0NzcGFuJTJCY2xhc3MlMjUzRCUyNTIyeGRvYy1rdzIlMjUyMiUyNTNFdHJ1ZSUyNTNDJTI1MkZzcGFuJTI1M0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2NvbmZpZycgbmFtZT0ndmlld05hbWVNYXAkJyBhbmNob3I9J3ZpZXcuTmFtZS5NYXAkJyBhbHRleHQ9J2hlbGxvLm1vZC5UYWxrZXIudmlld05hbWVNYXAkJyBub2RvYz0nMScgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzAnIGluc3RhbmNlPScwJyBzdW1tYXJ5PSdTcGVjaWZpZXMrdGhlK1JPVit2aWV3cytmb3IrdGhlK21vZHVsZScgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklNb2R1bGUuaHRtbCUyM3ZpZXcuTmFtZS5NYXAlMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlLnZpZXdOYW1lTWFwJTI0JTIyJTNFSU1vZHVsZSUzQyUyRmElM0UnIG1ldGFvbmx5PScxJz4KKyAgICAgICAgICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRW1ldGFvbmx5KyUzQyUyRnNwYW4lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25maWclM0MlMkZzcGFuJTNFKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGVHlwZXMuaHRtbCUyMy5WaWV3LkluZm8lMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5UeXBlcy5WaWV3SW5mbyUyMiUzRVR5cGVzLlZpZXdJbmZvJTNDJTJGYSUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFdmlld05hbWVNYXAlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlNUIlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VzdHJpbmclM0MlMkZzcGFuJTNFJTVEJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NnbyUzRVRhbGtlci4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRXZpZXdOYW1lTWFwJTI0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFKyUzRCslM0NpJTNFJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLlZpZXcuSW5mbyUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLlZpZXdJbmZvJTIyJTNFVHlwZXMuVmlld0luZm8lM0MlMkZhJTNFJTVCJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFc3RyaW5nJTNDJTJGc3BhbiUzRSU1RCUzQyUyRmklM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFdW5kZWZpbmVkJTNDJTJGc3BhbiUzRSUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BNZXRhPgorICAgICAgICAgICAgPC9kZWNsPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8Z3JvdXAgbmFtZT0nbW9kdWxlLXdpZGUgZnVuY3Rpb25zJz4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J2Z4bicgbmFtZT0ncHJpbnQnIGFuY2hvcj0ncHJpbnQnIGFsdGV4dD0naGVsbG8ubW9kLlRhbGtlci5wcmludCcgbm9kb2M9JzAnIGV4dGVybmFsPScxJyBvdmVycmlkZXM9JzAnIHJlYWRvbmx5PScwJyBpbnN0YW5jZT0nMCcgc3VtbWFyeT0nU2F5K2l0Jz4KKyAgICAgICAgICAgICAgICA8c3lub3BTcGVjPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRVZvaWQlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VwcmludCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUyOCsrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NpJTNFJTNDJTJGaSUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRVZvaWQlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VUYWxrZXJfcHJpbnQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlMjgrKyUyOSUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BUYXJnPgorICAgICAgICAgICAgPC9kZWNsPgorICAgICAgICAgICAgPGRlY2wgc3BhY2VyPScxJy8+CisgICAgICAgIDwvZ3JvdXA+CisgICAgICAgIDxncm91cCBuYW1lPSdtb2R1bGUtd2lkZSBidWlsdC1pbnMnPgorICAgICAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbW1lbnQ9J0dldCt0aGlzK21vZHVsZSUyN3MrdW5pcXVlK2lkJyBjb250ZW50PSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRlR5cGVzLmh0bWwlMjMuTW9kdWxlLklkJTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuVHlwZXMuTW9kdWxlSWQlMjIlM0VUeXBlc19Nb2R1bGVJZCUzQyUyRmElM0UrJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRVRhbGtlcl9Nb2R1bGVfaWQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlMjgrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPGxpbmUgYmxhbms9JzEnIGFsd2F5cz0nMCcvPgorICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29tbWVudD0nVGVzdCtpZit0aGlzK21vZHVsZStoYXMrY29tcGxldGVkK3N0YXJ0dXAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRUJvb2wlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VUYWxrZXJfTW9kdWxlX3N0YXJ0dXBEb25lJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTI4KyUyOSUzQicvPgorICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29tbWVudD0nVGhlK2hlYXArZnJvbSt3aGljaCt0aGlzK21vZHVsZSthbGxvY2F0ZXMrbWVtb3J5JyBjb250ZW50PSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklIZWFwLmh0bWwlMjNwZXItaW5zdGFuY2Vfb2JqZWN0X3R5cGVzJTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuSUhlYXAuSGFuZGxlJTIyJTNFSUhlYXBfSGFuZGxlJTNDJTJGYSUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFVGFsa2VyX01vZHVsZV9oZWFwJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTI4KyUyOSUzQicvPgorICAgICAgICAgICAgICAgIDxsaW5lIGJsYW5rPScxJyBhbHdheXM9JzAnLz4KKyAgICAgICAgICAgIDwvc3lub3BUYXJnPgorICAgICAgICA8L2dyb3VwPgorICAgIDwvdW5pdD4KKzwvcGFja2FnZT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL3BhY2thZ2UueGRjLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wYWNrYWdlL3BhY2thZ2UueGRjLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2FlZTk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwCkBAIC0wLDAgKzEsNjYgQEAKK2NsZWFuOjoNCisJJChSTSkgcGFja2FnZS9oZWxsby5tb2Quc2NoDQorCSQoUk0pIHBhY2thZ2UvLnZlcnNfZzE1MA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX3IxNTANCisJJChSTSkgcGFja2FnZS8udmVyc19iMTUwDQorCSQoUk0pIHBhY2thZ2UvLnZlcnNfYzE1MA0KKwkkKFJNKSBwYWNrYWdlLy54ZGMtdDMyDQorCSQoUk0pIHBhY2thZ2UvaGVsbG9fbW9kLmphdmENCisJJChSTSkgcGFja2FnZS9oZWxsb19tb2QuY2xhc3MNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5jDQorCSQoUk0pIHBhY2thZ2UvcGFja2FnZS5kZWZzLmgNCisJJChSTSkgVGFsa2VyLmgNCisJJChSTSkgcGFja2FnZS9pbnRlcm5hbC9UYWxrZXIueGRjLmgNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlLmRvYy54bWwNCisJJChSTSkgcGFja2FnZS9oZWxsby5tb2QuY2NzDQorCisuaW50ZXJmYWNlczogcGFja2FnZS9oZWxsby5tb2Quc2NoIHBhY2thZ2UvLnZlcnNfZzE1MCBwYWNrYWdlLy52ZXJzX3IxNTAgcGFja2FnZS8udmVyc19iMTUwIHBhY2thZ2UvLnZlcnNfYzE1MCBwYWNrYWdlLy54ZGMtdDMyIHBhY2thZ2UvaGVsbG9fbW9kLmphdmEgcGFja2FnZS9oZWxsb19tb2QuY2xhc3MgcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5jIHBhY2thZ2UvcGFja2FnZS5kZWZzLmggVGFsa2VyLmggcGFja2FnZS9pbnRlcm5hbC9UYWxrZXIueGRjLmggcGFja2FnZS9wYWNrYWdlLmRvYy54bWwgcGFja2FnZS9oZWxsby5tb2QuY2NzIAorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IHBhY2thZ2UvLnZlcnNfZzE1MAorcGFja2FnZS8udmVyc19nMTUwOgorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IHBhY2thZ2UvLnZlcnNfcjE1MAorcGFja2FnZS8udmVyc19yMTUwOgorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IHBhY2thZ2UvLnZlcnNfYjE1MAorcGFja2FnZS8udmVyc19iMTUwOgorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IHBhY2thZ2UvLnZlcnNfYzE1MAorcGFja2FnZS8udmVyc19jMTUwOgorCisuaW50ZXJmYWNlczogVGFsa2VyLnhkYyAKKworIyBzY2hlbWEgaW5jbHVkZSBmaWxlIGRlcGVuZGVuY2llcworVGFsa2VyLnhzOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBUYWxrZXIueHMNCisKKyMgc2NoZW1hIHVwZGF0ZSBkZXBlbmRlbmNpZXMKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBUYWxrZXIueGRjDQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IHhkYy9JUGFja2FnZS54ZGMNCit4ZGMvSVBhY2thZ2UueGRjOg0KK3ZwYXRoIHhkYy9JUGFja2FnZS54ZGMgJChYUEtHVlBBVEgpDQorCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9qcy5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9qcy5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEveGJlYW4uamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEveGJlYW4uamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4veHNyL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL3hzci9qYXZhL3BhY2thZ2UuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3Rhci5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS90YXIuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2NtZC9qYXZhL3BhY2thZ2UuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2FudGxyLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2FudGxyLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvc3BlYy9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL3NwZWMvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2dlbi9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9nZW4vamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9lY2ouamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvZWNqLmphcg0KK2VuZGlmCisjIGdvYWxzIGZvciBmaWxlcyBnZW5lcmF0ZWQgZHVyaW5nIHNjaGVtYSBnZW5lcmF0aW9uIGJ1dCB1bnNwZWNpZmllZCBieSBzY2hlbWEncyBwYXR0ZXJuIHJ1bGUKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBUYWxrZXIuaA0KK1RhbGtlci5oOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlL2ludGVybmFsL1RhbGtlci54ZGMuaA0KK3BhY2thZ2UvaW50ZXJuYWwvVGFsa2VyLnhkYy5oOg0KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyMzIwYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKQEAgLTAsMCArMSwxNyBAQAorcGFja2FnZS54ZGMNCitUYWxrZXIueGRjDQorVGFsa2VyLnhzDQorcGFja2FnZS9oZWxsby5tb2Quc2NoDQorcGFja2FnZS8udmVyc19nMTUwDQorcGFja2FnZS8udmVyc19yMTUwDQorcGFja2FnZS8udmVyc19iMTUwDQorcGFja2FnZS8udmVyc19jMTUwDQorcGFja2FnZS8ueGRjLXQzMg0KK3BhY2thZ2UvaGVsbG9fbW9kLmphdmENCitwYWNrYWdlL2hlbGxvX21vZC5jbGFzcw0KK3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QuYw0KK3BhY2thZ2UvcGFja2FnZS5kZWZzLmgNCitUYWxrZXIuaA0KK3BhY2thZ2UvaW50ZXJuYWwvVGFsa2VyLnhkYy5oDQorcGFja2FnZS9wYWNrYWdlLmRvYy54bWwNCitwYWNrYWdlL2hlbGxvLm1vZC5jY3MNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9wYWNrYWdlX2hlbGxvLm1vZC5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmExYzQzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcGFja2FnZV9oZWxsby5tb2QuYwpAQCAtMCwwICsxLDIxIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCitfX0ZBUl9fIGNoYXIgaGVsbG9fbW9kX19kdW1teV9fOworCisjZGVmaW5lIF9feGRjX1BLR1ZFUlMgbnVsbAorI2RlZmluZSBfX3hkY19QS0dOQU1FIGhlbGxvLm1vZAorI2RlZmluZSBfX3hkY19QS0dQUkVGSVggaGVsbG9fbW9kXworCisjaWZkZWYgX194ZGNfYmxkX3BrZ19jX18KKyNkZWZpbmUgX19zdHJpbmdpZnkoYSkgI2EKKyNkZWZpbmUgX19sb2NhbF9pbmNsdWRlKGEpIF9fc3RyaW5naWZ5KGEpCisjaW5jbHVkZSBfX2xvY2FsX2luY2x1ZGUoX194ZGNfYmxkX3BrZ19jX18pCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcmVsL2hlbGxvX21vZC54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3BhY2thZ2UvcmVsL2hlbGxvX21vZC54ZGMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1MTg1NDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcGFja2FnZS9yZWwvaGVsbG9fbW9kLnhkYy5pbmMKQEAgLTAsMCArMSw3IEBACitwYWNrYWdlL2J1aWxkLmNmZworbGliL2hlbGxvLm1vZC5hODZHVworcGFja2FnZS9wYWNrYWdlLmV4dC54bWwKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jCitsaWIvaGVsbG8ubW9kLmE2NFAKK3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCitwYWNrYWdlL3BhY2thZ2UucmVsLmRvdApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3Byb2cuYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wcm9nLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzFhZDU0ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wcm9nLmMKQEAgLTAsMCArMSwxMSBAQAorLyoNCisgKiAgPT09PT09PT0gaGVsbG8vbW9kL3Byb2cuYyA9PT09PT09PQ0KKyAqLw0KKw0KKyNpbmNsdWRlIDxoZWxsby9tb2QvVGFsa2VyLmg+DQorIA0KK0ludCBtYWluKCkNCit7DQorICAgIFRhbGtlcl9wcmludCgpOw0KKyAgICByZXR1cm4gMDsNCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3Byb2cuY2ZnIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3Byb2cuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyYjZmMmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcHJvZy5jZmcKQEAgLTAsMCArMSw4IEBACisvKg0KKyAqICA9PT09PT09PSBoZWxsby9tb2QvcHJvZy5jZmcgPT09PT09PT0NCisgKi8NCisNCit2YXIgVGFsa2VyID0geGRjLnVzZU1vZHVsZSgnaGVsbG8ubW9kLlRhbGtlcicpOw0KKyANCitUYWxrZXIudGV4dCA9ICJHb29kbmlnaHQgTW9vbiI7DQorVGFsa2VyLmNvdW50ID0gMzsNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcHJvZy54NjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3Byb2cueDY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzVjYjRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vbW9kL3Byb2cueDY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcHJvZy54ODZHVyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL21vZC9wcm9nLng4NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiMmRmNzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9tb2QvcHJvZy54ODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmNkdHByb2plY3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmNkdHByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYxMDJhYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8uY2R0cHJvamVjdApAQCAtMCwwICsxLDY3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZWNsaXBzZS1jZHQgdmVyc2lvbj0iMi4wIj8+DQorDQorPGNkdHByb2plY3QgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZSI+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRUxGIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuQmluYXJ5UGFyc2VyIi8+DQorPGRhdGE+DQorPGl0ZW0gaWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyRmlsZVByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJtYWtlZmlsZUdlbmVyYXRvciI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1mICR7cHJvamVjdF9uYW1lfV9zY2QubWsiIGNvbW1hbmQ9Im1ha2UiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzwvaXRlbT4NCis8aXRlbSBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGF0aGVudHJ5Ij4NCis8cGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJvdXQiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkRJU0NPVkVSRURfU0NBTk5FUl9JTkZPIi8+DQorPC9pdGVtPg0KKzxpdGVtIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkdGFyZ2V0cyI+DQorPGJ1aWxkVGFyZ2V0cz4NCis8dGFyZ2V0IG5hbWU9InRlc3QiIHBhdGg9IiIgdGFyZ2V0SUQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLk1ha2VUYXJnZXRCdWlsZGVyIj4NCis8YnVpbGRDb21tYW5kPmQ6L3dvcmsvaWxpYWQveGRjPC9idWlsZENvbW1hbmQ+DQorPGJ1aWxkQXJndW1lbnRzLz4NCis8YnVpbGRUYXJnZXQ+dGVzdDwvYnVpbGRUYXJnZXQ+DQorPHN0b3BPbkVycm9yPmZhbHNlPC9zdG9wT25FcnJvcj4NCis8dXNlRGVmYXVsdENvbW1hbmQ+ZmFsc2U8L3VzZURlZmF1bHRDb21tYW5kPg0KKzwvdGFyZ2V0Pg0KKzwvYnVpbGRUYXJnZXRzPg0KKzwvaXRlbT4NCis8L2RhdGE+DQorPC9jZHRwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8uY3Byb2plY3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmNwcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhZDZjOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmNwcm9qZWN0CkBAIC0wLDAgKzEsMjY0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZmlsZVZlcnNpb24gNC4wLjA/Pg0KKw0KKzxjcHJvamVjdD4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiPg0KKzxjY29uZmlndXJhdGlvbiBpZD0iMC4xNjQ2MzY5ODcwIj4NCis8c3RvcmFnZU1vZHVsZSBidWlsZFN5c3RlbUlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5jb25maWd1cmF0aW9uRGF0YVByb3ZpZGVyIiBpZD0iMC4xNjQ2MzY5ODcwIiBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiIG5hbWU9IkRlZmF1bHQiPg0KKzxleHRlcm5hbFNldHRpbmdzLz4NCis8ZXh0ZW5zaW9ucz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5WQ0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5HQVNFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuR0xERXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkdDQ0Vycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5NYWtlRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzwvZXh0ZW5zaW9ucz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9ImNkdEJ1aWxkU3lzdGVtIiB2ZXJzaW9uPSI0LjAuMCI+DQorPGNvbmZpZ3VyYXRpb24gYXJ0aWZhY3ROYW1lPSJoZWxsby5wa2ciIGJ1aWxkUHJvcGVydGllcz0iIiBkZXNjcmlwdGlvbj0iIiBpZD0iMC4xNjQ2MzY5ODcwIiBuYW1lPSJEZWZhdWx0IiBwYXJlbnQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLmNmZyI+DQorPGZvbGRlckluZm8gaWQ9IjAuMTY0NjM2OTg3MC4iIG5hbWU9Ii8iIHJlc291cmNlUGF0aD0iIj4NCis8dG9vbENoYWluIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS50b29sY2hhaW4uMTYyMzE2NDQ0OSIgbmFtZT0iTm8gVG9vbENoYWluIiByZXNvdXJjZVR5cGVCYXNlZERpc2NvdmVyeT0iZmFsc2UiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLnRvb2xjaGFpbiI+DQorPHRhcmdldFBsYXRmb3JtIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS50b29sY2hhaW4uMTYyMzE2NDQ0OS4xMjMzMDg3MTc4IiBuYW1lPSIiLz4NCis8YnVpbGRlciBidWlsZFBhdGg9IiIgY29tbWFuZD0iJHtYRENST09UfS94ZGMiIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5kZWZhdWx0LmJ1aWxkZXIuMTY4NjQwOTk1OCIga2VlcEVudmlyb25tZW50SW5CdWlsZGZpbGU9ImZhbHNlIiBtYW5hZ2VkQnVpbGRPbj0iZmFsc2UiIG5hbWU9IkdudSBNYWtlIEJ1aWxkZXIiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmRlZmF1bHQuYnVpbGRlciIvPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIubGlicy4zMDE3MDI3ODciIG5hbWU9ImhvbGRlciBmb3IgbGlicmFyeSBzZXR0aW5ncyIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmxpYnMiLz4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLjE5MzE2MTgyNTciIG5hbWU9IkdOVSBDKysiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS4xMTQzMzcxMDE4IiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5nKysiIGxhbmd1YWdlTmFtZT0iR05VIEMrKyIgc291cmNlQ29udGVudFR5cGU9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmN4eFNvdXJjZSxvcmcuZWNsaXBzZS5jZHQuY29yZS5jeHhIZWFkZXIiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUiLz4NCis8L3Rvb2w+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci4zMzU5NDE1NjUiIG5hbWU9IkdOVSBDIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuMTc4MDU4MjE5OCIgbGFuZ3VhZ2VJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZ2NjIiBsYW5ndWFnZU5hbWU9IkdOVSBDIiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuY1NvdXJjZSxvcmcuZWNsaXBzZS5jZHQuY29yZS5jSGVhZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuMTA2NTgxNjI0NiIgbmFtZT0iVVBDIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuMTY3NDM5NDk2IiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXJzZXIudXBjLnVwYyIgbGFuZ3VhZ2VOYW1lPSJVUEMiIHNvdXJjZUNvbnRlbnRUeXBlPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXJzZXIudXBjLnVwY1NvdXJjZSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZSIvPg0KKzwvdG9vbD4NCis8dG9vbCBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLjE2Mzg2MDM5MzMiIG5hbWU9IkFzc2VtYmx5IiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuNTE5ODQxNzcyIiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5hc3NlbWJseSIgbGFuZ3VhZ2VOYW1lPSJBc3NlbWJseSIgc291cmNlQ29udGVudFR5cGU9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmFzbVNvdXJjZSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZSIvPg0KKzwvdG9vbD4NCis8L3Rvb2xDaGFpbj4NCis8L2ZvbGRlckluZm8+DQorPC9jb25maWd1cmF0aW9uPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ic2Nhbm5lckNvbmZpZ3VyYXRpb24iPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9InRydWUiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyRmlsZVByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9Im1ha2VmaWxlR2VuZXJhdG9yIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLWYgJHtwcm9qZWN0X25hbWV9X3NjZC5tayIgY29tbWFuZD0ibWFrZSIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jcHAiIGNvbW1hbmQ9ImcrKyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmMiIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jcHAiIGNvbW1hbmQ9ImcrKyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmMiIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci54bGMuY29yZS5YTENNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC12ICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSIke1hMX2NvbXBpbGVyUm9vdH0veGxjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bEMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxzY2FubmVyQ29uZmlnQnVpbGRJbmZvIGluc3RhbmNlSWQ9IjAuMTY0NjM2OTg3MCI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyRmlsZVByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9Im1ha2VmaWxlR2VuZXJhdG9yIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLWYgJHtwcm9qZWN0X25hbWV9X3NjZC5tayIgY29tbWFuZD0ibWFrZSIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jcHAiIGNvbW1hbmQ9ImcrKyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmMiIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jcHAiIGNvbW1hbmQ9ImcrKyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmMiIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci54bGMuY29yZS5YTENNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC12ICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSIke1hMX2NvbXBpbGVyUm9vdH0veGxjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bEMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzwvc2Nhbm5lckNvbmZpZ0J1aWxkSW5mbz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmV4dGVybmFsU2V0dGluZ3MiLz4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZHRhcmdldHMiPg0KKzxidWlsZFRhcmdldHM+DQorPHRhcmdldCBuYW1lPSJ0ZXN0IiBwYXRoPSIiIHRhcmdldElEPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuTWFrZVRhcmdldEJ1aWxkZXIiPg0KKzxidWlsZENvbW1hbmQ+JHtYRENST09UfS94ZGM8L2J1aWxkQ29tbWFuZD4NCis8YnVpbGRBcmd1bWVudHM+PC9idWlsZEFyZ3VtZW50cz4NCis8YnVpbGRUYXJnZXQ+dGVzdDwvYnVpbGRUYXJnZXQ+DQorPHN0b3BPbkVycm9yPnRydWU8L3N0b3BPbkVycm9yPg0KKzx1c2VEZWZhdWx0Q29tbWFuZD5mYWxzZTwvdXNlRGVmYXVsdENvbW1hbmQ+DQorPHJ1bkFsbEJ1aWxkZXJzPnRydWU8L3J1bkFsbEJ1aWxkZXJzPg0KKzwvdGFyZ2V0Pg0KKzwvYnVpbGRUYXJnZXRzPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Njb25maWd1cmF0aW9uPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0iY2R0QnVpbGRTeXN0ZW0iIHZlcnNpb249IjQuMC4wIj4NCis8cHJvamVjdCBpZD0iaGVsbG8ucGtnLm51bGwuODQxOTc1NDkzIiBuYW1lPSJoZWxsby5wa2ciLz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jcHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmRsbHMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmRsbHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8uZGxscwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnLy5leGVjdXRhYmxlcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8uZXhlY3V0YWJsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8uZXhlY3V0YWJsZXMKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8uaW50ZXJmYWNlcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8uaW50ZXJmYWNlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnLy5pbnRlcmZhY2VzCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmxpYnJhcmllcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8ubGlicmFyaWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmxpYnJhcmllcwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnLy5saWJyYXJpZXMsNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnLy5saWJyYXJpZXMsNjRQCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmxpYnJhcmllcyw2NFAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8ubGlicmFyaWVzLDg2R1cgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmxpYnJhcmllcyw4NkdXCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLmxpYnJhcmllcyw4NkdXCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLnByb2plY3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDZmOTgzMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8ucHJvamVjdApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPmhlbGxvLnBrZzwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmdlbm1ha2VidWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pj9uYW1lPzwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXV0b0J1aWxkVGFyZ2V0PC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZEFyZ3VtZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGRDb21tYW5kPC9rZXk+DQorCQkJCQk8dmFsdWU+JHtYRENST09UfS94ZGM8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkTG9jYXRpb248L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmNsZWFuQnVpbGRUYXJnZXQ8L2tleT4NCisJCQkJCTx2YWx1ZT5jbGVhbjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuY29udGVudHM8L2tleT4NCisJCQkJCTx2YWx1ZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFjdGl2ZUNvbmZpZ1NldHRpbmdzPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVBdXRvQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUZ1bGxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmZ1bGxCdWlsZFRhcmdldDwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS51c2VEZWZhdWx0QnVpbGRDbWQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5TY2FubmVyQ29uZmlnQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCTwvYnVpbGRTcGVjPg0KKwk8bmF0dXJlcz4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0LmNvcmUuY25hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5TY2FubmVyQ29uZmlnTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLm1hbmFnZWRCdWlsZE5hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmM0YWU4MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKQEAgLTAsMCArMSwzIEBACisjVGh1IE1hciAwNSAxNjoyOTowNCBQU1QgMjAwOQ0KK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQoraW5kZXhlcklkPW9yZy5lY2xpcHNlLmNkdC5jb3JlLmRvbXNvdXJjZWluZGV4ZXINCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAxYzk1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy8ueGRjZW52Lm1hawpAQCAtMCwwICsxLDE2IEBACisjCitfWERDQlVJTERDT1VOVCA9IDAKK2lmbmVxICgsJChmaW5kc3RyaW5nIHBhdGgsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDUEFUSCA9IAorb3ZlcnJpZGUgWERDUk9PVCA9IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOQorb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuLi8uLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlczsuLi8uLgorSE9TVE9TID0gV2luZG93cworZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlLmJsZCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTk5YmE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UuYmxkCkBAIC0wLDAgKzEsMTAgQEAKKy8qDQorICogID09PT09PT09IGhlbGxvL3BrZy9wYWNrYWdlLmJsZCA9PT09PT09PQ0KKyAqLw0KKw0KK3ZhciBCdWlsZCA9IHhkYy51c2VNb2R1bGUoJ3hkYy5ibGQuQnVpbGRFbnZpcm9ubWVudCcpOw0KK3ZhciBQa2cgPSB4ZGMudXNlTW9kdWxlKCd4ZGMuYmxkLlBhY2thZ2VDb250ZW50cycpOw0KKyANCitmb3IgZWFjaCAodmFyIHRhcmcgaW4gQnVpbGQudGFyZ2V0cykgew0KKyAgICBQa2cuYWRkRXhlY3V0YWJsZSgicHJvZyIsIHRhcmcsIHRhcmcucGxhdGZvcm0pLmFkZE9iamVjdHMoWyJwcm9nLmMiXSk7DQorfQ0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MzkwOTA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UubWFrCkBAIC0wLDAgKzEsMzAwIEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisKK3VuZXhwb3J0IE1BS0VGSUxFX0xJU1QKK292ZXJyaWRlIFBLR0RJUiA9IGhlbGxvL3BrZworWERDSU5DUyA9IC1JLiAtSSQoc3RyaXAgJChzdWJzdCA7LCAtSSwkKHN1YnN0ICQoc3BhY2UpLFwkKHNwYWNlKSwkKFhQS0dQQVRIKSkpKQorWERDQ0ZHRElSID0gcGFja2FnZS9jZmcvCisKKyMKKyMgVGhlIGZvbGxvd2luZyBkZXBlbmRlbmNpZXMgZW5zdXJlIHBhY2thZ2UubWFrIGlzIHJlYnVpbHQKKyMgaW4gdGhlIGV2ZW50IHRoYXQgc29tZSBpbmNsdWRlZCBCT00gc2NyaXB0IGNoYW5nZXMuCisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL0lUYXJnZXQueHMKK0Q6L3dvcmsvdHV0b3JpYWwvcmVwby9jb25maWcuYmxkOgorcGFja2FnZS5tYWs6IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9jb25maWcuYmxkCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUGFja2FnZUNvbnRlbnRzLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1BhY2thZ2VDb250ZW50cy54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9MaW51eDg2LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9MaW51eDg2LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9JVGFyZ2V0LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL0lUYXJnZXQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9NaW5ndy54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvTWluZ3cueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL01WQXJtOS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvTVZBcm05LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2k6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2k6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvVUNBcm05LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9VQ0FybTkueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90ZW1wbGF0ZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvTVNQNDMwLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL01TUDQzMC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9fZ2VuLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL19nZW4ueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUmVwb3NpdG9yeS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9SZXBvc2l0b3J5LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1NjcmlwdC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9TY3JpcHQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0J1aWxkRW52aXJvbm1lbnQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvQnVpbGRFbnZpcm9ubWVudC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvTGlicmFyeS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9MaWJyYXJ5LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3BhY2thZ2UueHMKK3BhY2thZ2UubWFrOiBwYWNrYWdlLmJsZAorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvVXRpbHMueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvVXRpbHMueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9FeGVjdXRhYmxlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0V4ZWN1dGFibGUueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXRGaWx0ZXIueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldEZpbHRlci54cworZW5kaWYKKwordGkudGFyZ2V0cy5DNjRQLnJvb3REaXIgPz0gZDovdGkvYzYwMDAvYWxjCit0aS50YXJnZXRzLnBhY2thZ2VCYXNlID89IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzLworZ251LnRhcmdldHMuTWluZ3cucm9vdERpciA/PSBlOi9ydHNjL21pbmd3CitnbnUudGFyZ2V0cy5wYWNrYWdlQmFzZSA/PSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvCisuUFJFQ0lPVVM6ICQoWERDQ0ZHRElSKS8lLm82NFAKKy5QSE9OWTogYWxsLDY0UCAuZGxscyw2NFAgLmV4ZWN1dGFibGVzLDY0UCB0ZXN0LDY0UAorYWxsLDY0UDogLmV4ZWN1dGFibGVzLDY0UAorLmV4ZWN1dGFibGVzLDY0UDogLmxpYnJhcmllcyw2NFAKKy5leGVjdXRhYmxlcyw2NFA6IC5kbGxzLDY0UAorLmRsbHMsNjRQOiAubGlicmFyaWVzLDY0UAorLmxpYnJhcmllcyw2NFA6IC5pbnRlcmZhY2VzCisJQCQoUk0pICRACisJQCQoVE9VQ0gpICIkQCIKKworLmhlbHA6OgorCUAkKEVDSE8pIHhkYyB0ZXN0LDY0UAorCUAkKEVDSE8pIHhkYyAuZXhlY3V0YWJsZXMsNjRQCisJQCQoRUNITykgeGRjIC5saWJyYXJpZXMsNjRQCisJQCQoRUNITykgeGRjIC5kbGxzLDY0UAorCisuUFJFQ0lPVVM6ICQoWERDQ0ZHRElSKS8lLm84NkdXCisuUEhPTlk6IGFsbCw4NkdXIC5kbGxzLDg2R1cgLmV4ZWN1dGFibGVzLDg2R1cgdGVzdCw4NkdXCithbGwsODZHVzogLmV4ZWN1dGFibGVzLDg2R1cKKy5leGVjdXRhYmxlcyw4NkdXOiAubGlicmFyaWVzLDg2R1cKKy5leGVjdXRhYmxlcyw4NkdXOiAuZGxscyw4NkdXCisuZGxscyw4NkdXOiAubGlicmFyaWVzLDg2R1cKKy5saWJyYXJpZXMsODZHVzogLmludGVyZmFjZXMKKwlAJChSTSkgJEAKKwlAJChUT1VDSCkgIiRAIgorCisuaGVscDo6CisJQCQoRUNITykgeGRjIHRlc3QsODZHVworCUAkKEVDSE8pIHhkYyAuZXhlY3V0YWJsZXMsODZHVworCUAkKEVDSE8pIHhkYyAubGlicmFyaWVzLDg2R1cKKwlAJChFQ0hPKSB4ZGMgLmRsbHMsODZHVworCisKK2FsbDogLmV4ZWN1dGFibGVzIAorLmV4ZWN1dGFibGVzOiAubGlicmFyaWVzIC5kbGxzCisubGlicmFyaWVzOiAuaW50ZXJmYWNlcworCitQS0dDRkdTIDo9ICQod2lsZGNhcmQgcGFja2FnZS54cykgcGFja2FnZS9idWlsZC5jZmcKKy5pbnRlcmZhY2VzOiBwYWNrYWdlL3BhY2thZ2UueGRjLmluYyBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oIHBhY2thZ2UueGRjICQoUEtHQ0ZHUykKKworLWluY2x1ZGUgcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAKK3BhY2thZ2UvJS54ZGMuaW5jIHBhY2thZ2UvJV9oZWxsby5wa2cuYyBwYWNrYWdlLyUuZGVmcy5oOiAlLnhkYyAkKFBLR0NGR1MpCisJQCQoTVNHKSBnZW5lcmF0aW5nIGludGVyZmFjZXMgZm9yIHBhY2thZ2UgaGVsbG8ucGtnIiAoYmVjYXVzZSAkQCBpcyBvbGRlciB0aGFuICQoZmlyc3R3b3JkICQ/KSkiIC4uLgorCSQoWFNSVU4pIC1mIHhkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2J1aWxkLnhzICQoTUtfSURMT1BUUykgLW0gcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAgLWkgcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMgcGFja2FnZS54ZGMKKworLmV4ZWN1dGFibGVzLDY0UCAuZXhlY3V0YWJsZXM6IHByb2cueDY0UAorCistaW5jbHVkZSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvcHJvZ194NjRQLmRlcAorZW5kaWYKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQIDogfCBwYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsCitwcm9nLng2NFA6CisJJChSTSkgJEAKKwlAJChNU0cpIGxuazY0UCAkQCAuLi4KKwkkKFJNKSAkKFhEQ0NGR0RJUikvJEAubWFwCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2xuazZ4IC13IC1xIC11IF9jX2ludDAwICAtcSAtbyAkQCBwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UCBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UCAgcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbCAgLWMgLW0gJChYRENDRkdESVIpLyRALm1hcCAtbCAkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9saWIvcnRzNjRwbHVzLmxpYgorCQorcHJvZy54NjRQOkNfRElSPQorcHJvZy54NjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3Byb2cueDY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKKworaWZlcSAoLCQod2lsZGNhcmQgLmxpYnJhcmllcyw2NFApKQorcHJvZy54NjRQIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jOiAubGlicmFyaWVzLDY0UAorZW5kaWYKKworcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgcGFja2FnZS9jZmcvcHJvZ194NjRQLmggcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbDogb3ZlcnJpZGUgX1BST0dfTkFNRSA6PSBwcm9nLng2NFAKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jOiBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnCitwcm9nLnRlc3QgdGVzdCw2NFAgdGVzdDogcHJvZy54NjRQLnRlc3QKKworcHJvZy54NjRQLnRlc3Q6OiBwcm9nLng2NFAKK2lmZXEgKCwkKF9URVNUTEVWRUwpKQorCUAkKE1BS0UpIC1SIC1yIC0tbm8tcHJpbnQtZGlyZWN0b3J5IC1mICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2JsZC94ZGMubWFrIF9URVNUTEVWRUw9MSBwcm9nLng2NFAudGVzdAorZWxzZQorCUAkKE1TRykgcnVubmluZyAkPCAgLi4uCisJJChjYWxsIEVYRUMucHJvZy54NjRQLCApIAorZW5kaWYKKworCitjbGVhbjo6IGNsZWFuLDY0UAorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLmMKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkYy5pbmMKKworY2xlYW4sNjRQOjoKKwktJChSTSkgcHJvZy54NjRQCisJLSQoUk0pIC50bXAscHJvZy54NjRQLCoKKworY2xlYW46OiAKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLnBqdAorLmV4ZWN1dGFibGVzLDg2R1cgLmV4ZWN1dGFibGVzOiBwcm9nLng4NkdXCisKKy1pbmNsdWRlIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubWFrCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5kZXAKK2VuZGlmCitwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1cgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVyA6IHwgcGFja2FnZS9jZmcvcHJvZ194ODZHVy54ZGwKK3Byb2cueDg2R1c6CisJJChSTSkgJEAKKwlAJChNU0cpIGxuazg2R1cgJEAgLi4uCisJJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS8vYmluL21pbmd3MzItZ2NjLmV4ZSAgICAtbyAkQCBwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1cgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVyAgcGFja2FnZS9jZmcvcHJvZ194ODZHVy54ZGwgIC1sc3RkYysrIC1MJChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9saWIKKwkKK3Byb2cueDg2R1c6TERfTElCUkFSWV9QQVRIPQorcHJvZy54ODZHVzogUEFUSDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCitwcm9nLng4NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworCitpZmVxICgsJCh3aWxkY2FyZCAubGlicmFyaWVzLDg2R1cpKQorcHJvZy54ODZHVyBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmM6IC5saWJyYXJpZXMsODZHVworZW5kaWYKKworcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuaCBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnhkbDogb3ZlcnJpZGUgX1BST0dfTkFNRSA6PSBwcm9nLng4NkdXCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmM6IHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuY2ZnCitwcm9nLnRlc3QgdGVzdCw4NkdXIHRlc3Q6IHByb2cueDg2R1cudGVzdAorCitwcm9nLng4NkdXLnRlc3Q6OiBwcm9nLng4NkdXCitpZmVxICgsJChfVEVTVExFVkVMKSkKKwlAJChNQUtFKSAtUiAtciAtLW5vLXByaW50LWRpcmVjdG9yeSAtZiAkKFhEQ1JPT1QpL3BhY2thZ2VzL3hkYy9ibGQveGRjLm1hayBfVEVTVExFVkVMPTEgcHJvZy54ODZHVy50ZXN0CitlbHNlCisJQCQoTVNHKSBydW5uaW5nICQ8ICAuLi4KKwkkKGNhbGwgRVhFQy5wcm9nLng4NkdXLCApIAorZW5kaWYKKworCitjbGVhbjo6IGNsZWFuLDg2R1cKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jZmcKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5kZXAKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cueGRjLmluYworCitjbGVhbiw4NkdXOjoKKwktJChSTSkgcHJvZy54ODZHVworCS0kKFJNKSAudG1wLHByb2cueDg2R1csKgorCislLGNvcHk6CisJQCQoaWYgJDwsLCQoTVNHKSBkb25cJ3Qga25vdyBob3cgdG8gYnVpbGQgJCo7IGV4aXQgMSkKKwlAJChNU0cpIGNwICQ8ICRACisJJChSTSkgJEAKKwkkKENQKSAkPCAkQAorcHJvZ194NjRQLm82NFAsY29weSA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQCitwcm9nX3g2NFAuczY0UCxjb3B5IDogcGFja2FnZS9jZmcvcHJvZ194NjRQLnM2NFAKK3Byb2cubzY0UCxjb3B5IDogcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFAKK3Byb2cuczY0UCxjb3B5IDogcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM2NFAKK3Byb2cuczg2R1csY29weSA6IHBhY2thZ2UvY2ZnL3Byb2cvcHJvZy5zODZHVworcHJvZy5vODZHVyxjb3B5IDogcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXCitwcm9nX3g4NkdXLnM4NkdXLGNvcHkgOiBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnM4NkdXCitwcm9nX3g4NkdXLm84NkdXLGNvcHkgOiBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm84NkdXCisKKyQoWERDQ0ZHRElSKSUuYyAkKFhEQ0NGR0RJUiklLmggJChYRENDRkdESVIpJS54ZGw6ICQoWERDQ0ZHRElSKSUuY2ZnIC5pbnRlcmZhY2VzICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzCisJQCQoTVNHKSAiY29uZmlndXJpbmcgJChfUFJPR19OQU1FKSBmcm9tICQ8IC4uLiIKKwkkKENPTkZJRykgJChfUFJPR19YU09QVFMpIHhkYy5jZmcgJChfUFJPR19OQU1FKSAkKFhEQ0NGR0RJUikkKi5jZmcgJChYRENDRkdESVIpJCoKKworLlBIT05ZOiByZWxlYXNlLGhlbGxvX3BrZworaGVsbG9fcGtnLnRhcjogcGFja2FnZS9idWlsZC5jZmcKK2hlbGxvX3BrZy50YXI6IHBhY2thZ2UvcGFja2FnZS5leHQueG1sCitoZWxsb19wa2cudGFyOiBwYWNrYWdlL3BhY2thZ2UueGRjLmluYworaGVsbG9fcGtnLnRhcjogcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKK2hlbGxvX3BrZy50YXI6IHBhY2thZ2UvcGFja2FnZS5yZWwuZG90CitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9yZWwvaGVsbG9fcGtnLnRhci5kZXAKK2VuZGlmCitwYWNrYWdlL3JlbC9oZWxsb19wa2cvaGVsbG8vcGtnL3BhY2thZ2UvcGFja2FnZS5yZWwueG1sOgorCitoZWxsb19wa2cudGFyOiBwYWNrYWdlL3JlbC9oZWxsb19wa2cueGRjLmluYyBwYWNrYWdlL3JlbC9oZWxsb19wa2cvaGVsbG8vcGtnL3BhY2thZ2UvcGFja2FnZS5yZWwueG1sCisJQCQoTVNHKSBtYWtpbmcgcmVsZWFzZSBmaWxlICRAICIoYmVjYXVzZSBvZiAkKGZpcnN0d29yZCAkPykpIiAuLi4KKwktJChSTSkgJEAKKwkkKGNhbGwgTUtSRUxUQVIscGFja2FnZS9yZWwvaGVsbG9fcGtnLnhkYy5pbmMscGFja2FnZS9yZWwvaGVsbG9fcGtnLnRhci5kZXApCisKKworcmVsZWFzZSByZWxlYXNlLGhlbGxvX3BrZzogYWxsIGhlbGxvX3BrZy50YXIKK2NsZWFuOjogLmNsZWFuCisJLSQoUk0pIGhlbGxvX3BrZy50YXIKKwktJChSTSkgcGFja2FnZS9yZWwvaGVsbG9fcGtnLnhkYy5pbmMKKwktJChSTSkgcGFja2FnZS9yZWwvaGVsbG9fcGtnLnRhci5kZXAKKworY2xlYW46OiAuY2xlYW4KKwktJChSTSkgLmxpYnJhcmllcyAubGlicmFyaWVzLCoKK2NsZWFuOjogCisJLSQoUk0pIC5kbGxzIC5kbGxzLCoKKyMKKyMgVGhlIGZvbGxvd2luZyBjbGVhbiBydWxlIHJlbW92ZXMgdXNlciBzcGVjaWZpZWQKKyMgZ2VuZXJhdGVkIGZpbGVzIG9yIGRpcmVjdG9yaWVzLgorIworCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZSkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvZXh0ZXJuYWwpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9leHRlcm5hbCkKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2xpYikpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2xpYikKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2NmZykpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2NmZykKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlL2NmZy9wcm9nKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvY2ZnL3Byb2cpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9yZWwpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9yZWwpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9pbnRlcm5hbCkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2ludGVybmFsKQorZW5kaWYKK2VuZGlmCitjbGVhbjo6CisJLSQoUk1ESVIpIHBhY2thZ2UKKworCitjbGVhbjo6IAorCS0kKFJNKSBwYWNrYWdlL2hlbGxvLnBrZy5wanQKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlLnhkYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDQ5NmU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UueGRjCkBAIC0wLDAgKzEsOCBAQAorLyoNCisgKiAgPT09PT09PT0gL2hlbGxvL3BrZy9wYWNrYWdlLnhkYyA9PT09PT09PQ0KKyAqLw0KKw0KKy8qISBPdXIgZmlyc3QgcGFja2FnZSAqLw0KK3BhY2thZ2UgaGVsbG8ucGtnIHsNCisgICAgLyogbW9kdWxlIGRlY2xhcmF0aW9ucyBub3JtYWxseSBnbyBoZXJlICovDQorfTsNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS8udmVyc19iMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvLnZlcnNfYjE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvLnZlcnNfYjE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvLnZlcnNfYzE1MCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlLy52ZXJzX2MxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlLy52ZXJzX2MxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlLy52ZXJzX2cxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS8udmVyc19nMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS8udmVyc19nMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS8udmVyc19yMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvLnZlcnNfcjE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvLnZlcnNfcjE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvLnhkYy10MzIgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS8ueGRjLXQzMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvLnhkYy10MzIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2J1aWxkLmNmZyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2J1aWxkLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNzYzMmEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvYnVpbGQuY2ZnCkBAIC0wLDAgKzEsMTIgQEAKK2lmIChwa2cuJHZlcnMubGVuZ3RoID49IDMpIHsKKyAgICBwa2cuJHZlcnMucHVzaChQYWNrYWdlcy54ZGMuc2VydmljZXMuZ2xvYmFsLlZlcnMuZ2V0RGF0ZSh4ZGMuY3NkKCkgKyAnLy4uJykpOworfQorCitwa2cuYnVpbGQubGlicmFyaWVzID0gWworXTsKKworcGtnLmJ1aWxkLmxpYkRlc2MgPSBbCitdOworaWYgKCdzdWZmaXgnIGluIHhkYy5vbVsneGRjLklQYWNrYWdlJCRMaWJEZXNjJ10pIHsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2cueDY0UC5tYXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZy54NjRQLm1hcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MGE5YTAwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2cueDY0UC5tYXAKQEAgLTAsMCArMSw2OTYgQEAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICAgICAgICAgICAgIFRNUzMyMEM2eCBMaW5rZXIgUEMgdjYuMS41ICAgICAgICAgICAgICAgICAgICAgIA0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKz4+IExpbmtlZCBUdWUgTWFyIDE3IDE0OjA1OjA1IDIwMDkNCisNCitPVVRQVVQgRklMRSBOQU1FOiAgIDxwcm9nLng2NFA+DQorRU5UUlkgUE9JTlQgU1lNQk9MOiAiX2NfaW50MDAiICBhZGRyZXNzOiAwMDgwMjcwMA0KKw0KKw0KK01FTU9SWSBDT05GSUdVUkFUSU9ODQorDQorICAgICAgICAgbmFtZSAgICAgICAgICAgIG9yaWdpbiAgICBsZW5ndGggICAgICB1c2VkICAgICB1bnVzZWQgICBhdHRyICAgIGZpbGwNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0tICAtLS0tLS0tLSAgLS0tLS0tLS0gIC0tLS0gIC0tLS0tLS0tDQorICBJUkFNICAgICAgICAgICAgICAgICAgMDA4MDAwMDAgICAwMDIwMDAwMCAgMDAwMDM5MDAgIDAwMWZjNzAwICBSVyBYDQorICBERFIgICAgICAgICAgICAgICAgICAgODAwMDAwMDAgICAxMDAwMDAwMCAgMDAwMDMzN2EgIDBmZmZjYzg2ICBSV0lYDQorDQorDQorU0VDVElPTiBBTExPQ0FUSU9OIE1BUA0KKw0KKyBvdXRwdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlcy8NCitzZWN0aW9uICAgcGFnZSAgICBvcmlnaW4gICAgICBsZW5ndGggICAgICAgaW5wdXQgc2VjdGlvbnMNCistLS0tLS0tLSAgLS0tLSAgLS0tLS0tLS0tLSAgLS0tLS0tLS0tLSAgIC0tLS0tLS0tLS0tLS0tLS0NCisucGluaXQgICAgIDAgICAgODAwMDAwMDAgICAgMDAwMDAwMDAgICAgIFVOSU5JVElBTElaRUQNCisNCisudGV4dCAgICAgIDAgICAgMDA4MDAwMDAgICAgMDAwMDM5MDAgICAgIA0KKyAgICAgICAgICAgICAgICAgIDAwODAwMDAwICAgIDAwMDAwNzgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2RvUHJpbnRfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDA3ODAgICAgMDAwMDAyYTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQ29yZV9tZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAwYTIwICAgIDAwMDAwMjgwICAgICBydHM2NHBsdXMubGliIDogbWVtb3J5Lm9iaiAoLnRleHQ6X2ZyZWUpDQorICAgICAgICAgICAgICAgICAgMDA4MDBjYTAgICAgMDAwMDAyMDAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3RhcnR1cC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDBlYTAgICAgMDAwMDAxZTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogSGVhcFN0ZC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxMDgwICAgIDAwMDAwMWEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDEyMjAgICAgMDAwMDAxODAgICAgIHJ0czY0cGx1cy5saWIgOiBtZW1vcnkub2JqICgudGV4dDpfbWFsbG9jKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxM2EwICAgIDAwMDAwMTgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFRleHQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMTUyMCAgICAwMDAwMDE2MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBFcnJvci5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VYX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxNjgwICAgIDAwMDAwMTIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEhlYXBTdGQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMTdhMCAgICAwMDAwMDEyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMThjMCAgICAwMDAwMDEwMCAgICAgYm9vdC5hNjRQIDogYXV0b2luaXQubzY0UCAoLnRleHQ6X19hdXRvX2luaXQpDQorICAgICAgICAgICAgICAgICAgMDA4MDE5YzAgICAgMDAwMDAxMDAgICAgIHJ0czY0cGx1cy5saWIgOiBzaW5pdC5vYmogKC50ZXh0Ol9jYWxsX2R0b3JzKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxYWMwICAgIDAwMDAwMTAwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IE1lbW9yeS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxYmMwICAgIDAwMDAwMTAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN0YXJ0dXAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMWNjMCAgICAwMDAwMDBlMCAgICAgcnRzNjRwbHVzLmxpYiA6IGV4aXQub2JqICgudGV4dDpfZXhpdCkNCisgICAgICAgICAgICAgICAgICAwMDgwMWRhMCAgICAwMDAwMDBlMCAgICAgICAgICAgICAgICAgICA6IG1lbXNldC5vYmogKC50ZXh0Ol9tZW1zZXQpDQorICAgICAgICAgICAgICAgICAgMDA4MDFlODAgICAgMDAwMDAwZTAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogQ29yZV9tZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAxZjYwICAgIDAwMDAwMGUwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MpDQorICAgICAgICAgICAgICAgICAgMDA4MDIwNDAgICAgMDAwMDAwZTAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogVGV4dC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyMTIwICAgIDAwMDAwMGMwICAgICBydHM2NHBsdXMubGliIDogdHJnZHJ2Lm9iaiAoLnRleHQ6X0hPU1R3cml0ZSkNCisgICAgICAgICAgICAgICAgICAwMDgwMjFlMCAgICAwMDAwMDBjMCAgICAgICAgICAgICAgICAgICA6IGRpdnUub2JqICgudGV4dDpfX2RpdnUpDQorICAgICAgICAgICAgICAgICAgMDA4MDIyYTAgICAgMDAwMDAwYzAgICAgICAgICAgICAgICAgICAgOiBhdGV4aXQub2JqICgudGV4dDpfYXRleGl0KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyMzYwICAgIDAwMDAwMGMwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c01pbi5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyNDIwICAgIDAwMDAwMGMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c01pbi5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyNGUwICAgIDAwMDAwMGMwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2Zvcm1hdE51bV9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMjVhMCAgICAwMDAwMDBjMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBUZXh0Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMjY2MCAgICAwMDAwMDBhMCAgICAgcnRzNjRwbHVzLmxpYiA6IHJlbXUub2JqICgudGV4dDpfX3JlbXUpDQorICAgICAgICAgICAgICAgICAgMDA4MDI3MDAgICAgMDAwMDAwYTAgICAgIGJvb3QuYTY0UCA6IGJvb3QubzY0UCAoLnRleHQ6X2NfaW50MDApDQorICAgICAgICAgICAgICAgICAgMDA4MDI3YTAgICAgMDAwMDAwYTAgICAgIHJ0czY0cGx1cy5saWIgOiBtZW1jcHk2NC5vYmogKC50ZXh0Ol9tZW1jcHkpDQorICAgICAgICAgICAgICAgICAgMDA4MDI4NDAgICAgMDAwMDAwYTAgICAgICAgICAgICAgICAgICAgOiBtZW1vcnkub2JqICgudGV4dDpfbWluc2VydCkNCisgICAgICAgICAgICAgICAgICAwMDgwMjhlMCAgICAwMDAwMDBhMCAgICAgICAgICAgICAgICAgICA6IG1lbW9yeS5vYmogKC50ZXh0Ol9tcmVtb3ZlKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyOTgwICAgIDAwMDAwMGEwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IEFzc2VydC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfQXNzZXJ0X3JhaXNlX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyYTIwICAgIDAwMDAwMGEwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEVycm9yLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMmFjMCAgICAwMDAwMDBhMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXNNaW4ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMmI2MCAgICAwMDAwMDBhMCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyYzAwICAgIDAwMDAwMDgwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IENvcmVfbGFiZWwubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfYXNzaWduTGFiZWxfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDJjODAgICAgMDAwMDAwODAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQ29yZV9wYXJhbXMubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyZDAwICAgIDAwMDAwMDgwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9vdXRwdXRfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDJkODAgICAgMDAwMDAwODAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3lzdGVtLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hhcl9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMmUwMCAgICAwMDAwMDA4MCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXN0ZW0ubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c3RlbV9ydHNFeGl0X19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyZTgwICAgIDAwMDAwMDgwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFRleHQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfcHJpbnRWaXNGeG5fX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDJmMDAgICAgMDAwMDAwODAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVGV4dC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfVGV4dF94cHJpbnRmX19JKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAyZjgwICAgIDAwMDAwMDYwICAgICBydHM2NHBsdXMubGliIDogdHJnbXNnLm9iaiAoLnRleHQ6X3JlYWRtc2cpDQorICAgICAgICAgICAgICAgICAgMDA4MDJmZTAgICAgMDAwMDAwNjAgICAgICAgICAgICAgICAgICAgOiB0cmdtc2cub2JqICgudGV4dDpfd3JpdGVtc2cpDQorICAgICAgICAgICAgICAgICAgMDA4MDMwNDAgICAgMDAwMDAwNjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogTWVtb3J5Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMGEwICAgIDAwMDAwMDYwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c01pbi5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMTAwICAgIDAwMDAwMDYwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMTYwICAgIDAwMDAwMDYwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDMxYzAgICAgMDAwMDAwNjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogVGV4dC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzIyMCAgICAwMDAwMDA0MCAgICAgcnRzNjRwbHVzLmxpYiA6IHNpbml0Lm9iaiAoLnRleHQ6X19fYWRkX2R0b3IpDQorICAgICAgICAgICAgICAgICAgMDA4MDMyNjAgICAgMDAwMDAwNDAgICAgICAgICAgICAgICAgICAgOiBhcmdzX21haW4ub2JqICgudGV4dDpfX2FyZ3NfbWFpbikNCisgICAgICAgICAgICAgICAgICAwMDgwMzJhMCAgICAwMDAwMDA0MCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBFcnJvci5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDMyZTAgICAgMDAwMDAwNDAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzMzIwICAgIDAwMDAwMDQwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MpDQorICAgICAgICAgICAgICAgICAgMDA4MDMzNjAgICAgMDAwMDAwNDAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3lzTWluLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzNhMCAgICAwMDAwMDA0MCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzNlMCAgICAwMDAwMDA0MCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNDIwICAgIDAwMDAwMDQwICAgICBwcm9nLm82NFAgKC50ZXh0KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNDYwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IHhkY19ub2luaXQubzY0UCAoLnRleHQ6X19feGRjX19pbml0KQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNDgwICAgIDAwMDAwMDIwICAgICBydHM2NHBsdXMubGliIDogX2xvY2sub2JqICgudGV4dDpfX25vcCkNCisgICAgICAgICAgICAgICAgICAwMDgwMzRhMCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICA6IGV4aXQub2JqICgudGV4dDpfYWJvcnQpDQorICAgICAgICAgICAgICAgICAgMDA4MDM0YzAgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogRXJyb3IubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM0ZTAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogRXJyb3IubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0Vycm9yX2luaXRfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM1MDAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM1MjAgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogR2F0ZU51bGwubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNTQwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEdhdGVOdWxsLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzU2MCAgICAwMDAwMDAyMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBHYXRlLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNTgwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEdhdGUubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM1YTAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzVjMCAgICAwMDAwMDAyMCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM1ZTAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzYwMCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBIZWFwU3RkLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNjIwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzY0MCAgICAwMDAwMDAyMCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBIZWFwU3RkLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM2NjAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9hbGxvY19fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzY4MCAgICAwMDAwMDAyMCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2ZyZWVfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM2YTAgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogTWVtb3J5Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNmMwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IE1lbW9yeS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM2ZTAgICAgMDAwMDAwMjAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTWVtb3J5Lm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRikNCisgICAgICAgICAgICAgICAgICAwMDgwMzcwMCAgICAwMDAwMDAyMCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0kpDQorICAgICAgICAgICAgICAgICAgMDA4MDM3MjAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzc0MCAgICAwMDAwMDAyMCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM3NjAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzNzgwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9leGl0X19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzN2EwICAgIDAwMDAwMDIwICAgICBwcm9nX3g2NFAubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSkNCisgICAgICAgICAgICAgICAgICAwMDgwMzdjMCAgICAwMDAwMDAyMCAgICAgcHJvZ194NjRQLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM3ZTAgICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogU3lzTWluLm82NFAgKC50ZXh0Ol94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM4MDAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM4MjAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfbGVhdmVfX0UpDQorICAgICAgICAgICAgICAgICAgMDA4MDM4NDAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzODYwICAgIDAwMDAwMDIwICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzODgwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzOGEwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFN5c3RlbS5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GKQ0KKyAgICAgICAgICAgICAgICAgIDAwODAzOGMwICAgIDAwMDAwMDIwICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IFRleHQubzY0UCAoLnRleHQ6X3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0YpDQorICAgICAgICAgICAgICAgICAgMDA4MDM4ZTAgICAgMDAwMDAwMjAgICAgIHByb2dfeDY0UC5vNjRQICgudGV4dDpfeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kpDQorDQorLnN0YWNrICAgICAwICAgIDgwMDAwMDAwICAgIDAwMDAxMDAwICAgICBVTklOSVRJQUxJWkVEDQorICAgICAgICAgICAgICAgICAgODAwMDAwMDAgICAgMDAwMDAwMDggICAgIGJvb3QuYTY0UCA6IGJvb3QubzY0UCAoLnN0YWNrKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAwMDA4ICAgIDAwMDAwZmY4ICAgICAtLUhPTEUtLQ0KKw0KKy5kYXRhICAgICAgMCAgICA4MDAwMDAwMCAgICAwMDAwMDAwMCAgICAgVU5JTklUSUFMSVpFRA0KKw0KKy5ic3MgICAgICAgMCAgICA4MDAwMDAwMCAgICAwMDAwMDAwMCAgICAgVU5JTklUSUFMSVpFRA0KKw0KKy5zeXNtZW0gICAgMCAgICA4MDAwMTAwMCAgICAwMDAwMTAwMCAgICAgVU5JTklUSUFMSVpFRA0KKyAgICAgICAgICAgICAgICAgIDgwMDAxMDAwICAgIDAwMDAwMDA4ICAgICBydHM2NHBsdXMubGliIDogbWVtb3J5Lm9iaiAoLnN5c21lbSkNCisgICAgICAgICAgICAgICAgICA4MDAwMTAwOCAgICAwMDAwMGZmOCAgICAgLS1IT0xFLS0NCisNCisuZmFyICAgICAgIDAgICAgODAwMDIwMDAgICAgMDAwMDA3NTQgICAgIFVOSU5JVElBTElaRUQNCisgICAgICAgICAgICAgICAgICA4MDAwMjAwMCAgICAwMDAwMDRkYyAgICAgcHJvZ194NjRQLm82NFAgKC5mYXIpDQorICAgICAgICAgICAgICAgICAgODAwMDI0ZGMgICAgMDAwMDAwMDQgICAgIHJ0czY0cGx1cy5saWIgOiBzaW5pdC5vYmogKC5mYXIpDQorICAgICAgICAgICAgICAgICAgODAwMDI0ZTAgICAgMDAwMDAxODggICAgICAgICAgICAgICAgICAgOiBhdGV4aXQub2JqICguZmFyKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNjY4ICAgIDAwMDAwMGQwICAgICAgICAgICAgICAgICAgIDogdHJnZHJ2Lm9iaiAoLmZhcikNCisgICAgICAgICAgICAgICAgICA4MDAwMjczOCAgICAwMDAwMDAwYyAgICAgICAgICAgICAgICAgICA6IGV4aXQub2JqICguZmFyKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzQ0ICAgIDAwMDAwMDA4ICAgICAgICAgICAgICAgICAgIDogX2xvY2sub2JqICguZmFyKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzRjICAgIDAwMDAwMDA4ICAgICAgICAgICAgICAgICAgIDogbWVtb3J5Lm9iaiAoLmZhcikNCisNCisuY29uc3QgICAgIDAgICAgODAwMDI3NTggICAgMDAwMDA2MTIgICAgIA0KKyAgICAgICAgICAgICAgICAgIDgwMDAyNzU4ICAgIDAwMDAwMjk1ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSkNCisgICAgICAgICAgICAgICAgICA4MDAwMjllZCAgICAwMDAwMDAwMyAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyOWYwICAgIDAwMDAwMTBiICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0Oi5zdHJpbmcpDQorICAgICAgICAgICAgICAgICAgODAwMDJhZmIgICAgMDAwMDAwMDQgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogQXNzZXJ0Lm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMmFmZiAgICAwMDAwMDAwMSAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyYjAwICAgIDAwMDAwMDQ0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSkNCisgICAgICAgICAgICAgICAgICA4MDAwMmI0NCAgICAwMDAwMDA0MCAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBUZXh0Lm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMmI4NCAgICAwMDAwMDAzMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBFcnJvci5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDJiYjYgICAgMDAwMDAwMmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogU3RhcnR1cC5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDJiZTAgICAgMDAwMDAwMjggICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjMDggICAgMDAwMDAwMjAgICAgIHRpLnRhcmdldHMucnRzNjAwMC5hNjRQIDogTG9nLm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMmMyOCAgICAwMDAwMDAyMCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmM0OCAgICAwMDAwMDAxZiAgICAgdGkudGFyZ2V0cy5ydHM2MDAwLmE2NFAgOiBDb3JlX21lbS5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDJjNjcgICAgMDAwMDAwMDEgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMmM2OCAgICAwMDAwMDAxYyAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyYzg0ICAgIDAwMDAwMDA0ICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IERpYWdzLm82NFAgKC5jb25zdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMmM4OCAgICAwMDAwMDAxMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBTeXN0ZW0ubzY0UCAoLmNvbnN0Ol9kaWd0b2hleCkNCisgICAgICAgICAgICAgICAgICA4MDAwMmM5OSAgICAwMDAwMDAwZCAgICAgcHJvZy5vNjRQICguY29uc3Q6LnN0cmluZykNCisgICAgICAgICAgICAgICAgICA4MDAwMmNhNiAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyY2E4ICAgIDAwMDAwMDA4ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyY2IwICAgIDAwMDAwMDA4ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjYjggICAgMDAwMDAwMDggICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyY2MwICAgIDAwMDAwMDA3ICAgICB0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCA6IFN5c3RlbS5vNjRQICguY29uc3QpDQorICAgICAgICAgICAgICAgICAgODAwMDJjYzcgICAgMDAwMDAwMDEgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMmNjOCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjY2MgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyY2QwICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjZDQgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjZDggICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmNkYyAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjZTAgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjZTQgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyY2U4ICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmNlYyAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmNmMCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJjZjQgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyY2Y4ICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmNmYyAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDAwICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDA0ICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMDggICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfSUhlYXBfSW50ZXJmYWNlX19CQVNFX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDBjICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDEwICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDE0ICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMTggICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMWMgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDIwICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSkNCisgICAgICAgICAgICAgICAgICA4MDAwMmQyNCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMjggICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMmMgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkMzAgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQzNCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDM4ICAgIDAwMDAwMDA0ICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQzYyAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ0MCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNDQgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ0OCAgICAwMDAwMDAwNCAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNGMgICAgMDAwMDAwMDQgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNTAgICAgMDAwMDAwMDIgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DKQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDUyICAgIDAwMDAwMDAyICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDJkNTQgICAgMDAwMDAwMDIgICAgIHByb2dfeDY0UC5vNjRQICguY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNTYgICAgMDAwMDAwMDIgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMmQ1OCAgICAwMDAwMDAwMiAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MpDQorICAgICAgICAgICAgICAgICAgODAwMDJkNWEgICAgMDAwMDAwMDIgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisgICAgICAgICAgICAgICAgICA4MDAwMmQ1YyAgICAwMDAwMDAwMiAgICAgcHJvZ194NjRQLm82NFAgKC5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ1ZSAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDYwICAgIDAwMDAwMDAyICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ2MiAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDY0ICAgIDAwMDAwMDAyICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQykNCisgICAgICAgICAgICAgICAgICA4MDAwMmQ2NiAgICAwMDAwMDAwMiAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZDY4ICAgIDAwMDAwMDAyICAgICBwcm9nX3g2NFAubzY0UCAoLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MpDQorDQorLmNpbml0ICAgICAwICAgIDgwMDAyZDcwICAgIDAwMDAwMmY0ICAgICANCisgICAgICAgICAgICAgICAgICA4MDAwMmQ3MCAgICAwMDAwMDIzYyAgICAgcHJvZ194NjRQLm82NFAgKC5jaW5pdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMmZhYyAgICAwMDAwMDAwNCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZmIwICAgIDAwMDAwMDJjICAgICBydHM2NHBsdXMubGliIDogZXhpdC5vYmogKC5jaW5pdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMmZkYyAgICAwMDAwMDAwNCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAyZmUwICAgIDAwMDAwMDJjICAgICAgICAgICAgICAgICAgIDogbWVtb3J5Lm9iaiAoLmNpbml0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMDBjICAgIDAwMDAwMDA0ICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDMwMTAgICAgMDAwMDAwMWMgICAgICAgICAgICAgICAgICAgOiBfbG9jay5vYmogKC5jaW5pdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMzAyYyAgICAwMDAwMDAwNCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMDMwICAgIDAwMDAwMDFjICAgICAgICAgICAgICAgICAgIDogYXRleGl0Lm9iaiAoLmNpbml0KQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMDRjICAgIDAwMDAwMDA0ICAgICAtLUhPTEUtLSBbZmlsbCA9IDBdDQorICAgICAgICAgICAgICAgICAgODAwMDMwNTAgICAgMDAwMDAwMGMgICAgICAgICAgICAgICAgICAgOiBzaW5pdC5vYmogKC5jaW5pdCkNCisgICAgICAgICAgICAgICAgICA4MDAwMzA1YyAgICAwMDAwMDAwNCAgICAgLS1IT0xFLS0gW2ZpbGwgPSAwXQ0KKyAgICAgICAgICAgICAgICAgIDgwMDAzMDYwICAgIDAwMDAwMDA0ICAgICAoLnBhZC5jaW5pdCkgW2ZpbGwgPSAwXQ0KKw0KKy5hcmdzICAgICAgMCAgICA4MDAwMzA2NCAgICAwMDAwMDIwMCAgICAgDQorICAgICAgICAgICAgICAgICAgODAwMDMwNjQgICAgMDAwMDAyMDAgICAgIC0tSE9MRS0tIFtmaWxsID0gMF0NCisNCisuY2lvICAgICAgIDAgICAgODAwMDMyNjggICAgMDAwMDAxMjAgICAgIFVOSU5JVElBTElaRUQNCisgICAgICAgICAgICAgICAgICA4MDAwMzI2OCAgICAwMDAwMDEyMCAgICAgcnRzNjRwbHVzLmxpYiA6IHRyZ21zZy5vYmogKC5jaW8pDQorDQorDQorR0xPQkFMIFNZTUJPTFM6IFNPUlRFRCBBTFBIQUJFVElDQUxMWSBCWSBOYW1lIA0KKw0KK2FkZHJlc3MgICAgbmFtZQ0KKy0tLS0tLS0tICAgLS0tLQ0KKzgwMDAwMDAwICAgJGJzcw0KKzgwMDAwMDAwICAgLmJzcw0KK2ZmZmZmZmZmICAgLmRhdGENCitmZmZmZmZmZiAgIC50ZXh0DQorMDA4MDM0YTAgICBDJCRFWElUDQorMDA4MDMwMzggICBDJCRJTyQkDQorMDA4MDIxMjAgICBfSE9TVHdyaXRlDQorODAwMDMyNjggICBfX0NJT0JVRl8NCiswMDAwMTAwMCAgIF9fU1RBQ0tfU0laRQ0KKzAwMDAxMDAwICAgX19TWVNNRU1fU0laRQ0KKzgwMDAyNDAwICAgX19fQVNNX18NCis4MDAwMjQwNCAgIF9fX0lTQV9fDQorODAwMDI0MDggICBfX19QTEFUX18NCis4MDAwMjQwYyAgIF9fX1RBUkdfXw0KKzgwMDAyNzQwICAgX19fVElfZW5hYmxlX2V4aXRfcHJvZmlsZV9vdXRwdXQNCitmZmZmZmZmZiAgIF9fX1RJX3Bwcm9mX291dF9obmRsDQorZmZmZmZmZmYgICBfX19USV9wcm9mX2RhdGFfc2l6ZQ0KK2ZmZmZmZmZmICAgX19fVElfcHJvZl9kYXRhX3N0YXJ0DQorODAwMDI0MTAgICBfX19UUkRSX18NCiswMDgwMzIyMCAgIF9fX2FkZF9kdG9yDQorODAwMDI0ZTAgICBfX19hdGV4aXRfZnVuY19pZF9fDQorZmZmZmZmZmYgICBfX19iaW5pdF9fDQorODAwMDAwMDAgICBfX19ic3NfXw0KKzgwMDAzMDY0ICAgX19fY19hcmdzX18NCis4MDAwMmQ3MCAgIF9fX2Npbml0X18NCitmZmZmZmZmZiAgIF9fX2RhdGFfXw0KK2ZmZmZmZmZmICAgX19fZWRhdGFfXw0KKzgwMDAwMDAwICAgX19fZW5kX18NCitmZmZmZmZmZiAgIF9fX2V0ZXh0X18NCitmZmZmZmZmZiAgIF9fX3Bpbml0X18NCitmZmZmZmZmZiAgIF9fX3RleHRfXw0KKzAwODAzNDYwICAgX19feGRjX19pbml0DQorODAwMDI0ZDggICBfX194ZGNfX2luaXRfX2FkZHINCiswMDgwMzI2MCAgIF9fYXJnc19tYWluDQorMDA4MDE4YzAgICBfX2F1dG9faW5pdA0KKzgwMDAyNzM4ICAgX19jbGVhbnVwX3B0cg0KKzAwODAyMWUwICAgX19kaXZ1DQorODAwMDI3M2MgICBfX2R0b3JzX3B0cg0KKzgwMDAyNzQ0ICAgX19sb2NrDQorMDA4MDM0ODAgICBfX25vcA0KKzAwODAyNjYwICAgX19yZW11DQorODAwMDAwMDAgICBfX3N0YWNrDQorODAwMDEwMDAgICBfX3N5c19tZW1vcnkNCis4MDAwMjc0OCAgIF9fdW5sb2NrDQorMDA4MDM0YTAgICBfYWJvcnQNCiswMDAwMDIwMCAgIF9hcmdzaXplDQorMDA4MDIyYTAgICBfYXRleGl0DQorMDA4MDI3MDAgICBfY19pbnQwMA0KKzAwODAxOWMwICAgX2NhbGxfZHRvcnMNCis4MDAwMjRkYyAgIF9kdG9ycw0KKzAwODAxY2MwICAgX2V4aXQNCiswMDgwMGEyMCAgIF9mcmVlDQorMDA4MDM0MjAgICBfbWFpbg0KKzAwODAxMjIwICAgX21hbGxvYw0KKzAwODAyN2EwICAgX21lbWNweQ0KKzAwODAxZGEwICAgX21lbXNldA0KKzAwODAyZjgwICAgX3JlYWRtc2cNCiswMDgwMmZlMCAgIF93cml0ZW1zZw0KKzgwMDAyY2M4ICAgX3hkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQw0KKzgwMDAyNDE0ICAgX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YNCiswMDgwMjk4MCAgIF94ZGNfcnVudGltZV9Bc3NlcnRfcmFpc2VfX0kNCis4MDAwMmNjYyAgIF94ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MNCis4MDAwMmNkMCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DDQorODAwMDJjZDQgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MNCis4MDAwMmNkOCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DDQorODAwMDJkNTAgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DDQorODAwMDI0MTYgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YNCiswMDgwMmMwMCAgIF94ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsX19JDQorMDA4MDJjODAgICBfeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kNCiswMDgwMDc4MCAgIF94ZGNfcnVudGltZV9Db3JlX2NyZWF0ZU9iamVjdF9fSQ0KKzAwODAxZTgwICAgX3hkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JDQorODAwMDI0MTggICBfeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WDQorODAwMDI0MWEgICBfeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WDQorODAwMDJjZGMgICBfeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DDQorODAwMDJjZTAgICBfeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MNCis4MDAwMjQxYyAgIF94ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQxZSAgIF94ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXRlX19WDQorMDA4MDMyYTAgICBfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0YNCiswMDgwMzRjMCAgIF94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GDQorMDA4MDM0ZTAgICBfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRg0KKzgwMDAyZDU0ICAgX3hkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DDQorODAwMDJjZTQgICBfeGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DDQorMDA4MDM1MDAgICBfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UNCiswMDgwMmEyMCAgIF94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRg0KKzgwMDAyY2U4ICAgX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlSG9va19fQw0KKzAwODAxNTIwICAgX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRg0KKzgwMDAyNDI0ICAgX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVg0KKzAwODAzNTIwICAgX3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GDQorMDA4MDM1NDAgICBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YNCis4MDAwMjQyMCAgIF94ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVg0KKzAwODAzNTYwICAgX3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YNCiswMDgwMzU4MCAgIF94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GDQorODAwMDJjZWMgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MNCis4MDAwMmNmMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MNCis4MDAwMmNmNCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MNCis4MDAwMmNmOCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MNCiswMDgwMzJlMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MNCiswMDgwMGVhMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0luc3RhbmNlX2luaXRfX0YNCis4MDAwMmJlMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQw0KKzgwMDAyY2ZjICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MNCis4MDAwMmQwMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQw0KKzgwMDAyZDA0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MNCis4MDAwMmQ1OCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MNCis4MDAwMjQ0MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDZjICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyYzI4ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DDQorODAwMDJjNjggICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQw0KKzAwODAxZjYwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MNCiswMDgwMzMyMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TDQorODAwMDI0NjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WDQorMDA4MDM1YTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRQ0KKzAwODAxMDgwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YNCiswMDgwMzVjMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UNCiswMDgwMTY4MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0YNCiswMDgwMzVlMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FDQorMDA4MDM2MDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9nZXRTdGF0c19fRg0KKzAwODAzNjIwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRQ0KKzAwODAzNjQwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRg0KKzgwMDAyZDA4ICAgX3hkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQw0KKzgwMDAyZDBjICAgX3hkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DDQorODAwMDI0NzAgICBfeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDcyICAgX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WDQorMDA4MDMyZTAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGVfX2xhYmVsX19TDQorMDA4MDMzMjAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfX2RlbGV0ZV9fUw0KKzAwODAzNjYwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfYWxsb2NfX0UNCiswMDgwMzY4MCAgIF94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2ZyZWVfX0UNCis4MDAwMmQ1YyAgIF94ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQw0KKzgwMDAyNDc0ICAgX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQ3OCAgIF94ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGF0ZV9fVg0KKzAwODAxYWMwICAgX3hkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRg0KKzAwODAzNmEwICAgX3hkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0YNCis4MDAwMmQxMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQw0KKzAwODAzNmMwICAgX3hkY19ydW50aW1lX01lbW9yeV9mcmVlX19GDQorMDA4MDM2ZTAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0YNCiswMDgwMzA0MCAgIF94ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GDQorODAwMDI0N2MgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQ4MCAgIF94ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YNCiswMDAwMDAwMSAgIF94ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DDQorMDAwMDAwMDEgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MNCis4MDAwMmQxNCAgIF94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DDQorMDA4MDFiYzAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19GDQorMDA4MDM3MDAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JDQorODAwMDJjYTggICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MNCis4MDAwMmNiMCAgIF94ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DDQorODAwMDJkMTggICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MNCiswMDgwMzcyMCAgIF94ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JDQorODAwMDJkMjAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BDQorODAwMDJkMWMgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DDQorODAwMDJjYjggICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19BDQorODAwMDJkMjQgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DDQorMDA4MDBjYTAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kNCis4MDAwMjAwMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BDQorODAwMDI0ODggICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDhjICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXRlX19WDQorMDA4MDM3NDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FDQorMDA4MDMwYTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19GDQorMDA4MDM3NjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FDQorMDA4MDIzNjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GDQorODAwMDJkMjggICBfeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MNCiswMDgwMzc4MCAgIF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRQ0KKzAwODAzMzYwICAgX3hkY19ydW50aW1lX1N5c01pbl9leGl0X19GDQorODAwMDJkNjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DDQorMDA4MDI0MjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GDQorODAwMDJkMmMgICBfeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MNCiswMDgwMmQwMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JDQorMDA4MDM3YTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FDQorMDA4MDJhYzAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19GDQorMDA4MDM3YzAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FDQorMDA4MDM3ZTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GDQorMDA4MDM4MDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UNCiswMDgwMzgyMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRQ0KKzgwMDAyNGEwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQQ0KKzgwMDAyZDMwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MNCis4MDAwMjQ5OCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WDQorODAwMDI0YzAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhdGVfX1YNCiswMDgwMzg0MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UNCiswMDgwMzg2MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0YNCiswMDgwMzc2MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2Fib3J0X19FDQorMDA4MDM3ODAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9leGl0X19FDQorMDA4MDM3YTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9wdXRjaF9fRQ0KKzAwODAzN2MwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcmVhZHlfX0UNCiswMDgwMzg4MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0YNCiswMDgwMzNhMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRQ0KKzAwODAzMTAwICAgX3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19GDQorMDA4MDMxMDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19GDQorMDA4MDAwMDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2RvUHJpbnRfX0kNCis4MDAwMmQzNCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DDQorMDA4MDI0ZTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2Zvcm1hdE51bV9fSQ0KKzAwODAyYjYwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kNCiswMDgwMzNlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FDQorMDA4MDMxNjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRg0KKzAwODAyZDgwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaGFyX19JDQorMDA4MDJlMDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3J0c0V4aXRfX0kNCiswMDgwMzhhMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRg0KKzAwODAzMTYwICAgX3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19GDQorMDA4MDM4YTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GDQorODAwMDI0Y2MgICBfeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjRkMCAgIF94ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMmQ2NCAgIF94ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MNCis4MDAwMjc1OCAgIF94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0ENCis4MDAwMmQzOCAgIF94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MNCiswMDgwMzFjMCAgIF94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GDQorODAwMDJkNjggICBfeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQw0KKzgwMDAyZDNjICAgX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DDQorODAwMDJkNDAgICBfeGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DDQorODAwMDJkNDQgICBfeGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQw0KKzgwMDAyYjAwICAgX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQQ0KKzgwMDAyZDQ4ICAgX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQw0KKzAwODAyZTgwICAgX3hkY19ydW50aW1lX1RleHRfcHJpbnRWaXNGeG5fX0kNCiswMDgwMTdhMCAgIF94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRg0KKzAwODAyNWEwICAgX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19GDQorMDA4MDEzYTAgICBfeGRjX3J1bnRpbWVfVGV4dF9wdXRTaXRlX19GDQorMDA4MDM4YzAgICBfeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRg0KKzAwODAyMDQwICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlMl9fSQ0KKzgwMDAyZDRjICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DDQorMDA4MDM4ZTAgICBfeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kNCiswMDgwMmYwMCAgIF94ZGNfcnVudGltZV9UZXh0X3hwcmludGZfX0kNCitmZmZmZmZmZiAgIGJpbml0DQorODAwMDJkNzAgICBjaW5pdA0KK2ZmZmZmZmZmICAgZWRhdGENCis4MDAwMDAwMCAgIGVuZA0KK2ZmZmZmZmZmICAgZXRleHQNCitmZmZmZmZmZiAgIHBpbml0DQorDQorDQorR0xPQkFMIFNZTUJPTFM6IFNPUlRFRCBCWSBTeW1ib2wgQWRkcmVzcyANCisNCithZGRyZXNzICAgIG5hbWUNCistLS0tLS0tLSAgIC0tLS0NCiswMDAwMDAwMSAgIF94ZGNfcnVudGltZV9TdGFydHVwX19FWEVDRlhOX19DDQorMDAwMDAwMDEgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0MNCiswMDAwMDIwMCAgIF9hcmdzaXplDQorMDAwMDEwMDAgICBfX1NUQUNLX1NJWkUNCiswMDAwMTAwMCAgIF9fU1lTTUVNX1NJWkUNCiswMDgwMDAwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fZG9QcmludF9fSQ0KKzAwODAwNzgwICAgX3hkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JDQorMDA4MDBhMjAgICBfZnJlZQ0KKzAwODAwY2EwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JDQorMDA4MDBlYTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9JbnN0YW5jZV9pbml0X19GDQorMDA4MDEwODAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRg0KKzAwODAxMjIwICAgX21hbGxvYw0KKzAwODAxM2EwICAgX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRg0KKzAwODAxNTIwICAgX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRg0KKzAwODAxNjgwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRg0KKzAwODAxN2EwICAgX3hkY19ydW50aW1lX1RleHRfcHV0TGFiX19GDQorMDA4MDE4YzAgICBfX2F1dG9faW5pdA0KKzAwODAxOWMwICAgX2NhbGxfZHRvcnMNCiswMDgwMWFjMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0YNCiswMDgwMWJjMCAgIF94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0YNCiswMDgwMWNjMCAgIF9leGl0DQorMDA4MDFkYTAgICBfbWVtc2V0DQorMDA4MDFlODAgICBfeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0kNCiswMDgwMWY2MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY3JlYXRlX19TDQorMDA4MDIwNDAgICBfeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JDQorMDA4MDIxMjAgICBfSE9TVHdyaXRlDQorMDA4MDIxZTAgICBfX2RpdnUNCiswMDgwMjJhMCAgIF9hdGV4aXQNCiswMDgwMjM2MCAgIF94ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0YNCiswMDgwMjQyMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0YNCiswMDgwMjRlMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fZm9ybWF0TnVtX19JDQorMDA4MDI1YTAgICBfeGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0YNCiswMDgwMjY2MCAgIF9fcmVtdQ0KKzAwODAyNzAwICAgX2NfaW50MDANCiswMDgwMjdhMCAgIF9tZW1jcHkNCiswMDgwMjk4MCAgIF94ZGNfcnVudGltZV9Bc3NlcnRfcmFpc2VfX0kNCiswMDgwMmEyMCAgIF94ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRg0KKzAwODAyYWMwICAgX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRg0KKzAwODAyYjYwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0kNCiswMDgwMmMwMCAgIF94ZGNfcnVudGltZV9Db3JlX2Fzc2lnbkxhYmVsX19JDQorMDA4MDJjODAgICBfeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kNCiswMDgwMmQwMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JDQorMDA4MDJkODAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoYXJfX0kNCiswMDgwMmUwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcnRzRXhpdF9fSQ0KKzAwODAyZTgwICAgX3hkY19ydW50aW1lX1RleHRfcHJpbnRWaXNGeG5fX0kNCiswMDgwMmYwMCAgIF94ZGNfcnVudGltZV9UZXh0X3hwcmludGZfX0kNCiswMDgwMmY4MCAgIF9yZWFkbXNnDQorMDA4MDJmZTAgICBfd3JpdGVtc2cNCiswMDgwMzAzOCAgIEMkJElPJCQNCiswMDgwMzA0MCAgIF94ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GDQorMDA4MDMwYTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19GDQorMDA4MDMxMDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0YNCiswMDgwMzEwMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0YNCiswMDgwMzE2MCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GDQorMDA4MDMxNjAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0YNCiswMDgwMzFjMCAgIF94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GDQorMDA4MDMyMjAgICBfX19hZGRfZHRvcg0KKzAwODAzMjYwICAgX19hcmdzX21haW4NCiswMDgwMzJhMCAgIF94ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRg0KKzAwODAzMmUwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUw0KKzAwODAzMmUwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlX19sYWJlbF9fUw0KKzAwODAzMzIwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MNCiswMDgwMzMyMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fZGVsZXRlX19TDQorMDA4MDMzNjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0YNCiswMDgwMzNhMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRQ0KKzAwODAzM2UwICAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfX0UNCiswMDgwMzQyMCAgIF9tYWluDQorMDA4MDM0NjAgICBfX194ZGNfX2luaXQNCiswMDgwMzQ4MCAgIF9fbm9wDQorMDA4MDM0YTAgICBDJCRFWElUDQorMDA4MDM0YTAgICBfYWJvcnQNCiswMDgwMzRjMCAgIF94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GDQorMDA4MDM0ZTAgICBfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRg0KKzAwODAzNTAwICAgX3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19FDQorMDA4MDM1MjAgICBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0YNCiswMDgwMzU0MCAgIF94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRg0KKzAwODAzNTYwICAgX3hkY19ydW50aW1lX0dhdGVfZW50ZXJTeXN0ZW1fX0YNCiswMDgwMzU4MCAgIF94ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GDQorMDA4MDM1YTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRQ0KKzAwODAzNWMwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRQ0KKzAwODAzNWUwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UNCiswMDgwMzYwMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19GDQorMDA4MDM2MjAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19FDQorMDA4MDM2NDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GDQorMDA4MDM2NjAgICBfeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9hbGxvY19fRQ0KKzAwODAzNjgwICAgX3hkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfZnJlZV9fRQ0KKzAwODAzNmEwICAgX3hkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0YNCiswMDgwMzZjMCAgIF94ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRg0KKzAwODAzNmUwICAgX3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19GDQorMDA4MDM3MDAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JDQorMDA4MDM3MjAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9yZXNldF9fSQ0KKzAwODAzNzQwICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRQ0KKzAwODAzNzYwICAgX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRQ0KKzAwODAzNzYwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfYWJvcnRfX0UNCiswMDgwMzc4MCAgIF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRQ0KKzAwODAzNzgwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfZXhpdF9fRQ0KKzAwODAzN2EwICAgX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRQ0KKzAwODAzN2EwICAgX3hkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcHV0Y2hfX0UNCiswMDgwMzdjMCAgIF94ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UNCiswMDgwMzdjMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X3JlYWR5X19FDQorMDA4MDM3ZTAgICBfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GDQorMDA4MDM4MDAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UNCiswMDgwMzgyMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9sZWF2ZV9fRQ0KKzAwODAzODQwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRQ0KKzAwODAzODYwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRg0KKzAwODAzODgwICAgX3hkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRg0KKzAwODAzOGEwICAgX3hkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19GDQorMDA4MDM4YTAgICBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19GDQorMDA4MDM4YzAgICBfeGRjX3J1bnRpbWVfVGV4dF9yb3BlVGV4dF9fRg0KKzAwODAzOGUwICAgX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JDQorODAwMDAwMDAgICAkYnNzDQorODAwMDAwMDAgICAuYnNzDQorODAwMDAwMDAgICBfX19ic3NfXw0KKzgwMDAwMDAwICAgX19fZW5kX18NCis4MDAwMDAwMCAgIF9fc3RhY2sNCis4MDAwMDAwMCAgIGVuZA0KKzgwMDAxMDAwICAgX19zeXNfbWVtb3J5DQorODAwMDIwMDAgICBfeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQQ0KKzgwMDAyNDAwICAgX19fQVNNX18NCis4MDAwMjQwNCAgIF9fX0lTQV9fDQorODAwMDI0MDggICBfX19QTEFUX18NCis4MDAwMjQwYyAgIF9fX1RBUkdfXw0KKzgwMDAyNDEwICAgX19fVFJEUl9fDQorODAwMDI0MTQgICBfeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDE2ICAgX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WDQorODAwMDI0MTggICBfeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WDQorODAwMDI0MWEgICBfeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WDQorODAwMDI0MWMgICBfeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WDQorODAwMDI0MWUgICBfeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyNDIwICAgX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WDQorODAwMDI0MjQgICBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WDQorODAwMDI0NDAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQ2MCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1YNCis4MDAwMjQ2YyAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMjQ3MCAgIF94ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WDQorODAwMDI0NzIgICBfeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQ3NCAgIF94ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WDQorODAwMDI0NzggICBfeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhdGVfX1YNCis4MDAwMjQ3YyAgIF94ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVg0KKzgwMDAyNDgwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyNDg4ICAgX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjQ4YyAgIF94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyNDk4ICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YNCis4MDAwMjRhMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0ENCis4MDAwMjRjMCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGF0ZV9fVg0KKzgwMDAyNGNjICAgX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WDQorODAwMDI0ZDAgICBfeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXRlX19WDQorODAwMDI0ZDggICBfX194ZGNfX2luaXRfX2FkZHINCis4MDAwMjRkYyAgIF9kdG9ycw0KKzgwMDAyNGUwICAgX19fYXRleGl0X2Z1bmNfaWRfXw0KKzgwMDAyNzM4ICAgX19jbGVhbnVwX3B0cg0KKzgwMDAyNzNjICAgX19kdG9yc19wdHINCis4MDAwMjc0MCAgIF9fX1RJX2VuYWJsZV9leGl0X3Byb2ZpbGVfb3V0cHV0DQorODAwMDI3NDQgICBfX2xvY2sNCis4MDAwMjc0OCAgIF9fdW5sb2NrDQorODAwMDI3NTggICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BDQorODAwMDJiMDAgICBfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BDQorODAwMDJiZTAgICBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0MNCis4MDAwMmMyOCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQw0KKzgwMDAyYzY4ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MNCis4MDAwMmNhOCAgIF94ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQw0KKzgwMDAyY2IwICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MNCis4MDAwMmNiOCAgIF94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0ENCis4MDAwMmNjOCAgIF94ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWRfX0MNCis4MDAwMmNjYyAgIF94ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MNCis4MDAwMmNkMCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DDQorODAwMDJjZDQgICBfeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MNCis4MDAwMmNkOCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DDQorODAwMDJjZGMgICBfeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DDQorODAwMDJjZTAgICBfeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MNCis4MDAwMmNlNCAgIF94ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MNCis4MDAwMmNlOCAgIF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MNCis4MDAwMmNlYyAgIF94ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQw0KKzgwMDAyY2YwICAgX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQw0KKzgwMDAyY2Y0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQw0KKzgwMDAyY2Y4ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQw0KKzgwMDAyY2ZjICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MNCis4MDAwMmQwMCAgIF94ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQw0KKzgwMDAyZDA0ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MNCis4MDAwMmQwOCAgIF94ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MNCis4MDAwMmQwYyAgIF94ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQw0KKzgwMDAyZDEwICAgX3hkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DDQorODAwMDJkMTQgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQw0KKzgwMDAyZDE4ICAgX3hkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DDQorODAwMDJkMWMgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19DDQorODAwMDJkMjAgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BDQorODAwMDJkMjQgICBfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DDQorODAwMDJkMjggICBfeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MNCis4MDAwMmQyYyAgIF94ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQw0KKzgwMDAyZDMwICAgX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MNCis4MDAwMmQzNCAgIF94ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DDQorODAwMDJkMzggICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DDQorODAwMDJkM2MgICBfeGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0MNCis4MDAwMmQ0MCAgIF94ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MNCis4MDAwMmQ0NCAgIF94ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DDQorODAwMDJkNDggICBfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DDQorODAwMDJkNGMgICBfeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MNCis4MDAwMmQ1MCAgIF94ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MNCis4MDAwMmQ1NCAgIF94ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQw0KKzgwMDAyZDU4ICAgX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQw0KKzgwMDAyZDVjICAgX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DDQorODAwMDJkNjAgICBfeGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0X19DDQorODAwMDJkNjQgICBfeGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DDQorODAwMDJkNjggICBfeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQw0KKzgwMDAyZDcwICAgX19fY2luaXRfXw0KKzgwMDAyZDcwICAgY2luaXQNCis4MDAwMzA2NCAgIF9fX2NfYXJnc19fDQorODAwMDMyNjggICBfX0NJT0JVRl8NCitmZmZmZmZmZiAgIC5kYXRhDQorZmZmZmZmZmYgICAudGV4dA0KK2ZmZmZmZmZmICAgX19fVElfcHByb2Zfb3V0X2huZGwNCitmZmZmZmZmZiAgIF9fX1RJX3Byb2ZfZGF0YV9zaXplDQorZmZmZmZmZmYgICBfX19USV9wcm9mX2RhdGFfc3RhcnQNCitmZmZmZmZmZiAgIF9fX2Jpbml0X18NCitmZmZmZmZmZiAgIF9fX2RhdGFfXw0KK2ZmZmZmZmZmICAgX19fZWRhdGFfXw0KK2ZmZmZmZmZmICAgX19fZXRleHRfXw0KK2ZmZmZmZmZmICAgX19fcGluaXRfXw0KK2ZmZmZmZmZmICAgX19fdGV4dF9fDQorZmZmZmZmZmYgICBiaW5pdA0KK2ZmZmZmZmZmICAgZWRhdGENCitmZmZmZmZmZiAgIGV0ZXh0DQorZmZmZmZmZmYgICBwaW5pdA0KKw0KK1syMjMgc3ltYm9sc10NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY3NWY2NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFAuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYjcxYWMxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQLmRlcApAQCAtMCwwICsxLDMzIEBACitwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UDogcHJvZy5jIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oIA0KK3Byb2cuYzoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW50Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMGNlN2ZiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vODZHVwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1cuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjNzEyZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXLmRlcApAQCAtMCwwICsxLDMwIEBACitwYWNrYWdlL2NmZy9wcm9nLy9wcm9nLm84NkdXOiBwcm9nLmMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oIA0KK3Byb2cuYzoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvc3RkLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5Lmg6DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjNWViZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLmMKQEAgLTAsMCArMSw3MDU0IEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjZGVmaW5lIF9fbmVzdGVkX18KKyNkZWZpbmUgX19jb25maWdfXworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCisvKgorICogPT09PT09PT0gR0VORVJBVEVEIFNFQ1RJT05TID09PT09PT09CisgKiAgICAgCisgKiAgICAgTU9EVUxFIElOQ0xVREVTCisgKiAgICAgCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTlRFUk5BTFMKKyAqICAgICA8bW9kdWxlLW5hbWU+IElOSEVSSVRTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBWVEFCTEUKKyAqICAgICA8bW9kdWxlLW5hbWU+IFBBVENIIFRBQkxFCisgKiAgICAgPG1vZHVsZS1uYW1lPiBERUNMQVJBVElPTlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IE9CSkVDVCBPRkZTRVRTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBURU1QTEFURVMKKyAqICAgICA8bW9kdWxlLW5hbWU+IElOSVRJQUxJWkVSUworICogICAgIDxtb2R1bGUtbmFtZT4gRlVOQ1RJT04gU1RVQlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFBST1hZIEJPRFkKKyAqICAgICA8bW9kdWxlLW5hbWU+IE9CSkVDVCBERVNDUklQVE9SCisgKiAgICAgPG1vZHVsZS1uYW1lPiBTWVNURU0gRlVOQ1RJT05TCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQUkFHTUFTCisgKiAgICAgCisgKiAgICAgSU5JVElBTElaQVRJT04gRU5UUlkgUE9JTlQKKyAqICAgICBQUk9HUkFNIEdMT0JBTFMKKyAqICAgICBDTElOSyBESVJFQ1RJVkVTCisgKi8KKworCisvKgorICogPT09PT09PT0gTU9EVUxFIElOQ0xVREVTID09PT09PT09CisgKi8KKworI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Fzc2VydC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0NvcmUuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9EZWZhdWx0cy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0RpYWdzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9HYXRlLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvR2F0ZU51bGwuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9IZWFwU3RkLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTG9nLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTWFpbi5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL01lbW9yeS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N0YXJ0dXAuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXNNaW4uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UZXh0Lmg+CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX18geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIE9iamVjdF9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyB7CisgICAgY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfRnhuc19fKiBfX2Z4bnM7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVjsKKworLyogT2JqZWN0X18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geworICAgIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfRnhuc19fKiBfX2Z4bnM7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgcmVtYWluU2l6ZTsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfU2l6ZSBzdGFydFNpemU7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9IZWFwU3RkX19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIDwtLSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX19yb290X19WOworCisvKiA8LS0geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworLyogPC0tIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCAqLworCisvKiBPYmplY3QgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DID0gezB9OworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DID0geyh2b2lkKikmeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0N9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9GeG5zX18geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MuX19zZnhucywgLyogX19zeXNwICovCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UsCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UsCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UsCisgICAgeworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1MsCisgICAgICAgIDB4ODAwOCwgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX0Z4bnNfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQywgLyogYmFzZV9fICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UsCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FLAorICAgIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSwKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FLAorICAgIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TLAorICAgICAgICAweDgwMGMsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9TeXNNaW5fRnhuc19fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZ4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSwKKyAgICB7CisgICAgICAgIE5VTEwsIC8qIF9fY3JlYXRlICovCisgICAgICAgIE5VTEwsIC8qIF9fZGVsZXRlICovCisgICAgICAgIE5VTEwsIC8qIF9fbGFiZWwgKi8KKyAgICAgICAgMHg4MDBmLCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfVUludDE2IGNvdW50OworfSB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fdGFibGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzFdOworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgcmVtYWluUlRTU2l6ZTsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1NpemVUIG1heERlZmF1bHRUeXBlQWxpZ247Cit9IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19JbnQqIHN0YXRlVGFiOworICAgIHhkY19Cb29sIGV4ZWNGbGFnOworICAgIHhkY19Cb29sIHJ0c0RvbmVGbGFnOworfSB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKHhkY19JbnQpOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FICovCitleHRlcm4geGRjX0ludCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UoeGRjX0ludCk7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVsyXTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BWzJdOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXyB7CisgICAgX19UQV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgb3V0YnVmOworICAgIHhkY19VSW50IG91dGlkeDsKKyAgICB4ZGNfQm9vbCB3cmFwcGVkOworfSB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX187CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfX291dGJ1ZiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BWzEwMjRdOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JICovCitleHRlcm4geGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSh4ZGNfQ2hhcioseGRjX1VJbnQpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB7CisgICAgX19UQV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyBhdGV4aXRIYW5kbGVyczsKKyAgICB4ZGNfSW50IG51bUF0ZXhpdEhhbmRsZXJzOworICAgIHhkY19JbnQgZXhpdFN0YXR1czsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfX2F0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQVs4XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSh4ZGNfQ2hhcioqLHhkY19DaGFyKioseGRjX1ZhTGlzdCx4ZGNfcnVudGltZV9TeXN0ZW1fUGFyc2VEYXRhKik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1B0ciBjaGFyQmFzZTsKKyAgICB4ZGNfUHRyIG5vZGVCYXNlOworfSB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzY2MV07CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVsxN107CisKKworLyoKKyAqID09PT09PT09IHhkYy5jZmcuUHJvZ3JhbSBURU1QTEFURSA9PT09PT09PQorICovCisKKy8qCisgKiAgPT09PT09PT0gX19BU01fXyA9PT09PT09PQorICogIERlZmluZSB0aGlzIHByb2dyYW0ncyBwYWNrYWdlLXBhdGggcmVsYXRpdmUgYXNzZW1ibHkgZGlyZWN0b3J5CisgKi8KK19fRkFSX18gY2hhciAqX19BU01fXyA9ICJAKCMpX19BU01fXyA9IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQIjsKKworLyoKKyAqICA9PT09PT09PSBfX0lTQV9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBJU0Egb2YgdGhpcyBleGVjdXRhYmxlLiAgVGhpcyBzeW1ib2wgaXMgdXNlZCBieSBwbGF0Zm9ybQorICogIHNwZWNpZmljICJleGVjIiBjb21tYW5kcyB0aGF0IHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBJU0E7IGUuZy4sIGdkYgorICovCitfX0ZBUl9fIGNoYXIgKl9fSVNBX18gPSAiQCgjKV9fSVNBX18gPSA2NFAiOworCisvKgorICogID09PT09PT09IF9fUExBVF9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBwbGF0Zm9ybSB0aGF0IGNhbiBydW4gdGhpcyBleGVjdXRhYmxlLiAgVGhpcworICogIHN5bWJvbCBpcyB1c2VkIGJ5IHBsYXRmb3JtIGluZGVwZW5kZW50ICJleGVjIiBjb21tYW5kcworICovCitfX0ZBUl9fIGNoYXIgKl9fUExBVF9fID0gIkAoIylfX1BMQVRfXyA9IHRpLnBsYXRmb3Jtcy5zaW02NFB4eCI7CisKKy8qCisgKiAgPT09PT09PT0gX19UQVJHX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHRhcmdldCB1c2VkIHRvIGJ1aWxkIHRoaXMgZXhlY3V0YWJsZS4KKyAqLworX19GQVJfXyBjaGFyICpfX1RBUkdfXyA9ICJAKCMpX19UQVJHX18gPSB0aS50YXJnZXRzLkM2NFAiOworCisvKgorICogID09PT09PT09IF9fVFJEUl9fID09PT09PT09CisgKiAgRGVmaW5lIHRoZSBuYW1lIG9mIHRoZSBjbGFzcyB0aGF0IGNhbiByZWFkL3BhcnNlIHRoaXMgZXhlY3V0YWJsZS4KKyAqLworX19GQVJfXyBjaGFyICpfX1RSRFJfXyA9ICJAKCMpX19UUkRSX18gPSB0aS50YXJnZXRzLm9tZi5jb2YuQ29mZiI7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fRih2b2lkKSB7CisgICAgcmV0dXJuICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWIgPT0gMCB8fCAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiWzBdIDwgMDsKK30KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMV0gPCAwOworfQorCisKK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSh2b2lkKQoreworICAgIHhkY19JbnQgc3RhdGVbM107CisgICAgeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0Moc3RhdGUsIDIpOworfQorCisjaWZkZWYgX190aV9fCisjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JKTsKKyNlbmRpZgorCisvKgorICogID09PT09PT09IHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBib290c3RyYXAgaW5pdGlhbGl6YXRpb24gY29kZSBhcyBlYXJseSBhcworICogIHBvc3NpYmxlIGluIHRoZSBzdGFydHVwIHByb2Nlc3MuICBUaGlzIGZ1bmN0aW9uIHNpbXBseSBjYWxscyBhbnkKKyAqICBjb25maWd1cmVkIG51bGwuCisgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kodm9pZCkKK3sKK30KKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBURU1QTEFURSA9PT09PT09PQorICovCisKKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UeXBlcy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1RleHQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Bc3NlcnQuaD4KKworLyoKKyAqICA9PT09PT09PSBTeXN0ZW1fcHJpbnRmRXh0ZW5kX19JID09PT09PT09CisgKiAgVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgb3B0aW9uYWwgZXh0ZW5kZWQgZm9ybWF0cyBvZiBwcmludGYuCisgKi8KK0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKENoYXIgKipwYnVmLCBDaGFyICoqcGZtdCwgCisgICAgVmFMaXN0IHZhLCB4ZGNfcnVudGltZV9TeXN0ZW1fUGFyc2VEYXRhICpwYXJzZSkKK3sKKyAgICBDaGFyICAgICpmbXQgPSAqcGZtdDsKKyAgICBJbnQgICAgIHJlczsKKyAgICBDaGFyICAgIGM7CisgICAgQm9vbCAgICBmb3VuZCA9IEZBTFNFOworICAgIAorICAgIHJlcyA9IDA7CisKKyAgICBjID0gKmZtdCsrOworICAgICpwZm10ID0gKnBmbXQgKyAxOworCisgICAgCisgICAgaWYgKGMgPT0gJyQnKSB7CisgICAgICAgIGMgPSAqZm10Kys7CisgICAgICAgICpwZm10ID0gKnBmbXQgKyAxOworICAgICAgICBpZiAoYyA9PSAnTCcpIHsKKyAgICAgICAgICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsICpsYWIgPSBwYXJzZS0+YUZsYWcgPyAKKyAgICAgICAgICAgICAgICAoeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwgKilpYXJnVG9QdHIodmFfYXJnKHZhLCBJQXJnKSkgOgorICAgICAgICAgICAgICAgICh4ZGNfcnVudGltZV9UeXBlc19MYWJlbCAqKXZhX2FyZyh2YSwgdm9pZCAqKTsKKyAgICAgICAgICAgIHJlcyArPSB4ZGNfcnVudGltZV9UZXh0X3B1dExhYihsYWIsIHBidWYsIHBhcnNlLT5wcmVjaXMpOworICAgICAgICAgICAgcGFyc2UtPmxlbiA9IDA7CisgICAgICAgICAgICBmb3VuZCA9IFRSVUU7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGlmIChmb3VuZCA9PSBGQUxTRSkgeworICAgICAgICAgLyogb3RoZXIgY2hhcmFjdGVyIChsaWtlICUpIGNvcHkgdG8gb3V0cHV0ICovCisgICAgICAgICAqKHBhcnNlLT5wdHIpID0gYzsKKyAgICAgICAgIHBhcnNlLT5sZW4gPSAxOworICAgIH0KKworICAgIHJldHVybiAocmVzKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KK2V4dGVybiBpbnQgSE9TVHdyaXRlKGludCwgY2hhciAqLCB1bnNpZ25lZCk7CisjZWxzZQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjZW5kaWYKKworLyoKKyAqICA9PT09PT09PSBTeXNNaW5fb3V0cHV0X19JID09PT09PT09CisgKiAgSE9TVFdyaXRlIG9ubHkgd3JpdGVzIGEgbWF4IG9mIE4gY2hhcnMgYXQgYSB0aW1lLiBUaGUgYW1vdW50IGl0IHdyaXRlcworICogIGlzIHJldHVybmVkLiBUaGlzIGZ1bmN0aW9uIGxvb3BzIHVudGlsIHRoZSBlbnRpcmUgYnVmZmVyIGlzIHdyaXR0ZW4uCisgKiAgQmVpbmcgYSBzdGF0aWMgZnVuY3Rpb24gYWxsb3dzIGl0IHRvIGNvbmRpdGlvbmFsbHkgY29tcGlsZSBvdXQuCisgKi8KK1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSShDaGFyICpidWYsIFVJbnQgc2l6ZSkKK3sKKyNpZmRlZiBfX3RpX18KKyAgICBJbnQgcHJpbnRDb3VudDsKKyAgICAKKyAgICB3aGlsZSAoc2l6ZSAhPSAwKSB7CisgICAgICAgIHByaW50Q291bnQgPSBIT1NUd3JpdGUoMSwgYnVmLCBzaXplKTsKKyAgICAgICAgaWYgKChwcmludENvdW50IDw9IDApIHx8IChwcmludENvdW50ID4gc2l6ZSkpIHsKKyAgICAgICAgICAgIGJyZWFrOyAgLyogZW5zdXJlIHdlIG5ldmVyIGdldCBzdHVjayBpbiBhbiBpbmZpbml0ZSBsb29wICovCisgICAgICAgIH0KKyAgICAgICAgc2l6ZSAtPSBwcmludENvdW50OworICAgICAgICBidWYgPSBidWYgKyBwcmludENvdW50OworICAgIH0gICAgCisjZWxzZQorICAgIGZ3cml0ZShidWYsIDEsIHNpemUsIHN0ZG91dCk7CisjZW5kaWYKK30KKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKy8qCisgKiAgPT09PT09PT0geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIGlzIGluZGlyZWN0bHkgY2FsbGVkIHdpdGhpbiBUZXh0LmMgdGhyb3VnaAorICogIHRoZSB2aXNpdFJvcGVGeG4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgb2YgeGRjLnJ1bnRpbWUuVGV4dC4KKyAqLworVm9pZCB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSh4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLAorICAgIHhkY19GeG4gdmlzRnhuLCB4ZGNfUHRyIHZpc1N0YXRlKQoreworICAgIHhkY19TdHJpbmcgc3RhY2tbM107CisgICAgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKHJvcGUsIHZpc0Z4biwgdmlzU3RhdGUsIHN0YWNrKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDI7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEVfYXNzZXJ0RmFpbGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzA5KSA8PCAxNiB8IDApOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDM7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBBX2luaXRpYWxpemVkUGFyYW1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXMgeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTEpIDw8IDE2IHwgMTYpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA0OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX18geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDU7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogc2V0TWFza0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DID0gMDsKKworLyogZGljdEJhc2VfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlIHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2UpMCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoeGRjX1VJbnQxNikweDAsICAvKiBjb3VudCAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDY7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogRV9nZW5lcmljX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWMgeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzMxKSA8PCAxNiB8IDApOworCisvKiBFX21lbW9yeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnkgeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCkzNDkpIDw8IDE2IHwgMCk7CisKKy8qIHBvbGljeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5IHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQyA9IHhkY19ydW50aW1lX0Vycm9yX1VOV0lORDsKKworLyogcmFpc2VIb29rX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2sgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSkpOworCisvKiBtYXhEZXB0aF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGggeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MgPSAoeGRjX1VJbnQxNikweDEwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDc7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQzsKKworLyogT2JqZWN0X19QQVJBTVNfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DID0geworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgMCwgLyogX19zZWxmICovCisgICAgMCwgLyogX19meG5zICovCisgICAgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQy5fX2lwcm1zLCAvKiBpbnN0YW5jZSAqLworICAgIHsKKyAgICAgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgICAgIDAsICAvKiBuYW1lICovCisgICAgfSwgIC8qIGluc3RhbmNlICovCit9OworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fViA9IHt7CisgICAgeyZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssICAvKiBsaW5rLm5leHQgKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rfSwgIC8qIGxpbmsucHJldiAqLworICAgIChVQ2hhciopMCwgIC8qIGluc3RBcnJCZWcgKi8KKyAgICAoVUNoYXIqKSgwKy0xKSwgIC8qIGluc3RBcnJFbmQgKi8KKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKSwgIC8qIGluc3RTaXplICovCisgICAgMCwgIC8qIGN1ciAqLworICAgIDAsICAvKiBkaWFnc01hc2sgKi8KK319OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwODsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MgPSBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18pOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0M7CisKKy8qIE9iamVjdF9fUEFSQU1TX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MgPSB7CisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgIDAsIC8qIF9fc2VsZiAqLworICAgIDAsIC8qIF9fZnhucyAqLworICAgICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQy5fX2lwcm1zLCAvKiBpbnN0YW5jZSAqLworICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDApKSwgIC8qIHNpemUgKi8KKyAgICB7CisgICAgICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgICAgICAwLCAgLyogbmFtZSAqLworICAgIH0sICAvKiBpbnN0YW5jZSAqLworfTsKKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WID0ge3sKKyAgICB7JnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAgLyogbGluay5uZXh0ICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rfSwgIC8qIGxpbmsucHJldiAqLworICAgIChVQ2hhciopeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WLCAgLyogaW5zdEFyckJlZyAqLworICAgIChVQ2hhciopKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fViswKSwgIC8qIGluc3RBcnJFbmQgKi8KKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18pLCAgLyogaW5zdFNpemUgKi8KKyAgICAwLCAgLyogY3VyICovCisgICAgMCwgIC8qIGRpYWdzTWFzayAqLworfX07CisKKy8qIE9iamVjdF9fdGFibGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzFdID0geworICAgIHsvKiBpbnN0YW5jZSMwICovCisgICAgICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQywKKyAgICAgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MTAwMCkpLCAgLyogcmVtYWluU2l6ZSAqLworICAgICAgICAoKHhkY19VQXJnKSgodm9pZCopMHgxMDAwKSksICAvKiBzdGFydFNpemUgKi8KKyAgICB9LAorfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MCkpLCAgLyogcmVtYWluUlRTU2l6ZSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyA9IDE7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DID0gc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18pOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DID0geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WOworCisvKiBFX25vUlRTTWVtb3J5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnkgeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpNDIxKSA8PCAxNiB8IDApOworCisvKiBBX3plcm9TaXplX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTk1KSA8PCAxNiB8IDE2KTsKKworLyogQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkxNDApIDw8IDE2IHwgMTYpOworCisvKiBBX2ludmFsaWRBbGlnbm1lbnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50IHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTIwMSkgPDwgMTYgfCAxNik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA5OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBMX2NvbnN0cnVjdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk0NjgpIDw8IDE2IHwgNCk7CisKKy8qIExfY3JlYXRlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGUgeGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTQ5MikgPDwgMTYgfCA0KTsKKworLyogTF9kZXN0cnVjdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNTEzKSA8PCAxNiB8IDQpOworCisvKiBMX2RlbGV0ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlIHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk1MzIpIDw8IDE2IHwgNCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoeGRjX1NpemVUKTB4OCwgIC8qIG1heERlZmF1bHRUeXBlQWxpZ24gKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2UgeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MgPSAoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKSZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1ZbMF07CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoKHhkY19JbnQqKTApLCAgLyogc3RhdGVUYWIgKi8KKyAgICAwLCAgLyogZXhlY0ZsYWcgKi8KKyAgICAwLCAgLyogcnRzRG9uZUZsYWcgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVsyXSA9IHsKKyAgICAoKHhkY19JbnQoKikoeGRjX0ludCkpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSkpLCAgLyogWzBdICovCisgICAgKCh4ZGNfSW50KCopKHhkY19JbnQpKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UpKSwgIC8qIFsxXSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BWzJdID0geworICAgIDEsICAvKiBbMF0gKi8KKyAgICAxLCAgLyogWzFdICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBkOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogbWF4UGFzc2VzX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3NlcyB4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyA9ICh4ZGNfSW50KTB4MjA7CisKKy8qIGZpcnN0Rnhuc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MgPSB7MCwgMH07CisKKy8qIGxhc3RGeG5zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MgPSB7MCwgMH07CisKKy8qIHN0YXJ0TW9kc0Z4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kpKTsKKworLyogZXhlY0ltcGxfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGwgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGwpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSkpOworCisvKiBzZnhuVGFiX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiKXhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSk7CisKKy8qIHNmeG5SdHNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMpeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQVsxMDI0XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXRlX19WID0geworICAgIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0EsICAvKiBvdXRidWYgKi8KKyAgICAoeGRjX1VJbnQpMHgwLCAgLyogb3V0aWR4ICovCisgICAgMCwgIC8qIHdyYXBwZWQgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogYnVmU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemUgeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MgPSAoeGRjX1NpemVUKTB4NDAwOworCisvKiBmbHVzaEF0RXhpdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0IHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyA9IDE7CisKKy8qIG91dHB1dEZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4biB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bikwKTsKKworLyogb3V0cHV0RnVuY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmMgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYykoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSkpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fYXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BWzhdID0geworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbMF0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzFdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFsyXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbM10gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzRdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs1XSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbNl0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzddICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BLCAgLyogYXRleGl0SGFuZGxlcnMgKi8KKyAgICAoeGRjX0ludCkweDAsICAvKiBudW1BdGV4aXRIYW5kbGVycyAqLworICAgICh4ZGNfSW50KTB4Y2FmZSwgIC8qIGV4aXRTdGF0dXMgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogQV9jYW5ub3RGaXRJbnRvQXJnX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnIHhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMjYxKSA8PCAxNiB8IDE2KTsKKworLyogbWF4QXRleGl0SGFuZGxlcnNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MgPSAoeGRjX0ludCkweDg7CisKKy8qIGV4dGVuZEZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSkpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfUHRyKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVswXSkpLCAgLyogY2hhckJhc2UgKi8KKyAgICAoKHhkY19QdHIpKCh2b2lkKikmeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BWzBdKSksICAvKiBub2RlQmFzZSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzY2MV0gPSB7CisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFswXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzFdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzEwXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzExXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzEzXSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE3XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzE4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE5XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzIwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzIyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzIzXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI0XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzMwXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMxXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzMyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzM0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM1XSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzM2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM3XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM5XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQ2XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDldICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbNTBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTJdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTNdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNTVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNTZdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbNTddICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNThdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjFdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNjRdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjZdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjddICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjhdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNzBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzFdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNzJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNzNdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbNzRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNzddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzhdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbNzldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbODBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbODFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbODJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbODNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbODRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbODVdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbODZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbODddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbODhdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbODldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOTBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbOTFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbOTJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbOTNdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMDBdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMTAxXSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzEwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsxMDNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTA0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMDZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTA3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMDldICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMTEwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzExMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxMTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTEzXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzExNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTE2XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzExN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMThdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMTE5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMjFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTIyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxMjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTI1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzEyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxMjddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTI4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzEyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxMzBdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTMxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMzNdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMTM0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzEzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsxMzZdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMTM3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzEzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFsxNDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTQxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFsxNDNdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMTQ0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsxNDZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTQ3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxNDldICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTUwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTUzXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzE1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTU2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxNThdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTU5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsxNjFdICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMTYyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTY1XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzE2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxNjddICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTY4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNzBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTcxXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNzNdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMTc0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTc3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNzldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTgwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxODJdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMTgzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxODVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTg2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxODhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTg5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxOTFdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTkyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsxOTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTk1XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxOTddICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTk4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzIwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFsyMDFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjAyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFsyMDRdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMjA1XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzIwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyMDddICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMjA4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMTBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjExXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzIxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsyMTNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjE0XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzIxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMTZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjE3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MSwgIC8qIFsyMTldICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMjIwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyMjJdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjIzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyMjVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjI2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIyN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMjhdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjI5XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzIzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyMzFdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMjMyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyMzRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjM1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyMzddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjM4XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsyNDBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjQxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNDNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjQ0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNDZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjQ3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFsyNDldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjUwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyNTJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjUzXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzI1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyNTVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjU2XSAqLworICAgICh4ZGNfQ2hhcikweDc3LCAgLyogWzI1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyNThdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMjU5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMjYwXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzI2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsyNjJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMjYzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNjVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjY2XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNjhdICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMjY5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNzFdICovCisgICAgKHhkY19DaGFyKTB4NDksICAvKiBbMjcyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNzRdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjc1XSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzI3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNzddICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMjc4XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzI3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyODBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjgxXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsyODNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjg0XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFsyODZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMjg3XSAqLworICAgICh4ZGNfQ2hhcikweDQ2LCAgLyogWzI4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyODldICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjkwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyOTJdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbMjkzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZSwgIC8qIFsyOTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjk2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzI5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyOThdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMjk5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszMDFdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzAyXSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzMwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFszMDRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzA1XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzMwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFszMDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszMDhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzA5XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzEyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFszMTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzE1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzMxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszMTddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzE4XSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzMxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszMjBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzIxXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzMyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFszMjNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzI0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszMjZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzI3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzMyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMjldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszMzBdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMzMxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszMzNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzM0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMzZdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMzM3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzMzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMzldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNDJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQzXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzM0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNDVdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzQ2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzM0N10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzM0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNDldICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMzUwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzM1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNTJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzUzXSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzM1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNTVdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMzU2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFszNThdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzU5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFszNjFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMzYyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFszNjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzY1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFszNjddICovCisgICAgKHhkY19DaGFyKTB4M2QsICAvKiBbMzY4XSAqLworICAgICh4ZGNfQ2hhcikweDMwLCAgLyogWzM2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFszNzBdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzcxXSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzM3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyYywgIC8qIFszNzNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzc0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzM3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszNzZdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMzc3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZCwgIC8qIFszNzldICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzgwXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzM4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzM4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszODNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzg0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszODZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMzg3XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzM4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszODldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzkwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzM5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFszOTJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzkzXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzM5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOTVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMzk2XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOThdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzk5XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs0MDFdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDAyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NywgIC8qIFs0MDRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDA1XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0MDddICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDA4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs0MTBdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNDExXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs0MTNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0MTZdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNDE3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0MTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0MjBdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNDIxXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MjNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDI0XSAqLworICAgICh4ZGNfQ2hhcikweDUyLCAgLyogWzQyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1NCwgIC8qIFs0MjZdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNDI3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0MjldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDMwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0MzJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDMzXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDM2XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDM5XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzQ0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NDFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDQyXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQ0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs0NDRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDQ1XSAqLworICAgICh4ZGNfQ2hhcikweDQ1LCAgLyogWzQ0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFs0NDddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDQ4XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQ0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs0NTBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDUxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQ1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NTNdICovCisgICAgKHhkY19DaGFyKTB4NTAsICAvKiBbNDU0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0NTZdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNDU3XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0NTldICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNDYwXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzQ2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0NjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDYzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0NjVdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNDY2XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDY3XSAqLworICAgICh4ZGNfQ2hhcikweDNjLCAgLyogWzQ2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0NjldICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDcwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0NzJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDczXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQ3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0NzVdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDc2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0NzhdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDc5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs0ODFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDgyXSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzQ4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0ODRdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNDg1XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzQ4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs0ODddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDg4XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzQ4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs0OTBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0OTFdICovCisgICAgKHhkY19DaGFyKTB4M2MsICAvKiBbNDkyXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ5M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0OTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDk1XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0OTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDk4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1MDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTAxXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzUwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MDNdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTA0XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzUwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1MDZdICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNTA3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzUwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1MDldICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNTEwXSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzUxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzUxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MTNdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTE0XSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzUxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MTZdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTE3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1MTldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTIwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzUyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1MjJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNTIzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzUyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs1MjVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTI2XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzUyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1MjhdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTI5XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzUzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzUzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MzJdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTMzXSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzUzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MzVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTM2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs1MzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTM5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NDFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNTQyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzU0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1NDRdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTQ1XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzU0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs1NDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NDhdICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNTQ5XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzU1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs1NTFdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNTUyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTUzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1NTVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNTU2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1NThdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNTU5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs1NjFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NjJdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbNTYzXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1NjVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTY2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1NjhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NjldICovCisgICAgKHhkY19DaGFyKTB4NDMsICAvKiBbNTcwXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzU3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1NzJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTczXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTc0XSAqLworICAgICh4ZGNfQ2hhcikweDQ0LCAgLyogWzU3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NzZdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbNTc3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzU3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1NzldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNTgwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1ODJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1ODNdICovCisgICAgKHhkY19DaGFyKTB4NDQsICAvKiBbNTg0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzU4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1ODZdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNTg3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NSwgIC8qIFs1OTBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTkxXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs1OTNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTk0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTk1XSAqLworICAgICh4ZGNfQ2hhcikweDQ3LCAgLyogWzU5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1OTddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTk4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NywgIC8qIFs2MDFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjAyXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MDRdICovCisgICAgKHhkY19DaGFyKTB4NGUsICAvKiBbNjA1XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzYwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2MDddICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjA4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjA5XSAqLworICAgICh4ZGNfQ2hhcikweDRjLCAgLyogWzYxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2MTFdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNjEyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjEzXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzYxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MTVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNjE2XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzYxN10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs2MTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjIwXSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzYyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2MjJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNjIzXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzYyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs2MjZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjI3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs2MjldICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjMwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs2MzJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MzNdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjM0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MzZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNjM3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs2MzldICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNjQwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjQxXSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzY0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2NDNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjQ0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2NDZdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNjQ3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjQ4XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzY0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2NTBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjUxXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzY1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs2NTNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjU0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjU1XSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzY1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2NTddICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNjU4XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY2MF0gKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVsxN10gPSB7CisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDAsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MCwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFswXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMjUsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjJhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzFdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjMzLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzJdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjNhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzNdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjNmLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzRdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjQ4LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzVdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjRlLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzZdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjU0LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzddICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjU5LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzhdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjYyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzldICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjY2LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzEwXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI2YiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxMV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNzIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTJdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjdhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzEzXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI4MiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxNF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyODksICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTVdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjkwLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE2XSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAxMDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIG5hbWVVbmtub3duX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duIHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MgPSAie3Vua25vd24taW5zdGFuY2UtbmFtZX0iOworCisvKiBuYW1lRW1wdHlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5IHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DID0gIntlbXB0eS1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIG5hbWVTdGF0aWNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpYyB4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MgPSAie3N0YXRpYy1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIGlzTG9hZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkIHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MgPSAxOworCisvKiBjaGFyVGFiX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiKXhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSk7CisKKy8qIG5vZGVUYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X25vZGVUYWIpeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BKTsKKworLyogY2hhckNudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250IHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQyA9ICh4ZGNfSW50MTYpMHgyOTU7CisKKy8qIG5vZGVDbnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZUNudCB4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MgPSAoeGRjX0ludDE2KTB4MTE7CisKKy8qIHZpc2l0Um9wZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kpKTsKKworLyogdmlzaXRSb3BlRnhuMl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMikoKHhkY19GeG4peGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogc2V0TWFza19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRSggeGRjX1N0cmluZyBjb250cm9sICkgCit7CisgICAgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRihjb250cm9sKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBjaGVja19fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRihlYik7Cit9CisKKy8qIGdldERhdGFfX0UgKi8KK3hkY19ydW50aW1lX0Vycm9yX0RhdGEqIHhkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19GKGViKTsKK30KKworLyogZ2V0Q29kZV9fRSAqLworeGRjX1VJbnQxNiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRihlYik7Cit9CisKKy8qIGdldElkX19FICovCit4ZGNfcnVudGltZV9FcnJvcl9JZCB4ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldElkX19GKGViKTsKK30KKworLyogZ2V0TXNnX19FICovCit4ZGNfU3RyaW5nIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRihlYik7Cit9CisKKy8qIGdldFNpdGVfX0UgKi8KK3hkY19ydW50aW1lX1R5cGVzX1NpdGUqIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GKGViKTsKK30KKworLyogaW5pdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRihlYik7Cit9CisKKy8qIHByaW50X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0YoZWIpOworfQorCisvKiByYWlzZVhfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViLCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtb2QsIHhkY19TdHJpbmcgZmlsZSwgeGRjX0ludCBsaW5lLCB4ZGNfcnVudGltZV9FcnJvcl9JZCBpZCwgeGRjX0lBcmcgYXJnMSwgeGRjX0lBcmcgYXJnMiApIAoreworICAgIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRihlYiwgbW9kLCBmaWxlLCBsaW5lLCBpZCwgYXJnMSwgYXJnMik7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBlbnRlclN5c3RlbV9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GKCk7Cit9CisKKy8qIGxlYXZlU3lzdGVtX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FKCB4ZGNfSUFyZyBrZXkgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GKGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0YocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlIF9faW5zdCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRigodm9pZCopX19pbnN0KTsKK30KKworLyogbGVhdmVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUgX19pbnN0LCB4ZGNfSUFyZyBrZXkgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRigodm9pZCopX19pbnN0LCBrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZnJlZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19GKCh2b2lkKilfX2luc3QsIGJsb2NrLCBzaXplKTsKK30KKworLyogZ2V0U3RhdHNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApIAoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0YoKHZvaWQqKV9faW5zdCwgc3RhdHMpOworfQorCisvKiBhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19GKCh2b2lkKilfX2luc3QsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGlzQmxvY2tpbmdfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0ICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRigodm9pZCopX19pbnN0KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZG9QcmludF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0UoIHhkY19ydW50aW1lX0xvZ19FdmVudFJlYyogZXZSZWMgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRihldlJlYyk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0YoaGVhcCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogY2FsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBmcmVlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgCit7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0YoaGVhcCwgYmxvY2ssIHNpemUpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApIAoreworICAgIHhkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRihoZWFwLCBzdGF0cyk7Cit9CisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfSW50IHF1YWwgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19GKGhlYXAsIHF1YWwpOworfQorCisvKiBnZXRNYXhEZWZhdWx0VHlwZUFsaWduX19FICovCit4ZGNfU2l6ZVQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0YoKTsKK30KKworLyogdmFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfQ2hhciB2YWx1ZSwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0YoaGVhcCwgc2l6ZSwgYWxpZ24sIHZhbHVlLCBlYik7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBleGVjX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0UoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0YoKTsKK30KKworLyogcnRzRG9uZV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRigpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBhYm9ydF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRihzdHIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0Yoc3RhdCk7Cit9CisKKy8qIGZsdXNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0YoKTsKK30KKworLyogcHV0Y2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0YoY2gpOworfQorCisvKiByZWFkeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRigpOworfQorCisvKiBNb2R1bGVfc3RhcnR1cCAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UoIHhkY19JbnQgc3RhdGUgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0Yoc3RhdGUpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBhYm9ydF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRihzdHIpOworfQorCisvKiBhdGV4aXRfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9BdGV4aXRIYW5kbGVyIGhhbmRsZXIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRihoYW5kbGVyKTsKK30KKworLyogZXhpdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19GKHN0YXQpOworfQorCisvKiBwdXRjaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRihjaCk7Cit9CisKKy8qIGZsdXNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0UoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0YoKTsKK30KKworLyogcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0UoIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRihmbXQsIF9fdmEpOworfQorCisvKiBwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiBhcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19FKCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7Cit9CisKKy8qIGFwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIHNwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKK30KKworLyogc3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogYXNwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworfQorCisvKiBhc3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiB2cHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRihmbXQsIHZhKTsKK30KKworLyogYXZwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0YoZm10LCB2YSk7Cit9CisKKy8qIHZzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRihidWYsIGZtdCwgdmEpOworfQorCisvKiBhdnNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0YoYnVmLCBmbXQsIHZhKTsKK30KKworLyogTW9kdWxlX3N0YXJ0dXAgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKCB4ZGNfSW50IHN0YXRlICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19GKHN0YXRlKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGNvcmRUZXh0X19FICovCit4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfQ29yZEFkZHIgY29yZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GKGNvcmQpOworfQorCisvKiByb3BlVGV4dF9fRSAqLworeGRjX1N0cmluZyB4ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0Yocm9wZSk7Cit9CisKKy8qIG1hdGNoUm9wZV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSwgeGRjX1N0cmluZyBwYXQsIHhkY19JbnQqIGxlbnAgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0Yocm9wZSwgcGF0LCBsZW5wKTsKK30KKworLyogcHV0TGFiX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TGFiX19FKCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcHV0TGFiX19GKGxhYiwgYnVmcCwgbGVuKTsKK30KKworLyogcHV0TW9kX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19FKCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtaWQsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0YobWlkLCBidWZwLCBsZW4pOworfQorCisvKiBwdXRTaXRlX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRSggeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogc2l0ZSwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0Yoc2l0ZSwgYnVmcCwgbGVuKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuR2F0ZU51bGwgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKG9hLCBvc3osIGFhLCAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX1BhcmFtcyksIGViKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgY29uc3QgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyhkc3QsIHNyYywgcHN6LCBpc3opOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZV9fbGFiZWxfX1MoIFB0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKG9iaiwgbGFiKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnkocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UoIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0ICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXIoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlX19FKCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX0lBcmcga2V5ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZSgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCwga2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkhlYXBTdGQgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JSGVhcF9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19kZWxldGVfX1MoIFB0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MoaW5zdHApOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoZHN0LCBzcmMsIHBzeiwgaXN6KTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlX19sYWJlbF9fUyggUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfYWxsb2NfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSUhlYXBfYWxsb2MoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfZnJlZV9fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApCit7CisgICAgeGRjX3J1bnRpbWVfSUhlYXBfZnJlZSgoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgYmxvY2ssIHNpemUpOworfQorCisvKiBpc0Jsb2NraW5nX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0lIZWFwX2lzQmxvY2tpbmcoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkKK3sKKyAgICB4ZGNfcnVudGltZV9JSGVhcF9nZXRTdGF0cygoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgc3RhdHMpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkdhdGVOdWxsICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyKXBhLCBzaXplb2YoeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKGRzdCwgc3JjLCBwc3osIGlzeik7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGVfX2xhYmVsX19TKCBQdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnkocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9lbnRlcl9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0KTsKK30KKworLyogbGVhdmVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlX19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfSUFyZyBrZXkgKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0LCBrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuU3lzTWluICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBhYm9ydF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydChzdHIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2V4aXRfX0UoIHhkY19JbnQgc3RhdCApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXQoc3RhdCk7Cit9CisKKy8qIGZsdXNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2ZsdXNoX19FKCB2b2lkICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2goKTsKK30KKworLyogcHV0Y2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2goY2gpOworfQorCisvKiByZWFkeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9yZWFkeV9fRSggdm9pZCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeSgpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBPQkpFQ1QgREVTQ1JJUFRPUiA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLwordHlwZWRlZiBzdHJ1Y3QgeyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18gczA7IGNoYXIgYzsgfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1MxOworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DID0geworICAgIChQdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQywgLyogZnhuVGFiICovCisgICAgJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgLyogbW9kTGluayAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1MxKSAtIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18pLCAvKiBvYmpBbGlnbiAqLworICAgIDAsIC8qIG9iakhlYXAgKi8KKyAgICAwLCAvKiBvYmpOYW1lICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXyksIC8qIG9ialNpemUgKi8KKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgLyogcHJtc0luaXQgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zKSwgLyogcHJtc1NpemUgKi8KK307CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBPQkpFQ1QgREVTQ1JJUFRPUiA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLwordHlwZWRlZiBzdHJ1Y3QgeyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyBzMDsgY2hhciBjOyB9IHhkY19ydW50aW1lX0hlYXBTdGRfX19TMTsKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DID0geworICAgIChQdHIpJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLCAvKiBmeG5UYWIgKi8KKyAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssIC8qIG1vZExpbmsgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1MxKSAtIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyksIC8qIG9iakFsaWduICovCisgICAgMCwgLyogb2JqSGVhcCAqLworICAgIDAsIC8qIG9iak5hbWUgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX18pLCAvKiBvYmpTaXplICovCisgICAgKFB0cikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgLyogcHJtc0luaXQgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMpLCAvKiBwcm1zU2l6ZSAqLworfTsKKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgCit7CisgICAgbGFiLT5oYW5kbGUgPSBvYmo7CisgICAgbGFiLT5tb2RJZCA9IDMyNzc2OworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduTGFiZWwobGFiLCAwLCAwKTsKKworICAgIHJldHVybiBsYWI7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIHBybXMsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kocHJtcywgKHhkY19QdHIpKHNyYyA/IHNyYyA6ICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyksIHBzeiwgaXN6KTsKK30KKworLyogT2JqZWN0X19nZXRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2EsIHhkY19JbnQgaSApIAoreworICAgIGlmIChvYSkgeworICAgICAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyopb2EpICsgaTsKKyAgICB9CisKKyAgICBpZiAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQyA9PSAwKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiAoKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKil4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DKSArIGk7Cit9CisKKy8qIE9iamVjdF9fZmlyc3RfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKXhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGluay5uZXh0OworCisgICAgaWYgKGlIZHIgIT0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiBpSGRyICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19uZXh0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKCh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopb2JqKSAtIDE7CisKKyAgICBpZiAoaUhkci0+bGluay5uZXh0ICE9ICh4ZGNfcnVudGltZV9UeXBlc19MaW5rICopJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikoaUhkci0+bGluay5uZXh0KSArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zIHBybXM7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0KiBvYmo7CisKKyAgICAvKiBjb21tb24gaW5zdGFuY2UgaW5pdGlhbGl6YXRpb24gKi8KKyAgICBvYmogPSB4ZGNfcnVudGltZV9Db3JlX2NyZWF0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCBvYSwgb3N6LCAmcHJtcywgKHhkY19QdHIpcGEsIHBzeiwgZWIpOworICAgIGlmIChvYmogPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gb2JqOworfQorCisvKiBPYmplY3RfX2Rlc3RydWN0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsIG9iaiwgTlVMTCwgLTEsIFRSVUUpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCAqKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QqKilpbnN0cCksIE5VTEwsIC0xLCBGQUxTRSk7CisgICAgKigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKilpbnN0cCkgPSBOVUxMOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSAKK3sKKyAgICBsYWItPmhhbmRsZSA9IG9iajsKKyAgICBsYWItPm1vZElkID0gMzI3ODA7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbChsYWIsIDAsIDApOworCisgICAgcmV0dXJuIGxhYjsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBwcm1zLCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JKHBybXMsICh4ZGNfUHRyKShzcmMgPyBzcmMgOiAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyksIHBzeiwgaXN6KTsKK30KKworLyogT2JqZWN0X19nZXRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYSwgeGRjX0ludCBpICkgCit7CisgICAgaWYgKG9hKSB7CisgICAgICAgIHJldHVybiAoKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18qKW9hKSArIGk7CisgICAgfQorCisgICAgaWYgKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyA9PSAwKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiAoKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18qKXhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQykgKyBpOworfQorCisvKiBPYmplY3RfX2ZpcnN0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKXhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rLm5leHQ7CisKKyAgICBpZiAoaUhkciAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gaUhkciArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fbmV4dF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKCh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopb2JqKSAtIDE7CisKKyAgICBpZiAoaUhkci0+bGluay5uZXh0ICE9ICh4ZGNfcnVudGltZV9UeXBlc19MaW5rICopJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKShpSGRyLT5saW5rLm5leHQpICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMgcHJtczsKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdCogb2JqOworICAgIGludCBpU3RhdDsKKworICAgIC8qIGNvbW1vbiBpbnN0YW5jZSBpbml0aWFsaXphdGlvbiAqLworICAgIG9iaiA9IHhkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgb2EsIG9zeiwgJnBybXMsICh4ZGNfUHRyKXBhLCBwc3osIGViKTsKKyAgICBpZiAob2JqID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLyogbW9kdWxlLXNwZWNpZmljIGluaXRpYWxpemF0aW9uICovCisgICAgaVN0YXQgPSB4ZGNfcnVudGltZV9IZWFwU3RkX0luc3RhbmNlX2luaXRfX0Yob2JqLCAmcHJtcywgZWIpOworICAgIGlmICh4ZGNfcnVudGltZV9FcnJvcl9jaGVjayhlYikpIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYmosIE5VTEwsIGlTdGF0LCAoeGRjX0Jvb2wpKG9hICE9IE5VTEwpKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIG9iajsKK30KKworLyogT2JqZWN0X19kZXN0cnVjdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgb2JqLCBOVUxMLCAwLCBUUlVFKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsICooKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0KiopaW5zdHApLCBOVUxMLCAwLCBGQUxTRSk7CisgICAgKigoeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUqKWluc3RwKSA9IE5VTEw7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMTsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX0YoKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKCk7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfQXNzZXJ0X0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Bc3NlcnRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zIHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0NvcmVfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Db3JlX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0NvcmVfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0RlZmF1bHRzX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSB4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0RpYWdzX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FKCB4ZGNfU3RyaW5nIGNvbnRyb2wgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpYyB4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeSB4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeSB4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2sgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGggeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9FcnJvcl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9EYXRhKiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1VJbnQxNiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfSWQgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiwgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbW9kLCB4ZGNfU3RyaW5nIGZpbGUsIHhkY19JbnQgbGluZSwgeGRjX3J1bnRpbWVfRXJyb3JfSWQgaWQsIHhkY19JQXJnIGFyZzEsIHhkY19JQXJnIGFyZzIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0UoIHhkY19JQXJnIGtleSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlLCB4ZGNfSUFyZyBrZXkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5IHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NyZWF0ZSB4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2RlbGV0ZSB4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9Mb2dfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRSggeGRjX3J1bnRpbWVfTG9nX0V2ZW50UmVjKiBldlJlYyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NYWluX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2UgeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NZW1vcnlfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19JbnQgcXVhbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU2l6ZVQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX0NoYXIgdmFsdWUsIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TdGFydHVwX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZSB4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYyB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c01pbl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZyB4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4geGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c3RlbV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX0F0ZXhpdEhhbmRsZXIgaGFuZGxlciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duIHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eSB4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpYyB4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkIHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhckNudCB4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25vZGVDbnQgeGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjIgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfVGV4dF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1RleHRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfVGV4dF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfQ29yZEFkZHIgY29yZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSwgeGRjX1N0cmluZyBwYXQsIHhkY19JbnQqIGxlbnAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19FKCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtaWQsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0UoIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHNpdGUsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0gSU5JVElBTElaQVRJT04gRU5UUlkgUE9JTlQgPT09PT09PT0KKyAqLworCitleHRlcm4gaW50IF9feGRjX19pbml0KHZvaWQpOworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKQorI2VuZGlmCisjZW5kaWYKK19fRkFSX18gaW50ICgqIHZvbGF0aWxlIF9feGRjX19pbml0X19hZGRyKSh2b2lkKSA9ICZfX3hkY19faW5pdDsKKworCisvKgorICogPT09PT09PT0gUFJPR1JBTSBHTE9CQUxTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gQ0xJTksgRElSRUNUSVZFUyA9PT09PT09PQorICovCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMDkwMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZwpAQCAtMCwwICsxLDc4NiBAQAorLyoKKyAqICA9PT09PT09PSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnID09PT09PT09CisgKiAgVGhpcyBnZW5lcmF0ZWQgY29uZmlndXJhdGlvbiBzY3JpcHQgcnVucyB0aGUgdXNlcidzIGNvbmZpZ3VyYXRpb24gc2NyaXB0CisgKiAgdGhlIGNvbnRleHQgb2YgYSBzcGVjaWZpYyB0YXJnZXQgYW5kIHBsYXRmb3JtIGluIG9yZGVyIHRvIGdlbmVyYXRlCisgKiAgYWxsIHRoZSBmaWxlcyBuZWNlc3NhcnkgdG8gY3JlYXRlIGFuIGV4ZWN1dGFibGU7IGUuZy4sIGxpbmtlciBjb21tYW5kCisgKiAgZmlsZXMsIHN0YXRpYyBDL0MrKyBkYXRhIHN0cnVjdHVyZXMsIGV0Yy4KKyAqLworCisvKgorICogID09PT09PT09IF9ydW5lc2NhcGUgPT09PT09PT0KKyAqICBSZWN1cnNpdmUgdW5lc2NhcGUgdG8gZGVjb2RlIHNlcmlhbGl6ZWQgc3RyaW5ncworICovCitmdW5jdGlvbiBfcnVuZXNjYXBlKG9iaikgeworICAgIGZvciAodmFyIGkgaW4gb2JqKSB7CisgICAgICAgIGlmIChvYmpbaV0gIT0gbnVsbCkgeworICAgICAgICAgICAgaWYgKHR5cGVvZiBvYmpbaV0gPT0gJ3N0cmluZycpIHsKKyAgICAgICAgICAgICAgICBvYmpbaV0gPSB1bmVzY2FwZShvYmpbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9ialtpXSA9PSAnb2JqZWN0JykgeworICAgICAgICAgICAgICAgIF9ydW5lc2NhcGUob2JqW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqICA9PT09PT09PSBfZ2V0UGxhdENmZyA9PT09PT09PQorICovCitmdW5jdGlvbiBfZ2V0UGxhdENmZygpIHsKKyAgICB2YXIgdG1wID0ge307CisgICAgX3J1bmVzY2FwZSh0bXApOworICAgIHJldHVybiAodG1wKTsKK30KKy8qCisgKiAgPT09PT09PT0gX2NmZ2luaXQgPT09PT09PT0KKyAqLworZnVuY3Rpb24gX2NmZ2luaXQoKSB7CisgICAgeGRjLmxvYWRQYWNrYWdlKCd4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCcpOworICAgIHZhciBwcm9nID0geGRjLm9tWyd4ZGMuY2ZnLlByb2dyYW0nXTsKKworICAgIC8qIGluaXRpYWxpemUgcHJvZyBhdHRycyBmcm9tIGJ1aWxkIG1vZGVsICovCisgICAgdmFyIGJ1aWxkID0geworICAgICAgICByZWxlYXNlczogeworICAgICAgICAgICAgMDogeworICAgICAgICAgICAgICAgIG5hbWU6ICJoZWxsb19wa2ciLAorICAgICAgICAgICAgICAgIGF0dHJzOiB7CisgICAgICAgICAgICAgICAgICAgIHByZWZpeDogIiIsCisgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAiZGVmYXVsdCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIG90aGVyRmlsZXM6IHt9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIHRhcmdldDogeworICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UCIsCisgICAgICAgICAgICBuYW1lOiAiQzY0UCIsCisgICAgICAgICAgICBzdWZmaXg6ICI2NFAiLAorICAgICAgICAgICAgY29tcGF0aWJsZVN1ZmZpeGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9jb21wYXRpYmxlU3VmZml4ZXMiLAorICAgICAgICAgICAgICAgIDA6ICI2NCIsCisgICAgICAgICAgICAgICAgMTogIjYyIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGlzYTogIjY0UCIsCisgICAgICAgICAgICBtb2RlbDogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvbW9kZWwiLAorICAgICAgICAgICAgICAgIGVuZGlhbjogImxpdHRsZSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBydHM6ICJ0aS50YXJnZXRzLnJ0czYwMDAiLAorICAgICAgICAgICAgYmFzZTogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2MiIsCisgICAgICAgICAgICAgICAgbmFtZTogIkM2MiIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiNjIiLAorICAgICAgICAgICAgICAgIGNvbXBhdGlibGVTdWZmaXhlczogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvY29tcGF0aWJsZVN1ZmZpeGVzIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGlzYTogIjYyIiwKKyAgICAgICAgICAgICAgICBtb2RlbDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvbW9kZWwiLAorICAgICAgICAgICAgICAgICAgICBlbmRpYW46ICJsaXR0bGUiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBydHM6ICJ0aS50YXJnZXRzLnJ0czYwMDAiLAorICAgICAgICAgICAgICAgIHBsYXRmb3JtOiAidGkucGxhdGZvcm1zLnNpbTZ4eHglM0FUTVMzMjBDNjIxMSIsCisgICAgICAgICAgICAgICAgcGxhdGZvcm1zOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wbGF0Zm9ybXMiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgYmluYXJ5UGFyc2VyOiAidGkudGFyZ2V0cy5vbWYuY29mLkNvZmYiLAorICAgICAgICAgICAgICAgIGRlYnVnR2VuOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9kZWJ1Z0dlbiIsCisgICAgICAgICAgICAgICAgICAgIGV4ZWNUZW1wbGF0ZTogInRpL3RhcmdldHMvY2NzX2V4ZWMueGR0IiwKKyAgICAgICAgICAgICAgICAgICAgZXhlY1BhdHRlcm46ICIlMjQlMjhjZmdEaXIlMjklMjQlMjhjZmdOYW1lJTI5LnBqdCIsCisgICAgICAgICAgICAgICAgICAgIHBhY2thZ2VUZW1wbGF0ZTogInRpL3RhcmdldHMvY2NzX3BhY2thZ2UueGR0IiwKKyAgICAgICAgICAgICAgICAgICAgcGFja2FnZVBhdHRlcm46ICJwYWNrYWdlLyUyNCUyOHBrZ05hbWUlMjkucGp0IgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucyIsCisgICAgICAgICAgICAgICAgICAgICIuczYyIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5zNjInIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zNjIiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmFzbSI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYXNtJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYXNtIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIi5jIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYyIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJjIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmNwcCI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3BwJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY3BwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIi5jeHgiOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmN4eCciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmN4eCIsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICIuQyI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuQyciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLkMiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAiLmNjIjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jYyciLAorICAgICAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmNjIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdmVyc2lvbk1hcDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvdmVyc2lvbk1hcCIsCisgICAgICAgICAgICAgICAgICAgICJUTVMzMjBDNnhfNC4zMiI6ICIxJTJDMCUyQzQuMzIlMkMwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEM1NXhfMi41NiI6ICIxJTJDMCUyQzIuNTYlMkMwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEM1NHhfMy44MyI6ICIxJTJDMCUyQzMuODMlMkMwIiwKKyAgICAgICAgICAgICAgICAgICAgIlRNUzMyMEMyMDAwXzMuMDciOiAiMSUyQzAlMkMzLjA3JTJDMCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGFsaWduRGlyZWN0aXZlU3VwcG9ydGVkOiB0cnVlLAorICAgICAgICAgICAgICAgIHByb2ZpbGVzOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcyIsCisgICAgICAgICAgICAgICAgICAgIGRlYnVnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZzOiAiLURfREVCVUdfJTNEMSIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHJlbGVhc2U6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZSciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1PMiIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgcHJvZmlsZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWdwIgorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBjb3ZlcmFnZTogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZSciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZ3AiCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB3aG9sZV9wcm9ncmFtOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItb2UlMjAtTzIlMjAtbW8iCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHdob2xlX3Byb2dyYW1fZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZyciLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1vZSUyMC0tc3ltZGVidWclM0Fkd2FyZiUyMC1tbyIKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgc2VjdE1hcDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc2VjdE1hcCIsCisgICAgICAgICAgICAgICAgICAgICIudGV4dCI6ICJjb2RlIiwKKyAgICAgICAgICAgICAgICAgICAgIi5zdGFjayI6ICJzdGFjayIsCisgICAgICAgICAgICAgICAgICAgICIuYnNzIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmNpbml0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLnBpbml0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmNvbnN0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLmRhdGEiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuc3dpdGNoIjogImRhdGEiLAorICAgICAgICAgICAgICAgICAgICAiLnN5c21lbSI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5mYXIiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgICAgICIuYXJncyI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAgICAgIi5jaW8iOiAiZGF0YSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHN0ZEluY2x1ZGU6ICJ0aS90YXJnZXRzL3N0ZC5oIiwKKyAgICAgICAgICAgICAgICBzdGRUeXBlczogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMiLAorICAgICAgICAgICAgICAgICAgICB0X0lBcmc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0lBcmciLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfQ2hhcjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfQ2hhciIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9Eb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0RvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9GbG9hdDogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRmxvYXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfRnhuOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GeG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50OiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50ODogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50OCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQxNjogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MTYiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfSW50MzI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDMyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0ludDQwOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ0MCIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9JbnQ2NDogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NjQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHRfTG9uZzogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfTG9uZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9MRG91YmxlOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB0X0xMb25nOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MTG9uZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9QdHI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1B0ciIsCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgdF9TaG9ydDogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfU2hvcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGJpdHNQZXJDaGFyOiA4CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgcGxhdGZvcm06ICJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiLAorICAgICAgICAgICAgcGxhdGZvcm1zOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wbGF0Zm9ybXMiLAorICAgICAgICAgICAgICAgIDA6ICJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYmluYXJ5UGFyc2VyOiAidGkudGFyZ2V0cy5vbWYuY29mLkNvZmYiLAorICAgICAgICAgICAgdmVyc2lvbjogInRpLnRhcmdldHMuQzY0UCU3QjElMkMwJTJDNi4xJTJDNSIsCisgICAgICAgICAgICBkZWJ1Z0dlbjogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZGVidWdHZW4iLAorICAgICAgICAgICAgICAgIGV4ZWNUZW1wbGF0ZTogInRpL3RhcmdldHMvY2NzX2V4ZWMueGR0IiwKKyAgICAgICAgICAgICAgICBleGVjUGF0dGVybjogIiUyNCUyOGNmZ0RpciUyOSUyNCUyOGNmZ05hbWUlMjkucGp0IiwKKyAgICAgICAgICAgICAgICBwYWNrYWdlVGVtcGxhdGU6ICJ0aS90YXJnZXRzL2Njc19wYWNrYWdlLnhkdCIsCisgICAgICAgICAgICAgICAgcGFja2FnZVBhdHRlcm46ICJwYWNrYWdlLyUyNCUyOHBrZ05hbWUlMjkucGp0IgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGV4dGVuc2lvbnM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMiLAorICAgICAgICAgICAgICAgICIuczY0UCI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuczY0UCciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuczY0UCIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuczY0IjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5zNjQnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLnM2NCIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuczYyIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5zNjInIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLnM2MiIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuYXNtIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5hc20nIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmFzbSIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuYyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImMiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLmNwcCI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3BwJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jcHAiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLmN4eCI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuY3h4JyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jeHgiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLkMiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLkMnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLkMiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLmNjIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jYyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY2MiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHZlcnNpb25NYXA6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3ZlcnNpb25NYXAiLAorICAgICAgICAgICAgICAgICJUTVMzMjBDNnhfNC4zMiI6ICIxJTJDMCUyQzQuMzIlMkMwIiwKKyAgICAgICAgICAgICAgICAiVE1TMzIwQzU1eF8yLjU2IjogIjElMkMwJTJDMi41NiUyQzAiLAorICAgICAgICAgICAgICAgICJUTVMzMjBDNTR4XzMuODMiOiAiMSUyQzAlMkMzLjgzJTJDMCIsCisgICAgICAgICAgICAgICAgIlRNUzMyMEMyMDAwXzMuMDciOiAiMSUyQzAlMkMzLjA3JTJDMCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhbGlnbkRpcmVjdGl2ZVN1cHBvcnRlZDogdHJ1ZSwKKyAgICAgICAgICAgIHJvb3REaXI6ICJkJTNBL3RpL2M2MDAwL2FsYyIsCisgICAgICAgICAgICBwcm9maWxlczogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMiLAorICAgICAgICAgICAgICAgIGRlYnVnOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZyIsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZzOiAiLURfREVCVUdfJTNEMSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICByZWxlYXNlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLU8yIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgcHJvZmlsZTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1ncCIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNvdmVyYWdlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZ3AiCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgd2hvbGVfcHJvZ3JhbTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1vZSUyMC1PMiUyMC1tbyIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHdob2xlX3Byb2dyYW1fZGVidWc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZyciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItb2UlMjAtLXN5bWRlYnVnJTNBZHdhcmYlMjAtbW8iCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2ZpbHRlcnMiLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHNlY3RNYXA6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3NlY3RNYXAiLAorICAgICAgICAgICAgICAgICIudGV4dCI6ICJjb2RlIiwKKyAgICAgICAgICAgICAgICAiLnN0YWNrIjogInN0YWNrIiwKKyAgICAgICAgICAgICAgICAiLmJzcyI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmNpbml0IjogImRhdGEiLAorICAgICAgICAgICAgICAgICIucGluaXQiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5jb25zdCI6ICJkYXRhIiwKKyAgICAgICAgICAgICAgICAiLmRhdGEiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5zd2l0Y2giOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5zeXNtZW0iOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5mYXIiOiAiZGF0YSIsCisgICAgICAgICAgICAgICAgIi5hcmdzIjogImRhdGEiLAorICAgICAgICAgICAgICAgICIuY2lvIjogImRhdGEiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgc3RkSW5jbHVkZTogInRpL3RhcmdldHMvc3RkLmgiLAorICAgICAgICAgICAgc3RkVHlwZXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzIiwKKyAgICAgICAgICAgICAgICB0X0lBcmc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0lBcmciLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9DaGFyOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9DaGFyIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMSwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDEKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRG91YmxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Eb3VibGUiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9GbG9hdDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRmxvYXQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9GeG46IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Z4biIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50ODogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50OCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAxCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDE2OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQxNiIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAyCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDMyOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQzMiIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDQwOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ0MCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDY0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ2NCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDgsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA4CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xvbmc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xvbmciLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA4LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogOAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9MRG91YmxlOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfTExvbmc6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xMb25nIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDgKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfUHRyOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9QdHIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9TaG9ydDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfU2hvcnQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAyLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMgorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBiaXRzUGVyQ2hhcjogOCwKKyAgICAgICAgICAgIGJpbkRpcjogIiUyNCUyOHJvb3REaXIlMjkvYmluLyIsCisgICAgICAgICAgICBwYXRoUHJlZml4OiAiIiwKKyAgICAgICAgICAgIGFyOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9hciIsCisgICAgICAgICAgICAgICAgY21kOiAiYXI2eCIsCisgICAgICAgICAgICAgICAgb3B0czogInJxIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGFyT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvYXJPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICIiLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBsbms6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2xuayIsCisgICAgICAgICAgICAgICAgY21kOiAibG5rNngiLAorICAgICAgICAgICAgICAgIG9wdHM6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgbG5rT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJ0aS50YXJnZXRzLkM2NFAvbG5rT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiLXclMjAtcSUyMC11JTIwX2NfaW50MDAiLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIi1jJTIwLW0lMjAlMjQlMjhYRENDRkdESVIlMjkvJTI0QC5tYXAlMjAtbCUyMCUyNCUyOHJvb3REaXIlMjkvbGliL3J0czY0cGx1cy5saWIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2M6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToidGkudGFyZ2V0cy5DNjRQL2NjIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICJjbDZ4JTIwLWMiLAorICAgICAgICAgICAgICAgIG9wdHM6ICItbXY2NHAiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2NPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9jY09wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIi1xcSUyMC1wZHN3MjI1IiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2NDb25maWdPcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9jY0NvbmZpZ09wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIiUyNCUyOGNjT3B0cy5wcmVmaXglMjklMjAtbW8iLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIiUyNCUyOGNjT3B0cy5zdWZmaXglMjkiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYXNtOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9hc20iLAorICAgICAgICAgICAgICAgIGNtZDogImNsNnglMjAtYyIsCisgICAgICAgICAgICAgICAgb3B0czogIi1tdjY0cCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhc21PcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC9hc21PcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICItcXEiLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB2ZXJzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6InRpLnRhcmdldHMuQzY0UC92ZXJzIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICJjbDZ4IiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiLXZlcnNpb24iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgaW5jbHVkZU9wdHM6ICItSSUyNCUyOHJvb3REaXIlMjkvaW5jbHVkZSIKKyAgICAgICAgfSwKKyAgICAgICAgdGVzdDoge30sCisgICAgICAgIGNmZ1NjcmlwdDogInByb2cuY2ZnIiwKKyAgICAgICAgcHJvZmlsZTogInJlbGVhc2UiCisgICAgfTsKKyAgICBidWlsZC50YXJnZXQuZmluZFN1ZmZpeCA9IGZ1bmN0aW9uIGZpbmRTdWZmaXgocGtnKSB7CisgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUaGUgZnVuY3Rpb24gSVRhcmdldC5maW5kU3VmZml4KCkgcmVxdWlyZXMgYW4gIiArICJhcmd1bWVudCIpOworICAgICAgICB9CisgICAgICAgIHZhciBzdWZmaXhNYXAgPSB7fTsKKyAgICAgICAgaWYgKCJidWlsZCIgaW4gcGtnKSB7CisgICAgICAgICAgICB2YXIgYnVpbGQgPSBwa2cuYnVpbGQ7CisgICAgICAgICAgICBpZiAoYnVpbGQubGlicmFyaWVzLmxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYkRlc2NbMF0uc3VmZml4ICE9IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkLmxpYkRlc2MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeE1hcFtidWlsZC5saWJEZXNjW2ldLnN1ZmZpeF0gPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGQubGliRGVzYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYkRlc2NbaV0udGFyZ2V0ID09IHByb2cuYnVpbGQudGFyZ2V0LiRuYW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4TWFwW3Byb2cuYnVpbGQudGFyZ2V0LnN1ZmZpeF0gPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICgibGVuZ3RoIiBpbiBwa2cpIHsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBrZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzdWZmaXhNYXBbcGtnW2ldXSA9ICIiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbiBpbnZhbGlkIGFyZ3VtZW50IHR5cGUgc3VwcGxpZWQgdG8gIiArICJJVGFyZ2V0LmZpbmRTdWZmaXgoKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZhciBjb21wVGFyZ3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLmNvbXBhdGlibGVTdWZmaXhlcykgeworICAgICAgICAgICAgY29tcFRhcmdzW3Byb3BdID0gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXNbcHJvcF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuc3VmZml4IGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICh0aGlzLnN1ZmZpeCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBUYXJncy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcFRhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29tcFRhcmdzW2ldIGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY29tcFRhcmdzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKG51bGwpOworICAgIH07CisKKyAgICBidWlsZC50YXJnZXQuc2VsZWN0U3VmZml4ID0gZnVuY3Rpb24gc2VsZWN0U3VmZml4KGxpc3QpIHsKKyAgICAgICAgdmFyIHN1ZmZpeE1hcCA9IHt9OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN1ZmZpeE1hcFtsaXN0W2ldXSA9ICIiOworICAgICAgICB9CisgICAgICAgIHZhciBjb21wVGFyZ3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLmNvbXBhdGlibGVTdWZmaXhlcykgeworICAgICAgICAgICAgY29tcFRhcmdzW3Byb3BdID0gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXNbcHJvcF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuc3VmZml4IGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICh0aGlzLnN1ZmZpeCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBUYXJncy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcFRhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29tcFRhcmdzW2ldIGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY29tcFRhcmdzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKG51bGwpOworICAgIH07CisKKyAgICBidWlsZC50YXJnZXQuYXNtTmFtZSA9IGZ1bmN0aW9uIGFzbU5hbWUoY25hbWUpIHsKKyAgICAgICAgcmV0dXJuICgiXyIgKyBjbmFtZSk7CisgICAgfTsKKworICAgIF9ydW5lc2NhcGUoYnVpbGQpOworICAgIGJ1aWxkLmNmZ0FyZ3MgPSB1bmRlZmluZWQ7CisgICAgcHJvZy5idWlsZCA9IGJ1aWxkOworICAgIAorICAgIHByb2cubmFtZSA9ICJwcm9nLng2NFAiOworCisgICAgcHJvZy5lbmRpYW4gPSBwcm9nLmJ1aWxkLnRhcmdldC5tb2RlbC5lbmRpYW47CisKKyAgICAvKiB1c2UgdGhlIHBsYXRmb3JtIHBhY2thZ2UncyBQbGF0Zm9ybSBtb2R1bGUgKi8KKyAgICB2YXIgUGxhdGZvcm0gPSB4ZGMudXNlTW9kdWxlKCJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHguUGxhdGZvcm0iKTsKKyAgICB2YXIgcGxhdFBhcmFtcyA9IF9nZXRQbGF0Q2ZnKCk7CisgICAgZm9yICh2YXIgcHJvcCBpbiBwbGF0UGFyYW1zKSB7CisgICAgICAgIGlmICghKHByb3AgaW4gUGxhdGZvcm0uUEFSQU1TKSkgeworICAgICAgICAgICAgZGVsZXRlIHBsYXRQYXJhbXNbcHJvcF07CisgICAgICAgIH0KKyAgICB9CisgICAgcHJvZy5wbGF0Zm9ybU5hbWUgPSAidGkucGxhdGZvcm1zLnNpbTY0UHh4IjsKKyAgICBwcm9nLnBsYXRmb3JtID0gUGxhdGZvcm0uY3JlYXRlKCIiLCBfZ2V0UGxhdENmZygpLCBwbGF0UGFyYW1zKTsKKyAgICAvKiByZWNvcmQgdGhlIGV4ZWN1dGFibGUncyBwYWNrYWdlIG5hbWUgKi8KKyAgICBwcm9nLmJ1aWxkUGFja2FnZSA9ICJoZWxsby5wa2ciOworCisgICAgLyogcmVjb3JkIGJ1aWxkLW1vZGVsIGluZm9ybWF0aW9uIHJlcXVpcmVkIGR1cmluZyBjb25maWcgZ2VuZXJhdGlvbiAqLworICAgIHByb2cuJCRiaW5kKCIkJGlzYXNtIiwgMCk7CisgICAgcHJvZy4kJGJpbmQoIiQkaXNyb20iLCAwKTsKKyAgICBwcm9nLiQkYmluZCgiJCRnZW50YWIiLCBbCisgICAgXSk7CisgICAgCisgICAgLyogYmluZCBwcm9nIHRvIGFuIGFwcHJvcHJpYXRlIGV4ZWN1dGlvbiBjb250ZXh0ICovCisgICAgcHJvZy5jcHUgPSBwcm9nLnBsYXRmb3JtLmdldEV4ZUNvbnRleHQocHJvZyk7CisKKyAgICAvKiBpbXBvcnQgdGhlIHRhcmdldCdzIHJ1bi10aW1lIHN1cHBvcnQgcGtnICovCisgICAgeGRjLmxvYWRQYWNrYWdlKCJ0aS50YXJnZXRzLnJ0czYwMDAiKTsKK30KKyAgICAKKy8qIGZ1bmN0aW9uIHRvIGltcG9ydCB0aGUgY2ZnIHNjcmlwdCdzIHBhY2thZ2UgKi8KK2Z1bmN0aW9uIF91c2Vyc2NyaXB0KCQkbGVnYWN5LCBzY3JpcHQpIHsKKyAgICB2YXIgaG9tZTsKKyAgICB2YXIgc3BhdGg7CisgICAgLyogaW1wb3J0IHRoZSBleGVjdXRhYmxlJ3MgcGFja2FnZSAqLworICAgIGhvbWUgPSB4ZGMubG9hZFBhY2thZ2UoImhlbGxvLnBrZyIpOworICAgIHNwYXRoID0gJy4nOworICAgIAorICAgIHhkYy5vbS4kJGJpbmQoJyRob21lcGtnJywgaG9tZSk7CisKKyAgICBpZiAoc2NyaXB0ICE9IG51bGwpIHsKKyAgICAgICAgdXRpbHMuZXZhbHVhdGVTY3JpcHQoc2NyaXB0KTsKKyAgICB9CisgICAgZWxzZSB7IAorICAgICAgICAvKiBsb2FkICYgcnVuIHByb2dyYW0gY2ZnIHNjcmlwdCBhbmQgbW9uaXRvciBhbGwgbG9hZGVkIGZpbGVzICovCisgICAgICAgIF9ydW5DZmcoInByb2cuY2ZnIiwgc3BhdGgsICJwYWNrYWdlL2NmZy9wcm9nX3g2NFAiLCAgCisgICAgICAgICAgICAgICAgIGZhbHNlLCAKKyAgICAgICAgICAgICAgICAgZmFsc2UsCisgICAgICAgICAgICAgICAgIF9nZXRQbGF0Q2ZnKCkpOworICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAKKworCisgICAgLyoKKyAgICAgKiAgPT09PT09PT0gX3J1bkNmZyA9PT09PT09PQorICAgICAqICBSdW4gYSB1c2VyIHN1cHBsaWVkIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGFuZCBwcmV2ZW50IHVzZXIncyBzY3JpcHQgZnJvbQorICAgICAqICBvdmVyd3JpdGluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHByb2cuCisgICAgICovCisgICAgZnVuY3Rpb24gX3J1bkNmZyhjZmdTY3JpcHQsIHBhdGgsIHByb2dyYW1OYW1lLCBsZWdhY3lUY2YsIGxlZ2FjeUNmZywKKyAgICAgICAgcGxhdFBhcmFtcykKKyAgICB7CisgICAgICAgIGlmIChsZWdhY3lUY2YpIHsKKyAgICAgICAgICAgIC8qIHNhdmUgY3VycmVudCBnbG9iYWwgdmFyaWFibGVzICovCisgICAgICAgICAgICB2YXIgJHNhdmUgPSB7cHJvZzogdXRpbHMuZ2xvYmFsLnByb2csIFByb2dyYW06IFByb2dyYW19OworICAgIAorICAgICAgICAgICAgLyogaW5pdGlhbGl6ZSBnbG9iYWwgdmFyaWFibGVzIGZvciBsZWdhY3kgY29uZmlnIHNjcmlwdHMgKi8KKyAgICAgICAgICAgIGVudmlyb25tZW50WyJjb25maWcucHJvZ3JhbU5hbWUiXSA9IHByb2dyYW1OYW1lOworICAgICAgICAgICAgZW52aXJvbm1lbnRbImNvbmZpZy5wbGF0Zm9ybSJdID0gUHJvZ3JhbS5wbGF0Zm9ybU5hbWU7CisgICAgICAgICAgICB1dGlscy5zZWVkUGF0aCA9IGVudmlyb25tZW50WyJjb25maWcuaW1wb3J0UGF0aCJdOworICAgICAgICAgICAgdXRpbHMubG9hZFBsYXRmb3JtLnBhcmFtcyA9IHBsYXRQYXJhbXM7CisgICAgICAgICAgICBQcm9ncmFtID0gJCRsZWdhY3kuUHJvZ3JhbTsgICAgIC8qIGRlZmluZWQgaW4gY2ZnLnRjaSAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiBydW4gbGVnYWN5IGNvbmZpZyBzY3JpcHQgd2l0aCBwcm9nID09IHRvIFJUU0MgUHJvZ3JhbTsgdGhpcworICAgICAgICAgICAgICogYWxsb3dzIGxlZ2FjeSBzY3JpcHQgdG8gcmVhZCBidWlsZCBhdHJpYnV0ZXMgZnJvbSBSVFNDIG1vZGVsCisgICAgICAgICAgICAgKiBiZWZvcmUgcmUtY3JlYXRpbmcgdGhlIHByb2cgb2JqZWN0CisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHV0aWxzLmxvYWRDYXBzdWxlKGNmZ1NjcmlwdCwgZmFsc2UsIHBhdGgpOyAgCisgICAgCisgICAgICAgICAgICAvKiByZXN0b3JlIGdsb2JhbCB2YXJpYWJsZXM7IG5vdyBwcm9nID09IFRDT00gcHJvZyBiZWNhdXNlCisgICAgICAgICAgICAgKiB1dGlscy5sb2FkUGxhdGZvcm0oKSBjcmVhdGVzIHRoZSBUQ09NIHByb2cgb2JqZWN0LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICAkJGxlZ2FjeS5wcm9nID0gdXRpbHMuZ2xvYmFsLnByb2c7ICAvKiBpbiBjYXNlIFhEQyB3YW50cyBpdCAqLworICAgICAgICAgICAgdXRpbHMuZ2xvYmFsLnByb2cgPSAkc2F2ZS5wcm9nOworICAgICAgICAgICAgUHJvZ3JhbSA9ICRzYXZlLlByb2dyYW07CisgICAgCisgICAgICAgICAgICAvKiBydW4gWERDIGNvbmZpZ3VyYXRpb24gc2NyaXB0LCBpZiBpdCBleGlzdHMgKi8KKyAgICAgICAgICAgIGlmIChsZWdhY3lDZmcpIHsKKyAgICAgICAgICAgICAgICB1dGlscy5pbXBvcnRGaWxlKGNmZ1NjcmlwdC5yZXBsYWNlKC9cLnRjZi8sICIuY2ZnIiksIHBhdGgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdXRpbHMubG9hZENhcHN1bGUoY2ZnU2NyaXB0LCBmYWxzZSwgcGF0aCk7CisgICAgICAgIH0KKyAgICB9Cit9CisgICAgCitmdW5jdGlvbiBfcG9zdGluaXQoKSB7CisKKyAgICB2YXIgY291dCA9IG51bGw7CisKKyAgICB2YXIgcHJvZyA9IHhkYy5vbVsneGRjLmNmZy5Qcm9ncmFtJ107CisgICAgLyogZ2V0IHRoZSBleGVjIGNvbW1hbmQgZm9yIHRoaXMgZXhlY3V0YWJsZSAqLworICAgIGlmIChwcm9nLmV4ZWNDbWQgPT0gbnVsbCkgeworICAgICAgICBwcm9nLmV4ZWNDbWQgPSBwcm9nLnBsYXRmb3JtLmdldEV4ZWNDbWQocHJvZywKKyAgICAgICAgICAgIHhkYy5vbVsidGkucGxhdGZvcm1zLnNpbTY0UHh4Il0ucGFja2FnZUJhc2UpOworICAgIH0KKyAgICB2YXIgY291dCA9ICJkZWZpbmUgRVhFQy4iICsgcHJvZy5uYW1lICsgJ1xuXG4nOworICAgIGNvdXQgKz0gcHJvZy5leGVjQ21kOworICAgIGNvdXQgKz0gIlxuZW5kZWZcblxuIjsKKworICAgIHV0aWxzLmdlbkRlcCgicGFja2FnZS9jZmcvcHJvZ194NjRQIiwgImhlbGxvLnBrZyIsIHV0aWxzLmxvYWRlZEZpbGVzLCBjb3V0LCBudWxsKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLmRvdCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLmRvdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWVjYTIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcuZG90CkBAIC0wLDAgKzEsMTY0IEBACitkaWdyYXBoIGNvbmZpZ3VyYXRpb24geworICAgIHNpemU9IjcuNSwxMCI7CisgICAgcmFua2Rpcj1MUjsKKyAgICByYW5rc2VwPSIuNTAgZXF1YWxseSI7CisgICAgY29uY2VudHJhdGU9dHJ1ZTsKKyAgICBjb21wb3VuZD10cnVlOworICAgIGxhYmVsPSJcbkNvbmZpZ3VyYXRpb24gZm9yIGhlbGxvLnBrZy9wcm9nLng2NFAiCisgIG5vZGUgW2ZvbnQ9SGVsdmV0aWNhLCBmb250c2l6ZT0xNCwgZm9udGNvbG9yPWJsYWNrXTsgIHN1YmdyYXBoIGNsdXN0ZXIwIHtsYWJlbD0iIjsgX19jZmcgW2xhYmVsPSJwcm9nLmNmZyIsIGNvbG9yPXdoaXRlLCBmb250Y29sb3I9Ymx1ZV07CisgICAgbm9kZSBbZm9udD1IZWx2ZXRpY2EsIGZvbnRzaXplPTEwXTsgICAgc3ViZ3JhcGggY2x1c3RlcjEgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjXG4xLCAxLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfY29yZXZlcnNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuY29yZXZlcnNcbjE2LCAwLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmdsb2JhbFxuMSwgMCwgMSIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkNsb2NrIl07CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfX3RvcCAtPiB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9DbG9jayAtPiB4ZGNfc2VydmljZXNfZ2xvYmFsX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2hlbGZfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2hlbGZcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19zcGVjX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLnNwZWNcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI2IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5feHNyX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi54c3JcbjEsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI3IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5fZ2VuX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi5nZW5cbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI4IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5fY21kX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi5jbWRcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI5IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19yb3ZfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucm92XG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcm92X19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB0aV9jYXRhbG9nX2M2MDAwX190b3AgW3NoYXBlPWJveCxsYWJlbD0idGkuY2F0YWxvZy5jNjAwMFxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgdGlfY2F0YWxvZ19jNjAwMF9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB0aV9jYXRhbG9nX2M2MDAwX1RNUzMyMENUQ0k2NDgyIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlRNUzMyMENUQ0k2NDgyIl07CisgICAgICAgIHRpX2NhdGFsb2dfYzYwMDBfX3RvcCAtPiB0aV9jYXRhbG9nX2M2MDAwX1RNUzMyMENUQ0k2NDgyW3N0eWxlPWludmlzXTsKKyAgICAgICAgdGlfY2F0YWxvZ19jNjAwMF9UTVMzMjBDVENJNjQ4MiAtPiB0aV9jYXRhbG9nX2M2MDAwX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTEgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3BsYXRmb3JtX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnBsYXRmb3JtXG4xLCAwLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX0V4ZUNvbnRleHQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRXhlQ29udGV4dCJdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX3RvcCAtPiB4ZGNfcGxhdGZvcm1fRXhlQ29udGV4dFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9FeGVDb250ZXh0IC0+IHhkY19wbGF0Zm9ybV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX1V0aWxzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlV0aWxzIl07CisgICAgICAgIHhkY19wbGF0Zm9ybV9fdG9wIC0+IHhkY19wbGF0Zm9ybV9VdGlsc1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9VdGlscyAtPiB4ZGNfcGxhdGZvcm1fX2JvdFtzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfY2ZnX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLmNmZ1xuMSwgMCwgMiwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX2NmZ19fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX1Byb2dyYW0gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iUHJvZ3JhbSJdOworICAgICAgICB4ZGNfY2ZnX190b3AgLT4geGRjX2NmZ19Qcm9ncmFtW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19Qcm9ncmFtIC0+IHhkY19jZmdfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfTWFpbiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJNYWluIl07CisgICAgICAgIHhkY19jZmdfX3RvcCAtPiB4ZGNfY2ZnX01haW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX01haW4gLT4geGRjX2NmZ19fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEzIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHRpX3BsYXRmb3Jtc19zaW02NFB4eF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InRpLnBsYXRmb3Jtcy5zaW02NFB4eFxuMSwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgdGlfcGxhdGZvcm1zX3NpbTY0UHh4X19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHRpX3BsYXRmb3Jtc19zaW02NFB4eF9QbGF0Zm9ybSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJQbGF0Zm9ybSJdOworICAgICAgICB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfX3RvcCAtPiB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfUGxhdGZvcm1bc3R5bGU9aW52aXNdOworICAgICAgICB0aV9wbGF0Zm9ybXNfc2ltNjRQeHhfUGxhdGZvcm0gLT4gdGlfcGxhdGZvcm1zX3NpbTY0UHh4X19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTQgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucnVudGltZVxuMiwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQXNzZXJ0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkFzc2VydCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0Fzc2VydFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Fzc2VydCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQ29yZSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDb3JlIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfQ29yZVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0NvcmUgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RlZmF1bHRzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkRlZmF1bHRzIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfRGVmYXVsdHNbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EZWZhdWx0cyAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGlhZ3MgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRGlhZ3MiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9EaWFnc1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RpYWdzIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9FcnJvciBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJFcnJvciJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0Vycm9yW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRXJyb3IgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGUgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iR2F0ZSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0dhdGVbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJHYXRlTnVsbCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0dhdGVOdWxsW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGwgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0xvZyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJMb2ciXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9Mb2dbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Mb2cgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW4gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbiJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01haW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWVtb3J5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWVtb3J5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkhlYXBTdGQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9IZWFwU3RkW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3RhcnR1cCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTdGFydHVwIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3RhcnR1cFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N0YXJ0dXAgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW0iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXN0ZW1bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW0gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c01pbiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXNNaW4iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXNNaW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXNNaW4gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1RleHQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iVGV4dCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1RleHRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9UZXh0IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbl9Nb2R1bGVfR2F0ZVByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1lbW9yeV9IZWFwUHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW1fU3VwcG9ydFByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHRpX3RhcmdldHNfcnRzNjAwMF9fdG9wIFtzaGFwZT1ib3gsbGFiZWw9InRpLnRhcmdldHMucnRzNjAwMFxuMSwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE2IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIGhlbGxvX3BrZ19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9ImhlbGxvLnBrZ1xuIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgfQorICBub2RlIFtmb250PUhlbHZldGljYSwgZm9udHNpemU9MTBdOworICAgIHRpX3RhcmdldHNfQzY0UF9fMV8wXzZfXzBfMTYgW3NoYXBlPXJlY29yZCxsYWJlbD0idGkudGFyZ2V0cy5DNjRQfDEsMCw2LjAsMTYiLHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWxpZ2h0Z3JleV07CisgICAgdGlfdGFyZ2V0c19ydHM2MDAwX190b3AgLT4gdGlfdGFyZ2V0c19DNjRQX18xXzBfNl9fMF8xNiBbbHRhaWw9Y2x1c3RlcjE1XTsKKyAgICB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18xXzUgW3NoYXBlPXJlY29yZCxsYWJlbD0idGkudGFyZ2V0cy5DNjRQfDEsMCw2LjEsNSIsc3R5bGU9ZmlsbGVkLCBmaWxsY29sb3I9bGlnaHRncmV5XTsKKyAgICBoZWxsb19wa2dfX3RvcCAtPiB0aV90YXJnZXRzX0M2NFBfXzFfMF82X18xXzUgW2x0YWlsPWNsdXN0ZXIxNl07Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZy54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTBmMjdhYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuY2ZnLnhtbApAQCAtMCwwICsxLDIxOTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBUaGlzIGZpbGUgY29uZm9ybXMgdG8gdGhlIERURCB4ZGMvY2ZnL2NvbmZpZ3VyYXRpb24uZHRkIC0tPgorPGNvbmZpZ3VyYXRpb24gbmFtZT0iaGVsbG8ucGtnL3Byb2cueDY0UCIKKyAgICBwbGF0Zm9ybU5hbWU9InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIKKyAgICBnbG9iYWxTZWN0aW9uPSJudWxsIgorICAgIHN5c1N0YWNrPSI0MDk2IgorICAgIHN0YWNrPSI0MDk2IgorICAgIGhlYXA9IjQwOTYiCisgICAgYXJnU2l6ZT0iNTEyIgorICAgIGV4ZWNDbWQ9IkUlM0EvcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9XaW5kb3dzL2tlbHZpbiUyMC1xdWlldCUyMC1tZW1faWdub3JlJTIwRCUzQSU1Q3dvcmslNUN0dXRvcmlhbCU1Q3JlcG8lNUNoZWxsbyU1Q3BrZyU1Q3Byb2cueDY0UCIKKyAgICBlbmRpYW49ImxpdHRsZSIKKyAgICBjb2RlTW9kZWw9Im51bGwiCisgICAgZGF0YU1vZGVsPSJudWxsIj4KKzx0YXJnZXRzPgorICAgIDx0YXJnZXQgbmFtZT0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICAgICAgdmVyc2lvbj0iMSwwLDYuMCwxNiIKKyAgICAgICAgICAgIHVzZWRieT0idGkudGFyZ2V0cy5ydHM2MDAwIi8+CisgICAgPHRhcmdldCBuYW1lPSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsNi4xLDUiCisgICAgICAgICAgICB1c2VkYnk9ImhlbGxvLnBrZyIvPgorPC90YXJnZXRzPgorPGltcG9ydHM+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjIiB2ZXJzaW9uPSIxLCAxLCAxLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLmNvcmV2ZXJzIiB2ZXJzaW9uPSIxNiwgMCwgMSwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwiIHZlcnNpb249IjEsIDAsIDEiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5zZXJ2aWNlcy5nbG9iYWwuQ2xvY2siCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZW5hYmxlIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNob3dNZW1vcnkiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuc2VydmljZXMuZ2xvYmFsLlRyYWNlIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2hlbGYiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuc3BlYyIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyIiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmludGVybi5nZW4iIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuaW50ZXJuLmNtZCIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5yb3YiIHZlcnNpb249IjEsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuTW9kZWwiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5Qcm9ncmFtIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuU3RydWN0dXJlRGVjb2RlciIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlN0YXRlUmVhZGVyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuVmlld0luZm8iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NTIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVE5FVFYyNjg1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MjgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcxMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzExQiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzEyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MTMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIxMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjExQiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDEwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxMiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDEzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQxNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDE2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0MTgiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQyMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDI0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQyIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RBNzAwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RBNzA1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RBNzA3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RBNzEwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RBNzAwU0lNIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQ0MiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0NDQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDQ2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwRFJBNDQ3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3MjIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcyNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzI3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNDE1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNDIwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNDIxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNDI1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNDI2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQzMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0MzMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDM1IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQzNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENETTY0NDEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRE02NDQzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ0NiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERNMzU3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RNNjQ2NyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkkzMDAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4MiIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjYWNoZVNpemVMMSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3MGslMjclMkMlMjAweDAlNUQlMkMlMEElNUIlMjc0ayUyNyUyQyUyMDB4MTAwMCU1RCUyQyUwQSU1QiUyNzhrJTI3JTJDJTIwMHgyMDAwJTVEJTJDJTBBJTVCJTI3MTZrJTI3JTJDJTIwMHg0MDAwJTVEJTJDJTBBJTVCJTI3MzJrJTI3JTJDJTIwMHg4MDAwJTVEJTBBJTVEIj48bWFwIGlkPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDgyL2NhY2hlU2l6ZUwxIiBsZW5ndGg9IjUiPg0KKyAgPGVudHJ5IGtleT0iMGsiPjB4MDwvZW50cnk+DQorICA8ZW50cnkga2V5PSI0ayI+MHgxMDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjhrIj4weDIwMDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iMTZrIj4weDQwMDA8L2VudHJ5Pg0KKyAgPGVudHJ5IGtleT0iMzJrIj4weDgwMDA8L2VudHJ5Pg0KKzwvbWFwPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2FjaGVTaXplTDIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyNzBrJTI3JTJDJTIwMHgwJTVEJTJDJTBBJTVCJTI3MzJrJTI3JTJDJTIwMHg4MDAwJTVEJTJDJTBBJTVCJTI3NjRrJTI3JTJDJTIwMHgxMDAwMCU1RCUyQyUwQSU1QiUyNzEyOGslMjclMkMlMjAweDIwMDAwJTVEJTJDJTBBJTVCJTI3MjU2ayUyNyUyQyUyMDB4NDAwMDAlNUQlMEElNUQiPjxtYXAgaWQ9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODIvY2FjaGVTaXplTDIiIGxlbmd0aD0iNSI+DQorICA8ZW50cnkga2V5PSIwayI+MHgwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjMyayI+MHg4MDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjY0ayI+MHgxMDAwMDwvZW50cnk+DQorICA8ZW50cnkga2V5PSIxMjhrIj4weDIwMDAwPC9lbnRyeT4NCisgIDxlbnRyeSBrZXk9IjI1NmsiPjB4NDAwMDA8L2VudHJ5Pg0KKzwvbWFwPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDg2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODciCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDVENJNjQ4OCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENUQ0k2NDg0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NTQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQ1NSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEMyNDMwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzM0MzAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjcwMSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjAxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMDIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjIwMyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjAzQiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2MjA0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzYyMDUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDA2IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQwMiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENEUkE0MDQiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDRFJBNDE0IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ0RSQTQxNiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMENGNzYxOTkwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDI0MzEiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMjUzMCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAyNTMxIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuT01BUDM0MjUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQMzUyNSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLk9NQVAzNTMwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MDUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgwNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODA4IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwREE4MTAiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBEQTgyOCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMERBODMwIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY0NzIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5UTVMzMjBDNjQ3NCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NzQ3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQzY3NDUiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0idGkuY2F0YWxvZy5jNjAwMC5PTUFQTDEzNyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5jYXRhbG9nLmM2MDAwLlRNUzMyMEM2NDU3IgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucGxhdGZvcm0iIHZlcnNpb249IjEsIDAsIDEsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5wbGF0Zm9ybS5FeGVDb250ZXh0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnBsYXRmb3JtLlV0aWxzIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5jZmciIHZlcnNpb249IjEsIDAsIDIsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5jZmcuUHJvZ3JhbSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnZW4iIHR5cGU9InhkYy5jZmcuUHJvZ3JhbS5HZW5lcmF0aW9uT3B0aW9ucyIgdmFsdWU9IiU3QmRlYnVnZ2VyRmlsZXMlM0ElMjB1bmRlZmluZWQlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5jZmcuUHJvZ3JhbS9nZW4iPg0KKyAgPGZpZWxkIG5hbWU9ImRlYnVnZ2VyRmlsZXMiPnVuZGVmaW5lZDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnbG9iYWxTZWN0aW9uIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeXNTdGFjayIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3RhY2siIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImhlYXAiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImFyZ1NpemUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXhlY0NtZCIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iRSUzQS9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1dpbmRvd3Mva2VsdmluJTIwLXF1aWV0JTIwLW1lbV9pZ25vcmUlMjBEJTNBJTVDd29yayU1Q3R1dG9yaWFsJTVDcmVwbyU1Q2hlbGxvJTVDcGtnJTVDcHJvZy54NjRQIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsaW5rVGVtcGxhdGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1haW4iIHR5cGU9InVuZGVmaW5lZCIgdmFsdWU9InVuZGVmaW5lZCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2VjdE1hcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN5c3RlbSIgdHlwZT0idW5kZWZpbmVkIiB2YWx1ZT0idW5kZWZpbmVkIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJuYW1lIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJwcm9nLng2NFAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1aWxkUGFja2FnZSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iaGVsbG8ucGtnIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJlbmRpYW4iIHR5cGU9InN0cmluZyIgdmFsdWU9ImxpdHRsZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29kZU1vZGVsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkYXRhTW9kZWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImJ1aWxkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUJvYmplY3QlMjBPYmplY3QlNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNwdSIgdHlwZT0ieGRjLnBsYXRmb3JtLklFeGVDb250ZXh0Lkluc3RhbmNlIiB2YWx1ZT0iJTdCaWQlM0ElMjAwJTJDJTIwY2F0YWxvZ05hbWUlM0ElMjB0aS5jYXRhbG9nLmM2MDAwJTJDJTIwZGV2aWNlTmFtZSUzQSUyMFRNUzMyMENUQ0k2NDgyJTJDJTIwcmV2aXNpb24lM0ElMjAlMkMlMjBjbG9ja1JhdGUlM0ElMjAweDNlOCUyQyUyMGJvYXJkJTNBJTIwJTdCaWQlM0ElMjAwJTJDJTIwYm9hcmROYW1lJTNBJTIwc2ltNjRQeHglMkMlMjBib2FyZEZhbWlseSUzQSUyMHNpbTY0UHh4JTJDJTIwYm9hcmRSZXZpc2lvbiUzQSUyMG51bGwlN0QlMkMlMjBhdHRycyUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDEyZTdjNmElM0ElM0ElMjh4ZGMucGxhdGZvcm0uSUNwdURhdGFTaGVldC5JbnN0YW5jZSUyOXRpLmNhdGFsb2cuYzYwMDAuVE1TMzIwQ1RDSTY0ODIuSW5zdGFuY2UlMjMwJTJDJTIwbWVtb3J5TWFwJTNBJTIwJTVCJTBBJTVCJTI3SVJBTSUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjBJbnRlcm5hbCUyMDJNQiUyMFVNQVAwJTIwbWVtb3J5JTJDJTIwbmFtZSUzQSUyMElSQU0lMkMlMjBzcGFjZSUzQSUyMGNvZGUvZGF0YSUyQyUyMHBhZ2UlM0ElMjB1bmRlZmluZWQlMkMlMjBiYXNlJTNBJTIwMHg4MDAwMDAlMkMlMjBsZW4lM0ElMjAweDIwMDAwMCUyQyUyMGFjY2VzcyUzQSUyMFJXWCU3RCU1RCUyQyUwQSU1QiUyN0REUiUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjB1bmRlZmluZWQlMkMlMjBuYW1lJTNBJTIwRERSJTJDJTIwc3BhY2UlM0ElMjB1bmRlZmluZWQlMkMlMjBwYWdlJTNBJTIwdW5kZWZpbmVkJTJDJTIwYmFzZSUzQSUyMDB4ODAwMDAwMDAlMkMlMjBsZW4lM0ElMjAweDEwMDAwMDAwJTJDJTIwYWNjZXNzJTNBJTIwdW5kZWZpbmVkJTdEJTVEJTBBJTVEJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwbGF0Zm9ybU5hbWUiIHR5cGU9InN0cmluZyIgdmFsdWU9InRpLnBsYXRmb3Jtcy5zaW02NFB4eCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icGxhdGZvcm0iIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uSW5zdGFuY2UiIHZhbHVlPSIlN0JleHRlcm5hbE1lbW9yeU1hcCUzQSUyMCU1QiUwQSU1QiUyN0REUiUyNyUyQyUyMCU3QmNvbW1lbnQlM0ElMjB1bmRlZmluZWQlMkMlMjBuYW1lJTNBJTIwRERSJTJDJTIwc3BhY2UlM0ElMjB1bmRlZmluZWQlMkMlMjBwYWdlJTNBJTIwdW5kZWZpbmVkJTJDJTIwYmFzZSUzQSUyMDB4ODAwMDAwMDAlMkMlMjBsZW4lM0ElMjAweDEwMDAwMDAwJTJDJTIwYWNjZXNzJTNBJTIwdW5kZWZpbmVkJTdEJTVEJTBBJTVEJTJDJTIwY3VzdG9tTWVtb3J5TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcmVuYW1lTWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwZGF0YU1lbW9yeSUzQSUyMEREUiUyQyUyMGNvZGVNZW1vcnklM0ElMjBJUkFNJTJDJTIwc3RhY2tNZW1vcnklM0ElMjBERFIlMkMlMjBzZWN0TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnbG9iYWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeW1ib2wiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MlMjclMkMlMjAweDElNUQlMkMlMEElNUIlMjd4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyUyNyUyQyUyMDB4MSU1RCUwQSU1RCI+PG1hcCBpZD0ieGRjLmNmZy5Qcm9ncmFtL3N5bWJvbCIgbGVuZ3RoPSIyIj4NCisgIDxlbnRyeSBrZXk9InhkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MiPjB4MTwvZW50cnk+DQorICA8ZW50cnkga2V5PSJ4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyI+MHgxPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpeGVkQ29kZUFkZHIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpeGVkRGF0YUFkZHIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxvYWRGaXhlZERhdGFBZGRyIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxvYWRSb20iIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuY2ZnLk1haW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0idGkucGxhdGZvcm1zLnNpbTY0UHh4IiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHguUGxhdGZvcm0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQk9BUkQiIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uQm9hcmQiIHZhbHVlPSIlN0JpZCUzQSUyMDAlMkMlMjBib2FyZE5hbWUlM0ElMjBzaW02NFB4eCUyQyUyMGJvYXJkRmFtaWx5JTNBJTIwc2ltNjRQeHglMkMlMjBib2FyZFJldmlzaW9uJTNBJTIwbnVsbCU3RCI+PHN0cnVjdCBpZD0idGkucGxhdGZvcm1zLnNpbTY0UHh4LlBsYXRmb3JtL0JPQVJEIj4NCisgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmROYW1lIj5zaW02NFB4eDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iYm9hcmRGYW1pbHkiPnNpbTY0UHh4PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZFJldmlzaW9uIj5udWxsPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkNQVSIgdHlwZT0ieGRjLnBsYXRmb3JtLklFeGVDb250ZXh0LkNwdSIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGNhdGFsb2dOYW1lJTNBJTIwdGkuY2F0YWxvZy5jNjAwMCUyQyUyMGRldmljZU5hbWUlM0ElMjBUTVMzMjBDVENJNjQ4MiUyQyUyMHJldmlzaW9uJTNBJTIwJTJDJTIwY2xvY2tSYXRlJTNBJTIwMHgzZTglN0QiPjxzdHJ1Y3QgaWQ9InRpLnBsYXRmb3Jtcy5zaW02NFB4eC5QbGF0Zm9ybS9DUFUiPg0KKyAgPGZpZWxkIG5hbWU9ImlkIj4wPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjYXRhbG9nTmFtZSI+dGkuY2F0YWxvZy5jNjAwMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGV2aWNlTmFtZSI+VE1TMzIwQ1RDSTY0ODI8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJldmlzaW9uIi8+DQorICA8ZmllbGQgbmFtZT0iY2xvY2tSYXRlIj4weDNlODwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucnVudGltZSIgdmVyc2lvbj0iMiwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9hc3NlcnRGYWlsZWQiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBhc3NlcnRpb24lMjBmYWlsdXJlJTI1cyUyNXMlMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzAiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+YXNzZXJ0aW9uIGZhaWx1cmUlcyVzPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Db3JlIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzcxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2luaXRpYWxpemVkUGFyYW1zIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwQV9pbml0aWFsaXplZFBhcmFtcyUzQSUyMHVuaW5pdGlhbGl6ZWQlMjBQYXJhbXMlMjBzdHJ1Y3QlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzAiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+QV9pbml0aWFsaXplZFBhcmFtczogdW5pbml0aWFsaXplZCBQYXJhbXMgc3RydWN0PC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5EZWZhdWx0cy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5EaWFncyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkRpYWdzL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzczIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFTlRSWSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRVhJVCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTElGRUNZQ0xFIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJJTlRFUk5BTCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQVNTRVJUIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjEiIHR5cGU9Im51bWJlciIgdmFsdWU9IjI1NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjMiIHR5cGU9Im51bWJlciIgdmFsdWU9IjEwMjQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI0IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyMDQ4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjYiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgxOTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI3IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNjM4NCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjgiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzY4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBTEwiIHR5cGU9Im51bWJlciIgdmFsdWU9IjY1NTM1Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZXRNYXNrRW5hYmxlZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJkaWN0QmFzZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5FcnJvciIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJOVU1BUkdTIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX2dlbmVyaWMiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBnZW5lcmljJTIwZXJyb3IlM0ElMjAlMjVzJTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxIj4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPmdlbmVyaWMgZXJyb3I6ICVzPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9tZW1vcnkiIHR5cGU9InhkYy5ydW50aW1lLkVycm9yLkRlc2MiIHZhbHVlPSIlN0Jtc2clM0ElMjBvdXQlMjBvZiUyMG1lbW9yeSUzQSUyMGhlYXAlM0QweCUyNXglMkMlMjBzaXplJTNEJTI1dSUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjMiI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5vdXQgb2YgbWVtb3J5OiBoZWFwPTB4JXgsIHNpemU9JXU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwb2xpY3kiIHR5cGU9Im9iamVjdCIgdmFsdWU9InhkYy5ydW50aW1lLkVycm9yLlVOV0lORCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icmFpc2VIb29rIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4RGVwdGgiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkdhdGUiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuR2F0ZU51bGwiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5HYXRlTnVsbC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9CTE9DS0lORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9QUkVFTVBUSU5HIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZyIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkxvZy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5VTUFSR1MiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlBSSU5URklEIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2NvbnN0cnVjdCIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAlM0MtLSUyMGNvbnN0cnVjdCUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2NyZWF0ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAlM0MtLSUyMGNyZWF0ZSUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJMX2Rlc3RydWN0IiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMC0tJTNFJTIwZGVzdHJ1Y3QlM0ElMjAlMjglMjVwJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4NDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj4tLT4gZGVzdHJ1Y3Q6ICglcCk8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9kZWxldGUiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwLS0lM0UlMjBkZWxldGUlM0ElMjAlMjglMjVwJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4NDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj4tLT4gZGVsZXRlOiAoJXApPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImlkVG9JbmZvIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjclMjM0NjglMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9jb25zdHJ1Y3QlM0ElM0ElM0MtLSUyMGNvbnN0cnVjdCUzQSUyMCUyNXAlMjglMjclMjVzJTI3JTI5JTVEJTJDJTBBJTVCJTI3JTIzNDkyJTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlJTNBJTNBJTNDLS0lMjBjcmVhdGUlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU1RCUyQyUwQSU1QiUyNyUyMzUxMyUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2Rlc3RydWN0JTNBJTNBLS0lM0UlMjBkZXN0cnVjdCUzQSUyMCUyOCUyNXAlMjklNUQlMkMlMEElNUIlMjclMjM1MzIlMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9kZWxldGUlM0ElM0EtLSUzRSUyMGRlbGV0ZSUzQSUyMCUyOCUyNXAlMjklNUQlMEElNUQiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTG9nZ2VyQnVmIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZ2dlclN5cyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5NYWluIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfR2F0ZVByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDElMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBRX0JMT0NLSU5HJTNBJTIwMHgxJTJDJTIwUV9QUkVFTVBUSU5HJTNBJTIwMHgyJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxZGU0ZGQ4JTNBJTNBJTI4eGRjLnJ1bnRpbWUuSUdhdGVQcm92aWRlci5Nb2R1bGUlMjl4ZGMucnVudGltZS5HYXRlTnVsbCUyQyUyMGFic3RyYWN0SW5zdGFuY2VzJTI0JTNBJTIwZmFsc2UlN0QiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTWVtb3J5IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3OSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iUV9CTE9DS0lORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGVmYXVsdEhlYXBJbnN0YW5jZSIgdHlwZT0ieGRjLnJ1bnRpbWUuSUhlYXAuSW5zdGFuY2UiIHZhbHVlPSIlN0IlN0QiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGVmYXVsdEhlYXBTaXplIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJIZWFwUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkuTW9kdWxlIiB2YWx1ZT0iJTdCY29tbW9uJTI0JTNBJTIwJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEJTJDJTIwdmlld05hbWVNYXAlMjQlM0ElMjAlNUIlMEElMEElNUQlMkMlMjByb3ZTaG93UmF3VGFiJTI0JTNBJTIwdHJ1ZSUyQyUyMGNvbmZpZ05hbWVNYXAlMjQlM0ElMjAlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQlMkMlMjBNb2R1bGVfX2RpYWdzRW5hYmxlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NJbmNsdWRlZCUzQSUyMDB4MCUyQyUyME1vZHVsZV9fZGlhZ3NNYXNrJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZU9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVQcm1zJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9faWQlM0ElMjAweDIlMkMlMjBNb2R1bGVfX2xvZ2dlckRlZmluZWQlM0ElMjBmYWxzZSUyQyUyME1vZHVsZV9fbG9nZ2VyT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuNCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjglM0ElMjBudWxsJTJDJTIwTW9kdWxlX19zdGFydHVwRG9uZUZ4biUzQSUyMG51bGwlMkMlMjBPYmplY3RfX2NvdW50JTNBJTIwMHgwJTJDJTIwT2JqZWN0X19oZWFwJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fc2l6ZW9mJTNBJTIwMHgwJTJDJTIwT2JqZWN0X190YWJsZSUzQSUyMG51bGwlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQDg5ODU0MCUzQSUzQSUyOHhkYy5ydW50aW1lLklIZWFwLk1vZHVsZSUyOXhkYy5ydW50aW1lLkhlYXBTdGQlMkMlMjBhYnN0cmFjdEluc3RhbmNlcyUyNCUzQSUyMHRydWUlN0QiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuSGVhcE1pbiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5IZWFwU3RkIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJFX25vUlRTTWVtb3J5IiB0eXBlPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIiB2YWx1ZT0iJTdCbXNnJTNBJTIwVGhlJTIwUlRTJTIwaGVhcCUyMGlzJTIwdXNlZCUyMHVwLiUyMEV4YW1pbmUlMjBQcm9ncmFtLmhlYXAuJTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyM0Ij4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPlRoZSBSVFMgaGVhcCBpcyB1c2VkIHVwLiBFeGFtaW5lIFByb2dyYW0uaGVhcC48L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGUiPjB4MDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX3plcm9TaXplIiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwSGVhcFN0ZF9jcmVhdGUlMjBjYW5ub3QlMjBoYXZlJTIwYSUyMHplcm8lMjBzaXplJTIwdmFsdWUlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIiPg0KKyAgPGZpZWxkIG5hbWU9Im1hc2siPjB4MTA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+SGVhcFN0ZF9jcmVhdGUgY2Fubm90IGhhdmUgYSB6ZXJvIHNpemUgdmFsdWU8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9pbnZhbGlkVG90YWxGcmVlU2l6ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEhlYXBTdGQlMjBpbnN0YW5jZSUyMHRvdGFsRnJlZVNpemUlMjBpcyUyMGdyZWF0ZXIlMjB0aGFuJTIwc3RhcnRpbmclMjBzaXplJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMzIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkhlYXBTdGQgaW5zdGFuY2UgdG90YWxGcmVlU2l6ZSBpcyBncmVhdGVyIHRoYW4gc3RhcnRpbmcgc2l6ZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2ludmFsaWRBbGlnbm1lbnQiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBIZWFwU3RkX2FsbG9jJTIwLSUyMHJlcXVlc3RlZCUyMGFsaWdubWVudCUyMGlzJTIwZ3JlYXRlciUyMHRoYW4lMjBhbGxvd2VkJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM0Ij4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkhlYXBTdGRfYWxsb2MgLSByZXF1ZXN0ZWQgYWxpZ25tZW50IGlzIGdyZWF0ZXIgdGhhbiBhbGxvd2VkPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3RhcnR1cCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlN0YXJ0dXAvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRE9ORSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iLTEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik5PVERPTkUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1heFBhc3NlcyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpcnN0RnhucyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Imxhc3RGeG5zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icmVzZXRGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN0YXJ0TW9kc0Z4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4ZWNJbXBsIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0kiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNmeG5UYWIiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSUyQyUyMCUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2Z4blJ0cyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCdHJ1ZSUyQyUyMHRydWUlNUQiPjx2ZWN0b3IgaWQ9InhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blJ0cyIgbGVuZ3RoPSIyIj4NCisgIDxlbGVtPnRydWU8L2VsZW0+DQorICA8ZWxlbT50cnVlPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXN0ZW0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TeXN0ZW0vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJTVEFUVVNfVU5LTk9XTiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNTE5NjYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfY2Fubm90Rml0SW50b0FyZyIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEFfY2Fubm90Rml0SW50b0FyZyUzQSUyMHNpemVvZiUyOEZsb2F0JTI5JTIwJTNFJTIwc2l6ZW9mJTI4QXJnJTI5JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1Ij4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkFfY2Fubm90Rml0SW50b0FyZzogc2l6ZW9mKEZsb2F0KSA+IHNpemVvZihBcmcpPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4dGVuZGVkRm9ybWF0cyIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTI1JTI0TCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iU3VwcG9ydFByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHgzJTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxMGQ5NWNkJTNBJTNBJTI4eGRjLnJ1bnRpbWUuSVN5c3RlbVN1cHBvcnQuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuU3lzTWluJTdEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYXhBdGV4aXRIYW5kbGVycyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iOCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXh0ZW5kRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleGl0RnhucyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9HYXRlUHJveHkiIHR5cGU9InhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHg0JTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwUV9CTE9DS0lORyUzQSUyMDB4MSUyQyUyMFFfUFJFRU1QVElORyUzQSUyMDB4MiUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMWY0ODhmMSUzQSUzQSUyOHhkYy5ydW50aW1lLklHYXRlUHJvdmlkZXIuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkMlMjBhYnN0cmFjdEluc3RhbmNlcyUyNCUzQSUyMGZhbHNlJTdEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN5c1N0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXNNaW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgzIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZWaWV3SW5mbyIgdHlwZT0ieGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSIgdmFsdWU9IiU3QnZpZXdNYXAlM0ElMjAlNUIlMEElNUIlMjdNb2R1bGUlMjclMkMlMjAlN0J0eXBlJTNBJTIwTU9EVUxFJTJDJTIwdmlld0luaXRGeG4lM0ElMjB2aWV3SW5pdE1vZHVsZSUyQyUyMHN0cnVjdE5hbWUlM0ElMjBNb2R1bGVWaWV3JTdEJTVEJTJDJTBBJTVCJTI3T3V0cHV0QnVmZmVyJTI3JTJDJTIwJTdCdHlwZSUzQSUyME1PRFVMRV9EQVRBJTJDJTIwdmlld0luaXRGeG4lM0ElMjB2aWV3SW5pdE91dHB1dEJ1ZmZlciUyQyUyMHN0cnVjdE5hbWUlM0ElMjBCdWZmZXJFbnRyeVZpZXclN0QlNUQlMEElNUQlMkMlMjBzaG93UmF3VGFiJTNBJTIwdHJ1ZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVmU2l6ZSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTAyNCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZmx1c2hBdEV4aXQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZWN0aW9uTmFtZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ib3V0cHV0RnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJvdXRwdXRGdW5jIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRleHQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVVbmtub3duIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlN0J1bmtub3duLWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVFbXB0eSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCZW1wdHktaW5zdGFuY2UtbmFtZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZVN0YXRpYyIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCc3RhdGljLWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImlzTG9hZGVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2hhclRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCMHgwJTJDJTIwMHg0MSUyQyUyMDB4NWYlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4NTAlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHg3MyUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDUwJTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NjMlMkMlMjAweDc0JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NGQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg3NiUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4MjAlMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHg1ZiUyQyUyMDB4NjMlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDc2JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHgyMCUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDc2JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2MyUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDQ2JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDY1JTJDJTIwMHg1MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjclMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDVmJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjMlMkMlMjAweDIwJTJDJTIwMHgyZCUyQyUyMDB4MjAlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NzElMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg2NyUyQyUyMDB4NmUlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg3NyUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgwJTJDJTIwMHg0MSUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDQ2JTJDJTIwMHg2OSUyQyUyMDB4NzQlMkMlMjAweDQ5JTJDJTIwMHg2ZSUyQyUyMDB4NzQlMkMlMjAweDZmJTJDJTIwMHg0MSUyQyUyMDB4NzIlMkMlMjAweDY3JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2ZiUyQyUyMDB4NjYlMkMlMjAweDI4JTJDJTIwMHg0NiUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDI5JTJDJTIwMHgyMCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NmYlMkMlMjAweDY2JTJDJTIwMHgyOCUyQyUyMDB4NDElMkMlMjAweDcyJTJDJTIwMHg2NyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDYxJTJDJTIwMHg3MyUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg2NiUyQyUyMDB4NjElMkMlMjAweDY5JTJDJTIwMHg2YyUyQyUyMDB4NzUlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDY3JTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NjklMkMlMjAweDYzJTJDJTIwMHgyMCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NmYlMkMlMjAweDc1JTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDZmJTJDJTIwMHg2NiUyQyUyMDB4MjAlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4NmQlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4NzklMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDNkJTJDJTIwMHgzMCUyQyUyMDB4NzglMkMlMjAweDI1JTJDJTIwMHg3OCUyQyUyMDB4MmMlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4M2QlMkMlMjAweDI1JTJDJTIwMHg3NSUyQyUyMDB4MCUyQyUyMDB4NjYlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjUlMkMlMjAweDI4JTJDJTIwMHgyOSUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NzYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NzclMkMlMjAweDc0JTJDJTIwMHg2OCUyQyUyMDB4MmQlMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4NmMlMkMlMjAweDc5JTJDJTIwMHgyMCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDRkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDAlMkMlMjAweDU0JTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg1MiUyQyUyMDB4NTQlMkMlMjAweDUzJTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDc1JTJDJTIwMHg3MCUyQyUyMDB4MmUlMkMlMjAweDIwJTJDJTIwMHg0NSUyQyUyMDB4NzglMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDUwJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHgyZSUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHgzYyUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI4JTJDJTIwMHgyNyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDNjJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjglMkMlMjAweDI3JTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDI3JTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDY0JTJDJTIwMHg2NSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyOCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDY0JTJDJTIwMHg2NSUyQyUyMDB4NmMlMkMlMjAweDY1JTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjglMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDc4JTJDJTIwMHg2NCUyQyUyMDB4NjMlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDZlJTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDQxJTJDJTIwMHg3MyUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDAlMkMlMjAweDQzJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0NCUyQyUyMDB4NjUlMkMlMjAweDY2JTJDJTIwMHg2MSUyQyUyMDB4NzUlMkMlMjAweDZjJTJDJTIwMHg3NCUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDQ0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDY3JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NDUlMkMlMjAweDcyJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHgwJTJDJTIwMHg0NyUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDclMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDRlJTJDJTIwMHg3NSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHgwJTJDJTIwMHg0YyUyQyUyMDB4NmYlMkMlMjAweDY3JTJDJTIwMHgwJTJDJTIwMHg0ZCUyQyUyMDB4NjElMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MCUyQyUyMDB4NGQlMkMlMjAweDY1JTJDJTIwMHg2ZCUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHg3OSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4NzUlMkMlMjAweDcwJTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzklMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDZkJTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzklMkMlMjAweDczJTJDJTIwMHg0ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgwJTJDJTIwMHg1NCUyQyUyMDB4NjUlMkMlMjAweDc4JTJDJTIwMHg3NCUyQyUyMDB4MCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9jaGFyVGFiIiBsZW5ndGg9IjY2MSI+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc3PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NDk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDQ2PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgzZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4M2Q8L2VsZW0+DQorICA8ZWxlbT4weDMwPC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHgyYzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgzZDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDUyPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDQ1PC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDNjPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4M2M8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ3PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NGU8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDU0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibm9kZVRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTdCbGVmdCUzQSUyMDB4MCUyQyUyMHJpZ2h0JTNBJTIwMHgwJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4MjI1JTJDJTIwcmlnaHQlM0ElMjAweDIyYSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjMzJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyM2ElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDIzZiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjQ4JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNGUlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI1NCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjU5JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNjIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI2NiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjZiJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNzIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI3YSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjgyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyODklN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI5MCU3RCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiIiBsZW5ndGg9IjE3Ij4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MDwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDA8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MjI1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjJhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyMzM8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIzYTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjNmPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNDg8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI0ZTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjU0PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNTk8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2NjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2YjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3YTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4OTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI5MDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2hhckNudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNjYxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJub2RlQ250IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlzaXRSb3BlRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlzaXRSb3BlRnhuMiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UaW1lc3RhbXBOdWxsIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcFN0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UeXBlcyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0idGkudGFyZ2V0cy5ydHM2MDAwIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iaGVsbG8ucGtnIiB2ZXJzaW9uPSIiIHJlcG9zaXRvcnk9IkQ6L3dvcmsvdHV0b3JpYWwvcmVwby8iPgorICAgIDwvcGFja2FnZT4KKzwvaW1wb3J0cz4KKzwvY29uZmlndXJhdGlvbj4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWFkM2FhOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuZGVwCkBAIC0wLDAgKzEsMTEwIEBACisjCisjIFRoZSBmb2xsb3dpbmcgaXMgZ2VuZXJhdGVkIGJ5IHV0aWxzLmdlbkRlcCBmb3IgcGFja2FnZS9jZmcvcHJvZ194NjRQCisjCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuaCBwYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsOnBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmcgcHJvZy5jZmcgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lBbnRhcmEueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSURhVmluY2kueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSUhpbWFsYXlhLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lPTUFQMngzeC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JT01BUDN4eHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NDJ4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMTI4Sy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzFNLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMjU2Sy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQzY0XzUxMksueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2eDB4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngxeC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RNNjQ2Ny54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RSQTQ0eC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RSeDQweC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ1RDSTY0ODQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENUQ0k2NDg2LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4eC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwREE4eHgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0MjEueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0MjgueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0NTIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0NTQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQzMS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDRE02NDcueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQ4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENGNzYxOTkwLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENUTkVUVjI2ODUueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvYzZ4LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3BsYXRmb3Jtcy9zaW02NFB4eC9QbGF0Zm9ybS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9ydHM2MDAwL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL29tMi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9FeGVDb250ZXh0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vSVBsYXRmb3JtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vVXRpbHMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L01vZGVsLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1Byb2dyYW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RhdGVSZWFkZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RydWN0dXJlRGVjb2Rlci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlTnVsbC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcE1pbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJCdWYueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlclN5cy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGltZXN0YW1wLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL1RyYWNlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54cyAKKworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSUFudGFyYS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lEYVZpbmNpLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSUhpbWFsYXlhLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSU9NQVAyeDN4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSU9NQVAzeHh4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NDJ4LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8xMjhLLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMEM2NF8xTS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfMjU2Sy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNjRfNTEySy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngweC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDNngxeC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDRE02NDY3LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvSVRNUzMyMENEUkE0NHgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9JVE1TMzIwQ0RSeDQweC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4NC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4Ni54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBDVENJNjQ4eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL0lUTVMzMjBEQTh4eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDIxLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQzY0MjgueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvY2F0YWxvZy9jNjAwMC9UTVMzMjBDNjQ1Mi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMEM2NDU0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ0RNNjQzMS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0Ny54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENETTY0OC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL1RNUzMyMENGNzYxOTkwLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL2NhdGFsb2cvYzYwMDAvVE1TMzIwQ1RORVRWMjY4NS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL2M2eC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9jYXRhbG9nL2M2MDAwL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvcGxhdGZvcm1zL3NpbTY0UHh4L1BsYXRmb3JtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9JUGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL01haW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvb20yLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9FeGVDb250ZXh0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9JUGxhdGZvcm0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL1V0aWxzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wbGF0Zm9ybS9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvTW9kZWwueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Qcm9ncmFtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9yb3YvU3RhdGVSZWFkZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdHJ1Y3R1cmVEZWNvZGVyLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBNaW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJCdWYueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyU3lzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c01pbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UaW1lc3RhbXAueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvZ2xvYmFsL0Nsb2NrLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHM6CisKKworZGVmaW5lIEVYRUMucHJvZy54NjRQCisKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS9wbGF0Zm9ybXMvc2ltNjRQeHgvV2luZG93cy9rZWx2aW4gLXF1aWV0IC1tZW1faWdub3JlIEQ6XHdvcmtcdHV0b3JpYWxccmVwb1xoZWxsb1xwa2dccHJvZy54NjRQCitlbmRlZgorCisjCisjIFRoZSBmb2xsb3dpbmcgaXMgZ2VuZXJhdGVkIGJ5IGphdmEKKyMKKworcHJvZy54NjRQOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9ydHM2MDAwL2xpYi90aS50YXJnZXRzLnJ0czYwMDAuYTY0UCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9ydHM2MDAwL2xpYi9ib290LmE2NFAgCisKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TdGFydHVwLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVGV4dC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua2NtZC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua2NtZC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua1V0aWxzLnhzIAorcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgcGFja2FnZS9jZmcvcHJvZ194NjRQLnhkbDogLmludGVyZmFjZXMgCisKKyMKKyMgcnVsZS1sZXNzIGdvYWxzIGZvciBmaWxlcyBvdXRzaWRlIHRoaXMgcGFja2FnZQorIyAodGhlc2UgZ29hbHMgZm9yY2UgYSByZS1idWlsZCBpZiB0aGVzZSBmaWxlcyBhcmUKKyMgbW92ZWQgb3IgZGVsZXRlZCkKKyMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3J0czYwMDAvbGliL3RpLnRhcmdldHMucnRzNjAwMC5hNjRQOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvcnRzNjAwMC9saWIvYm9vdC5hNjRQOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvUHJvZ3JhbS54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL2xpbmtjbWQueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvbGlua2NtZC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9saW5rVXRpbHMueHM6CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjBmMTI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oCkBAIC0wLDAgKzEsMTMgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKK2V4dGVybiBpbnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9fRVhFQ0ZYTl9fQzsKKworZXh0ZXJuIGludCB4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQzsKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODA5ZTI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5tYWsKQEAgLTAsMCArMSw3NyBAQAorIworIyAgRG8gbm90IGVkaXQgdGhpcyBmaWxlLiAgVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBmcm9tIAorIyAgcGFja2FnZS5ibGQuICBBbnkgbW9kaWZpY2F0aW9ucyB0byB0aGlzIGZpbGUgd2lsbCBiZSAKKyMgIG92ZXJ3cml0dGVuIHdoZW5ldmVyIG1ha2VmaWxlcyBhcmUgcmUtZ2VuZXJhdGVkLgorIworIyAgdGFyZ2V0IGNvbXBhdGliaWxpdHkga2V5ID0gdGkudGFyZ2V0cy5DNjRQezEsMCw2LjEsNQorIworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQLmRlcAorZW5kaWYKKworcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQOiBwcm9nLmMgcGFja2FnZS9jZmcvcHJvZ194NjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcvcHJvZyAtZnI9Li9wYWNrYWdlL2NmZy9wcm9nIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2NmZy9wcm9nIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0naGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnL3Byb2cgLWZyPS4vcGFja2FnZS9jZmcvcHJvZworCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vNjRQOkNfRElSPQorcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitwYWNrYWdlL2NmZy9wcm9nL3Byb2cuczY0UDogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM2NFA6IHByb2cuYyBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAtbiAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2NmZy9wcm9nIC1mcj0uL3BhY2thZ2UvY2ZnL3Byb2cgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvY2ZnL3Byb2cgLXMgbzY0UCAkPCAtQyAgLW4gLXMgLS1zeW1kZWJ1Zzpub25lIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcvcHJvZyAtZnI9Li9wYWNrYWdlL2NmZy9wcm9nCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM2NFA6Q19ESVI9CitwYWNrYWdlL2NmZy9wcm9nL3Byb2cuczY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2NmZy9wcm9nL3Byb2cuczY0UDogUGF0aDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCistaW5jbHVkZSBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDogcGFja2FnZS9jZmcvcHJvZ194NjRQLmMgcGFja2FnZS9jZmcvcHJvZ194NjRQLm1haworCUAkKFJNKSAkQC5kZXAKKwkkKFJNKSAkQAorCUAkKE1TRykgY2w2NFAgJDwgLi4uCisJJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluL2NsNnggLWMgIC1xcSAtcGRzdzIyNSAtbW8gLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0naGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtTzIgICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvY2ZnIC1mcj0uL3BhY2thZ2UvY2ZnIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2NmZyAtcyBvNjRQICQ8IC1DICAgLXFxIC1wZHN3MjI1IC1tbyAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UDpDX0RJUj0KK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworcGFja2FnZS9jZmcvcHJvZ194NjRQLnM2NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5zNjRQOiBwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAtbiAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tbyAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1PMiAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9jZmcgLWZyPS4vcGFja2FnZS9jZmcgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvY2ZnIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW1vIC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgIC1EeGRjX2NmZ19faGVhZGVyX189J2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLU8yICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2NmZyAtZnI9Li9wYWNrYWdlL2NmZworCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5zNjRQOkNfRElSPQorcGFja2FnZS9jZmcvcHJvZ194NjRQLnM2NFA6IFBBVEg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorcGFja2FnZS9jZmcvcHJvZ194NjRQLnM2NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitjbGVhbiw2NFAgOjoKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZy9wcm9nLm82NFAKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM2NFAKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLnM2NFAKKworcHJvZy54NjRQOiBwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UCBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UCBwYWNrYWdlL2NmZy9wcm9nX3g2NFAubWFrCisKK2NsZWFuOjoKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZ194NjRQLm1hawpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlYzBmZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQLmRlcCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UC5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmUyNTAxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAubzY0UC5kZXAKQEAgLTAsMCArMSw0OSBAQAorcGFja2FnZS9jZmcvcHJvZ194NjRQLm82NFA6IHBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc3RkLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Db3JlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcFN0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2cuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9saW1pdHMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpby5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL2xpbmthZ2UuaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCANCitwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYzoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQ29yZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0Lmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvbGltaXRzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW8uaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFnc19fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NYWluX01vZHVsZV9HYXRlUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fZXBpbG9ndWUuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9saW5rYWdlLmg6DQorZDovdGkvYzYwMDAvYWxjL2luY2x1ZGUvc3RkaW50Lmg6DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5yb3YueHMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJvdi54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MzUyODAwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC5yb3YueHMKQEAgLTAsMCArMSw0NjQ2IEBACitfX28gPSBudWxsCitfX29iaiA9IFsKKyAgICB0aGlzLCAgLy8gIzAgCisgICAge30sICAgIC8vICMxIAorICAgIHt9LCAgICAvLyAjMiB4ZGMucnVudGltZS5Bc3NlcnQKKyAgICBbXSwgICAgLy8gIzMgeGRjLnJ1bnRpbWUuQXNzZXJ0LyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzQgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMwCisgICAge30sICAgIC8vICM1IHhkYy5ydW50aW1lLkFzc2VydC9jb21tb24kCisgICAgW10sICAgIC8vICM2IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzggeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjOSB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTAgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxMSB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTIgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxNCB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTUgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTYgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE3IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTggeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTkgeGRjLnJ1bnRpbWUuQXNzZXJ0L3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjAgeGRjLnJ1bnRpbWUuQ29yZQorICAgIFtdLCAgICAvLyAjMjEgeGRjLnJ1bnRpbWUuQ29yZS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMiB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMwCisgICAge30sICAgIC8vICMyMyB4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI0IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI1IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzI2IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzI4IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI5IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMzAgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzEgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzMyIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzMgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzM0IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMzUgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMzYgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzM3IHhkYy5ydW50aW1lLkNvcmUvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMzOCB4ZGMucnVudGltZS5EZWZhdWx0cworICAgIFtdLCAgICAvLyAjMzkgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNDAgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNDEgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzQyIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM0MyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzQ0IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzQ1IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM0NiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICM0NyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNDggeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICM0OSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICM1MCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzUxIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzUyIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICM1MyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzU0IHhkYy5ydW50aW1lLkRlZmF1bHRzL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNTUgeGRjLnJ1bnRpbWUuRGlhZ3MKKyAgICBbXSwgICAgLy8gIzU2IHhkYy5ydW50aW1lLkRpYWdzLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzU3IHhkYy5ydW50aW1lLkRpYWdzL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzU4IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM1OSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNjAgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM2MSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM2MiB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjMgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjNjQgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzY1IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjNjYgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjcgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM2OCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM2OSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjNzAgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM3MSB4ZGMucnVudGltZS5EaWFncy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzcyIHhkYy5ydW50aW1lLkVycm9yCisgICAgW10sICAgIC8vICM3MyB4ZGMucnVudGltZS5FcnJvci8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM3NCB4ZGMucnVudGltZS5FcnJvci5EZXNjIzEKKyAgICB7fSwgICAgLy8gIzc1IHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMgorICAgIHt9LCAgICAvLyAjNzYgeGRjLnJ1bnRpbWUuRXJyb3IvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNzcgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzc4IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM3OSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzgwIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzgxIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM4MiB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICM4MyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODQgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICM4NSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICM4NiB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzg3IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzg4IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICM4OSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzkwIHhkYy5ydW50aW1lLkVycm9yL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjOTEgeGRjLnJ1bnRpbWUuR2F0ZQorICAgIFtdLCAgICAvLyAjOTIgeGRjLnJ1bnRpbWUuR2F0ZS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM5MyB4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzk0IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzk1IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzk2IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM5NyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzk4IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzk5IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTAwIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEwMSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTAyIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTAzIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxMDQgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxMDUgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTA2IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxMDcgeGRjLnJ1bnRpbWUuR2F0ZS92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzEwOCB4ZGMucnVudGltZS5HYXRlTnVsbAorICAgIFtdLCAgICAvLyAjMTA5IHhkYy5ydW50aW1lLkdhdGVOdWxsLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzExMCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb21tb24kCisgICAgW10sICAgIC8vICMxMTEgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzExMiB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTEzIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTE0IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzExNSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTE2IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzExNyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTE4IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTE5IHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEyMCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzEyMSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxMjIgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzEyMyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzEyNCB4ZGMucnVudGltZS5HYXRlTnVsbC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzEyNSB4ZGMucnVudGltZS5Mb2cKKyAgICBbXSwgICAgLy8gIzEyNiB4ZGMucnVudGltZS5Mb2cvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTI3IHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMAorICAgIHt9LCAgICAvLyAjMTI4IHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMQorICAgIHt9LCAgICAvLyAjMTI5IHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMworICAgIHt9LCAgICAvLyAjMTMwIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMgorICAgIHt9LCAgICAvLyAjMTMxIHhkYy5ydW50aW1lLkxvZy9jb21tb24kCisgICAgW10sICAgIC8vICMxMzIgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxMzMgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMxMzQgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTM1IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxMzYgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMxMzcgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEzOCB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzOSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMxNDAgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE0MSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxNDIgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE0MyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE0NCB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxNDUgeGRjLnJ1bnRpbWUuTG9nL2lkVG9JbmZvCisgICAgW10sICAgIC8vICMxNDYgeGRjLnJ1bnRpbWUuTG9nL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTQ3IHhkYy5ydW50aW1lLk1haW4KKyAgICBbXSwgICAgLy8gIzE0OCB4ZGMucnVudGltZS5NYWluLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE0OSB4ZGMucnVudGltZS5NYWluL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE1MCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxNTEgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTUyIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxNTMgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxNTQgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTU1IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTU2IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1NyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTU4IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTU5IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxNjAgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNjEgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTYyIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxNjMgeGRjLnJ1bnRpbWUuTWFpbi92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE2NCB4ZGMucnVudGltZS5NZW1vcnkKKyAgICBbXSwgICAgLy8gIzE2NSB4ZGMucnVudGltZS5NZW1vcnkvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMTY2IHhkYy5ydW50aW1lLkhlYXBTdGQKKyAgICBbXSwgICAgLy8gIzE2NyB4ZGMucnVudGltZS5IZWFwU3RkLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE2OCB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAKKyAgICB7fSwgICAgLy8gIzE2OSB4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlIzAvaW5zdGFuY2UKKyAgICB7fSwgICAgLy8gIzE3MCB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM0CisgICAge30sICAgIC8vICMxNzEgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMworICAgIHt9LCAgICAvLyAjMTcyIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIKKyAgICB7fSwgICAgLy8gIzE3MyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzQKKyAgICB7fSwgICAgLy8gIzE3NCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE3NSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxNzYgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTc3IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxNzggeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxNzkgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTgwIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTgxIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4MiB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTgzIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTg0IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxODUgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxODYgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMTg3IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxODggeGRjLnJ1bnRpbWUuSGVhcFN0ZC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE4OSB4ZGMucnVudGltZS5NZW1vcnkvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTkwIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTkxIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTkyIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5MyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTk0IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk1IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxOTYgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxOTcgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTk4IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxOTkgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjAwIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyMDEgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyMDIgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMjAzIHhkYy5ydW50aW1lLk1lbW9yeS92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwNCB4ZGMucnVudGltZS5TdGFydHVwCisgICAgW10sICAgIC8vICMyMDUgeGRjLnJ1bnRpbWUuU3RhcnR1cC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMDYgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kCisgICAgW10sICAgIC8vICMyMDcgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjA4IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzIwOSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjEwIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjExIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxMiB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzIxMyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMyMTQgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzIxNSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxNiB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjE3IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjE4IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzIxOSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMjIwIHhkYy5ydW50aW1lLlN0YXJ0dXAvZmlyc3RGeG5zCisgICAgW10sICAgIC8vICMyMjEgeGRjLnJ1bnRpbWUuU3RhcnR1cC9sYXN0RnhucworICAgIFtdLCAgICAvLyAjMjIyIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blJ0cworICAgIFtdLCAgICAvLyAjMjIzIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blRhYgorICAgIFtdLCAgICAvLyAjMjI0IHhkYy5ydW50aW1lLlN0YXJ0dXAvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyMjUgeGRjLnJ1bnRpbWUuU3lzdGVtCisgICAgW10sICAgIC8vICMyMjYgeGRjLnJ1bnRpbWUuU3lzdGVtLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzIyNyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1CisgICAge30sICAgIC8vICMyMjggeGRjLnJ1bnRpbWUuU3lzTWluCisgICAgW10sICAgIC8vICMyMjkgeGRjLnJ1bnRpbWUuU3lzTWluLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzIzMCB4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjMxIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjMyIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjMzIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIzNCB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMjM1IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjM2IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyMzcgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMyMzggeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjM5IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyNDAgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMjQxIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyNDIgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyNDMgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQ0IHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMQorICAgIHt9LCAgICAvLyAjMjQ1IHhkYy5yb3YuVmlld0luZm8KKyAgICBbXSwgICAgLy8gIzI0NiB4ZGMucm92LlZpZXdJbmZvLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzI0NyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAKKyAgICBbXSwgICAgLy8gIzI0OCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcAorICAgIHt9LCAgICAvLyAjMjQ5IHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMC92aWV3TWFwLydCYXNpYycKKyAgICB7fSwgICAgLy8gIzI1MCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nUmVjb3JkcycKKyAgICBbXSwgICAgLy8gIzI1MSB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcAorICAgIHt9LCAgICAvLyAjMjUyIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydNb2R1bGUnCisgICAge30sICAgIC8vICMyNTMgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ091dHB1dEJ1ZmZlcicKKyAgICBbXSwgICAgLy8gIzI1NCB4ZGMucnVudGltZS5TeXNNaW4vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyNTUgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI1NiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI1NyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzI1OCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNTkgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzI2MCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2MSB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjYyIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjYzIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzI2NCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjY1IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI2NiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjY3IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjY4IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzI2OSB4ZGMucnVudGltZS5TeXN0ZW0vZXhpdEZ4bnMKKyAgICBbXSwgICAgLy8gIzI3MCB4ZGMucnVudGltZS5TeXN0ZW0vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyNzEgeGRjLnJ1bnRpbWUuVGV4dAorICAgIFtdLCAgICAvLyAjMjcyIHhkYy5ydW50aW1lLlRleHQvJGluc3RhbmNlcworICAgIFtdLCAgICAvLyAjMjczIHhkYy5ydW50aW1lLlRleHQvY2hhclRhYgorICAgIHt9LCAgICAvLyAjMjc0IHhkYy5ydW50aW1lLlRleHQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjc1IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzI3NiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNzcgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI3OCB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzI3OSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyODAgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyODEgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjgyIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyODMgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyODQgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI4NSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4NiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyODcgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzI4OCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIKKyAgICB7fSwgICAgLy8gIzI4OSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMAorICAgIHt9LCAgICAvLyAjMjkwIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xCisgICAge30sICAgIC8vICMyOTEgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIKKyAgICB7fSwgICAgLy8gIzI5MiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMworICAgIHt9LCAgICAvLyAjMjkzIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80CisgICAge30sICAgIC8vICMyOTQgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUKKyAgICB7fSwgICAgLy8gIzI5NSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNgorICAgIHt9LCAgICAvLyAjMjk2IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83CisgICAge30sICAgIC8vICMyOTcgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgKKyAgICB7fSwgICAgLy8gIzI5OCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOQorICAgIHt9LCAgICAvLyAjMjk5IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMAorICAgIHt9LCAgICAvLyAjMzAwIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMQorICAgIHt9LCAgICAvLyAjMzAxIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMgorICAgIHt9LCAgICAvLyAjMzAyIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMworICAgIHt9LCAgICAvLyAjMzAzIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNAorICAgIHt9LCAgICAvLyAjMzA0IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNQorICAgIHt9LCAgICAvLyAjMzA1IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNgorICAgIFtdLCAgICAvLyAjMzA2IHhkYy5ydW50aW1lLlRleHQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMzMDcgCisgICAge30sICAgIC8vICMzMDggCisgICAge30sICAgIC8vICMzMDkgCisgICAge30sICAgIC8vICMzMTAgCisgICAge30sICAgIC8vICMzMTEgCisgICAge30sICAgIC8vICMzMTIgdGkudGFyZ2V0cy5DNjRQCisgICAge30sICAgIC8vICMzMTMgdGkudGFyZ2V0cy5DNjRQL2FyCisgICAge30sICAgIC8vICMzMTQgdGkudGFyZ2V0cy5DNjRQL2FyT3B0cworICAgIHt9LCAgICAvLyAjMzE1IHRpLnRhcmdldHMuQzY0UC9hc20KKyAgICB7fSwgICAgLy8gIzMxNiB0aS50YXJnZXRzLkM2NFAvYXNtT3B0cworICAgIHt9LCAgICAvLyAjMzE3IHRpLnRhcmdldHMuQzYyCisgICAge30sICAgIC8vICMzMTggdGkudGFyZ2V0cy5DNjIvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAge30sICAgIC8vICMzMTkgdGkudGFyZ2V0cy5DNjIvZGVidWdHZW4KKyAgICB7fSwgICAgLy8gIzMyMCB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zCisgICAge30sICAgIC8vICMzMjEgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLkMnCisgICAge30sICAgIC8vICMzMjIgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICB7fSwgICAgLy8gIzMyMyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYycKKyAgICB7fSwgICAgLy8gIzMyNCB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY2MnCisgICAge30sICAgIC8vICMzMjUgdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmNwcCcKKyAgICB7fSwgICAgLy8gIzMyNiB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3h4JworICAgIHt9LCAgICAvLyAjMzI3IHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5zNjInCisgICAge30sICAgIC8vICMzMjggdGkudGFyZ2V0cy5DNjIvbW9kZWwKKyAgICB7fSwgICAgLy8gIzMyOSB0aS50YXJnZXRzLkM2Mi9wbGF0Zm9ybXMKKyAgICB7fSwgICAgLy8gIzMzMCB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcworICAgIHt9LCAgICAvLyAjMzMxIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydjb3ZlcmFnZScKKyAgICB7fSwgICAgLy8gIzMzMiB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzMzMgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzMzQgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJworICAgIHt9LCAgICAvLyAjMzM1IHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydkZWJ1ZycvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzMzNiB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzMzNyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScKKyAgICB7fSwgICAgLy8gIzMzOCB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzMzOSB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzQwIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIHt9LCAgICAvLyAjMzQxIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzQyIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNDMgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nCisgICAge30sICAgIC8vICMzNDQgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzNDUgdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM0NiB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycKKyAgICB7fSwgICAgLy8gIzM0NyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM0OCB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzQ5IHRpLnRhcmdldHMuQzYyL3NlY3RNYXAKKyAgICB7fSwgICAgLy8gIzM1MCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcworICAgIHt9LCAgICAvLyAjMzUxIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfQ2hhcgorICAgIHt9LCAgICAvLyAjMzUyIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRG91YmxlCisgICAge30sICAgIC8vICMzNTMgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GbG9hdAorICAgIHt9LCAgICAvLyAjMzU0IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRnhuCisgICAge30sICAgIC8vICMzNTUgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JQXJnCisgICAge30sICAgIC8vICMzNTYgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQKKyAgICB7fSwgICAgLy8gIzM1NyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDE2CisgICAge30sICAgIC8vICMzNTggdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQzMgorICAgIHt9LCAgICAvLyAjMzU5IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50NDAKKyAgICB7fSwgICAgLy8gIzM2MCB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDY0CisgICAge30sICAgIC8vICMzNjEgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ4CisgICAge30sICAgIC8vICMzNjIgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MRG91YmxlCisgICAge30sICAgIC8vICMzNjMgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MTG9uZworICAgIHt9LCAgICAvLyAjMzY0IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfTG9uZworICAgIHt9LCAgICAvLyAjMzY1IHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfUHRyCisgICAge30sICAgIC8vICMzNjYgdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9TaG9ydAorICAgIHt9LCAgICAvLyAjMzY3IHRpLnRhcmdldHMuQzYyL3ZlcnNpb25NYXAKKyAgICB7fSwgICAgLy8gIzM2OCB0aS50YXJnZXRzLkM2NFAvY2MKKyAgICB7fSwgICAgLy8gIzM2OSB0aS50YXJnZXRzLkM2NFAvY2NDb25maWdPcHRzCisgICAge30sICAgIC8vICMzNzAgdGkudGFyZ2V0cy5DNjRQL2NjT3B0cworICAgIHt9LCAgICAvLyAjMzcxIHRpLnRhcmdldHMuQzY0UC9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICB7fSwgICAgLy8gIzM3MiB0aS50YXJnZXRzLkM2NFAvZGVidWdHZW4KKyAgICB7fSwgICAgLy8gIzM3MyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucworICAgIHt9LCAgICAvLyAjMzc0IHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuQycKKyAgICB7fSwgICAgLy8gIzM3NSB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmFzbScKKyAgICB7fSwgICAgLy8gIzM3NiB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmMnCisgICAge30sICAgIC8vICMzNzcgdGkudGFyZ2V0cy5DNjRQL2V4dGVuc2lvbnMvJy5jYycKKyAgICB7fSwgICAgLy8gIzM3OCB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNwcCcKKyAgICB7fSwgICAgLy8gIzM3OSB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmN4eCcKKyAgICB7fSwgICAgLy8gIzM4MCB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICB7fSwgICAgLy8gIzM4MSB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NCcKKyAgICB7fSwgICAgLy8gIzM4MiB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NFAnCisgICAge30sICAgIC8vICMzODMgdGkudGFyZ2V0cy5DNjRQL2xuaworICAgIHt9LCAgICAvLyAjMzg0IHRpLnRhcmdldHMuQzY0UC9sbmtPcHRzCisgICAge30sICAgIC8vICMzODUgdGkudGFyZ2V0cy5DNjRQL21vZGVsCisgICAge30sICAgIC8vICMzODYgdGkudGFyZ2V0cy5DNjRQL3BsYXRmb3JtcworICAgIHt9LCAgICAvLyAjMzg3IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcworICAgIHt9LCAgICAvLyAjMzg4IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnCisgICAge30sICAgIC8vICMzODkgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzM5MCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzOTEgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycKKyAgICB7fSwgICAgLy8gIzM5MiB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzkzIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM5NCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnCisgICAge30sICAgIC8vICMzOTUgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzk2IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzk3IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8ncmVsZWFzZScKKyAgICB7fSwgICAgLy8gIzM5OCB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzOTkgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9maWx0ZXJzCisgICAge30sICAgIC8vICM0MDAgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJworICAgIHt9LCAgICAvLyAjNDAxIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzQwMiB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW0nL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzQwMyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnCisgICAge30sICAgIC8vICM0MDQgdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjNDA1IHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbV9kZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjNDA2IHRpLnRhcmdldHMuQzY0UC9zZWN0TWFwCisgICAge30sICAgIC8vICM0MDcgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzCisgICAge30sICAgIC8vICM0MDggdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfQ2hhcgorICAgIHt9LCAgICAvLyAjNDA5IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0RvdWJsZQorICAgIHt9LCAgICAvLyAjNDEwIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Zsb2F0CisgICAge30sICAgIC8vICM0MTEgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfRnhuCisgICAge30sICAgIC8vICM0MTIgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSUFyZworICAgIHt9LCAgICAvLyAjNDEzIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludAorICAgIHt9LCAgICAvLyAjNDE0IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDE2CisgICAge30sICAgIC8vICM0MTUgdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MzIKKyAgICB7fSwgICAgLy8gIzQxNiB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9JbnQ0MAorICAgIHt9LCAgICAvLyAjNDE3IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludDY0CisgICAge30sICAgIC8vICM0MTggdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50OAorICAgIHt9LCAgICAvLyAjNDE5IHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xEb3VibGUKKyAgICB7fSwgICAgLy8gIzQyMCB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MTG9uZworICAgIHt9LCAgICAvLyAjNDIxIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xvbmcKKyAgICB7fSwgICAgLy8gIzQyMiB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9QdHIKKyAgICB7fSwgICAgLy8gIzQyMyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9TaG9ydAorICAgIHt9LCAgICAvLyAjNDI0IHRpLnRhcmdldHMuQzY0UC92ZXJzCisgICAge30sICAgIC8vICM0MjUgdGkudGFyZ2V0cy5DNjRQL3ZlcnNpb25NYXAKKyAgICB7fSwgICAgLy8gIzQyNiAKK10KKworX19vID0gX19vYmpbMF0gIAorICAgIF9fb1snJG1vZHVsZXMnXSA9IF9fb2JqWzEuMF0KKyAgICBfX29bJ2J1aWxkJ10gPSBfX29ialszMDcuMF0KKworX19vID0gX19vYmpbMV0gIAorICAgIF9fb1snIzMyNzcwJ10gPSBfX29ialsyLjBdCisgICAgX19vWycjMzI3NzEnXSA9IF9fb2JqWzIwLjBdCisgICAgX19vWycjMzI3NzInXSA9IF9fb2JqWzM4LjBdCisgICAgX19vWycjMzI3NzMnXSA9IF9fb2JqWzU1LjBdCisgICAgX19vWycjMzI3NzQnXSA9IF9fb2JqWzcyLjBdCisgICAgX19vWycjMzI3NzUnXSA9IF9fb2JqWzkxLjBdCisgICAgX19vWycjMzI3NzYnXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snIzMyNzc3J10gPSBfX29ialsxMjUuMF0KKyAgICBfX29bJyMzMjc3OCddID0gX19vYmpbMTQ3LjBdCisgICAgX19vWycjMzI3NzknXSA9IF9fb2JqWzE2NC4wXQorICAgIF9fb1snIzMyNzgwJ10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJyMzMjc4MSddID0gX19vYmpbMjA0LjBdCisgICAgX19vWycjMzI3ODInXSA9IF9fb2JqWzIyNS4wXQorICAgIF9fb1snIzMyNzgzJ10gPSBfX29ialsyMjguMF0KKyAgICBfX29bJyMzMjc4NCddID0gX19vYmpbMjcxLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Bc3NlcnQnXSA9IF9fb2JqWzIuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkNvcmUnXSA9IF9fb2JqWzIwLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5EZWZhdWx0cyddID0gX19vYmpbMzguMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkRpYWdzJ10gPSBfX29ials1NS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuRXJyb3InXSA9IF9fb2JqWzcyLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5HYXRlJ10gPSBfX29ials5MS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuR2F0ZU51bGwnXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuSGVhcFN0ZCddID0gX19vYmpbMTY2LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Mb2cnXSA9IF9fb2JqWzEyNS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuTWFpbiddID0gX19vYmpbMTQ3LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5NZW1vcnknXSA9IF9fb2JqWzE2NC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3RhcnR1cCddID0gX19vYmpbMjA0LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5TeXNNaW4nXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3lzdGVtJ10gPSBfX29ialsyMjUuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlRleHQnXSA9IF9fb2JqWzI3MS4wXQorCitfX28gPSBfX29ialsyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszLjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0VfYXNzZXJ0RmFpbGVkJ10gPSBfX29ials0LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3MAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials1LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNi4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTkuMF0KKworX19vID0gX19vYmpbM10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNF0gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhc3NlcnRpb24rZmFpbHVyZSUyNXMlMjVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzVdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzZdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbN10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzhdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOV0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTBdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTFdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxM10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTRdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTVdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMThdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTldICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwXSAgLy8geGRjLnJ1bnRpbWUuQ29yZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjEuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfaW5pdGlhbGl6ZWRQYXJhbXMnXSA9IF9fb2JqWzIyLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzEKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjMuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyNC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzcuMF0KKworX19vID0gX19vYmpbMjFdICAvLyB4ZGMucnVudGltZS5Db3JlLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQV9pbml0aWFsaXplZFBhcmFtcyUzQSt1bmluaXRpYWxpemVkK1BhcmFtcytzdHJ1Y3QnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjNdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjRdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMzEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialszMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMzUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjZdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyN10gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyOF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI5XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMwXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzNdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzRdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMzYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzZdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszN10gIC8vIHhkYy5ydW50aW1lLkNvcmUvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialszOS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzIKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNDAuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials0MS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbNTQuMF0KKworX19vID0gX19vYmpbMzldICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzQxXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials0Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzQ0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials0Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials0OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzUwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials1Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0M10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDRdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0NV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDZdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0N10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ4XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNDkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDldICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUwXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNTEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTFdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUyXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzUzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUzXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1NF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU1XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzU2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncycsICdVVEYtOCcpKQorICAgIF9fb1snQUxMJ10gPSA2NTUzNQorICAgIF9fb1snQVNTRVJUJ10gPSAxNgorICAgIF9fb1snRU5UUlknXSA9IDEKKyAgICBfX29bJ0VYSVQnXSA9IDIKKyAgICBfX29bJ0lOVEVSTkFMJ10gPSA4CisgICAgX19vWydMSUZFQ1lDTEUnXSA9IDQKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzMKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snVVNFUjEnXSA9IDI1NgorICAgIF9fb1snVVNFUjInXSA9IDUxMgorICAgIF9fb1snVVNFUjMnXSA9IDEwMjQKKyAgICBfX29bJ1VTRVI0J10gPSAyMDQ4CisgICAgX19vWydVU0VSNSddID0gNDA5NgorICAgIF9fb1snVVNFUjYnXSA9IDgxOTIKKyAgICBfX29bJ1VTRVI3J10gPSAxNjM4NAorICAgIF9fb1snVVNFUjgnXSA9IDMyNzY4CisgICAgX19vWydjb21tb24kJ10gPSBfX29ials1Ny4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzU4LjBdCisgICAgX19vWydkaWN0QmFzZSddID0gbnVsbAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3NldE1hc2tFbmFibGVkJ10gPSBmYWxzZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ials3MS4wXQorCitfX28gPSBfX29ials1Nl0gIC8vIHhkYy5ydW50aW1lLkRpYWdzLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU3XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbNThdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzYzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzY1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbNjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzY5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTldICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYwXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2MV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzYyXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2M10gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY0XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjVdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2Nl0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjddICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials2OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2OF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjldICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNzAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzBdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzcxXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3Mvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzJdICAvLyB4ZGMucnVudGltZS5FcnJvcgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbNzMuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJywgJ1VURi04JykpCisgICAgX19vWydFX2dlbmVyaWMnXSA9IF9fb2JqWzc0LjBdCisgICAgX19vWydFX21lbW9yeSddID0gX19vYmpbNzUuMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzQKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snTlVNQVJHUyddID0gMgorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNzYuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials3Ny4wXQorICAgIF9fb1snbWF4RGVwdGgnXSA9IDE2CisgICAgX19vWydwb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuVU5XSU5EJywgJ1VURi04JykpCisgICAgX19vWydyYWlzZUhvb2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzkwLjBdCisKK19fbyA9IF9fb2JqWzczXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzRdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjMxJywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ2VuZXJpYytlcnJvciUzQSslMjVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc1XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ291dCtvZittZW1vcnklM0EraGVhcCUzRDB4JTI1eCUyQytzaXplJTNEJTI1dScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3Nl0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzc3XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials4OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc4XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3OV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODBdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzgxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4MV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODJdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4M10gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg0XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODVdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg2XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODddICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg4XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzg5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg5XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5MF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzkxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbOTIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ials5My4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzk0LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxMDcuMF0KKworX19vID0gX19vYmpbOTJdICAvLyB4ZGMucnVudGltZS5HYXRlLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTNdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbOTRdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbOTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials5Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbOTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTAxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTAzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxMDUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk1XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials5Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTZdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5N10gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzk4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5OF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTAwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDBdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTAxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDJdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDNdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTA0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNF0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNV0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTA2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwNl0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwN10gIC8vIHhkYy5ydW50aW1lLkdhdGUvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDhdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTA5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCcsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NgorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydRX0JMT0NLSU5HJ10gPSAxCisgICAgX19vWydRX1BSRUVNUFRJTkcnXSA9IDIKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzExMC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzExMS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTI0LjBdCisKK19fbyA9IF9fb2JqWzEwOV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExMF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzExMV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTEyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTE0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMTYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTE4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTIwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxMjIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTJdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTEzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTNdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTVdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExNl0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTddICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMThdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMTkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE5XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjBdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMjEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIxXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjJdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyM10gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI1XSAgLy8geGRjLnJ1bnRpbWUuTG9nCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxMjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZycsICdVVEYtOCcpKQorICAgIF9fb1snTF9jb25zdHJ1Y3QnXSA9IF9fb2JqWzEyNy4wXQorICAgIF9fb1snTF9jcmVhdGUnXSA9IF9fb2JqWzEyOC4wXQorICAgIF9fb1snTF9kZWxldGUnXSA9IF9fb2JqWzEyOS4wXQorICAgIF9fb1snTF9kZXN0cnVjdCddID0gX19vYmpbMTMwLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3NworICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydOVU1BUkdTJ10gPSA4CisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydQUklOVEZJRCddID0gMAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTMxLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTMyLjBdCisgICAgX19vWydpZFRvSW5mbyddID0gX19vYmpbMTQ1LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxNDYuMF0KKworX19vID0gX19vYmpbMTI2XSAgLy8geGRjLnJ1bnRpbWUuTG9nLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjddICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMwJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTNDLS0rY29uc3RydWN0JTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyOF0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclM0MtLStjcmVhdGUlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI5XSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMycsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzMF0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctLSUzRStkZXN0cnVjdCUzQSslMjglMjVwJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzMV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTMyXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTMzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTM1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxMzcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTM5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTQxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsxNDMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTMzXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTM0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzRdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM1XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEzNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM2XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzN10gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMzguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzOF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM5XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQwXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0MV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0Ml0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDNdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNDQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ0XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0NV0gIC8vIHhkYy5ydW50aW1lLkxvZy9pZFRvSW5mbworICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWycjNDY4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2NvbnN0cnVjdCUzQSUzQSUzQy0tK2NvbnN0cnVjdCUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNDY4JykKKyAgICBfX28ucHVzaChfX29bJyM0OTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlJTNBJTNBJTNDLS0rY3JlYXRlJTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM0OTInKQorICAgIF9fby5wdXNoKF9fb1snIzUxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9kZXN0cnVjdCUzQSUzQS0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzUxMycpCisgICAgX19vLnB1c2goX19vWycjNTMyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2RlbGV0ZSUzQSUzQS0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM1MzInKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGaWRUb0luZm8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ2XSAgLy8geGRjLnJ1bnRpbWUuTG9nL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDddICAvLyB4ZGMucnVudGltZS5NYWluCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNDguMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9HYXRlUHJveHknXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc4CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzE0OS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzE1MC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTYzLjBdCisKK19fbyA9IF9fb2JqWzE0OF0gIC8vIHhkYy5ydW50aW1lLk1haW4vJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDldICAvLyB4ZGMucnVudGltZS5NYWluL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTUwXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE1MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE1My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTU1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE1Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE1OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTYxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTFdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUyXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUzXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTRdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTVdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1Nl0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTddICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1OF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1OV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYwXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYxXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYyXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTYzXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2NF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTY1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnknLCAnVVRGLTgnKSkKKyAgICBfX29bJ0hlYXBQcm94eSddID0gX19vYmpbMTY2LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3OQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydRX0JMT0NLSU5HJ10gPSAxCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxODkuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxOTAuMF0KKyAgICBfX29bJ2RlZmF1bHRIZWFwSW5zdGFuY2UnXSA9IF9fb2JqWzE2OC4wXQorICAgIF9fb1snZGVmYXVsdEhlYXBTaXplJ10gPSA0MDk2CisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyMDMuMF0KKworX19vID0gX19vYmpbMTY1XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5LyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsxNjcuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfaW52YWxpZEFsaWdubWVudCddID0gX19vYmpbMTcwLjBdCisgICAgX19vWydBX2ludmFsaWRUb3RhbEZyZWVTaXplJ10gPSBfX29ialsxNzEuMF0KKyAgICBfX29bJ0FfemVyb1NpemUnXSA9IF9fb2JqWzE3Mi4wXQorICAgIF9fb1snRV9ub1JUU01lbW9yeSddID0gX19vYmpbMTczLjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODAKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTc0LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTc1LjBdCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsxODguMF0KKworX19vID0gX19vYmpbMTY3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsxNjguMF0KKworX19vID0gX19vYmpbMTY4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRtb2R1bGUnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSUyMzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2luc3RhbmNlJ10gPSBfX29ialsxNjkuMF0KKyAgICBfX29bJ3NpemUnXSA9IDQwOTYKKworX19vID0gX19vYmpbMTY5XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwL2luc3RhbmNlCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkLkluc3RhbmNlJTIzMCUyRmluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyduYW1lJ10gPSBudWxsCisKK19fbyA9IF9fb2JqWzE3MF0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzNCcsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkX2FsbG9jKy0rcmVxdWVzdGVkK2FsaWdubWVudCtpcytncmVhdGVyK3RoYW4rYWxsb3dlZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzFdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSGVhcFN0ZCtpbnN0YW5jZSt0b3RhbEZyZWVTaXplK2lzK2dyZWF0ZXIrdGhhbitzdGFydGluZytzaXplJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3Ml0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydC5EZXNjJTIzMicsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gMTYKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdIZWFwU3RkX2NyZWF0ZStjYW5ub3QraGF2ZSthK3plcm8rc2l6ZSt2YWx1ZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzNdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjM0JywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVGhlK1JUUytoZWFwK2lzK3VzZWQrdXAuK0V4YW1pbmUrUHJvZ3JhbS5oZWFwLicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzRdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTc1XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE3Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzZdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE3Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzldICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODBdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4MV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODJdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4M10gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4NF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg1XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg2XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg3XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTg4XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4OV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMTkwXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMTkxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMTkzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsxOTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMTk3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTk5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyMDEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkxXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTkyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTJdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkzXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk0XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5NV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5Nl0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk3XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTk4XSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5OV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjAwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwMF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDFdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAyXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwM10gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjA1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJywgJ1VURi04JykpCisgICAgX19vWydET05FJ10gPSAtMQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzgxCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ05PVERPTkUnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzIwNi4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzIwNy4wXQorICAgIF9fb1snZXhlY0ltcGwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JJywgJ1VURi04JykpCisgICAgX19vWydmaXJzdEZ4bnMnXSA9IF9fb2JqWzIyMC4wXQorICAgIF9fb1snbGFzdEZ4bnMnXSA9IF9fb2JqWzIyMS4wXQorICAgIF9fb1snbWF4UGFzc2VzJ10gPSAzMgorICAgIF9fb1sncmVzZXRGeG4nXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydzZnhuUnRzJ10gPSBfX29ialsyMjIuMF0KKyAgICBfX29bJ3NmeG5UYWInXSA9IF9fb2JqWzIyMy4wXQorICAgIF9fb1snc3RhcnRNb2RzRnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzIyNC4wXQorCitfX28gPSBfX29ialsyMDVdICAvLyB4ZGMucnVudGltZS5TdGFydHVwLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA2XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIwN10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyMDguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyMTAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzIxMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyMTQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyMTYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzIxOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjA4XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMDkuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwOV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxMF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxMS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjExXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjEyXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjEzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTNdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTVdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTZdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxN10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxOF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjE5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxOV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvZmlyc3RGeG5zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGZmlyc3RGeG5zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyMV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvbGFzdEZ4bnMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZsYXN0RnhucycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjJdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZzZnhuUnRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSB0cnVlCisgICAgX19vWycxJ10gPSB0cnVlCisKK19fbyA9IF9fb2JqWzIyM10gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvc2Z4blRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRnNmeG5UYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjRdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI1XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbScsICdVVEYtOCcpKQorICAgIF9fb1snQV9jYW5ub3RGaXRJbnRvQXJnJ10gPSBfX29ialsyMjcuMF0KKyAgICBfX29bJ01vZHVsZV9HYXRlUHJveHknXSA9IF9fb2JqWzEwOC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODIKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snU1RBVFVTX1VOS05PV04nXSA9IDUxOTY2CisgICAgX19vWydTdXBwb3J0UHJveHknXSA9IF9fb2JqWzIyOC4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjU1LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjU2LjBdCisgICAgX19vWydleGl0RnhucyddID0gX19vYmpbMjY5LjBdCisgICAgX19vWydleHRlbmRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSScsICdVVEYtOCcpKQorICAgIF9fb1snZXh0ZW5kZWRGb3JtYXRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNSUyNEwnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21heEF0ZXhpdEhhbmRsZXJzJ10gPSA4CisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyNzAuMF0KKworX19vID0gX19vYmpbMjI2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjddICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM1CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQV9jYW5ub3RGaXRJbnRvQXJnJTNBK3NpemVvZiUyOEZsb2F0JTI5KyUzRStzaXplb2YlMjhBcmclMjknLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI4XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyMjkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbicsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODMKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snYnVmU2l6ZSddID0gMTAyNAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjMwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjMxLjBdCisgICAgX19vWydmbHVzaEF0RXhpdCddID0gdHJ1ZQorICAgIF9fb1snb3V0cHV0RnVuYyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JJywgJ1VURi04JykpCisgICAgX19vWydvdXRwdXRGeG4nXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydyb3ZWaWV3SW5mbyddID0gX19vYmpbMjQ0LjBdCisgICAgX19vWydzZWN0aW9uTmFtZSddID0gbnVsbAorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyNTQuMF0KKworX19vID0gX19vYmpbMjI5XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzBdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzIzMV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzIzMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzIzNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjM2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzIzOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzI0MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjQyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzMl0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjMzXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzNV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzZdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzddICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzOF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzOV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDBdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI0MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDFdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQyXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjQzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0M10gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDRdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snJG1vZHVsZSddID0gX19vYmpbMjQ1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMScsICdVVEYtOCcpKQorICAgIF9fb1snc2hvd1Jhd1RhYiddID0gdHJ1ZQorICAgIF9fb1sndmlld01hcCddID0gX19vYmpbMjUxLjBdCisKK19fbyA9IF9fb2JqWzI0NV0gIC8vIHhkYy5yb3YuVmlld0luZm8KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzI0Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mbycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDZdICAvLyB4ZGMucm92LlZpZXdJbmZvLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8lMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzI0Ny4wXQorICAgIF9fb1snMSddID0gX19vYmpbMjQ0LjBdCisKK19fbyA9IF9fb2JqWzI0N10gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0luc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyckbW9kdWxlJ10gPSBfX29ialsyNDUuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJywgJ1VURi04JykpCisgICAgX19vWydzaG93UmF3VGFiJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TWFwJ10gPSBfX29ialsyNDguMF0KKworX19vID0gX19vYmpbMjQ4XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snQmFzaWMnXSA9IF9fb2JqWzI0OS4wXSk7IF9fby4ka2V5cy5wdXNoKCdCYXNpYycpCisgICAgX19vLnB1c2goX19vWydSZWNvcmRzJ10gPSBfX29ialsyNTAuMF0pOyBfX28uJGtleXMucHVzaCgnUmVjb3JkcycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQ5XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ0Jhc2ljJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAlMkZ2aWV3TWFwJTJGJTI3QmFzaWMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQmFzaWNWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSU5TVEFOQ0UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZpZXdJbml0RnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3ZpZXdJbml0QmFzaWMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUwXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ1JlY29yZHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCUyRnZpZXdNYXAlMkYlMjdSZWNvcmRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1JlY29yZFZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JTlNUQU5DRV9EQVRBJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdFJlY29yZHMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUxXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snTW9kdWxlJ10gPSBfX29ialsyNTIuMF0pOyBfX28uJGtleXMucHVzaCgnTW9kdWxlJykKKyAgICBfX28ucHVzaChfX29bJ091dHB1dEJ1ZmZlciddID0gX19vYmpbMjUzLjBdKTsgX19vLiRrZXlzLnB1c2goJ091dHB1dEJ1ZmZlcicpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMSUyRnZpZXdNYXAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUyXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ01vZHVsZScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJTJGdmlld01hcCUyRiUyN01vZHVsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGVWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uTU9EVUxFJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdE1vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTNdICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nT3V0cHV0QnVmZmVyJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzElMkZ2aWV3TWFwJTJGJTI3T3V0cHV0QnVmZmVyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0J1ZmZlckVudHJ5VmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLk1PRFVMRV9EQVRBJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdE91dHB1dEJ1ZmZlcicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTRdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1NV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjU2XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjU3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjU5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyNjEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjYzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjY1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyNjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU3XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjU4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNThdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU5XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2MC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYwXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2MV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2Ml0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjYzXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY0XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2NV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjY2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2Nl0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjddICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY4XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2OV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9leGl0RnhucworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGZXhpdEZ4bnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjcwXSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzFdICAvLyB4ZGMucnVudGltZS5UZXh0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyNzIuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4NAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjaGFyQ250J10gPSA2NjEKKyAgICBfX29bJ2NoYXJUYWInXSA9IF9fb2JqWzI3My4wXQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMjc0LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjc1LjBdCisgICAgX19vWydpc0xvYWRlZCddID0gdHJ1ZQorICAgIF9fb1snbmFtZUVtcHR5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QmVtcHR5LWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVTdGF0aWMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTdCc3RhdGljLWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVVbmtub3duJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QnVua25vd24taW5zdGFuY2UtbmFtZSU3RCcsICdVVEYtOCcpKQorICAgIF9fb1snbm9kZUNudCddID0gMTcKKyAgICBfX29bJ25vZGVUYWInXSA9IF9fb2JqWzI4OC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMzA2LjBdCisgICAgX19vWyd2aXNpdFJvcGVGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Zpc2l0Um9wZUZ4bjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3Ml0gIC8vIHhkYy5ydW50aW1lLlRleHQvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzNdICAvLyB4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjaGFyVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSAwCisgICAgX19vWycxJ10gPSA2NQorICAgIF9fb1snMiddID0gOTUKKyAgICBfX29bJzMnXSA9IDEwNQorICAgIF9fb1snNCddID0gMTEwCisgICAgX19vWyc1J10gPSAxMDUKKyAgICBfX29bJzYnXSA9IDExNgorICAgIF9fb1snNyddID0gMTA1CisgICAgX19vWyc4J10gPSA5NworICAgIF9fb1snOSddID0gMTA4CisgICAgX19vWycxMCddID0gMTA1CisgICAgX19vWycxMSddID0gMTIyCisgICAgX19vWycxMiddID0gMTAxCisgICAgX19vWycxMyddID0gMTAwCisgICAgX19vWycxNCddID0gODAKKyAgICBfX29bJzE1J10gPSA5NworICAgIF9fb1snMTYnXSA9IDExNAorICAgIF9fb1snMTcnXSA9IDk3CisgICAgX19vWycxOCddID0gMTA5CisgICAgX19vWycxOSddID0gMTE1CisgICAgX19vWycyMCddID0gNTgKKyAgICBfX29bJzIxJ10gPSAzMgorICAgIF9fb1snMjInXSA9IDExNworICAgIF9fb1snMjMnXSA9IDExMAorICAgIF9fb1snMjQnXSA9IDEwNQorICAgIF9fb1snMjUnXSA9IDExMAorICAgIF9fb1snMjYnXSA9IDEwNQorICAgIF9fb1snMjcnXSA9IDExNgorICAgIF9fb1snMjgnXSA9IDEwNQorICAgIF9fb1snMjknXSA9IDk3CisgICAgX19vWyczMCddID0gMTA4CisgICAgX19vWyczMSddID0gMTA1CisgICAgX19vWyczMiddID0gMTIyCisgICAgX19vWyczMyddID0gMTAxCisgICAgX19vWyczNCddID0gMTAwCisgICAgX19vWyczNSddID0gMzIKKyAgICBfX29bJzM2J10gPSA4MAorICAgIF9fb1snMzcnXSA9IDk3CisgICAgX19vWyczOCddID0gMTE0CisgICAgX19vWyczOSddID0gOTcKKyAgICBfX29bJzQwJ10gPSAxMDkKKyAgICBfX29bJzQxJ10gPSAxMTUKKyAgICBfX29bJzQyJ10gPSAzMgorICAgIF9fb1snNDMnXSA9IDExNQorICAgIF9fb1snNDQnXSA9IDExNgorICAgIF9fb1snNDUnXSA9IDExNAorICAgIF9fb1snNDYnXSA9IDExNworICAgIF9fb1snNDcnXSA9IDk5CisgICAgX19vWyc0OCddID0gMTE2CisgICAgX19vWyc0OSddID0gMAorICAgIF9fb1snNTAnXSA9IDcyCisgICAgX19vWyc1MSddID0gMTAxCisgICAgX19vWyc1MiddID0gOTcKKyAgICBfX29bJzUzJ10gPSAxMTIKKyAgICBfX29bJzU0J10gPSA3NworICAgIF9fb1snNTUnXSA9IDEwNQorICAgIF9fb1snNTYnXSA9IDExMAorICAgIF9fb1snNTcnXSA9IDk1CisgICAgX19vWyc1OCddID0gOTkKKyAgICBfX29bJzU5J10gPSAxMTQKKyAgICBfX29bJzYwJ10gPSAxMDEKKyAgICBfX29bJzYxJ10gPSA5NworICAgIF9fb1snNjInXSA9IDExNgorICAgIF9fb1snNjMnXSA9IDEwMQorICAgIF9fb1snNjQnXSA9IDMyCisgICAgX19vWyc2NSddID0gOTkKKyAgICBfX29bJzY2J10gPSA5NworICAgIF9fb1snNjcnXSA9IDExMAorICAgIF9fb1snNjgnXSA9IDExMAorICAgIF9fb1snNjknXSA9IDExMQorICAgIF9fb1snNzAnXSA9IDExNgorICAgIF9fb1snNzEnXSA9IDMyCisgICAgX19vWyc3MiddID0gMTA0CisgICAgX19vWyc3MyddID0gOTcKKyAgICBfX29bJzc0J10gPSAxMTgKKyAgICBfX29bJzc1J10gPSAxMDEKKyAgICBfX29bJzc2J10gPSAzMgorICAgIF9fb1snNzcnXSA9IDk3CisgICAgX19vWyc3OCddID0gMzIKKyAgICBfX29bJzc5J10gPSAxMjIKKyAgICBfX29bJzgwJ10gPSAxMDEKKyAgICBfX29bJzgxJ10gPSAxMTQKKyAgICBfX29bJzgyJ10gPSAxMTEKKyAgICBfX29bJzgzJ10gPSAzMgorICAgIF9fb1snODQnXSA9IDExNQorICAgIF9fb1snODUnXSA9IDEwNQorICAgIF9fb1snODYnXSA9IDEyMgorICAgIF9fb1snODcnXSA9IDEwMQorICAgIF9fb1snODgnXSA9IDMyCisgICAgX19vWyc4OSddID0gMTE4CisgICAgX19vWyc5MCddID0gOTcKKyAgICBfX29bJzkxJ10gPSAxMDgKKyAgICBfX29bJzkyJ10gPSAxMTcKKyAgICBfX29bJzkzJ10gPSAxMDEKKyAgICBfX29bJzk0J10gPSAwCisgICAgX19vWyc5NSddID0gNzIKKyAgICBfX29bJzk2J10gPSAxMDEKKyAgICBfX29bJzk3J10gPSA5NworICAgIF9fb1snOTgnXSA9IDExMgorICAgIF9fb1snOTknXSA9IDgzCisgICAgX19vWycxMDAnXSA9IDExNgorICAgIF9fb1snMTAxJ10gPSAxMDAKKyAgICBfX29bJzEwMiddID0gOTUKKyAgICBfX29bJzEwMyddID0gOTkKKyAgICBfX29bJzEwNCddID0gMTE0CisgICAgX19vWycxMDUnXSA9IDEwMQorICAgIF9fb1snMTA2J10gPSA5NworICAgIF9fb1snMTA3J10gPSAxMTYKKyAgICBfX29bJzEwOCddID0gMTAxCisgICAgX19vWycxMDknXSA9IDMyCisgICAgX19vWycxMTAnXSA9IDk5CisgICAgX19vWycxMTEnXSA9IDk3CisgICAgX19vWycxMTInXSA9IDExMAorICAgIF9fb1snMTEzJ10gPSAxMTAKKyAgICBfX29bJzExNCddID0gMTExCisgICAgX19vWycxMTUnXSA9IDExNgorICAgIF9fb1snMTE2J10gPSAzMgorICAgIF9fb1snMTE3J10gPSAxMDQKKyAgICBfX29bJzExOCddID0gOTcKKyAgICBfX29bJzExOSddID0gMTE4CisgICAgX19vWycxMjAnXSA9IDEwMQorICAgIF9fb1snMTIxJ10gPSAzMgorICAgIF9fb1snMTIyJ10gPSA5NworICAgIF9fb1snMTIzJ10gPSAzMgorICAgIF9fb1snMTI0J10gPSAxMjIKKyAgICBfX29bJzEyNSddID0gMTAxCisgICAgX19vWycxMjYnXSA9IDExNAorICAgIF9fb1snMTI3J10gPSAxMTEKKyAgICBfX29bJzEyOCddID0gMzIKKyAgICBfX29bJzEyOSddID0gMTE1CisgICAgX19vWycxMzAnXSA9IDEwNQorICAgIF9fb1snMTMxJ10gPSAxMjIKKyAgICBfX29bJzEzMiddID0gMTAxCisgICAgX19vWycxMzMnXSA9IDMyCisgICAgX19vWycxMzQnXSA9IDExOAorICAgIF9fb1snMTM1J10gPSA5NworICAgIF9fb1snMTM2J10gPSAxMDgKKyAgICBfX29bJzEzNyddID0gMTE3CisgICAgX19vWycxMzgnXSA9IDEwMQorICAgIF9fb1snMTM5J10gPSAwCisgICAgX19vWycxNDAnXSA9IDcyCisgICAgX19vWycxNDEnXSA9IDEwMQorICAgIF9fb1snMTQyJ10gPSA5NworICAgIF9fb1snMTQzJ10gPSAxMTIKKyAgICBfX29bJzE0NCddID0gODMKKyAgICBfX29bJzE0NSddID0gMTE2CisgICAgX19vWycxNDYnXSA9IDEwMAorICAgIF9fb1snMTQ3J10gPSAzMgorICAgIF9fb1snMTQ4J10gPSAxMDUKKyAgICBfX29bJzE0OSddID0gMTEwCisgICAgX19vWycxNTAnXSA9IDExNQorICAgIF9fb1snMTUxJ10gPSAxMTYKKyAgICBfX29bJzE1MiddID0gOTcKKyAgICBfX29bJzE1MyddID0gMTEwCisgICAgX19vWycxNTQnXSA9IDk5CisgICAgX19vWycxNTUnXSA9IDEwMQorICAgIF9fb1snMTU2J10gPSAzMgorICAgIF9fb1snMTU3J10gPSAxMTYKKyAgICBfX29bJzE1OCddID0gMTExCisgICAgX19vWycxNTknXSA9IDExNgorICAgIF9fb1snMTYwJ10gPSA5NworICAgIF9fb1snMTYxJ10gPSAxMDgKKyAgICBfX29bJzE2MiddID0gNzAKKyAgICBfX29bJzE2MyddID0gMTE0CisgICAgX19vWycxNjQnXSA9IDEwMQorICAgIF9fb1snMTY1J10gPSAxMDEKKyAgICBfX29bJzE2NiddID0gODMKKyAgICBfX29bJzE2NyddID0gMTA1CisgICAgX19vWycxNjgnXSA9IDEyMgorICAgIF9fb1snMTY5J10gPSAxMDEKKyAgICBfX29bJzE3MCddID0gMzIKKyAgICBfX29bJzE3MSddID0gMTA1CisgICAgX19vWycxNzInXSA9IDExNQorICAgIF9fb1snMTczJ10gPSAzMgorICAgIF9fb1snMTc0J10gPSAxMDMKKyAgICBfX29bJzE3NSddID0gMTE0CisgICAgX19vWycxNzYnXSA9IDEwMQorICAgIF9fb1snMTc3J10gPSA5NworICAgIF9fb1snMTc4J10gPSAxMTYKKyAgICBfX29bJzE3OSddID0gMTAxCisgICAgX19vWycxODAnXSA9IDExNAorICAgIF9fb1snMTgxJ10gPSAzMgorICAgIF9fb1snMTgyJ10gPSAxMTYKKyAgICBfX29bJzE4MyddID0gMTA0CisgICAgX19vWycxODQnXSA9IDk3CisgICAgX19vWycxODUnXSA9IDExMAorICAgIF9fb1snMTg2J10gPSAzMgorICAgIF9fb1snMTg3J10gPSAxMTUKKyAgICBfX29bJzE4OCddID0gMTE2CisgICAgX19vWycxODknXSA9IDk3CisgICAgX19vWycxOTAnXSA9IDExNAorICAgIF9fb1snMTkxJ10gPSAxMTYKKyAgICBfX29bJzE5MiddID0gMTA1CisgICAgX19vWycxOTMnXSA9IDExMAorICAgIF9fb1snMTk0J10gPSAxMDMKKyAgICBfX29bJzE5NSddID0gMzIKKyAgICBfX29bJzE5NiddID0gMTE1CisgICAgX19vWycxOTcnXSA9IDEwNQorICAgIF9fb1snMTk4J10gPSAxMjIKKyAgICBfX29bJzE5OSddID0gMTAxCisgICAgX19vWycyMDAnXSA9IDAKKyAgICBfX29bJzIwMSddID0gNzIKKyAgICBfX29bJzIwMiddID0gMTAxCisgICAgX19vWycyMDMnXSA9IDk3CisgICAgX19vWycyMDQnXSA9IDExMgorICAgIF9fb1snMjA1J10gPSA4MworICAgIF9fb1snMjA2J10gPSAxMTYKKyAgICBfX29bJzIwNyddID0gMTAwCisgICAgX19vWycyMDgnXSA9IDk1CisgICAgX19vWycyMDknXSA9IDk3CisgICAgX19vWycyMTAnXSA9IDEwOAorICAgIF9fb1snMjExJ10gPSAxMDgKKyAgICBfX29bJzIxMiddID0gMTExCisgICAgX19vWycyMTMnXSA9IDk5CisgICAgX19vWycyMTQnXSA9IDMyCisgICAgX19vWycyMTUnXSA9IDQ1CisgICAgX19vWycyMTYnXSA9IDMyCisgICAgX19vWycyMTcnXSA9IDExNAorICAgIF9fb1snMjE4J10gPSAxMDEKKyAgICBfX29bJzIxOSddID0gMTEzCisgICAgX19vWycyMjAnXSA9IDExNworICAgIF9fb1snMjIxJ10gPSAxMDEKKyAgICBfX29bJzIyMiddID0gMTE1CisgICAgX19vWycyMjMnXSA9IDExNgorICAgIF9fb1snMjI0J10gPSAxMDEKKyAgICBfX29bJzIyNSddID0gMTAwCisgICAgX19vWycyMjYnXSA9IDMyCisgICAgX19vWycyMjcnXSA9IDk3CisgICAgX19vWycyMjgnXSA9IDEwOAorICAgIF9fb1snMjI5J10gPSAxMDUKKyAgICBfX29bJzIzMCddID0gMTAzCisgICAgX19vWycyMzEnXSA9IDExMAorICAgIF9fb1snMjMyJ10gPSAxMDkKKyAgICBfX29bJzIzMyddID0gMTAxCisgICAgX19vWycyMzQnXSA9IDExMAorICAgIF9fb1snMjM1J10gPSAxMTYKKyAgICBfX29bJzIzNiddID0gMzIKKyAgICBfX29bJzIzNyddID0gMTA1CisgICAgX19vWycyMzgnXSA9IDExNQorICAgIF9fb1snMjM5J10gPSAzMgorICAgIF9fb1snMjQwJ10gPSAxMDMKKyAgICBfX29bJzI0MSddID0gMTE0CisgICAgX19vWycyNDInXSA9IDEwMQorICAgIF9fb1snMjQzJ10gPSA5NworICAgIF9fb1snMjQ0J10gPSAxMTYKKyAgICBfX29bJzI0NSddID0gMTAxCisgICAgX19vWycyNDYnXSA9IDExNAorICAgIF9fb1snMjQ3J10gPSAzMgorICAgIF9fb1snMjQ4J10gPSAxMTYKKyAgICBfX29bJzI0OSddID0gMTA0CisgICAgX19vWycyNTAnXSA9IDk3CisgICAgX19vWycyNTEnXSA9IDExMAorICAgIF9fb1snMjUyJ10gPSAzMgorICAgIF9fb1snMjUzJ10gPSA5NworICAgIF9fb1snMjU0J10gPSAxMDgKKyAgICBfX29bJzI1NSddID0gMTA4CisgICAgX19vWycyNTYnXSA9IDExMQorICAgIF9fb1snMjU3J10gPSAxMTkKKyAgICBfX29bJzI1OCddID0gMTAxCisgICAgX19vWycyNTknXSA9IDEwMAorICAgIF9fb1snMjYwJ10gPSAwCisgICAgX19vWycyNjEnXSA9IDY1CisgICAgX19vWycyNjInXSA9IDk1CisgICAgX19vWycyNjMnXSA9IDk5CisgICAgX19vWycyNjQnXSA9IDk3CisgICAgX19vWycyNjUnXSA9IDExMAorICAgIF9fb1snMjY2J10gPSAxMTAKKyAgICBfX29bJzI2NyddID0gMTExCisgICAgX19vWycyNjgnXSA9IDExNgorICAgIF9fb1snMjY5J10gPSA3MAorICAgIF9fb1snMjcwJ10gPSAxMDUKKyAgICBfX29bJzI3MSddID0gMTE2CisgICAgX19vWycyNzInXSA9IDczCisgICAgX19vWycyNzMnXSA9IDExMAorICAgIF9fb1snMjc0J10gPSAxMTYKKyAgICBfX29bJzI3NSddID0gMTExCisgICAgX19vWycyNzYnXSA9IDY1CisgICAgX19vWycyNzcnXSA9IDExNAorICAgIF9fb1snMjc4J10gPSAxMDMKKyAgICBfX29bJzI3OSddID0gNTgKKyAgICBfX29bJzI4MCddID0gMzIKKyAgICBfX29bJzI4MSddID0gMTE1CisgICAgX19vWycyODInXSA9IDEwNQorICAgIF9fb1snMjgzJ10gPSAxMjIKKyAgICBfX29bJzI4NCddID0gMTAxCisgICAgX19vWycyODUnXSA9IDExMQorICAgIF9fb1snMjg2J10gPSAxMDIKKyAgICBfX29bJzI4NyddID0gNDAKKyAgICBfX29bJzI4OCddID0gNzAKKyAgICBfX29bJzI4OSddID0gMTA4CisgICAgX19vWycyOTAnXSA9IDExMQorICAgIF9fb1snMjkxJ10gPSA5NworICAgIF9fb1snMjkyJ10gPSAxMTYKKyAgICBfX29bJzI5MyddID0gNDEKKyAgICBfX29bJzI5NCddID0gMzIKKyAgICBfX29bJzI5NSddID0gNjIKKyAgICBfX29bJzI5NiddID0gMzIKKyAgICBfX29bJzI5NyddID0gMTE1CisgICAgX19vWycyOTgnXSA9IDEwNQorICAgIF9fb1snMjk5J10gPSAxMjIKKyAgICBfX29bJzMwMCddID0gMTAxCisgICAgX19vWyczMDEnXSA9IDExMQorICAgIF9fb1snMzAyJ10gPSAxMDIKKyAgICBfX29bJzMwMyddID0gNDAKKyAgICBfX29bJzMwNCddID0gNjUKKyAgICBfX29bJzMwNSddID0gMTE0CisgICAgX19vWyczMDYnXSA9IDEwMworICAgIF9fb1snMzA3J10gPSA0MQorICAgIF9fb1snMzA4J10gPSAwCisgICAgX19vWyczMDknXSA9IDk3CisgICAgX19vWyczMTAnXSA9IDExNQorICAgIF9fb1snMzExJ10gPSAxMTUKKyAgICBfX29bJzMxMiddID0gMTAxCisgICAgX19vWyczMTMnXSA9IDExNAorICAgIF9fb1snMzE0J10gPSAxMTYKKyAgICBfX29bJzMxNSddID0gMTA1CisgICAgX19vWyczMTYnXSA9IDExMQorICAgIF9fb1snMzE3J10gPSAxMTAKKyAgICBfX29bJzMxOCddID0gMzIKKyAgICBfX29bJzMxOSddID0gMTAyCisgICAgX19vWyczMjAnXSA9IDk3CisgICAgX19vWyczMjEnXSA9IDEwNQorICAgIF9fb1snMzIyJ10gPSAxMDgKKyAgICBfX29bJzMyMyddID0gMTE3CisgICAgX19vWyczMjQnXSA9IDExNAorICAgIF9fb1snMzI1J10gPSAxMDEKKyAgICBfX29bJzMyNiddID0gMzcKKyAgICBfX29bJzMyNyddID0gMTE1CisgICAgX19vWyczMjgnXSA9IDM3CisgICAgX19vWyczMjknXSA9IDExNQorICAgIF9fb1snMzMwJ10gPSAwCisgICAgX19vWyczMzEnXSA9IDEwMworICAgIF9fb1snMzMyJ10gPSAxMDEKKyAgICBfX29bJzMzMyddID0gMTEwCisgICAgX19vWyczMzQnXSA9IDEwMQorICAgIF9fb1snMzM1J10gPSAxMTQKKyAgICBfX29bJzMzNiddID0gMTA1CisgICAgX19vWyczMzcnXSA9IDk5CisgICAgX19vWyczMzgnXSA9IDMyCisgICAgX19vWyczMzknXSA9IDEwMQorICAgIF9fb1snMzQwJ10gPSAxMTQKKyAgICBfX29bJzM0MSddID0gMTE0CisgICAgX19vWyczNDInXSA9IDExMQorICAgIF9fb1snMzQzJ10gPSAxMTQKKyAgICBfX29bJzM0NCddID0gNTgKKyAgICBfX29bJzM0NSddID0gMzIKKyAgICBfX29bJzM0NiddID0gMzcKKyAgICBfX29bJzM0NyddID0gMTE1CisgICAgX19vWyczNDgnXSA9IDAKKyAgICBfX29bJzM0OSddID0gMTExCisgICAgX19vWyczNTAnXSA9IDExNworICAgIF9fb1snMzUxJ10gPSAxMTYKKyAgICBfX29bJzM1MiddID0gMzIKKyAgICBfX29bJzM1MyddID0gMTExCisgICAgX19vWyczNTQnXSA9IDEwMgorICAgIF9fb1snMzU1J10gPSAzMgorICAgIF9fb1snMzU2J10gPSAxMDkKKyAgICBfX29bJzM1NyddID0gMTAxCisgICAgX19vWyczNTgnXSA9IDEwOQorICAgIF9fb1snMzU5J10gPSAxMTEKKyAgICBfX29bJzM2MCddID0gMTE0CisgICAgX19vWyczNjEnXSA9IDEyMQorICAgIF9fb1snMzYyJ10gPSA1OAorICAgIF9fb1snMzYzJ10gPSAzMgorICAgIF9fb1snMzY0J10gPSAxMDQKKyAgICBfX29bJzM2NSddID0gMTAxCisgICAgX19vWyczNjYnXSA9IDk3CisgICAgX19vWyczNjcnXSA9IDExMgorICAgIF9fb1snMzY4J10gPSA2MQorICAgIF9fb1snMzY5J10gPSA0OAorICAgIF9fb1snMzcwJ10gPSAxMjAKKyAgICBfX29bJzM3MSddID0gMzcKKyAgICBfX29bJzM3MiddID0gMTIwCisgICAgX19vWyczNzMnXSA9IDQ0CisgICAgX19vWyczNzQnXSA9IDMyCisgICAgX19vWyczNzUnXSA9IDExNQorICAgIF9fb1snMzc2J10gPSAxMDUKKyAgICBfX29bJzM3NyddID0gMTIyCisgICAgX19vWyczNzgnXSA9IDEwMQorICAgIF9fb1snMzc5J10gPSA2MQorICAgIF9fb1snMzgwJ10gPSAzNworICAgIF9fb1snMzgxJ10gPSAxMTcKKyAgICBfX29bJzM4MiddID0gMAorICAgIF9fb1snMzgzJ10gPSAxMDIKKyAgICBfX29bJzM4NCddID0gMTE0CisgICAgX19vWyczODUnXSA9IDEwMQorICAgIF9fb1snMzg2J10gPSAxMDEKKyAgICBfX29bJzM4NyddID0gNDAKKyAgICBfX29bJzM4OCddID0gNDEKKyAgICBfX29bJzM4OSddID0gMzIKKyAgICBfX29bJzM5MCddID0gMTA1CisgICAgX19vWyczOTEnXSA9IDExMAorICAgIF9fb1snMzkyJ10gPSAxMTgKKyAgICBfX29bJzM5MyddID0gOTcKKyAgICBfX29bJzM5NCddID0gMTA4CisgICAgX19vWyczOTUnXSA9IDEwNQorICAgIF9fb1snMzk2J10gPSAxMDAKKyAgICBfX29bJzM5NyddID0gMzIKKyAgICBfX29bJzM5OCddID0gMTA1CisgICAgX19vWyczOTknXSA9IDExMAorICAgIF9fb1snNDAwJ10gPSAzMgorICAgIF9fb1snNDAxJ10gPSAxMDMKKyAgICBfX29bJzQwMiddID0gMTE0CisgICAgX19vWyc0MDMnXSA9IDExMQorICAgIF9fb1snNDA0J10gPSAxMTkKKyAgICBfX29bJzQwNSddID0gMTE2CisgICAgX19vWyc0MDYnXSA9IDEwNAorICAgIF9fb1snNDA3J10gPSA0NQorICAgIF9fb1snNDA4J10gPSAxMTEKKyAgICBfX29bJzQwOSddID0gMTEwCisgICAgX19vWyc0MTAnXSA9IDEwOAorICAgIF9fb1snNDExJ10gPSAxMjEKKyAgICBfX29bJzQxMiddID0gMzIKKyAgICBfX29bJzQxMyddID0gNzIKKyAgICBfX29bJzQxNCddID0gMTAxCisgICAgX19vWyc0MTUnXSA9IDk3CisgICAgX19vWyc0MTYnXSA9IDExMgorICAgIF9fb1snNDE3J10gPSA3NworICAgIF9fb1snNDE4J10gPSAxMDUKKyAgICBfX29bJzQxOSddID0gMTEwCisgICAgX19vWyc0MjAnXSA9IDAKKyAgICBfX29bJzQyMSddID0gODQKKyAgICBfX29bJzQyMiddID0gMTA0CisgICAgX19vWyc0MjMnXSA9IDEwMQorICAgIF9fb1snNDI0J10gPSAzMgorICAgIF9fb1snNDI1J10gPSA4MgorICAgIF9fb1snNDI2J10gPSA4NAorICAgIF9fb1snNDI3J10gPSA4MworICAgIF9fb1snNDI4J10gPSAzMgorICAgIF9fb1snNDI5J10gPSAxMDQKKyAgICBfX29bJzQzMCddID0gMTAxCisgICAgX19vWyc0MzEnXSA9IDk3CisgICAgX19vWyc0MzInXSA9IDExMgorICAgIF9fb1snNDMzJ10gPSAzMgorICAgIF9fb1snNDM0J10gPSAxMDUKKyAgICBfX29bJzQzNSddID0gMTE1CisgICAgX19vWyc0MzYnXSA9IDMyCisgICAgX19vWyc0MzcnXSA9IDExNworICAgIF9fb1snNDM4J10gPSAxMTUKKyAgICBfX29bJzQzOSddID0gMTAxCisgICAgX19vWyc0NDAnXSA9IDEwMAorICAgIF9fb1snNDQxJ10gPSAzMgorICAgIF9fb1snNDQyJ10gPSAxMTcKKyAgICBfX29bJzQ0MyddID0gMTEyCisgICAgX19vWyc0NDQnXSA9IDQ2CisgICAgX19vWyc0NDUnXSA9IDMyCisgICAgX19vWyc0NDYnXSA9IDY5CisgICAgX19vWyc0NDcnXSA9IDEyMAorICAgIF9fb1snNDQ4J10gPSA5NworICAgIF9fb1snNDQ5J10gPSAxMDkKKyAgICBfX29bJzQ1MCddID0gMTA1CisgICAgX19vWyc0NTEnXSA9IDExMAorICAgIF9fb1snNDUyJ10gPSAxMDEKKyAgICBfX29bJzQ1MyddID0gMzIKKyAgICBfX29bJzQ1NCddID0gODAKKyAgICBfX29bJzQ1NSddID0gMTE0CisgICAgX19vWyc0NTYnXSA9IDExMQorICAgIF9fb1snNDU3J10gPSAxMDMKKyAgICBfX29bJzQ1OCddID0gMTE0CisgICAgX19vWyc0NTknXSA9IDk3CisgICAgX19vWyc0NjAnXSA9IDEwOQorICAgIF9fb1snNDYxJ10gPSA0NgorICAgIF9fb1snNDYyJ10gPSAxMDQKKyAgICBfX29bJzQ2MyddID0gMTAxCisgICAgX19vWyc0NjQnXSA9IDk3CisgICAgX19vWyc0NjUnXSA9IDExMgorICAgIF9fb1snNDY2J10gPSA0NgorICAgIF9fb1snNDY3J10gPSAwCisgICAgX19vWyc0NjgnXSA9IDYwCisgICAgX19vWyc0NjknXSA9IDQ1CisgICAgX19vWyc0NzAnXSA9IDQ1CisgICAgX19vWyc0NzEnXSA9IDMyCisgICAgX19vWyc0NzInXSA9IDk5CisgICAgX19vWyc0NzMnXSA9IDExMQorICAgIF9fb1snNDc0J10gPSAxMTAKKyAgICBfX29bJzQ3NSddID0gMTE1CisgICAgX19vWyc0NzYnXSA9IDExNgorICAgIF9fb1snNDc3J10gPSAxMTQKKyAgICBfX29bJzQ3OCddID0gMTE3CisgICAgX19vWyc0NzknXSA9IDk5CisgICAgX19vWyc0ODAnXSA9IDExNgorICAgIF9fb1snNDgxJ10gPSA1OAorICAgIF9fb1snNDgyJ10gPSAzMgorICAgIF9fb1snNDgzJ10gPSAzNworICAgIF9fb1snNDg0J10gPSAxMTIKKyAgICBfX29bJzQ4NSddID0gNDAKKyAgICBfX29bJzQ4NiddID0gMzkKKyAgICBfX29bJzQ4NyddID0gMzcKKyAgICBfX29bJzQ4OCddID0gMTE1CisgICAgX19vWyc0ODknXSA9IDM5CisgICAgX19vWyc0OTAnXSA9IDQxCisgICAgX19vWyc0OTEnXSA9IDAKKyAgICBfX29bJzQ5MiddID0gNjAKKyAgICBfX29bJzQ5MyddID0gNDUKKyAgICBfX29bJzQ5NCddID0gNDUKKyAgICBfX29bJzQ5NSddID0gMzIKKyAgICBfX29bJzQ5NiddID0gOTkKKyAgICBfX29bJzQ5NyddID0gMTE0CisgICAgX19vWyc0OTgnXSA9IDEwMQorICAgIF9fb1snNDk5J10gPSA5NworICAgIF9fb1snNTAwJ10gPSAxMTYKKyAgICBfX29bJzUwMSddID0gMTAxCisgICAgX19vWyc1MDInXSA9IDU4CisgICAgX19vWyc1MDMnXSA9IDMyCisgICAgX19vWyc1MDQnXSA9IDM3CisgICAgX19vWyc1MDUnXSA9IDExMgorICAgIF9fb1snNTA2J10gPSA0MAorICAgIF9fb1snNTA3J10gPSAzOQorICAgIF9fb1snNTA4J10gPSAzNworICAgIF9fb1snNTA5J10gPSAxMTUKKyAgICBfX29bJzUxMCddID0gMzkKKyAgICBfX29bJzUxMSddID0gNDEKKyAgICBfX29bJzUxMiddID0gMAorICAgIF9fb1snNTEzJ10gPSA0NQorICAgIF9fb1snNTE0J10gPSA0NQorICAgIF9fb1snNTE1J10gPSA2MgorICAgIF9fb1snNTE2J10gPSAzMgorICAgIF9fb1snNTE3J10gPSAxMDAKKyAgICBfX29bJzUxOCddID0gMTAxCisgICAgX19vWyc1MTknXSA9IDExNQorICAgIF9fb1snNTIwJ10gPSAxMTYKKyAgICBfX29bJzUyMSddID0gMTE0CisgICAgX19vWyc1MjInXSA9IDExNworICAgIF9fb1snNTIzJ10gPSA5OQorICAgIF9fb1snNTI0J10gPSAxMTYKKyAgICBfX29bJzUyNSddID0gNTgKKyAgICBfX29bJzUyNiddID0gMzIKKyAgICBfX29bJzUyNyddID0gNDAKKyAgICBfX29bJzUyOCddID0gMzcKKyAgICBfX29bJzUyOSddID0gMTEyCisgICAgX19vWyc1MzAnXSA9IDQxCisgICAgX19vWyc1MzEnXSA9IDAKKyAgICBfX29bJzUzMiddID0gNDUKKyAgICBfX29bJzUzMyddID0gNDUKKyAgICBfX29bJzUzNCddID0gNjIKKyAgICBfX29bJzUzNSddID0gMzIKKyAgICBfX29bJzUzNiddID0gMTAwCisgICAgX19vWyc1MzcnXSA9IDEwMQorICAgIF9fb1snNTM4J10gPSAxMDgKKyAgICBfX29bJzUzOSddID0gMTAxCisgICAgX19vWyc1NDAnXSA9IDExNgorICAgIF9fb1snNTQxJ10gPSAxMDEKKyAgICBfX29bJzU0MiddID0gNTgKKyAgICBfX29bJzU0MyddID0gMzIKKyAgICBfX29bJzU0NCddID0gNDAKKyAgICBfX29bJzU0NSddID0gMzcKKyAgICBfX29bJzU0NiddID0gMTEyCisgICAgX19vWyc1NDcnXSA9IDQxCisgICAgX19vWyc1NDgnXSA9IDAKKyAgICBfX29bJzU0OSddID0gMTIwCisgICAgX19vWyc1NTAnXSA9IDEwMAorICAgIF9fb1snNTUxJ10gPSA5OQorICAgIF9fb1snNTUyJ10gPSA0NgorICAgIF9fb1snNTUzJ10gPSAwCisgICAgX19vWyc1NTQnXSA9IDExNAorICAgIF9fb1snNTU1J10gPSAxMTcKKyAgICBfX29bJzU1NiddID0gMTEwCisgICAgX19vWyc1NTcnXSA9IDExNgorICAgIF9fb1snNTU4J10gPSAxMDUKKyAgICBfX29bJzU1OSddID0gMTA5CisgICAgX19vWyc1NjAnXSA9IDEwMQorICAgIF9fb1snNTYxJ10gPSA0NgorICAgIF9fb1snNTYyJ10gPSAwCisgICAgX19vWyc1NjMnXSA9IDY1CisgICAgX19vWyc1NjQnXSA9IDExNQorICAgIF9fb1snNTY1J10gPSAxMTUKKyAgICBfX29bJzU2NiddID0gMTAxCisgICAgX19vWyc1NjcnXSA9IDExNAorICAgIF9fb1snNTY4J10gPSAxMTYKKyAgICBfX29bJzU2OSddID0gMAorICAgIF9fb1snNTcwJ10gPSA2NworICAgIF9fb1snNTcxJ10gPSAxMTEKKyAgICBfX29bJzU3MiddID0gMTE0CisgICAgX19vWyc1NzMnXSA9IDEwMQorICAgIF9fb1snNTc0J10gPSAwCisgICAgX19vWyc1NzUnXSA9IDY4CisgICAgX19vWyc1NzYnXSA9IDEwMQorICAgIF9fb1snNTc3J10gPSAxMDIKKyAgICBfX29bJzU3OCddID0gOTcKKyAgICBfX29bJzU3OSddID0gMTE3CisgICAgX19vWyc1ODAnXSA9IDEwOAorICAgIF9fb1snNTgxJ10gPSAxMTYKKyAgICBfX29bJzU4MiddID0gMTE1CisgICAgX19vWyc1ODMnXSA9IDAKKyAgICBfX29bJzU4NCddID0gNjgKKyAgICBfX29bJzU4NSddID0gMTA1CisgICAgX19vWyc1ODYnXSA9IDk3CisgICAgX19vWyc1ODcnXSA9IDEwMworICAgIF9fb1snNTg4J10gPSAxMTUKKyAgICBfX29bJzU4OSddID0gMAorICAgIF9fb1snNTkwJ10gPSA2OQorICAgIF9fb1snNTkxJ10gPSAxMTQKKyAgICBfX29bJzU5MiddID0gMTE0CisgICAgX19vWyc1OTMnXSA9IDExMQorICAgIF9fb1snNTk0J10gPSAxMTQKKyAgICBfX29bJzU5NSddID0gMAorICAgIF9fb1snNTk2J10gPSA3MQorICAgIF9fb1snNTk3J10gPSA5NworICAgIF9fb1snNTk4J10gPSAxMTYKKyAgICBfX29bJzU5OSddID0gMTAxCisgICAgX19vWyc2MDAnXSA9IDAKKyAgICBfX29bJzYwMSddID0gNzEKKyAgICBfX29bJzYwMiddID0gOTcKKyAgICBfX29bJzYwMyddID0gMTE2CisgICAgX19vWyc2MDQnXSA9IDEwMQorICAgIF9fb1snNjA1J10gPSA3OAorICAgIF9fb1snNjA2J10gPSAxMTcKKyAgICBfX29bJzYwNyddID0gMTA4CisgICAgX19vWyc2MDgnXSA9IDEwOAorICAgIF9fb1snNjA5J10gPSAwCisgICAgX19vWyc2MTAnXSA9IDc2CisgICAgX19vWyc2MTEnXSA9IDExMQorICAgIF9fb1snNjEyJ10gPSAxMDMKKyAgICBfX29bJzYxMyddID0gMAorICAgIF9fb1snNjE0J10gPSA3NworICAgIF9fb1snNjE1J10gPSA5NworICAgIF9fb1snNjE2J10gPSAxMDUKKyAgICBfX29bJzYxNyddID0gMTEwCisgICAgX19vWyc2MTgnXSA9IDAKKyAgICBfX29bJzYxOSddID0gNzcKKyAgICBfX29bJzYyMCddID0gMTAxCisgICAgX19vWyc2MjEnXSA9IDEwOQorICAgIF9fb1snNjIyJ10gPSAxMTEKKyAgICBfX29bJzYyMyddID0gMTE0CisgICAgX19vWyc2MjQnXSA9IDEyMQorICAgIF9fb1snNjI1J10gPSAwCisgICAgX19vWyc2MjYnXSA9IDcyCisgICAgX19vWyc2MjcnXSA9IDEwMQorICAgIF9fb1snNjI4J10gPSA5NworICAgIF9fb1snNjI5J10gPSAxMTIKKyAgICBfX29bJzYzMCddID0gODMKKyAgICBfX29bJzYzMSddID0gMTE2CisgICAgX19vWyc2MzInXSA9IDEwMAorICAgIF9fb1snNjMzJ10gPSAwCisgICAgX19vWyc2MzQnXSA9IDgzCisgICAgX19vWyc2MzUnXSA9IDExNgorICAgIF9fb1snNjM2J10gPSA5NworICAgIF9fb1snNjM3J10gPSAxMTQKKyAgICBfX29bJzYzOCddID0gMTE2CisgICAgX19vWyc2MzknXSA9IDExNworICAgIF9fb1snNjQwJ10gPSAxMTIKKyAgICBfX29bJzY0MSddID0gMAorICAgIF9fb1snNjQyJ10gPSA4MworICAgIF9fb1snNjQzJ10gPSAxMjEKKyAgICBfX29bJzY0NCddID0gMTE1CisgICAgX19vWyc2NDUnXSA9IDExNgorICAgIF9fb1snNjQ2J10gPSAxMDEKKyAgICBfX29bJzY0NyddID0gMTA5CisgICAgX19vWyc2NDgnXSA9IDAKKyAgICBfX29bJzY0OSddID0gODMKKyAgICBfX29bJzY1MCddID0gMTIxCisgICAgX19vWyc2NTEnXSA9IDExNQorICAgIF9fb1snNjUyJ10gPSA3NworICAgIF9fb1snNjUzJ10gPSAxMDUKKyAgICBfX29bJzY1NCddID0gMTEwCisgICAgX19vWyc2NTUnXSA9IDAKKyAgICBfX29bJzY1NiddID0gODQKKyAgICBfX29bJzY1NyddID0gMTAxCisgICAgX19vWyc2NTgnXSA9IDEyMAorICAgIF9fb1snNjU5J10gPSAxMTYKKyAgICBfX29bJzY2MCddID0gMAorCitfX28gPSBfX29ialsyNzRdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb21tb24lMjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0FTU0VSVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT04nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VOVFJZJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0VYSVQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfSU5URVJOQUwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfTElGRUNZQ0xFJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVIzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX1VTRVI4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2Z4bnRhYiddID0gdHJ1ZQorICAgIF9fb1snZ2F0ZSddID0gbnVsbAorICAgIF9fb1snZ2F0ZVBhcmFtcyddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VIZWFwJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZVNlY3Rpb24nXSA9IG51bGwKKyAgICBfX29bJ2xvZ2dlciddID0gbnVsbAorICAgIF9fb1snbWVtb3J5UG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlR5cGVzLkRFTEVURV9QT0xJQ1knLCAnVVRGLTgnKSkKKyAgICBfX29bJ25hbWVkSW5zdGFuY2UnXSA9IGZhbHNlCisgICAgX19vWyduYW1lZE1vZHVsZSddID0gdHJ1ZQorICAgIF9fb1sncm9tUGF0Y2hUYWJsZSddID0gZmFsc2UKKworX19vID0gX19vYmpbMjc1XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzI3Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzI3OC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjgwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzI4Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzI4NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjg2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzZdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI3Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjc3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjc4XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjc5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzldICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODBdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4MV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODJdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjgzLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4M10gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4NF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg1XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyODcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjg4XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYicsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gX19vYmpbMjg5LjBdCisgICAgX19vWycxJ10gPSBfX29ialsyOTAuMF0KKyAgICBfX29bJzInXSA9IF9fb2JqWzI5MS4wXQorICAgIF9fb1snMyddID0gX19vYmpbMjkyLjBdCisgICAgX19vWyc0J10gPSBfX29ialsyOTMuMF0KKyAgICBfX29bJzUnXSA9IF9fb2JqWzI5NC4wXQorICAgIF9fb1snNiddID0gX19vYmpbMjk1LjBdCisgICAgX19vWyc3J10gPSBfX29ialsyOTYuMF0KKyAgICBfX29bJzgnXSA9IF9fb2JqWzI5Ny4wXQorICAgIF9fb1snOSddID0gX19vYmpbMjk4LjBdCisgICAgX19vWycxMCddID0gX19vYmpbMjk5LjBdCisgICAgX19vWycxMSddID0gX19vYmpbMzAwLjBdCisgICAgX19vWycxMiddID0gX19vYmpbMzAxLjBdCisgICAgX19vWycxMyddID0gX19vYmpbMzAyLjBdCisgICAgX19vWycxNCddID0gX19vYmpbMzAzLjBdCisgICAgX19vWycxNSddID0gX19vYmpbMzA0LjBdCisgICAgX19vWycxNiddID0gX19vYmpbMzA1LjBdCisKK19fbyA9IF9fb2JqWzI4OV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8wCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDAKKyAgICBfX29bJ3JpZ2h0J10gPSAwCisKK19fbyA9IF9fb2JqWzI5MF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDU0OQorICAgIF9fb1sncmlnaHQnXSA9IDU1NAorCitfX28gPSBfX29ialsyOTFdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYyJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU2MworCitfX28gPSBfX29ialsyOTJdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYzJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU3MAorCitfX28gPSBfX29ialsyOTNdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY0JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU3NQorCitfX28gPSBfX29ialsyOTRdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY1JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU4NAorCitfX28gPSBfX29ialsyOTVdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY2JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU5MAorCitfX28gPSBfX29ialsyOTZdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY3JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDU5NgorCitfX28gPSBfX29ialsyOTddICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY4JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYwMQorCitfX28gPSBfX29ialsyOThdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkY5JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYxMAorCitfX28gPSBfX29ialsyOTldICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjE0CisKK19fbyA9IF9fb2JqWzMwMF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MTkKKworX19vID0gX19vYmpbMzAxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjEyJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYyNgorCitfX28gPSBfX29ialszMDJdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjM0CisKK19fbyA9IF9fb2JqWzMwM10gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2NDIKKworX19vID0gX19vYmpbMzA0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE1CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE1JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDY0OQorCitfX28gPSBfX29ialszMDVdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTYKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjU2CisKK19fbyA9IF9fb2JqWzMwNl0gIC8vIHhkYy5ydW50aW1lLlRleHQvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMDddICAKKyAgICBfX29bJ2NmZ0FyZ3MnXSA9IHVuZGVmaW5lZAorICAgIF9fb1snY2ZnU2NyaXB0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3Byb2cuY2ZnJywgJ1VURi04JykpCisgICAgX19vWydwcm9maWxlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3JlbGVhc2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3JlbGVhc2VzJ10gPSBfX29ialszMDguMF0KKyAgICBfX29bJ3RhcmdldCddID0gX19vYmpbMzEyLjBdCisgICAgX19vWyd0ZXN0J10gPSBfX29ials0MjYuMF0KKworX19vID0gX19vYmpbMzA4XSAgCisgICAgX19vWycwJ10gPSBfX29ialszMDkuMF0KKworX19vID0gX19vYmpbMzA5XSAgCisgICAgX19vWydhdHRycyddID0gX19vYmpbMzEwLjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hlbGxvX3BrZycsICdVVEYtOCcpKQorICAgIF9fb1snb3RoZXJGaWxlcyddID0gX19vYmpbMzExLjBdCisKK19fbyA9IF9fb2JqWzMxMF0gIAorICAgIF9fb1snbGFiZWwnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGVmYXVsdCcsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTFdICAKKworX19vID0gX19vYmpbMzEyXSAgLy8gdGkudGFyZ2V0cy5DNjRQCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduRGlyZWN0aXZlU3VwcG9ydGVkJ10gPSB0cnVlCisgICAgX19vWydhciddID0gX19vYmpbMzEzLjBdCisgICAgX19vWydhck9wdHMnXSA9IF9fb2JqWzMxNC4wXQorICAgIF9fb1snYXNtJ10gPSBfX29ialszMTUuMF0KKyAgICBfX29bJ2FzbU9wdHMnXSA9IF9fb2JqWzMxNi4wXQorICAgIF9fb1snYmFzZSddID0gX19vYmpbMzE3LjBdCisgICAgX19vWydiaW5EaXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4cm9vdERpciUyOSUyRmJpbiUyRicsICdVVEYtOCcpKQorICAgIF9fb1snYmluYXJ5UGFyc2VyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMub21mLmNvZi5Db2ZmJywgJ1VURi04JykpCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY2MnXSA9IF9fb2JqWzM2OC4wXQorICAgIF9fb1snY2NDb25maWdPcHRzJ10gPSBfX29ialszNjkuMF0KKyAgICBfX29bJ2NjT3B0cyddID0gX19vYmpbMzcwLjBdCisgICAgX19vWydjb21wYXRpYmxlU3VmZml4ZXMnXSA9IF9fb2JqWzM3MS4wXQorICAgIF9fb1snZGVidWdHZW4nXSA9IF9fb2JqWzM3Mi4wXQorICAgIF9fb1snZXh0ZW5zaW9ucyddID0gX19vYmpbMzczLjBdCisgICAgX19vWydpbmNsdWRlT3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctSSUyNCUyOHJvb3REaXIlMjklMkZpbmNsdWRlJywgJ1VURi04JykpCisgICAgX19vWydpc2EnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjRQJywgJ1VURi04JykpCisgICAgX19vWydsbmsnXSA9IF9fb2JqWzM4My4wXQorICAgIF9fb1snbG5rT3B0cyddID0gX19vYmpbMzg0LjBdCisgICAgX19vWydtb2RlbCddID0gX19vYmpbMzg1LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0M2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhdGhQcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS5wbGF0Zm9ybXMuc2ltNjRQeHgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BsYXRmb3JtcyddID0gX19vYmpbMzg2LjBdCisgICAgX19vWydwcm9maWxlcyddID0gX19vYmpbMzg3LjBdCisgICAgX19vWydyb290RGlyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2QlM0ElMkZ0aSUyRmM2MDAwJTJGYWxjJywgJ1VURi04JykpCisgICAgX19vWydydHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5ydHM2MDAwJywgJ1VURi04JykpCisgICAgX19vWydzZWN0TWFwJ10gPSBfX29ials0MDYuMF0KKyAgICBfX29bJ3N0ZEluY2x1ZGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGklMkZ0YXJnZXRzJTJGc3RkLmgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0ZFR5cGVzJ10gPSBfX29ials0MDcuMF0KKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc2NFAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZlcnMnXSA9IF9fb2JqWzQyNC4wXQorICAgIF9fb1sndmVyc2lvbiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlN0IxJTJDMCUyQzYuMSUyQzUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ZlcnNpb25NYXAnXSA9IF9fb2JqWzQyNS4wXQorCitfX28gPSBfX29ialszMTNdICAvLyB0aS50YXJnZXRzLkM2NFAvYXIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmFyJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXI2eCcsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdycScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTRdICAvLyB0aS50YXJnZXRzLkM2NFAvYXJPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZhck9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2FzbQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGYXNtJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2w2eCstYycsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctbXY2NHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2FzbU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmFzbU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctcXEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE3XSAgLy8gdGkudGFyZ2V0cy5DNjIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbkRpcmVjdGl2ZVN1cHBvcnRlZCddID0gdHJ1ZQorICAgIF9fb1snYmluYXJ5UGFyc2VyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMub21mLmNvZi5Db2ZmJywgJ1VURi04JykpCisgICAgX19vWydiaXRzUGVyQ2hhciddID0gOAorICAgIF9fb1snY29tcGF0aWJsZVN1ZmZpeGVzJ10gPSBfX29ialszMTguMF0KKyAgICBfX29bJ2RlYnVnR2VuJ10gPSBfX29ialszMTkuMF0KKyAgICBfX29bJ2V4dGVuc2lvbnMnXSA9IF9fb2JqWzMyMC4wXQorICAgIF9fb1snaXNhJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzYyJywgJ1VURi04JykpCisgICAgX19vWydtb2RlbCddID0gX19vYmpbMzI4LjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0M2MicsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm0nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkucGxhdGZvcm1zLnNpbTZ4eHglM0FUTVMzMjBDNjIxMScsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm1zJ10gPSBfX29ialszMjkuMF0KKyAgICBfX29bJ3Byb2ZpbGVzJ10gPSBfX29ialszMzAuMF0KKyAgICBfX29bJ3J0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLnJ0czYwMDAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3NlY3RNYXAnXSA9IF9fb2JqWzM0OS4wXQorICAgIF9fb1snc3RkSW5jbHVkZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZzdGQuaCcsICdVVEYtOCcpKQorICAgIF9fb1snc3RkVHlwZXMnXSA9IF9fb2JqWzM1MC4wXQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzYyJywgJ1VURi04JykpCisgICAgX19vWyd2ZXJzaW9uTWFwJ10gPSBfX29ialszNjcuMF0KKworX19vID0gX19vYmpbMzE4XSAgLy8gdGkudGFyZ2V0cy5DNjIvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmNvbXBhdGlibGVTdWZmaXhlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTldICAvLyB0aS50YXJnZXRzLkM2Mi9kZWJ1Z0dlbgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZkZWJ1Z0dlbicsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1BhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4Y2ZnRGlyJTI5JTI0JTI4Y2ZnTmFtZSUyOS5wanQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2V4ZWNUZW1wbGF0ZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZjY3NfZXhlYy54ZHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhY2thZ2VQYXR0ZXJuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3BhY2thZ2UlMkYlMjQlMjhwa2dOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVRlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19wYWNrYWdlLnhkdCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjBdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5DJ10gPSBfX29ialszMjEuMF0KKyAgICBfX29bJy5hc20nXSA9IF9fb2JqWzMyMi4wXQorICAgIF9fb1snLmMnXSA9IF9fb2JqWzMyMy4wXQorICAgIF9fb1snLmNjJ10gPSBfX29ialszMjQuMF0KKyAgICBfX29bJy5jcHAnXSA9IF9fb2JqWzMyNS4wXQorICAgIF9fb1snLmN4eCddID0gX19vYmpbMzI2LjBdCisgICAgX19vWycuczYyJ10gPSBfX29ialszMjcuMF0KKworX19vID0gX19vYmpbMzIxXSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLkMnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuQyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5DJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMl0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5hc20nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuYXNtJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmFzbScsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjNdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuYycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5jJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyNF0gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5jYycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5jYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjVdICAvLyB0aS50YXJnZXRzLkM2Mi9leHRlbnNpb25zLycuY3BwJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZleHRlbnNpb25zJTJGJTI3LmNwcCUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jcHAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI2XSAgLy8gdGkudGFyZ2V0cy5DNjIvZXh0ZW5zaW9ucy8nLmN4eCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGZXh0ZW5zaW9ucyUyRiUyNy5jeHglMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY3h4JywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyN10gIC8vIHRpLnRhcmdldHMuQzYyL2V4dGVuc2lvbnMvJy5zNjInCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRmV4dGVuc2lvbnMlMkYlMjcuczYyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM2MicsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjhdICAvLyB0aS50YXJnZXRzLkM2Mi9tb2RlbAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZtb2RlbCcsICdVVEYtOCcpKQorICAgIF9fb1snZW5kaWFuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2xpdHRsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjldICAvLyB0aS50YXJnZXRzLkM2Mi9wbGF0Zm9ybXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcGxhdGZvcm1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzMF0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJywgJ1VURi04JykpCisgICAgX19vWydjb3ZlcmFnZSddID0gX19vYmpbMzMxLjBdCisgICAgX19vWydkZWJ1ZyddID0gX19vYmpbMzM0LjBdCisgICAgX19vWydwcm9maWxlJ10gPSBfX29ialszMzcuMF0KKyAgICBfX29bJ3JlbGVhc2UnXSA9IF9fb2JqWzM0MC4wXQorICAgIF9fb1snd2hvbGVfcHJvZ3JhbSddID0gX19vYmpbMzQzLjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtX2RlYnVnJ10gPSBfX29ialszNDYuMF0KKworX19vID0gX19vYmpbMzMxXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzMyLjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszMzMuMF0KKworX19vID0gX19vYmpbMzMyXSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2NvdmVyYWdlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzNdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM0XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzM1LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszMzYuMF0KKworX19vID0gX19vYmpbMzM1XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1nJywgJ1VURi04JykpCisgICAgX19vWydkZWZzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1EX0RFQlVHXyUzRDEnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM2XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ2RlYnVnJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzN10gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydwcm9maWxlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszMzguMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzMzOS4wXQorCitfX28gPSBfX29ialszMzhdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzldICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncHJvZmlsZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3Byb2ZpbGUlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0MF0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNDEuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM0Mi4wXQorCitfX28gPSBfX29ialszNDFdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1PMicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDJdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8ncmVsZWFzZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0M10gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW0lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszNDQuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzM0NS4wXQorCitfX28gPSBfX29ialszNDRdICAvLyB0aS50YXJnZXRzLkM2Mi9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1vZSstTzIrLW1vJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0NV0gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ2XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnByb2ZpbGVzJTJGJTI3d2hvbGVfcHJvZ3JhbV9kZWJ1ZyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM0Ny4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzQ4LjBdCisKK19fbyA9IF9fb2JqWzM0N10gIC8vIHRpLnRhcmdldHMuQzYyL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLW9lKy0tc3ltZGVidWclM0Fkd2FyZistbW8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQ4XSAgLy8gdGkudGFyZ2V0cy5DNjIvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtX2RlYnVnJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDldICAvLyB0aS50YXJnZXRzLkM2Mi9zZWN0TWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnNlY3RNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5hcmdzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5ic3MnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNpbml0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5jaW8nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLmNvbnN0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5kYXRhJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5mYXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnBpbml0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zdGFjayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdzdGFjaycsICdVVEYtOCcpKQorICAgIF9fb1snLnN3aXRjaCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuc3lzbWVtJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy50ZXh0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvZGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzUwXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3RfQ2hhciddID0gX19vYmpbMzUxLjBdCisgICAgX19vWyd0X0RvdWJsZSddID0gX19vYmpbMzUyLjBdCisgICAgX19vWyd0X0Zsb2F0J10gPSBfX29ialszNTMuMF0KKyAgICBfX29bJ3RfRnhuJ10gPSBfX29ialszNTQuMF0KKyAgICBfX29bJ3RfSUFyZyddID0gX19vYmpbMzU1LjBdCisgICAgX19vWyd0X0ludCddID0gX19vYmpbMzU2LjBdCisgICAgX19vWyd0X0ludDE2J10gPSBfX29ialszNTcuMF0KKyAgICBfX29bJ3RfSW50MzInXSA9IF9fb2JqWzM1OC4wXQorICAgIF9fb1sndF9JbnQ0MCddID0gX19vYmpbMzU5LjBdCisgICAgX19vWyd0X0ludDY0J10gPSBfX29ialszNjAuMF0KKyAgICBfX29bJ3RfSW50OCddID0gX19vYmpbMzYxLjBdCisgICAgX19vWyd0X0xEb3VibGUnXSA9IF9fb2JqWzM2Mi4wXQorICAgIF9fb1sndF9MTG9uZyddID0gX19vYmpbMzYzLjBdCisgICAgX19vWyd0X0xvbmcnXSA9IF9fb2JqWzM2NC4wXQorICAgIF9fb1sndF9QdHInXSA9IF9fb2JqWzM2NS4wXQorICAgIF9fb1sndF9TaG9ydCddID0gX19vYmpbMzY2LjBdCisKK19fbyA9IF9fb2JqWzM1MV0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfQ2hhcgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfQ2hhcicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbMzUyXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0RvdWJsZScsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzUzXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9GbG9hdAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfRmxvYXQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM1NF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfRnhuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9GeG4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM1NV0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSUFyZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSUFyZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzU2XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0ludCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzU3XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQxNgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50MTYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAyCisgICAgX19vWydzaXplJ10gPSAyCisKK19fbyA9IF9fb2JqWzM1OF0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50MzIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzYyJTJGc3RkVHlwZXMlMkZ0X0ludDMyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszNTldICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0ludDQwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9JbnQ0MCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzYwXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9JbnQ2NAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50NjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzM2MV0gIC8vIHRpLnRhcmdldHMuQzYyL3N0ZFR5cGVzL3RfSW50OAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfSW50OCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDEKKyAgICBfX29bJ3NpemUnXSA9IDEKKworX19vID0gX19vYmpbMzYyXSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9MRG91YmxlCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9MRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszNjNdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X0xMb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9MTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbMzY0XSAgLy8gdGkudGFyZ2V0cy5DNjIvc3RkVHlwZXMvdF9Mb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9Mb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszNjVdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1B0cgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZzdGRUeXBlcyUyRnRfUHRyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszNjZdICAvLyB0aS50YXJnZXRzLkM2Mi9zdGRUeXBlcy90X1Nob3J0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2MiUyRnN0ZFR5cGVzJTJGdF9TaG9ydCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbMzY3XSAgLy8gdGkudGFyZ2V0cy5DNjIvdmVyc2lvbk1hcAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjIlMkZ2ZXJzaW9uTWFwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDMjAwMF8zLjA3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy4wNyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NHhfMy44MyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzMuODMlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNTV4XzIuNTYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMyLjU2JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzZ4XzQuMzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkM0LjMyJTJDMCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNjhdICAvLyB0aS50YXJnZXRzLkM2NFAvY2MKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmNjJywgJ1VURi04JykpCisgICAgX19vWydjbWQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY2w2eCstYycsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctbXY2NHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY5XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2NjQ29uZmlnT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGY2NDb25maWdPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4Y2NPcHRzLnByZWZpeCUyOSstbW8nLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhjY09wdHMuc3VmZml4JTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3MF0gIC8vIHRpLnRhcmdldHMuQzY0UC9jY09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmNjT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1xcSstcGRzdzIyNScsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzFdICAvLyB0aS50YXJnZXRzLkM2NFAvY29tcGF0aWJsZVN1ZmZpeGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZjb21wYXRpYmxlU3VmZml4ZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnNjInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzcyXSAgLy8gdGkudGFyZ2V0cy5DNjRQL2RlYnVnR2VuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZkZWJ1Z0dlbicsICdVVEYtOCcpKQorICAgIF9fb1snZXhlY1BhdHRlcm4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI0JTI4Y2ZnRGlyJTI5JTI0JTI4Y2ZnTmFtZSUyOS5wanQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2V4ZWNUZW1wbGF0ZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aSUyRnRhcmdldHMlMkZjY3NfZXhlYy54ZHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3BhY2thZ2VQYXR0ZXJuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3BhY2thZ2UlMkYlMjQlMjhwa2dOYW1lJTI5LnBqdCcsICdVVEYtOCcpKQorICAgIF9fb1sncGFja2FnZVRlbXBsYXRlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpJTJGdGFyZ2V0cyUyRmNjc19wYWNrYWdlLnhkdCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzNdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucycsICdVVEYtOCcpKQorICAgIF9fb1snLkMnXSA9IF9fb2JqWzM3NC4wXQorICAgIF9fb1snLmFzbSddID0gX19vYmpbMzc1LjBdCisgICAgX19vWycuYyddID0gX19vYmpbMzc2LjBdCisgICAgX19vWycuY2MnXSA9IF9fb2JqWzM3Ny4wXQorICAgIF9fb1snLmNwcCddID0gX19vYmpbMzc4LjBdCisgICAgX19vWycuY3h4J10gPSBfX29ialszNzkuMF0KKyAgICBfX29bJy5zNjInXSA9IF9fb2JqWzM4MC4wXQorICAgIF9fb1snLnM2NCddID0gX19vYmpbMzgxLjBdCisgICAgX19vWycuczY0UCddID0gX19vYmpbMzgyLjBdCisKK19fbyA9IF9fb2JqWzM3NF0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuQycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuQyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5DJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3NV0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYXNtJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5hc20lMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuYXNtJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNtJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM3Nl0gIC8vIHRpLnRhcmdldHMuQzY0UC9leHRlbnNpb25zLycuYycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzddICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNjJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGZXh0ZW5zaW9ucyUyRiUyNy5jYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jYycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzhdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmNwcCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuY3BwJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmNwcCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNzldICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLmN4eCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuY3h4JTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmN4eCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODBdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2MicKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuczYyJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM2MicsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODFdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmV4dGVuc2lvbnMlMkYlMjcuczY0JTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLnM2NCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODJdICAvLyB0aS50YXJnZXRzLkM2NFAvZXh0ZW5zaW9ucy8nLnM2NFAnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZleHRlbnNpb25zJTJGJTI3LnM2NFAlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczY0UCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2FzbScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODNdICAvLyB0aS50YXJnZXRzLkM2NFAvbG5rCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZsbmsnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdsbms2eCcsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL2xua09wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRmxua09wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctdystcSstdStfY19pbnQwMCcsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1jKy1tKyUyNCUyOFhEQ0NGR0RJUiUyOSUyRiUyNCU0MC5tYXArLWwrJTI0JTI4cm9vdERpciUyOSUyRmxpYiUyRnJ0czY0cGx1cy5saWInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzg1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL21vZGVsCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZtb2RlbCcsICdVVEYtOCcpKQorICAgIF9fb1snZW5kaWFuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2xpdHRsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszODZdICAvLyB0aS50YXJnZXRzLkM2NFAvcGxhdGZvcm1zCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwbGF0Zm9ybXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkucGxhdGZvcm1zLnNpbTY0UHh4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM4N10gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvdmVyYWdlJ10gPSBfX29ialszODguMF0KKyAgICBfX29bJ2RlYnVnJ10gPSBfX29ialszOTEuMF0KKyAgICBfX29bJ3Byb2ZpbGUnXSA9IF9fb2JqWzM5NC4wXQorICAgIF9fb1sncmVsZWFzZSddID0gX19vYmpbMzk3LjBdCisgICAgX19vWyd3aG9sZV9wcm9ncmFtJ10gPSBfX29ials0MDAuMF0KKyAgICBfX29bJ3dob2xlX3Byb2dyYW1fZGVidWcnXSA9IF9fb2JqWzQwMy4wXQorCitfX28gPSBfX29ialszODhdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM4OS4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzkwLjBdCisKK19fbyA9IF9fb2JqWzM4OV0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nY292ZXJhZ2UnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTBdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2NvdmVyYWdlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTFdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ2RlYnVnJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM5Mi4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzkzLjBdCisKK19fbyA9IF9fb2JqWzM5Ml0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN2RlYnVnJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1nJywgJ1VURi04JykpCisgICAgX19vWydkZWZzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1EX0RFQlVHXyUzRDEnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzkzXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzk0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzk1LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszOTYuMF0KKworX19vID0gX19vYmpbMzk1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1ncCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTZdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzk3XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzk4LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszOTkuMF0KKworX19vID0gX19vYmpbMzk4XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLydyZWxlYXNlJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1PMicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszOTldICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnByb2ZpbGVzJTJGJTI3cmVsZWFzZSUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDAwXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbNDAxLjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ials0MDIuMF0KKworX19vID0gX19vYmpbNDAxXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtJy9jb21waWxlT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1vZSstTzIrLW1vJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwMl0gIC8vIHRpLnRhcmdldHMuQzY0UC9wcm9maWxlcy8nd2hvbGVfcHJvZ3JhbScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGcHJvZmlsZXMlMkYlMjd3aG9sZV9wcm9ncmFtJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0MDNdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ials0MDQuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzQwNS4wXQorCitfX28gPSBfX29ials0MDRdICAvLyB0aS50YXJnZXRzLkM2NFAvcHJvZmlsZXMvJ3dob2xlX3Byb2dyYW1fZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLW9lKy0tc3ltZGVidWclM0Fkd2FyZistbW8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDA1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3Byb2ZpbGVzLyd3aG9sZV9wcm9ncmFtX2RlYnVnJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZwcm9maWxlcyUyRiUyN3dob2xlX3Byb2dyYW1fZGVidWclMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwNl0gIC8vIHRpLnRhcmdldHMuQzY0UC9zZWN0TWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzZWN0TWFwJywgJ1VURi04JykpCisgICAgX19vWycuYXJncyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuYnNzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5jaW5pdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuY2lvJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5jb25zdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuZGF0YSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuZmFyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RhdGEnLCAnVVRGLTgnKSkKKyAgICBfX29bJy5waW5pdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycuc3RhY2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnc3RhY2snLCAnVVRGLTgnKSkKKyAgICBfX29bJy5zd2l0Y2gnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZGF0YScsICdVVEYtOCcpKQorICAgIF9fb1snLnN5c21lbSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdkYXRhJywgJ1VURi04JykpCisgICAgX19vWycudGV4dCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb2RlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQwN10gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3RfQ2hhciddID0gX19vYmpbNDA4LjBdCisgICAgX19vWyd0X0RvdWJsZSddID0gX19vYmpbNDA5LjBdCisgICAgX19vWyd0X0Zsb2F0J10gPSBfX29ials0MTAuMF0KKyAgICBfX29bJ3RfRnhuJ10gPSBfX29ials0MTEuMF0KKyAgICBfX29bJ3RfSUFyZyddID0gX19vYmpbNDEyLjBdCisgICAgX19vWyd0X0ludCddID0gX19vYmpbNDEzLjBdCisgICAgX19vWyd0X0ludDE2J10gPSBfX29ials0MTQuMF0KKyAgICBfX29bJ3RfSW50MzInXSA9IF9fb2JqWzQxNS4wXQorICAgIF9fb1sndF9JbnQ0MCddID0gX19vYmpbNDE2LjBdCisgICAgX19vWyd0X0ludDY0J10gPSBfX29ials0MTcuMF0KKyAgICBfX29bJ3RfSW50OCddID0gX19vYmpbNDE4LjBdCisgICAgX19vWyd0X0xEb3VibGUnXSA9IF9fb2JqWzQxOS4wXQorICAgIF9fb1sndF9MTG9uZyddID0gX19vYmpbNDIwLjBdCisgICAgX19vWyd0X0xvbmcnXSA9IF9fb2JqWzQyMS4wXQorICAgIF9fb1sndF9QdHInXSA9IF9fb2JqWzQyMi4wXQorICAgIF9fb1sndF9TaG9ydCddID0gX19vYmpbNDIzLjBdCisKK19fbyA9IF9fb2JqWzQwOF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0NoYXIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9DaGFyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ials0MDldICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Eb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9Eb3VibGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA4CisgICAgX19vWydzaXplJ10gPSA4CisKK19fbyA9IF9fb2JqWzQxMF0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Zsb2F0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfRmxvYXQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQxMV0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0Z4bgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0Z4bicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDEyXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSUFyZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0lBcmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzQxM10gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0ludAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0ludCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDE0XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MTYKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQxNicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbNDE1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50MzIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQzMicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbNDE2XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NDAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQ0MCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDE3XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50NjQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9JbnQ2NCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDE4XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfSW50OAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0ludDgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAxCisgICAgX19vWydzaXplJ10gPSAxCisKK19fbyA9IF9fb2JqWzQxOV0gIC8vIHRpLnRhcmdldHMuQzY0UC9zdGRUeXBlcy90X0xEb3VibGUKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnN0ZFR5cGVzJTJGdF9MRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0MjBdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9MTG9uZworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X0xMb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gOAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ials0MjFdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9Mb25nCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfTG9uZycsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDgKKyAgICBfX29bJ3NpemUnXSA9IDgKKworX19vID0gX19vYmpbNDIyXSAgLy8gdGkudGFyZ2V0cy5DNjRQL3N0ZFR5cGVzL3RfUHRyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd0aS50YXJnZXRzLkM2NFAlMkZzdGRUeXBlcyUyRnRfUHRyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ials0MjNdICAvLyB0aS50YXJnZXRzLkM2NFAvc3RkVHlwZXMvdF9TaG9ydAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGc3RkVHlwZXMlMkZ0X1Nob3J0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMgorICAgIF9fb1snc2l6ZSddID0gMgorCitfX28gPSBfX29ials0MjRdICAvLyB0aS50YXJnZXRzLkM2NFAvdmVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndGkudGFyZ2V0cy5DNjRQJTJGdmVycycsICdVVEYtOCcpKQorICAgIF9fb1snY21kJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NsNngnLCAnVVRGLTgnKSkKKyAgICBfX29bJ29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLXZlcnNpb24nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDI1XSAgLy8gdGkudGFyZ2V0cy5DNjRQL3ZlcnNpb25NYXAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3RpLnRhcmdldHMuQzY0UCUyRnZlcnNpb25NYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEMyMDAwXzMuMDcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnMSUyQzAlMkMzLjA3JTJDMCcsICdVVEYtOCcpKQorICAgIF9fb1snVE1TMzIwQzU0eF8zLjgzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzElMkMwJTJDMy44MyUyQzAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ1RNUzMyMEM1NXhfMi41NiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzIuNTYlMkMwJywgJ1VURi04JykpCisgICAgX19vWydUTVMzMjBDNnhfNC4zMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzQuMzIlMkMwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQyNl0gIAorCitkZWxldGUgX19vCitkZWxldGUgX19vYmoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJ0YS54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194NjRQLnJ0YS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmIzNDhkZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAucnRhLnhtbApAQCAtMCwwICsxLDEwMiBAQAorPHhkYy5ydW50aW1lLlR5cGVzLlJ0YURlY29kZXJEYXRhPg0KKyAgPHRhcmdldE5hbWU+dGkudGFyZ2V0cy5DNjRQPC90YXJnZXROYW1lPg0KKyAgPGJpbmFyeVBhcnNlcj50aS50YXJnZXRzLm9tZi5jb2YuQ29mZjwvYmluYXJ5UGFyc2VyPg0KKyAgPGVuZGlhbj5saXR0bGU8L2VuZGlhbj4NCisgIDxiaXRzUGVyQ2hhcj44PC9iaXRzUGVyQ2hhcj4NCisgIDxhcmdTaXplPjQ8L2FyZ1NpemU+DQorICA8ZXZlbnRTaXplPjQ4PC9ldmVudFNpemU+DQorICA8bG9nZ2Vycy1sZW5ndGg+MDwvbG9nZ2Vycy1sZW5ndGg+DQorICA8bW9kTWFwLWxlbmd0aD4xNTwvbW9kTWFwLWxlbmd0aD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Bc3NlcnQiPg0KKyAgICA8aWQ+MzI3NzA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Db3JlIj4NCisgICAgPGlkPjMyNzcxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMiPg0KKyAgICA8aWQ+MzI3NzI8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5EaWFncyI+DQorICAgIDxpZD4zMjc3MzwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkVycm9yIj4NCisgICAgPGlkPjMyNzc0PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuR2F0ZSI+DQorICAgIDxpZD4zMjc3NTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkdhdGVOdWxsIj4NCisgICAgPGlkPjMyNzc2PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nIj4NCisgICAgPGlkPjMyNzc3PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTWFpbiI+DQorICAgIDxpZD4zMjc3ODwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLk1lbW9yeSI+DQorICAgIDxpZD4zMjc3OTwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkhlYXBTdGQiPg0KKyAgICA8aWQ+MzI3ODA8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5TdGFydHVwIj4NCisgICAgPGlkPjMyNzgxPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzdGVtIj4NCisgICAgPGlkPjMyNzgyPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuU3lzTWluIj4NCisgICAgPGlkPjMyNzgzPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuVGV4dCI+DQorICAgIDxpZD4zMjc4NDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPGV2dE1hcC1sZW5ndGg+NDwvZXZ0TWFwLWxlbmd0aD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9jb25zdHJ1Y3QiPg0KKyAgICA8aWQ+NDY4PC9pZD4NCisgICAgPG1zZz4lM0MtLStjb25zdHJ1Y3QlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2NyZWF0ZSI+DQorICAgIDxpZD40OTI8L2lkPg0KKyAgICA8bXNnPiUzQy0tK2NyZWF0ZSUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfZGVzdHJ1Y3QiPg0KKyAgICA8aWQ+NTEzPC9pZD4NCisgICAgPG1zZz4tLSUzRStkZXN0cnVjdCUzQSslMjglMjVwJTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9kZWxldGUiPg0KKyAgICA8aWQ+NTMyPC9pZD4NCisgICAgPG1zZz4tLSUzRStkZWxldGUlM0ErJTI4JTI1cCUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorPC94ZGMucnVudGltZS5UeXBlcy5SdGFEZWNvZGVyRGF0YT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRjLmluYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZWUyMjUwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGMuaW5jCkBAIC0wLDAgKzEsMiBAQAorcGFja2FnZS9jZmcvcHJvZ194NjRQLmNmZworcHJvZy5jZmcKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDY0UC54ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQwMWU2ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g2NFAueGRsCkBAIC0wLDAgKzEsMTU3IEBACisvKgorICogRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIHRlbXBsYXRlCisgKiBsaW5rY21kLnhkdCBpbiB0aGUgdGkudGFyZ2V0cyBwYWNrYWdlIGFuZCB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICovCisKKy8qCisgKiBwdXQgJyIncyBhcm91bmQgcGF0aHMgYmVjYXVzZSwgd2l0aG91dCB0aGlzLCB0aGUgbGlua2VyCisgKiBjb25zaWRlcnMgJy0nIGFzIG1pbnVzIG9wZXJhdG9yLCBub3QgYSBmaWxlIG5hbWUgY2hhcmFjdGVyLgorICovCisKKworCistbCJFOlxydHNjXHhkY3Rvb2xzXzNfMTVfMDBfMjlccGFja2FnZXNcdGlcdGFyZ2V0c1xydHM2MDAwXGxpYlx0aS50YXJnZXRzLnJ0czYwMDAuYTY0UCIKKy1sIkU6XHJ0c2NceGRjdG9vbHNfM18xNV8wMF8yOVxwYWNrYWdlc1x0aVx0YXJnZXRzXHJ0czYwMDBcbGliXGJvb3QuYTY0UCIKKworCisvKiBmdW5jdGlvbiBhbGlhc2VzICovCisvKiBpZ25vcmUgZXJyb3IgYWJvdXQgZGVmIGFuZCByZWYgaW4gdGhlIHNhbWUgZmlsZSAqLworLS1kaWFnX3JlbWFyaz0xMDI2OAorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0U9X3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRT1feGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0U9X3hkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2NoZWNrX19FPV94ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl92YV9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRT1feGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV9nZXRNYXhEZWZhdWx0VHlwZUFsaWduX19FPV94ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRT1feGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRT1feGRjX3J1bnRpbWVfR2F0ZV9sZWF2ZVN5c3RlbV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRT1feGRjX3J1bnRpbWVfSGVhcFN0ZF9pc0Jsb2NraW5nX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0U9X3hkY19ydW50aW1lX0xvZ19kb1ByaW50X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRT1feGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRT1feGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FPV94ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0U9X3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9pbml0X19FPV94ZGNfcnVudGltZV9FcnJvcl9pbml0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2dldElkX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0U9X3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fcHV0Y2hfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FPV94ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FPV94ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0U9X3hkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0U9X3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19FPV94ZGNfcnVudGltZV9UZXh0X3B1dE1vZF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0U9X3hkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRT1feGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FPV94ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19FPV94ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0U9X3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRT1feGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0U9X3hkY19ydW50aW1lX0Vycm9yX2dldENvZGVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0U9X3hkY19ydW50aW1lX1N5c3RlbV9leGl0X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRT1feGRjX3J1bnRpbWVfRXJyb3JfZ2V0TXNnX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRT1feGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRT1feGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0U9X3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0U9X3hkY19ydW50aW1lX0Vycm9yX3ByaW50X19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0U9X3hkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FPV94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19FPV94ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRT1feGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRT1feGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0YKKy0tc3ltYm9sX21hcCBfeGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRT1feGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRgorLS1zeW1ib2xfbWFwIF94ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19FPV94ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19GCistLXN5bWJvbF9tYXAgX3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0U9X3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0YKKworCisvKiBFbGYgc3ltYm9scyAqLworLS1zeW1ib2xfbWFwIF9fX1RJX1NUQUNLX1NJWkU9X19TVEFDS19TSVpFCistLXN5bWJvbF9tYXAgX19fVElfU1RBQ0tfQkFTRT1fX3N0YWNrCistLXN5bWJvbF9tYXAgX19fVElfU1RBVElDX0JBU0U9X19fYnNzX18KKy0tc3ltYm9sX21hcCBfX2NfaW50MDA9X2NfaW50MDAKKworCisKKworCistLWFyZ3MgMHgyMDAKKy1oZWFwICAweDEwMDAKKy1zdGFjayAweDEwMDAKKworTUVNT1JZCit7CisgICAgSVJBTSAoUldYKSA6IG9yZyA9IDB4ODAwMDAwLCBsZW4gPSAweDIwMDAwMAorICAgIEREUiA6IG9yZyA9IDB4ODAwMDAwMDAsIGxlbiA9IDB4MTAwMDAwMDAKK30KKworLyoKKyAqIExpbmtlciBjb21tYW5kIGZpbGUgY29udHJpYnV0aW9ucyBmcm9tIGFsbCBsb2FkZWQgcGFja2FnZXM6CisgKi8KKworLyogQ29udGVudCBmcm9tIHhkYyAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuY29yZXZlcnMgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnNlcnZpY2VzLmdsb2JhbCAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuc2hlbGYgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnNlcnZpY2VzLnNwZWMgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnNlcnZpY2VzLmludGVybi54c3IgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnNlcnZpY2VzLmludGVybi5nZW4gKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnNlcnZpY2VzLmludGVybi5jbWQgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20geGRjLnJvdiAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB0aS5jYXRhbG9nLmM2MDAwIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHhkYy5wbGF0Zm9ybSAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMuY2ZnIChudWxsKTogKi8KKworLyogQ29udGVudCBmcm9tIHRpLnBsYXRmb3Jtcy5zaW02NFB4eCAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB4ZGMucnVudGltZSAobnVsbCk6ICovCisKKy8qIENvbnRlbnQgZnJvbSB0aS50YXJnZXRzLnJ0czYwMDAgKG51bGwpOiAqLworCisvKiBDb250ZW50IGZyb20gaGVsbG8ucGtnIChudWxsKTogKi8KKworCisvKgorICogc3ltYm9saWMgYWxpYXNlcyBmb3IgbnVtZXJpYyBjb25zdGFudHMgb3Igc3RhdGljIGluc3RhbmNlIG9iamVjdHMKKyAqLworX3hkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MgPSAxOworX3hkY19ydW50aW1lX1N0YXJ0dXBfX1JFU0VURlhOX19DID0gMTsKKworU0VDVElPTlMKK3sKKworCisgICAgLnRleHQ6IGxvYWQgPj4gSVJBTQorICAgIC5zd2l0Y2g6IGxvYWQgPj4gRERSCisgICAgLnN0YWNrOiBsb2FkID4gRERSCisgICAgLmFyZ3M6IGxvYWQgPiBERFIgYWxpZ24gPSAweDQsIGZpbGwgPSAwIHtfYXJnc2l6ZSA9IDB4MjAwOyB9CisgICAgeGRjLm5vbG9hZDogbG9hZCA+PiBERFIsIHR5cGUgPSBOT0xPQUQKKyAgICAuc3lzbWVtOiBsb2FkID4gRERSCisgICAgLmZhcjogbG9hZCA+PiBERFIKKyAgICAuZGF0YTogbG9hZCA+PiBERFIKKyAgICAuY2luaXQ6IGxvYWQgPiBERFIKKyAgICAuYnNzOiBsb2FkID4gRERSCisgICAgLmNvbnN0OiBsb2FkID4+IEREUgorICAgIC5waW5pdDogbG9hZCA+IEREUgorICAgIC5jaW86IGxvYWQgPj4gRERSCisKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmZlZWE4OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmMKQEAgLTAsMCArMSw3MDQ4IEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjZGVmaW5lIF9fbmVzdGVkX18KKyNkZWZpbmUgX19jb25maWdfXworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCisvKgorICogPT09PT09PT0gR0VORVJBVEVEIFNFQ1RJT05TID09PT09PT09CisgKiAgICAgCisgKiAgICAgTU9EVUxFIElOQ0xVREVTCisgKiAgICAgCisgKiAgICAgPG1vZHVsZS1uYW1lPiBJTlRFUk5BTFMKKyAqICAgICA8bW9kdWxlLW5hbWU+IElOSEVSSVRTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBWVEFCTEUKKyAqICAgICA8bW9kdWxlLW5hbWU+IFBBVENIIFRBQkxFCisgKiAgICAgPG1vZHVsZS1uYW1lPiBERUNMQVJBVElPTlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IE9CSkVDVCBPRkZTRVRTCisgKiAgICAgPG1vZHVsZS1uYW1lPiBURU1QTEFURVMKKyAqICAgICA8bW9kdWxlLW5hbWU+IElOSVRJQUxJWkVSUworICogICAgIDxtb2R1bGUtbmFtZT4gRlVOQ1RJT04gU1RVQlMKKyAqICAgICA8bW9kdWxlLW5hbWU+IFBST1hZIEJPRFkKKyAqICAgICA8bW9kdWxlLW5hbWU+IE9CSkVDVCBERVNDUklQVE9SCisgKiAgICAgPG1vZHVsZS1uYW1lPiBTWVNURU0gRlVOQ1RJT05TCisgKiAgICAgPG1vZHVsZS1uYW1lPiBQUkFHTUFTCisgKiAgICAgCisgKiAgICAgSU5JVElBTElaQVRJT04gRU5UUlkgUE9JTlQKKyAqICAgICBQUk9HUkFNIEdMT0JBTFMKKyAqICAgICBDTElOSyBESVJFQ1RJVkVTCisgKi8KKworCisvKgorICogPT09PT09PT0gTU9EVUxFIElOQ0xVREVTID09PT09PT09CisgKi8KKworI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Fzc2VydC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0NvcmUuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9EZWZhdWx0cy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0RpYWdzLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9HYXRlLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvR2F0ZU51bGwuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9IZWFwU3RkLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTG9nLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTWFpbi5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL01lbW9yeS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N0YXJ0dXAuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXNNaW4uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UZXh0Lmg+CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkFzc2VydCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX18geGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX18geGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRlZmF1bHRzIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfXyB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIE9iamVjdF9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyB7CisgICAgY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfRnhuc19fKiBfX2Z4bnM7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fOworCisvKiBPYmplY3QyX18gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyIGhkcjsKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1ZFUlMKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVjsKKworLyogT2JqZWN0X18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geworICAgIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfRnhuc19fKiBfX2Z4bnM7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgcmVtYWluU2l6ZTsKKyAgICB4ZGNfcnVudGltZV9NZW1vcnlfU2l6ZSBzdGFydFNpemU7Cit9IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18gb2JqOworfSB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9IZWFwU3RkX19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciB4ZGNfVUNoYXIqCisjZWxzZQorICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkciBoZHI7Cit9IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKy8qIDwtLSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdDJfXzsKKworLyogX19QYXJhbXNQdHIgKi8KKyNpZmRlZiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciB4ZGNfUHRyCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHIgaGRyOworfSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fOworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK2V4dGVybiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfTW9kdWxlX19yb290X19WOworCisvKiA8LS0geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QgKi8KKworLyogT2JqZWN0ICovCit0eXBlZGVmIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfXzsKKworLyogT2JqZWN0Ml9fICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciBoZHI7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9PYmplY3RfXyBvYmo7Cit9IHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfX19WRVJTCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHhkY19VQ2hhcioKKyNlbHNlCisgICAgI2RlZmluZSB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX18geworICAgIHhkY19ydW50aW1lX1R5cGVzX01vZEhkclMgaGRyOworfSB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gSU5URVJOQUxTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworLyogPC0tIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdCAqLworCisvKiBPYmplY3QgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X187CisKKy8qIE9iamVjdDJfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgaGRyOworICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fIG9iajsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0Ml9fOworCisvKiBfX1BhcmFtc1B0ciAqLworI2lmZGVmIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fVkVSUworICAgICNkZWZpbmUgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgeGRjX1VDaGFyKgorI2Vsc2UKKyAgICAjZGVmaW5lIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X19fUGFyYW1zUHRyIHhkY19QdHIKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IElOVEVSTkFMUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fICovCit0eXBlZGVmIHN0cnVjdCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19Nb2RIZHJTIGhkcjsKK30geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXzsKKworLyogTW9kdWxlX19yb290X19WICovCitleHRlcm4geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X01vZHVsZV9fcm9vdF9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBJTlRFUk5BTFMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfXyB7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTW9kSGRyUyBoZHI7Cit9IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX187CisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworZXh0ZXJuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX18geGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3Jvb3RfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DID0gezB9OworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DID0geyh2b2lkKikmeGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0N9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOSEVSSVRTID09PT09PT09CisgKi8KKworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9UeXBlc19CYXNlIHhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQyA9IHsodm9pZCopJnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9GeG5zX18geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19GWE5TX19DID0geworICAgICh2b2lkKikmeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MuX19zZnhucywgLyogX19zeXNwICovCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UsCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UsCisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfbGVhdmVfX0UsCisgICAgeworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MsCisgICAgICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1MsCisgICAgICAgIDB4ODAwOCwgLyogX19taWQgKi8KKyAgICB9IC8qIF9fc2Z4bnMgKi8KK307CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkhlYXBTdGQgVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9IZWFwU3RkX0Z4bnNfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQyA9IHsKKyAgICAodm9pZCopJnhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQywgLyogYmFzZV9fICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfYWxsb2NfX0UsCisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FLAorICAgIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSwKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FLAorICAgIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2RlbGV0ZV9fUywKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGVfX2xhYmVsX19TLAorICAgICAgICAweDgwMGMsIC8qIF9fbWlkICovCisgICAgfSAvKiBfX3NmeG5zICovCit9OworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gVlRBQkxFID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19GWE5TX19DICovCitjb25zdCB4ZGNfcnVudGltZV9TeXNNaW5fRnhuc19fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MgPSB7CisgICAgKHZvaWQqKSZ4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MsIC8qIGJhc2VfXyAqLworICAgICZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DLl9fc2Z4bnMsIC8qIF9fc3lzcCAqLworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSwKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UsCisgICAgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FLAorICAgIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSwKKyAgICB7CisgICAgICAgIE5VTEwsIC8qIF9fY3JlYXRlICovCisgICAgICAgIE5VTEwsIC8qIF9fZGVsZXRlICovCisgICAgICAgIE5VTEwsIC8qIF9fbGFiZWwgKi8KKyAgICAgICAgMHg4MDBmLCAvKiBfX21pZCAqLworICAgIH0gLyogX19zZnhucyAqLworfTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkNvcmUgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGlhZ3MgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9TdGF0ZV9fIHsKKyAgICB4ZGNfVUludDE2IGNvdW50OworfSB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fVjsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fdGFibGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzFdOworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X1NpemUgcmVtYWluUlRTU2l6ZTsKK30geGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1Y7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1NpemVUIG1heERlZmF1bHRUeXBlQWxpZ247Cit9IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXzsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXRlX19WOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX1N0YXRlX18geworICAgIHhkY19JbnQqIHN0YXRlVGFiOworICAgIHhkY19Cb29sIGV4ZWNGbGFnOworICAgIHhkY19Cb29sIHJ0c0RvbmVGbGFnOworfSB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKHhkY19JbnQpOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9zdGFydHVwX19FICovCitleHRlcm4geGRjX0ludCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UoeGRjX0ludCk7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVsyXTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BWzJdOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfXyB7CisgICAgX19UQV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgb3V0YnVmOworICAgIHhkY19VSW50IG91dGlkeDsKKyAgICB4ZGNfQm9vbCB3cmFwcGVkOworfSB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX187CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfX291dGJ1ZiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlXzBfb3V0YnVmX19BWzEwMjRdOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhdGVfX1Y7CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JICovCitleHRlcm4geGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSh4ZGNfQ2hhcioseGRjX1VJbnQpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX1N0YXRlX18gKi8KK3R5cGVkZWYgc3RydWN0IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfXyB7CisgICAgX19UQV94ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX19hdGV4aXRIYW5kbGVycyBhdGV4aXRIYW5kbGVyczsKKyAgICB4ZGNfSW50IG51bUF0ZXhpdEhhbmRsZXJzOworICAgIHhkY19JbnQgZXhpdFN0YXR1czsKK30geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BICovCitfX1QxX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfX2F0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfU3RhdGVfMF9hdGV4aXRIYW5kbGVyc19fQVs4XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXRlX19WOworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSAqLworZXh0ZXJuIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSh4ZGNfQ2hhcioqLHhkY19DaGFyKioseGRjX1ZhTGlzdCx4ZGNfcnVudGltZV9TeXN0ZW1fUGFyc2VEYXRhKik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgREVDTEFSQVRJT05TID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBERUNMQVJBVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfU3RhdGVfXyAqLwordHlwZWRlZiBzdHJ1Y3QgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB7CisgICAgeGRjX1B0ciBjaGFyQmFzZTsKKyAgICB4ZGNfUHRyIG5vZGVCYXNlOworfSB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fOworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGF0ZV9fVjsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzY2MV07CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVsxN107CisKKworLyoKKyAqID09PT09PT09IHhkYy5jZmcuUHJvZ3JhbSBURU1QTEFURSA9PT09PT09PQorICovCisKKy8qCisgKiAgPT09PT09PT0gX19BU01fXyA9PT09PT09PQorICogIERlZmluZSB0aGlzIHByb2dyYW0ncyBwYWNrYWdlLXBhdGggcmVsYXRpdmUgYXNzZW1ibHkgZGlyZWN0b3J5CisgKi8KK19fRkFSX18gY2hhciAqX19BU01fXyA9ICJAKCMpX19BU01fXyA9IEQ6L3dvcmsvdHV0b3JpYWwvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVyI7CisKKy8qCisgKiAgPT09PT09PT0gX19JU0FfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgSVNBIG9mIHRoaXMgZXhlY3V0YWJsZS4gIFRoaXMgc3ltYm9sIGlzIHVzZWQgYnkgcGxhdGZvcm0KKyAqICBzcGVjaWZpYyAiZXhlYyIgY29tbWFuZHMgdGhhdCBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgSVNBOyBlLmcuLCBnZGIKKyAqLworX19GQVJfXyBjaGFyICpfX0lTQV9fID0gIkAoIylfX0lTQV9fID0geDg2IjsKKworLyoKKyAqICA9PT09PT09PSBfX1BMQVRfXyA9PT09PT09PQorICogIERlZmluZSB0aGUgbmFtZSBvZiB0aGUgcGxhdGZvcm0gdGhhdCBjYW4gcnVuIHRoaXMgZXhlY3V0YWJsZS4gIFRoaXMKKyAqICBzeW1ib2wgaXMgdXNlZCBieSBwbGF0Zm9ybSBpbmRlcGVuZGVudCAiZXhlYyIgY29tbWFuZHMKKyAqLworX19GQVJfXyBjaGFyICpfX1BMQVRfXyA9ICJAKCMpX19QTEFUX18gPSBob3N0LnBsYXRmb3Jtcy5QQyI7CisKKy8qCisgKiAgPT09PT09PT0gX19UQVJHX18gPT09PT09PT0KKyAqICBEZWZpbmUgdGhlIG5hbWUgb2YgdGhlIHRhcmdldCB1c2VkIHRvIGJ1aWxkIHRoaXMgZXhlY3V0YWJsZS4KKyAqLworX19GQVJfXyBjaGFyICpfX1RBUkdfXyA9ICJAKCMpX19UQVJHX18gPSBnbnUudGFyZ2V0cy5NaW5ndyI7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFRFTVBMQVRFID09PT09PT09CisgKi8KKworCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fRih2b2lkKSB7CisgICAgcmV0dXJuICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWIgPT0gMCB8fCAoJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViktPnN0YXRlVGFiWzBdIDwgMDsKK30KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKHZvaWQpIHsKKyAgICByZXR1cm4gKCZ4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhdGVfX1YpLT5zdGF0ZVRhYiA9PSAwIHx8ICgmeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXRlX19WKS0+c3RhdGVUYWJbMV0gPCAwOworfQorCisKK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSh2b2lkKQoreworICAgIHhkY19JbnQgc3RhdGVbM107CisgICAgeGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0Moc3RhdGUsIDIpOworfQorCisjaWZkZWYgX190aV9fCisjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX3Jlc2V0X19JKTsKKyNlbmRpZgorCisvKgorICogID09PT09PT09IHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBib290c3RyYXAgaW5pdGlhbGl6YXRpb24gY29kZSBhcyBlYXJseSBhcworICogIHBvc3NpYmxlIGluIHRoZSBzdGFydHVwIHByb2Nlc3MuICBUaGlzIGZ1bmN0aW9uIHNpbXBseSBjYWxscyBhbnkKKyAqICBjb25maWd1cmVkIG51bGwuCisgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfcmVzZXRfX0kodm9pZCkKK3sKK30KKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbSBURU1QTEFURSA9PT09PT09PQorICovCisKKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UeXBlcy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1RleHQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Bc3NlcnQuaD4KKworLyoKKyAqICA9PT09PT09PSBTeXN0ZW1fcHJpbnRmRXh0ZW5kX19JID09PT09PT09CisgKiAgVGhpcyBmdW5jdGlvbiBwcm9jZXNzZXMgb3B0aW9uYWwgZXh0ZW5kZWQgZm9ybWF0cyBvZiBwcmludGYuCisgKi8KK0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmRXh0ZW5kX19JKENoYXIgKipwYnVmLCBDaGFyICoqcGZtdCwgCisgICAgVmFMaXN0IHZhLCB4ZGNfcnVudGltZV9TeXN0ZW1fUGFyc2VEYXRhICpwYXJzZSkKK3sKKyAgICBDaGFyICAgICpmbXQgPSAqcGZtdDsKKyAgICBJbnQgICAgIHJlczsKKyAgICBDaGFyICAgIGM7CisgICAgQm9vbCAgICBmb3VuZCA9IEZBTFNFOworICAgIAorICAgIHJlcyA9IDA7CisKKyAgICBjID0gKmZtdCsrOworICAgICpwZm10ID0gKnBmbXQgKyAxOworCisgICAgCisgICAgaWYgKGMgPT0gJyQnKSB7CisgICAgICAgIGMgPSAqZm10Kys7CisgICAgICAgICpwZm10ID0gKnBmbXQgKyAxOworICAgICAgICBpZiAoYyA9PSAnTCcpIHsKKyAgICAgICAgICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsICpsYWIgPSBwYXJzZS0+YUZsYWcgPyAKKyAgICAgICAgICAgICAgICAoeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwgKilpYXJnVG9QdHIodmFfYXJnKHZhLCBJQXJnKSkgOgorICAgICAgICAgICAgICAgICh4ZGNfcnVudGltZV9UeXBlc19MYWJlbCAqKXZhX2FyZyh2YSwgdm9pZCAqKTsKKyAgICAgICAgICAgIHJlcyArPSB4ZGNfcnVudGltZV9UZXh0X3B1dExhYihsYWIsIHBidWYsIHBhcnNlLT5wcmVjaXMpOworICAgICAgICAgICAgcGFyc2UtPmxlbiA9IDA7CisgICAgICAgICAgICBmb3VuZCA9IFRSVUU7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGlmIChmb3VuZCA9PSBGQUxTRSkgeworICAgICAgICAgLyogb3RoZXIgY2hhcmFjdGVyIChsaWtlICUpIGNvcHkgdG8gb3V0cHV0ICovCisgICAgICAgICAqKHBhcnNlLT5wdHIpID0gYzsKKyAgICAgICAgIHBhcnNlLT5sZW4gPSAxOworICAgIH0KKworICAgIHJldHVybiAocmVzKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KK2V4dGVybiBpbnQgSE9TVHdyaXRlKGludCwgY2hhciAqLCB1bnNpZ25lZCk7CisjZWxzZQorI2luY2x1ZGUgPHN0ZGlvLmg+CisjZW5kaWYKKworLyoKKyAqICA9PT09PT09PSBTeXNNaW5fb3V0cHV0X19JID09PT09PT09CisgKiAgSE9TVFdyaXRlIG9ubHkgd3JpdGVzIGEgbWF4IG9mIE4gY2hhcnMgYXQgYSB0aW1lLiBUaGUgYW1vdW50IGl0IHdyaXRlcworICogIGlzIHJldHVybmVkLiBUaGlzIGZ1bmN0aW9uIGxvb3BzIHVudGlsIHRoZSBlbnRpcmUgYnVmZmVyIGlzIHdyaXR0ZW4uCisgKiAgQmVpbmcgYSBzdGF0aWMgZnVuY3Rpb24gYWxsb3dzIGl0IHRvIGNvbmRpdGlvbmFsbHkgY29tcGlsZSBvdXQuCisgKi8KK1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSShDaGFyICpidWYsIFVJbnQgc2l6ZSkKK3sKKyNpZmRlZiBfX3RpX18KKyAgICBJbnQgcHJpbnRDb3VudDsKKyAgICAKKyAgICB3aGlsZSAoc2l6ZSAhPSAwKSB7CisgICAgICAgIHByaW50Q291bnQgPSBIT1NUd3JpdGUoMSwgYnVmLCBzaXplKTsKKyAgICAgICAgaWYgKChwcmludENvdW50IDw9IDApIHx8IChwcmludENvdW50ID4gc2l6ZSkpIHsKKyAgICAgICAgICAgIGJyZWFrOyAgLyogZW5zdXJlIHdlIG5ldmVyIGdldCBzdHVjayBpbiBhbiBpbmZpbml0ZSBsb29wICovCisgICAgICAgIH0KKyAgICAgICAgc2l6ZSAtPSBwcmludENvdW50OworICAgICAgICBidWYgPSBidWYgKyBwcmludENvdW50OworICAgIH0gICAgCisjZWxzZQorICAgIGZ3cml0ZShidWYsIDEsIHNpemUsIHN0ZG91dCk7CisjZW5kaWYKK30KKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgVEVNUExBVEUgPT09PT09PT0KKyAqLworCisKKy8qCisgKiAgPT09PT09PT0geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kgPT09PT09PT0KKyAqICBUaGlzIGZ1bmN0aW9uIGlzIGluZGlyZWN0bHkgY2FsbGVkIHdpdGhpbiBUZXh0LmMgdGhyb3VnaAorICogIHRoZSB2aXNpdFJvcGVGeG4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgb2YgeGRjLnJ1bnRpbWUuVGV4dC4KKyAqLworVm9pZCB4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSh4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlLAorICAgIHhkY19GeG4gdmlzRnhuLCB4ZGNfUHRyIHZpc1N0YXRlKQoreworICAgIHhkY19TdHJpbmcgc3RhY2tbM107CisgICAgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKHJvcGUsIHZpc0Z4biwgdmlzU3RhdGUsIHN0YWNrKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDI7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIEVfYXNzZXJ0RmFpbGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzA5KSA8PCAxNiB8IDApOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Db3JlIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDM7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBBX2luaXRpYWxpemVkUGFyYW1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXMgeGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTEpIDw8IDE2IHwgMTYpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EZWZhdWx0cyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA0OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX18geGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDU7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogc2V0TWFza0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DID0gMDsKKworLyogZGljdEJhc2VfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlIHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DID0gKChDVF9feGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2UpMCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoeGRjX1VJbnQxNikweDAsICAvKiBjb3VudCAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDY7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogRV9nZW5lcmljX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWMgeGRjX3J1bnRpbWVfRXJyb3JfRV9nZW5lcmljX19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpMzMxKSA8PCAxNiB8IDApOworCisvKiBFX21lbW9yeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnkgeGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0MgPSAoKCh4ZGNfcnVudGltZV9FcnJvcl9JZCkzNDkpIDw8IDE2IHwgMCk7CisKKy8qIHBvbGljeV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5IHhkY19ydW50aW1lX0Vycm9yX3BvbGljeV9fQyA9IHhkY19ydW50aW1lX0Vycm9yX1VOV0lORDsKKworLyogcmFpc2VIb29rX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2sgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DID0gKChDVF9feGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSkpOworCisvKiBtYXhEZXB0aF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGggeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MgPSAoeGRjX1VJbnQxNikweDEwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfXyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc01hc2tfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2spKCh2b2lkKikmeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXNfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9faWRfX0MgPSAoeGRjX0JpdHMxNikweDgwMDc7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DID0gMDsKKworLyogT2JqZWN0X19zaXplb2ZfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBPYmplY3RfX0RFU0NfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fREVTQ19fQzsKKworLyogT2JqZWN0X19QQVJBTVNfX0MgKi8KK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DID0geworICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgMCwgLyogX19zZWxmICovCisgICAgMCwgLyogX19meG5zICovCisgICAgKHhkY19ydW50aW1lX0lJbnN0YW5jZV9QYXJhbXMqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQy5fX2lwcm1zLCAvKiBpbnN0YW5jZSAqLworICAgIHsKKyAgICAgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKSwgLyogX19zaXplICovCisgICAgICAgIDAsICAvKiBuYW1lICovCisgICAgfSwgIC8qIGluc3RhbmNlICovCit9OworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fViA9IHt7CisgICAgeyZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssICAvKiBsaW5rLm5leHQgKi8KKyAgICAmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5saW5rfSwgIC8qIGxpbmsucHJldiAqLworICAgIChVQ2hhciopMCwgIC8qIGluc3RBcnJCZWcgKi8KKyAgICAoVUNoYXIqKSgwKy0xKSwgIC8qIGluc3RBcnJFbmQgKi8KKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKSwgIC8qIGluc3RTaXplICovCisgICAgMCwgIC8qIGN1ciAqLworICAgIDAsICAvKiBkaWFnc01hc2sgKi8KK319OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwODsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0MgPSBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X18pOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0MgPSAwOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0M7CisKKy8qIE9iamVjdF9fUEFSQU1TX19DICovCitfX0ZBUl9fIGNvbnN0IHhkY19ydW50aW1lX0hlYXBTdGRfUGFyYW1zIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MgPSB7CisgICAgc2l6ZW9mICh4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgIDAsIC8qIF9fc2VsZiAqLworICAgIDAsIC8qIF9fZnhucyAqLworICAgICh4ZGNfcnVudGltZV9JSW5zdGFuY2VfUGFyYW1zKikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQy5fX2lwcm1zLCAvKiBpbnN0YW5jZSAqLworICAgICgoeGRjX1VBcmcpKCh2b2lkKikweDApKSwgIC8qIHNpemUgKi8KKyAgICB7CisgICAgICAgIHNpemVvZiAoeGRjX3J1bnRpbWVfSUluc3RhbmNlX1BhcmFtcyksIC8qIF9fc2l6ZSAqLworICAgICAgICAwLCAgLyogbmFtZSAqLworICAgIH0sICAvKiBpbnN0YW5jZSAqLworfTsKKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WID0ge3sKKyAgICB7JnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rLCAgLyogbGluay5uZXh0ICovCisgICAgJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rfSwgIC8qIGxpbmsucHJldiAqLworICAgIChVQ2hhciopeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WLCAgLyogaW5zdEFyckJlZyAqLworICAgIChVQ2hhciopKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fViswKSwgIC8qIGluc3RBcnJFbmQgKi8KKyAgICBzaXplb2YgKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18pLCAgLyogaW5zdFNpemUgKi8KKyAgICAwLCAgLyogY3VyICovCisgICAgMCwgIC8qIGRpYWdzTWFzayAqLworfX07CisKKy8qIE9iamVjdF9fdGFibGVfX1YgKi8KK3hkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WWzFdID0geworICAgIHsvKiBpbnN0YW5jZSMwICovCisgICAgICAgICZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQywKKyAgICAgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MTAwMCkpLCAgLyogcmVtYWluU2l6ZSAqLworICAgICAgICAoKHhkY19VQXJnKSgodm9pZCopMHgxMDAwKSksICAvKiBzdGFydFNpemUgKi8KKyAgICB9LAorfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfVUFyZykoKHZvaWQqKTB4MCkpLCAgLyogcmVtYWluUlRTU2l6ZSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYzsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyA9IDE7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DID0gc2l6ZW9mKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18pOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DID0geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19WOworCisvKiBFX25vUlRTTWVtb3J5X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnkgeGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5X19DID0gKCgoeGRjX3J1bnRpbWVfRXJyb3JfSWQpNDIxKSA8PCAxNiB8IDApOworCisvKiBBX3plcm9TaXplX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX3plcm9TaXplX19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTk1KSA8PCAxNiB8IDE2KTsKKworLyogQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplIHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQyA9ICgoKHhkY19ydW50aW1lX0Fzc2VydF9JZCkxNDApIDw8IDE2IHwgMTYpOworCisvKiBBX2ludmFsaWRBbGlnbm1lbnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50IHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DID0gKCgoeGRjX3J1bnRpbWVfQXNzZXJ0X0lkKTIwMSkgPDwgMTYgfCAxNik7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfXyB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaykpOworCisvKiBNb2R1bGVfX2dhdGVPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmopMCk7CisKKy8qIE1vZHVsZV9fZ2F0ZVBybXNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMpMCk7CisKKy8qIE1vZHVsZV9faWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDA5OworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqX19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DID0gKChDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MgPSAwOworCisvKiBPYmplY3RfX2hlYXBfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MgPSAwOworCisvKiBMX2NvbnN0cnVjdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk0NjgpIDw8IDE2IHwgNCk7CisKKy8qIExfY3JlYXRlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGUgeGRjX3J1bnRpbWVfTG9nX0xfY3JlYXRlX19DID0gKCgoeGRjX3J1bnRpbWVfTG9nX0V2ZW50KTQ5MikgPDwgMTYgfCA0KTsKKworLyogTF9kZXN0cnVjdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3QgeGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0MgPSAoKCh4ZGNfcnVudGltZV9Mb2dfRXZlbnQpNTEzKSA8PCAxNiB8IDQpOworCisvKiBMX2RlbGV0ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlIHhkY19ydW50aW1lX0xvZ19MX2RlbGV0ZV9fQyA9ICgoKHhkY19ydW50aW1lX0xvZ19FdmVudCk1MzIpIDw8IDE2IHwgNCk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW4gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1haW5fTW9kdWxlX0dhdGVQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NZW1vcnkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX18geGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIE1vZHVsZV9fc3RhdGVfX1YgKi8KK3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoeGRjX1NpemVUKTB4NCwgIC8qIG1heERlZmF1bHRUeXBlQWxpZ24gKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwYjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogZGVmYXVsdEhlYXBJbnN0YW5jZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2UgeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MgPSAoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKSZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX1ZbMF07CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3RhcnR1cCBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3Jvb3RfX1YgKi8KK3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX18geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGF0ZV9fViA9IHsKKyAgICAoKHhkY19JbnQqKTApLCAgLyogc3RhdGVUYWIgKi8KKyAgICAwLCAgLyogZXhlY0ZsYWcgKi8KKyAgICAwLCAgLyogcnRzRG9uZUZsYWcgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQVsyXSA9IHsKKyAgICAoKHhkY19JbnQoKikoeGRjX0ludCkpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRSkpLCAgLyogWzBdICovCisgICAgKCh4ZGNfSW50KCopKHhkY19JbnQpKSgoeGRjX0Z4bil4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UpKSwgIC8qIFsxXSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BWzJdID0geworICAgIDEsICAvKiBbMF0gKi8KKyAgICAxLCAgLyogWzFdICovCit9OworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NNYXNrX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrKSgodm9pZCopJnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkX19DID0gKHhkY19CaXRzMTYpMHg4MDBkOworCisvKiBNb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DID0gMDsKKworLyogTW9kdWxlX19sb2dnZXJPYmpfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmopMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuNF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNCkwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG44X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44KTApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuKTApOworCisvKiBPYmplY3RfX2NvdW50X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQyA9IDA7CisKKy8qIE9iamVjdF9fc2l6ZW9mX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MgPSAwOworCisvKiBPYmplY3RfX3RhYmxlX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogbWF4UGFzc2VzX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3NlcyB4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQyA9ICh4ZGNfSW50KTB4MjA7CisKKy8qIGZpcnN0Rnhuc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0MgPSB7MCwgMH07CisKKy8qIGxhc3RGeG5zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zIHhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MgPSB7MCwgMH07CisKKy8qIHN0YXJ0TW9kc0Z4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG4geGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNfX0kpKTsKKworLyogZXhlY0ltcGxfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGwgeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGwpKCh4ZGNfRnhuKXhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSSkpOworCisvKiBzZnhuVGFiX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWIgeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiKXhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSk7CisKKy8qIHNmeG5SdHNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHMpeGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuUnRzX19BKTsKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fcm9vdF9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3Jvb3RfX1YgPSB7CisgICAgezB9LCAgLyogZGlhZ3NNYXNrICovCit9OworCisvKiAtLT4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQSAqLworX19UMV94ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX1N0YXRlX19vdXRidWYgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV8wX291dGJ1Zl9fQVsxMDI0XTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9TdGF0ZV9fIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXRlX19WID0geworICAgIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfU3RhdGVfMF9vdXRidWZfX0EsICAvKiBvdXRidWYgKi8KKyAgICAoeGRjX1VJbnQpMHgwLCAgLyogb3V0aWR4ICovCisgICAgMCwgIC8qIHdyYXBwZWQgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZjsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogYnVmU2l6ZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemUgeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MgPSAoeGRjX1NpemVUKTB4NDAwOworCisvKiBmbHVzaEF0RXhpdF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX2ZsdXNoQXRFeGl0IHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQyA9IDE7CisKKy8qIG91dHB1dEZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4biB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bikwKTsKKworLyogb3V0cHV0RnVuY19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmMgeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYykoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSSkpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fViA9IHsKKyAgICB7MH0sICAvKiBkaWFnc01hc2sgKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlXzBfYXRleGl0SGFuZGxlcnNfX0EgKi8KK19fVDFfeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV9fYXRleGl0SGFuZGxlcnMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BWzhdID0geworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbMF0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzFdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFsyXSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbM10gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzRdICovCisgICAgKCh4ZGNfVm9pZCgqKSh4ZGNfSW50KSkwKSwgIC8qIFs1XSAqLworICAgICgoeGRjX1ZvaWQoKikoeGRjX0ludCkpMCksICAvKiBbNl0gKi8KKyAgICAoKHhkY19Wb2lkKCopKHhkY19JbnQpKTApLCAgLyogWzddICovCit9OworCisvKiBNb2R1bGVfX3N0YXRlX19WICovCit4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX1N0YXRlX18geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9TdGF0ZV8wX2F0ZXhpdEhhbmRsZXJzX19BLCAgLyogYXRleGl0SGFuZGxlcnMgKi8KKyAgICAoeGRjX0ludCkweDAsICAvKiBudW1BdGV4aXRIYW5kbGVycyAqLworICAgICh4ZGNfSW50KTB4Y2FmZSwgIC8qIGV4aXRTdGF0dXMgKi8KK307CisKKy8qIE1vZHVsZV9fZGlhZ3NFbmFibGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DID0gKHhkY19CaXRzMzIpMHgxMDsKKworLyogTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2spKTsKKworLyogTW9kdWxlX19nYXRlT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqKTApOworCisvKiBNb2R1bGVfX2dhdGVQcm1zX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zKTApOworCisvKiBNb2R1bGVfX2lkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAwZTsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgPSAwOworCisvKiBNb2R1bGVfX2xvZ2dlck9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaikwKTsKKworLyogTW9kdWxlX19sb2dnZXJGeG40X19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgPSAoKENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40KTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjhfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjgpMCk7CisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG4pMCk7CisKKy8qIE9iamVjdF9fY291bnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DID0gMDsKKworLyogT2JqZWN0X19oZWFwX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyA9IDA7CisKKy8qIE9iamVjdF9fdGFibGVfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DID0gMDsKKworLyogQV9jYW5ub3RGaXRJbnRvQXJnX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnIHhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0MgPSAoKCh4ZGNfcnVudGltZV9Bc3NlcnRfSWQpMjYxKSA8PCAxNiB8IDE2KTsKKworLyogbWF4QXRleGl0SGFuZGxlcnNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVycyB4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MgPSAoeGRjX0ludCkweDg7CisKKy8qIGV4dGVuZEZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DID0gKChDVF9feGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSkpOworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBJTklUSUFMSVpFUlMgPT09PT09PT0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IElOSVRJQUxJWkVSUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlRleHQgSU5JVElBTElaRVJTID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19yb290X19WICovCit4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WID0geworICAgIHswfSwgIC8qIGRpYWdzTWFzayAqLworfTsKKworLyogTW9kdWxlX19zdGF0ZV9fViAqLworeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfU3RhdGVfXyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhdGVfX1YgPSB7CisgICAgKCh4ZGNfUHRyKSgodm9pZCopJnhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQVswXSkpLCAgLyogY2hhckJhc2UgKi8KKyAgICAoKHhkY19QdHIpKCh2b2lkKikmeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BWzBdKSksICAvKiBub2RlQmFzZSAqLworfTsKKworLyogLS0+IHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSAqLworY29uc3QgX19UMV94ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19BWzY2MV0gPSB7CisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFswXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzFdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs2XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzEwXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzExXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzEzXSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE3XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzE4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE5XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzIwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIxXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzIyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzIzXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI0XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI1XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI5XSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzMwXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzMxXSAqLworICAgICh4ZGNfQ2hhcikweDdhLCAgLyogWzMyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzXSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzM0XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM1XSAqLworICAgICh4ZGNfQ2hhcikweDUwLCAgLyogWzM2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM3XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM5XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQwXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQxXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzQzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQ2XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDldICovCisgICAgKHhkY19DaGFyKTB4NDgsICAvKiBbNTBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNTJdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTNdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNTVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNTZdICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbNTddICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNThdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjBdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjFdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNjRdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNjVdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjZdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjddICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjhdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNjldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNzBdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzFdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbNzJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNzNdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbNzRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNzddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNzhdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbNzldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbODBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbODFdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbODJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbODNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbODRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbODVdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbODZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbODddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbODhdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbODldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbOTBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbOTFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbOTJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbOTNdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs5NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs5OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg1MywgIC8qIFs5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMDBdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMTAxXSAqLworICAgICh4ZGNfQ2hhcikweDVmLCAgLyogWzEwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsxMDNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTA0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMDZdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTA3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMDldICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMTEwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzExMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxMTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTEzXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzExNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxMTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTE2XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzExN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxMThdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMTE5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEyMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMjFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTIyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzEyM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsxMjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTI1XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzEyNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxMjddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTI4XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzEyOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxMzBdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTMxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxMzNdICovCisgICAgKHhkY19DaGFyKTB4NzYsICAvKiBbMTM0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzEzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsxMzZdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMTM3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzEzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzEzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFsxNDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTQxXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFsxNDNdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMTQ0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsxNDZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTQ3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzE0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxNDldICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMTUwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsxNTJdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMTUzXSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzE1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTU2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFsxNThdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMTU5XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsxNjFdICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMTYyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMTY1XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzE2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxNjddICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTY4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNzBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTcxXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsxNzNdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMTc0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNzZdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTc3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzE3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsxNzldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMTgwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzE4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxODJdICovCisgICAgKHhkY19DaGFyKTB4NjgsICAvKiBbMTgzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzE4NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsxODVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTg2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE4N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxODhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMTg5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzE5MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsxOTFdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMTkyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzE5M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsxOTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMTk1XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzE5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsxOTddICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMTk4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzE5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzIwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFsyMDFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjAyXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFsyMDRdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbMjA1XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzIwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyMDddICovCisgICAgKHhkY19DaGFyKTB4NWYsICAvKiBbMjA4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMTBdICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbMjExXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzIxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFsyMTNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjE0XSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzIxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyMTZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjE3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MSwgIC8qIFsyMTldICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMjIwXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFsyMjJdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjIzXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFsyMjVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjI2XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzIyN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyMjhdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMjI5XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzIzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyMzFdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMjMyXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzIzM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyMzRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjM1XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIzNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyMzddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjM4XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzIzOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFsyNDBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMjQxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFsyNDNdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbMjQ0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzI0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNDZdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjQ3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzI0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFsyNDldICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjUwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyNTJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMjUzXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzI1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyNTVdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjU2XSAqLworICAgICh4ZGNfQ2hhcikweDc3LCAgLyogWzI1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFsyNThdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMjU5XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbMjYwXSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzI2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1ZiwgIC8qIFsyNjJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMjYzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFsyNjVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMjY2XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNjhdICovCisgICAgKHhkY19DaGFyKTB4NDYsICAvKiBbMjY5XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI3MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNzFdICovCisgICAgKHhkY19DaGFyKTB4NDksICAvKiBbMjcyXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzI3M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyNzRdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjc1XSAqLworICAgICh4ZGNfQ2hhcikweDQxLCAgLyogWzI3Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFsyNzddICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMjc4XSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzI3OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFsyODBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMjgxXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzI4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3YSwgIC8qIFsyODNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMjg0XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzI4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFsyODZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMjg3XSAqLworICAgICh4ZGNfQ2hhcikweDQ2LCAgLyogWzI4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFsyODldICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMjkwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzI5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFsyOTJdICovCisgICAgKHhkY19DaGFyKTB4MjksICAvKiBbMjkzXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzI5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZSwgIC8qIFsyOTVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMjk2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzI5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFsyOThdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMjk5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszMDFdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbMzAyXSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzMwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg0MSwgIC8qIFszMDRdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzA1XSAqLworICAgICh4ZGNfQ2hhcikweDY3LCAgLyogWzMwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFszMDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszMDhdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzA5XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzMxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMTFdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzEyXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMxM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFszMTRdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzE1XSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzMxNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszMTddICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzE4XSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzMxOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFszMjBdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzIxXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzMyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFszMjNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzI0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFszMjZdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbMzI3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzMyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFszMjldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFszMzBdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbMzMxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzMzMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFszMzNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzM0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzMzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszMzZdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbMzM3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzMzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszMzldICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM0MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNDJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzQzXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzM0NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNDVdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzQ2XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzM0N10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzM0OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFszNDldICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbMzUwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzM1MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNTJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzUzXSAqLworICAgICh4ZGNfQ2hhcikweDY2LCAgLyogWzM1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszNTVdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbMzU2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZCwgIC8qIFszNThdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbMzU5XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzM2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFszNjFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbMzYyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM2M10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFszNjRdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbMzY1XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzM2Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFszNjddICovCisgICAgKHhkY19DaGFyKTB4M2QsICAvKiBbMzY4XSAqLworICAgICh4ZGNfQ2hhcikweDMwLCAgLyogWzM2OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFszNzBdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzcxXSAqLworICAgICh4ZGNfQ2hhcikweDc4LCAgLyogWzM3Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyYywgIC8qIFszNzNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbMzc0XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzM3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszNzZdICovCisgICAgKHhkY19DaGFyKTB4N2EsICAvKiBbMzc3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzZCwgIC8qIFszNzldICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbMzgwXSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzM4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzM4Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NiwgIC8qIFszODNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbMzg0XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzM4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFszODZdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbMzg3XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzM4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFszODldICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbMzkwXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzM5MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NiwgIC8qIFszOTJdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbMzkzXSAqLworICAgICh4ZGNfQ2hhcikweDZjLCAgLyogWzM5NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOTVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbMzk2XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzM5N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFszOThdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbMzk5XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NywgIC8qIFs0MDFdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNDAyXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzQwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NywgIC8qIFs0MDRdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDA1XSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0MDddICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDA4XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQwOV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs0MTBdICovCisgICAgKHhkY19DaGFyKTB4NzksICAvKiBbNDExXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs0MTNdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDE0XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0MTZdICovCisgICAgKHhkY19DaGFyKTB4NGQsICAvKiBbNDE3XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZSwgIC8qIFs0MTldICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0MjBdICovCisgICAgKHhkY19DaGFyKTB4NTQsICAvKiBbNDIxXSAqLworICAgICh4ZGNfQ2hhcikweDY4LCAgLyogWzQyMl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs0MjNdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDI0XSAqLworICAgICh4ZGNfQ2hhcikweDUyLCAgLyogWzQyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg1NCwgIC8qIFs0MjZdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNDI3XSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0MjldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDMwXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0MzJdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDMzXSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzQzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MzVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDM2XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzQzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0MzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDM5XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzQ0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NDFdICovCisgICAgKHhkY19DaGFyKTB4NzUsICAvKiBbNDQyXSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzQ0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs0NDRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDQ1XSAqLworICAgICh4ZGNfQ2hhcikweDQ1LCAgLyogWzQ0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OCwgIC8qIFs0NDddICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNDQ4XSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzQ0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs0NTBdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNDUxXSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzQ1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs0NTNdICovCisgICAgKHhkY19DaGFyKTB4NTAsICAvKiBbNDU0XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs0NTZdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNDU3XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ1OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs0NTldICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNDYwXSAqLworICAgICh4ZGNfQ2hhcikweDJlLCAgLyogWzQ2MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OCwgIC8qIFs0NjJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDYzXSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0NjVdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNDY2XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNDY3XSAqLworICAgICh4ZGNfQ2hhcikweDNjLCAgLyogWzQ2OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0NjldICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNDcwXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzQ3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs0NzJdICovCisgICAgKHhkY19DaGFyKTB4NmYsICAvKiBbNDczXSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzQ3NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs0NzVdICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNDc2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzQ3N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs0NzhdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNDc5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzQ4MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs0ODFdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDgyXSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzQ4M10gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs0ODRdICovCisgICAgKHhkY19DaGFyKTB4MjgsICAvKiBbNDg1XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzQ4Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs0ODddICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNDg4XSAqLworICAgICh4ZGNfQ2hhcikweDI3LCAgLyogWzQ4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs0OTBdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs0OTFdICovCisgICAgKHhkY19DaGFyKTB4M2MsICAvKiBbNDkyXSAqLworICAgICh4ZGNfQ2hhcikweDJkLCAgLyogWzQ5M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs0OTRdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNDk1XSAqLworICAgICh4ZGNfQ2hhcikweDYzLCAgLyogWzQ5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs0OTddICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNDk4XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzQ5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1MDBdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTAxXSAqLworICAgICh4ZGNfQ2hhcikweDNhLCAgLyogWzUwMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MDNdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTA0XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzUwNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1MDZdICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNTA3XSAqLworICAgICh4ZGNfQ2hhcikweDI1LCAgLyogWzUwOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1MDldICovCisgICAgKHhkY19DaGFyKTB4MjcsICAvKiBbNTEwXSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzUxMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzUxMl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MTNdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTE0XSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzUxNV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MTZdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTE3XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1MTldICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTIwXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzUyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1MjJdICovCisgICAgKHhkY19DaGFyKTB4NjMsICAvKiBbNTIzXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzUyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgzYSwgIC8qIFs1MjVdICovCisgICAgKHhkY19DaGFyKTB4MjAsICAvKiBbNTI2XSAqLworICAgICh4ZGNfQ2hhcikweDI4LCAgLyogWzUyN10gKi8KKyAgICAoeGRjX0NoYXIpMHgyNSwgIC8qIFs1MjhdICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNTI5XSAqLworICAgICh4ZGNfQ2hhcikweDI5LCAgLyogWzUzMF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzUzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZCwgIC8qIFs1MzJdICovCisgICAgKHhkY19DaGFyKTB4MmQsICAvKiBbNTMzXSAqLworICAgICh4ZGNfQ2hhcikweDNlLCAgLyogWzUzNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyMCwgIC8qIFs1MzVdICovCisgICAgKHhkY19DaGFyKTB4NjQsICAvKiBbNTM2XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzUzN10gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs1MzhdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTM5XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU0MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NDFdICovCisgICAgKHhkY19DaGFyKTB4M2EsICAvKiBbNTQyXSAqLworICAgICh4ZGNfQ2hhcikweDIwLCAgLyogWzU0M10gKi8KKyAgICAoeGRjX0NoYXIpMHgyOCwgIC8qIFs1NDRdICovCisgICAgKHhkY19DaGFyKTB4MjUsICAvKiBbNTQ1XSAqLworICAgICh4ZGNfQ2hhcikweDcwLCAgLyogWzU0Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHgyOSwgIC8qIFs1NDddICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NDhdICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNTQ5XSAqLworICAgICh4ZGNfQ2hhcikweDY0LCAgLyogWzU1MF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MywgIC8qIFs1NTFdICovCisgICAgKHhkY19DaGFyKTB4MmUsICAvKiBbNTUyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTUzXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU1NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1NTVdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNTU2XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU1N10gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs1NThdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNTU5XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU2MF0gKi8KKyAgICAoeGRjX0NoYXIpMHgyZSwgIC8qIFs1NjFdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NjJdICovCisgICAgKHhkY19DaGFyKTB4NDEsICAvKiBbNTYzXSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU2NF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1NjVdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTY2XSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU2N10gKi8KKyAgICAoeGRjX0NoYXIpMHg3NCwgIC8qIFs1NjhdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1NjldICovCisgICAgKHhkY19DaGFyKTB4NDMsICAvKiBbNTcwXSAqLworICAgICh4ZGNfQ2hhcikweDZmLCAgLyogWzU3MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MiwgIC8qIFs1NzJdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNTczXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTc0XSAqLworICAgICh4ZGNfQ2hhcikweDQ0LCAgLyogWzU3NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs1NzZdICovCisgICAgKHhkY19DaGFyKTB4NjYsICAvKiBbNTc3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzU3OF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs1NzldICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNTgwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzU4MV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MywgIC8qIFs1ODJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs1ODNdICovCisgICAgKHhkY19DaGFyKTB4NDQsICAvKiBbNTg0XSAqLworICAgICh4ZGNfQ2hhcikweDY5LCAgLyogWzU4NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1ODZdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNTg3XSAqLworICAgICh4ZGNfQ2hhcikweDczLCAgLyogWzU4OF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzU4OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NSwgIC8qIFs1OTBdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTkxXSAqLworICAgICh4ZGNfQ2hhcikweDcyLCAgLyogWzU5Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs1OTNdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNTk0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNTk1XSAqLworICAgICh4ZGNfQ2hhcikweDQ3LCAgLyogWzU5Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs1OTddICovCisgICAgKHhkY19DaGFyKTB4NzQsICAvKiBbNTk4XSAqLworICAgICh4ZGNfQ2hhcikweDY1LCAgLyogWzU5OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYwMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0NywgIC8qIFs2MDFdICovCisgICAgKHhkY19DaGFyKTB4NjEsICAvKiBbNjAyXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYwM10gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2MDRdICovCisgICAgKHhkY19DaGFyKTB4NGUsICAvKiBbNjA1XSAqLworICAgICh4ZGNfQ2hhcikweDc1LCAgLyogWzYwNl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2YywgIC8qIFs2MDddICovCisgICAgKHhkY19DaGFyKTB4NmMsICAvKiBbNjA4XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjA5XSAqLworICAgICh4ZGNfQ2hhcikweDRjLCAgLyogWzYxMF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2MTFdICovCisgICAgKHhkY19DaGFyKTB4NjcsICAvKiBbNjEyXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjEzXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzYxNF0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MTVdICovCisgICAgKHhkY19DaGFyKTB4NjksICAvKiBbNjE2XSAqLworICAgICh4ZGNfQ2hhcikweDZlLCAgLyogWzYxN10gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYxOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg0ZCwgIC8qIFs2MTldICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjIwXSAqLworICAgICh4ZGNfQ2hhcikweDZkLCAgLyogWzYyMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2ZiwgIC8qIFs2MjJdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNjIzXSAqLworICAgICh4ZGNfQ2hhcikweDc5LCAgLyogWzYyNF0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzYyNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg0OCwgIC8qIFs2MjZdICovCisgICAgKHhkY19DaGFyKTB4NjUsICAvKiBbNjI3XSAqLworICAgICh4ZGNfQ2hhcikweDYxLCAgLyogWzYyOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3MCwgIC8qIFs2MjldICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjMwXSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzMV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NCwgIC8qIFs2MzJdICovCisgICAgKHhkY19DaGFyKTB4MCwgIC8qIFs2MzNdICovCisgICAgKHhkY19DaGFyKTB4NTMsICAvKiBbNjM0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzNV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2MSwgIC8qIFs2MzZdICovCisgICAgKHhkY19DaGFyKTB4NzIsICAvKiBbNjM3XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzYzOF0gKi8KKyAgICAoeGRjX0NoYXIpMHg3NSwgIC8qIFs2MzldICovCisgICAgKHhkY19DaGFyKTB4NzAsICAvKiBbNjQwXSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjQxXSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzY0Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2NDNdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjQ0XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY0NV0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2NDZdICovCisgICAgKHhkY19DaGFyKTB4NmQsICAvKiBbNjQ3XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjQ4XSAqLworICAgICh4ZGNfQ2hhcikweDUzLCAgLyogWzY0OV0gKi8KKyAgICAoeGRjX0NoYXIpMHg3OSwgIC8qIFs2NTBdICovCisgICAgKHhkY19DaGFyKTB4NzMsICAvKiBbNjUxXSAqLworICAgICh4ZGNfQ2hhcikweDRkLCAgLyogWzY1Ml0gKi8KKyAgICAoeGRjX0NoYXIpMHg2OSwgIC8qIFs2NTNdICovCisgICAgKHhkY19DaGFyKTB4NmUsICAvKiBbNjU0XSAqLworICAgICh4ZGNfQ2hhcikweDAsICAvKiBbNjU1XSAqLworICAgICh4ZGNfQ2hhcikweDU0LCAgLyogWzY1Nl0gKi8KKyAgICAoeGRjX0NoYXIpMHg2NSwgIC8qIFs2NTddICovCisgICAgKHhkY19DaGFyKTB4NzgsICAvKiBbNjU4XSAqLworICAgICh4ZGNfQ2hhcikweDc0LCAgLyogWzY1OV0gKi8KKyAgICAoeGRjX0NoYXIpMHgwLCAgLyogWzY2MF0gKi8KK307CisKKy8qIC0tPiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EgKi8KK2NvbnN0IF9fVDFfeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQVsxN10gPSB7CisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDAsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MCwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFswXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHgyMjUsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjJhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzFdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjMzLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzJdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjNhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzNdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjNmLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzRdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjQ4LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzVdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjRlLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzZdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjU0LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzddICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjU5LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzhdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjYyLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzldICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjY2LCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzEwXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI2YiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxMV0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyNzIsICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTJdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjdhLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzEzXSAqLworICAgIHsKKyAgICAgICAgKHhkY19CaXRzMTYpMHg4MDAxLCAgLyogbGVmdCAqLworICAgICAgICAoeGRjX0JpdHMxNikweDI4MiwgIC8qIHJpZ2h0ICovCisgICAgfSwgIC8qIFsxNF0gKi8KKyAgICB7CisgICAgICAgICh4ZGNfQml0czE2KTB4ODAwMSwgIC8qIGxlZnQgKi8KKyAgICAgICAgKHhkY19CaXRzMTYpMHgyODksICAvKiByaWdodCAqLworICAgIH0sICAvKiBbMTVdICovCisgICAgeworICAgICAgICAoeGRjX0JpdHMxNikweDgwMDEsICAvKiBsZWZ0ICovCisgICAgICAgICh4ZGNfQml0czE2KTB4MjkwLCAgLyogcmlnaHQgKi8KKyAgICB9LCAgLyogWzE2XSAqLworfTsKKworLyogTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyA9ICh4ZGNfQml0czMyKTB4MTA7CisKKy8qIE1vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgPSAoeGRjX0JpdHMzMikweDEwOworCisvKiBNb2R1bGVfX2RpYWdzTWFza19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFzaykoKHZvaWQqKSZ4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrKSk7CisKKy8qIE1vZHVsZV9fZ2F0ZU9ial9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaikwKTsKKworLyogTW9kdWxlX19nYXRlUHJtc19fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcykwKTsKKworLyogTW9kdWxlX19pZF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQyA9ICh4ZGNfQml0czE2KTB4ODAxMDsKKworLyogTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyA9IDA7CisKKy8qIE1vZHVsZV9fbG9nZ2VyT2JqX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqKTApOworCisvKiBNb2R1bGVfX2xvZ2dlckZ4bjRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjQpMCk7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOCkwKTsKKworLyogTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikwKTsKKworLyogT2JqZWN0X19jb3VudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyA9IDA7CisKKy8qIE9iamVjdF9faGVhcF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MgPSAwOworCisvKiBPYmplY3RfX3NpemVvZl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DID0gMDsKKworLyogT2JqZWN0X190YWJsZV9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyA9IDA7CisKKy8qIG5hbWVVbmtub3duX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duIHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MgPSAie3Vua25vd24taW5zdGFuY2UtbmFtZX0iOworCisvKiBuYW1lRW1wdHlfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5IHhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DID0gIntlbXB0eS1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIG5hbWVTdGF0aWNfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpYyB4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MgPSAie3N0YXRpYy1pbnN0YW5jZS1uYW1lfSI7CisKKy8qIGlzTG9hZGVkX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkIHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MgPSAxOworCisvKiBjaGFyVGFiX19DICovCitfX0ZBUl9fIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DID0gKChDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiKXhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSk7CisKKy8qIG5vZGVUYWJfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZVRhYiB4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X25vZGVUYWIpeGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19BKTsKKworLyogY2hhckNudF9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250IHhkY19ydW50aW1lX1RleHRfY2hhckNudF9fQyA9ICh4ZGNfSW50MTYpMHgyOTU7CisKKy8qIG5vZGVDbnRfX0MgKi8KK19fRkFSX18gY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbm9kZUNudCB4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MgPSAoeGRjX0ludDE2KTB4MTE7CisKKy8qIHZpc2l0Um9wZUZ4bl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MgPSAoKENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bikoKHhkY19GeG4peGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVfX0kpKTsKKworLyogdmlzaXRSb3BlRnhuMl9fQyAqLworX19GQVJfXyBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yIHhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyA9ICgoQ1RfX3hkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMikoKHhkY19GeG4peGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JKSk7CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkRpYWdzIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogc2V0TWFza19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRSggeGRjX1N0cmluZyBjb250cm9sICkgCit7CisgICAgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRihjb250cm9sKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBjaGVja19fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9jaGVja19fRihlYik7Cit9CisKKy8qIGdldERhdGFfX0UgKi8KK3hkY19ydW50aW1lX0Vycm9yX0RhdGEqIHhkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19GKGViKTsKK30KKworLyogZ2V0Q29kZV9fRSAqLworeGRjX1VJbnQxNiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRihlYik7Cit9CisKKy8qIGdldElkX19FICovCit4ZGNfcnVudGltZV9FcnJvcl9JZCB4ZGNfcnVudGltZV9FcnJvcl9nZXRJZF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldElkX19GKGViKTsKK30KKworLyogZ2V0TXNnX19FICovCit4ZGNfU3RyaW5nIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRihlYik7Cit9CisKKy8qIGdldFNpdGVfX0UgKi8KK3hkY19ydW50aW1lX1R5cGVzX1NpdGUqIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GKGViKTsKK30KKworLyogaW5pdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRihlYik7Cit9CisKKy8qIHByaW50X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9wcmludF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0YoZWIpOworfQorCisvKiByYWlzZVhfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViLCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtb2QsIHhkY19TdHJpbmcgZmlsZSwgeGRjX0ludCBsaW5lLCB4ZGNfcnVudGltZV9FcnJvcl9JZCBpZCwgeGRjX0lBcmcgYXJnMSwgeGRjX0lBcmcgYXJnMiApIAoreworICAgIHhkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRihlYiwgbW9kLCBmaWxlLCBsaW5lLCBpZCwgYXJnMSwgYXJnMik7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGUgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBlbnRlclN5c3RlbV9fRSAqLworeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRSggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GKCk7Cit9CisKKy8qIGxlYXZlU3lzdGVtX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FKCB4ZGNfSUFyZyBrZXkgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19GKGtleSk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkdhdGVOdWxsIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0YocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlIF9faW5zdCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9lbnRlcl9fRigodm9pZCopX19pbnN0KTsKK30KKworLyogbGVhdmVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlX19FKCB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUgX19pbnN0LCB4ZGNfSUFyZyBrZXkgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRigodm9pZCopX19pbnN0LCBrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZnJlZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9mcmVlX19GKCh2b2lkKilfX2luc3QsIGJsb2NrLCBzaXplKTsKK30KKworLyogZ2V0U3RhdHNfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlIF9faW5zdCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApIAoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0YoKHZvaWQqKV9faW5zdCwgc3RhdHMpOworfQorCisvKiBhbGxvY19fRSAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19FKCB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZSBfX2luc3QsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19GKCh2b2lkKilfX2luc3QsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGlzQmxvY2tpbmdfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUgX19pbnN0ICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRigodm9pZCopX19pbnN0KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTG9nIEZVTkNUSU9OIFNUVUJTID09PT09PT09CisgKi8KKworLyogZG9QcmludF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0UoIHhkY19ydW50aW1lX0xvZ19FdmVudFJlYyogZXZSZWMgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRihldlJlYyk7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0YoaGVhcCwgc2l6ZSwgYWxpZ24sIGViKTsKK30KKworLyogY2FsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRihoZWFwLCBzaXplLCBhbGlnbiwgZWIpOworfQorCisvKiBmcmVlX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZnJlZV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19QdHIgYmxvY2ssIHhkY19TaXplVCBzaXplICkgCit7CisgICAgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0YoaGVhcCwgYmxvY2ssIHNpemUpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldFN0YXRzX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX3J1bnRpbWVfTWVtb3J5X1N0YXRzKiBzdGF0cyApIAoreworICAgIHhkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRihoZWFwLCBzdGF0cyk7Cit9CisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfSW50IHF1YWwgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19GKGhlYXAsIHF1YWwpOworfQorCisvKiBnZXRNYXhEZWZhdWx0VHlwZUFsaWduX19FICovCit4ZGNfU2l6ZVQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0UoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0YoKTsKK30KKworLyogdmFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfQ2hhciB2YWx1ZSwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0YoaGVhcCwgc2l6ZSwgYWxpZ24sIHZhbHVlLCBlYik7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBleGVjX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0UoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNfX0YoKTsKK30KKworLyogcnRzRG9uZV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRigpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXNNaW4gRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBhYm9ydF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIAoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRihzdHIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0Yoc3RhdCk7Cit9CisKKy8qIGZsdXNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0YoKTsKK30KKworLyogcHV0Y2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0YoY2gpOworfQorCisvKiByZWFkeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRigpOworfQorCisvKiBNb2R1bGVfc3RhcnR1cCAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UoIHhkY19JbnQgc3RhdGUgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0Yoc3RhdGUpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gRlVOQ1RJT04gU1RVQlMgPT09PT09PT0KKyAqLworCisvKiBhYm9ydF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRihzdHIpOworfQorCisvKiBhdGV4aXRfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0UoIHhkY19ydW50aW1lX1N5c3RlbV9BdGV4aXRIYW5kbGVyIGhhbmRsZXIgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRihoYW5kbGVyKTsKK30KKworLyogZXhpdF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9leGl0X19GKHN0YXQpOworfQorCisvKiBwdXRjaF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIAoreworICAgIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRihjaCk7Cit9CisKKy8qIGZsdXNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0UoIHZvaWQgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0YoKTsKK30KKworLyogcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9wcmludGZfdmFfX0UoIHhkY19TdHJpbmcgZm10LCB2YV9saXN0IF9fdmEgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRihmbXQsIF9fdmEpOworfQorCisvKiBwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIAoreworICAgIHhkY19JbnQgX19yZXQ7CisKKyAgICB2YV9saXN0IF9fdmE7IHZhX3N0YXJ0KF9fdmEsIGZtdCk7CisgICAgX19yZXQgPSB4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiBhcHJpbnRmX3ZhX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19FKCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX3ZhX19GKGZtdCwgX192YSk7Cit9CisKKy8qIGFwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfX0UoIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX2FwcmludGZfdmFfX0YoZm10LCBfX3ZhKTsKKworICAgIHZhX2VuZChfX3ZhKTsKKyAgICByZXR1cm4gX19yZXQ7Cit9CisKKy8qIHNwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgdmFfbGlzdCBfX3ZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9zcHJpbnRmX3ZhX19GKGJ1ZiwgZm10LCBfX3ZhKTsKK30KKworLyogc3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fc3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCAuLi4gKSAKK3sKKyAgICB4ZGNfSW50IF9fcmV0OworCisgICAgdmFfbGlzdCBfX3ZhOyB2YV9zdGFydChfX3ZhLCBmbXQpOworICAgIF9fcmV0ID0geGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworCisgICAgdmFfZW5kKF9fdmEpOworICAgIHJldHVybiBfX3JldDsKK30KKworLyogYXNwcmludGZfdmFfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIHZhX2xpc3QgX192YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfdmFfX0YoYnVmLCBmbXQsIF9fdmEpOworfQorCisvKiBhc3ByaW50Zl9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fYXNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgCit7CisgICAgeGRjX0ludCBfX3JldDsKKworICAgIHZhX2xpc3QgX192YTsgdmFfc3RhcnQoX192YSwgZm10KTsKKyAgICBfX3JldCA9IHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRihidWYsIGZtdCwgX192YSk7CisKKyAgICB2YV9lbmQoX192YSk7CisgICAgcmV0dXJuIF9fcmV0OworfQorCisvKiB2cHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fdnByaW50Zl9fRihmbXQsIHZhKTsKK30KKworLyogYXZwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXN0ZW1fYXZwcmludGZfX0YoZm10LCB2YSk7Cit9CisKKy8qIHZzcHJpbnRmX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRihidWYsIGZtdCwgdmEpOworfQorCisvKiBhdnNwcmludGZfX0UgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRSggeGRjX0NoYXIgYnVmW10sIHhkY19TdHJpbmcgZm10LCB4ZGNfVmFMaXN0IHZhICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0YoYnVmLCBmbXQsIHZhKTsKK30KKworLyogTW9kdWxlX3N0YXJ0dXAgKi8KK3hkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19FKCB4ZGNfSW50IHN0YXRlICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9zdGFydHVwX19GKHN0YXRlKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBGVU5DVElPTiBTVFVCUyA9PT09PT09PQorICovCisKKy8qIGNvcmRUZXh0X19FICovCit4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfQ29yZEFkZHIgY29yZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GKGNvcmQpOworfQorCisvKiByb3BlVGV4dF9fRSAqLworeGRjX1N0cmluZyB4ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19FKCB4ZGNfcnVudGltZV9UZXh0X1JvcGVJZCByb3BlICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0Yocm9wZSk7Cit9CisKKy8qIG1hdGNoUm9wZV9fRSAqLworeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSwgeGRjX1N0cmluZyBwYXQsIHhkY19JbnQqIGxlbnAgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9tYXRjaFJvcGVfX0Yocm9wZSwgcGF0LCBsZW5wKTsKK30KKworLyogcHV0TGFiX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TGFiX19FKCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiLCB4ZGNfQ2hhcioqIGJ1ZnAsIHhkY19JbnQgbGVuICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1RleHRfcHV0TGFiX19GKGxhYiwgYnVmcCwgbGVuKTsKK30KKworLyogcHV0TW9kX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19FKCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtaWQsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfVGV4dF9wdXRNb2RfX0YobWlkLCBidWZwLCBsZW4pOworfQorCisvKiBwdXRTaXRlX19FICovCit4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRSggeGRjX3J1bnRpbWVfVHlwZXNfU2l0ZSogc2l0ZSwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0Yoc2l0ZSwgYnVmcCwgbGVuKTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuR2F0ZU51bGwgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfT2JqZWN0X19jcmVhdGVfX1MgKAorICAgIHhkY19QdHIgb2EsCisgICAgeGRjX1NpemVUIG9zeiwKKyAgICBjb25zdCB4ZGNfUHRyIGFhLAorICAgIGNvbnN0IHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKG9hLCBvc3osIGFhLCAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX1BhcmFtcyksIGViKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgY29uc3QgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX1BhcmFtc19faW5pdF9fUyhkc3QsIHNyYywgcHN6LCBpc3opOworfQorCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X0hhbmRsZV9fbGFiZWxfX1MoIFB0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGVfX2xhYmVsX19TKG9iaiwgbGFiKTsKK30KKworLyogcXVlcnlfX0UgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnkocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfZW50ZXJfX0UoIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0ICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXIoKHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBsZWF2ZV9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlX19FKCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX0lBcmcga2V5ICkKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZSgoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKV9faW5zdCwga2V5KTsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5X0hlYXBQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkhlYXBTdGQgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X19fUGFyYW1zUHRyIHBhLAorICAgIHhkY19TaXplVCBwc3osCisgICAgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0hlYXBTdGRfX19QYXJhbXNQdHIpcGEsIHNpemVvZih4ZGNfcnVudGltZV9JSGVhcF9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfT2JqZWN0X19kZWxldGVfX1MoIFB0ciBpbnN0cCApIAoreworICAgIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MoaW5zdHApOworfQorCisvKiBQYXJhbXNfX2luaXRfX1MgKi8KK3ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoZHN0LCBzcmMsIHBzeiwgaXN6KTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlX19sYWJlbF9fUyggUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIGFsbG9jX19FICovCit4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfYWxsb2NfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfSUhlYXBfYWxsb2MoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QsIHNpemUsIGFsaWduLCBlYik7Cit9CisKKy8qIGZyZWVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfZnJlZV9fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApCit7CisgICAgeGRjX3J1bnRpbWVfSUhlYXBfZnJlZSgoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgYmxvY2ssIHNpemUpOworfQorCisvKiBpc0Jsb2NraW5nX19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5X2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0lIZWFwX2lzQmxvY2tpbmcoKHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSlfX2luc3QpOworfQorCisvKiBnZXRTdGF0c19fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9nZXRTdGF0c19fRSggeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkKK3sKKyAgICB4ZGNfcnVudGltZV9JSGVhcF9nZXRTdGF0cygoeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlKV9faW5zdCwgc3RhdHMpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSBQUk9YWSBCT0RZID09PT09PT09CisgKi8KKworLyogREVMRUdBVEVTIFRPIHhkYy5ydW50aW1lLkdhdGVOdWxsICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBPYmplY3RfX2NyZWF0ZV9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfX19QYXJhbXNQdHIgcGEsCisgICAgeGRjX1NpemVUIHBzeiwKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKQoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NyZWF0ZV9fUyhvYSwgb3N6LCBhYSwgKHhkY19ydW50aW1lX0dhdGVOdWxsX19fUGFyYW1zUHRyKXBhLCBzaXplb2YoeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9QYXJhbXMpLCBlYik7Cit9CisKKy8qIE9iamVjdF9fZGVsZXRlX19TICovCit2b2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X09iamVjdF9fZGVsZXRlX19TKCBQdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2RlbGV0ZV9fUyhpbnN0cCk7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLwordm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCBjb25zdCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKGRzdCwgc3JjLCBwc3osIGlzeik7Cit9CisKKy8qIEhhbmRsZV9fbGFiZWxfX1MgKi8KK3hkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGVfX2xhYmVsX19TKCBQdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyhvYmosIGxhYik7Cit9CisKKy8qIHF1ZXJ5X19FICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9xdWVyeV9fRSggeGRjX0ludCBxdWFsICkKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnkocXVhbCk7Cit9CisKKy8qIGVudGVyX19FICovCit4ZGNfSUFyZyB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9lbnRlcl9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlfSGFuZGxlIF9faW5zdCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0KTsKK30KKworLyogbGVhdmVfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlX19FKCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eV9IYW5kbGUgX19pbnN0LCB4ZGNfSUFyZyBrZXkgKQoreworICAgIHhkY19ydW50aW1lX0dhdGVOdWxsX2xlYXZlKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9IYW5kbGUpX19pbnN0LCBrZXkpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW1fU3VwcG9ydFByb3h5IFBST1hZIEJPRFkgPT09PT09PT0KKyAqLworCisvKiBERUxFR0FURVMgVE8geGRjLnJ1bnRpbWUuU3lzTWluICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUygpOworfQorCisvKiBhYm9ydF9fRSAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKQoreworICAgIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydChzdHIpOworfQorCisvKiBleGl0X19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2V4aXRfX0UoIHhkY19JbnQgc3RhdCApCit7CisgICAgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXQoc3RhdCk7Cit9CisKKy8qIGZsdXNoX19FICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fU3VwcG9ydFByb3h5X2ZsdXNoX19FKCB2b2lkICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2goKTsKK30KKworLyogcHV0Y2hfX0UgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkKK3sKKyAgICB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2goY2gpOworfQorCisvKiByZWFkeV9fRSAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9yZWFkeV9fRSggdm9pZCApCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeSgpOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBPQkpFQ1QgREVTQ1JJUFRPUiA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLwordHlwZWRlZiBzdHJ1Y3QgeyB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18gczA7IGNoYXIgYzsgfSB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1MxOworX19GQVJfXyBjb25zdCB4ZGNfcnVudGltZV9Db3JlX09iakRlc2MgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DID0geworICAgIChQdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQywgLyogZnhuVGFiICovCisgICAgJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGluaywgLyogbW9kTGluayAqLworICAgIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1MxKSAtIHNpemVvZih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QyX18pLCAvKiBvYmpBbGlnbiAqLworICAgIDAsIC8qIG9iakhlYXAgKi8KKyAgICAwLCAvKiBvYmpOYW1lICovCisgICAgc2l6ZW9mKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdDJfXyksIC8qIG9ialNpemUgKi8KKyAgICAoUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgLyogcHJtc0luaXQgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zKSwgLyogcHJtc1NpemUgKi8KK307CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBPQkpFQ1QgREVTQ1JJUFRPUiA9PT09PT09PQorICovCisKKy8qIE9iamVjdF9fREVTQ19fQyAqLwordHlwZWRlZiBzdHJ1Y3QgeyB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyBzMDsgY2hhciBjOyB9IHhkY19ydW50aW1lX0hlYXBTdGRfX19TMTsKK19fRkFSX18gY29uc3QgeGRjX3J1bnRpbWVfQ29yZV9PYmpEZXNjIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DID0geworICAgIChQdHIpJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLCAvKiBmeG5UYWIgKi8KKyAgICAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmxpbmssIC8qIG1vZExpbmsgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1MxKSAtIHNpemVvZih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdDJfXyksIC8qIG9iakFsaWduICovCisgICAgMCwgLyogb2JqSGVhcCAqLworICAgIDAsIC8qIG9iak5hbWUgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3QyX18pLCAvKiBvYmpTaXplICovCisgICAgKFB0cikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgLyogcHJtc0luaXQgKi8KKyAgICBzaXplb2YoeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMpLCAvKiBwcm1zU2l6ZSAqLworfTsKKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5Bc3NlcnQgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkVycm9yIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZU51bGwgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgCit7CisgICAgbGFiLT5oYW5kbGUgPSBvYmo7CisgICAgbGFiLT5tb2RJZCA9IDMyNzc2OworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduTGFiZWwobGFiLCAwLCAwKTsKKworICAgIHJldHVybiBsYWI7Cit9CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIHBybXMsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgCit7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25QYXJhbXNfX0kocHJtcywgKHhkY19QdHIpKHNyYyA/IHNyYyA6ICZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyksIHBzeiwgaXN6KTsKK30KKworLyogT2JqZWN0X19nZXRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2EsIHhkY19JbnQgaSApIAoreworICAgIGlmIChvYSkgeworICAgICAgICByZXR1cm4gKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfXyopb2EpICsgaTsKKyAgICB9CisKKyAgICBpZiAoeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQyA9PSAwKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiAoKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fKil4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DKSArIGk7Cit9CisKKy8qIE9iamVjdF9fZmlyc3RfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKXhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVi5oZHIubGluay5uZXh0OworCisgICAgaWYgKGlIZHIgIT0gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikmeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiBpSGRyICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19uZXh0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKCh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopb2JqKSAtIDE7CisKKyAgICBpZiAoaUhkci0+bGluay5uZXh0ICE9ICh4ZGNfcnVudGltZV9UeXBlc19MaW5rICopJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gKHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKikoaUhkci0+bGluay5uZXh0KSArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fY3JlYXRlX19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TICgKKyAgICB4ZGNfUHRyIG9hLAorICAgIHhkY19TaXplVCBvc3osCisgICAgY29uc3QgeGRjX1B0ciBhYSwKKyAgICBjb25zdCB4ZGNfcnVudGltZV9HYXRlTnVsbF9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zIHBybXM7CisgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0KiBvYmo7CisKKyAgICAvKiBjb21tb24gaW5zdGFuY2UgaW5pdGlhbGl6YXRpb24gKi8KKyAgICBvYmogPSB4ZGNfcnVudGltZV9Db3JlX2NyZWF0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCBvYSwgb3N6LCAmcHJtcywgKHhkY19QdHIpcGEsIHBzeiwgZWIpOworICAgIGlmIChvYmogPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gb2JqOworfQorCisvKiBPYmplY3RfX2Rlc3RydWN0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsIG9iaiwgTlVMTCwgLTEsIFRSVUUpOworfQorCisvKiBPYmplY3RfX2RlbGV0ZV9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DLCAqKCh4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3QqKilpbnN0cCksIE5VTEwsIC0xLCBGQUxTRSk7CisgICAgKigoeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlKilpbnN0cCkgPSBOVUxMOworfQorCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5IZWFwU3RkIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworLyogSGFuZGxlX19sYWJlbF9fUyAqLworeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSAKK3sKKyAgICBsYWItPmhhbmRsZSA9IG9iajsKKyAgICBsYWItPm1vZElkID0gMzI3ODA7CisgICAgeGRjX3J1bnRpbWVfQ29yZV9hc3NpZ25MYWJlbChsYWIsIDAsIDApOworCisgICAgcmV0dXJuIGxhYjsKK30KKworLyogUGFyYW1zX19pbml0X19TICovCit4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBwcm1zLCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfYXNzaWduUGFyYW1zX19JKHBybXMsICh4ZGNfUHRyKShzcmMgPyBzcmMgOiAmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQyksIHBzeiwgaXN6KTsKK30KKworLyogT2JqZWN0X19nZXRfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYSwgeGRjX0ludCBpICkgCit7CisgICAgaWYgKG9hKSB7CisgICAgICAgIHJldHVybiAoKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18qKW9hKSArIGk7CisgICAgfQorCisgICAgaWYgKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQyA9PSAwKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiAoKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X18qKXhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQykgKyBpOworfQorCisvKiBPYmplY3RfX2ZpcnN0X19TICovCit4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIAoreworICAgIHhkY19ydW50aW1lX1R5cGVzX0luc3RIZHIgKmlIZHIgPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKXhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WLmhkci5saW5rLm5leHQ7CisKKyAgICBpZiAoaUhkciAhPSAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKSZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVikgeworICAgICAgICByZXR1cm4gaUhkciArIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKKy8qIE9iamVjdF9fbmV4dF9fUyAqLworeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSAKK3sKKyAgICB4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICppSGRyID0gKCh4ZGNfcnVudGltZV9UeXBlc19JbnN0SGRyICopb2JqKSAtIDE7CisKKyAgICBpZiAoaUhkci0+bGluay5uZXh0ICE9ICh4ZGNfcnVudGltZV9UeXBlc19MaW5rICopJnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19yb290X19WKSB7CisgICAgICAgIHJldHVybiAoeGRjX3J1bnRpbWVfVHlwZXNfSW5zdEhkciAqKShpSGRyLT5saW5rLm5leHQpICsgMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NyZWF0ZV9fUyAoCisgICAgeGRjX1B0ciBvYSwKKyAgICB4ZGNfU2l6ZVQgb3N6LAorICAgIGNvbnN0IHhkY19QdHIgYWEsCisgICAgY29uc3QgeGRjX3J1bnRpbWVfSGVhcFN0ZF9fX1BhcmFtc1B0ciBwYSwKKyAgICB4ZGNfU2l6ZVQgcHN6LAorICAgIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApCit7CisgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXMgcHJtczsKKyAgICB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdCogb2JqOworICAgIGludCBpU3RhdDsKKworICAgIC8qIGNvbW1vbiBpbnN0YW5jZSBpbml0aWFsaXphdGlvbiAqLworICAgIG9iaiA9IHhkY19ydW50aW1lX0NvcmVfY3JlYXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgb2EsIG9zeiwgJnBybXMsICh4ZGNfUHRyKXBhLCBwc3osIGViKTsKKyAgICBpZiAob2JqID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLyogbW9kdWxlLXNwZWNpZmljIGluaXRpYWxpemF0aW9uICovCisgICAgaVN0YXQgPSB4ZGNfcnVudGltZV9IZWFwU3RkX0luc3RhbmNlX2luaXRfX0Yob2JqLCAmcHJtcywgZWIpOworICAgIGlmICh4ZGNfcnVudGltZV9FcnJvcl9jaGVjayhlYikpIHsKKyAgICAgICAgeGRjX3J1bnRpbWVfQ29yZV9kZWxldGVPYmplY3RfX0koJnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DLCBvYmosIE5VTEwsIGlTdGF0LCAoeGRjX0Jvb2wpKG9hICE9IE5VTEwpKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIG9iajsKK30KKworLyogT2JqZWN0X19kZXN0cnVjdF9fUyAqLworeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9iaiApIAoreworICAgIHhkY19ydW50aW1lX0NvcmVfZGVsZXRlT2JqZWN0X19JKCZ4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgb2JqLCBOVUxMLCAwLCBUUlVFKTsKK30KKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3hkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSAKK3sKKyAgICB4ZGNfcnVudGltZV9Db3JlX2RlbGV0ZU9iamVjdF9fSSgmeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0MsICooKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0KiopaW5zdHApLCBOVUxMLCAwLCBGQUxTRSk7CisgICAgKigoeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUqKWluc3RwKSA9IE5VTEw7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gMTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluX01vZHVsZV9HYXRlUHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX0dhdGVQcm94eV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAwOworfQoreGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHlfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gKHhkY19QdHIpJnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuTWVtb3J5IFNZU1RFTSBGVU5DVElPTlMgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeV9IZWFwUHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9IZWFwUHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMTsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN0YXJ0dXAgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIAoreworICAgIHJldHVybiAxOworfQorCisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c01pbiBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSAKK3sKKyAgICByZXR1cm4geGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVfX0YoKTsKK30KKworCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9fc3RhcnR1cERvbmVfX1MgKi8KK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19GKCk7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzdGVtX01vZHVsZV9HYXRlUHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApCit7CisgICAgcmV0dXJuIDA7Cit9Cit4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApCit7CisgICAgcmV0dXJuICh4ZGNfUHRyKSZ4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLlN5c3RlbV9TdXBwb3J0UHJveHkgU1lTVEVNIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKK3hkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkKK3sKKyAgICByZXR1cm4gMDsKK30KK3hkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKQoreworICAgIHJldHVybiAoeGRjX1B0cikmeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQzsKK30KKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuVGV4dCBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX19zdGFydHVwRG9uZV9fUyAqLworeGRjX0Jvb2wgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgCit7CisgICAgcmV0dXJuIDE7Cit9CisKKworCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQXNzZXJ0IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Bc3NlcnRfRV9hc3NlcnRGYWlsZWQgeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfQXNzZXJ0X0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Bc3NlcnRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQXNzZXJ0X1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0Fzc2VydF9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuQ29yZSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0NvcmVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zIHhkY19ydW50aW1lX0NvcmVfQV9pbml0aWFsaXplZFBhcmFtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0NvcmVfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Db3JlX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0NvcmVfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfQ29yZV9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRGVmYXVsdHMgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0RlZmF1bHRzX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RlZmF1bHRzX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RlZmF1bHRzX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RlZmF1bHRzX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5EaWFncyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWQgeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZSB4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX0RpYWdzX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0RpYWdzX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0RpYWdzX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0RpYWdzX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrX19FKCB4ZGNfU3RyaW5nIGNvbnRyb2wgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuRXJyb3IgUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmogeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG4geGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZiB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpYyB4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeSB4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0Vycm9yX3BvbGljeSB4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2sgeGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGggeGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9FcnJvcl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2Rlc3RydWN0X19TKCB4ZGNfUHRyIG9ianAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19uZXh0X19TKCB4ZGNfUHRyIG9iaiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9FcnJvcl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9FcnJvcl9Qcm94eV9fZGVsZWdhdGVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9FcnJvcl9EYXRhKiB4ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1VJbnQxNiB4ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfRXJyb3JfSWQgeGRjX3J1bnRpbWVfRXJyb3JfZ2V0SWRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRSggeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIGViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHhkY19ydW50aW1lX0Vycm9yX2dldFNpdGVfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9pbml0X19FKCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0UoIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiwgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgbW9kLCB4ZGNfU3RyaW5nIGZpbGUsIHhkY19JbnQgbGluZSwgeGRjX3J1bnRpbWVfRXJyb3JfSWQgaWQsIHhkY19JQXJnIGFyZzEsIHhkY19JQXJnIGFyZzIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuR2F0ZSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9HYXRlX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSUFyZyB4ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0UoIHhkY19JQXJnIGtleSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5HYXRlTnVsbCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfR2F0ZU51bGxfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0dhdGVOdWxsX3F1ZXJ5X19FKCB4ZGNfSW50IHF1YWwgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0lBcmcgeGRjX3J1bnRpbWVfR2F0ZU51bGxfZW50ZXJfX0UoIHhkY19ydW50aW1lX0dhdGVOdWxsX0hhbmRsZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSggeGRjX3J1bnRpbWVfR2F0ZU51bGxfSGFuZGxlLCB4ZGNfSUFyZyBrZXkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuSGVhcFN0ZCBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9FX25vUlRTTWVtb3J5IHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZSB4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemUgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRUb3RhbEZyZWVTaXplX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9IZWFwU3RkX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfSGVhcFN0ZF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0hlYXBTdGRfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSggeGRjX3J1bnRpbWVfSGVhcFN0ZF9IYW5kbGUsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0UoIHhkY19ydW50aW1lX0hlYXBTdGRfSGFuZGxlICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLkxvZyBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTG9nX0xfY29uc3RydWN0IHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2NyZWF0ZSB4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdCB4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX0xvZ19MX2RlbGV0ZSB4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9Mb2dfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX0xvZ19PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX0xvZ19QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9Mb2dfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTG9nX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9Mb2dfZG9QcmludF9fRSggeGRjX3J1bnRpbWVfTG9nX0V2ZW50UmVjKiBldlJlYyApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5NYWluIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NYWluX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01haW5fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NYWluX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWFpbl9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NYWluX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01haW5fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworI2VuZGlmCisjZW5kaWYKKworLyoKKyAqID09PT09PT09IHhkYy5ydW50aW1lLk1lbW9yeSBQUkFHTUFTID09PT09PT09CisgKi8KKworCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZCB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2UgeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9NZW1vcnlfSGFuZGxlX19sYWJlbF9fUyggeGRjX1B0ciBvYmosIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiBsYWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19kZWxldGVfX1MoIHhkY19QdHIgaW5zdHAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19maXJzdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX01lbW9yeV9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9NZW1vcnlfUHJveHlfX2Fic3RyYWN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfTWVtb3J5X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9hbGxvY19fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19TaXplVCBzaXplLCB4ZGNfU2l6ZVQgYWxpZ24sIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX01lbW9yeV9jYWxsb2NfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfU2l6ZVQgc2l6ZSwgeGRjX1NpemVUIGFsaWduLCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfUHRyIGJsb2NrLCB4ZGNfU2l6ZVQgc2l6ZSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0UoIHhkY19ydW50aW1lX0lIZWFwX0hhbmRsZSBoZWFwLCB4ZGNfcnVudGltZV9NZW1vcnlfU3RhdHMqIHN0YXRzICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX01lbW9yeV9xdWVyeV9fRSggeGRjX3J1bnRpbWVfSUhlYXBfSGFuZGxlIGhlYXAsIHhkY19JbnQgcXVhbCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU2l6ZVQgeGRjX3J1bnRpbWVfTWVtb3J5X2dldE1heERlZmF1bHRUeXBlQWxpZ25fX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9NZW1vcnlfdmFsbG9jX19FKCB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgaGVhcCwgeGRjX1NpemVUIHNpemUsIHhkY19TaXplVCBhbGlnbiwgeGRjX0NoYXIgdmFsdWUsIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBlYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TdGFydHVwIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVfX1MpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmogeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVQcm1zX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOCB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXAgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXMgeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0RnhucyB4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnMgeGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuIHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbCB4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3RhcnR1cF9zZnhuVGFiIHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0cyB4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19ydW50aW1lX1R5cGVzX0xhYmVsKiB4ZGNfcnVudGltZV9TdGFydHVwX0hhbmRsZV9fbGFiZWxfX1MoIHhkY19QdHIgb2JqLCB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogbGFiICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jcmVhdGVfX1MoIHhkY19QdHIgX19vYSwgeGRjX1NpemVUIF9fb3N6LCB4ZGNfUHRyIF9fYWEsIGNvbnN0IHhkY19VQ2hhciogX19wYSwgeGRjX1NpemVUIF9fcHN6LCB4ZGNfcnVudGltZV9FcnJvcl9CbG9jayogX19lYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZGVsZXRlX19TKCB4ZGNfUHRyIGluc3RwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2dldF9fUyggeGRjX1B0ciBvYXJyLCB4ZGNfSW50IGkgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fZmlyc3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3RhcnR1cF9QYXJhbXNfX2luaXRfX1MoIHhkY19QdHIgZHN0LCB4ZGNfUHRyIHNyYywgeGRjX1NpemVUIHBzeiwgeGRjX1NpemVUIGlzeiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX1Byb3h5X19hYnN0cmFjdF9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N0YXJ0dXBfUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TdGFydHVwX3J0c0RvbmVfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0geGRjLnJ1bnRpbWUuU3lzTWluIFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NFbmFibGVkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFzayB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjQgeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjggeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnQgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGUgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZSB4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuIHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuYyB4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c01pbl9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXNNaW5fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UoIHhkY19JbnQgc3RhdCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX3B1dGNoX19FKCB4ZGNfQ2hhciBjaCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXNNaW5fcmVhZHlfX0UoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19FKCB4ZGNfU3RyaW5nIHN0ciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0UoIHhkY19DaGFyIGNoICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRSggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5TeXN0ZW0gUFJBR01BUyA9PT09PT09PQorICovCisKKworI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2V4aXRfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ZwcmludGZfX0UpOworICAgICNwcmFnbWEgRlVOQ19FWFRfQ0FMTEVEKHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSk7CisgICAgI3ByYWdtYSBGVU5DX0VYVF9DQUxMRUQoeGRjX3J1bnRpbWVfU3lzdGVtX3ZzcHJpbnRmX19FKTsKKyAgICAjcHJhZ21hIEZVTkNfRVhUX0NBTExFRCh4ZGNfcnVudGltZV9TeXN0ZW1fYXZzcHJpbnRmX19FKTsKKyNlbmRpZgorCisjaWZkZWYgX19HTlVDX18KKyNpZiBfX0dOVUNfXyA+PSA0CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc01hc2sgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXMgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9iaiB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4biB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50IHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZyB4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzIHhkY19ydW50aW1lX1N5c3RlbV9tYXhBdGV4aXRIYW5kbGVyc19fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG4geGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIHhkY19ydW50aW1lX1N5c3RlbV9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NyZWF0ZV9fUyggeGRjX1B0ciBfX29hLCB4ZGNfU2l6ZVQgX19vc3osIHhkY19QdHIgX19hYSwgY29uc3QgeGRjX1VDaGFyKiBfX3BhLCB4ZGNfU2l6ZVQgX19wc3osIHhkY19ydW50aW1lX0Vycm9yX0Jsb2NrKiBfX2ViICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19kZXN0cnVjdF9fUyggeGRjX1B0ciBvYmpwICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fZ2V0X19TKCB4ZGNfUHRyIG9hcnIsIHhkY19JbnQgaSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fbmV4dF9fUyggeGRjX1B0ciBvYmogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX1BhcmFtc19faW5pdF9fUyggeGRjX1B0ciBkc3QsIHhkY19QdHIgc3JjLCB4ZGNfU2l6ZVQgcHN6LCB4ZGNfU2l6ZVQgaXN6ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Cb29sIHhkY19ydW50aW1lX1N5c3RlbV9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9TeXN0ZW1fUHJveHlfX2RlbGVnYXRlX19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9hYm9ydF9fRSggeGRjX1N0cmluZyBzdHIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfU3lzdGVtX2F0ZXhpdF9fRSggeGRjX3J1bnRpbWVfU3lzdGVtX0F0ZXhpdEhhbmRsZXIgaGFuZGxlciApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9TeXN0ZW1fZXhpdF9fRSggeGRjX0ludCBzdGF0ICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRSggeGRjX0NoYXIgY2ggKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfU3lzdGVtX2ZsdXNoX19FKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hcHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgLi4uICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19JbnQgeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX19FKCB4ZGNfQ2hhciBidWZbXSwgeGRjX1N0cmluZyBmbXQsIC4uLiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FKCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRSggeGRjX1N0cmluZyBmbXQsIHhkY19WYUxpc3QgdmEgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UoIHhkY19DaGFyIGJ1ZltdLCB4ZGNfU3RyaW5nIGZtdCwgeGRjX1ZhTGlzdCB2YSApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyNlbmRpZgorI2VuZGlmCisKKy8qCisgKiA9PT09PT09PSB4ZGMucnVudGltZS5UZXh0IFBSQUdNQVMgPT09PT09PT0KKyAqLworCisKKyNpZmRlZiBfX0dOVUNfXworI2lmIF9fR05VQ19fID49IDQKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9iaiB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtcyB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2lkX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQgeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44IHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuIHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY291bnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2YgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZSB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fdGFibGVfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duIHhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eSB4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpYyB4ZGNfcnVudGltZV9UZXh0X25hbWVTdGF0aWNfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkIHhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X2NoYXJUYWIgeGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiIHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQyBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgY29uc3QgQ1RfX3hkY19ydW50aW1lX1RleHRfY2hhckNudCB4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X25vZGVDbnQgeGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICBjb25zdCBDVF9feGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4geGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0MgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIGNvbnN0IENUX194ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bjIgeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogeGRjX3J1bnRpbWVfVGV4dF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfQm9vbCB4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1ZvaWQgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfVm9pZCB4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfUHRyIHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19QdHIgeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICkgX19hdHRyaWJ1dGVfXyAoKGV4dGVybmFsbHlfdmlzaWJsZSkpOworICAgIHhkY19Wb2lkIHhkY19ydW50aW1lX1RleHRfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0Jvb2wgeGRjX3J1bnRpbWVfVGV4dF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX1B0ciB4ZGNfcnVudGltZV9UZXh0X1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfY29yZFRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfQ29yZEFkZHIgY29yZCApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfU3RyaW5nIHhkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0UoIHhkY19ydW50aW1lX1RleHRfUm9wZUlkIHJvcGUgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X21hdGNoUm9wZV9fRSggeGRjX3J1bnRpbWVfVGV4dF9Sb3BlSWQgcm9wZSwgeGRjX1N0cmluZyBwYXQsIHhkY19JbnQqIGxlbnAgKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dExhYl9fRSggeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiwgeGRjX0NoYXIqKiBidWZwLCB4ZGNfSW50IGxlbiApIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKTsKKyAgICB4ZGNfSW50IHhkY19ydW50aW1lX1RleHRfcHV0TW9kX19FKCB4ZGNfcnVudGltZV9UeXBlc19Nb2R1bGVJZCBtaWQsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisgICAgeGRjX0ludCB4ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0UoIHhkY19ydW50aW1lX1R5cGVzX1NpdGUqIHNpdGUsIHhkY19DaGFyKiogYnVmcCwgeGRjX0ludCBsZW4gKSBfX2F0dHJpYnV0ZV9fICgoZXh0ZXJuYWxseV92aXNpYmxlKSk7CisjZW5kaWYKKyNlbmRpZgorCisvKgorICogPT09PT09PT0gSU5JVElBTElaQVRJT04gRU5UUlkgUE9JTlQgPT09PT09PT0KKyAqLworCitleHRlcm4gaW50IF9feGRjX19pbml0KHZvaWQpOworI2lmZGVmIF9fR05VQ19fCisjaWYgX19HTlVDX18gPj0gNAorICAgIF9fYXR0cmlidXRlX18gKChleHRlcm5hbGx5X3Zpc2libGUpKQorI2VuZGlmCisjZW5kaWYKK19fRkFSX18gaW50ICgqIHZvbGF0aWxlIF9feGRjX19pbml0X19hZGRyKSh2b2lkKSA9ICZfX3hkY19faW5pdDsKKworCisvKgorICogPT09PT09PT0gUFJPR1JBTSBHTE9CQUxTID09PT09PT09CisgKi8KKworCisvKgorICogPT09PT09PT0gQ0xJTksgRElSRUNUSVZFUyA9PT09PT09PQorICovCisKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0lNb2R1bGVfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSU1vZHVsZV9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JTW9kdWxlX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JR2F0ZVByb3ZpZGVyX0ludGVyZmFjZV9fQkFTRV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0lHYXRlUHJvdmlkZXJfSW50ZXJmYWNlX19CQVNFX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSUdhdGVQcm92aWRlcl9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lIZWFwX0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JSGVhcF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0lTeXN0ZW1TdXBwb3J0X0ludGVyZmFjZV9fQkFTRV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9JU3lzdGVtU3VwcG9ydF9JbnRlcmZhY2VfX0JBU0VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fRlhOU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19GWE5TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fRlhOU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX0ZYTlNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQXNzZXJ0X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Bc3NlcnRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQXNzZXJ0X0VfYXNzZXJ0RmFpbGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Fzc2VydF9FX2Fzc2VydEZhaWxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0NvcmVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Db3JlX0FfaW5pdGlhbGl6ZWRQYXJhbXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfQ29yZV9BX2luaXRpYWxpemVkUGFyYW1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EZWZhdWx0c19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGVmYXVsdHNfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RlZmF1bHRzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19zZXRNYXNrRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX3NldE1hc2tFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRGlhZ3NfZGljdEJhc2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9EaWFnc19kaWN0QmFzZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0RpYWdzX2RpY3RCYXNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX0VfZ2VuZXJpY19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX2dlbmVyaWNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfRV9tZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9FX21lbW9yeV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX0VfbWVtb3J5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9wb2xpY3lfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcG9saWN5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9yYWlzZUhvb2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfcmFpc2VIb29rX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0Vycm9yX21heERlcHRoX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfRXJyb3JfbWF4RGVwdGhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9FcnJvcl9tYXhEZXB0aF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX0RFU0NfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfR2F0ZU51bGxfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0dhdGVOdWxsX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9HYXRlTnVsbF9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19ERVNDX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX0RFU0NfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fREVTQ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX1BBUkFNU19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19QQVJBTVNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fUEFSQU1TX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfRV9ub1JUU01lbW9yeV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0Vfbm9SVFNNZW1vcnlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV96ZXJvU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfemVyb1NpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkVG90YWxGcmVlU2l6ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZFRvdGFsRnJlZVNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfSGVhcFN0ZF9BX2ludmFsaWRBbGlnbm1lbnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9IZWFwU3RkX0FfaW52YWxpZEFsaWdubWVudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0hlYXBTdGRfQV9pbnZhbGlkQWxpZ25tZW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2RpYWdzTWFza19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2NvbnN0cnVjdF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jb25zdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2NyZWF0ZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9jcmVhdGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVzdHJ1Y3RfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9Mb2dfTF9kZXN0cnVjdF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX0xvZ19MX2Rlc3RydWN0X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9Mb2dfTF9kZWxldGVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTG9nX0xfZGVsZXRlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fZ2F0ZVBybXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01haW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWFpbl9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01haW5fT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01haW5fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NYWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9NZW1vcnlfZGVmYXVsdEhlYXBJbnN0YW5jZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX01lbW9yeV9kZWZhdWx0SGVhcEluc3RhbmNlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfTWVtb3J5X2RlZmF1bHRIZWFwSW5zdGFuY2VfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX21heFBhc3Nlc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbWF4UGFzc2VzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9tYXhQYXNzZXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9maXJzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2ZpcnN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZmlyc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2xhc3RGeG5zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9sYXN0Rnhuc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfbGFzdEZ4bnNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9zdGFydE1vZHNGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc0Z4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX2V4ZWNJbXBsX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjSW1wbF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY0ltcGxfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blRhYl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5UYWJfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N0YXJ0dXBfc2Z4blJ0c19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TdGFydHVwX3NmeG5SdHNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fYnVmU2l6ZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9idWZTaXplX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX2J1ZlNpemVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9mbHVzaEF0RXhpdF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hBdEV4aXRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0RnVuY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c01pbl9vdXRwdXRGdW5jX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dEZ1bmNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZGlhZ3NNYXNrX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2dhdGVQcm1zX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19nYXRlUHJtc19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19pZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2lkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fc3RhcnR1cERvbmVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2NvdW50X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fY291bnRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9PYmplY3RfX3RhYmxlX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX09iamVjdF9fdGFibGVfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX0FfY2Fubm90Rml0SW50b0FyZ19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9BX2Nhbm5vdEZpdEludG9BcmdfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fQV9jYW5ub3RGaXRJbnRvQXJnX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fbWF4QXRleGl0SGFuZGxlcnNfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX21heEF0ZXhpdEhhbmRsZXJzX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9TeXN0ZW1fZXh0ZW5kRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfU3lzdGVtX2V4dGVuZEZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1N5c3RlbV9leHRlbmRGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfY2hhclRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfbm9kZVRhYl9fQSwgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0EiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0FcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0VuYWJsZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NFbmFibGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzRW5hYmxlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19kaWFnc01hc2tfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZGlhZ3NNYXNrX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2RpYWdzTWFza19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZU9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2dhdGVPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19nYXRlUHJtc19fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fZ2F0ZVBybXNfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19pZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9faWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJEZWZpbmVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyT2JqX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlck9ial9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJPYmpfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuNF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG40X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19sb2dnZXJGeG44X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X01vZHVsZV9fbG9nZ2VyRnhuOF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19zdGFydHVwRG9uZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2NvdW50X19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19jb3VudF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0MiKTsKKyAgICBhc20oIgkuc2VjdCBcIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9faGVhcF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19oZWFwX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX2hlYXBfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyNlbmRpZgorI2lmZGVmIF9fdGlfXworICAgICNwcmFnbWEgREFUQV9TRUNUSU9OKHhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X19zaXplb2ZfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlswXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X09iamVjdF9fc2l6ZW9mX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3NpemVvZl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9PYmplY3RfX3RhYmxlX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfT2JqZWN0X190YWJsZV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lVW5rbm93bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVVua25vd25fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVVbmtub3duX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZUVtcHR5X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9uYW1lRW1wdHlfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X25hbWVFbXB0eV9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9uYW1lU3RhdGljX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfbmFtZVN0YXRpY19fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9pc0xvYWRlZF9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfaXNMb2FkZWRfX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X2lzTG9hZGVkX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2NoYXJUYWJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25vZGVUYWJfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlVGFiX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X2NoYXJDbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9jaGFyQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X25vZGVDbnRfX0MsICIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DIik7CisgICAgYXNtKCIJLnNlY3QgXCIuY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMV0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF9ub2RlQ250X19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisjZW5kaWYKKyNpZmRlZiBfX3RpX18KKyAgICAjcHJhZ21hIERBVEFfU0VDVElPTih4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQywgIi5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuX19DXCIiKTsKKyAgICBhc20oIgkgLmNsaW5rIik7CisgICAgYXNtKCIJLnNlY3QgXCJbMF0uY29uc3Q6eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG5fX0NcIiIpOworICAgIGFzbSgiCSAuY2xpbmsiKTsKKyAgICBhc20oIgkuc2VjdCBcIlsxXS5jb25zdDp4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZUZ4bl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCisjaWZkZWYgX190aV9fCisgICAgI3ByYWdtYSBEQVRBX1NFQ1RJT04oeGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGVGeG4yX19DLCAiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQyIpOworICAgIGFzbSgiCS5zZWN0IFwiLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzBdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworICAgIGFzbSgiCS5zZWN0IFwiWzFdLmNvbnN0OnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlRnhuMl9fQ1wiIik7CisgICAgYXNtKCIJIC5jbGluayIpOworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jZmcgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ2NTZlOAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZwpAQCAtMCwwICsxLDQ5MSBAQAorLyoKKyAqICA9PT09PT09PSBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZyA9PT09PT09PQorICogIFRoaXMgZ2VuZXJhdGVkIGNvbmZpZ3VyYXRpb24gc2NyaXB0IHJ1bnMgdGhlIHVzZXIncyBjb25maWd1cmF0aW9uIHNjcmlwdAorICogIHRoZSBjb250ZXh0IG9mIGEgc3BlY2lmaWMgdGFyZ2V0IGFuZCBwbGF0Zm9ybSBpbiBvcmRlciB0byBnZW5lcmF0ZQorICogIGFsbCB0aGUgZmlsZXMgbmVjZXNzYXJ5IHRvIGNyZWF0ZSBhbiBleGVjdXRhYmxlOyBlLmcuLCBsaW5rZXIgY29tbWFuZAorICogIGZpbGVzLCBzdGF0aWMgQy9DKysgZGF0YSBzdHJ1Y3R1cmVzLCBldGMuCisgKi8KKworLyoKKyAqICA9PT09PT09PSBfcnVuZXNjYXBlID09PT09PT09CisgKiAgUmVjdXJzaXZlIHVuZXNjYXBlIHRvIGRlY29kZSBzZXJpYWxpemVkIHN0cmluZ3MKKyAqLworZnVuY3Rpb24gX3J1bmVzY2FwZShvYmopIHsKKyAgICBmb3IgKHZhciBpIGluIG9iaikgeworICAgICAgICBpZiAob2JqW2ldICE9IG51bGwpIHsKKyAgICAgICAgICAgIGlmICh0eXBlb2Ygb2JqW2ldID09ICdzdHJpbmcnKSB7CisgICAgICAgICAgICAgICAgb2JqW2ldID0gdW5lc2NhcGUob2JqW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBvYmpbaV0gPT0gJ29iamVjdCcpIHsKKyAgICAgICAgICAgICAgICBfcnVuZXNjYXBlKG9ialtpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiAgPT09PT09PT0gX2dldFBsYXRDZmcgPT09PT09PT0KKyAqLworZnVuY3Rpb24gX2dldFBsYXRDZmcoKSB7CisgICAgdmFyIHRtcCA9IHt9OworICAgIF9ydW5lc2NhcGUodG1wKTsKKyAgICByZXR1cm4gKHRtcCk7Cit9CisvKgorICogID09PT09PT09IF9jZmdpbml0ID09PT09PT09CisgKi8KK2Z1bmN0aW9uIF9jZmdpbml0KCkgeworICAgIHhkYy5sb2FkUGFja2FnZSgneGRjLnNlcnZpY2VzLmludGVybi5jbWQnKTsKKyAgICB2YXIgcHJvZyA9IHhkYy5vbVsneGRjLmNmZy5Qcm9ncmFtJ107CisKKyAgICAvKiBpbml0aWFsaXplIHByb2cgYXR0cnMgZnJvbSBidWlsZCBtb2RlbCAqLworICAgIHZhciBidWlsZCA9IHsKKyAgICAgICAgcmVsZWFzZXM6IHsKKyAgICAgICAgICAgIDA6IHsKKyAgICAgICAgICAgICAgICBuYW1lOiAiaGVsbG9fcGtnIiwKKyAgICAgICAgICAgICAgICBhdHRyczogeworICAgICAgICAgICAgICAgICAgICBwcmVmaXg6ICIiLAorICAgICAgICAgICAgICAgICAgICBsYWJlbDogImRlZmF1bHQiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBvdGhlckZpbGVzOiB7fQorICAgICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICB0YXJnZXQ6IHsKKyAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndyIsCisgICAgICAgICAgICBuYW1lOiAiTWluZ3ciLAorICAgICAgICAgICAgc3VmZml4OiAiODZHVyIsCisgICAgICAgICAgICBjb21wYXRpYmxlU3VmZml4ZXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvY29tcGF0aWJsZVN1ZmZpeGVzIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBpc2E6ICJ4ODYiLAorICAgICAgICAgICAgbW9kZWw6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvbW9kZWwiLAorICAgICAgICAgICAgICAgIGVuZGlhbjogImxpdHRsZSIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBvczogIldpbmRvd3MiLAorICAgICAgICAgICAgcnRzOiAiZ251LnRhcmdldHMucnRzODZHVyIsCisgICAgICAgICAgICBkbGxFeHQ6ICIuc28iLAorICAgICAgICAgICAgcGxhdGZvcm06ICJob3N0LnBsYXRmb3Jtcy5QQyIsCisgICAgICAgICAgICBwbGF0Zm9ybXM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvcGxhdGZvcm1zIiwKKyAgICAgICAgICAgICAgICAwOiAiaG9zdC5wbGF0Zm9ybXMuUEMiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdmVyc2lvbjogImdudS50YXJnZXRzLk1pbmd3JTdCMSUyQzAlMkMzLjQlMkM1IiwKKyAgICAgICAgICAgIGRlYnVnR2VuOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2RlYnVnR2VuIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBleHRlbnNpb25zOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMiLAorICAgICAgICAgICAgICAgICIuYXNtIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmFzbSciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuYXNtIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiYXNtIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmMnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmMiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jcHAiOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3BwJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5jcHAiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLmN4eCI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jeHgnIiwKKyAgICAgICAgICAgICAgICAgICAgc3VmOiAiLmN4eCIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImNwcCIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICIuQyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5DJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5DIiwKKyAgICAgICAgICAgICAgICAgICAgdHlwOiAiY3BwIgorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIi5jYyI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jYyciLAorICAgICAgICAgICAgICAgICAgICBzdWY6ICIuY2MiLAorICAgICAgICAgICAgICAgICAgICB0eXA6ICJjcHAiCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAiLnM4NkdXIjogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLnM4NkdXJyIsCisgICAgICAgICAgICAgICAgICAgIHN1ZjogIi5zODZHVyIsCisgICAgICAgICAgICAgICAgICAgIHR5cDogImFzbSIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgdmVyc2lvbk1hcDogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy92ZXJzaW9uTWFwIiwKKyAgICAgICAgICAgICAgICAiZ2NjMy4yIjogIjElMkMwJTJDMy4yJTJDMCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhbGlnbkRpcmVjdGl2ZVN1cHBvcnRlZDogZmFsc2UsCisgICAgICAgICAgICByb290RGlyOiAiZSUzQS9ydHNjL21pbmd3IiwKKyAgICAgICAgICAgIHByb2ZpbGVzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzIiwKKyAgICAgICAgICAgICAgICBkZWJ1ZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B0czogIi1nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZnM6ICItRF9ERUJVR18lM0QxIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBsaW5rT3B0czogIi1nIiwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHJlbGVhc2U6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydyZWxlYXNlJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLU8yIgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICBsaW5rT3B0czogIiIsCisgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncmVsZWFzZScvZmlsdGVycyIsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHByb2ZpbGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJyIsCisgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3Byb2ZpbGUnL2NvbXBpbGVPcHRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvcHRzOiAiLWclMjAtcGciCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIGxpbmtPcHRzOiAiLXBnIiwKKyAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgY292ZXJhZ2U6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZSciLAorICAgICAgICAgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgY29wdHM6ICItZnByb2ZpbGUtYXJjcyUyMC1mdGVzdC1jb3ZlcmFnZSIKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgbGlua09wdHM6ICIiLAorICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBzZWN0TWFwOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3NlY3RNYXAiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHN0ZEluY2x1ZGU6ICJnbnUvdGFyZ2V0cy9zdGQuaCIsCisgICAgICAgICAgICBzdGRUeXBlczogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcyIsCisgICAgICAgICAgICAgICAgdF9JQXJnOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0lBcmciLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9DaGFyOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0NoYXIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiAxLAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogMQorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9Eb3VibGU6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfRmxvYXQ6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfRmxvYXQiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9GeG46IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfRnhuIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDg6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50OCIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDEsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiAxCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDE2OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDE2IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfSW50MzI6IHsKKyAgICAgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50MzIiLAorICAgICAgICAgICAgICAgICAgICBzaXplOiA0LAorICAgICAgICAgICAgICAgICAgICBhbGlnbjogNAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdF9JbnQ0MDogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ0MCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0ludDY0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDY0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfTG9uZzogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9Mb25nIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogNCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfTERvdWJsZTogeworICAgICAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9MRG91YmxlIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMTIsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X0xMb25nOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xMb25nIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogOCwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDQKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHRfUHRyOiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1B0ciIsCisgICAgICAgICAgICAgICAgICAgIHNpemU6IDQsCisgICAgICAgICAgICAgICAgICAgIGFsaWduOiA0CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB0X1Nob3J0OiB7CisgICAgICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1Nob3J0IiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZTogMiwKKyAgICAgICAgICAgICAgICAgICAgYWxpZ246IDIKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgYml0c1BlckNoYXI6IDgsCisgICAgICAgICAgICBHQ0NWRVJTOiAiMy40LjUiLAorICAgICAgICAgICAgR0NDVEFSRzogIm1pbmd3MzIiLAorICAgICAgICAgICAgTE9OR05BTUU6ICIvYmluL21pbmd3MzItZ2NjLmV4ZSIsCisgICAgICAgICAgICBDWUdXSU46IGZhbHNlLAorICAgICAgICAgICAgYXI6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvYXIiLAorICAgICAgICAgICAgICAgIGNtZDogIiUyNCUyOHJvb3REaXIlMjkvJTI0JTI4R0NDVEFSRyUyOS9iaW4vYXIiLAorICAgICAgICAgICAgICAgIG9wdHM6ICJjciIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhck9wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvYXJPcHRzIiwKKyAgICAgICAgICAgICAgICBwcmVmaXg6ICIiLAorICAgICAgICAgICAgICAgIHN1ZmZpeDogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBsbms6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvbG5rIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICIlMjQlMjhyb290RGlyJTI5LyUyNCUyOExPTkdOQU1FJTI5IiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGxua09wdHM6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvbG5rT3B0cyIsCisgICAgICAgICAgICAgICAgcHJlZml4OiAiIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICItbHN0ZGMrKyUyMC1MJTI0JTI4cm9vdERpciUyOS9saWIiCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgY2M6IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvY2MiLAorICAgICAgICAgICAgICAgIGNtZDogIiUyNCUyOHJvb3REaXIlMjkvJTI0JTI4TE9OR05BTUUlMjklMjAtYyUyMC1NRCUyMC1NRiUyMCUyNEAuZGVwIiwKKyAgICAgICAgICAgICAgICBvcHRzOiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGNjT3B0czogeworICAgICAgICAgICAgICAgICRuYW1lOiJnbnUudGFyZ2V0cy5NaW5ndy9jY09wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIi1XdW51c2VkIiwKKyAgICAgICAgICAgICAgICBzdWZmaXg6ICItRGZhciUzRCUyMCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhc206IHsKKyAgICAgICAgICAgICAgICAkbmFtZToiZ251LnRhcmdldHMuTWluZ3cvYXNtIiwKKyAgICAgICAgICAgICAgICBjbWQ6ICIlMjQlMjhyb290RGlyJTI5LyUyNCUyOExPTkdOQU1FJTI5JTIwLWMlMjAteCUyMGFzc2VtYmxlciIsCisgICAgICAgICAgICAgICAgb3B0czogIiIKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBhc21PcHRzOiB7CisgICAgICAgICAgICAgICAgJG5hbWU6ImdudS50YXJnZXRzLk1pbmd3L2FzbU9wdHMiLAorICAgICAgICAgICAgICAgIHByZWZpeDogIiIsCisgICAgICAgICAgICAgICAgc3VmZml4OiAiIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGluY2x1ZGVPcHRzOiAiIiwKKyAgICAgICAgICAgIGNtZFByZWZpeDogIiIKKyAgICAgICAgfSwKKyAgICAgICAgdGVzdDoge30sCisgICAgICAgIGNmZ1NjcmlwdDogInByb2cuY2ZnIiwKKyAgICAgICAgcHJvZmlsZTogInJlbGVhc2UiCisgICAgfTsKKyAgICBidWlsZC50YXJnZXQuZmluZFN1ZmZpeCA9IGZ1bmN0aW9uIGZpbmRTdWZmaXgocGtnKSB7CisgICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoIDwgMSkgeworICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUaGUgZnVuY3Rpb24gSVRhcmdldC5maW5kU3VmZml4KCkgcmVxdWlyZXMgYW4gIiArICJhcmd1bWVudCIpOworICAgICAgICB9CisgICAgICAgIHZhciBzdWZmaXhNYXAgPSB7fTsKKyAgICAgICAgaWYgKCJidWlsZCIgaW4gcGtnKSB7CisgICAgICAgICAgICB2YXIgYnVpbGQgPSBwa2cuYnVpbGQ7CisgICAgICAgICAgICBpZiAoYnVpbGQubGlicmFyaWVzLmxlbmd0aCAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYkRlc2NbMF0uc3VmZml4ICE9IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJ1aWxkLmxpYkRlc2MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeE1hcFtidWlsZC5saWJEZXNjW2ldLnN1ZmZpeF0gPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYnVpbGQubGliRGVzYy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ1aWxkLmxpYkRlc2NbaV0udGFyZ2V0ID09IHByb2cuYnVpbGQudGFyZ2V0LiRuYW1lKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4TWFwW3Byb2cuYnVpbGQudGFyZ2V0LnN1ZmZpeF0gPSAiIjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICgibGVuZ3RoIiBpbiBwa2cpIHsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBrZy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBzdWZmaXhNYXBbcGtnW2ldXSA9ICIiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBbiBpbnZhbGlkIGFyZ3VtZW50IHR5cGUgc3VwcGxpZWQgdG8gIiArICJJVGFyZ2V0LmZpbmRTdWZmaXgoKSIpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHZhciBjb21wVGFyZ3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLmNvbXBhdGlibGVTdWZmaXhlcykgeworICAgICAgICAgICAgY29tcFRhcmdzW3Byb3BdID0gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXNbcHJvcF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuc3VmZml4IGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICh0aGlzLnN1ZmZpeCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBUYXJncy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcFRhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29tcFRhcmdzW2ldIGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY29tcFRhcmdzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKG51bGwpOworICAgIH07CisKKyAgICBidWlsZC50YXJnZXQuc2VsZWN0U3VmZml4ID0gZnVuY3Rpb24gc2VsZWN0U3VmZml4KGxpc3QpIHsKKyAgICAgICAgdmFyIHN1ZmZpeE1hcCA9IHt9OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN1ZmZpeE1hcFtsaXN0W2ldXSA9ICIiOworICAgICAgICB9CisgICAgICAgIHZhciBjb21wVGFyZ3MgPSBbXTsKKyAgICAgICAgZm9yICh2YXIgcHJvcCBpbiB0aGlzLmNvbXBhdGlibGVTdWZmaXhlcykgeworICAgICAgICAgICAgY29tcFRhcmdzW3Byb3BdID0gdGhpcy5jb21wYXRpYmxlU3VmZml4ZXNbcHJvcF07CisgICAgICAgIH0KKyAgICAgICAgaWYgKHRoaXMuc3VmZml4IGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgcmV0dXJuICh0aGlzLnN1ZmZpeCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBUYXJncy5sZW5ndGggPCAxKSB7CisgICAgICAgICAgICByZXR1cm4gKG51bGwpOworICAgICAgICB9CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY29tcFRhcmdzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY29tcFRhcmdzW2ldIGluIHN1ZmZpeE1hcCkgeworICAgICAgICAgICAgICAgIHJldHVybiAoY29tcFRhcmdzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKG51bGwpOworICAgIH07CisKKyAgICBfcnVuZXNjYXBlKGJ1aWxkKTsKKyAgICBidWlsZC5jZmdBcmdzID0gdW5kZWZpbmVkOworICAgIHByb2cuYnVpbGQgPSBidWlsZDsKKyAgICAKKyAgICBwcm9nLm5hbWUgPSAicHJvZy54ODZHVyI7CisKKyAgICBwcm9nLmVuZGlhbiA9IHByb2cuYnVpbGQudGFyZ2V0Lm1vZGVsLmVuZGlhbjsKKworICAgIC8qIHVzZSB0aGUgcGxhdGZvcm0gcGFja2FnZSdzIFBsYXRmb3JtIG1vZHVsZSAqLworICAgIHZhciBQbGF0Zm9ybSA9IHhkYy51c2VNb2R1bGUoImhvc3QucGxhdGZvcm1zLlBDLlBsYXRmb3JtIik7CisgICAgdmFyIHBsYXRQYXJhbXMgPSBfZ2V0UGxhdENmZygpOworICAgIGZvciAodmFyIHByb3AgaW4gcGxhdFBhcmFtcykgeworICAgICAgICBpZiAoIShwcm9wIGluIFBsYXRmb3JtLlBBUkFNUykpIHsKKyAgICAgICAgICAgIGRlbGV0ZSBwbGF0UGFyYW1zW3Byb3BdOworICAgICAgICB9CisgICAgfQorICAgIHByb2cucGxhdGZvcm1OYW1lID0gImhvc3QucGxhdGZvcm1zLlBDIjsKKyAgICBwcm9nLnBsYXRmb3JtID0gUGxhdGZvcm0uY3JlYXRlKCIiLCBfZ2V0UGxhdENmZygpLCBwbGF0UGFyYW1zKTsKKyAgICAvKiByZWNvcmQgdGhlIGV4ZWN1dGFibGUncyBwYWNrYWdlIG5hbWUgKi8KKyAgICBwcm9nLmJ1aWxkUGFja2FnZSA9ICJoZWxsby5wa2ciOworCisgICAgLyogcmVjb3JkIGJ1aWxkLW1vZGVsIGluZm9ybWF0aW9uIHJlcXVpcmVkIGR1cmluZyBjb25maWcgZ2VuZXJhdGlvbiAqLworICAgIHByb2cuJCRiaW5kKCIkJGlzYXNtIiwgMCk7CisgICAgcHJvZy4kJGJpbmQoIiQkaXNyb20iLCAwKTsKKyAgICBwcm9nLiQkYmluZCgiJCRnZW50YWIiLCBbCisgICAgXSk7CisgICAgCisgICAgLyogYmluZCBwcm9nIHRvIGFuIGFwcHJvcHJpYXRlIGV4ZWN1dGlvbiBjb250ZXh0ICovCisgICAgcHJvZy5jcHUgPSBwcm9nLnBsYXRmb3JtLmdldEV4ZUNvbnRleHQocHJvZyk7CisKKyAgICAvKiBpbXBvcnQgdGhlIHRhcmdldCdzIHJ1bi10aW1lIHN1cHBvcnQgcGtnICovCisgICAgeGRjLmxvYWRQYWNrYWdlKCJnbnUudGFyZ2V0cy5ydHM4NkdXIik7Cit9CisgICAgCisvKiBmdW5jdGlvbiB0byBpbXBvcnQgdGhlIGNmZyBzY3JpcHQncyBwYWNrYWdlICovCitmdW5jdGlvbiBfdXNlcnNjcmlwdCgkJGxlZ2FjeSwgc2NyaXB0KSB7CisgICAgdmFyIGhvbWU7CisgICAgdmFyIHNwYXRoOworICAgIC8qIGltcG9ydCB0aGUgZXhlY3V0YWJsZSdzIHBhY2thZ2UgKi8KKyAgICBob21lID0geGRjLmxvYWRQYWNrYWdlKCJoZWxsby5wa2ciKTsKKyAgICBzcGF0aCA9ICcuJzsKKyAgICAKKyAgICB4ZGMub20uJCRiaW5kKCckaG9tZXBrZycsIGhvbWUpOworCisgICAgaWYgKHNjcmlwdCAhPSBudWxsKSB7CisgICAgICAgIHV0aWxzLmV2YWx1YXRlU2NyaXB0KHNjcmlwdCk7CisgICAgfQorICAgIGVsc2UgeyAKKyAgICAgICAgLyogbG9hZCAmIHJ1biBwcm9ncmFtIGNmZyBzY3JpcHQgYW5kIG1vbml0b3IgYWxsIGxvYWRlZCBmaWxlcyAqLworICAgICAgICBfcnVuQ2ZnKCJwcm9nLmNmZyIsIHNwYXRoLCAicGFja2FnZS9jZmcvcHJvZ194ODZHVyIsICAKKyAgICAgICAgICAgICAgICAgZmFsc2UsIAorICAgICAgICAgICAgICAgICBmYWxzZSwKKyAgICAgICAgICAgICAgICAgX2dldFBsYXRDZmcoKSk7CisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCisKKyAgICAvKgorICAgICAqICA9PT09PT09PSBfcnVuQ2ZnID09PT09PT09CisgICAgICogIFJ1biBhIHVzZXIgc3VwcGxpZWQgY29uZmlndXJhdGlvbiBzY3JpcHQgYW5kIHByZXZlbnQgdXNlcidzIHNjcmlwdCBmcm9tCisgICAgICogIG92ZXJ3cml0aW5nIHRoZSBnbG9iYWwgdmFyaWFibGUgcHJvZy4KKyAgICAgKi8KKyAgICBmdW5jdGlvbiBfcnVuQ2ZnKGNmZ1NjcmlwdCwgcGF0aCwgcHJvZ3JhbU5hbWUsIGxlZ2FjeVRjZiwgbGVnYWN5Q2ZnLAorICAgICAgICBwbGF0UGFyYW1zKQorICAgIHsKKyAgICAgICAgaWYgKGxlZ2FjeVRjZikgeworICAgICAgICAgICAgLyogc2F2ZSBjdXJyZW50IGdsb2JhbCB2YXJpYWJsZXMgKi8KKyAgICAgICAgICAgIHZhciAkc2F2ZSA9IHtwcm9nOiB1dGlscy5nbG9iYWwucHJvZywgUHJvZ3JhbTogUHJvZ3JhbX07CisgICAgCisgICAgICAgICAgICAvKiBpbml0aWFsaXplIGdsb2JhbCB2YXJpYWJsZXMgZm9yIGxlZ2FjeSBjb25maWcgc2NyaXB0cyAqLworICAgICAgICAgICAgZW52aXJvbm1lbnRbImNvbmZpZy5wcm9ncmFtTmFtZSJdID0gcHJvZ3JhbU5hbWU7CisgICAgICAgICAgICBlbnZpcm9ubWVudFsiY29uZmlnLnBsYXRmb3JtIl0gPSBQcm9ncmFtLnBsYXRmb3JtTmFtZTsKKyAgICAgICAgICAgIHV0aWxzLnNlZWRQYXRoID0gZW52aXJvbm1lbnRbImNvbmZpZy5pbXBvcnRQYXRoIl07CisgICAgICAgICAgICB1dGlscy5sb2FkUGxhdGZvcm0ucGFyYW1zID0gcGxhdFBhcmFtczsKKyAgICAgICAgICAgIFByb2dyYW0gPSAkJGxlZ2FjeS5Qcm9ncmFtOyAgICAgLyogZGVmaW5lZCBpbiBjZmcudGNpICovCisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIHJ1biBsZWdhY3kgY29uZmlnIHNjcmlwdCB3aXRoIHByb2cgPT0gdG8gUlRTQyBQcm9ncmFtOyB0aGlzCisgICAgICAgICAgICAgKiBhbGxvd3MgbGVnYWN5IHNjcmlwdCB0byByZWFkIGJ1aWxkIGF0cmlidXRlcyBmcm9tIFJUU0MgbW9kZWwKKyAgICAgICAgICAgICAqIGJlZm9yZSByZS1jcmVhdGluZyB0aGUgcHJvZyBvYmplY3QKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgdXRpbHMubG9hZENhcHN1bGUoY2ZnU2NyaXB0LCBmYWxzZSwgcGF0aCk7ICAKKyAgICAKKyAgICAgICAgICAgIC8qIHJlc3RvcmUgZ2xvYmFsIHZhcmlhYmxlczsgbm93IHByb2cgPT0gVENPTSBwcm9nIGJlY2F1c2UKKyAgICAgICAgICAgICAqIHV0aWxzLmxvYWRQbGF0Zm9ybSgpIGNyZWF0ZXMgdGhlIFRDT00gcHJvZyBvYmplY3QuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICQkbGVnYWN5LnByb2cgPSB1dGlscy5nbG9iYWwucHJvZzsgIC8qIGluIGNhc2UgWERDIHdhbnRzIGl0ICovCisgICAgICAgICAgICB1dGlscy5nbG9iYWwucHJvZyA9ICRzYXZlLnByb2c7CisgICAgICAgICAgICBQcm9ncmFtID0gJHNhdmUuUHJvZ3JhbTsKKyAgICAKKyAgICAgICAgICAgIC8qIHJ1biBYREMgY29uZmlndXJhdGlvbiBzY3JpcHQsIGlmIGl0IGV4aXN0cyAqLworICAgICAgICAgICAgaWYgKGxlZ2FjeUNmZykgeworICAgICAgICAgICAgICAgIHV0aWxzLmltcG9ydEZpbGUoY2ZnU2NyaXB0LnJlcGxhY2UoL1wudGNmLywgIi5jZmciKSwgcGF0aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB1dGlscy5sb2FkQ2Fwc3VsZShjZmdTY3JpcHQsIGZhbHNlLCBwYXRoKTsKKyAgICAgICAgfQorICAgIH0KK30KKyAgICAKK2Z1bmN0aW9uIF9wb3N0aW5pdCgpIHsKKworICAgIHZhciBjb3V0ID0gbnVsbDsKKworICAgIHZhciBwcm9nID0geGRjLm9tWyd4ZGMuY2ZnLlByb2dyYW0nXTsKKyAgICAvKiBnZXQgdGhlIGV4ZWMgY29tbWFuZCBmb3IgdGhpcyBleGVjdXRhYmxlICovCisgICAgaWYgKHByb2cuZXhlY0NtZCA9PSBudWxsKSB7CisgICAgICAgIHByb2cuZXhlY0NtZCA9IHByb2cucGxhdGZvcm0uZ2V0RXhlY0NtZChwcm9nLAorICAgICAgICAgICAgeGRjLm9tWyJob3N0LnBsYXRmb3Jtcy5QQyJdLnBhY2thZ2VCYXNlKTsKKyAgICB9CisgICAgdmFyIGNvdXQgPSAiZGVmaW5lIEVYRUMuIiArIHByb2cubmFtZSArICdcblxuJzsKKyAgICBjb3V0ICs9IHByb2cuZXhlY0NtZDsKKyAgICBjb3V0ICs9ICJcbmVuZGVmXG5cbiI7CisKKyAgICB1dGlscy5nZW5EZXAoInBhY2thZ2UvY2ZnL3Byb2dfeDg2R1ciLCAiaGVsbG8ucGtnIiwgdXRpbHMubG9hZGVkRmlsZXMsIGNvdXQsIG51bGwpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuY2ZnLmRvdCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZy5kb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjYwM2MzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZy5kb3QKQEAgLTAsMCArMSwxNTYgQEAKK2RpZ3JhcGggY29uZmlndXJhdGlvbiB7CisgICAgc2l6ZT0iNy41LDEwIjsKKyAgICByYW5rZGlyPUxSOworICAgIHJhbmtzZXA9Ii41MCBlcXVhbGx5IjsKKyAgICBjb25jZW50cmF0ZT10cnVlOworICAgIGNvbXBvdW5kPXRydWU7CisgICAgbGFiZWw9IlxuQ29uZmlndXJhdGlvbiBmb3IgaGVsbG8ucGtnL3Byb2cueDg2R1ciCisgIG5vZGUgW2ZvbnQ9SGVsdmV0aWNhLCBmb250c2l6ZT0xNCwgZm9udGNvbG9yPWJsYWNrXTsgIHN1YmdyYXBoIGNsdXN0ZXIwIHtsYWJlbD0iIjsgX19jZmcgW2xhYmVsPSJwcm9nLmNmZyIsIGNvbG9yPXdoaXRlLCBmb250Y29sb3I9Ymx1ZV07CisgICAgbm9kZSBbZm9udD1IZWx2ZXRpY2EsIGZvbnRzaXplPTEwXTsgICAgc3ViZ3JhcGggY2x1c3RlcjEgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjXG4xLCAxLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMiB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfY29yZXZlcnNfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuY29yZXZlcnNcbjE2LCAwLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMyB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmdsb2JhbFxuMSwgMCwgMSIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkNsb2NrIl07CisgICAgICAgIHhkY19zZXJ2aWNlc19nbG9iYWxfX3RvcCAtPiB4ZGNfc2VydmljZXNfZ2xvYmFsX0Nsb2NrW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3NlcnZpY2VzX2dsb2JhbF9DbG9jayAtPiB4ZGNfc2VydmljZXNfZ2xvYmFsX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyNCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICB4ZGNfc2hlbGZfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuc2hlbGZcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI1IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19zcGVjX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLnNwZWNcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI2IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5feHNyX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi54c3JcbjEsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI3IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5fZ2VuX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi5nZW5cbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI4IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19zZXJ2aWNlc19pbnRlcm5fY21kX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnNlcnZpY2VzLmludGVybi5jbWRcbjEsIDAsIDAsIDAiLCBjb2xvcj13aGl0ZV07CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXI5IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19yb3ZfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucm92XG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcm92X19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgfQorICAgIHN1YmdyYXBoIGNsdXN0ZXIxMCB7CisgICAgICAgIGxhYmVsPSIiOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fdG9wIFtzaGFwZT1ib3gsbGFiZWw9Imhvc3QucGxhdGZvcm1zLlBDXG4xLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fYm90IFtzaGFwZT1wb2ludCxsYWJlbD0iIiwgc3R5bGU9aW52aXNdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19QbGF0Zm9ybSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJQbGF0Zm9ybSJdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fdG9wIC0+IGhvc3RfcGxhdGZvcm1zX1BDX1BsYXRmb3JtW3N0eWxlPWludmlzXTsKKyAgICAgICAgaG9zdF9wbGF0Zm9ybXNfUENfUGxhdGZvcm0gLT4gaG9zdF9wbGF0Zm9ybXNfUENfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIGhvc3RfcGxhdGZvcm1zX1BDX0ludGVsODA1ODYgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iSW50ZWw4MDU4NiJdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19fdG9wIC0+IGhvc3RfcGxhdGZvcm1zX1BDX0ludGVsODA1ODZbc3R5bGU9aW52aXNdOworICAgICAgICBob3N0X3BsYXRmb3Jtc19QQ19JbnRlbDgwNTg2IC0+IGhvc3RfcGxhdGZvcm1zX1BDX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTEgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3BsYXRmb3JtX190b3AgW3NoYXBlPWJveCxsYWJlbD0ieGRjLnBsYXRmb3JtXG4xLCAwLCAxLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3BsYXRmb3JtX0V4ZUNvbnRleHQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRXhlQ29udGV4dCJdOworICAgICAgICB4ZGNfcGxhdGZvcm1fX3RvcCAtPiB4ZGNfcGxhdGZvcm1fRXhlQ29udGV4dFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19wbGF0Zm9ybV9FeGVDb250ZXh0IC0+IHhkY19wbGF0Zm9ybV9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjEyIHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIHhkY19jZmdfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMuY2ZnXG4xLCAwLCAyLCAwIiwgY29sb3I9d2hpdGVdOworICAgICAgICB4ZGNfY2ZnX19ib3QgW3NoYXBlPXBvaW50LGxhYmVsPSIiLCBzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfUHJvZ3JhbSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJQcm9ncmFtIl07CisgICAgICAgIHhkY19jZmdfX3RvcCAtPiB4ZGNfY2ZnX1Byb2dyYW1bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfY2ZnX1Byb2dyYW0gLT4geGRjX2NmZ19fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX2NmZ19NYWluIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1haW4iXTsKKyAgICAgICAgeGRjX2NmZ19fdG9wIC0+IHhkY19jZmdfTWFpbltzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19jZmdfTWFpbiAtPiB4ZGNfY2ZnX19ib3Rbc3R5bGU9aW52aXNdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTMgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJ4ZGMucnVudGltZVxuMiwgMCwgMCwgMCIsIGNvbG9yPXdoaXRlXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX2JvdCBbc2hhcGU9cG9pbnQsbGFiZWw9IiIsIHN0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQXNzZXJ0IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkFzc2VydCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0Fzc2VydFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0Fzc2VydCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfQ29yZSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJDb3JlIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfQ29yZVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0NvcmUgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RlZmF1bHRzIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkRlZmF1bHRzIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfRGVmYXVsdHNbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9EZWZhdWx0cyAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRGlhZ3MgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iRGlhZ3MiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9EaWFnc1tzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0RpYWdzIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9FcnJvciBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJFcnJvciJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0Vycm9yW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfRXJyb3IgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0dhdGUgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iR2F0ZSJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0dhdGVbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9HYXRlTnVsbCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJHYXRlTnVsbCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX0dhdGVOdWxsW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfR2F0ZU51bGwgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX0xvZyBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJMb2ciXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9Mb2dbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9Mb2cgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX01haW4gW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbiJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX01haW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluIC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWVtb3J5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWVtb3J5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9IZWFwU3RkIFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IkhlYXBTdGQiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9IZWFwU3RkW3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfSGVhcFN0ZCAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3RhcnR1cCBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTdGFydHVwIl07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3RhcnR1cFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N0YXJ0dXAgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW0iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXN0ZW1bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW0gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c01pbiBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXNNaW4iXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9TeXNNaW5bc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXNNaW4gLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1RleHQgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iVGV4dCJdOworICAgICAgICB4ZGNfcnVudGltZV9fdG9wIC0+IHhkY19ydW50aW1lX1RleHRbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9UZXh0IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NYWluX01vZHVsZV9HYXRlUHJveHkgW3N0eWxlPWZpbGxlZCxmaWxsY29sb3I9bGlnaHRncmF5LCBsYWJlbD0iTWFpbl9Nb2R1bGVfR2F0ZVByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfR2F0ZVByb3h5IC0+IHhkY19ydW50aW1lX19ib3Rbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9Ik1lbW9yeV9IZWFwUHJveHkiXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfX3RvcCAtPiB4ZGNfcnVudGltZV9NZW1vcnlfSGVhcFByb3h5W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfTWVtb3J5X0hlYXBQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICAgICAgeGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eSBbc3R5bGU9ZmlsbGVkLGZpbGxjb2xvcj1saWdodGdyYXksIGxhYmVsPSJTeXN0ZW1fU3VwcG9ydFByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtX1N1cHBvcnRQcm94eVtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9TdXBwb3J0UHJveHkgLT4geGRjX3J1bnRpbWVfX2JvdFtzdHlsZT1pbnZpc107CisgICAgICAgIHhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5IFtzdHlsZT1maWxsZWQsZmlsbGNvbG9yPWxpZ2h0Z3JheSwgbGFiZWw9IlN5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5Il07CisgICAgICAgIHhkY19ydW50aW1lX190b3AgLT4geGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9HYXRlUHJveHlbc3R5bGU9aW52aXNdOworICAgICAgICB4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eSAtPiB4ZGNfcnVudGltZV9fYm90W3N0eWxlPWludmlzXTsKKyAgICB9CisgICAgc3ViZ3JhcGggY2x1c3RlcjE0IHsKKyAgICAgICAgbGFiZWw9IiI7CisgICAgICAgIGdudV90YXJnZXRzX3J0czg2R1dfX3RvcCBbc2hhcGU9Ym94LGxhYmVsPSJnbnUudGFyZ2V0cy5ydHM4NkdXXG4xLCAwLCAwLCAwIiwgY29sb3I9d2hpdGVdOworICAgIH0KKyAgICBzdWJncmFwaCBjbHVzdGVyMTUgeworICAgICAgICBsYWJlbD0iIjsKKyAgICAgICAgaGVsbG9fcGtnX190b3AgW3NoYXBlPWJveCxsYWJlbD0iaGVsbG8ucGtnXG4iLCBjb2xvcj13aGl0ZV07CisgICAgfQorICB9CisgIG5vZGUgW2ZvbnQ9SGVsdmV0aWNhLCBmb250c2l6ZT0xMF07CisgICAgZ251X3RhcmdldHNfTWluZ3dfXzFfMF8zX180XzUgW3NoYXBlPXJlY29yZCxsYWJlbD0iZ251LnRhcmdldHMuTWluZ3d8MSwwLDMuNCw1IixzdHlsZT1maWxsZWQsIGZpbGxjb2xvcj1saWdodGdyZXldOworICAgIGdudV90YXJnZXRzX3J0czg2R1dfX3RvcCAtPiBnbnVfdGFyZ2V0c19NaW5nd19fMV8wXzNfXzRfNSBbbHRhaWw9Y2x1c3RlcjE0XTsKKyAgICBnbnVfdGFyZ2V0c19NaW5nd19fMV8wXzNfXzRfNSBbc2hhcGU9cmVjb3JkLGxhYmVsPSJnbnUudGFyZ2V0cy5NaW5nd3wxLDAsMy40LDUiLHN0eWxlPWZpbGxlZCwgZmlsbGNvbG9yPWxpZ2h0Z3JleV07CisgICAgaGVsbG9fcGtnX190b3AgLT4gZ251X3RhcmdldHNfTWluZ3dfXzFfMF8zX180XzUgW2x0YWlsPWNsdXN0ZXIxNV07Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jZmcueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuY2ZnLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YzRiMjA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuY2ZnLnhtbApAQCAtMCwwICsxLDE4NDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8IS0tICBUaGlzIGZpbGUgY29uZm9ybXMgdG8gdGhlIERURCB4ZGMvY2ZnL2NvbmZpZ3VyYXRpb24uZHRkIC0tPgorPGNvbmZpZ3VyYXRpb24gbmFtZT0iaGVsbG8ucGtnL3Byb2cueDg2R1ciCisgICAgcGxhdGZvcm1OYW1lPSJob3N0LnBsYXRmb3Jtcy5QQyIKKyAgICBnbG9iYWxTZWN0aW9uPSJudWxsIgorICAgIHN5c1N0YWNrPSI0MDk2IgorICAgIHN0YWNrPSI0MDk2IgorICAgIGhlYXA9IjQwOTYiCisgICAgYXJnU2l6ZT0iNTEyIgorICAgIGV4ZWNDbWQ9Ii4vcHJvZy54ODZHVyIKKyAgICBlbmRpYW49ImxpdHRsZSIKKyAgICBjb2RlTW9kZWw9Im51bGwiCisgICAgZGF0YU1vZGVsPSJudWxsIj4KKzx0YXJnZXRzPgorICAgIDx0YXJnZXQgbmFtZT0iZ251LnRhcmdldHMuTWluZ3ciCisgICAgICAgICAgICB2ZXJzaW9uPSIxLDAsMy40LDUiCisgICAgICAgICAgICB1c2VkYnk9ImdudS50YXJnZXRzLnJ0czg2R1ciLz4KKyAgICA8dGFyZ2V0IG5hbWU9ImdudS50YXJnZXRzLk1pbmd3IgorICAgICAgICAgICAgdmVyc2lvbj0iMSwwLDMuNCw1IgorICAgICAgICAgICAgdXNlZGJ5PSJoZWxsby5wa2ciLz4KKzwvdGFyZ2V0cz4KKzxpbXBvcnRzPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYyIgdmVyc2lvbj0iMSwgMSwgMSwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5jb3JldmVycyIgdmVyc2lvbj0iMTYsIDAsIDEsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuZ2xvYmFsIiB2ZXJzaW9uPSIxLCAwLCAxIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuc2VydmljZXMuZ2xvYmFsLkNsb2NrIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImVuYWJsZSIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzaG93TWVtb3J5IiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnNlcnZpY2VzLmdsb2JhbC5UcmFjZSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNoZWxmIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLnNwZWMiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuc2VydmljZXMuaW50ZXJuLnhzciIgdmVyc2lvbj0iMSwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9InhkYy5zZXJ2aWNlcy5pbnRlcm4uZ2VuIiB2ZXJzaW9uPSIxLCAwLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnNlcnZpY2VzLmludGVybi5jbWQiIHZlcnNpb249IjEsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucm92IiB2ZXJzaW9uPSIxLCAwLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92Lk1vZGVsIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5yb3YuUHJvZ3JhbSIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlN0cnVjdHVyZURlY29kZXIiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJvdi5TdGF0ZVJlYWRlciIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucm92LlZpZXdJbmZvIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJob3N0LnBsYXRmb3Jtcy5QQyIgdmVyc2lvbj0iMSwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iaG9zdC5wbGF0Zm9ybXMuUEMuUGxhdGZvcm0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQk9BUkQiIHR5cGU9InhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uQm9hcmQiIHZhbHVlPSIlN0JpZCUzQSUyMDAlMkMlMjBib2FyZE5hbWUlM0ElMjBpbnRlbC14ODYlMkMlMjBib2FyZEZhbWlseSUzQSUyMGludGVsLXg4NiUyQyUyMGJvYXJkUmV2aXNpb24lM0ElMjBudWxsJTdEIj48c3RydWN0IGlkPSJob3N0LnBsYXRmb3Jtcy5QQy5QbGF0Zm9ybS9CT0FSRCI+DQorICA8ZmllbGQgbmFtZT0iaWQiPjA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImJvYXJkTmFtZSI+aW50ZWwteDg2PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZEZhbWlseSI+aW50ZWwteDg2PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJib2FyZFJldmlzaW9uIj5udWxsPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkNQVSIgdHlwZT0ieGRjLnBsYXRmb3JtLklFeGVDb250ZXh0LkNwdSIgdmFsdWU9IiU3QmlkJTNBJTIwMCUyQyUyMGNhdGFsb2dOYW1lJTNBJTIwaG9zdC5wbGF0Zm9ybXMuUEMlMkMlMjBkZXZpY2VOYW1lJTNBJTIwSW50ZWw4MDU4NiUyQyUyMHJldmlzaW9uJTNBJTIwJTJDJTIwY2xvY2tSYXRlJTNBJTIwMHgzZTglN0QiPjxzdHJ1Y3QgaWQ9Imhvc3QucGxhdGZvcm1zLlBDLlBsYXRmb3JtL0NQVSI+DQorICA8ZmllbGQgbmFtZT0iaWQiPjA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNhdGFsb2dOYW1lIj5ob3N0LnBsYXRmb3Jtcy5QQzwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGV2aWNlTmFtZSI+SW50ZWw4MDU4NjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icmV2aXNpb24iLz4NCisgIDxmaWVsZCBuYW1lPSJjbG9ja1JhdGUiPjB4M2U4PC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0iaG9zdC5wbGF0Zm9ybXMuUEMuSW50ZWw4MDU4NiIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMucGxhdGZvcm0iIHZlcnNpb249IjEsIDAsIDEsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5wbGF0Zm9ybS5FeGVDb250ZXh0IgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnBsYXRmb3JtLlV0aWxzIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgIDwvcGFja2FnZT4KKyAgICA8cGFja2FnZSBuYW1lPSJ4ZGMuY2ZnIiB2ZXJzaW9uPSIxLCAwLCAyLCAwIiByZXBvc2l0b3J5PSJFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvIj4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuY2ZnLlByb2dyYW0iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2VuIiB0eXBlPSJ4ZGMuY2ZnLlByb2dyYW0uR2VuZXJhdGlvbk9wdGlvbnMiIHZhbHVlPSIlN0JkZWJ1Z2dlckZpbGVzJTNBJTIwdW5kZWZpbmVkJTdEIj48c3RydWN0IGlkPSJ4ZGMuY2ZnLlByb2dyYW0vZ2VuIj4NCisgIDxmaWVsZCBuYW1lPSJkZWJ1Z2dlckZpbGVzIj51bmRlZmluZWQ8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZ2xvYmFsU2VjdGlvbiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic3lzU3RhY2siIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InN0YWNrIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJoZWFwIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI0MDk2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJhcmdTaXplIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI1MTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4ZWNDbWQiIHR5cGU9InN0cmluZyIgdmFsdWU9Ii4vcHJvZy54ODZHVyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibGlua1RlbXBsYXRlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYWluIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNlY3RNYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeXN0ZW0iIHR5cGU9InVuZGVmaW5lZCIgdmFsdWU9InVuZGVmaW5lZCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0icHJvZy54ODZHVyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVpbGRQYWNrYWdlIiB0eXBlPSJzdHJpbmciIHZhbHVlPSJoZWxsby5wa2ciLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImVuZGlhbiIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0ibGl0dGxlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb2RlTW9kZWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImRhdGFNb2RlbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVpbGQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1Qm9iamVjdCUyME9iamVjdCU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY3B1IiB0eXBlPSJ4ZGMucGxhdGZvcm0uSUV4ZUNvbnRleHQuSW5zdGFuY2UiIHZhbHVlPSIlN0JpZCUzQSUyMDAlMkMlMjBjYXRhbG9nTmFtZSUzQSUyMGhvc3QucGxhdGZvcm1zLlBDJTJDJTIwZGV2aWNlTmFtZSUzQSUyMEludGVsODA1ODYlMkMlMjByZXZpc2lvbiUzQSUyMCUyQyUyMGNsb2NrUmF0ZSUzQSUyMDB4M2U4JTJDJTIwYm9hcmQlM0ElMjAlN0JpZCUzQSUyMDAlMkMlMjBib2FyZE5hbWUlM0ElMjBpbnRlbC14ODYlMkMlMjBib2FyZEZhbWlseSUzQSUyMGludGVsLXg4NiUyQyUyMGJvYXJkUmV2aXNpb24lM0ElMjBudWxsJTdEJTJDJTIwYXR0cnMlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakAxZDBkNDViJTNBJTNBJTI4eGRjLnBsYXRmb3JtLklDcHVEYXRhU2hlZXQuSW5zdGFuY2UlMjlob3N0LnBsYXRmb3Jtcy5QQy5JbnRlbDgwNTg2Lkluc3RhbmNlJTIzMCUyQyUyMG1lbW9yeU1hcCUzQSUyMCU1QiUwQSUwQSU1RCU3RCI+PGluc3RhbmNlIGlkPSJ4ZGMucGxhdGZvcm0uRXhlQ29udGV4dC5JbnN0YW5jZSMwIj4NCisgIDxmaWVsZCBuYW1lPSJpZCI+MDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY2F0YWxvZ05hbWUiPmhvc3QucGxhdGZvcm1zLlBDPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkZXZpY2VOYW1lIj5JbnRlbDgwNTg2PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyZXZpc2lvbiIvPg0KKyAgPGZpZWxkIG5hbWU9ImNsb2NrUmF0ZSI+MHgzZTg8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImJvYXJkIj4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnBsYXRmb3JtLkV4ZUNvbnRleHQuSW5zdGFuY2UjMC9ib2FyZCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImlkIj4wPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0iYm9hcmROYW1lIj5pbnRlbC14ODY8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJib2FyZEZhbWlseSI+aW50ZWwteDg2PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0iYm9hcmRSZXZpc2lvbiI+bnVsbDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJhdHRycyI+eGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUkT2JqQDFkMGQ0NWI6Oih4ZGMucGxhdGZvcm0uSUNwdURhdGFTaGVldC5JbnN0YW5jZSlob3N0LnBsYXRmb3Jtcy5QQy5JbnRlbDgwNTg2Lkluc3RhbmNlIzA8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeU1hcCIvPg0KKzwvaW5zdGFuY2U+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwbGF0Zm9ybU5hbWUiIHR5cGU9InN0cmluZyIgdmFsdWU9Imhvc3QucGxhdGZvcm1zLlBDIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJwbGF0Zm9ybSIgdHlwZT0ieGRjLnBsYXRmb3JtLklQbGF0Zm9ybS5JbnN0YW5jZSIgdmFsdWU9IiU3QmV4dGVybmFsTWVtb3J5TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwY3VzdG9tTWVtb3J5TWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcmVuYW1lTWFwJTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwZGF0YU1lbW9yeSUzQSUyMHVuZGVmaW5lZCUyQyUyMGNvZGVNZW1vcnklM0ElMjB1bmRlZmluZWQlMkMlMjBzdGFja01lbW9yeSUzQSUyMHVuZGVmaW5lZCUyQyUyMHNlY3RNYXAlM0ElMjAlNUIlMEElMEElNUQlN0QiPjxpbnN0YW5jZSBpZD0iaG9zdC5wbGF0Zm9ybXMuUEMuUGxhdGZvcm0uSW5zdGFuY2UjMCI+DQorICA8ZmllbGQgbmFtZT0iZXh0ZXJuYWxNZW1vcnlNYXAiLz4NCisgIDxmaWVsZCBuYW1lPSJjdXN0b21NZW1vcnlNYXAiLz4NCisgIDxmaWVsZCBuYW1lPSJyZW5hbWVNYXAiLz4NCisgIDxmaWVsZCBuYW1lPSJkYXRhTWVtb3J5Ij51bmRlZmluZWQ8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImNvZGVNZW1vcnkiPnVuZGVmaW5lZDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ic3RhY2tNZW1vcnkiPnVuZGVmaW5lZDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ic2VjdE1hcCIvPg0KKzwvaW5zdGFuY2U+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJnbG9iYWwiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzeW1ib2wiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MlMjclMkMlMjAweDElNUQlMkMlMEElNUIlMjd4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyUyNyUyQyUyMDB4MSU1RCUwQSU1RCI+PG1hcCBpZD0ieGRjLmNmZy5Qcm9ncmFtL3N5bWJvbCIgbGVuZ3RoPSIyIj4NCisgIDxlbnRyeSBrZXk9InhkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0MiPjB4MTwvZW50cnk+DQorICA8ZW50cnkga2V5PSJ4ZGNfcnVudGltZV9TdGFydHVwX19SRVNFVEZYTl9fQyI+MHgxPC9lbnRyeT4NCis8L21hcD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpeGVkQ29kZUFkZHIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImZpeGVkRGF0YUFkZHIiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxvYWRGaXhlZERhdGFBZGRyIiB0eXBlPSJ1bmRlZmluZWQiIHZhbHVlPSJ1bmRlZmluZWQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImxvYWRSb20iIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMuY2ZnLk1haW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0ieGRjLnJ1bnRpbWUiIHZlcnNpb249IjIsIDAsIDAsIDAiIHJlcG9zaXRvcnk9IkU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy8iPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkFzc2VydCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkFzc2VydC9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfYXNzZXJ0RmFpbGVkIiB0eXBlPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIiB2YWx1ZT0iJTdCbXNnJTNBJTIwYXNzZXJ0aW9uJTIwZmFpbHVyZSUyNXMlMjVzJTJDJTIwY29kZSUzQSUyMDB4MCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMwIj4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPmFzc2VydGlvbiBmYWlsdXJlJXMlczwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuQ29yZSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkNvcmUvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfQ29yZV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9pbml0aWFsaXplZFBhcmFtcyIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEFfaW5pdGlhbGl6ZWRQYXJhbXMlM0ElMjB1bmluaXRpYWxpemVkJTIwUGFyYW1zJTIwc3RydWN0JTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMwIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkFfaW5pdGlhbGl6ZWRQYXJhbXM6IHVuaW5pdGlhbGl6ZWQgUGFyYW1zIHN0cnVjdDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkRlZmF1bHRzIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfRGVmYXVsdHNfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuRGlhZ3MiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5EaWFncy9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9EaWFnc19Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3MyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRU5UUlkiIHR5cGU9Im51bWJlciIgdmFsdWU9IjEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVYSVQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxJRkVDWUNMRSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iSU5URVJOQUwiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFTU0VSVCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVIxIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIyNTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVIyIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI1MTIiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVIzIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxMDI0Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMjA0OCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iVVNFUjUiIHR5cGU9Im51bWJlciIgdmFsdWU9IjQwOTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI2IiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4MTkyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJVU0VSNyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYzODQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlVTRVI4IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc2OCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQUxMIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI2NTUzNSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ic2V0TWFza0VuYWJsZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZGljdEJhc2UiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuRXJyb3IiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9FcnJvcl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3NCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTlVNQVJHUyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9nZW5lcmljIiB0eXBlPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIiB2YWx1ZT0iJTdCbXNnJTNBJTIwZ2VuZXJpYyUyMGVycm9yJTNBJTIwJTI1cyUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjMSI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5nZW5lcmljIGVycm9yOiAlczwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iY29kZSI+MHgwPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkVfbWVtb3J5IiB0eXBlPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIiB2YWx1ZT0iJTdCbXNnJTNBJTIwb3V0JTIwb2YlMjBtZW1vcnklM0ElMjBoZWFwJTNEMHglMjV4JTJDJTIwc2l6ZSUzRCUyNXUlMkMlMjBjb2RlJTNBJTIwMHgwJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5FcnJvci5EZXNjIzIiPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+b3V0IG9mIG1lbW9yeTogaGVhcD0weCV4LCBzaXplPSV1PC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icG9saWN5IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJ4ZGMucnVudGltZS5FcnJvci5VTldJTkQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJhaXNlSG9vayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im1heERlcHRoIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5HYXRlIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuR2F0ZS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9HYXRlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc1Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkdhdGVOdWxsIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlFfQkxPQ0tJTkciIHR5cGU9Im51bWJlciIgdmFsdWU9IjEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlFfUFJFRU1QVElORyIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMiIvPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Mb2ciCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Mb2cvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfTG9nX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzc3Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJOVU1BUkdTIiB0eXBlPSJudW1iZXIiIHZhbHVlPSI4Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJQUklOVEZJRCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9jb25zdHJ1Y3QiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwJTNDLS0lMjBjb25zdHJ1Y3QlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9jcmVhdGUiIHR5cGU9InhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHg0JTJDJTIwbXNnJTNBJTIwJTNDLS0lMjBjcmVhdGUlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTF9kZXN0cnVjdCIgdHlwZT0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDQlMkMlMjBtc2clM0ElMjAtLSUzRSUyMGRlc3RydWN0JTNBJTIwJTI4JTI1cCUyOSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMyIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDQ8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+LS0+IGRlc3RydWN0OiAoJXApPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkxfZGVsZXRlIiB0eXBlPSJ4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4NCUyQyUyMG1zZyUzQSUyMC0tJTNFJTIwZGVsZXRlJTNBJTIwJTI4JTI1cCUyOSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMzIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDQ8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1zZyI+LS0+IGRlbGV0ZTogKCVwKTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJpZFRvSW5mbyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3JTIzNDY4JTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfY29uc3RydWN0JTNBJTNBJTNDLS0lMjBjb25zdHJ1Y3QlM0ElMjAlMjVwJTI4JTI3JTI1cyUyNyUyOSU1RCUyQyUwQSU1QiUyNyUyMzQ5MiUyNyUyQyUyMHhkYy5ydW50aW1lLkxvZy5MX2NyZWF0ZSUzQSUzQSUzQy0tJTIwY3JlYXRlJTNBJTIwJTI1cCUyOCUyNyUyNXMlMjclMjklNUQlMkMlMEElNUIlMjclMjM1MTMlMjclMkMlMjB4ZGMucnVudGltZS5Mb2cuTF9kZXN0cnVjdCUzQSUzQS0tJTNFJTIwZGVzdHJ1Y3QlM0ElMjAlMjglMjVwJTI5JTVEJTJDJTBBJTVCJTI3JTIzNTMyJTI3JTJDJTIweGRjLnJ1bnRpbWUuTG9nLkxfZGVsZXRlJTNBJTNBLS0lM0UlMjBkZWxldGUlM0ElMjAlMjglMjVwJTI5JTVEJTBBJTVEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkxvZ2dlckJ1ZiIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5Mb2dnZXJTeXMiCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuTWFpbiIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLk1haW4vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc3OCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX0dhdGVQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuTWFpbl9Nb2R1bGVfR2F0ZVByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHgxJTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwUV9CTE9DS0lORyUzQSUyMDB4MSUyQyUyMFFfUFJFRU1QVElORyUzQSUyMDB4MiUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMWFiMmI1NSUzQSUzQSUyOHhkYy5ydW50aW1lLklHYXRlUHJvdmlkZXIuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkMlMjBhYnN0cmFjdEluc3RhbmNlcyUyNCUzQSUyMGZhbHNlJTdEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLk1lbW9yeSIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLk1lbW9yeS9jb21tb24kIj4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19BU1NFUlQiPkFMV0FZU19PTjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRU5UUlkiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VYSVQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0lOVEVSTkFMIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19MSUZFQ1lDTEUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIxIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjMiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI0Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjYiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI3Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSOCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZnhudGFiIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJnYXRlUGFyYW1zIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZUhlYXAiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlU2VjdGlvbiI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibG9nZ2VyIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtZW1vcnlQb2xpY3kiPkRFTEVURV9QT0xJQ1k8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkSW5zdGFuY2UiPmZhbHNlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZE1vZHVsZSI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0icm9tUGF0Y2hUYWJsZSI+ZmFsc2U8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlld05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElMEElNUQiPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0icm92U2hvd1Jhd1RhYiQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb25maWdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzRW5hYmxlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NJbmNsdWRlZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTYiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NNYXNrIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3NzkiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlFfQkxPQ0tJTkciIHR5cGU9Im51bWJlciIgdmFsdWU9IjEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImRlZmF1bHRIZWFwSW5zdGFuY2UiIHR5cGU9InhkYy5ydW50aW1lLklIZWFwLkluc3RhbmNlIiB2YWx1ZT0iJTdCJTdEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImRlZmF1bHRIZWFwU2l6ZSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNDA5NiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iSGVhcFByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5NZW1vcnlfSGVhcFByb3h5Lk1vZHVsZSIgdmFsdWU9IiU3QmNvbW1vbiUyNCUzQSUyMCU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCUyQyUyMHZpZXdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTBBJTVEJTJDJTIwcm92U2hvd1Jhd1RhYiUyNCUzQSUyMHRydWUlMkMlMjBjb25maWdOYW1lTWFwJTI0JTNBJTIwJTVCJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTWVtb3J5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0Lmluc3RhbmNlSGVhcCUyQyUyMGNvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24lMkMlMjBjb21tb24lMjQubWVtb3J5UG9saWN5JTJDJTIwY29tbW9uJTI0Lm5hbWVkTW9kdWxlJTJDJTIwY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UlMkMlMjBjb21tb24lMjQuZnhudGFiJTJDJTIwY29tbW9uJTI0LnJvbVBhdGNoVGFibGUlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9EaWFnbm9zdGljcyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5sb2dnZXIlMkMlMjBjb21tb24lMjQuZGlhZ3NfQVNTRVJUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VOVFJZJTJDJTIwY29tbW9uJTI0LmRpYWdzX0VYSVQlMkMlMjBjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwlMkMlMjBjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIxJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIyJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVIzJTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI0JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI1JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI2JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI3JTJDJTIwY29tbW9uJTI0LmRpYWdzX1VTRVI4JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQ29uY3VycmVuY3klMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuZ2F0ZSUyQyUyMGNvbW1vbiUyNC5nYXRlUGFyYW1zJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvTG9nJTIwRXZlbnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJMb2cuRXZlbnQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Bc3NlcnRzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJBc3NlcnQuSWQlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9FcnJvcnMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkVycm9yLklkJTVEJTdEJTVEJTBBJTVEJTJDJTIwTW9kdWxlX19kaWFnc0VuYWJsZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzSW5jbHVkZWQlM0ElMjAweDAlMkMlMjBNb2R1bGVfX2RpYWdzTWFzayUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2dhdGVPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlUHJtcyUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2lkJTNBJTIwMHgyJTJDJTIwTW9kdWxlX19sb2dnZXJEZWZpbmVkJTNBJTIwZmFsc2UlMkMlMjBNb2R1bGVfX2xvZ2dlck9iaiUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX2xvZ2dlckZ4bjQlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG44JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fc3RhcnR1cERvbmVGeG4lM0ElMjBudWxsJTJDJTIwT2JqZWN0X19jb3VudCUzQSUyMDB4MCUyQyUyME9iamVjdF9faGVhcCUzQSUyMG51bGwlMkMlMjBPYmplY3RfX3NpemVvZiUzQSUyMDB4MCUyQyUyME9iamVjdF9fdGFibGUlM0ElMjBudWxsJTJDJTIwZGVsZWdhdGUlMjQlM0ElMjB4ZGMuc2VydmljZXMuaW50ZXJuLnhzci5WYWx1ZSUyNE9iakA1NjljNjAlM0ElM0ElMjh4ZGMucnVudGltZS5JSGVhcC5Nb2R1bGUlMjl4ZGMucnVudGltZS5IZWFwU3RkJTJDJTIwYWJzdHJhY3RJbnN0YW5jZXMlMjQlM0ElMjB0cnVlJTdEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLkhlYXBNaW4iCisgICAgICAgICAgICAgICAgdXNlZD0iZmFsc2UiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuSGVhcFN0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJ0cnVlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJjb21tb24kIiB0eXBlPSJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQiIHZhbHVlPSIlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkhlYXBTdGQvY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfSGVhcFN0ZF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iRV9ub1JUU01lbW9yeSIgdHlwZT0ieGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyIgdmFsdWU9IiU3Qm1zZyUzQSUyMFRoZSUyMFJUUyUyMGhlYXAlMjBpcyUyMHVzZWQlMjB1cC4lMjBFeGFtaW5lJTIwUHJvZ3JhbS5oZWFwLiUyQyUyMGNvZGUlM0ElMjAweDAlN0QiPjxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLkVycm9yLkRlc2MjNCI+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5UaGUgUlRTIGhlYXAgaXMgdXNlZCB1cC4gRXhhbWluZSBQcm9ncmFtLmhlYXAuPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJjb2RlIj4weDA8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV96ZXJvU2l6ZSIgdHlwZT0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MiIHZhbHVlPSIlN0JtYXNrJTNBJTIwMHgxMCUyQyUyMG1zZyUzQSUyMEhlYXBTdGRfY3JlYXRlJTIwY2Fubm90JTIwaGF2ZSUyMGElMjB6ZXJvJTIwc2l6ZSUyMHZhbHVlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMyIj4NCisgIDxmaWVsZCBuYW1lPSJtYXNrIj4weDEwPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJtc2ciPkhlYXBTdGRfY3JlYXRlIGNhbm5vdCBoYXZlIGEgemVybyBzaXplIHZhbHVlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkFfaW52YWxpZFRvdGFsRnJlZVNpemUiIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBIZWFwU3RkJTIwaW5zdGFuY2UlMjB0b3RhbEZyZWVTaXplJTIwaXMlMjBncmVhdGVyJTIwdGhhbiUyMHN0YXJ0aW5nJTIwc2l6ZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMyI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5IZWFwU3RkIGluc3RhbmNlIHRvdGFsRnJlZVNpemUgaXMgZ3JlYXRlciB0aGFuIHN0YXJ0aW5nIHNpemU8L2ZpZWxkPg0KKzwvc3RydWN0PgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iQV9pbnZhbGlkQWxpZ25tZW50IiB0eXBlPSJ4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyIgdmFsdWU9IiU3Qm1hc2slM0ElMjAweDEwJTJDJTIwbXNnJTNBJTIwSGVhcFN0ZF9hbGxvYyUyMC0lMjByZXF1ZXN0ZWQlMjBhbGlnbm1lbnQlMjBpcyUyMGdyZWF0ZXIlMjB0aGFuJTIwYWxsb3dlZCU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNCI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5IZWFwU3RkX2FsbG9jIC0gcmVxdWVzdGVkIGFsaWdubWVudCBpcyBncmVhdGVyIHRoYW4gYWxsb3dlZDwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN0YXJ0dXAiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TdGFydHVwL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N0YXJ0dXBfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODEiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IkRPTkUiIHR5cGU9Im51bWJlciIgdmFsdWU9Ii0xIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJOT1RET05FIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJtYXhQYXNzZXMiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJmaXJzdEZ4bnMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJsYXN0RnhucyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJlc2V0RnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzdGFydE1vZHNGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N0YXJ0dXBfc3RhcnRNb2RzX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleGVjSW1wbCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19JIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZnhuVGFiIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMjZ4ZGNfcnVudGltZV9TeXN0ZW1fTW9kdWxlX3N0YXJ0dXBfX0UlMkMlMjAlMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UlNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InNmeG5SdHMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QnRydWUlMkMlMjB0cnVlJTVEIj48dmVjdG9yIGlkPSJ4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMiIGxlbmd0aD0iMiI+DQorICA8ZWxlbT50cnVlPC9lbGVtPg0KKyAgPGVsZW0+dHJ1ZTwvZWxlbT4NCis8L3ZlY3Rvcj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgPC9tb2R1bGU+CisgICAgICAgIDxtb2R1bGUgbmFtZT0ieGRjLnJ1bnRpbWUuU3lzdGVtIgorICAgICAgICAgICAgICAgIHVzZWQ9InRydWUiCisgICAgICAgICAgICAgICAgdXNlcz0iIj4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbW1vbiQiIHR5cGU9InhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCIgdmFsdWU9IiU3QmRpYWdzX0FTU0VSVCUzQSUyMEFMV0FZU19PTiUyQyUyMGRpYWdzX0VOVFJZJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0VYSVQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfSU5URVJOQUwlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfTElGRUNZQ0xFJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIxJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIyJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVIzJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI0JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI1JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI2JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI3JTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX1VTRVI4JTNBJTIwQUxXQVlTX09GRiUyQyUyMGZ4bnRhYiUzQSUyMHRydWUlMkMlMjBnYXRlJTNBJTIwbnVsbCUyQyUyMGdhdGVQYXJhbXMlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VIZWFwJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlU2VjdGlvbiUzQSUyMG51bGwlMkMlMjBsb2dnZXIlM0ElMjBudWxsJTJDJTIwbWVtb3J5UG9saWN5JTNBJTIwREVMRVRFX1BPTElDWSUyQyUyMG5hbWVkSW5zdGFuY2UlM0ElMjBmYWxzZSUyQyUyMG5hbWVkTW9kdWxlJTNBJTIwdHJ1ZSUyQyUyMHJvbVBhdGNoVGFibGUlM0ElMjBmYWxzZSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuU3lzdGVtL2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzayIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVQcm1zIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2lkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIzMjc4MiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJEZWZpbmVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0iZmFsc2UiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyT2JqIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjQiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuOCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19zdGFydHVwRG9uZUZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19jb3VudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19oZWFwIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3NpemVvZiIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X190YWJsZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iU1RBVFVTX1VOS05PV04iIHR5cGU9Im51bWJlciIgdmFsdWU9IjUxOTY2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJBX2Nhbm5vdEZpdEludG9BcmciIHR5cGU9InhkYy5ydW50aW1lLkFzc2VydC5EZXNjIiB2YWx1ZT0iJTdCbWFzayUzQSUyMDB4MTAlMkMlMjBtc2clM0ElMjBBX2Nhbm5vdEZpdEludG9BcmclM0ElMjBzaXplb2YlMjhGbG9hdCUyOSUyMCUzRSUyMHNpemVvZiUyOEFyZyUyOSU3RCI+PHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNSI+DQorICA8ZmllbGQgbmFtZT0ibWFzayI+MHgxMDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibXNnIj5BX2Nhbm5vdEZpdEludG9Bcmc6IHNpemVvZihGbG9hdCkgPiBzaXplb2YoQXJnKTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJleHRlbmRlZEZvcm1hdHMiIHR5cGU9InN0cmluZyIgdmFsdWU9IiUyNSUyNEwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9IlN1cHBvcnRQcm94eSIgdHlwZT0ieGRjLnJ1bnRpbWUuU3lzdGVtX1N1cHBvcnRQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4MyUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMGRlbGVnYXRlJTI0JTNBJTIweGRjLnNlcnZpY2VzLmludGVybi54c3IuVmFsdWUlMjRPYmpAMWY4YmQwZCUzQSUzQSUyOHhkYy5ydW50aW1lLklTeXN0ZW1TdXBwb3J0Lk1vZHVsZSUyOXhkYy5ydW50aW1lLlN5c01pbiU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibWF4QXRleGl0SGFuZGxlcnMiIHR5cGU9Im51bWJlciIgdmFsdWU9IjgiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImV4dGVuZEZ4biIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50ZkV4dGVuZF9fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZXhpdEZ4bnMiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfR2F0ZVByb3h5IiB0eXBlPSJ4ZGMucnVudGltZS5TeXN0ZW1fTW9kdWxlX0dhdGVQcm94eS5Nb2R1bGUiIHZhbHVlPSIlN0Jjb21tb24lMjQlM0ElMjAlN0JkaWFnc19BU1NFUlQlM0ElMjBBTFdBWVNfT04lMkMlMjBkaWFnc19FTlRSWSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19FWElUJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0lOVEVSTkFMJTNBJTIwQUxXQVlTX09GRiUyQyUyMGRpYWdzX0xJRkVDWUNMRSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSMyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNSUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNiUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSNyUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19VU0VSOCUzQSUyMEFMV0FZU19PRkYlMkMlMjBmeG50YWIlM0ElMjB0cnVlJTJDJTIwZ2F0ZSUzQSUyMG51bGwlMkMlMjBnYXRlUGFyYW1zJTNBJTIwbnVsbCUyQyUyMGluc3RhbmNlSGVhcCUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZVNlY3Rpb24lM0ElMjBudWxsJTJDJTIwbG9nZ2VyJTNBJTIwbnVsbCUyQyUyMG1lbW9yeVBvbGljeSUzQSUyMERFTEVURV9QT0xJQ1klMkMlMjBuYW1lZEluc3RhbmNlJTNBJTIwZmFsc2UlMkMlMjBuYW1lZE1vZHVsZSUzQSUyMHRydWUlMkMlMjByb21QYXRjaFRhYmxlJTNBJTIwZmFsc2UlN0QlMkMlMjB2aWV3TmFtZU1hcCUyNCUzQSUyMCU1QiUwQSUwQSU1RCUyQyUyMHJvdlNob3dSYXdUYWIlMjQlM0ElMjB0cnVlJTJDJTIwY29uZmlnTmFtZU1hcCUyNCUzQSUyMCU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCUyQyUyME1vZHVsZV9fZGlhZ3NFbmFibGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc0luY2x1ZGVkJTNBJTIwMHgwJTJDJTIwTW9kdWxlX19kaWFnc01hc2slM0ElMjBudWxsJTJDJTIwTW9kdWxlX19nYXRlT2JqJTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fZ2F0ZVBybXMlM0ElMjBudWxsJTJDJTIwTW9kdWxlX19pZCUzQSUyMDB4NCUyQyUyME1vZHVsZV9fbG9nZ2VyRGVmaW5lZCUzQSUyMGZhbHNlJTJDJTIwTW9kdWxlX19sb2dnZXJPYmolM0ElMjBudWxsJTJDJTIwTW9kdWxlX19sb2dnZXJGeG40JTNBJTIwbnVsbCUyQyUyME1vZHVsZV9fbG9nZ2VyRnhuOCUzQSUyMG51bGwlMkMlMjBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJTNBJTIwbnVsbCUyQyUyME9iamVjdF9fY291bnQlM0ElMjAweDAlMkMlMjBPYmplY3RfX2hlYXAlM0ElMjBudWxsJTJDJTIwT2JqZWN0X19zaXplb2YlM0ElMjAweDAlMkMlMjBPYmplY3RfX3RhYmxlJTNBJTIwbnVsbCUyQyUyMFFfQkxPQ0tJTkclM0ElMjAweDElMkMlMjBRX1BSRUVNUFRJTkclM0ElMjAweDIlMkMlMjBkZWxlZ2F0ZSUyNCUzQSUyMHhkYy5zZXJ2aWNlcy5pbnRlcm4ueHNyLlZhbHVlJTI0T2JqQGMzZTgyYiUzQSUzQSUyOHhkYy5ydW50aW1lLklHYXRlUHJvdmlkZXIuTW9kdWxlJTI5eGRjLnJ1bnRpbWUuR2F0ZU51bGwlMkMlMjBhYnN0cmFjdEluc3RhbmNlcyUyNCUzQSUyMGZhbHNlJTdEIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlN5c1N0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5TeXNNaW4iCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5TeXNNaW4vY29tbW9uJCI+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfQVNTRVJUIj5BTFdBWVNfT048L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0VOVFJZIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FWElUIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19JTlRFUk5BTCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfTElGRUNZQ0xFIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjIiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIzIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjUiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI2Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjgiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImZ4bnRhYiI+dHJ1ZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZSI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZ2F0ZVBhcmFtcyI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VIZWFwIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJpbnN0YW5jZVNlY3Rpb24iPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImxvZ2dlciI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibWVtb3J5UG9saWN5Ij5ERUxFVEVfUE9MSUNZPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJuYW1lZEluc3RhbmNlIj5mYWxzZTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRNb2R1bGUiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9InJvbVBhdGNoVGFibGUiPmZhbHNlPC9maWVsZD4NCis8L3N0cnVjdD4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InZpZXdOYW1lTWFwJCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTBBJTBBJTVEIj4KKyAgICAgICAgICAgIDwvZmVhdHVyZT4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9InJvdlNob3dSYXdUYWIkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29uZmlnTmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSU1QiUyN3hkYy5ydW50aW1lL01lbW9yeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5pbnN0YW5jZUhlYXAlMkMlMjBjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJTJDJTIwY29tbW9uJTI0Lm1lbW9yeVBvbGljeSUyQyUyMGNvbW1vbiUyNC5uYW1lZE1vZHVsZSUyQyUyMGNvbW1vbiUyNC5uYW1lZEluc3RhbmNlJTJDJTIwY29tbW9uJTI0LmZ4bnRhYiUyQyUyMGNvbW1vbiUyNC5yb21QYXRjaFRhYmxlJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQubG9nZ2VyJTJDJTIwY29tbW9uJTI0LmRpYWdzX0FTU0VSVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19FTlRSWSUyQyUyMGNvbW1vbiUyNC5kaWFnc19FWElUJTJDJTIwY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJTJDJTIwY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSMyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNCUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNSUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNiUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSNyUyQyUyMGNvbW1vbiUyNC5kaWFnc19VU0VSOCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmdhdGUlMkMlMjBjb21tb24lMjQuZ2F0ZVBhcmFtcyU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0xvZyUyMEV2ZW50cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCTG9nLkV2ZW50JTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvQXNzZXJ0cyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCQXNzZXJ0LklkJTVEJTdEJTVEJTJDJTBBJTVCJTI3eGRjLnJ1bnRpbWUvRXJyb3JzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBpbnN0YW5jZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJFcnJvci5JZCU1RCU3RCU1RCUwQSU1RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0VuYWJsZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjE2Ii8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2RpYWdzTWFzayIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2dhdGVPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZVBybXMiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9faWQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjMyNzgzIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckRlZmluZWQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJmYWxzZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJPYmoiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRnhuNCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG44IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2NvdW50IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX2hlYXAiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fc2l6ZW9mIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIwIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJPYmplY3RfX3RhYmxlIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZWaWV3SW5mbyIgdHlwZT0ieGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSIgdmFsdWU9IiU3QnZpZXdNYXAlM0ElMjAlNUIlMEElNUIlMjdNb2R1bGUlMjclMkMlMjAlN0J0eXBlJTNBJTIwTU9EVUxFJTJDJTIwdmlld0luaXRGeG4lM0ElMjB2aWV3SW5pdE1vZHVsZSUyQyUyMHN0cnVjdE5hbWUlM0ElMjBNb2R1bGVWaWV3JTdEJTVEJTJDJTBBJTVCJTI3T3V0cHV0QnVmZmVyJTI3JTJDJTIwJTdCdHlwZSUzQSUyME1PRFVMRV9EQVRBJTJDJTIwdmlld0luaXRGeG4lM0ElMjB2aWV3SW5pdE91dHB1dEJ1ZmZlciUyQyUyMHN0cnVjdE5hbWUlM0ElMjBCdWZmZXJFbnRyeVZpZXclN0QlNUQlMEElNUQlMkMlMjBzaG93UmF3VGFiJTNBJTIwdHJ1ZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iYnVmU2l6ZSIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMTAyNCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iZmx1c2hBdEV4aXQiIHR5cGU9ImJvb2xlYW4iIHZhbHVlPSJ0cnVlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJzZWN0aW9uTmFtZSIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ib3V0cHV0RnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJvdXRwdXRGdW5jIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9TeXNNaW5fb3V0cHV0X19JIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRleHQiCisgICAgICAgICAgICAgICAgdXNlZD0idHJ1ZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY29tbW9uJCIgdHlwZT0ieGRjLnJ1bnRpbWUuVHlwZXMuQ29tbW9uJTI0IiB2YWx1ZT0iJTdCZGlhZ3NfQVNTRVJUJTNBJTIwQUxXQVlTX09OJTJDJTIwZGlhZ3NfRU5UUlklM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfRVhJVCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19JTlRFUk5BTCUzQSUyMEFMV0FZU19PRkYlMkMlMjBkaWFnc19MSUZFQ1lDTEUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjElM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjIlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjMlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjQlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjUlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjYlM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjclM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZGlhZ3NfVVNFUjglM0ElMjBBTFdBWVNfT0ZGJTJDJTIwZnhudGFiJTNBJTIwdHJ1ZSUyQyUyMGdhdGUlM0ElMjBudWxsJTJDJTIwZ2F0ZVBhcmFtcyUzQSUyMG51bGwlMkMlMjBpbnN0YW5jZUhlYXAlM0ElMjBudWxsJTJDJTIwaW5zdGFuY2VTZWN0aW9uJTNBJTIwbnVsbCUyQyUyMGxvZ2dlciUzQSUyMG51bGwlMkMlMjBtZW1vcnlQb2xpY3klM0ElMjBERUxFVEVfUE9MSUNZJTJDJTIwbmFtZWRJbnN0YW5jZSUzQSUyMGZhbHNlJTJDJTIwbmFtZWRNb2R1bGUlM0ElMjB0cnVlJTJDJTIwcm9tUGF0Y2hUYWJsZSUzQSUyMGZhbHNlJTdEIj48c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQiPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0FTU0VSVCI+QUxXQVlTX09OPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19FTlRSWSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfRVhJVCI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfSU5URVJOQUwiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX0xJRkVDWUNMRSI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjEiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVIyIj5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSMyI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjQiPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI1Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJkaWFnc19VU0VSNiI+QUxXQVlTX09GRjwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iZGlhZ3NfVVNFUjciPkFMV0FZU19PRkY8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImRpYWdzX1VTRVI4Ij5BTFdBWVNfT0ZGPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJmeG50YWIiPnRydWU8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGUiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9ImdhdGVQYXJhbXMiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Imluc3RhbmNlSGVhcCI+bnVsbDwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0iaW5zdGFuY2VTZWN0aW9uIj5udWxsPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJsb2dnZXIiPm51bGw8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im1lbW9yeVBvbGljeSI+REVMRVRFX1BPTElDWTwvZmllbGQ+DQorICA8ZmllbGQgbmFtZT0ibmFtZWRJbnN0YW5jZSI+ZmFsc2U8L2ZpZWxkPg0KKyAgPGZpZWxkIG5hbWU9Im5hbWVkTW9kdWxlIj50cnVlPC9maWVsZD4NCisgIDxmaWVsZCBuYW1lPSJyb21QYXRjaFRhYmxlIj5mYWxzZTwvZmllbGQ+DQorPC9zdHJ1Y3Q+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJ2aWV3TmFtZU1hcCQiIHR5cGU9Im9iamVjdCIgdmFsdWU9IiU1QiUwQSUwQSU1RCI+CisgICAgICAgICAgICA8L2ZlYXR1cmU+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJyb3ZTaG93UmF3VGFiJCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9InRydWUiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImNvbmZpZ05hbWVNYXAkIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlNUIlMEElNUIlMjd4ZGMucnVudGltZS9NZW1vcnklMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMG1vZHVsZSUyQyUyMHZpZXdGeG4lM0ElMjB1bmRlZmluZWQlMkMlMjBmaWVsZHMlM0ElMjAlNUJjb21tb24lMjQuaW5zdGFuY2VIZWFwJTJDJTIwY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbiUyQyUyMGNvbW1vbiUyNC5tZW1vcnlQb2xpY3klMkMlMjBjb21tb24lMjQubmFtZWRNb2R1bGUlMkMlMjBjb21tb24lMjQubmFtZWRJbnN0YW5jZSUyQyUyMGNvbW1vbiUyNC5meG50YWIlMkMlMjBjb21tb24lMjQucm9tUGF0Y2hUYWJsZSU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJTI3JTJDJTIwJTdCdmlld1R5cGUlM0ElMjBtb2R1bGUlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCY29tbW9uJTI0LmxvZ2dlciUyQyUyMGNvbW1vbiUyNC5kaWFnc19BU1NFUlQlMkMlMjBjb21tb24lMjQuZGlhZ3NfRU5UUlklMkMlMjBjb21tb24lMjQuZGlhZ3NfRVhJVCUyQyUyMGNvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCUyQyUyMGNvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjElMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjIlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjMlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjQlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjUlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjYlMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjclMkMlMjBjb21tb24lMjQuZGlhZ3NfVVNFUjglNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Db25jdXJyZW5jeSUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwbW9kdWxlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QmNvbW1vbiUyNC5nYXRlJTJDJTIwY29tbW9uJTI0LmdhdGVQYXJhbXMlNUQlN0QlNUQlMkMlMEElNUIlMjd4ZGMucnVudGltZS9Mb2clMjBFdmVudHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkxvZy5FdmVudCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Fzc2VydHMlMjclMkMlMjAlN0J2aWV3VHlwZSUzQSUyMGluc3RhbmNlJTJDJTIwdmlld0Z4biUzQSUyMHVuZGVmaW5lZCUyQyUyMGZpZWxkcyUzQSUyMCU1QkFzc2VydC5JZCU1RCU3RCU1RCUyQyUwQSU1QiUyN3hkYy5ydW50aW1lL0Vycm9ycyUyNyUyQyUyMCU3QnZpZXdUeXBlJTNBJTIwaW5zdGFuY2UlMkMlMjB2aWV3RnhuJTNBJTIwdW5kZWZpbmVkJTJDJTIwZmllbGRzJTNBJTIwJTVCRXJyb3IuSWQlNUQlN0QlNUQlMEElNUQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZGlhZ3NFbmFibGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc0luY2x1ZGVkIiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNiIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19kaWFnc01hc2siIHR5cGU9Im9iamVjdCIgdmFsdWU9IiUyNnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2siLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fZ2F0ZU9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19nYXRlUHJtcyIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19pZCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iMzI3ODQiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fbG9nZ2VyRGVmaW5lZCIgdHlwZT0iYm9vbGVhbiIgdmFsdWU9ImZhbHNlIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlck9iaiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iTW9kdWxlX19sb2dnZXJGeG40IiB0eXBlPSJvYmplY3QiIHZhbHVlPSJudWxsIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJNb2R1bGVfX2xvZ2dlckZ4bjgiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik1vZHVsZV9fc3RhcnR1cERvbmVGeG4iIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fY291bnQiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9faGVhcCIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0ibnVsbCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iT2JqZWN0X19zaXplb2YiIHR5cGU9Im51bWJlciIgdmFsdWU9IjAiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Ik9iamVjdF9fdGFibGUiIHR5cGU9Im9iamVjdCIgdmFsdWU9Im51bGwiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVVbmtub3duIiB0eXBlPSJzdHJpbmciIHZhbHVlPSIlN0J1bmtub3duLWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9Im5hbWVFbXB0eSIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCZW1wdHktaW5zdGFuY2UtbmFtZSU3RCIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibmFtZVN0YXRpYyIgdHlwZT0ic3RyaW5nIiB2YWx1ZT0iJTdCc3RhdGljLWluc3RhbmNlLW5hbWUlN0QiLz4KKyAgICAgICAgICAgIDxmZWF0dXJlIG5hbWU9ImlzTG9hZGVkIiB0eXBlPSJib29sZWFuIiB2YWx1ZT0idHJ1ZSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2hhclRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCMHgwJTJDJTIwMHg0MSUyQyUyMDB4NWYlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4NTAlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHg3MyUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NmUlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjklMkMlMjAweDc0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDUwJTJDJTIwMHg2MSUyQyUyMDB4NzIlMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDcyJTJDJTIwMHg3NSUyQyUyMDB4NjMlMkMlMjAweDc0JTJDJTIwMHgwJTJDJTIwMHg0OCUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3MCUyQyUyMDB4NGQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2ZSUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg3NiUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4MjAlMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDZmJTJDJTIwMHgyMCUyQyUyMDB4NzMlMkMlMjAweDY5JTJDJTIwMHg3YSUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NiUyQyUyMDB4NjElMkMlMjAweDZjJTJDJTIwMHg3NSUyQyUyMDB4NjUlMkMlMjAweDAlMkMlMjAweDQ4JTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDcwJTJDJTIwMHg1MyUyQyUyMDB4NzQlMkMlMjAweDY0JTJDJTIwMHg1ZiUyQyUyMDB4NjMlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDIwJTJDJTIwMHg2OCUyQyUyMDB4NjElMkMlMjAweDc2JTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHgyMCUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDc2JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDZlJTJDJTIwMHg2MyUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NmYlMkMlMjAweDc0JTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDQ2JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDY1JTJDJTIwMHg1MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg3MyUyQyUyMDB4MjAlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjUlMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHgyMCUyQyUyMDB4NzQlMkMlMjAweDY4JTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NzQlMkMlMjAweDYxJTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NjclMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDVmJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHg2ZiUyQyUyMDB4NjMlMkMlMjAweDIwJTJDJTIwMHgyZCUyQyUyMDB4MjAlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NzElMkMlMjAweDc1JTJDJTIwMHg2NSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NjQlMkMlMjAweDIwJTJDJTIwMHg2MSUyQyUyMDB4NmMlMkMlMjAweDY5JTJDJTIwMHg2NyUyQyUyMDB4NmUlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDc0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDczJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4NzIlMkMlMjAweDIwJTJDJTIwMHg3NCUyQyUyMDB4NjglMkMlMjAweDYxJTJDJTIwMHg2ZSUyQyUyMDB4MjAlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg3NyUyQyUyMDB4NjUlMkMlMjAweDY0JTJDJTIwMHgwJTJDJTIwMHg0MSUyQyUyMDB4NWYlMkMlMjAweDYzJTJDJTIwMHg2MSUyQyUyMDB4NmUlMkMlMjAweDZlJTJDJTIwMHg2ZiUyQyUyMDB4NzQlMkMlMjAweDQ2JTJDJTIwMHg2OSUyQyUyMDB4NzQlMkMlMjAweDQ5JTJDJTIwMHg2ZSUyQyUyMDB4NzQlMkMlMjAweDZmJTJDJTIwMHg0MSUyQyUyMDB4NzIlMkMlMjAweDY3JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDczJTJDJTIwMHg2OSUyQyUyMDB4N2ElMkMlMjAweDY1JTJDJTIwMHg2ZiUyQyUyMDB4NjYlMkMlMjAweDI4JTJDJTIwMHg0NiUyQyUyMDB4NmMlMkMlMjAweDZmJTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDI5JTJDJTIwMHgyMCUyQyUyMDB4M2UlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4NmYlMkMlMjAweDY2JTJDJTIwMHgyOCUyQyUyMDB4NDElMkMlMjAweDcyJTJDJTIwMHg2NyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDYxJTJDJTIwMHg3MyUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDY5JTJDJTIwMHg2ZiUyQyUyMDB4NmUlMkMlMjAweDIwJTJDJTIwMHg2NiUyQyUyMDB4NjElMkMlMjAweDY5JTJDJTIwMHg2YyUyQyUyMDB4NzUlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDY3JTJDJTIwMHg2NSUyQyUyMDB4NmUlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NjklMkMlMjAweDYzJTJDJTIwMHgyMCUyQyUyMDB4NjUlMkMlMjAweDcyJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NmYlMkMlMjAweDc1JTJDJTIwMHg3NCUyQyUyMDB4MjAlMkMlMjAweDZmJTJDJTIwMHg2NiUyQyUyMDB4MjAlMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4NmQlMkMlMjAweDZmJTJDJTIwMHg3MiUyQyUyMDB4NzklMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDNkJTJDJTIwMHgzMCUyQyUyMDB4NzglMkMlMjAweDI1JTJDJTIwMHg3OCUyQyUyMDB4MmMlMkMlMjAweDIwJTJDJTIwMHg3MyUyQyUyMDB4NjklMkMlMjAweDdhJTJDJTIwMHg2NSUyQyUyMDB4M2QlMkMlMjAweDI1JTJDJTIwMHg3NSUyQyUyMDB4MCUyQyUyMDB4NjYlMkMlMjAweDcyJTJDJTIwMHg2NSUyQyUyMDB4NjUlMkMlMjAweDI4JTJDJTIwMHgyOSUyQyUyMDB4MjAlMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4NzYlMkMlMjAweDYxJTJDJTIwMHg2YyUyQyUyMDB4NjklMkMlMjAweDY0JTJDJTIwMHgyMCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgyMCUyQyUyMDB4NjclMkMlMjAweDcyJTJDJTIwMHg2ZiUyQyUyMDB4NzclMkMlMjAweDc0JTJDJTIwMHg2OCUyQyUyMDB4MmQlMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4NmMlMkMlMjAweDc5JTJDJTIwMHgyMCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDRkJTJDJTIwMHg2OSUyQyUyMDB4NmUlMkMlMjAweDAlMkMlMjAweDU0JTJDJTIwMHg2OCUyQyUyMDB4NjUlMkMlMjAweDIwJTJDJTIwMHg1MiUyQyUyMDB4NTQlMkMlMjAweDUzJTJDJTIwMHgyMCUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDIwJTJDJTIwMHg2OSUyQyUyMDB4NzMlMkMlMjAweDIwJTJDJTIwMHg3NSUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg2NCUyQyUyMDB4MjAlMkMlMjAweDc1JTJDJTIwMHg3MCUyQyUyMDB4MmUlMkMlMjAweDIwJTJDJTIwMHg0NSUyQyUyMDB4NzglMkMlMjAweDYxJTJDJTIwMHg2ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHg2NSUyQyUyMDB4MjAlMkMlMjAweDUwJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDY3JTJDJTIwMHg3MiUyQyUyMDB4NjElMkMlMjAweDZkJTJDJTIwMHgyZSUyQyUyMDB4NjglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHgzYyUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgyMCUyQyUyMDB4NjMlMkMlMjAweDZmJTJDJTIwMHg2ZSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyNSUyQyUyMDB4NzAlMkMlMjAweDI4JTJDJTIwMHgyNyUyQyUyMDB4MjUlMkMlMjAweDczJTJDJTIwMHgyNyUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDNjJTJDJTIwMHgyZCUyQyUyMDB4MmQlMkMlMjAweDIwJTJDJTIwMHg2MyUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzQlMkMlMjAweDY1JTJDJTIwMHgzYSUyQyUyMDB4MjAlMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjglMkMlMjAweDI3JTJDJTIwMHgyNSUyQyUyMDB4NzMlMkMlMjAweDI3JTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDY0JTJDJTIwMHg2NSUyQyUyMDB4NzMlMkMlMjAweDc0JTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDYzJTJDJTIwMHg3NCUyQyUyMDB4M2ElMkMlMjAweDIwJTJDJTIwMHgyOCUyQyUyMDB4MjUlMkMlMjAweDcwJTJDJTIwMHgyOSUyQyUyMDB4MCUyQyUyMDB4MmQlMkMlMjAweDJkJTJDJTIwMHgzZSUyQyUyMDB4MjAlMkMlMjAweDY0JTJDJTIwMHg2NSUyQyUyMDB4NmMlMkMlMjAweDY1JTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDNhJTJDJTIwMHgyMCUyQyUyMDB4MjglMkMlMjAweDI1JTJDJTIwMHg3MCUyQyUyMDB4MjklMkMlMjAweDAlMkMlMjAweDc4JTJDJTIwMHg2NCUyQyUyMDB4NjMlMkMlMjAweDJlJTJDJTIwMHgwJTJDJTIwMHg3MiUyQyUyMDB4NzUlMkMlMjAweDZlJTJDJTIwMHg3NCUyQyUyMDB4NjklMkMlMjAweDZkJTJDJTIwMHg2NSUyQyUyMDB4MmUlMkMlMjAweDAlMkMlMjAweDQxJTJDJTIwMHg3MyUyQyUyMDB4NzMlMkMlMjAweDY1JTJDJTIwMHg3MiUyQyUyMDB4NzQlMkMlMjAweDAlMkMlMjAweDQzJTJDJTIwMHg2ZiUyQyUyMDB4NzIlMkMlMjAweDY1JTJDJTIwMHgwJTJDJTIwMHg0NCUyQyUyMDB4NjUlMkMlMjAweDY2JTJDJTIwMHg2MSUyQyUyMDB4NzUlMkMlMjAweDZjJTJDJTIwMHg3NCUyQyUyMDB4NzMlMkMlMjAweDAlMkMlMjAweDQ0JTJDJTIwMHg2OSUyQyUyMDB4NjElMkMlMjAweDY3JTJDJTIwMHg3MyUyQyUyMDB4MCUyQyUyMDB4NDUlMkMlMjAweDcyJTJDJTIwMHg3MiUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHgwJTJDJTIwMHg0NyUyQyUyMDB4NjElMkMlMjAweDc0JTJDJTIwMHg2NSUyQyUyMDB4MCUyQyUyMDB4NDclMkMlMjAweDYxJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDRlJTJDJTIwMHg3NSUyQyUyMDB4NmMlMkMlMjAweDZjJTJDJTIwMHgwJTJDJTIwMHg0YyUyQyUyMDB4NmYlMkMlMjAweDY3JTJDJTIwMHgwJTJDJTIwMHg0ZCUyQyUyMDB4NjElMkMlMjAweDY5JTJDJTIwMHg2ZSUyQyUyMDB4MCUyQyUyMDB4NGQlMkMlMjAweDY1JTJDJTIwMHg2ZCUyQyUyMDB4NmYlMkMlMjAweDcyJTJDJTIwMHg3OSUyQyUyMDB4MCUyQyUyMDB4NDglMkMlMjAweDY1JTJDJTIwMHg2MSUyQyUyMDB4NzAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjQlMkMlMjAweDAlMkMlMjAweDUzJTJDJTIwMHg3NCUyQyUyMDB4NjElMkMlMjAweDcyJTJDJTIwMHg3NCUyQyUyMDB4NzUlMkMlMjAweDcwJTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzklMkMlMjAweDczJTJDJTIwMHg3NCUyQyUyMDB4NjUlMkMlMjAweDZkJTJDJTIwMHgwJTJDJTIwMHg1MyUyQyUyMDB4NzklMkMlMjAweDczJTJDJTIwMHg0ZCUyQyUyMDB4NjklMkMlMjAweDZlJTJDJTIwMHgwJTJDJTIwMHg1NCUyQyUyMDB4NjUlMkMlMjAweDc4JTJDJTIwMHg3NCUyQyUyMDB4MCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9jaGFyVGFiIiBsZW5ndGg9IjY2MSI+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg1MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDdhPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDg8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDVmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njg8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4NWY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MTwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDc3PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg1ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NDY8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NDk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDQxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3YTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDQ2PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Mjk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgzZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHg0MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDY2PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4M2Q8L2VsZW0+DQorICA8ZWxlbT4weDMwPC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDc4PC9lbGVtPg0KKyAgPGVsZW0+MHgyYzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4N2E8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgzZDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3NjwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZjPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2NzwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3NzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4Nzk8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NGQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2ZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTQ8L2VsZW0+DQorICA8ZWxlbT4weDY4PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDUyPC9lbGVtPg0KKyAgPGVsZW0+MHg1NDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NzU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDQ1PC9lbGVtPg0KKyAgPGVsZW0+MHg3ODwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NTA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDJlPC9lbGVtPg0KKyAgPGVsZW0+MHg2ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDNjPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4NmY8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4Mjg8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDI3PC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4M2M8L2VsZW0+DQorICA8ZWxlbT4weDJkPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDYzPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDNhPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4Mjc8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NjM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgzYTwvZWxlbT4NCisgIDxlbGVtPjB4MjA8L2VsZW0+DQorICA8ZWxlbT4weDI4PC9lbGVtPg0KKyAgPGVsZW0+MHgyNTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDI5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHgyZDwvZWxlbT4NCisgIDxlbGVtPjB4MmQ8L2VsZW0+DQorICA8ZWxlbT4weDNlPC9lbGVtPg0KKyAgPGVsZW0+MHgyMDwvZWxlbT4NCisgIDxlbGVtPjB4NjQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4M2E8L2VsZW0+DQorICA8ZWxlbT4weDIwPC9lbGVtPg0KKyAgPGVsZW0+MHgyODwvZWxlbT4NCisgIDxlbGVtPjB4MjU8L2VsZW0+DQorICA8ZWxlbT4weDcwPC9lbGVtPg0KKyAgPGVsZW0+MHgyOTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDY0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MzwvZWxlbT4NCisgIDxlbGVtPjB4MmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgyZTwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDE8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg3NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDM8L2VsZW0+DQorICA8ZWxlbT4weDZmPC9lbGVtPg0KKyAgPGVsZW0+MHg3MjwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NjY8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3MzwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NDQ8L2VsZW0+DQorICA8ZWxlbT4weDY5PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDczPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDcyPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDQ3PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzQ8L2VsZW0+DQorICA8ZWxlbT4weDY1PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0NzwvZWxlbT4NCisgIDxlbGVtPjB4NjE8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NGU8L2VsZW0+DQorICA8ZWxlbT4weDc1PC9lbGVtPg0KKyAgPGVsZW0+MHg2YzwvZWxlbT4NCisgIDxlbGVtPjB4NmM8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRjPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4Njc8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4Njk8L2VsZW0+DQorICA8ZWxlbT4weDZlPC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ZDwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDZkPC9lbGVtPg0KKyAgPGVsZW0+MHg2ZjwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc5PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKyAgPGVsZW0+MHg0ODwvZWxlbT4NCisgIDxlbGVtPjB4NjU8L2VsZW0+DQorICA8ZWxlbT4weDYxPC9lbGVtPg0KKyAgPGVsZW0+MHg3MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NDwvZWxlbT4NCisgIDxlbGVtPjB4MDwvZWxlbT4NCisgIDxlbGVtPjB4NTM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2MTwvZWxlbT4NCisgIDxlbGVtPjB4NzI8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg3NTwvZWxlbT4NCisgIDxlbGVtPjB4NzA8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4NmQ8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDUzPC9lbGVtPg0KKyAgPGVsZW0+MHg3OTwvZWxlbT4NCisgIDxlbGVtPjB4NzM8L2VsZW0+DQorICA8ZWxlbT4weDRkPC9lbGVtPg0KKyAgPGVsZW0+MHg2OTwvZWxlbT4NCisgIDxlbGVtPjB4NmU8L2VsZW0+DQorICA8ZWxlbT4weDA8L2VsZW0+DQorICA8ZWxlbT4weDU0PC9lbGVtPg0KKyAgPGVsZW0+MHg2NTwvZWxlbT4NCisgIDxlbGVtPjB4Nzg8L2VsZW0+DQorICA8ZWxlbT4weDc0PC9lbGVtPg0KKyAgPGVsZW0+MHgwPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0ibm9kZVRhYiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTVCJTdCbGVmdCUzQSUyMDB4MCUyQyUyMHJpZ2h0JTNBJTIwMHgwJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4MjI1JTJDJTIwcmlnaHQlM0ElMjAweDIyYSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjMzJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyM2ElN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDIzZiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjQ4JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNGUlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI1NCU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjU5JTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNjIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI2NiU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjZiJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyNzIlN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI3YSU3RCUyQyUyMCU3QmxlZnQlM0ElMjAweDgwMDElMkMlMjByaWdodCUzQSUyMDB4MjgyJTdEJTJDJTIwJTdCbGVmdCUzQSUyMDB4ODAwMSUyQyUyMHJpZ2h0JTNBJTIwMHgyODklN0QlMkMlMjAlN0JsZWZ0JTNBJTIwMHg4MDAxJTJDJTIwcmlnaHQlM0ElMjAweDI5MCU3RCU1RCI+PHZlY3RvciBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiIiBsZW5ndGg9IjE3Ij4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MDwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDA8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4MjI1PC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjJhPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyMzM8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDIzYTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi80Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjNmPC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNDg8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI0ZTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi83Ij4NCisgICAgICA8ZmllbGQgbmFtZT0ibGVmdCI+MHg4MDAxPC9maWVsZD4NCisgICAgICA8ZmllbGQgbmFtZT0icmlnaHQiPjB4MjU0PC9maWVsZD4NCisgICAgPC9zdHJ1Y3Q+DQorICA8L2VsZW0+DQorICA8ZWxlbT4NCisgICAgPHN0cnVjdCBpZD0ieGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgiPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJsZWZ0Ij4weDgwMDE8L2ZpZWxkPg0KKyAgICAgIDxmaWVsZCBuYW1lPSJyaWdodCI+MHgyNTk8L2ZpZWxkPg0KKyAgICA8L3N0cnVjdD4NCisgIDwvZWxlbT4NCisgIDxlbGVtPg0KKyAgICA8c3RydWN0IGlkPSJ4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvOSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2NjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI2YjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMyI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI3YTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNCI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4MjwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNSI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI4OTwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKyAgPGVsZW0+DQorICAgIDxzdHJ1Y3QgaWQ9InhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNiI+DQorICAgICAgPGZpZWxkIG5hbWU9ImxlZnQiPjB4ODAwMTwvZmllbGQ+DQorICAgICAgPGZpZWxkIG5hbWU9InJpZ2h0Ij4weDI5MDwvZmllbGQ+DQorICAgIDwvc3RydWN0Pg0KKyAgPC9lbGVtPg0KKzwvdmVjdG9yPgorICAgICAgICAgICAgPC9mZWF0dXJlPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0iY2hhckNudCIgdHlwZT0ibnVtYmVyIiB2YWx1ZT0iNjYxIi8+CisgICAgICAgICAgICA8ZmVhdHVyZSBuYW1lPSJub2RlQ250IiB0eXBlPSJudW1iZXIiIHZhbHVlPSIxNyIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlzaXRSb3BlRnhuIiB0eXBlPSJvYmplY3QiIHZhbHVlPSIlMjZ4ZGNfcnVudGltZV9UZXh0X3Zpc2l0Um9wZV9fSSIvPgorICAgICAgICAgICAgPGZlYXR1cmUgbmFtZT0idmlzaXRSb3BlRnhuMiIgdHlwZT0ib2JqZWN0IiB2YWx1ZT0iJTI2eGRjX3J1bnRpbWVfVGV4dF92aXNpdFJvcGUyX19JIi8+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UaW1lc3RhbXBOdWxsIgorICAgICAgICAgICAgICAgIHVzZWQ9ImZhbHNlIgorICAgICAgICAgICAgICAgIHVzZXM9IiI+CisgICAgICAgIDwvbW9kdWxlPgorICAgICAgICA8bW9kdWxlIG5hbWU9InhkYy5ydW50aW1lLlRpbWVzdGFtcFN0ZCIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICAgICAgPG1vZHVsZSBuYW1lPSJ4ZGMucnVudGltZS5UeXBlcyIKKyAgICAgICAgICAgICAgICB1c2VkPSJmYWxzZSIKKyAgICAgICAgICAgICAgICB1c2VzPSIiPgorICAgICAgICA8L21vZHVsZT4KKyAgICA8L3BhY2thZ2U+CisgICAgPHBhY2thZ2UgbmFtZT0iZ251LnRhcmdldHMucnRzODZHVyIgdmVyc2lvbj0iMSwgMCwgMCwgMCIgcmVwb3NpdG9yeT0iRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzLyI+CisgICAgPC9wYWNrYWdlPgorICAgIDxwYWNrYWdlIG5hbWU9ImhlbGxvLnBrZyIgdmVyc2lvbj0iIiByZXBvc2l0b3J5PSJEOi93b3JrL3R1dG9yaWFsL3JlcG8vIj4KKyAgICA8L3BhY2thZ2U+Cis8L2ltcG9ydHM+Cis8L2NvbmZpZ3VyYXRpb24+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5kZXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFlODdhMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmRlcApAQCAtMCwwICsxLDc5IEBACisjCisjIFRoZSBmb2xsb3dpbmcgaXMgZ2VuZXJhdGVkIGJ5IHV0aWxzLmdlbkRlcCBmb3IgcGFja2FnZS9jZmcvcHJvZ194ODZHVworIworcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuaCBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnhkbDpwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZyBwcm9nLmNmZyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2kgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL0ludGVsODA1ODYueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL1BsYXRmb3JtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9ob3N0L3BsYXRmb3Jtcy9QQy9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvTWFpbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL3BhY2thZ2UueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vRXhlQ29udGV4dC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0lQbGF0Zm9ybS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL1V0aWxzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Nb2RlbC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Qcm9ncmFtLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0YXRlUmVhZGVyLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0cnVjdHVyZURlY29kZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGVmYXVsdHMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBNaW4ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZy54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nZ2VyQnVmLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJTeXMueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueHMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RpbWVzdGFtcC54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9DbG9jay54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3RlbXBsYXRlLnhzIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveGRjLnRjaSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54cyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbjIueHMgCisKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9pbmNsdWRlL3V0aWxzLnRjaToKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9ob3N0L3BsYXRmb3Jtcy9QQy9JbnRlbDgwNTg2LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL1BsYXRmb3JtLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2hvc3QvcGxhdGZvcm1zL1BDL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9jZmcvTWFpbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9vbTIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0V4ZUNvbnRleHQueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL0lQbGF0Zm9ybS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGxhdGZvcm0vVXRpbHMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3BsYXRmb3JtL3BhY2thZ2UueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9Nb2RlbC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1Byb2dyYW0ueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3Jvdi9TdGF0ZVJlYWRlci54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcm92L1N0cnVjdHVyZURlY29kZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RlZmF1bHRzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGUueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZU51bGwueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSGVhcE1pbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9IZWFwU3RkLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ2dlckJ1Zi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Mb2dnZXJTeXMueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RpbWVzdGFtcC54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlLnhzOgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvQ2xvY2sueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9UcmFjZS54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHM6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2k6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3htbGdlbi54czoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54czoKKworCitkZWZpbmUgRVhFQy5wcm9nLng4NkdXCisKKy4vcHJvZy54ODZHVworZW5kZWYKKworIworIyBUaGUgZm9sbG93aW5nIGlzIGdlbmVyYXRlZCBieSBqYXZhCisjCisKK3Byb2cueDg2R1c6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9ydHM4NkdXL2xpYi9nbnUudGFyZ2V0cy5ydHM4NkdXLmE4NkdXIAorCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvY2ZnL1Byb2dyYW0ueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXN0ZW0ueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueGR0IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LnhkdCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvbGlua2NtZC54ZHQgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL2xpbmtjbWQueGR0IAorcGFja2FnZS9jZmcvcHJvZ194ODZHVy5jIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cueGRsOiAuaW50ZXJmYWNlcyAKKworIworIyBydWxlLWxlc3MgZ29hbHMgZm9yIGZpbGVzIG91dHNpZGUgdGhpcyBwYWNrYWdlCisjICh0aGVzZSBnb2FscyBmb3JjZSBhIHJlLWJ1aWxkIGlmIHRoZXNlIGZpbGVzIGFyZQorIyBtb3ZlZCBvciBkZWxldGVkKQorIworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3J0czg2R1cvbGliL2dudS50YXJnZXRzLnJ0czg2R1cuYTg2R1c6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2NmZy9Qcm9ncmFtLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3RhcnR1cC54ZHQ6CitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzdGVtLnhkdDoKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9TeXNNaW4ueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1RleHQueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL2xpbmtjbWQueGR0OgorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL2xpbmtjbWQueGR0OgorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjBmMTI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuaApAQCAtMCwwICsxLDEzIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCitleHRlcm4gaW50IHhkY19ydW50aW1lX1N0YXJ0dXBfX0VYRUNGWE5fX0M7CisKK2V4dGVybiBpbnQgeGRjX3J1bnRpbWVfU3RhcnR1cF9fUkVTRVRGWE5fX0M7CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MjAxODY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubWFrCkBAIC0wLDAgKzEsNzcgQEAKKyMKKyMgIERvIG5vdCBlZGl0IHRoaXMgZmlsZS4gIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgZnJvbSAKKyMgIHBhY2thZ2UuYmxkLiAgQW55IG1vZGlmaWNhdGlvbnMgdG8gdGhpcyBmaWxlIHdpbGwgYmUgCisjICBvdmVyd3JpdHRlbiB3aGVuZXZlciBtYWtlZmlsZXMgYXJlIHJlLWdlbmVyYXRlZC4KKyMKKyMgIHRhcmdldCBjb21wYXRpYmlsaXR5IGtleSA9IGdudS50YXJnZXRzLk1pbmd3ezEsMCwzLjQsNQorIworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vODZHVy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXOiBwcm9nLmMgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjICAtV3VudXNlZCAgLURmYXI9ICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0naGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgIC1vICRAICQ8CisJJChNS0RFUCkgLW8gJEAuZGVwIC1wIHBhY2thZ2UvY2ZnL3Byb2cvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzg2R1c6TERfTElCUkFSWV9QQVRIPQorcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5vODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5zODZHVzogfCAuaW50ZXJmYWNlcworcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM4NkdXOiBwcm9nLmMgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAtUyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjIC1TIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAgLW8gJEAgJDwKKwkkKE1LREVQKSAtbyAkQC5kZXAgLXAgcGFja2FnZS9jZmcvcHJvZy8gLXMgbzg2R1cgJDwgLUMgLVd1bnVzZWQgIC1EZmFyPSAgIC1EeGRjX2NmZ19faGVhZGVyX189J2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmgnICAtRHhkY190YXJnZXRfbmFtZV9fPU1pbmd3IC1EeGRjX3RhcmdldF90eXBlc19fPWdudS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV9yZWxlYXNlIC1EeGRjX2JsZF9fdmVyc18xXzBfM180XzUgLU8yICAkKFhEQ0lOQ1MpIAorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvY2ZnL3Byb2cvcHJvZy5zODZHVzpMRF9MSUJSQVJZX1BBVEg9CitwYWNrYWdlL2NmZy9wcm9nL3Byb2cuczg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM4NkdXOiBQYXRoOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKKworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1cuZGVwCitlbmRpZgorCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm84NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm84NkdXOiBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmMgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjICAtV3VudXNlZCAgLURmYXI9ICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0naGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgIC1vICRAICQ8CisJJChNS0RFUCkgLW8gJEAuZGVwIC1wIHBhY2thZ2UvY2ZnLyAtcyBvODZHVyAkPCAtQyAtV3VudXNlZCAgLURmYXI9ICAgLUR4ZGNfY2ZnX19oZWFkZXJfXz0naGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuaCcgIC1EeGRjX3RhcmdldF9uYW1lX189TWluZ3cgLUR4ZGNfdGFyZ2V0X3R5cGVzX189Z251L3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3JlbGVhc2UgLUR4ZGNfYmxkX192ZXJzXzFfMF8zXzRfNSAtTzIgICQoWERDSU5DUykgCisJLUAkKEZJWERFUCkgJEAuZGVwICRALmRlcAorCQorcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVzpMRF9MSUJSQVJZX1BBVEg9CitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm84NkdXOiBQQVRIOj0uOyQoZ251LnRhcmdldHMuTWluZ3cucm9vdERpcikvYmluOyQoUEFUSCkKK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1c6IFBhdGg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnM4NkdXOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnM4NkdXOiBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmMgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsODZHVyAtUyAkPCAuLi4KKwkkKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpLy9iaW4vbWluZ3czMi1nY2MuZXhlIC1jICAteCBjIC1TIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAgLW8gJEAgJDwKKwkkKE1LREVQKSAtbyAkQC5kZXAgLXAgcGFja2FnZS9jZmcvIC1zIG84NkdXICQ8IC1DIC1XdW51c2VkICAtRGZhcj0gICAtRHhkY19jZmdfX2hlYWRlcl9fPSdoZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5oJyAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1NaW5ndyAtRHhkY190YXJnZXRfdHlwZXNfXz1nbnUvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfcmVsZWFzZSAtRHhkY19ibGRfX3ZlcnNfMV8wXzNfNF81IC1PMiAgJChYRENJTkNTKSAKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnM4NkdXOkxEX0xJQlJBUllfUEFUSD0KK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuczg2R1c6IFBBVEg6PS47JChnbnUudGFyZ2V0cy5NaW5ndy5yb290RGlyKS9iaW47JChQQVRIKQorcGFja2FnZS9jZmcvcHJvZ194ODZHVy5zODZHVzogUGF0aDo9LjskKGdudS50YXJnZXRzLk1pbmd3LnJvb3REaXIpL2JpbjskKFBBVEgpCisKK2NsZWFuLDg2R1cgOjoKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1cKKwktJChSTSkgcGFja2FnZS9jZmcvcHJvZy9wcm9nLnM4NkdXCisJLSQoUk0pIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuczg2R1cKKworcHJvZy54ODZHVzogcGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXIHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1cgcGFja2FnZS9jZmcvcHJvZ194ODZHVy5tYWsKKworY2xlYW46OgorCS0kKFJNKSBwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLm1hawpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1cgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MjU2NjUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1cKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1cuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cubzg2R1cuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkYTZiMzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVy5kZXAKQEAgLTAsMCArMSw0MyBAQAorcGFja2FnZS9jZmcvL3Byb2dfeDg2R1cubzg2R1c6IHBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQ29yZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oIA0KK3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYzoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQ29yZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EZWZhdWx0cy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9HYXRlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVOdWxsLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0hlYXBTdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTWVtb3J5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvU3lzTWluLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL3N0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS94ZGMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvQXNzZXJ0X19wcm9sb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3NfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0dhdGVfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvR2F0ZV9fZXBpbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19lcGlsb2d1ZS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01lbW9yeV9IZWFwUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSVN5c3RlbVN1cHBvcnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9TeXN0ZW1fU3VwcG9ydFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX3Byb2xvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnJvdi54cyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnJvdi54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYTdmMjg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cucm92LnhzCkBAIC0wLDAgKzEsNDIzMyBAQAorX19vID0gbnVsbAorX19vYmogPSBbCisgICAgdGhpcywgIC8vICMwIAorICAgIHt9LCAgICAvLyAjMSAKKyAgICB7fSwgICAgLy8gIzIgeGRjLnJ1bnRpbWUuQXNzZXJ0CisgICAgW10sICAgIC8vICMzIHhkYy5ydW50aW1lLkFzc2VydC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM0IHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMAorICAgIHt9LCAgICAvLyAjNSB4ZGMucnVudGltZS5Bc3NlcnQvY29tbW9uJAorICAgIFtdLCAgICAvLyAjNiB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzcgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM4IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzkgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzEwIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTEgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEyIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTMgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTQgeGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzE2IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE4IHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzE5IHhkYy5ydW50aW1lLkFzc2VydC92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwIHhkYy5ydW50aW1lLkNvcmUKKyAgICBbXSwgICAgLy8gIzIxIHhkYy5ydW50aW1lLkNvcmUvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjIgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMAorICAgIHt9LCAgICAvLyAjMjMgeGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kCisgICAgW10sICAgIC8vICMyNCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjcgeGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyOCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyOSB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzMwIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMxIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMzMiB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzMzIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMzNCB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzM1IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzM2IHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMzNyB4ZGMucnVudGltZS5Db3JlL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzggeGRjLnJ1bnRpbWUuRGVmYXVsdHMKKyAgICBbXSwgICAgLy8gIzM5IHhkYy5ydW50aW1lLkRlZmF1bHRzLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzQwIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzQxIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM0MiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNDMgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM0NCB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM0NSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNDYgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjNDcgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzQ4IHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjNDkgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNTAgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM1MSB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM1MiB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjNTMgeGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM1NCB4ZGMucnVudGltZS5EZWZhdWx0cy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzU1IHhkYy5ydW50aW1lLkRpYWdzCisgICAgW10sICAgIC8vICM1NiB4ZGMucnVudGltZS5EaWFncy8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICM1NyB4ZGMucnVudGltZS5EaWFncy9jb21tb24kCisgICAgW10sICAgIC8vICM1OCB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjNTkgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzYwIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjEgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjNjIgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzYzIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzY0IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICM2NSB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzY2IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzY3IHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjNjggeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjNjkgeGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzcwIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjNzEgeGRjLnJ1bnRpbWUuRGlhZ3Mvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICM3MiB4ZGMucnVudGltZS5FcnJvcgorICAgIFtdLCAgICAvLyAjNzMgeGRjLnJ1bnRpbWUuRXJyb3IvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjNzQgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxCisgICAge30sICAgIC8vICM3NSB4ZGMucnVudGltZS5FcnJvci5EZXNjIzIKKyAgICB7fSwgICAgLy8gIzc2IHhkYy5ydW50aW1lLkVycm9yL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzc3IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM3OCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjNzkgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICM4MCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM4MSB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODIgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjODMgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzg0IHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjODUgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjODYgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICM4NyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICM4OCB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjODkgeGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICM5MCB4ZGMucnVudGltZS5FcnJvci92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzkxIHhkYy5ydW50aW1lLkdhdGUKKyAgICBbXSwgICAgLy8gIzkyIHhkYy5ydW50aW1lLkdhdGUvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjOTMgeGRjLnJ1bnRpbWUuR2F0ZS9jb21tb24kCisgICAgW10sICAgIC8vICM5NCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICM5NSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICM5NiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjOTcgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICM5OCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICM5OSB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzEwMCB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMDEgeGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzEwMiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEwMyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTA0IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTA1IHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzEwNiB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTA3IHhkYy5ydW50aW1lLkdhdGUvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxMDggeGRjLnJ1bnRpbWUuR2F0ZU51bGwKKyAgICBbXSwgICAgLy8gIzEwOSB4ZGMucnVudGltZS5HYXRlTnVsbC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxMTAgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTExIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMxMTIgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzExMyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExNCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMxMTUgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExNiB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMTcgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzExOCB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzExOSB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxMjAgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMxMjEgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTIyIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxMjMgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMxMjQgeGRjLnJ1bnRpbWUuR2F0ZU51bGwvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxMjUgeGRjLnJ1bnRpbWUuTG9nCisgICAgW10sICAgIC8vICMxMjYgeGRjLnJ1bnRpbWUuTG9nLyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzEyNyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzAKKyAgICB7fSwgICAgLy8gIzEyOCB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzEKKyAgICB7fSwgICAgLy8gIzEyOSB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzMKKyAgICB7fSwgICAgLy8gIzEzMCB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIKKyAgICB7fSwgICAgLy8gIzEzMSB4ZGMucnVudGltZS5Mb2cvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMTMyIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTMzIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMTM0IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzEzNSB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTM2IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTM3IHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMxMzggeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxMzkgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMTQwIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMxNDEgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTQyIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMxNDMgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMxNDQgeGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTQ1IHhkYy5ydW50aW1lLkxvZy9pZFRvSW5mbworICAgIFtdLCAgICAvLyAjMTQ2IHhkYy5ydW50aW1lLkxvZy92aWV3TmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE0NyB4ZGMucnVudGltZS5NYWluCisgICAgW10sICAgIC8vICMxNDggeGRjLnJ1bnRpbWUuTWFpbi8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNDkgeGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kCisgICAgW10sICAgIC8vICMxNTAgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTUxIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE1MiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTUzIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTU0IHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1NSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE1NiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxNTcgeGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE1OCB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE1OSB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTYwIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTYxIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE2MiB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTYzIHhkYy5ydW50aW1lLk1haW4vdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxNjQgeGRjLnJ1bnRpbWUuTWVtb3J5CisgICAgW10sICAgIC8vICMxNjUgeGRjLnJ1bnRpbWUuTWVtb3J5LyRpbnN0YW5jZXMKKyAgICB7fSwgICAgLy8gIzE2NiB4ZGMucnVudGltZS5IZWFwU3RkCisgICAgW10sICAgIC8vICMxNjcgeGRjLnJ1bnRpbWUuSGVhcFN0ZC8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMxNjggeGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwCisgICAge30sICAgIC8vICMxNjkgeGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSMwL2luc3RhbmNlCisgICAge30sICAgIC8vICMxNzAgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNAorICAgIHt9LCAgICAvLyAjMTcxIHhkYy5ydW50aW1lLkFzc2VydC5EZXNjIzMKKyAgICB7fSwgICAgLy8gIzE3MiB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMyCisgICAge30sICAgIC8vICMxNzMgeGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyM0CisgICAge30sICAgIC8vICMxNzQgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb21tb24kCisgICAgW10sICAgIC8vICMxNzUgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMTc2IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE3NyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTc4IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIFtdLCAgICAvLyAjMTc5IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4MCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzE4MSB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAge30sICAgIC8vICMxODIgeGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE4MyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE4NCB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIFtdLCAgICAvLyAjMTg1IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTg2IHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzE4NyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIFtdLCAgICAvLyAjMTg4IHhkYy5ydW50aW1lLkhlYXBTdGQvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMxODkgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzE5MCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzE5MSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzE5MiB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMxOTMgeGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzE5NCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzE5NSB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMTk2IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk3IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzE5OCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMTk5IHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzIwMCB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjAxIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjAyIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzIwMyB4ZGMucnVudGltZS5NZW1vcnkvdmlld05hbWVNYXAkCisgICAge30sICAgIC8vICMyMDQgeGRjLnJ1bnRpbWUuU3RhcnR1cAorICAgIFtdLCAgICAvLyAjMjA1IHhkYy5ydW50aW1lLlN0YXJ0dXAvJGluc3RhbmNlcworICAgIHt9LCAgICAvLyAjMjA2IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29tbW9uJAorICAgIFtdLCAgICAvLyAjMjA3IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIwOCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyMDkgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxMCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzIxMSB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyMTIgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgW10sICAgIC8vICMyMTMgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjE0IHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyMTUgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAge30sICAgIC8vICMyMTYgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzIxNyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIxOCB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgW10sICAgIC8vICMyMTkgeGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBbXSwgICAgLy8gIzIyMCB4ZGMucnVudGltZS5TdGFydHVwL2ZpcnN0RnhucworICAgIFtdLCAgICAvLyAjMjIxIHhkYy5ydW50aW1lLlN0YXJ0dXAvbGFzdEZ4bnMKKyAgICBbXSwgICAgLy8gIzIyMiB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5SdHMKKyAgICBbXSwgICAgLy8gIzIyMyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5UYWIKKyAgICBbXSwgICAgLy8gIzIyNCB4ZGMucnVudGltZS5TdGFydHVwL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjI1IHhkYy5ydW50aW1lLlN5c3RlbQorICAgIFtdLCAgICAvLyAjMjI2IHhkYy5ydW50aW1lLlN5c3RlbS8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMjcgeGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNQorICAgIHt9LCAgICAvLyAjMjI4IHhkYy5ydW50aW1lLlN5c01pbgorICAgIFtdLCAgICAvLyAjMjI5IHhkYy5ydW50aW1lLlN5c01pbi8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyMzAgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzIzMSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQKKyAgICB7fSwgICAgLy8gIzIzMiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBbXSwgICAgLy8gIzIzMyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyMzQgeGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBbXSwgICAgLy8gIzIzNSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzIzNiB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjM3IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjM4IHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBbXSwgICAgLy8gIzIzOSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQwIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBbXSwgICAgLy8gIzI0MSB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjQyIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjQzIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI0NCB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEKKyAgICB7fSwgICAgLy8gIzI0NSB4ZGMucm92LlZpZXdJbmZvCisgICAgW10sICAgIC8vICMyNDYgeGRjLnJvdi5WaWV3SW5mby8kaW5zdGFuY2VzCisgICAge30sICAgIC8vICMyNDcgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwCisgICAgW10sICAgIC8vICMyNDggeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAKKyAgICB7fSwgICAgLy8gIzI0OSB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAvdmlld01hcC8nQmFzaWMnCisgICAge30sICAgIC8vICMyNTAgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMwL3ZpZXdNYXAvJ1JlY29yZHMnCisgICAgW10sICAgIC8vICMyNTEgeGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAKKyAgICB7fSwgICAgLy8gIzI1MiB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzEvdmlld01hcC8nTW9kdWxlJworICAgIHt9LCAgICAvLyAjMjUzIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydPdXRwdXRCdWZmZXInCisgICAgW10sICAgIC8vICMyNTQgeGRjLnJ1bnRpbWUuU3lzTWluL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjU1IHhkYy5ydW50aW1lLlN5c3RlbS9jb21tb24kCisgICAgW10sICAgIC8vICMyNTYgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNTcgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgW10sICAgIC8vICMyNTggeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjU5IHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyNjAgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAge30sICAgIC8vICMyNjEgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBbXSwgICAgLy8gIzI2MiB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2MyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgW10sICAgIC8vICMyNjQgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2NSB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyNjYgeGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI2NyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBbXSwgICAgLy8gIzI2OCB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyNjkgeGRjLnJ1bnRpbWUuU3lzdGVtL2V4aXRGeG5zCisgICAgW10sICAgIC8vICMyNzAgeGRjLnJ1bnRpbWUuU3lzdGVtL3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMjcxIHhkYy5ydW50aW1lLlRleHQKKyAgICBbXSwgICAgLy8gIzI3MiB4ZGMucnVudGltZS5UZXh0LyRpbnN0YW5jZXMKKyAgICBbXSwgICAgLy8gIzI3MyB4ZGMucnVudGltZS5UZXh0L2NoYXJUYWIKKyAgICB7fSwgICAgLy8gIzI3NCB4ZGMucnVudGltZS5UZXh0L2NvbW1vbiQKKyAgICBbXSwgICAgLy8gIzI3NSB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkCisgICAge30sICAgIC8vICMyNzYgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIFtdLCAgICAvLyAjMjc3IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAge30sICAgIC8vICMyNzggeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgW10sICAgIC8vICMyNzkgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjgwIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIFtdLCAgICAvLyAjMjgxIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICB7fSwgICAgLy8gIzI4MiB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIFtdLCAgICAvLyAjMjgzIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIHt9LCAgICAvLyAjMjg0IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgW10sICAgIC8vICMyODUgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAge30sICAgIC8vICMyODYgeGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIFtdLCAgICAvLyAjMjg3IHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgW10sICAgIC8vICMyODggeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiCisgICAge30sICAgIC8vICMyODkgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzAKKyAgICB7fSwgICAgLy8gIzI5MCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMQorICAgIHt9LCAgICAvLyAjMjkxIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8yCisgICAge30sICAgIC8vICMyOTIgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzMKKyAgICB7fSwgICAgLy8gIzI5MyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNAorICAgIHt9LCAgICAvLyAjMjk0IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi81CisgICAge30sICAgIC8vICMyOTUgeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzYKKyAgICB7fSwgICAgLy8gIzI5NiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvNworICAgIHt9LCAgICAvLyAjMjk3IHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi84CisgICAge30sICAgIC8vICMyOTggeGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzkKKyAgICB7fSwgICAgLy8gIzI5OSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTAKKyAgICB7fSwgICAgLy8gIzMwMCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTEKKyAgICB7fSwgICAgLy8gIzMwMSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTIKKyAgICB7fSwgICAgLy8gIzMwMiB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTMKKyAgICB7fSwgICAgLy8gIzMwMyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTQKKyAgICB7fSwgICAgLy8gIzMwNCB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTUKKyAgICB7fSwgICAgLy8gIzMwNSB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTYKKyAgICBbXSwgICAgLy8gIzMwNiB4ZGMucnVudGltZS5UZXh0L3ZpZXdOYW1lTWFwJAorICAgIHt9LCAgICAvLyAjMzA3IAorICAgIHt9LCAgICAvLyAjMzA4IAorICAgIHt9LCAgICAvLyAjMzA5IAorICAgIHt9LCAgICAvLyAjMzEwIAorICAgIHt9LCAgICAvLyAjMzExIAorICAgIHt9LCAgICAvLyAjMzEyIGdudS50YXJnZXRzLk1pbmd3CisgICAge30sICAgIC8vICMzMTMgZ251LnRhcmdldHMuTWluZ3cvYXIKKyAgICB7fSwgICAgLy8gIzMxNCBnbnUudGFyZ2V0cy5NaW5ndy9hck9wdHMKKyAgICB7fSwgICAgLy8gIzMxNSBnbnUudGFyZ2V0cy5NaW5ndy9hc20KKyAgICB7fSwgICAgLy8gIzMxNiBnbnUudGFyZ2V0cy5NaW5ndy9hc21PcHRzCisgICAge30sICAgIC8vICMzMTcgZ251LnRhcmdldHMuTWluZ3cvY2MKKyAgICB7fSwgICAgLy8gIzMxOCBnbnUudGFyZ2V0cy5NaW5ndy9jY09wdHMKKyAgICB7fSwgICAgLy8gIzMxOSBnbnUudGFyZ2V0cy5NaW5ndy9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICB7fSwgICAgLy8gIzMyMCBnbnUudGFyZ2V0cy5NaW5ndy9kZWJ1Z0dlbgorICAgIHt9LCAgICAvLyAjMzIxIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMKKyAgICB7fSwgICAgLy8gIzMyMiBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuQycKKyAgICB7fSwgICAgLy8gIzMyMyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuYXNtJworICAgIHt9LCAgICAvLyAjMzI0IGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jJworICAgIHt9LCAgICAvLyAjMzI1IGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jYycKKyAgICB7fSwgICAgLy8gIzMyNiBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY3BwJworICAgIHt9LCAgICAvLyAjMzI3IGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jeHgnCisgICAge30sICAgIC8vICMzMjggZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLnM4NkdXJworICAgIHt9LCAgICAvLyAjMzI5IGdudS50YXJnZXRzLk1pbmd3L2xuaworICAgIHt9LCAgICAvLyAjMzMwIGdudS50YXJnZXRzLk1pbmd3L2xua09wdHMKKyAgICB7fSwgICAgLy8gIzMzMSBnbnUudGFyZ2V0cy5NaW5ndy9tb2RlbAorICAgIHt9LCAgICAvLyAjMzMyIGdudS50YXJnZXRzLk1pbmd3L3BsYXRmb3JtcworICAgIHt9LCAgICAvLyAjMzMzIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzCisgICAge30sICAgIC8vICMzMzQgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2NvdmVyYWdlJworICAgIHt9LCAgICAvLyAjMzM1IGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMKKyAgICB7fSwgICAgLy8gIzMzNiBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzMzNyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnCisgICAge30sICAgIC8vICMzMzggZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2RlYnVnJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzM5IGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZycvZmlsdGVycworICAgIHt9LCAgICAvLyAjMzQwIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJworICAgIHt9LCAgICAvLyAjMzQxIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9jb21waWxlT3B0cworICAgIHt9LCAgICAvLyAjMzQyIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydwcm9maWxlJy9maWx0ZXJzCisgICAge30sICAgIC8vICMzNDMgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnCisgICAge30sICAgIC8vICMzNDQgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2NvbXBpbGVPcHRzCisgICAge30sICAgIC8vICMzNDUgZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3JlbGVhc2UnL2ZpbHRlcnMKKyAgICB7fSwgICAgLy8gIzM0NiBnbnUudGFyZ2V0cy5NaW5ndy9zZWN0TWFwCisgICAge30sICAgIC8vICMzNDcgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMKKyAgICB7fSwgICAgLy8gIzM0OCBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0NoYXIKKyAgICB7fSwgICAgLy8gIzM0OSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0RvdWJsZQorICAgIHt9LCAgICAvLyAjMzUwIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfRmxvYXQKKyAgICB7fSwgICAgLy8gIzM1MSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Z4bgorICAgIHt9LCAgICAvLyAjMzUyIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSUFyZworICAgIHt9LCAgICAvLyAjMzUzIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50CisgICAge30sICAgIC8vICMzNTQgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQxNgorICAgIHt9LCAgICAvLyAjMzU1IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50MzIKKyAgICB7fSwgICAgLy8gIzM1NiBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDQwCisgICAge30sICAgIC8vICMzNTcgZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQ2NAorICAgIHt9LCAgICAvLyAjMzU4IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50OAorICAgIHt9LCAgICAvLyAjMzU5IGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTERvdWJsZQorICAgIHt9LCAgICAvLyAjMzYwIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTExvbmcKKyAgICB7fSwgICAgLy8gIzM2MSBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xvbmcKKyAgICB7fSwgICAgLy8gIzM2MiBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X1B0cgorICAgIHt9LCAgICAvLyAjMzYzIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfU2hvcnQKKyAgICB7fSwgICAgLy8gIzM2NCBnbnUudGFyZ2V0cy5NaW5ndy92ZXJzaW9uTWFwCisgICAge30sICAgIC8vICMzNjUgCitdCisKK19fbyA9IF9fb2JqWzBdICAKKyAgICBfX29bJyRtb2R1bGVzJ10gPSBfX29ialsxLjBdCisgICAgX19vWydidWlsZCddID0gX19vYmpbMzA3LjBdCisKK19fbyA9IF9fb2JqWzFdICAKKyAgICBfX29bJyMzMjc3MCddID0gX19vYmpbMi4wXQorICAgIF9fb1snIzMyNzcxJ10gPSBfX29ialsyMC4wXQorICAgIF9fb1snIzMyNzcyJ10gPSBfX29ialszOC4wXQorICAgIF9fb1snIzMyNzczJ10gPSBfX29ials1NS4wXQorICAgIF9fb1snIzMyNzc0J10gPSBfX29ials3Mi4wXQorICAgIF9fb1snIzMyNzc1J10gPSBfX29ials5MS4wXQorICAgIF9fb1snIzMyNzc2J10gPSBfX29ialsxMDguMF0KKyAgICBfX29bJyMzMjc3NyddID0gX19vYmpbMTI1LjBdCisgICAgX19vWycjMzI3NzgnXSA9IF9fb2JqWzE0Ny4wXQorICAgIF9fb1snIzMyNzc5J10gPSBfX29ialsxNjQuMF0KKyAgICBfX29bJyMzMjc4MCddID0gX19vYmpbMTY2LjBdCisgICAgX19vWycjMzI3ODEnXSA9IF9fb2JqWzIwNC4wXQorICAgIF9fb1snIzMyNzgyJ10gPSBfX29ialsyMjUuMF0KKyAgICBfX29bJyMzMjc4MyddID0gX19vYmpbMjI4LjBdCisgICAgX19vWycjMzI3ODQnXSA9IF9fb2JqWzI3MS4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuQXNzZXJ0J10gPSBfX29ialsyLjBdCisgICAgX19vWyd4ZGMucnVudGltZS5Db3JlJ10gPSBfX29ialsyMC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuRGVmYXVsdHMnXSA9IF9fb2JqWzM4LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5EaWFncyddID0gX19vYmpbNTUuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkVycm9yJ10gPSBfX29ials3Mi4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuR2F0ZSddID0gX19vYmpbOTEuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkdhdGVOdWxsJ10gPSBfX29ialsxMDguMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLkhlYXBTdGQnXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuTG9nJ10gPSBfX29ialsxMjUuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLk1haW4nXSA9IF9fb2JqWzE0Ny4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuTWVtb3J5J10gPSBfX29ialsxNjQuMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlN0YXJ0dXAnXSA9IF9fb2JqWzIwNC4wXQorICAgIF9fb1sneGRjLnJ1bnRpbWUuU3lzTWluJ10gPSBfX29ialsyMjguMF0KKyAgICBfX29bJ3hkYy5ydW50aW1lLlN5c3RlbSddID0gX19vYmpbMjI1LjBdCisgICAgX19vWyd4ZGMucnVudGltZS5UZXh0J10gPSBfX29ialsyNzEuMF0KKworX19vID0gX19vYmpbMl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMy4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JywgJ1VURi04JykpCisgICAgX19vWydFX2Fzc2VydEZhaWxlZCddID0gX19vYmpbNC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9Bc3NlcnRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzAKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzYuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzE5LjBdCisKK19fbyA9IF9fb2JqWzNdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzRdICAvLyB4ZGMucnVudGltZS5FcnJvci5EZXNjIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLkRlc2MlMjMwJywgJ1VURi04JykpCisgICAgX19vWydjb2RlJ10gPSAwCisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYXNzZXJ0aW9uK2ZhaWx1cmUlMjVzJTI1cycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials2XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbNy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzExLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzEzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMTUuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzE3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzddICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzldICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTNdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkFzc2VydCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNl0gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxN10gIC8vIHhkYy5ydW50aW1lLkFzc2VydC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0L3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMF0gIC8vIHhkYy5ydW50aW1lLkNvcmUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzIxLjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJywgJ1VURi04JykpCisgICAgX19vWydBX2luaXRpYWxpemVkUGFyYW1zJ10gPSBfX29ialsyMi4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9Db3JlX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzcxCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzIzLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMjQuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzM3LjBdCisKK19fbyA9IF9fb2JqWzIxXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjMwJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0FfaW5pdGlhbGl6ZWRQYXJhbXMlM0ErdW5pbml0aWFsaXplZCtQYXJhbXMrc3RydWN0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzI0XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzI1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzI5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzMxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMzMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzM1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjddICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyOC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjhdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyOV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzMwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMF0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMV0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialszMi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMl0gIC8vIHhkYy5ydW50aW1lLkNvcmUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQ29yZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzXSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzM0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzVdICAvLyB4ZGMucnVudGltZS5Db3JlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzM2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM2XSAgLy8geGRjLnJ1bnRpbWUuQ29yZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkNvcmUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzddICAvLyB4ZGMucnVudGltZS5Db3JlL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Db3JlJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzhdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMzkuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0RlZmF1bHRzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzcyCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzQwLjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNDEuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzU0LjBdCisKK19fbyA9IF9fb2JqWzM5XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDBdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials0MV0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbNDIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials0NC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbNDYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbNDguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ials1MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbNTIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0Ml0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials0My4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDNdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ0XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials0NS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDVdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ2XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials0Ny4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNDddICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials0OF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzQ5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzQ5XSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1MF0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzUxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzUxXSAgLy8geGRjLnJ1bnRpbWUuRGVmYXVsdHMvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1Ml0gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EZWZhdWx0cyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials1My4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1M10gIC8vIHhkYy5ydW50aW1lLkRlZmF1bHRzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNTRdICAvLyB4ZGMucnVudGltZS5EZWZhdWx0cy92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1NV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ials1Ni4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FMTCddID0gNjU1MzUKKyAgICBfX29bJ0FTU0VSVCddID0gMTYKKyAgICBfX29bJ0VOVFJZJ10gPSAxCisgICAgX19vWydFWElUJ10gPSAyCisgICAgX19vWydJTlRFUk5BTCddID0gOAorICAgIF9fb1snTElGRUNZQ0xFJ10gPSA0CisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0RpYWdzX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzczCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1VTRVIxJ10gPSAyNTYKKyAgICBfX29bJ1VTRVIyJ10gPSA1MTIKKyAgICBfX29bJ1VTRVIzJ10gPSAxMDI0CisgICAgX19vWydVU0VSNCddID0gMjA0OAorICAgIF9fb1snVVNFUjUnXSA9IDQwOTYKKyAgICBfX29bJ1VTRVI2J10gPSA4MTkyCisgICAgX19vWydVU0VSNyddID0gMTYzODQKKyAgICBfX29bJ1VTRVI4J10gPSAzMjc2OAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbNTcuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials1OC4wXQorICAgIF9fb1snZGljdEJhc2UnXSA9IG51bGwKKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWydzZXRNYXNrRW5hYmxlZCddID0gZmFsc2UKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbNzEuMF0KKworX19vID0gX19vYmpbNTZdICAvLyB4ZGMucnVudGltZS5EaWFncy8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials1N10gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzU4XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ials1OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzYxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ials2My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ials2NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzY3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ials2OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzU5XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzYwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2MF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjFdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzYyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2Ml0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjNdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzY0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials2NF0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY1XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjZdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTG9nLkV2ZW50JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY3XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbNjguMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNjhdICAvLyB4ZGMucnVudGltZS5EaWFncy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzY5XSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzcwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzcwXSAgLy8geGRjLnJ1bnRpbWUuRGlhZ3MvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3MV0gIC8vIHhkYy5ydW50aW1lLkRpYWdzL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncyUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzcyXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzczLjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvcicsICdVVEYtOCcpKQorICAgIF9fb1snRV9nZW5lcmljJ10gPSBfX29ials3NC4wXQorICAgIF9fb1snRV9tZW1vcnknXSA9IF9fb2JqWzc1LjBdCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0Vycm9yX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzc0CisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ05VTUFSR1MnXSA9IDIKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzc2LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbNzcuMF0KKyAgICBfX29bJ21heERlcHRoJ10gPSAxNgorICAgIF9fb1sncG9saWN5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yLlVOV0lORCcsICdVVEYtOCcpKQorICAgIF9fb1sncmFpc2VIb29rJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0Vycm9yX3ByaW50X19FJywgJ1VURi04JykpCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ials5MC4wXQorCitfX28gPSBfX29ials3M10gIC8vIHhkYy5ydW50aW1lLkVycm9yLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzc0XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyMxCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzMScsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dlbmVyaWMrZXJyb3IlM0ErJTI1cycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3NV0gIC8vIHhkYy5ydW50aW1lLkVycm9yLkRlc2MjMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyUyMzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvZGUnXSA9IDAKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdvdXQrb2YrbWVtb3J5JTNBK2hlYXAlM0QweCUyNXglMkMrc2l6ZSUzRCUyNXUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzZdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ials3N10gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbNzguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ials4MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbODIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbODQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ials4Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbODguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials3OF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials3OS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbNzldICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkVycm9yJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzgwXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4MS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODFdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzgyXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4My4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbODNdICAvLyB4ZGMucnVudGltZS5FcnJvci9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4NF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzg1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg1XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4Nl0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzg3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzg3XSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4OF0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvciUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials4OS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ials4OV0gIC8vIHhkYy5ydW50aW1lLkVycm9yL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTBdICAvLyB4ZGMucnVudGltZS5FcnJvci92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRXJyb3IlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5MV0gIC8vIHhkYy5ydW50aW1lLkdhdGUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzkyLjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX0dhdGVfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzUKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbOTMuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ials5NC4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTA3LjBdCisKK19fbyA9IF9fb2JqWzkyXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzkzXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzk0XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzk1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbOTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzk5LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzEwMS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzEwMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTA1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5NV0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbOTYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzk2XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlSGVhcCcsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VTZWN0aW9uJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5tZW1vcnlQb2xpY3knLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZEluc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5meG50YWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LnJvbVBhdGNoVGFibGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOTddICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ials5OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbOThdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ials5OV0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTAwXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEwMV0gIC8vIHhkYy5ydW50aW1lLkdhdGUvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMDIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTAyXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTAzXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDRdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGUlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDVdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEwNi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDZdICAvLyB4ZGMucnVudGltZS5HYXRlL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMDddICAvLyB4ZGMucnVudGltZS5HYXRlL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTA4XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzEwOS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuR2F0ZU51bGwnLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfR2F0ZU51bGxfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzYKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snUV9CTE9DS0lORyddID0gMQorICAgIF9fb1snUV9QUkVFTVBUSU5HJ10gPSAyCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxMTAuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxMTEuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzEyNC4wXQorCitfX28gPSBfX29ialsxMDldICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTBdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsxMTFdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzExMi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzExNC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTE2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzExOC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzEyMC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTIyLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTEyXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzExMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTEzXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTRdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzExNS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE1XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMTZdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzExNy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE3XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTE4XSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTE5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzExOV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIwXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTIxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyMV0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTIyXSAgLy8geGRjLnJ1bnRpbWUuR2F0ZU51bGwvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEyMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjNdICAvLyB4ZGMucnVudGltZS5HYXRlTnVsbC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkdhdGVOdWxsJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyNF0gIC8vIHhkYy5ydW50aW1lLkdhdGVOdWxsL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5HYXRlTnVsbCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyNV0gIC8vIHhkYy5ydW50aW1lLkxvZworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTI2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cnLCAnVVRGLTgnKSkKKyAgICBfX29bJ0xfY29uc3RydWN0J10gPSBfX29ialsxMjcuMF0KKyAgICBfX29bJ0xfY3JlYXRlJ10gPSBfX29ialsxMjguMF0KKyAgICBfX29bJ0xfZGVsZXRlJ10gPSBfX29ialsxMjkuMF0KKyAgICBfX29bJ0xfZGVzdHJ1Y3QnXSA9IF9fb2JqWzEzMC4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9Mb2dfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzcKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snTlVNQVJHUyddID0gOAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snUFJJTlRGSUQnXSA9IDAKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzEzMS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzEzMi4wXQorICAgIF9fb1snaWRUb0luZm8nXSA9IF9fb2JqWzE0NS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTQ2LjBdCisKK19fbyA9IF9fb2JqWzEyNl0gIC8vIHhkYy5ydW50aW1lLkxvZy8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTI3XSAgLy8geGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyMwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snbWFzayddID0gNAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUzQy0tK2NvbnN0cnVjdCUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMjhdICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMxJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTNDLS0rY3JlYXRlJTNBKyUyNXAlMjglMjclMjVzJTI3JTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEyOV0gIC8vIHhkYy5ydW50aW1lLkxvZy5FdmVudERlc2MjMworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkV2ZW50RGVzYyUyMzMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDQKKyAgICBfX29bJ21zZyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctLSUzRStkZWxldGUlM0ErJTI4JTI1cCUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzBdICAvLyB4ZGMucnVudGltZS5Mb2cuRXZlbnREZXNjIzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5FdmVudERlc2MlMjMyJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSA0CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLS0lM0UrZGVzdHJ1Y3QlM0ErJTI4JTI1cCUyOScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzFdICAvLyB4ZGMucnVudGltZS5Mb2cvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzEzMl0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzEzMy4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzEzNS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTM3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzEzOS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE0MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMTQzLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzM10gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzEzNC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTM0XSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzNV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxMzYuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzNl0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzddICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTM4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxMzhdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzEzOV0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0MF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDFdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE0Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDJdICAvLyB4ZGMucnVudGltZS5Mb2cvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQzXSAgLy8geGRjLnJ1bnRpbWUuTG9nL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2clMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTQ0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0NF0gIC8vIHhkYy5ydW50aW1lLkxvZy9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNDVdICAvLyB4ZGMucnVudGltZS5Mb2cvaWRUb0luZm8KKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1snIzQ2OCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9jb25zdHJ1Y3QlM0ElM0ElM0MtLStjb25zdHJ1Y3QlM0ErJTI1cCUyOCUyNyUyNXMlMjclMjknLCAnVVRGLTgnKSkpOyBfX28uJGtleXMucHVzaCgnIzQ2OCcpCisgICAgX19vLnB1c2goX19vWycjNDkyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZy5MX2NyZWF0ZSUzQSUzQSUzQy0tK2NyZWF0ZSUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNDkyJykKKyAgICBfX28ucHVzaChfX29bJyM1MTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nLkxfZGVzdHJ1Y3QlM0ElM0EtLSUzRStkZXN0cnVjdCUzQSslMjglMjVwJTI5JywgJ1VURi04JykpKTsgX19vLiRrZXlzLnB1c2goJyM1MTMnKQorICAgIF9fby5wdXNoKF9fb1snIzUzMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Mb2cuTF9kZWxldGUlM0ElM0EtLSUzRStkZWxldGUlM0ErJTI4JTI1cCUyOScsICdVVEYtOCcpKSk7IF9fby4ka2V5cy5wdXNoKCcjNTMyJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkxvZyUyRmlkVG9JbmZvJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE0Nl0gIC8vIHhkYy5ydW50aW1lLkxvZy92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTG9nJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ3XSAgLy8geGRjLnJ1bnRpbWUuTWFpbgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTQ4LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfR2F0ZVByb3h5J10gPSBfX29ialsxMDguMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfTWFpbl9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc3OAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsxNDkuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsxNTAuMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzE2My4wXQorCitfX28gPSBfX29ialsxNDhdICAvLyB4ZGMucnVudGltZS5NYWluLyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTQ5XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzE1MF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxNTEuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxNTMuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzE1NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxNTcuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxNTkuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzE2MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTUxXSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNTIuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1Ml0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE1M10gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1NC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU0XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU1XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTU2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTZdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTU3XSAgLy8geGRjLnJ1bnRpbWUuTWFpbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE1OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNThdICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNTldICAvLyB4ZGMucnVudGltZS5NYWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTYwLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2MF0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWFpbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2MV0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTYyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2Ml0gIC8vIHhkYy5ydW50aW1lLk1haW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NYWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE2M10gIC8vIHhkYy5ydW50aW1lLk1haW4vdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1haW4lMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNjRdICAvLyB4ZGMucnVudGltZS5NZW1vcnkKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzE2NS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JywgJ1VURi04JykpCisgICAgX19vWydIZWFwUHJveHknXSA9IF9fb2JqWzE2Ni4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9NZW1vcnlfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3NzkKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snUV9CTE9DS0lORyddID0gMQorICAgIF9fb1snY29tbW9uJCddID0gX19vYmpbMTg5LjBdCisgICAgX19vWydjb25maWdOYW1lTWFwJCddID0gX19vYmpbMTkwLjBdCisgICAgX19vWydkZWZhdWx0SGVhcEluc3RhbmNlJ10gPSBfX29ialsxNjguMF0KKyAgICBfX29bJ2RlZmF1bHRIZWFwU2l6ZSddID0gNDA5NgorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMjAzLjBdCisKK19fbyA9IF9fb2JqWzE2NV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTY2XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMTY3LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJywgJ1VURi04JykpCisgICAgX19vWydBX2ludmFsaWRBbGlnbm1lbnQnXSA9IF9fb2JqWzE3MC4wXQorICAgIF9fb1snQV9pbnZhbGlkVG90YWxGcmVlU2l6ZSddID0gX19vYmpbMTcxLjBdCisgICAgX19vWydBX3plcm9TaXplJ10gPSBfX29ialsxNzIuMF0KKyAgICBfX29bJ0Vfbm9SVFNNZW1vcnknXSA9IF9fb2JqWzE3My4wXQorICAgIF9fb1snTW9kdWxlX19kaWFnc0VuYWJsZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzSW5jbHVkZWQnXSA9IDE2CisgICAgX19vWydNb2R1bGVfX2RpYWdzTWFzayddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9IZWFwU3RkX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzgwCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzE3NC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzE3NS4wXQorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMTg4LjBdCisKK19fbyA9IF9fb2JqWzE2N10gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvJGluc3RhbmNlcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRiUyNGluc3RhbmNlcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gX19vYmpbMTY4LjBdCisKK19fbyA9IF9fb2JqWzE2OF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UjMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0luc3RhbmNlJywgJ1VURi04JykpCisgICAgX19vWyckbW9kdWxlJ10gPSBfX29ialsxNjYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UlMjMwJywgJ1VURi04JykpCisgICAgX19vWydpbnN0YW5jZSddID0gX19vYmpbMTY5LjBdCisgICAgX19vWydzaXplJ10gPSA0MDk2CisKK19fbyA9IF9fb2JqWzE2OV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQuSW5zdGFuY2UjMC9pbnN0YW5jZQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZC5JbnN0YW5jZSUyMzAlMkZpbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZSddID0gbnVsbAorCitfX28gPSBfX29ialsxNzBdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyM0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSGVhcFN0ZF9hbGxvYystK3JlcXVlc3RlZCthbGlnbm1lbnQraXMrZ3JlYXRlcit0aGFuK2FsbG93ZWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTcxXSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjMworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjMzJywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0hlYXBTdGQraW5zdGFuY2UrdG90YWxGcmVlU2l6ZStpcytncmVhdGVyK3RoYW4rc3RhcnRpbmcrc2l6ZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxNzJdICAvLyB4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyMyCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5Bc3NlcnQuRGVzYyUyMzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ21hc2snXSA9IDE2CisgICAgX19vWydtc2cnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSGVhcFN0ZF9jcmVhdGUrY2Fubm90K2hhdmUrYSt6ZXJvK3NpemUrdmFsdWUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTczXSAgLy8geGRjLnJ1bnRpbWUuRXJyb3IuRGVzYyM0CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5FcnJvci5EZXNjJTIzNCcsICdVVEYtOCcpKQorICAgIF9fb1snY29kZSddID0gMAorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1RoZStSVFMraGVhcCtpcyt1c2VkK3VwLitFeGFtaW5lK1Byb2dyYW0uaGVhcC4nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc0XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzE3NV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsxNzYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsxNzguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzE4MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsxODIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsxODQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzE4Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc2XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxNzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3N10gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE3OF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE3OS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTc5XSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTgwXSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTgxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODFdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTgyXSAgLy8geGRjLnJ1bnRpbWUuSGVhcFN0ZC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE4My4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODNdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODRdICAvLyB4ZGMucnVudGltZS5IZWFwU3RkL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTg1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4NV0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuSGVhcFN0ZCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4Nl0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTg3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4N10gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5IZWFwU3RkJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE4OF0gIC8vIHhkYy5ydW50aW1lLkhlYXBTdGQvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkhlYXBTdGQlMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxODldICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzE5MF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzE5MS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzE5My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMTk1LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzE5Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzE5OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjAxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5MV0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzE5Mi4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMTkyXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5M10gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsxOTQuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5NF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTVdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTk2LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTZdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5N10gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMTk4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzE5OF0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsxOTldICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIwMC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDBdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuTWVtb3J5JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjAxXSAgLy8geGRjLnJ1bnRpbWUuTWVtb3J5L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5NZW1vcnklMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjAyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwMl0gIC8vIHhkYy5ydW50aW1lLk1lbW9yeS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDNdICAvLyB4ZGMucnVudGltZS5NZW1vcnkvdmlld05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLk1lbW9yeSUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwNF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRpbnN0YW5jZXMnXSA9IF9fb2JqWzIwNS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCcsICdVVEYtOCcpKQorICAgIF9fb1snRE9ORSddID0gLTEKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3RhcnR1cF9Nb2R1bGVfX3Jvb3RfX1YuaGRyLmRpYWdzTWFzaycsICdVVEYtOCcpKQorICAgIF9fb1snTW9kdWxlX19nYXRlT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2dhdGVQcm1zJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2lkJ10gPSAzMjc4MQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJEZWZpbmVkJ10gPSBmYWxzZQorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG40J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjgnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyT2JqJ10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX3N0YXJ0dXBEb25lRnhuJ10gPSBudWxsCisgICAgX19vWydOT1RET05FJ10gPSAwCisgICAgX19vWydPYmplY3RfX2NvdW50J10gPSAwCisgICAgX19vWydPYmplY3RfX2hlYXAnXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fc2l6ZW9mJ10gPSAwCisgICAgX19vWydPYmplY3RfX3RhYmxlJ10gPSBudWxsCisgICAgX19vWydjb21tb24kJ10gPSBfX29ialsyMDYuMF0KKyAgICBfX29bJ2NvbmZpZ05hbWVNYXAkJ10gPSBfX29ialsyMDcuMF0KKyAgICBfX29bJ2V4ZWNJbXBsJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fSScsICdVVEYtOCcpKQorICAgIF9fb1snZmlyc3RGeG5zJ10gPSBfX29ialsyMjAuMF0KKyAgICBfX29bJ2xhc3RGeG5zJ10gPSBfX29ialsyMjEuMF0KKyAgICBfX29bJ21heFBhc3NlcyddID0gMzIKKyAgICBfX29bJ3Jlc2V0RnhuJ10gPSBudWxsCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1snc2Z4blJ0cyddID0gX19vYmpbMjIyLjBdCisgICAgX19vWydzZnhuVGFiJ10gPSBfX29ialsyMjMuMF0KKyAgICBfX29bJ3N0YXJ0TW9kc0Z4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TdGFydHVwX3N0YXJ0TW9kc19fSScsICdVVEYtOCcpKQorICAgIF9fb1sndmlld05hbWVNYXAkJ10gPSBfX29ialsyMjQuMF0KKworX19vID0gX19vYmpbMjA1XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwNl0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyMDddICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL01lbW9yeSddID0gX19vYmpbMjA4LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL01lbW9yeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9EaWFnbm9zdGljcyddID0gX19vYmpbMjEwLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5J10gPSBfX29ialsyMTIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cyddID0gX19vYmpbMjE0LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQXNzZXJ0cyddID0gX19vYmpbMjE2LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Fzc2VydHMnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRXJyb3JzJ10gPSBfX29ialsyMTguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRXJyb3JzJykKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdNYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIwOF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZNZW1vcnklMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjA5LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMDldICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTBdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9EaWFnbm9zdGljcycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxMV0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubG9nZ2VyJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19BU1NFUlQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VOVFJZJywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FWElUJywgJ1VURi04JykpCisgICAgX19vWyc0J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19JTlRFUk5BTCcsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfTElGRUNZQ0xFJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMScsICdVVEYtOCcpKQorICAgIF9fb1snNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjInLCAnVVRGLTgnKSkKKyAgICBfX29bJzgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIzJywgJ1VURi04JykpCisgICAgX19vWyc5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNCcsICdVVEYtOCcpKQorICAgIF9fb1snMTAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI1JywgJ1VURi04JykpCisgICAgX19vWycxMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjYnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNycsICdVVEYtOCcpKQorICAgIF9fb1snMTMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI4JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxMl0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxMy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjEzXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIxNF0gIC8vIHhkYy5ydW50aW1lLlN0YXJ0dXAvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMTUuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE1XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjE2XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQXNzZXJ0cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxNy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTddICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Fzc2VydC5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMThdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIxOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMTldICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjBdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2ZpcnN0RnhucworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRmZpcnN0RnhucycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMjFdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL2xhc3RGeG5zCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGbGFzdEZ4bnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjIyXSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC9zZnhuUnRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TdGFydHVwJTJGc2Z4blJ0cycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gdHJ1ZQorICAgIF9fb1snMSddID0gdHJ1ZQorCitfX28gPSBfX29ialsyMjNdICAvLyB4ZGMucnVudGltZS5TdGFydHVwL3NmeG5UYWIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN0YXJ0dXAlMkZzZnhuVGFiJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c3RlbV9Nb2R1bGVfc3RhcnR1cF9fRScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjZ4ZGNfcnVudGltZV9TeXNNaW5fTW9kdWxlX3N0YXJ0dXBfX0UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI0XSAgLy8geGRjLnJ1bnRpbWUuU3RhcnR1cC92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCUyRnZpZXdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyNV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjI2LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0nLCAnVVRGLTgnKSkKKyAgICBfX29bJ0FfY2Fubm90Rml0SW50b0FyZyddID0gX19vYmpbMjI3LjBdCisgICAgX19vWydNb2R1bGVfR2F0ZVByb3h5J10gPSBfX29ialsxMDguMF0KKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzdGVtX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzgyCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ1NUQVRVU19VTktOT1dOJ10gPSA1MTk2NgorICAgIF9fb1snU3VwcG9ydFByb3h5J10gPSBfX29ialsyMjguMF0KKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzI1NS4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzI1Ni4wXQorICAgIF9fb1snZXhpdEZ4bnMnXSA9IF9fb2JqWzI2OS4wXQorICAgIF9fb1snZXh0ZW5kRnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1N5c3RlbV9wcmludGZFeHRlbmRfX0knLCAnVVRGLTgnKSkKKyAgICBfX29bJ2V4dGVuZGVkRm9ybWF0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjUlMjRMJywgJ1VURi04JykpCisgICAgX19vWydtYXhBdGV4aXRIYW5kbGVycyddID0gOAorICAgIF9fb1sncm92U2hvd1Jhd1RhYiQnXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMjcwLjBdCisKK19fbyA9IF9fb2JqWzIyNl0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjI3XSAgLy8geGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MjNQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuQXNzZXJ0LkRlc2MlMjM1JywgJ1VURi04JykpCisgICAgX19vWydtYXNrJ10gPSAxNgorICAgIF9fb1snbXNnJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0FfY2Fubm90Rml0SW50b0FyZyUzQStzaXplb2YlMjhGbG9hdCUyOSslM0Urc2l6ZW9mJTI4QXJnJTI5JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIyOF0gIC8vIHhkYy5ydW50aW1lLlN5c01pbgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjI5LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4nLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NFbmFibGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc0luY2x1ZGVkJ10gPSAxNgorICAgIF9fb1snTW9kdWxlX19kaWFnc01hc2snXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzTWluX01vZHVsZV9fcm9vdF9fVi5oZHIuZGlhZ3NNYXNrJywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2dhdGVPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZVBybXMnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9faWQnXSA9IDMyNzgzCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckRlZmluZWQnXSA9IGZhbHNlCisgICAgX19vWydNb2R1bGVfX2xvZ2dlckZ4bjQnXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuOCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJPYmonXSA9IG51bGwKKyAgICBfX29bJ01vZHVsZV9fc3RhcnR1cERvbmVGeG4nXSA9IG51bGwKKyAgICBfX29bJ09iamVjdF9fY291bnQnXSA9IDAKKyAgICBfX29bJ09iamVjdF9faGVhcCddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19zaXplb2YnXSA9IDAKKyAgICBfX29bJ09iamVjdF9fdGFibGUnXSA9IG51bGwKKyAgICBfX29bJ2J1ZlNpemUnXSA9IDEwMjQKKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzIzMC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzIzMS4wXQorICAgIF9fb1snZmx1c2hBdEV4aXQnXSA9IHRydWUKKyAgICBfX29bJ291dHB1dEZ1bmMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJTI2eGRjX3J1bnRpbWVfU3lzTWluX291dHB1dF9fSScsICdVVEYtOCcpKQorICAgIF9fb1snb3V0cHV0RnhuJ10gPSBudWxsCisgICAgX19vWydyb3ZTaG93UmF3VGFiJCddID0gdHJ1ZQorICAgIF9fb1sncm92Vmlld0luZm8nXSA9IF9fb2JqWzI0NC4wXQorICAgIF9fb1snc2VjdGlvbk5hbWUnXSA9IG51bGwKKyAgICBfX29bJ3ZpZXdOYW1lTWFwJCddID0gX19vYmpbMjU0LjBdCisKK19fbyA9IF9fb2JqWzIyOV0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjMwXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbW1vbiQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbW1vbiUyNCcsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfQVNTRVJUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PTicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRU5UUlknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfRVhJVCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19JTlRFUk5BTCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19MSUZFQ1lDTEUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZGlhZ3NfVVNFUjgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09GRicsICdVVEYtOCcpKQorICAgIF9fb1snZnhudGFiJ10gPSB0cnVlCisgICAgX19vWydnYXRlJ10gPSBudWxsCisgICAgX19vWydnYXRlUGFyYW1zJ10gPSBudWxsCisgICAgX19vWydpbnN0YW5jZUhlYXAnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlU2VjdGlvbiddID0gbnVsbAorICAgIF9fb1snbG9nZ2VyJ10gPSBudWxsCisgICAgX19vWydtZW1vcnlQb2xpY3knXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVHlwZXMuREVMRVRFX1BPTElDWScsICdVVEYtOCcpKQorICAgIF9fb1snbmFtZWRJbnN0YW5jZSddID0gZmFsc2UKKyAgICBfX29bJ25hbWVkTW9kdWxlJ10gPSB0cnVlCisgICAgX19vWydyb21QYXRjaFRhYmxlJ10gPSBmYWxzZQorCitfX28gPSBfX29ialsyMzFdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyMzIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyMzQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzIzNi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyMzguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyNDAuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzI0Mi4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzJdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyMzMuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzIzM10gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuaW5zdGFuY2VIZWFwJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZVNlY3Rpb24nLCAnVVRGLTgnKSkKKyAgICBfX29bJzInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm1lbW9yeVBvbGljeScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRNb2R1bGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lm5hbWVkSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmZ4bnRhYicsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQucm9tUGF0Y2hUYWJsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzRdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjM1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzVdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM2XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzNy4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjM3XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZDb25jdXJyZW5jeSUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZScsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZ2F0ZVBhcmFtcycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzhdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzIzOS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyMzldICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTG9nK0V2ZW50cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdMb2cuRXZlbnQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQwXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNDEuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnaW5zdGFuY2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQxXSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c01pbiUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0Ml0gIC8vIHhkYy5ydW50aW1lLlN5c01pbi9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzTWluJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI0My4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNDNdICAvLyB4ZGMucnVudGltZS5TeXNNaW4vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnRXJyb3IuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQ0XSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnSW5zdGFuY2UnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRtb2R1bGUnXSA9IF9fb2JqWzI0NS4wXQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3Nob3dSYXdUYWInXSA9IHRydWUKKyAgICBfX29bJ3ZpZXdNYXAnXSA9IF9fb2JqWzI1MS4wXQorCitfX28gPSBfX29ialsyNDVdICAvLyB4ZGMucm92LlZpZXdJbmZvCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlJywgJ1VURi04JykpCisgICAgX19vWyckaW5zdGFuY2VzJ10gPSBfX29ialsyNDYuMF0KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjQ2XSAgLy8geGRjLnJvdi5WaWV3SW5mby8kaW5zdGFuY2VzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvJTJGJTI0aW5zdGFuY2VzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBfX29ialsyNDcuMF0KKyAgICBfX29bJzEnXSA9IF9fb2JqWzI0NC4wXQorCitfX28gPSBfX29ialsyNDddICAvLyB4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlIzAKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snJG1vZHVsZSddID0gX19vYmpbMjQ1LjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMCcsICdVVEYtOCcpKQorICAgIF9fb1snc2hvd1Jhd1RhYiddID0gdHJ1ZQorICAgIF9fb1sndmlld01hcCddID0gX19vYmpbMjQ4LjBdCisKK19fbyA9IF9fb2JqWzI0OF0gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMC92aWV3TWFwCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ0Jhc2ljJ10gPSBfX29ialsyNDkuMF0pOyBfX28uJGtleXMucHVzaCgnQmFzaWMnKQorICAgIF9fby5wdXNoKF9fb1snUmVjb3JkcyddID0gX19vYmpbMjUwLjBdKTsgX19vLiRrZXlzLnB1c2goJ1JlY29yZHMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAlMkZ2aWV3TWFwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI0OV0gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMC92aWV3TWFwLydCYXNpYycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMwJTJGdmlld01hcCUyRiUyN0Jhc2ljJTI3JywgJ1VURi04JykpCisgICAgX19vWydzdHJ1Y3ROYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Jhc2ljVmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLklOU1RBTkNFJywgJ1VURi04JykpCisgICAgX19vWyd2aWV3SW5pdEZ4biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd2aWV3SW5pdEJhc2ljJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1MF0gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMC92aWV3TWFwLydSZWNvcmRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzAlMkZ2aWV3TWFwJTJGJTI3UmVjb3JkcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdSZWNvcmRWaWV3JywgJ1VURi04JykpCisgICAgX19vWyd0eXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSU5TVEFOQ0VfREFUQScsICdVVEYtOCcpKQorICAgIF9fb1sndmlld0luaXRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndmlld0luaXRSZWNvcmRzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1MV0gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwCisgICAgX19vLiRrZXlzID0gW10KKyAgICBfX28ucHVzaChfX29bJ01vZHVsZSddID0gX19vYmpbMjUyLjBdKTsgX19vLiRrZXlzLnB1c2goJ01vZHVsZScpCisgICAgX19vLnB1c2goX19vWydPdXRwdXRCdWZmZXInXSA9IF9fb2JqWzI1My4wXSk7IF9fby4ka2V5cy5wdXNoKCdPdXRwdXRCdWZmZXInKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSUyMzElMkZ2aWV3TWFwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1Ml0gIC8vIHhkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UjMS92aWV3TWFwLydNb2R1bGUnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLkluc3RhbmNlJTIzMSUyRnZpZXdNYXAlMkYlMjdNb2R1bGUlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0cnVjdE5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTW9kdWxlVmlldycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucm92LlZpZXdJbmZvLk1PRFVMRScsICdVVEYtOCcpKQorICAgIF9fb1sndmlld0luaXRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndmlld0luaXRNb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjUzXSAgLy8geGRjLnJvdi5WaWV3SW5mby5JbnN0YW5jZSMxL3ZpZXdNYXAvJ091dHB1dEJ1ZmZlcicKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5yb3YuVmlld0luZm8uSW5zdGFuY2UlMjMxJTJGdmlld01hcCUyRiUyN091dHB1dEJ1ZmZlciUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3RydWN0TmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdCdWZmZXJFbnRyeVZpZXcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJvdi5WaWV3SW5mby5NT0RVTEVfREFUQScsICdVVEYtOCcpKQorICAgIF9fb1sndmlld0luaXRGeG4nXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgndmlld0luaXRPdXRwdXRCdWZmZXInLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU0XSAgLy8geGRjLnJ1bnRpbWUuU3lzTWluL3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXNNaW4lMkZ2aWV3TmFtZU1hcCUyNCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNTVdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29tbW9uJAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzI1Nl0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9NZW1vcnknXSA9IF9fb2JqWzI1Ny4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9NZW1vcnknKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnXSA9IF9fb2JqWzI1OS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9EaWFnbm9zdGljcycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Db25jdXJyZW5jeSddID0gX19vYmpbMjYxLjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0xvZyBFdmVudHMnXSA9IF9fb2JqWzI2My4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Fzc2VydHMnXSA9IF9fb2JqWzI2NS4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Bc3NlcnRzJykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0Vycm9ycyddID0gX19vYmpbMjY3LjBdKTsgX19vLiRrZXlzLnB1c2goJ3hkYy5ydW50aW1lL0Vycm9ycycpCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1N10gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI1OC4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjU4XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9NZW1vcnknL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI1OV0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZEaWFnbm9zdGljcyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNjAuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2MF0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRGlhZ25vc3RpY3MlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmxvZ2dlcicsICdVVEYtOCcpKQorICAgIF9fb1snMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfQVNTRVJUJywgJ1VURi04JykpCisgICAgX19vWycyJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19FTlRSWScsICdVVEYtOCcpKQorICAgIF9fb1snMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRVhJVCcsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfSU5URVJOQUwnLCAnVVRGLTgnKSkKKyAgICBfX29bJzUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0xJRkVDWUNMRScsICdVVEYtOCcpKQorICAgIF9fb1snNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjEnLCAnVVRGLTgnKSkKKyAgICBfX29bJzcnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIyJywgJ1VURi04JykpCisgICAgX19vWyc4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMycsICdVVEYtOCcpKQorICAgIF9fb1snOSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNScsICdVVEYtOCcpKQorICAgIF9fb1snMTEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI2JywgJ1VURi04JykpCisgICAgX19vWycxMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSOCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjFdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjYyLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjJdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0NvbmN1cnJlbmN5Jy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkNvbmN1cnJlbmN5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlJywgJ1VURi04JykpCisgICAgX19vWycxJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5nYXRlUGFyYW1zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2M10gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkxvZytFdmVudHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjY0LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2NF0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjVdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZBc3NlcnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI2Ni4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjZdICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQXNzZXJ0cyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdBc3NlcnQuSWQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjY3XSAgLy8geGRjLnJ1bnRpbWUuU3lzdGVtL2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9FcnJvcnMnCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5TeXN0ZW0lMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjY4LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI2OF0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRXJyb3JzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkVycm9ycyUyNyUyRmZpZWxkcycsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdFcnJvci5JZCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNjldICAvLyB4ZGMucnVudGltZS5TeXN0ZW0vZXhpdEZ4bnMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlN5c3RlbSUyRmV4aXRGeG5zJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3MF0gIC8vIHhkYy5ydW50aW1lLlN5c3RlbS92aWV3TmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuU3lzdGVtJTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjcxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snJGluc3RhbmNlcyddID0gX19vYmpbMjcyLjBdCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JywgJ1VURi04JykpCisgICAgX19vWydNb2R1bGVfX2RpYWdzRW5hYmxlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NJbmNsdWRlZCddID0gMTYKKyAgICBfX29bJ01vZHVsZV9fZGlhZ3NNYXNrJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1RleHRfTW9kdWxlX19yb290X19WLmhkci5kaWFnc01hc2snLCAnVVRGLTgnKSkKKyAgICBfX29bJ01vZHVsZV9fZ2F0ZU9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19nYXRlUHJtcyddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19pZCddID0gMzI3ODQKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRGVmaW5lZCddID0gZmFsc2UKKyAgICBfX29bJ01vZHVsZV9fbG9nZ2VyRnhuNCddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19sb2dnZXJGeG44J10gPSBudWxsCisgICAgX19vWydNb2R1bGVfX2xvZ2dlck9iaiddID0gbnVsbAorICAgIF9fb1snTW9kdWxlX19zdGFydHVwRG9uZUZ4biddID0gbnVsbAorICAgIF9fb1snT2JqZWN0X19jb3VudCddID0gMAorICAgIF9fb1snT2JqZWN0X19oZWFwJ10gPSBudWxsCisgICAgX19vWydPYmplY3RfX3NpemVvZiddID0gMAorICAgIF9fb1snT2JqZWN0X190YWJsZSddID0gbnVsbAorICAgIF9fb1snY2hhckNudCddID0gNjYxCisgICAgX19vWydjaGFyVGFiJ10gPSBfX29ialsyNzMuMF0KKyAgICBfX29bJ2NvbW1vbiQnXSA9IF9fb2JqWzI3NC4wXQorICAgIF9fb1snY29uZmlnTmFtZU1hcCQnXSA9IF9fb2JqWzI3NS4wXQorICAgIF9fb1snaXNMb2FkZWQnXSA9IHRydWUKKyAgICBfX29bJ25hbWVFbXB0eSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclN0JlbXB0eS1pbnN0YW5jZS1uYW1lJTdEJywgJ1VURi04JykpCisgICAgX19vWyduYW1lU3RhdGljJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyU3QnN0YXRpYy1pbnN0YW5jZS1uYW1lJTdEJywgJ1VURi04JykpCisgICAgX19vWyduYW1lVW5rbm93biddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclN0J1bmtub3duLWluc3RhbmNlLW5hbWUlN0QnLCAnVVRGLTgnKSkKKyAgICBfX29bJ25vZGVDbnQnXSA9IDE3CisgICAgX19vWydub2RlVGFiJ10gPSBfX29ialsyODguMF0KKyAgICBfX29bJ3JvdlNob3dSYXdUYWIkJ10gPSB0cnVlCisgICAgX19vWyd2aWV3TmFtZU1hcCQnXSA9IF9fb2JqWzMwNi4wXQorICAgIF9fb1sndmlzaXRSb3BlRnhuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlX19JJywgJ1VURi04JykpCisgICAgX19vWyd2aXNpdFJvcGVGeG4yJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNnhkY19ydW50aW1lX1RleHRfdmlzaXRSb3BlMl9fSScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyNzJdICAvLyB4ZGMucnVudGltZS5UZXh0LyRpbnN0YW5jZXMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkYlMjRpbnN0YW5jZXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjczXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jaGFyVGFiCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY2hhclRhYicsICdVVEYtOCcpKQorICAgIF9fb1snMCddID0gMAorICAgIF9fb1snMSddID0gNjUKKyAgICBfX29bJzInXSA9IDk1CisgICAgX19vWyczJ10gPSAxMDUKKyAgICBfX29bJzQnXSA9IDExMAorICAgIF9fb1snNSddID0gMTA1CisgICAgX19vWyc2J10gPSAxMTYKKyAgICBfX29bJzcnXSA9IDEwNQorICAgIF9fb1snOCddID0gOTcKKyAgICBfX29bJzknXSA9IDEwOAorICAgIF9fb1snMTAnXSA9IDEwNQorICAgIF9fb1snMTEnXSA9IDEyMgorICAgIF9fb1snMTInXSA9IDEwMQorICAgIF9fb1snMTMnXSA9IDEwMAorICAgIF9fb1snMTQnXSA9IDgwCisgICAgX19vWycxNSddID0gOTcKKyAgICBfX29bJzE2J10gPSAxMTQKKyAgICBfX29bJzE3J10gPSA5NworICAgIF9fb1snMTgnXSA9IDEwOQorICAgIF9fb1snMTknXSA9IDExNQorICAgIF9fb1snMjAnXSA9IDU4CisgICAgX19vWycyMSddID0gMzIKKyAgICBfX29bJzIyJ10gPSAxMTcKKyAgICBfX29bJzIzJ10gPSAxMTAKKyAgICBfX29bJzI0J10gPSAxMDUKKyAgICBfX29bJzI1J10gPSAxMTAKKyAgICBfX29bJzI2J10gPSAxMDUKKyAgICBfX29bJzI3J10gPSAxMTYKKyAgICBfX29bJzI4J10gPSAxMDUKKyAgICBfX29bJzI5J10gPSA5NworICAgIF9fb1snMzAnXSA9IDEwOAorICAgIF9fb1snMzEnXSA9IDEwNQorICAgIF9fb1snMzInXSA9IDEyMgorICAgIF9fb1snMzMnXSA9IDEwMQorICAgIF9fb1snMzQnXSA9IDEwMAorICAgIF9fb1snMzUnXSA9IDMyCisgICAgX19vWyczNiddID0gODAKKyAgICBfX29bJzM3J10gPSA5NworICAgIF9fb1snMzgnXSA9IDExNAorICAgIF9fb1snMzknXSA9IDk3CisgICAgX19vWyc0MCddID0gMTA5CisgICAgX19vWyc0MSddID0gMTE1CisgICAgX19vWyc0MiddID0gMzIKKyAgICBfX29bJzQzJ10gPSAxMTUKKyAgICBfX29bJzQ0J10gPSAxMTYKKyAgICBfX29bJzQ1J10gPSAxMTQKKyAgICBfX29bJzQ2J10gPSAxMTcKKyAgICBfX29bJzQ3J10gPSA5OQorICAgIF9fb1snNDgnXSA9IDExNgorICAgIF9fb1snNDknXSA9IDAKKyAgICBfX29bJzUwJ10gPSA3MgorICAgIF9fb1snNTEnXSA9IDEwMQorICAgIF9fb1snNTInXSA9IDk3CisgICAgX19vWyc1MyddID0gMTEyCisgICAgX19vWyc1NCddID0gNzcKKyAgICBfX29bJzU1J10gPSAxMDUKKyAgICBfX29bJzU2J10gPSAxMTAKKyAgICBfX29bJzU3J10gPSA5NQorICAgIF9fb1snNTgnXSA9IDk5CisgICAgX19vWyc1OSddID0gMTE0CisgICAgX19vWyc2MCddID0gMTAxCisgICAgX19vWyc2MSddID0gOTcKKyAgICBfX29bJzYyJ10gPSAxMTYKKyAgICBfX29bJzYzJ10gPSAxMDEKKyAgICBfX29bJzY0J10gPSAzMgorICAgIF9fb1snNjUnXSA9IDk5CisgICAgX19vWyc2NiddID0gOTcKKyAgICBfX29bJzY3J10gPSAxMTAKKyAgICBfX29bJzY4J10gPSAxMTAKKyAgICBfX29bJzY5J10gPSAxMTEKKyAgICBfX29bJzcwJ10gPSAxMTYKKyAgICBfX29bJzcxJ10gPSAzMgorICAgIF9fb1snNzInXSA9IDEwNAorICAgIF9fb1snNzMnXSA9IDk3CisgICAgX19vWyc3NCddID0gMTE4CisgICAgX19vWyc3NSddID0gMTAxCisgICAgX19vWyc3NiddID0gMzIKKyAgICBfX29bJzc3J10gPSA5NworICAgIF9fb1snNzgnXSA9IDMyCisgICAgX19vWyc3OSddID0gMTIyCisgICAgX19vWyc4MCddID0gMTAxCisgICAgX19vWyc4MSddID0gMTE0CisgICAgX19vWyc4MiddID0gMTExCisgICAgX19vWyc4MyddID0gMzIKKyAgICBfX29bJzg0J10gPSAxMTUKKyAgICBfX29bJzg1J10gPSAxMDUKKyAgICBfX29bJzg2J10gPSAxMjIKKyAgICBfX29bJzg3J10gPSAxMDEKKyAgICBfX29bJzg4J10gPSAzMgorICAgIF9fb1snODknXSA9IDExOAorICAgIF9fb1snOTAnXSA9IDk3CisgICAgX19vWyc5MSddID0gMTA4CisgICAgX19vWyc5MiddID0gMTE3CisgICAgX19vWyc5MyddID0gMTAxCisgICAgX19vWyc5NCddID0gMAorICAgIF9fb1snOTUnXSA9IDcyCisgICAgX19vWyc5NiddID0gMTAxCisgICAgX19vWyc5NyddID0gOTcKKyAgICBfX29bJzk4J10gPSAxMTIKKyAgICBfX29bJzk5J10gPSA4MworICAgIF9fb1snMTAwJ10gPSAxMTYKKyAgICBfX29bJzEwMSddID0gMTAwCisgICAgX19vWycxMDInXSA9IDk1CisgICAgX19vWycxMDMnXSA9IDk5CisgICAgX19vWycxMDQnXSA9IDExNAorICAgIF9fb1snMTA1J10gPSAxMDEKKyAgICBfX29bJzEwNiddID0gOTcKKyAgICBfX29bJzEwNyddID0gMTE2CisgICAgX19vWycxMDgnXSA9IDEwMQorICAgIF9fb1snMTA5J10gPSAzMgorICAgIF9fb1snMTEwJ10gPSA5OQorICAgIF9fb1snMTExJ10gPSA5NworICAgIF9fb1snMTEyJ10gPSAxMTAKKyAgICBfX29bJzExMyddID0gMTEwCisgICAgX19vWycxMTQnXSA9IDExMQorICAgIF9fb1snMTE1J10gPSAxMTYKKyAgICBfX29bJzExNiddID0gMzIKKyAgICBfX29bJzExNyddID0gMTA0CisgICAgX19vWycxMTgnXSA9IDk3CisgICAgX19vWycxMTknXSA9IDExOAorICAgIF9fb1snMTIwJ10gPSAxMDEKKyAgICBfX29bJzEyMSddID0gMzIKKyAgICBfX29bJzEyMiddID0gOTcKKyAgICBfX29bJzEyMyddID0gMzIKKyAgICBfX29bJzEyNCddID0gMTIyCisgICAgX19vWycxMjUnXSA9IDEwMQorICAgIF9fb1snMTI2J10gPSAxMTQKKyAgICBfX29bJzEyNyddID0gMTExCisgICAgX19vWycxMjgnXSA9IDMyCisgICAgX19vWycxMjknXSA9IDExNQorICAgIF9fb1snMTMwJ10gPSAxMDUKKyAgICBfX29bJzEzMSddID0gMTIyCisgICAgX19vWycxMzInXSA9IDEwMQorICAgIF9fb1snMTMzJ10gPSAzMgorICAgIF9fb1snMTM0J10gPSAxMTgKKyAgICBfX29bJzEzNSddID0gOTcKKyAgICBfX29bJzEzNiddID0gMTA4CisgICAgX19vWycxMzcnXSA9IDExNworICAgIF9fb1snMTM4J10gPSAxMDEKKyAgICBfX29bJzEzOSddID0gMAorICAgIF9fb1snMTQwJ10gPSA3MgorICAgIF9fb1snMTQxJ10gPSAxMDEKKyAgICBfX29bJzE0MiddID0gOTcKKyAgICBfX29bJzE0MyddID0gMTEyCisgICAgX19vWycxNDQnXSA9IDgzCisgICAgX19vWycxNDUnXSA9IDExNgorICAgIF9fb1snMTQ2J10gPSAxMDAKKyAgICBfX29bJzE0NyddID0gMzIKKyAgICBfX29bJzE0OCddID0gMTA1CisgICAgX19vWycxNDknXSA9IDExMAorICAgIF9fb1snMTUwJ10gPSAxMTUKKyAgICBfX29bJzE1MSddID0gMTE2CisgICAgX19vWycxNTInXSA9IDk3CisgICAgX19vWycxNTMnXSA9IDExMAorICAgIF9fb1snMTU0J10gPSA5OQorICAgIF9fb1snMTU1J10gPSAxMDEKKyAgICBfX29bJzE1NiddID0gMzIKKyAgICBfX29bJzE1NyddID0gMTE2CisgICAgX19vWycxNTgnXSA9IDExMQorICAgIF9fb1snMTU5J10gPSAxMTYKKyAgICBfX29bJzE2MCddID0gOTcKKyAgICBfX29bJzE2MSddID0gMTA4CisgICAgX19vWycxNjInXSA9IDcwCisgICAgX19vWycxNjMnXSA9IDExNAorICAgIF9fb1snMTY0J10gPSAxMDEKKyAgICBfX29bJzE2NSddID0gMTAxCisgICAgX19vWycxNjYnXSA9IDgzCisgICAgX19vWycxNjcnXSA9IDEwNQorICAgIF9fb1snMTY4J10gPSAxMjIKKyAgICBfX29bJzE2OSddID0gMTAxCisgICAgX19vWycxNzAnXSA9IDMyCisgICAgX19vWycxNzEnXSA9IDEwNQorICAgIF9fb1snMTcyJ10gPSAxMTUKKyAgICBfX29bJzE3MyddID0gMzIKKyAgICBfX29bJzE3NCddID0gMTAzCisgICAgX19vWycxNzUnXSA9IDExNAorICAgIF9fb1snMTc2J10gPSAxMDEKKyAgICBfX29bJzE3NyddID0gOTcKKyAgICBfX29bJzE3OCddID0gMTE2CisgICAgX19vWycxNzknXSA9IDEwMQorICAgIF9fb1snMTgwJ10gPSAxMTQKKyAgICBfX29bJzE4MSddID0gMzIKKyAgICBfX29bJzE4MiddID0gMTE2CisgICAgX19vWycxODMnXSA9IDEwNAorICAgIF9fb1snMTg0J10gPSA5NworICAgIF9fb1snMTg1J10gPSAxMTAKKyAgICBfX29bJzE4NiddID0gMzIKKyAgICBfX29bJzE4NyddID0gMTE1CisgICAgX19vWycxODgnXSA9IDExNgorICAgIF9fb1snMTg5J10gPSA5NworICAgIF9fb1snMTkwJ10gPSAxMTQKKyAgICBfX29bJzE5MSddID0gMTE2CisgICAgX19vWycxOTInXSA9IDEwNQorICAgIF9fb1snMTkzJ10gPSAxMTAKKyAgICBfX29bJzE5NCddID0gMTAzCisgICAgX19vWycxOTUnXSA9IDMyCisgICAgX19vWycxOTYnXSA9IDExNQorICAgIF9fb1snMTk3J10gPSAxMDUKKyAgICBfX29bJzE5OCddID0gMTIyCisgICAgX19vWycxOTknXSA9IDEwMQorICAgIF9fb1snMjAwJ10gPSAwCisgICAgX19vWycyMDEnXSA9IDcyCisgICAgX19vWycyMDInXSA9IDEwMQorICAgIF9fb1snMjAzJ10gPSA5NworICAgIF9fb1snMjA0J10gPSAxMTIKKyAgICBfX29bJzIwNSddID0gODMKKyAgICBfX29bJzIwNiddID0gMTE2CisgICAgX19vWycyMDcnXSA9IDEwMAorICAgIF9fb1snMjA4J10gPSA5NQorICAgIF9fb1snMjA5J10gPSA5NworICAgIF9fb1snMjEwJ10gPSAxMDgKKyAgICBfX29bJzIxMSddID0gMTA4CisgICAgX19vWycyMTInXSA9IDExMQorICAgIF9fb1snMjEzJ10gPSA5OQorICAgIF9fb1snMjE0J10gPSAzMgorICAgIF9fb1snMjE1J10gPSA0NQorICAgIF9fb1snMjE2J10gPSAzMgorICAgIF9fb1snMjE3J10gPSAxMTQKKyAgICBfX29bJzIxOCddID0gMTAxCisgICAgX19vWycyMTknXSA9IDExMworICAgIF9fb1snMjIwJ10gPSAxMTcKKyAgICBfX29bJzIyMSddID0gMTAxCisgICAgX19vWycyMjInXSA9IDExNQorICAgIF9fb1snMjIzJ10gPSAxMTYKKyAgICBfX29bJzIyNCddID0gMTAxCisgICAgX19vWycyMjUnXSA9IDEwMAorICAgIF9fb1snMjI2J10gPSAzMgorICAgIF9fb1snMjI3J10gPSA5NworICAgIF9fb1snMjI4J10gPSAxMDgKKyAgICBfX29bJzIyOSddID0gMTA1CisgICAgX19vWycyMzAnXSA9IDEwMworICAgIF9fb1snMjMxJ10gPSAxMTAKKyAgICBfX29bJzIzMiddID0gMTA5CisgICAgX19vWycyMzMnXSA9IDEwMQorICAgIF9fb1snMjM0J10gPSAxMTAKKyAgICBfX29bJzIzNSddID0gMTE2CisgICAgX19vWycyMzYnXSA9IDMyCisgICAgX19vWycyMzcnXSA9IDEwNQorICAgIF9fb1snMjM4J10gPSAxMTUKKyAgICBfX29bJzIzOSddID0gMzIKKyAgICBfX29bJzI0MCddID0gMTAzCisgICAgX19vWycyNDEnXSA9IDExNAorICAgIF9fb1snMjQyJ10gPSAxMDEKKyAgICBfX29bJzI0MyddID0gOTcKKyAgICBfX29bJzI0NCddID0gMTE2CisgICAgX19vWycyNDUnXSA9IDEwMQorICAgIF9fb1snMjQ2J10gPSAxMTQKKyAgICBfX29bJzI0NyddID0gMzIKKyAgICBfX29bJzI0OCddID0gMTE2CisgICAgX19vWycyNDknXSA9IDEwNAorICAgIF9fb1snMjUwJ10gPSA5NworICAgIF9fb1snMjUxJ10gPSAxMTAKKyAgICBfX29bJzI1MiddID0gMzIKKyAgICBfX29bJzI1MyddID0gOTcKKyAgICBfX29bJzI1NCddID0gMTA4CisgICAgX19vWycyNTUnXSA9IDEwOAorICAgIF9fb1snMjU2J10gPSAxMTEKKyAgICBfX29bJzI1NyddID0gMTE5CisgICAgX19vWycyNTgnXSA9IDEwMQorICAgIF9fb1snMjU5J10gPSAxMDAKKyAgICBfX29bJzI2MCddID0gMAorICAgIF9fb1snMjYxJ10gPSA2NQorICAgIF9fb1snMjYyJ10gPSA5NQorICAgIF9fb1snMjYzJ10gPSA5OQorICAgIF9fb1snMjY0J10gPSA5NworICAgIF9fb1snMjY1J10gPSAxMTAKKyAgICBfX29bJzI2NiddID0gMTEwCisgICAgX19vWycyNjcnXSA9IDExMQorICAgIF9fb1snMjY4J10gPSAxMTYKKyAgICBfX29bJzI2OSddID0gNzAKKyAgICBfX29bJzI3MCddID0gMTA1CisgICAgX19vWycyNzEnXSA9IDExNgorICAgIF9fb1snMjcyJ10gPSA3MworICAgIF9fb1snMjczJ10gPSAxMTAKKyAgICBfX29bJzI3NCddID0gMTE2CisgICAgX19vWycyNzUnXSA9IDExMQorICAgIF9fb1snMjc2J10gPSA2NQorICAgIF9fb1snMjc3J10gPSAxMTQKKyAgICBfX29bJzI3OCddID0gMTAzCisgICAgX19vWycyNzknXSA9IDU4CisgICAgX19vWycyODAnXSA9IDMyCisgICAgX19vWycyODEnXSA9IDExNQorICAgIF9fb1snMjgyJ10gPSAxMDUKKyAgICBfX29bJzI4MyddID0gMTIyCisgICAgX19vWycyODQnXSA9IDEwMQorICAgIF9fb1snMjg1J10gPSAxMTEKKyAgICBfX29bJzI4NiddID0gMTAyCisgICAgX19vWycyODcnXSA9IDQwCisgICAgX19vWycyODgnXSA9IDcwCisgICAgX19vWycyODknXSA9IDEwOAorICAgIF9fb1snMjkwJ10gPSAxMTEKKyAgICBfX29bJzI5MSddID0gOTcKKyAgICBfX29bJzI5MiddID0gMTE2CisgICAgX19vWycyOTMnXSA9IDQxCisgICAgX19vWycyOTQnXSA9IDMyCisgICAgX19vWycyOTUnXSA9IDYyCisgICAgX19vWycyOTYnXSA9IDMyCisgICAgX19vWycyOTcnXSA9IDExNQorICAgIF9fb1snMjk4J10gPSAxMDUKKyAgICBfX29bJzI5OSddID0gMTIyCisgICAgX19vWyczMDAnXSA9IDEwMQorICAgIF9fb1snMzAxJ10gPSAxMTEKKyAgICBfX29bJzMwMiddID0gMTAyCisgICAgX19vWyczMDMnXSA9IDQwCisgICAgX19vWyczMDQnXSA9IDY1CisgICAgX19vWyczMDUnXSA9IDExNAorICAgIF9fb1snMzA2J10gPSAxMDMKKyAgICBfX29bJzMwNyddID0gNDEKKyAgICBfX29bJzMwOCddID0gMAorICAgIF9fb1snMzA5J10gPSA5NworICAgIF9fb1snMzEwJ10gPSAxMTUKKyAgICBfX29bJzMxMSddID0gMTE1CisgICAgX19vWyczMTInXSA9IDEwMQorICAgIF9fb1snMzEzJ10gPSAxMTQKKyAgICBfX29bJzMxNCddID0gMTE2CisgICAgX19vWyczMTUnXSA9IDEwNQorICAgIF9fb1snMzE2J10gPSAxMTEKKyAgICBfX29bJzMxNyddID0gMTEwCisgICAgX19vWyczMTgnXSA9IDMyCisgICAgX19vWyczMTknXSA9IDEwMgorICAgIF9fb1snMzIwJ10gPSA5NworICAgIF9fb1snMzIxJ10gPSAxMDUKKyAgICBfX29bJzMyMiddID0gMTA4CisgICAgX19vWyczMjMnXSA9IDExNworICAgIF9fb1snMzI0J10gPSAxMTQKKyAgICBfX29bJzMyNSddID0gMTAxCisgICAgX19vWyczMjYnXSA9IDM3CisgICAgX19vWyczMjcnXSA9IDExNQorICAgIF9fb1snMzI4J10gPSAzNworICAgIF9fb1snMzI5J10gPSAxMTUKKyAgICBfX29bJzMzMCddID0gMAorICAgIF9fb1snMzMxJ10gPSAxMDMKKyAgICBfX29bJzMzMiddID0gMTAxCisgICAgX19vWyczMzMnXSA9IDExMAorICAgIF9fb1snMzM0J10gPSAxMDEKKyAgICBfX29bJzMzNSddID0gMTE0CisgICAgX19vWyczMzYnXSA9IDEwNQorICAgIF9fb1snMzM3J10gPSA5OQorICAgIF9fb1snMzM4J10gPSAzMgorICAgIF9fb1snMzM5J10gPSAxMDEKKyAgICBfX29bJzM0MCddID0gMTE0CisgICAgX19vWyczNDEnXSA9IDExNAorICAgIF9fb1snMzQyJ10gPSAxMTEKKyAgICBfX29bJzM0MyddID0gMTE0CisgICAgX19vWyczNDQnXSA9IDU4CisgICAgX19vWyczNDUnXSA9IDMyCisgICAgX19vWyczNDYnXSA9IDM3CisgICAgX19vWyczNDcnXSA9IDExNQorICAgIF9fb1snMzQ4J10gPSAwCisgICAgX19vWyczNDknXSA9IDExMQorICAgIF9fb1snMzUwJ10gPSAxMTcKKyAgICBfX29bJzM1MSddID0gMTE2CisgICAgX19vWyczNTInXSA9IDMyCisgICAgX19vWyczNTMnXSA9IDExMQorICAgIF9fb1snMzU0J10gPSAxMDIKKyAgICBfX29bJzM1NSddID0gMzIKKyAgICBfX29bJzM1NiddID0gMTA5CisgICAgX19vWyczNTcnXSA9IDEwMQorICAgIF9fb1snMzU4J10gPSAxMDkKKyAgICBfX29bJzM1OSddID0gMTExCisgICAgX19vWyczNjAnXSA9IDExNAorICAgIF9fb1snMzYxJ10gPSAxMjEKKyAgICBfX29bJzM2MiddID0gNTgKKyAgICBfX29bJzM2MyddID0gMzIKKyAgICBfX29bJzM2NCddID0gMTA0CisgICAgX19vWyczNjUnXSA9IDEwMQorICAgIF9fb1snMzY2J10gPSA5NworICAgIF9fb1snMzY3J10gPSAxMTIKKyAgICBfX29bJzM2OCddID0gNjEKKyAgICBfX29bJzM2OSddID0gNDgKKyAgICBfX29bJzM3MCddID0gMTIwCisgICAgX19vWyczNzEnXSA9IDM3CisgICAgX19vWyczNzInXSA9IDEyMAorICAgIF9fb1snMzczJ10gPSA0NAorICAgIF9fb1snMzc0J10gPSAzMgorICAgIF9fb1snMzc1J10gPSAxMTUKKyAgICBfX29bJzM3NiddID0gMTA1CisgICAgX19vWyczNzcnXSA9IDEyMgorICAgIF9fb1snMzc4J10gPSAxMDEKKyAgICBfX29bJzM3OSddID0gNjEKKyAgICBfX29bJzM4MCddID0gMzcKKyAgICBfX29bJzM4MSddID0gMTE3CisgICAgX19vWyczODInXSA9IDAKKyAgICBfX29bJzM4MyddID0gMTAyCisgICAgX19vWyczODQnXSA9IDExNAorICAgIF9fb1snMzg1J10gPSAxMDEKKyAgICBfX29bJzM4NiddID0gMTAxCisgICAgX19vWyczODcnXSA9IDQwCisgICAgX19vWyczODgnXSA9IDQxCisgICAgX19vWyczODknXSA9IDMyCisgICAgX19vWyczOTAnXSA9IDEwNQorICAgIF9fb1snMzkxJ10gPSAxMTAKKyAgICBfX29bJzM5MiddID0gMTE4CisgICAgX19vWyczOTMnXSA9IDk3CisgICAgX19vWyczOTQnXSA9IDEwOAorICAgIF9fb1snMzk1J10gPSAxMDUKKyAgICBfX29bJzM5NiddID0gMTAwCisgICAgX19vWyczOTcnXSA9IDMyCisgICAgX19vWyczOTgnXSA9IDEwNQorICAgIF9fb1snMzk5J10gPSAxMTAKKyAgICBfX29bJzQwMCddID0gMzIKKyAgICBfX29bJzQwMSddID0gMTAzCisgICAgX19vWyc0MDInXSA9IDExNAorICAgIF9fb1snNDAzJ10gPSAxMTEKKyAgICBfX29bJzQwNCddID0gMTE5CisgICAgX19vWyc0MDUnXSA9IDExNgorICAgIF9fb1snNDA2J10gPSAxMDQKKyAgICBfX29bJzQwNyddID0gNDUKKyAgICBfX29bJzQwOCddID0gMTExCisgICAgX19vWyc0MDknXSA9IDExMAorICAgIF9fb1snNDEwJ10gPSAxMDgKKyAgICBfX29bJzQxMSddID0gMTIxCisgICAgX19vWyc0MTInXSA9IDMyCisgICAgX19vWyc0MTMnXSA9IDcyCisgICAgX19vWyc0MTQnXSA9IDEwMQorICAgIF9fb1snNDE1J10gPSA5NworICAgIF9fb1snNDE2J10gPSAxMTIKKyAgICBfX29bJzQxNyddID0gNzcKKyAgICBfX29bJzQxOCddID0gMTA1CisgICAgX19vWyc0MTknXSA9IDExMAorICAgIF9fb1snNDIwJ10gPSAwCisgICAgX19vWyc0MjEnXSA9IDg0CisgICAgX19vWyc0MjInXSA9IDEwNAorICAgIF9fb1snNDIzJ10gPSAxMDEKKyAgICBfX29bJzQyNCddID0gMzIKKyAgICBfX29bJzQyNSddID0gODIKKyAgICBfX29bJzQyNiddID0gODQKKyAgICBfX29bJzQyNyddID0gODMKKyAgICBfX29bJzQyOCddID0gMzIKKyAgICBfX29bJzQyOSddID0gMTA0CisgICAgX19vWyc0MzAnXSA9IDEwMQorICAgIF9fb1snNDMxJ10gPSA5NworICAgIF9fb1snNDMyJ10gPSAxMTIKKyAgICBfX29bJzQzMyddID0gMzIKKyAgICBfX29bJzQzNCddID0gMTA1CisgICAgX19vWyc0MzUnXSA9IDExNQorICAgIF9fb1snNDM2J10gPSAzMgorICAgIF9fb1snNDM3J10gPSAxMTcKKyAgICBfX29bJzQzOCddID0gMTE1CisgICAgX19vWyc0MzknXSA9IDEwMQorICAgIF9fb1snNDQwJ10gPSAxMDAKKyAgICBfX29bJzQ0MSddID0gMzIKKyAgICBfX29bJzQ0MiddID0gMTE3CisgICAgX19vWyc0NDMnXSA9IDExMgorICAgIF9fb1snNDQ0J10gPSA0NgorICAgIF9fb1snNDQ1J10gPSAzMgorICAgIF9fb1snNDQ2J10gPSA2OQorICAgIF9fb1snNDQ3J10gPSAxMjAKKyAgICBfX29bJzQ0OCddID0gOTcKKyAgICBfX29bJzQ0OSddID0gMTA5CisgICAgX19vWyc0NTAnXSA9IDEwNQorICAgIF9fb1snNDUxJ10gPSAxMTAKKyAgICBfX29bJzQ1MiddID0gMTAxCisgICAgX19vWyc0NTMnXSA9IDMyCisgICAgX19vWyc0NTQnXSA9IDgwCisgICAgX19vWyc0NTUnXSA9IDExNAorICAgIF9fb1snNDU2J10gPSAxMTEKKyAgICBfX29bJzQ1NyddID0gMTAzCisgICAgX19vWyc0NTgnXSA9IDExNAorICAgIF9fb1snNDU5J10gPSA5NworICAgIF9fb1snNDYwJ10gPSAxMDkKKyAgICBfX29bJzQ2MSddID0gNDYKKyAgICBfX29bJzQ2MiddID0gMTA0CisgICAgX19vWyc0NjMnXSA9IDEwMQorICAgIF9fb1snNDY0J10gPSA5NworICAgIF9fb1snNDY1J10gPSAxMTIKKyAgICBfX29bJzQ2NiddID0gNDYKKyAgICBfX29bJzQ2NyddID0gMAorICAgIF9fb1snNDY4J10gPSA2MAorICAgIF9fb1snNDY5J10gPSA0NQorICAgIF9fb1snNDcwJ10gPSA0NQorICAgIF9fb1snNDcxJ10gPSAzMgorICAgIF9fb1snNDcyJ10gPSA5OQorICAgIF9fb1snNDczJ10gPSAxMTEKKyAgICBfX29bJzQ3NCddID0gMTEwCisgICAgX19vWyc0NzUnXSA9IDExNQorICAgIF9fb1snNDc2J10gPSAxMTYKKyAgICBfX29bJzQ3NyddID0gMTE0CisgICAgX19vWyc0NzgnXSA9IDExNworICAgIF9fb1snNDc5J10gPSA5OQorICAgIF9fb1snNDgwJ10gPSAxMTYKKyAgICBfX29bJzQ4MSddID0gNTgKKyAgICBfX29bJzQ4MiddID0gMzIKKyAgICBfX29bJzQ4MyddID0gMzcKKyAgICBfX29bJzQ4NCddID0gMTEyCisgICAgX19vWyc0ODUnXSA9IDQwCisgICAgX19vWyc0ODYnXSA9IDM5CisgICAgX19vWyc0ODcnXSA9IDM3CisgICAgX19vWyc0ODgnXSA9IDExNQorICAgIF9fb1snNDg5J10gPSAzOQorICAgIF9fb1snNDkwJ10gPSA0MQorICAgIF9fb1snNDkxJ10gPSAwCisgICAgX19vWyc0OTInXSA9IDYwCisgICAgX19vWyc0OTMnXSA9IDQ1CisgICAgX19vWyc0OTQnXSA9IDQ1CisgICAgX19vWyc0OTUnXSA9IDMyCisgICAgX19vWyc0OTYnXSA9IDk5CisgICAgX19vWyc0OTcnXSA9IDExNAorICAgIF9fb1snNDk4J10gPSAxMDEKKyAgICBfX29bJzQ5OSddID0gOTcKKyAgICBfX29bJzUwMCddID0gMTE2CisgICAgX19vWyc1MDEnXSA9IDEwMQorICAgIF9fb1snNTAyJ10gPSA1OAorICAgIF9fb1snNTAzJ10gPSAzMgorICAgIF9fb1snNTA0J10gPSAzNworICAgIF9fb1snNTA1J10gPSAxMTIKKyAgICBfX29bJzUwNiddID0gNDAKKyAgICBfX29bJzUwNyddID0gMzkKKyAgICBfX29bJzUwOCddID0gMzcKKyAgICBfX29bJzUwOSddID0gMTE1CisgICAgX19vWyc1MTAnXSA9IDM5CisgICAgX19vWyc1MTEnXSA9IDQxCisgICAgX19vWyc1MTInXSA9IDAKKyAgICBfX29bJzUxMyddID0gNDUKKyAgICBfX29bJzUxNCddID0gNDUKKyAgICBfX29bJzUxNSddID0gNjIKKyAgICBfX29bJzUxNiddID0gMzIKKyAgICBfX29bJzUxNyddID0gMTAwCisgICAgX19vWyc1MTgnXSA9IDEwMQorICAgIF9fb1snNTE5J10gPSAxMTUKKyAgICBfX29bJzUyMCddID0gMTE2CisgICAgX19vWyc1MjEnXSA9IDExNAorICAgIF9fb1snNTIyJ10gPSAxMTcKKyAgICBfX29bJzUyMyddID0gOTkKKyAgICBfX29bJzUyNCddID0gMTE2CisgICAgX19vWyc1MjUnXSA9IDU4CisgICAgX19vWyc1MjYnXSA9IDMyCisgICAgX19vWyc1MjcnXSA9IDQwCisgICAgX19vWyc1MjgnXSA9IDM3CisgICAgX19vWyc1MjknXSA9IDExMgorICAgIF9fb1snNTMwJ10gPSA0MQorICAgIF9fb1snNTMxJ10gPSAwCisgICAgX19vWyc1MzInXSA9IDQ1CisgICAgX19vWyc1MzMnXSA9IDQ1CisgICAgX19vWyc1MzQnXSA9IDYyCisgICAgX19vWyc1MzUnXSA9IDMyCisgICAgX19vWyc1MzYnXSA9IDEwMAorICAgIF9fb1snNTM3J10gPSAxMDEKKyAgICBfX29bJzUzOCddID0gMTA4CisgICAgX19vWyc1MzknXSA9IDEwMQorICAgIF9fb1snNTQwJ10gPSAxMTYKKyAgICBfX29bJzU0MSddID0gMTAxCisgICAgX19vWyc1NDInXSA9IDU4CisgICAgX19vWyc1NDMnXSA9IDMyCisgICAgX19vWyc1NDQnXSA9IDQwCisgICAgX19vWyc1NDUnXSA9IDM3CisgICAgX19vWyc1NDYnXSA9IDExMgorICAgIF9fb1snNTQ3J10gPSA0MQorICAgIF9fb1snNTQ4J10gPSAwCisgICAgX19vWyc1NDknXSA9IDEyMAorICAgIF9fb1snNTUwJ10gPSAxMDAKKyAgICBfX29bJzU1MSddID0gOTkKKyAgICBfX29bJzU1MiddID0gNDYKKyAgICBfX29bJzU1MyddID0gMAorICAgIF9fb1snNTU0J10gPSAxMTQKKyAgICBfX29bJzU1NSddID0gMTE3CisgICAgX19vWyc1NTYnXSA9IDExMAorICAgIF9fb1snNTU3J10gPSAxMTYKKyAgICBfX29bJzU1OCddID0gMTA1CisgICAgX19vWyc1NTknXSA9IDEwOQorICAgIF9fb1snNTYwJ10gPSAxMDEKKyAgICBfX29bJzU2MSddID0gNDYKKyAgICBfX29bJzU2MiddID0gMAorICAgIF9fb1snNTYzJ10gPSA2NQorICAgIF9fb1snNTY0J10gPSAxMTUKKyAgICBfX29bJzU2NSddID0gMTE1CisgICAgX19vWyc1NjYnXSA9IDEwMQorICAgIF9fb1snNTY3J10gPSAxMTQKKyAgICBfX29bJzU2OCddID0gMTE2CisgICAgX19vWyc1NjknXSA9IDAKKyAgICBfX29bJzU3MCddID0gNjcKKyAgICBfX29bJzU3MSddID0gMTExCisgICAgX19vWyc1NzInXSA9IDExNAorICAgIF9fb1snNTczJ10gPSAxMDEKKyAgICBfX29bJzU3NCddID0gMAorICAgIF9fb1snNTc1J10gPSA2OAorICAgIF9fb1snNTc2J10gPSAxMDEKKyAgICBfX29bJzU3NyddID0gMTAyCisgICAgX19vWyc1NzgnXSA9IDk3CisgICAgX19vWyc1NzknXSA9IDExNworICAgIF9fb1snNTgwJ10gPSAxMDgKKyAgICBfX29bJzU4MSddID0gMTE2CisgICAgX19vWyc1ODInXSA9IDExNQorICAgIF9fb1snNTgzJ10gPSAwCisgICAgX19vWyc1ODQnXSA9IDY4CisgICAgX19vWyc1ODUnXSA9IDEwNQorICAgIF9fb1snNTg2J10gPSA5NworICAgIF9fb1snNTg3J10gPSAxMDMKKyAgICBfX29bJzU4OCddID0gMTE1CisgICAgX19vWyc1ODknXSA9IDAKKyAgICBfX29bJzU5MCddID0gNjkKKyAgICBfX29bJzU5MSddID0gMTE0CisgICAgX19vWyc1OTInXSA9IDExNAorICAgIF9fb1snNTkzJ10gPSAxMTEKKyAgICBfX29bJzU5NCddID0gMTE0CisgICAgX19vWyc1OTUnXSA9IDAKKyAgICBfX29bJzU5NiddID0gNzEKKyAgICBfX29bJzU5NyddID0gOTcKKyAgICBfX29bJzU5OCddID0gMTE2CisgICAgX19vWyc1OTknXSA9IDEwMQorICAgIF9fb1snNjAwJ10gPSAwCisgICAgX19vWyc2MDEnXSA9IDcxCisgICAgX19vWyc2MDInXSA9IDk3CisgICAgX19vWyc2MDMnXSA9IDExNgorICAgIF9fb1snNjA0J10gPSAxMDEKKyAgICBfX29bJzYwNSddID0gNzgKKyAgICBfX29bJzYwNiddID0gMTE3CisgICAgX19vWyc2MDcnXSA9IDEwOAorICAgIF9fb1snNjA4J10gPSAxMDgKKyAgICBfX29bJzYwOSddID0gMAorICAgIF9fb1snNjEwJ10gPSA3NgorICAgIF9fb1snNjExJ10gPSAxMTEKKyAgICBfX29bJzYxMiddID0gMTAzCisgICAgX19vWyc2MTMnXSA9IDAKKyAgICBfX29bJzYxNCddID0gNzcKKyAgICBfX29bJzYxNSddID0gOTcKKyAgICBfX29bJzYxNiddID0gMTA1CisgICAgX19vWyc2MTcnXSA9IDExMAorICAgIF9fb1snNjE4J10gPSAwCisgICAgX19vWyc2MTknXSA9IDc3CisgICAgX19vWyc2MjAnXSA9IDEwMQorICAgIF9fb1snNjIxJ10gPSAxMDkKKyAgICBfX29bJzYyMiddID0gMTExCisgICAgX19vWyc2MjMnXSA9IDExNAorICAgIF9fb1snNjI0J10gPSAxMjEKKyAgICBfX29bJzYyNSddID0gMAorICAgIF9fb1snNjI2J10gPSA3MgorICAgIF9fb1snNjI3J10gPSAxMDEKKyAgICBfX29bJzYyOCddID0gOTcKKyAgICBfX29bJzYyOSddID0gMTEyCisgICAgX19vWyc2MzAnXSA9IDgzCisgICAgX19vWyc2MzEnXSA9IDExNgorICAgIF9fb1snNjMyJ10gPSAxMDAKKyAgICBfX29bJzYzMyddID0gMAorICAgIF9fb1snNjM0J10gPSA4MworICAgIF9fb1snNjM1J10gPSAxMTYKKyAgICBfX29bJzYzNiddID0gOTcKKyAgICBfX29bJzYzNyddID0gMTE0CisgICAgX19vWyc2MzgnXSA9IDExNgorICAgIF9fb1snNjM5J10gPSAxMTcKKyAgICBfX29bJzY0MCddID0gMTEyCisgICAgX19vWyc2NDEnXSA9IDAKKyAgICBfX29bJzY0MiddID0gODMKKyAgICBfX29bJzY0MyddID0gMTIxCisgICAgX19vWyc2NDQnXSA9IDExNQorICAgIF9fb1snNjQ1J10gPSAxMTYKKyAgICBfX29bJzY0NiddID0gMTAxCisgICAgX19vWyc2NDcnXSA9IDEwOQorICAgIF9fb1snNjQ4J10gPSAwCisgICAgX19vWyc2NDknXSA9IDgzCisgICAgX19vWyc2NTAnXSA9IDEyMQorICAgIF9fb1snNjUxJ10gPSAxMTUKKyAgICBfX29bJzY1MiddID0gNzcKKyAgICBfX29bJzY1MyddID0gMTA1CisgICAgX19vWyc2NTQnXSA9IDExMAorICAgIF9fb1snNjU1J10gPSAwCisgICAgX19vWyc2NTYnXSA9IDg0CisgICAgX19vWyc2NTcnXSA9IDEwMQorICAgIF9fb1snNjU4J10gPSAxMjAKKyAgICBfX29bJzY1OSddID0gMTE2CisgICAgX19vWyc2NjAnXSA9IDAKKworX19vID0gX19vYmpbMjc0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb21tb24kCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29tbW9uJTI0JywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19BU1NFUlQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuRGlhZ3MuQUxXQVlTX09OJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FTlRSWSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19FWElUJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0lOVEVSTkFMJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLkRpYWdzLkFMV0FZU19PRkYnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RpYWdzX0xJRkVDWUNMRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSNyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydkaWFnc19VU0VSOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5EaWFncy5BTFdBWVNfT0ZGJywgJ1VURi04JykpCisgICAgX19vWydmeG50YWInXSA9IHRydWUKKyAgICBfX29bJ2dhdGUnXSA9IG51bGwKKyAgICBfX29bJ2dhdGVQYXJhbXMnXSA9IG51bGwKKyAgICBfX29bJ2luc3RhbmNlSGVhcCddID0gbnVsbAorICAgIF9fb1snaW5zdGFuY2VTZWN0aW9uJ10gPSBudWxsCisgICAgX19vWydsb2dnZXInXSA9IG51bGwKKyAgICBfX29bJ21lbW9yeVBvbGljeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UeXBlcy5ERUxFVEVfUE9MSUNZJywgJ1VURi04JykpCisgICAgX19vWyduYW1lZEluc3RhbmNlJ10gPSBmYWxzZQorICAgIF9fb1snbmFtZWRNb2R1bGUnXSA9IHRydWUKKyAgICBfX29bJ3JvbVBhdGNoVGFibGUnXSA9IGZhbHNlCisKK19fbyA9IF9fb2JqWzI3NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQKKyAgICBfX28uJGtleXMgPSBbXQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvTWVtb3J5J10gPSBfX29ialsyNzYuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTWVtb3J5JykKKyAgICBfX28ucHVzaChfX29bJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJ10gPSBfX29ialsyNzguMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnKQorICAgIF9fby5wdXNoKF9fb1sneGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knXSA9IF9fb2JqWzI4MC4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9Db25jdXJyZW5jeScpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJ10gPSBfX29ialsyODIuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9Bc3NlcnRzJ10gPSBfX29ialsyODQuMF0pOyBfX28uJGtleXMucHVzaCgneGRjLnJ1bnRpbWUvQXNzZXJ0cycpCisgICAgX19vLnB1c2goX19vWyd4ZGMucnVudGltZS9FcnJvcnMnXSA9IF9fb2JqWzI4Ni4wXSk7IF9fby4ka2V5cy5wdXNoKCd4ZGMucnVudGltZS9FcnJvcnMnKQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01hcCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjc2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTWVtb3J5JworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRk1lbW9yeSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snZmllbGRzJ10gPSBfX29ialsyNzcuMF0KKyAgICBfX29bJ3ZpZXdGeG4nXSA9IHVuZGVmaW5lZAorICAgIF9fb1sndmlld1R5cGUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnbW9kdWxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3N10gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL01lbW9yeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGTWVtb3J5JTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5pbnN0YW5jZUhlYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0Lmluc3RhbmNlU2VjdGlvbicsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubWVtb3J5UG9saWN5JywgJ1VURi04JykpCisgICAgX19vWyczJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5uYW1lZE1vZHVsZScsICdVVEYtOCcpKQorICAgIF9fb1snNCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQubmFtZWRJbnN0YW5jZScsICdVVEYtOCcpKQorICAgIF9fb1snNSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZnhudGFiJywgJ1VURi04JykpCisgICAgX19vWyc2J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5yb21QYXRjaFRhYmxlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI3OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0RpYWdub3N0aWNzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI3OS4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtb2R1bGUnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjc5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvRGlhZ25vc3RpY3MnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkRpYWdub3N0aWNzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5sb2dnZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0FTU0VSVCcsICdVVEYtOCcpKQorICAgIF9fb1snMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfRU5UUlknLCAnVVRGLTgnKSkKKyAgICBfX29bJzMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0VYSVQnLCAnVVRGLTgnKSkKKyAgICBfX29bJzQnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX0lOVEVSTkFMJywgJ1VURi04JykpCisgICAgX19vWyc1J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19MSUZFQ1lDTEUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVIxJywgJ1VURi04JykpCisgICAgX19vWyc3J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSMicsICdVVEYtOCcpKQorICAgIF9fb1snOCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI0JywgJ1VURi04JykpCisgICAgX19vWycxMCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzExJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NvbW1vbiUyNC5kaWFnc19VU0VSNicsICdVVEYtOCcpKQorICAgIF9fb1snMTInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmRpYWdzX1VTRVI3JywgJ1VURi04JykpCisgICAgX19vWycxMyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjb21tb24lMjQuZGlhZ3NfVVNFUjgnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgwXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvQ29uY3VycmVuY3knCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjgxLjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ21vZHVsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODFdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Db25jdXJyZW5jeScvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGQ29uY3VycmVuY3klMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJzEnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY29tbW9uJTI0LmdhdGVQYXJhbXMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMjgyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9jb25maWdOYW1lTWFwJC8neGRjLnJ1bnRpbWUvTG9nIEV2ZW50cycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JywgJ1VURi04JykpCisgICAgX19vWydmaWVsZHMnXSA9IF9fb2JqWzI4My4wXQorICAgIF9fb1sndmlld0Z4biddID0gdW5kZWZpbmVkCisgICAgX19vWyd2aWV3VHlwZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdpbnN0YW5jZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODNdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Mb2cgRXZlbnRzJy9maWVsZHMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdWZWN0b3InLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZMb2crRXZlbnRzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0xvZy5FdmVudCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialsyODRdICAvLyB4ZGMucnVudGltZS5UZXh0L2NvbmZpZ05hbWVNYXAkLyd4ZGMucnVudGltZS9Bc3NlcnRzJworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjg1LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4NV0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Fzc2VydHMnL2ZpZWxkcworICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRmNvbmZpZ05hbWVNYXAlMjQlMkYlMjd4ZGMucnVudGltZSUyRkFzc2VydHMlMjclMkZmaWVsZHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnQXNzZXJ0LklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4Nl0gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZjb25maWdOYW1lTWFwJTI0JTJGJTI3eGRjLnJ1bnRpbWUlMkZFcnJvcnMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2ZpZWxkcyddID0gX19vYmpbMjg3LjBdCisgICAgX19vWyd2aWV3RnhuJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ3ZpZXdUeXBlJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2luc3RhbmNlJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4N10gIC8vIHhkYy5ydW50aW1lLlRleHQvY29uZmlnTmFtZU1hcCQvJ3hkYy5ydW50aW1lL0Vycm9ycycvZmllbGRzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnVmVjdG9yJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGY29uZmlnTmFtZU1hcCUyNCUyRiUyN3hkYy5ydW50aW1lJTJGRXJyb3JzJTI3JTJGZmllbGRzJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ0Vycm9yLklkJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzI4OF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1ZlY3RvcicsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWInLCAnVVRGLTgnKSkKKyAgICBfX29bJzAnXSA9IF9fb2JqWzI4OS4wXQorICAgIF9fb1snMSddID0gX19vYmpbMjkwLjBdCisgICAgX19vWycyJ10gPSBfX29ialsyOTEuMF0KKyAgICBfX29bJzMnXSA9IF9fb2JqWzI5Mi4wXQorICAgIF9fb1snNCddID0gX19vYmpbMjkzLjBdCisgICAgX19vWyc1J10gPSBfX29ialsyOTQuMF0KKyAgICBfX29bJzYnXSA9IF9fb2JqWzI5NS4wXQorICAgIF9fb1snNyddID0gX19vYmpbMjk2LjBdCisgICAgX19vWyc4J10gPSBfX29ialsyOTcuMF0KKyAgICBfX29bJzknXSA9IF9fb2JqWzI5OC4wXQorICAgIF9fb1snMTAnXSA9IF9fb2JqWzI5OS4wXQorICAgIF9fb1snMTEnXSA9IF9fb2JqWzMwMC4wXQorICAgIF9fb1snMTInXSA9IF9fb2JqWzMwMS4wXQorICAgIF9fb1snMTMnXSA9IF9fb2JqWzMwMi4wXQorICAgIF9fb1snMTQnXSA9IF9fb2JqWzMwMy4wXQorICAgIF9fb1snMTUnXSA9IF9fb2JqWzMwNC4wXQorICAgIF9fb1snMTYnXSA9IF9fb2JqWzMwNS4wXQorCitfX28gPSBfX29ialsyODldICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMAorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYwJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAwCisgICAgX19vWydyaWdodCddID0gMAorCitfX28gPSBfX29ialsyOTBdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSA1NDkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NTQKKworX19vID0gX19vYmpbMjkxXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzIKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NjMKKworX19vID0gX19vYmpbMjkyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzMKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NzAKKworX19vID0gX19vYmpbMjkzXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1NzUKKworX19vID0gX19vYmpbMjk0XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzUKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1ODQKKworX19vID0gX19vYmpbMjk1XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzYKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1OTAKKworX19vID0gX19vYmpbMjk2XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzcKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGNycsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA1OTYKKworX19vID0gX19vYmpbMjk3XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzgKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGOCcsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MDEKKworX19vID0gX19vYmpbMjk4XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzkKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGOScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MTAKKworX19vID0gX19vYmpbMjk5XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEwCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjEwJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYxNAorCitfX28gPSBfX29ialszMDBdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTEKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTEnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjE5CisKK19fbyA9IF9fb2JqWzMwMV0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xMgorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxMicsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2MjYKKworX19vID0gX19vYmpbMzAyXSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzEzCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjEzJywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDYzNAorCitfX28gPSBfX29ialszMDNdICAvLyB4ZGMucnVudGltZS5UZXh0L25vZGVUYWIvMTQKKyAgICBfX29bJyRjYXRlZ29yeSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdTdHJ1Y3QnLCAnVVRGLTgnKSkKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ3hkYy5ydW50aW1lLlRleHQlMkZub2RlVGFiJTJGMTQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2xlZnQnXSA9IDMyNzY5CisgICAgX19vWydyaWdodCddID0gNjQyCisKK19fbyA9IF9fb2JqWzMwNF0gIC8vIHhkYy5ydW50aW1lLlRleHQvbm9kZVRhYi8xNQorICAgIF9fb1snJGNhdGVnb3J5J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ1N0cnVjdCcsICdVVEYtOCcpKQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneGRjLnJ1bnRpbWUuVGV4dCUyRm5vZGVUYWIlMkYxNScsICdVVEYtOCcpKQorICAgIF9fb1snbGVmdCddID0gMzI3NjkKKyAgICBfX29bJ3JpZ2h0J10gPSA2NDkKKworX19vID0gX19vYmpbMzA1XSAgLy8geGRjLnJ1bnRpbWUuVGV4dC9ub2RlVGFiLzE2CisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnU3RydWN0JywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGbm9kZVRhYiUyRjE2JywgJ1VURi04JykpCisgICAgX19vWydsZWZ0J10gPSAzMjc2OQorICAgIF9fb1sncmlnaHQnXSA9IDY1NgorCitfX28gPSBfX29ialszMDZdICAvLyB4ZGMucnVudGltZS5UZXh0L3ZpZXdOYW1lTWFwJAorICAgIF9fby4ka2V5cyA9IFtdCisgICAgX19vWyckY2F0ZWdvcnknXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnTWFwJywgJ1VURi04JykpCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCd4ZGMucnVudGltZS5UZXh0JTJGdmlld05hbWVNYXAlMjQnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzA3XSAgCisgICAgX19vWydjZmdBcmdzJ10gPSB1bmRlZmluZWQKKyAgICBfX29bJ2NmZ1NjcmlwdCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdwcm9nLmNmZycsICdVVEYtOCcpKQorICAgIF9fb1sncHJvZmlsZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdyZWxlYXNlJywgJ1VURi04JykpCisgICAgX19vWydyZWxlYXNlcyddID0gX19vYmpbMzA4LjBdCisgICAgX19vWyd0YXJnZXQnXSA9IF9fb2JqWzMxMi4wXQorICAgIF9fb1sndGVzdCddID0gX19vYmpbMzY1LjBdCisKK19fbyA9IF9fb2JqWzMwOF0gIAorICAgIF9fb1snMCddID0gX19vYmpbMzA5LjBdCisKK19fbyA9IF9fb2JqWzMwOV0gIAorICAgIF9fb1snYXR0cnMnXSA9IF9fb2JqWzMxMC4wXQorICAgIF9fb1snbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdoZWxsb19wa2cnLCAnVVRGLTgnKSkKKyAgICBfX29bJ290aGVyRmlsZXMnXSA9IF9fb2JqWzMxMS4wXQorCitfX28gPSBfX29ialszMTBdICAKKyAgICBfX29bJ2xhYmVsJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2RlZmF1bHQnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzExXSAgCisKK19fbyA9IF9fb2JqWzMxMl0gIC8vIGdudS50YXJnZXRzLk1pbmd3CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndycsICdVVEYtOCcpKQorICAgIF9fb1snQ1lHV0lOJ10gPSBmYWxzZQorICAgIF9fb1snR0NDVEFSRyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdtaW5ndzMyJywgJ1VURi04JykpCisgICAgX19vWydHQ0NWRVJTJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJzMuNC41JywgJ1VURi04JykpCisgICAgX19vWydMT05HTkFNRSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMkZiaW4lMkZtaW5ndzMyLWdjYy5leGUnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduRGlyZWN0aXZlU3VwcG9ydGVkJ10gPSBmYWxzZQorICAgIF9fb1snYXInXSA9IF9fb2JqWzMxMy4wXQorICAgIF9fb1snYXJPcHRzJ10gPSBfX29ialszMTQuMF0KKyAgICBfX29bJ2FzbSddID0gX19vYmpbMzE1LjBdCisgICAgX19vWydhc21PcHRzJ10gPSBfX29ialszMTYuMF0KKyAgICBfX29bJ2JpdHNQZXJDaGFyJ10gPSA4CisgICAgX19vWydjYyddID0gX19vYmpbMzE3LjBdCisgICAgX19vWydjY09wdHMnXSA9IF9fb2JqWzMxOC4wXQorICAgIF9fb1snY21kUHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGF0aWJsZVN1ZmZpeGVzJ10gPSBfX29ialszMTkuMF0KKyAgICBfX29bJ2RlYnVnR2VuJ10gPSBfX29ialszMjAuMF0KKyAgICBfX29bJ2RsbEV4dCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuc28nLCAnVVRGLTgnKSkKKyAgICBfX29bJ2V4dGVuc2lvbnMnXSA9IF9fb2JqWzMyMS4wXQorICAgIF9fb1snaW5jbHVkZU9wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisgICAgX19vWydpc2EnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgneDg2JywgJ1VURi04JykpCisgICAgX19vWydsbmsnXSA9IF9fb2JqWzMyOS4wXQorICAgIF9fb1snbG5rT3B0cyddID0gX19vYmpbMzMwLjBdCisgICAgX19vWydtb2RlbCddID0gX19vYmpbMzMxLjBdCisgICAgX19vWyduYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ01pbmd3JywgJ1VURi04JykpCisgICAgX19vWydvcyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdXaW5kb3dzJywgJ1VURi04JykpCisgICAgX19vWydwbGF0Zm9ybSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdob3N0LnBsYXRmb3Jtcy5QQycsICdVVEYtOCcpKQorICAgIF9fb1sncGxhdGZvcm1zJ10gPSBfX29ialszMzIuMF0KKyAgICBfX29bJ3Byb2ZpbGVzJ10gPSBfX29ialszMzMuMF0KKyAgICBfX29bJ3Jvb3REaXInXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZSUzQSUyRnJ0c2MlMkZtaW5ndycsICdVVEYtOCcpKQorICAgIF9fb1sncnRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLnJ0czg2R1cnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3NlY3RNYXAnXSA9IF9fb2JqWzM0Ni4wXQorICAgIF9fb1snc3RkSW5jbHVkZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUlMkZ0YXJnZXRzJTJGc3RkLmgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N0ZFR5cGVzJ10gPSBfX29ialszNDcuMF0KKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCc4NkdXJywgJ1VURi04JykpCisgICAgX19vWyd2ZXJzaW9uJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTdCMSUyQzAlMkMzLjQlMkM1JywgJ1VURi04JykpCisgICAgX19vWyd2ZXJzaW9uTWFwJ10gPSBfX29ialszNjQuMF0KKworX19vID0gX19vYmpbMzEzXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvYXIKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGYXInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NtZCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCclMjQlMjhyb290RGlyJTI5JTJGJTI0JTI4R0NDVEFSRyUyOSUyRmJpbiUyRmFyJywgJ1VURi04JykpCisgICAgX19vWydvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NyJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxNF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2FyT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZhck9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZmZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzE1XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvYXNtCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmFzbScsICdVVEYtOCcpKQorICAgIF9fb1snY21kJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNCUyOHJvb3REaXIlMjklMkYlMjQlMjhMT05HTkFNRSUyOSstYysteCthc3NlbWJsZXInLCAnVVRGLTgnKSkKKyAgICBfX29bJ29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxNl0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2FzbU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGYXNtT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1sncHJlZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTddICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9jYworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZjYycsICdVVEYtOCcpKQorICAgIF9fb1snY21kJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNCUyOHJvb3REaXIlMjklMkYlMjQlMjhMT05HTkFNRSUyOSstYystTUQrLU1GKyUyNCU0MC5kZXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMxOF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2NjT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZjY09wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3ByZWZpeCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctV3VudXNlZCcsICdVVEYtOCcpKQorICAgIF9fb1snc3VmZml4J10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1EZmFyJTNEKycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMTldICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9jb21wYXRpYmxlU3VmZml4ZXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGY29tcGF0aWJsZVN1ZmZpeGVzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2RlYnVnR2VuCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmRlYnVnR2VuJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyMV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGZXh0ZW5zaW9ucycsICdVVEYtOCcpKQorICAgIF9fb1snLkMnXSA9IF9fb2JqWzMyMi4wXQorICAgIF9fb1snLmFzbSddID0gX19vYmpbMzIzLjBdCisgICAgX19vWycuYyddID0gX19vYmpbMzI0LjBdCisgICAgX19vWycuY2MnXSA9IF9fb2JqWzMyNS4wXQorICAgIF9fb1snLmNwcCddID0gX19vYmpbMzI2LjBdCisgICAgX19vWycuY3h4J10gPSBfX29ialszMjcuMF0KKyAgICBfX29bJy5zODZHVyddID0gX19vYmpbMzI4LjBdCisKK19fbyA9IF9fb2JqWzMyMl0gIC8vIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5DJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LkMlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuQycsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjNdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuYXNtJworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZleHRlbnNpb25zJTJGJTI3LmFzbSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5hc20nLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhc20nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI0XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmMnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmV4dGVuc2lvbnMlMkYlMjcuYyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snc3VmJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy5jJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnYycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuY2MnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmV4dGVuc2lvbnMlMkYlMjcuY2MlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY2MnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdjcHAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI2XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvZXh0ZW5zaW9ucy8nLmNwcCcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGZXh0ZW5zaW9ucyUyRiUyNy5jcHAlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuY3BwJywgJ1VURi04JykpCisgICAgX19vWyd0eXAnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnY3BwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMyN10gIC8vIGdudS50YXJnZXRzLk1pbmd3L2V4dGVuc2lvbnMvJy5jeHgnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmV4dGVuc2lvbnMlMkYlMjcuY3h4JTI3JywgJ1VURi04JykpCisgICAgX19vWydzdWYnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLmN4eCcsICdVVEYtOCcpKQorICAgIF9fb1sndHlwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2NwcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMjhdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9leHRlbnNpb25zLycuczg2R1cnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmV4dGVuc2lvbnMlMkYlMjcuczg2R1clMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3N1ZiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcuczg2R1cnLCAnVVRGLTgnKSkKKyAgICBfX29bJ3R5cCddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdhc20nLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzI5XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvbG5rCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRmxuaycsICdVVEYtOCcpKQorICAgIF9fb1snY21kJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJyUyNCUyOHJvb3REaXIlMjklMkYlMjQlMjhMT05HTkFNRSUyOScsICdVVEYtOCcpKQorICAgIF9fb1snb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzMwXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvbG5rT3B0cworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZsbmtPcHRzJywgJ1VURi04JykpCisgICAgX19vWydwcmVmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisgICAgX19vWydzdWZmaXgnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWxzdGRjJTJCJTJCKy1MJTI0JTI4cm9vdERpciUyOSUyRmxpYicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9tb2RlbAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZtb2RlbCcsICdVVEYtOCcpKQorICAgIF9fb1snZW5kaWFuJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2xpdHRsZScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzJdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wbGF0Zm9ybXMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGcGxhdGZvcm1zJywgJ1VURi04JykpCisgICAgX19vWycwJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2hvc3QucGxhdGZvcm1zLlBDJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzM10gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJywgJ1VURi04JykpCisgICAgX19vWydjb3ZlcmFnZSddID0gX19vYmpbMzM0LjBdCisgICAgX19vWydkZWJ1ZyddID0gX19vYmpbMzM3LjBdCisgICAgX19vWydwcm9maWxlJ10gPSBfX29ialszNDAuMF0KKyAgICBfX29bJ3JlbGVhc2UnXSA9IF9fb2JqWzM0My4wXQorCitfX28gPSBfX29ialszMzRdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nY292ZXJhZ2UnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvbXBpbGVPcHRzJ10gPSBfX29ialszMzUuMF0KKyAgICBfX29bJ2ZpbHRlcnMnXSA9IF9fb2JqWzMzNi4wXQorICAgIF9fb1snbGlua09wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzNV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydjb3ZlcmFnZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGcHJvZmlsZXMlMkYlMjdjb3ZlcmFnZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctZnByb2ZpbGUtYXJjcystZnRlc3QtY292ZXJhZ2UnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzM2XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ2NvdmVyYWdlJy9maWx0ZXJzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3Y292ZXJhZ2UlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzMzN10gIC8vIGdudS50YXJnZXRzLk1pbmd3L3Byb2ZpbGVzLydkZWJ1ZycKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzMzOC4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzM5LjBdCisgICAgX19vWydsaW5rT3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctZycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzhdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3ZGVidWclMjclMkZjb21waWxlT3B0cycsICdVVEYtOCcpKQorICAgIF9fb1snY29wdHMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLWcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2RlZnMnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnLURfREVCVUdfJTNEMScsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszMzldICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8nZGVidWcnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGcHJvZmlsZXMlMkYlMjdkZWJ1ZyUyNyUyRmZpbHRlcnMnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQwXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3Byb2ZpbGUnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNycsICdVVEYtOCcpKQorICAgIF9fb1snY29tcGlsZU9wdHMnXSA9IF9fb2JqWzM0MS4wXQorICAgIF9fb1snZmlsdGVycyddID0gX19vYmpbMzQyLjBdCisgICAgX19vWydsaW5rT3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctcGcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQxXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3Byb2ZpbGUnL2NvbXBpbGVPcHRzCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnByb2ZpbGVzJTJGJTI3cHJvZmlsZSUyNyUyRmNvbXBpbGVPcHRzJywgJ1VURi04JykpCisgICAgX19vWydjb3B0cyddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCctZystcGcnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzQyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvcHJvZmlsZXMvJ3Byb2ZpbGUnL2ZpbHRlcnMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGcHJvZmlsZXMlMkYlMjdwcm9maWxlJTI3JTJGZmlsdGVycycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDNdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncmVsZWFzZScKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JywgJ1VURi04JykpCisgICAgX19vWydjb21waWxlT3B0cyddID0gX19vYmpbMzQ0LjBdCisgICAgX19vWydmaWx0ZXJzJ10gPSBfX29ialszNDUuMF0KKyAgICBfX29bJ2xpbmtPcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJycsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDRdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncmVsZWFzZScvY29tcGlsZU9wdHMKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGcHJvZmlsZXMlMkYlMjdyZWxlYXNlJTI3JTJGY29tcGlsZU9wdHMnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2NvcHRzJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJy1PMicsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDVdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9wcm9maWxlcy8ncmVsZWFzZScvZmlsdGVycworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZwcm9maWxlcyUyRiUyN3JlbGVhc2UlMjclMkZmaWx0ZXJzJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM0Nl0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3NlY3RNYXAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc2VjdE1hcCcsICdVVEYtOCcpKQorCitfX28gPSBfX29ialszNDddICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcworICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcycsICdVVEYtOCcpKQorICAgIF9fb1sndF9DaGFyJ10gPSBfX29ialszNDguMF0KKyAgICBfX29bJ3RfRG91YmxlJ10gPSBfX29ialszNDkuMF0KKyAgICBfX29bJ3RfRmxvYXQnXSA9IF9fb2JqWzM1MC4wXQorICAgIF9fb1sndF9GeG4nXSA9IF9fb2JqWzM1MS4wXQorICAgIF9fb1sndF9JQXJnJ10gPSBfX29ialszNTIuMF0KKyAgICBfX29bJ3RfSW50J10gPSBfX29ialszNTMuMF0KKyAgICBfX29bJ3RfSW50MTYnXSA9IF9fb2JqWzM1NC4wXQorICAgIF9fb1sndF9JbnQzMiddID0gX19vYmpbMzU1LjBdCisgICAgX19vWyd0X0ludDQwJ10gPSBfX29ialszNTYuMF0KKyAgICBfX29bJ3RfSW50NjQnXSA9IF9fb2JqWzM1Ny4wXQorICAgIF9fb1sndF9JbnQ4J10gPSBfX29ialszNTguMF0KKyAgICBfX29bJ3RfTERvdWJsZSddID0gX19vYmpbMzU5LjBdCisgICAgX19vWyd0X0xMb25nJ10gPSBfX29ialszNjAuMF0KKyAgICBfX29bJ3RfTG9uZyddID0gX19vYmpbMzYxLjBdCisgICAgX19vWyd0X1B0ciddID0gX19vYmpbMzYyLjBdCisgICAgX19vWyd0X1Nob3J0J10gPSBfX29ialszNjMuMF0KKworX19vID0gX19vYmpbMzQ4XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9DaGFyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9DaGFyJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMQorICAgIF9fb1snc2l6ZSddID0gMQorCitfX28gPSBfX29ialszNDldICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0RvdWJsZQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfRG91YmxlJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszNTBdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0Zsb2F0CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9GbG9hdCcsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzUxXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9GeG4KKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0Z4bicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDQKKworX19vID0gX19vYmpbMzUyXSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JQXJnCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JQXJnJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszNTNdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludAorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfSW50JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gNAorCitfX28gPSBfX29ialszNTRdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDE2CisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9JbnQxNicsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDIKKyAgICBfX29bJ3NpemUnXSA9IDIKKworX19vID0gX19vYmpbMzU1XSAgLy8gZ251LnRhcmdldHMuTWluZ3cvc3RkVHlwZXMvdF9JbnQzMgorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfSW50MzInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM1Nl0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50NDAKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0ludDQwJywgJ1VURi04JykpCisKK19fbyA9IF9fb2JqWzM1N10gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfSW50NjQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0ludDY0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszNThdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0ludDgKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0ludDgnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSAxCisgICAgX19vWydzaXplJ10gPSAxCisKK19fbyA9IF9fb2JqWzM1OV0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTERvdWJsZQorICAgIF9fb1snJG5hbWUnXSA9IFN0cmluZyhqYXZhLm5ldC5VUkxEZWNvZGVyLmRlY29kZSgnZ251LnRhcmdldHMuTWluZ3clMkZzdGRUeXBlcyUyRnRfTERvdWJsZScsICdVVEYtOCcpKQorICAgIF9fb1snYWxpZ24nXSA9IDQKKyAgICBfX29bJ3NpemUnXSA9IDEyCisKK19fbyA9IF9fb2JqWzM2MF0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfTExvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0xMb25nJywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gNAorICAgIF9fb1snc2l6ZSddID0gOAorCitfX28gPSBfX29ialszNjFdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy9zdGRUeXBlcy90X0xvbmcKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X0xvbmcnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM2Ml0gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfUHRyCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnN0ZFR5cGVzJTJGdF9QdHInLCAnVVRGLTgnKSkKKyAgICBfX29bJ2FsaWduJ10gPSA0CisgICAgX19vWydzaXplJ10gPSA0CisKK19fbyA9IF9fb2JqWzM2M10gIC8vIGdudS50YXJnZXRzLk1pbmd3L3N0ZFR5cGVzL3RfU2hvcnQKKyAgICBfX29bJyRuYW1lJ10gPSBTdHJpbmcoamF2YS5uZXQuVVJMRGVjb2Rlci5kZWNvZGUoJ2dudS50YXJnZXRzLk1pbmd3JTJGc3RkVHlwZXMlMkZ0X1Nob3J0JywgJ1VURi04JykpCisgICAgX19vWydhbGlnbiddID0gMgorICAgIF9fb1snc2l6ZSddID0gMgorCitfX28gPSBfX29ialszNjRdICAvLyBnbnUudGFyZ2V0cy5NaW5ndy92ZXJzaW9uTWFwCisgICAgX19vWyckbmFtZSddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCdnbnUudGFyZ2V0cy5NaW5ndyUyRnZlcnNpb25NYXAnLCAnVVRGLTgnKSkKKyAgICBfX29bJ2djYzMuMiddID0gU3RyaW5nKGphdmEubmV0LlVSTERlY29kZXIuZGVjb2RlKCcxJTJDMCUyQzMuMiUyQzAnLCAnVVRGLTgnKSkKKworX19vID0gX19vYmpbMzY1XSAgCisKK2RlbGV0ZSBfX28KK2RlbGV0ZSBfX29iagpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnJ0YS54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5ydGEueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdjZWU3NzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9jZmcvcHJvZ194ODZHVy5ydGEueG1sCkBAIC0wLDAgKzEsMTAyIEBACis8eGRjLnJ1bnRpbWUuVHlwZXMuUnRhRGVjb2RlckRhdGE+DQorICA8dGFyZ2V0TmFtZT5nbnUudGFyZ2V0cy5NaW5ndzwvdGFyZ2V0TmFtZT4NCisgIDxiaW5hcnlQYXJzZXI+dW5kZWZpbmVkPC9iaW5hcnlQYXJzZXI+DQorICA8ZW5kaWFuPmxpdHRsZTwvZW5kaWFuPg0KKyAgPGJpdHNQZXJDaGFyPjg8L2JpdHNQZXJDaGFyPg0KKyAgPGFyZ1NpemU+NDwvYXJnU2l6ZT4NCisgIDxldmVudFNpemU+NDg8L2V2ZW50U2l6ZT4NCisgIDxsb2dnZXJzLWxlbmd0aD4wPC9sb2dnZXJzLWxlbmd0aD4NCisgIDxtb2RNYXAtbGVuZ3RoPjE1PC9tb2RNYXAtbGVuZ3RoPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkFzc2VydCI+DQorICAgIDxpZD4zMjc3MDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkNvcmUiPg0KKyAgICA8aWQ+MzI3NzE8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5EZWZhdWx0cyI+DQorICAgIDxpZD4zMjc3MjwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLkRpYWdzIj4NCisgICAgPGlkPjMyNzczPC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuRXJyb3IiPg0KKyAgICA8aWQ+MzI3NzQ8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5HYXRlIj4NCisgICAgPGlkPjMyNzc1PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuR2F0ZU51bGwiPg0KKyAgICA8aWQ+MzI3NzY8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2ciPg0KKyAgICA8aWQ+MzI3Nzc8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5NYWluIj4NCisgICAgPGlkPjMyNzc4PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuTWVtb3J5Ij4NCisgICAgPGlkPjMyNzc5PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8bW9kTWFwIGtleT0ieGRjLnJ1bnRpbWUuSGVhcFN0ZCI+DQorICAgIDxpZD4zMjc4MDwvaWQ+DQorICAgIDxsb2dnZXI+bnVsbDwvbG9nZ2VyPg0KKyAgICA8ZGlhZ3NNYXNrPjAwMDAxMDAwMDAwMDAwMDA8L2RpYWdzTWFzaz4NCisgIDwvbW9kTWFwPg0KKyAgPG1vZE1hcCBrZXk9InhkYy5ydW50aW1lLlN0YXJ0dXAiPg0KKyAgICA8aWQ+MzI3ODE8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5TeXN0ZW0iPg0KKyAgICA8aWQ+MzI3ODI8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5TeXNNaW4iPg0KKyAgICA8aWQ+MzI3ODM8L2lkPg0KKyAgICA8bG9nZ2VyPm51bGw8L2xvZ2dlcj4NCisgICAgPGRpYWdzTWFzaz4wMDAwMTAwMDAwMDAwMDAwPC9kaWFnc01hc2s+DQorICA8L21vZE1hcD4NCisgIDxtb2RNYXAga2V5PSJ4ZGMucnVudGltZS5UZXh0Ij4NCisgICAgPGlkPjMyNzg0PC9pZD4NCisgICAgPGxvZ2dlcj5udWxsPC9sb2dnZXI+DQorICAgIDxkaWFnc01hc2s+MDAwMDEwMDAwMDAwMDAwMDwvZGlhZ3NNYXNrPg0KKyAgPC9tb2RNYXA+DQorICA8ZXZ0TWFwLWxlbmd0aD40PC9ldnRNYXAtbGVuZ3RoPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2NvbnN0cnVjdCI+DQorICAgIDxpZD40Njg8L2lkPg0KKyAgICA8bXNnPiUzQy0tK2NvbnN0cnVjdCUzQSslMjVwJTI4JTI3JTI1cyUyNyUyOTwvbXNnPg0KKyAgPC9ldnRNYXA+DQorICA8ZXZ0TWFwIGtleT0ieGRjLnJ1bnRpbWUuTG9nLkxfY3JlYXRlIj4NCisgICAgPGlkPjQ5MjwvaWQ+DQorICAgIDxtc2c+JTNDLS0rY3JlYXRlJTNBKyUyNXAlMjglMjclMjVzJTI3JTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCisgIDxldnRNYXAga2V5PSJ4ZGMucnVudGltZS5Mb2cuTF9kZXN0cnVjdCI+DQorICAgIDxpZD41MTM8L2lkPg0KKyAgICA8bXNnPi0tJTNFK2Rlc3RydWN0JTNBKyUyOCUyNXAlMjk8L21zZz4NCisgIDwvZXZ0TWFwPg0KKyAgPGV2dE1hcCBrZXk9InhkYy5ydW50aW1lLkxvZy5MX2RlbGV0ZSI+DQorICAgIDxpZD41MzI8L2lkPg0KKyAgICA8bXNnPi0tJTNFK2RlbGV0ZSUzQSslMjglMjVwJTI5PC9tc2c+DQorICA8L2V2dE1hcD4NCis8L3hkYy5ydW50aW1lLlR5cGVzLlJ0YURlY29kZXJEYXRhPgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cueGRjLmluYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnhkYy5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjQzZjc2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnhkYy5pbmMKQEAgLTAsMCArMSwyIEBACitwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZworcHJvZy5jZmcKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnhkbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2NmZy9wcm9nX3g4NkdXLnhkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDA2OTZjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvY2ZnL3Byb2dfeDg2R1cueGRsCkBAIC0wLDAgKzEsNjEgQEAKKy8qIHRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IGxpbmtjbWQueGR0IGZyb20gdGhlIGdudS50YXJnZXRzIHBhY2thZ2UgKi8KKworLyogZnVuY3Rpb24gYWxpYXNlcyAqLworX3hkY19ydW50aW1lX1RleHRfcHV0U2l0ZV9fRSA9IF94ZGNfcnVudGltZV9UZXh0X3B1dFNpdGVfX0Y7CitfeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0UgPSBfeGRjX3J1bnRpbWVfVGV4dF9wdXRMYWJfX0Y7CitfeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0UgPSBfeGRjX3J1bnRpbWVfR2F0ZU51bGxfcXVlcnlfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfY2hlY2tfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX3NwcmludGZfdmFfX0Y7CitfeGRjX3J1bnRpbWVfVGV4dF9jb3JkVGV4dF9fRSA9IF94ZGNfcnVudGltZV9UZXh0X2NvcmRUZXh0X19GOworX3hkY19ydW50aW1lX1N5c3RlbV9hdnNwcmludGZfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2F2c3ByaW50Zl9fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfZ2V0TWF4RGVmYXVsdFR5cGVBbGlnbl9fRjsKK194ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRSA9IF94ZGNfcnVudGltZV9HYXRlTnVsbF9sZWF2ZV9fRjsKK194ZGNfcnVudGltZV9HYXRlX2xlYXZlU3lzdGVtX19FID0gX3hkY19ydW50aW1lX0dhdGVfbGVhdmVTeXN0ZW1fX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0U2l0ZV9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9nZXRTaXRlX19GOworX3hkY19ydW50aW1lX0hlYXBTdGRfaXNCbG9ja2luZ19fRSA9IF94ZGNfcnVudGltZV9IZWFwU3RkX2lzQmxvY2tpbmdfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX3ByaW50Zl92YV9fRSA9IF94ZGNfcnVudGltZV9TeXN0ZW1fcHJpbnRmX3ZhX19GOworX3hkY19ydW50aW1lX1N5c3RlbV92c3ByaW50Zl9fRSA9IF94ZGNfcnVudGltZV9TeXN0ZW1fdnNwcmludGZfX0Y7CitfeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0UgPSBfeGRjX3J1bnRpbWVfTG9nX2RvUHJpbnRfX0Y7CitfeGRjX3J1bnRpbWVfU3lzTWluX3JlYWR5X19FID0gX3hkY19ydW50aW1lX1N5c01pbl9yZWFkeV9fRjsKK194ZGNfcnVudGltZV9TeXNNaW5fYWJvcnRfX0UgPSBfeGRjX3J1bnRpbWVfU3lzTWluX2Fib3J0X19GOworX3hkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19FID0gX3hkY19ydW50aW1lX1RleHRfbWF0Y2hSb3BlX19GOworX3hkY19ydW50aW1lX1N5c01pbl9wdXRjaF9fRSA9IF94ZGNfcnVudGltZV9TeXNNaW5fcHV0Y2hfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfaW5pdF9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9pbml0X19GOworX3hkY19ydW50aW1lX0Vycm9yX2dldElkX19FID0gX3hkY19ydW50aW1lX0Vycm9yX2dldElkX19GOworX3hkY19ydW50aW1lX0Vycm9yX3JhaXNlWF9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9yYWlzZVhfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX3B1dGNoX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9wdXRjaF9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYWJvcnRfX0UgPSBfeGRjX3J1bnRpbWVfU3lzdGVtX2Fib3J0X19GOworX3hkY19ydW50aW1lX0RpYWdzX3NldE1hc2tfX0UgPSBfeGRjX3J1bnRpbWVfRGlhZ3Nfc2V0TWFza19fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRSA9IF94ZGNfcnVudGltZV9TeXN0ZW1fYXByaW50Zl92YV9fRjsKK194ZGNfcnVudGltZV9FcnJvcl9nZXREYXRhX19FID0gX3hkY19ydW50aW1lX0Vycm9yX2dldERhdGFfX0Y7CitfeGRjX3J1bnRpbWVfSGVhcFN0ZF9hbGxvY19fRSA9IF94ZGNfcnVudGltZV9IZWFwU3RkX2FsbG9jX19GOworX3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19FID0gX3hkY19ydW50aW1lX0dhdGVOdWxsX2VudGVyX19GOworX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19FID0gX3hkY19ydW50aW1lX1RleHRfcHV0TW9kX19GOworX3hkY19ydW50aW1lX01lbW9yeV9nZXRTdGF0c19fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfZ2V0U3RhdHNfX0Y7CitfeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X2ZyZWVfX0Y7CitfeGRjX3J1bnRpbWVfU3RhcnR1cF9leGVjX19FID0gX3hkY19ydW50aW1lX1N0YXJ0dXBfZXhlY19fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfcXVlcnlfX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X3F1ZXJ5X19GOworX3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV92cHJpbnRmX19GOworX3hkY19ydW50aW1lX1N5c01pbl9mbHVzaF9fRSA9IF94ZGNfcnVudGltZV9TeXNNaW5fZmx1c2hfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfZ2V0Q29kZV9fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9nZXRDb2RlX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9leGl0X19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9leGl0X19GOworX3hkY19ydW50aW1lX0Vycm9yX2dldE1zZ19fRSA9IF94ZGNfcnVudGltZV9FcnJvcl9nZXRNc2dfX0Y7CitfeGRjX3J1bnRpbWVfU3RhcnR1cF9ydHNEb25lX19FID0gX3hkY19ydW50aW1lX1N0YXJ0dXBfcnRzRG9uZV9fRjsKK194ZGNfcnVudGltZV9NZW1vcnlfYWxsb2NfX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X2FsbG9jX19GOworX3hkY19ydW50aW1lX1N5c3RlbV9mbHVzaF9fRSA9IF94ZGNfcnVudGltZV9TeXN0ZW1fZmx1c2hfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2F2cHJpbnRmX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9hdnByaW50Zl9fRjsKK194ZGNfcnVudGltZV9UZXh0X3JvcGVUZXh0X19FID0gX3hkY19ydW50aW1lX1RleHRfcm9wZVRleHRfX0Y7CitfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0UgPSBfeGRjX3J1bnRpbWVfRXJyb3JfcHJpbnRfX0Y7CitfeGRjX3J1bnRpbWVfTWVtb3J5X2NhbGxvY19fRSA9IF94ZGNfcnVudGltZV9NZW1vcnlfY2FsbG9jX19GOworX3hkY19ydW50aW1lX0hlYXBTdGRfZnJlZV9fRSA9IF94ZGNfcnVudGltZV9IZWFwU3RkX2ZyZWVfX0Y7CitfeGRjX3J1bnRpbWVfU3lzdGVtX2FzcHJpbnRmX3ZhX19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9hc3ByaW50Zl92YV9fRjsKK194ZGNfcnVudGltZV9TeXN0ZW1fYXRleGl0X19FID0gX3hkY19ydW50aW1lX1N5c3RlbV9hdGV4aXRfX0Y7CitfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0UgPSBfeGRjX3J1bnRpbWVfU3lzTWluX2V4aXRfX0Y7CitfeGRjX3J1bnRpbWVfR2F0ZV9lbnRlclN5c3RlbV9fRSA9IF94ZGNfcnVudGltZV9HYXRlX2VudGVyU3lzdGVtX19GOworX3hkY19ydW50aW1lX01lbW9yeV92YWxsb2NfX0UgPSBfeGRjX3J1bnRpbWVfTWVtb3J5X3ZhbGxvY19fRjsKK194ZGNfcnVudGltZV9IZWFwU3RkX2dldFN0YXRzX19FID0gX3hkY19ydW50aW1lX0hlYXBTdGRfZ2V0U3RhdHNfX0Y7CisKKy8qIGlucHV0IGxpYnJhcmllcyAqLworSU5QVVQoCisgICAgIkU6XHJ0c2NceGRjdG9vbHNfM18xNV8wMF8yOVxwYWNrYWdlc1xnbnVcdGFyZ2V0c1xydHM4NkdXXGxpYlxnbnUudGFyZ2V0cy5ydHM4NkdXLmE4NkdXIgorKQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvaGVsbG8ucGtnLmNjcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2hlbGxvLnBrZy5jY3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2M1ZjkxOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2hlbGxvLnBrZy5jY3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvaGVsbG8ucGtnLnBqdCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2hlbGxvLnBrZy5wanQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU3ZjA2NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2hlbGxvLnBrZy5wanQKQEAgLTAsMCArMSw5IEBACis7IENvZGUgQ29tcG9zZXIgUHJvamVjdCBGaWxlLCBWZXJzaW9uIDIuMCAoZG8gbm90IG1vZGlmeSBvciByZW1vdmUgdGhpcyBsaW5lKQorW1Byb2plY3QgU2V0dGluZ3NdCitQcm9qZWN0TmFtZT0iaGVsbG8ucGtnIgorUHJvamVjdFR5cGU9RXh0ZXJuYWwKK0NQVUZhbWlseT1UTVMzMjBDNjRYWAorVG9vbD0iQ3VzdG9tQnVpbGRlciIKK0NvbmZpZz0iUGFja2FnZSIKK1tTb3VyY2UgRmlsZXNdCitTb3VyY2U9Ii4uL3Byb2cuYyIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2hlbGxvLnBrZy5zY2ggYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9oZWxsby5wa2cuc2NoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9oZWxsby5wa2cuc2NoCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9oZWxsb19wa2cuY2xhc3MgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9oZWxsb19wa2cuY2xhc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFlNzg5YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2hlbGxvX3BrZy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9oZWxsb19wa2cuamF2YSBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL2hlbGxvX3BrZy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkMmFjMGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9oZWxsb19wa2cuamF2YQpAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBvcmcubW96aWxsYS5qYXZhc2NyaXB0Lio7CitpbXBvcnQgeGRjLnNlcnZpY2VzLmludGVybi54c3IuKjsKK2ltcG9ydCB4ZGMuc2VydmljZXMuc3BlYy4qOworCitwdWJsaWMgY2xhc3MgaGVsbG9fcGtnCit7CisgICAgc3RhdGljIGZpbmFsIFN0cmluZyBWRVJTID0gIkAoIykgeGRjLXQzMlxuIjsKKworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX0Jvb2wgPSBQcm90by5FbG0ubmV3Qm9vbCgpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX051bSA9IFByb3RvLkVsbS5uZXdOdW0oKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9TdHIgPSBQcm90by5FbG0ubmV3U3RyKCk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfT2JqID0gUHJvdG8uRWxtLm5ld09iaigpOworCisgICAgc3RhdGljIGZpbmFsIFByb3RvLkZ4biAkJFRfTWV0ID0gbmV3IFByb3RvLkZ4bihudWxsLCBudWxsLCAwLCAtMSwgZmFsc2UpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5NYXAgJCRUX01hcCA9IG5ldyBQcm90by5NYXAoJCRUX09iaik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkFyciAkJFRfVmVjID0gbmV3IFByb3RvLkFycigkJFRfT2JqKTsKKworICAgIHN0YXRpYyBmaW5hbCBYU2NyaXB0TyAkJERFRkFVTFQgPSBWYWx1ZS5ERUZBVUxUOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRVTkRFRiA9IFVuZGVmaW5lZC5pbnN0YW5jZTsKKworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRQYWNrYWdlID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJFBhY2thZ2UiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkTW9kdWxlID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJE1vZHVsZSIpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRJbnN0YW5jZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRJbnN0YW5jZSIpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5PYmogJCRQYXJhbXMgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkUGFyYW1zIik7CisKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkb2JqRmxkR2V0ID0gR2xvYmFsLmdldCgiJCRvYmpGbGRHZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkb2JqRmxkU2V0ID0gR2xvYmFsLmdldCgiJCRvYmpGbGRTZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkcHJveHlHZXQgPSBHbG9iYWwuZ2V0KCIkJHByb3h5R2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJHByb3h5U2V0ID0gR2xvYmFsLmdldCgiJCRwcm94eVNldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRkZWxlZ0dldCA9IEdsb2JhbC5nZXQoIiQkZGVsZWdHZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkZGVsZWdTZXQgPSBHbG9iYWwuZ2V0KCIkJGRlbGVnU2V0Iik7CisKKyAgICBTY3JpcHRhYmxlIHhkY087CisgICAgU2Vzc2lvbiBzZXM7CisgICAgVmFsdWUuT2JqIG9tOworCisgICAgYm9vbGVhbiBpc1JPVjsKKyAgICBib29sZWFuIGlzQ0ZHOworCisgICAgUHJvdG8uT2JqIHBrZ1A7CisgICAgVmFsdWUuT2JqIHBrZ1Y7CisKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBpbXBvcnRzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gbG9nZ2FibGVzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gbWNmZ3MgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiBwcm94aWVzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gc2l6ZXMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKyAgICBBcnJheUxpc3Q8T2JqZWN0PiB0ZGVmcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworCisgICAgdm9pZCAkJElNUE9SVFMoKQorICAgIHsKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oImxvYWRQYWNrYWdlIiwgeGRjTywgInhkYyIpOworICAgICAgICBHbG9iYWwuY2FsbEZ4bigibG9hZFBhY2thZ2UiLCB4ZGNPLCAieGRjLmNvcmV2ZXJzIik7CisgICAgfQorCisgICAgdm9pZCAkJE9CSkVDVFMoKQorICAgIHsKKyAgICAgICAgcGtnUCA9IChQcm90by5PYmopb20uYmluZCgiaGVsbG8ucGtnLlBhY2thZ2UiLCBuZXcgUHJvdG8uT2JqKCkpOworICAgICAgICBwa2dWID0gKFZhbHVlLk9iailvbS5iaW5kKCJoZWxsby5wa2ciLCBuZXcgVmFsdWUuT2JqKCJoZWxsby5wa2ciLCBwa2dQKSk7CisgICAgfQorCisgICAgdm9pZCAkJFNJTkdMRVRPTlMoKQorICAgIHsKKyAgICAgICAgcGtnUC5pbml0KCJoZWxsby5wa2cuUGFja2FnZSIsIChQcm90by5PYmopb20uZmluZCgieGRjLklQYWNrYWdlLk1vZHVsZSIpKTsKKyAgICAgICAgcGtnUC5iaW5kKCIkY2Fwc3VsZSIsICQkVU5ERUYpOworICAgICAgICBwa2dWLmluaXQyKHBrZ1AsICJoZWxsby5wa2ciLCBWYWx1ZS5ERUZBVUxULCBmYWxzZSk7CisgICAgICAgIHBrZ1YuYmluZCgiJG5hbWUiLCAiaGVsbG8ucGtnIik7CisgICAgICAgIHBrZ1YuYmluZCgiJGNhdGVnb3J5IiwgIlBhY2thZ2UiKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkJHFuIiwgImhlbGxvLnBrZy4iKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkdmVycyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgVmFsdWUuTWFwIGF0bWFwID0gKFZhbHVlLk1hcClwa2dWLmdldHYoIiRhdHRyIik7CisgICAgICAgIGF0bWFwLnNlYWwoImxlbmd0aCIpOworICAgICAgICBpbXBvcnRzLmNsZWFyKCk7CisgICAgICAgIHBrZ1YuYmluZCgiJGltcG9ydHMiLCBpbXBvcnRzKTsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBzYiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CisgICAgICAgIHNiLmFwcGVuZCgidmFyIHBrZyA9IHhkYy5vbVsnaGVsbG8ucGtnJ107XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJpZiAocGtnLiR2ZXJzLmxlbmd0aCA+PSAzKSB7XG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgicGtnLiR2ZXJzLnB1c2goUGFja2FnZXMueGRjLnNlcnZpY2VzLmdsb2JhbC5WZXJzLmdldERhdGUoeGRjLmNzZCgpICsgJy8uLicpKTtcbiIpOworICAgICAgICBzYi5hcHBlbmQoIn1cbiIpOworICAgICAgICBzYi5hcHBlbmQoInBrZy5idWlsZC5saWJyYXJpZXMgPSBbXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2MgPSBbXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgiaWYoJ3N1ZmZpeCcgaW4geGRjLm9tWyd4ZGMuSVBhY2thZ2UkJExpYkRlc2MnXSkge1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgifVxuIik7CisgICAgICAgIEdsb2JhbC5ldmFsKHNiLnRvU3RyaW5nKCkpOworICAgIH0KKworICAgIHZvaWQgJCRJTklUSUFMSVpBVElPTigpCisgICAgeworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgaWYgKGlzQ0ZHKSB7CisgICAgICAgIH0vL2lzQ0ZHCisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJpbml0IiwgcGtnVik7CisgICAgICAgICgoVmFsdWUuQXJyKW9tLmZpbmQoIiRwYWNrYWdlcyIpKS5hZGQocGtnVik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXhlYyggU2NyaXB0YWJsZSB4ZGNPLCBTZXNzaW9uIHNlcyApCisgICAgeworICAgICAgICB0aGlzLnhkY08gPSB4ZGNPOworICAgICAgICB0aGlzLnNlcyA9IHNlczsKKyAgICAgICAgb20gPSAoVmFsdWUuT2JqKXhkY08uZ2V0KCJvbSIsIG51bGwpOworCisgICAgICAgIE9iamVjdCBvID0gb20uZ2V0bygiJG5hbWUiKTsKKyAgICAgICAgU3RyaW5nIHMgPSBvIGluc3RhbmNlb2YgU3RyaW5nID8gKFN0cmluZylvIDogbnVsbDsKKyAgICAgICAgaXNDRkcgPSBzICE9IG51bGwgJiYgcy5lcXVhbHMoImNmZyIpOworICAgICAgICBpc1JPViA9IHMgIT0gbnVsbCAmJiBzLmVxdWFscygicm92Iik7CisKKyAgICAgICAgJCRJTVBPUlRTKCk7CisgICAgICAgICQkT0JKRUNUUygpOworICAgICAgICBpZiAoaXNST1YpIHsKKyAgICAgICAgfS8vaXNST1YKKyAgICAgICAgJCRTSU5HTEVUT05TKCk7CisgICAgICAgICQkSU5JVElBTElaQVRJT04oKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9wYWNrYWdlLmJsZC54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGY2MWRjYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL3BhY2thZ2UuYmxkLnhtbApAQCAtMCwwICsxLDEwNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0gIFRoaXMgZmlsZSBjb25mb3JtcyB0byB0aGUgRFREIHhkYy9ibGQvYnVpbGQuZHRkIC0tPgorPHBhY2thZ2UgbmFtZT0iaGVsbG8ucGtnIiB2ZXJzaW9uPSIiIHByb2R1Y2VySWQ9InVuZGVmaW5lZCI+CisgICAgPHVuaXRzPgorICAgIDwvdW5pdHM+CisgICAgPHNvdXJjZXM+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwcm9nLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZ194NjRQLmMiLz4KKyAgICA8L3NvdXJjZXM+CisgICAgPGNvbmZpZ3VyYXRpb25zPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwcm9nLmNmZyIvPgorICAgIDwvY29uZmlndXJhdGlvbnM+CisgICAgPG1ha2VmaWxlcz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLnhkYy5kZXAiIHNyYz0icGFja2FnZS54ZGMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZ194NjRQLm1hayIgc3JjPSJwYWNrYWdlLmJsZCIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9wcm9nL3Byb2cubzY0UC5kZXAiIHNyYz0icHJvZy5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5vNjRQLmRlcCIgc3JjPSJwYWNrYWdlL2NmZy9wcm9nX3g2NFAuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL2NmZy9wcm9nX3g2NFAuZGVwIiBzcmM9InBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmciLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZ194ODZHVy5tYWsiIHNyYz0icGFja2FnZS5ibGQiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZy9wcm9nLm84NkdXLmRlcCIgc3JjPSJwcm9nLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9jZmcvcHJvZ194ODZHVy5vODZHVy5kZXAiIHNyYz0icGFja2FnZS9jZmcvcHJvZ194ODZHVy5jIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuZGVwIiBzcmM9InBhY2thZ2UvY2ZnL3Byb2dfeDg2R1cuY2ZnIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvcmVsL2hlbGxvX3BrZy50YXIuZGVwIiBzcmM9InBhY2thZ2UvcmVsL2hlbGxvX3BrZy54ZGMuaW5jIi8+CisgICAgPC9tYWtlZmlsZXM+CisgICAgPHRhcmdldHM+CisgICAgICAgIDx0YXJnZXQgbmFtZT0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICAgICAgdmVyc2lvbj0idGkudGFyZ2V0cy5DNjRQezEsMCw2LjEsNSIKKyAgICAgICAgICAgIHBsYXRmb3JtPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiCisgICAgICAgICAgICBpc2E9IjY0UCIKKyAgICAgICAgICAgIHN1ZmZpeD0iNjRQIgorICAgICAgICAgICAgcm9vdERpcj0iZDovdGkvYzYwMDAvYWxjIgorICAgICAgICAgICAgb3M9InVuZGVmaW5lZCIKKyAgICAgICAgICAgIHJ0cz0idGkudGFyZ2V0cy5ydHM2MDAwIj4KKyAgICAgICAgICAgIDxtb2RlbCBlbmRpYW49ImxpdHRsZSIKKyAgICAgICAgICAgICAgICBjb2RlTW9kZWw9InVuZGVmaW5lZCIKKyAgICAgICAgICAgICAgICBkYXRhTW9kZWw9InVuZGVmaW5lZCIvPgorICAgICAgICA8L3RhcmdldD4KKyAgICAgICAgPHRhcmdldCBuYW1lPSJnbnUudGFyZ2V0cy5NaW5ndyIKKyAgICAgICAgICAgIHZlcnNpb249ImdudS50YXJnZXRzLk1pbmd3ezEsMCwzLjQsNSIKKyAgICAgICAgICAgIHBsYXRmb3JtPSJob3N0LnBsYXRmb3Jtcy5QQyIKKyAgICAgICAgICAgIGlzYT0ieDg2IgorICAgICAgICAgICAgc3VmZml4PSI4NkdXIgorICAgICAgICAgICAgcm9vdERpcj0iZTovcnRzYy9taW5ndyIKKyAgICAgICAgICAgIG9zPSJXaW5kb3dzIgorICAgICAgICAgICAgcnRzPSJnbnUudGFyZ2V0cy5ydHM4NkdXIj4KKyAgICAgICAgICAgIDxtb2RlbCBlbmRpYW49ImxpdHRsZSIKKyAgICAgICAgICAgICAgICBjb2RlTW9kZWw9InVuZGVmaW5lZCIKKyAgICAgICAgICAgICAgICBkYXRhTW9kZWw9InVuZGVmaW5lZCIvPgorICAgICAgICA8L3RhcmdldD4KKyAgICA8L3RhcmdldHM+CisgICAgPGxpYnJhcmllcz4KKyAgICA8L2xpYnJhcmllcz4KKyAgICA8ZXhlY3V0YWJsZXM+CisgICAgPGV4ZWN1dGFibGUgbmFtZT0icHJvZyIKKyAgICAgICAgcG5hbWU9InByb2cueDY0UCIKKyAgICAgICAgdGFyZ2V0PSJ0aS50YXJnZXRzLkM2NFAiCisgICAgICAgIHBsYXRmb3JtPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiCisgICAgICAgIHByb2ZpbGU9InJlbGVhc2UiCisgICAgICAgIHhDZmdTY3JpcHQ9InBhY2thZ2UvY2ZnL3Byb2dfeDY0UC5jZmciCisgICAgICAgIHhDZmdQcmVmaXg9InBhY2thZ2UvY2ZnL3Byb2dfeDY0UCIKKyAgICAgICAgY2ZnU2NyaXB0PSJwcm9nLmNmZyIKKyAgICAgICAgLz4KKyAgICA8ZXhlY3V0YWJsZSBuYW1lPSJwcm9nIgorICAgICAgICBwbmFtZT0icHJvZy54ODZHVyIKKyAgICAgICAgdGFyZ2V0PSJnbnUudGFyZ2V0cy5NaW5ndyIKKyAgICAgICAgcGxhdGZvcm09Imhvc3QucGxhdGZvcm1zLlBDIgorICAgICAgICBwcm9maWxlPSJyZWxlYXNlIgorICAgICAgICB4Q2ZnU2NyaXB0PSJwYWNrYWdlL2NmZy9wcm9nX3g4NkdXLmNmZyIKKyAgICAgICAgeENmZ1ByZWZpeD0icGFja2FnZS9jZmcvcHJvZ194ODZHVyIKKyAgICAgICAgY2ZnU2NyaXB0PSJwcm9nLmNmZyIKKyAgICAgICAgLz4KKyAgICA8L2V4ZWN1dGFibGVzPgorICAgIDx0ZXN0cz4KKyAgICA8dGVzdCBleGVOYW1lPSJwcm9nLng2NFAiCisgICAgICAgIGFyZ3M9IiIKKyAgICAgICAgZ3JvdXBOYW1lPSJwcm9nLng2NFAiCisgICAgICAgIHJlZk91dHB1dD0idW5kZWZpbmVkIgorICAgICAgICByZWZFeGl0Q29kZT0iMCIKKyAgICAgICAgZXhlY0FyZ3M9IiIKKyAgICAgICAgLz4KKyAgICA8dGVzdCBleGVOYW1lPSJwcm9nLng4NkdXIgorICAgICAgICBhcmdzPSIiCisgICAgICAgIGdyb3VwTmFtZT0icHJvZy54ODZHVyIKKyAgICAgICAgcmVmT3V0cHV0PSJ1bmRlZmluZWQiCisgICAgICAgIHJlZkV4aXRDb2RlPSIwIgorICAgICAgICBleGVjQXJncz0iIgorICAgICAgICAvPgorICAgIDwvdGVzdHM+CisgICAgPHJlbGVhc2VzIHJlbERpcj0icGFja2FnZS9yZWwvIj4KKyAgICA8cmVsZWFzZSBuYW1lPSJoZWxsb19wa2ciCisgICAgICAgIHBuYW1lPSJoZWxsb19wa2cudGFyIgorICAgICAgICBsYWJlbD0iZGVmYXVsdCIKKyAgICA+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvYnVpbGQuY2ZnIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5leHQueG1sIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5ibGQueG1sIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5yZWwuZG90Ii8+CisgICAgPC9yZWxlYXNlPgorICAgIDwvcmVsZWFzZXM+CisgICAgPHJlcG9zaXRvcmllcz4KKyAgICA8L3JlcG9zaXRvcmllcz4KKzwvcGFja2FnZT4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvcGFja2FnZS5kZWZzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDJlZTYzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oCkBAIC0wLDAgKzEsMTMgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKyNpZm5kZWYgaGVsbG9fcGtnX18KKyNkZWZpbmUgaGVsbG9fcGtnX18KKworCisKKyNlbmRpZiAvKiBoZWxsb19wa2dfXyAqLyAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL3BhY2thZ2UuZG9jLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL3BhY2thZ2UuZG9jLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzVjNzI0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvcGFja2FnZS5kb2MueG1sCkBAIC0wLDAgKzEsNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxwYWNrYWdlIGtpbmQ9J3BhY2thZ2UnIG5hbWU9J2hlbGxvLnBrZycgbm9kb2M9JzAnIHJvb3Q9Jy4uLy4uLycgc3VtbWFyeT0nT3VyK2ZpcnN0K3BhY2thZ2UnPgorICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFcGFja2FnZSUzQyUyRnNwYW4lM0UrJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWhlbGxvLnBrZyUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslN0InLz4KKyAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyU3RCcvPgorPC9wYWNrYWdlPgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhYWQyMjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAKQEAgLTAsMCArMSw1NyBAQAorY2xlYW46Og0KKwkkKFJNKSBwYWNrYWdlL2hlbGxvLnBrZy5zY2gNCisJJChSTSkgcGFja2FnZS8udmVyc19nMTUwDQorCSQoUk0pIHBhY2thZ2UvLnZlcnNfcjE1MA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX2IxNTANCisJJChSTSkgcGFja2FnZS8udmVyc19jMTUwDQorCSQoUk0pIHBhY2thZ2UvLnhkYy10MzINCisJJChSTSkgcGFja2FnZS9oZWxsb19wa2cuamF2YQ0KKwkkKFJNKSBwYWNrYWdlL2hlbGxvX3BrZy5jbGFzcw0KKwkkKFJNKSBwYWNrYWdlL3BhY2thZ2VfaGVsbG8ucGtnLmMNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlLmRlZnMuaA0KKwkkKFJNKSBwYWNrYWdlL3BhY2thZ2UuZG9jLnhtbA0KKwkkKFJNKSBwYWNrYWdlL2hlbGxvLnBrZy5jY3MNCisKKy5pbnRlcmZhY2VzOiBwYWNrYWdlL2hlbGxvLnBrZy5zY2ggcGFja2FnZS8udmVyc19nMTUwIHBhY2thZ2UvLnZlcnNfcjE1MCBwYWNrYWdlLy52ZXJzX2IxNTAgcGFja2FnZS8udmVyc19jMTUwIHBhY2thZ2UvLnhkYy10MzIgcGFja2FnZS9oZWxsb19wa2cuamF2YSBwYWNrYWdlL2hlbGxvX3BrZy5jbGFzcyBwYWNrYWdlL3BhY2thZ2VfaGVsbG8ucGtnLmMgcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBwYWNrYWdlL3BhY2thZ2UuZG9jLnhtbCBwYWNrYWdlL2hlbGxvLnBrZy5jY3MgCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19nMTUwCitwYWNrYWdlLy52ZXJzX2cxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19yMTUwCitwYWNrYWdlLy52ZXJzX3IxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19iMTUwCitwYWNrYWdlLy52ZXJzX2IxNTA6CitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS8udmVyc19jMTUwCitwYWNrYWdlLy52ZXJzX2MxNTA6CisKKy5pbnRlcmZhY2VzOiAKKworIyBzY2hlbWEgaW5jbHVkZSBmaWxlIGRlcGVuZGVuY2llcworCisjIHNjaGVtYSB1cGRhdGUgZGVwZW5kZW5jaWVzCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogeGRjL0lQYWNrYWdlLnhkYw0KK3hkYy9JUGFja2FnZS54ZGM6DQordnBhdGggeGRjL0lQYWNrYWdlLnhkYyAkKFhQS0dWUEFUSCkNCisKK2lmbmVxIChjbGVhbiwkKE1BS0VDTURHT0FMUykpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2dsb2JhbC9qYXZhL3BhY2thZ2UuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2pzLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2pzLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS94YmVhbi5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS94YmVhbi5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi94c3IvamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4veHNyL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvdGFyLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3Rhci5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9jbWQvamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2phdmEvcGFja2FnZS5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvYW50bHIuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvYW50bHIuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9zcGVjL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvc3BlYy9qYXZhL3BhY2thZ2UuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vZ2VuL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2dlbi9qYXZhL3BhY2thZ2UuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2Vjai5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9lY2ouamFyDQorZW5kaWYKKyMgZ29hbHMgZm9yIGZpbGVzIGdlbmVyYXRlZCBkdXJpbmcgc2NoZW1hIGdlbmVyYXRpb24gYnV0IHVuc3BlY2lmaWVkIGJ5IHNjaGVtYSdzIHBhdHRlcm4gcnVsZQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAxNWQzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wYWNrYWdlL3BhY2thZ2UueGRjLmluYwpAQCAtMCwwICsxLDEzIEBACitwYWNrYWdlLnhkYw0KK3BhY2thZ2UvaGVsbG8ucGtnLnNjaA0KK3BhY2thZ2UvLnZlcnNfZzE1MA0KK3BhY2thZ2UvLnZlcnNfcjE1MA0KK3BhY2thZ2UvLnZlcnNfYjE1MA0KK3BhY2thZ2UvLnZlcnNfYzE1MA0KK3BhY2thZ2UvLnhkYy10MzINCitwYWNrYWdlL2hlbGxvX3BrZy5qYXZhDQorcGFja2FnZS9oZWxsb19wa2cuY2xhc3MNCitwYWNrYWdlL3BhY2thZ2VfaGVsbG8ucGtnLmMNCitwYWNrYWdlL3BhY2thZ2UuZGVmcy5oDQorcGFja2FnZS9wYWNrYWdlLmRvYy54bWwNCitwYWNrYWdlL2hlbGxvLnBrZy5jY3MNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9wYWNrYWdlX2hlbGxvLnBrZy5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvcGFja2FnZV9oZWxsby5wa2cuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjdiODAyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvcGFja2FnZV9oZWxsby5wa2cuYwpAQCAtMCwwICsxLDIxIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCitfX0ZBUl9fIGNoYXIgaGVsbG9fcGtnX19kdW1teV9fOworCisjZGVmaW5lIF9feGRjX1BLR1ZFUlMgbnVsbAorI2RlZmluZSBfX3hkY19QS0dOQU1FIGhlbGxvLnBrZworI2RlZmluZSBfX3hkY19QS0dQUkVGSVggaGVsbG9fcGtnXworCisjaWZkZWYgX194ZGNfYmxkX3BrZ19jX18KKyNkZWZpbmUgX19zdHJpbmdpZnkoYSkgI2EKKyNkZWZpbmUgX19sb2NhbF9pbmNsdWRlKGEpIF9fc3RyaW5naWZ5KGEpCisjaW5jbHVkZSBfX2xvY2FsX2luY2x1ZGUoX194ZGNfYmxkX3BrZ19jX18pCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvcmVsL2hlbGxvX3BrZy54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3BhY2thZ2UvcmVsL2hlbGxvX3BrZy54ZGMuaW5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhZDIzOTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcGFja2FnZS9yZWwvaGVsbG9fcGtnLnhkYy5pbmMKQEAgLTAsMCArMSw1IEBACitwYWNrYWdlL2J1aWxkLmNmZworcGFja2FnZS9wYWNrYWdlLmV4dC54bWwKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jCitwYWNrYWdlL3BhY2thZ2UuYmxkLnhtbAorcGFja2FnZS9wYWNrYWdlLnJlbC5kb3QKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wcm9nLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcHJvZy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyMmEzODAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcHJvZy5jCkBAIC0wLDAgKzEsMTEgQEAKKy8qDQorICogID09PT09PT09IGhlbGxvL3BrZy9wcm9nLmMgPT09PT09PT0NCisgKi8NCisNCisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzdGVtLmg+DQorIA0KK2ludCBtYWluKCkNCit7DQorICAgIFN5c3RlbV9wcmludGYoIkhlbGxvIFdvcmxkXG4iKTsNCisgICAgcmV0dXJuIDA7DQorfQ0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wcm9nLmNmZyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wcm9nLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDk4MjVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3Byb2cuY2ZnCkBAIC0wLDAgKzEsNSBAQAorLyoNCisgKiAgPT09PT09PT0gaGVsbG8vcGtnL3Byb2cuY2ZnID09PT09PT09DQorICovDQorDQordmFyIFN5c3RlbSA9IHhkYy51c2VNb2R1bGUoJ3hkYy5ydW50aW1lLlN5c3RlbScpOw0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wcm9nLng2NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcHJvZy54NjRQCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNGE1NTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby9oZWxsby9wa2cvcHJvZy54NjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wcm9nLng4NkdXIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vaGVsbG8vcGtnL3Byb2cueDg2R1cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmI4NTZiNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL2hlbGxvL3BrZy9wcm9nLng4NkdXCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvLmNwcm9qZWN0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy8uY3Byb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdmMmQ2MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvLmNwcm9qZWN0CkBAIC0wLDAgKzEsMjUyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZmlsZVZlcnNpb24gNC4wLjA/Pg0KKw0KKzxjcHJvamVjdD4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiPg0KKzxjY29uZmlndXJhdGlvbiBpZD0iMC40OTE5MTI2MDMiPg0KKzxzdG9yYWdlTW9kdWxlIGJ1aWxkU3lzdGVtSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmNvbmZpZ3VyYXRpb25EYXRhUHJvdmlkZXIiIGlkPSIwLjQ5MTkxMjYwMyIgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnNldHRpbmdzIiBuYW1lPSJEZWZhdWx0Ij4NCis8ZXh0ZXJuYWxTZXR0aW5ncy8+DQorPGV4dGVuc2lvbnM+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuVkNFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuR0FTRXJyb3JQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5FcnJvclBhcnNlciIvPg0KKzxleHRlbnNpb24gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkdMREVycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5HQ0NFcnJvclBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkVycm9yUGFyc2VyIi8+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuTWFrZUVycm9yUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuRXJyb3JQYXJzZXIiLz4NCis8L2V4dGVuc2lvbnM+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJjZHRCdWlsZFN5c3RlbSIgdmVyc2lvbj0iNC4wLjAiPg0KKzxjb25maWd1cmF0aW9uIGFydGlmYWN0TmFtZT0idHhuLmNsb2NrcyIgYnVpbGRQcm9wZXJ0aWVzPSIiIGRlc2NyaXB0aW9uPSIiIGlkPSIwLjQ5MTkxMjYwMyIgbmFtZT0iRGVmYXVsdCIgcGFyZW50PSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS5jZmciPg0KKzxmb2xkZXJJbmZvIGlkPSIwLjQ5MTkxMjYwMy4iIG5hbWU9Ii8iIHJlc291cmNlUGF0aD0iIj4NCis8dG9vbENoYWluIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5wcmVmYmFzZS50b29sY2hhaW4uMTY2MTg5MTI3IiBuYW1lPSJObyBUb29sQ2hhaW4iIHJlc291cmNlVHlwZUJhc2VkRGlzY292ZXJ5PSJmYWxzZSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUucHJlZmJhc2UudG9vbGNoYWluIj4NCis8dGFyZ2V0UGxhdGZvcm0gaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnByZWZiYXNlLnRvb2xjaGFpbi4xNjYxODkxMjcuMTU0MjAxMTAwOSIgbmFtZT0iIi8+DQorPGJ1aWxkZXIgYnVpbGRQYXRoPSIiIGNvbW1hbmQ9IiR7WERDUk9PVH0veGRjIiBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuZGVmYXVsdC5idWlsZGVyLjg0MzgxNTM2NSIga2VlcEVudmlyb25tZW50SW5CdWlsZGZpbGU9ImZhbHNlIiBtYW5hZ2VkQnVpbGRPbj0iZmFsc2UiIG5hbWU9IkdudSBNYWtlIEJ1aWxkZXIiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmRlZmF1bHQuYnVpbGRlciIvPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIubGlicy4xNDg3MzM4NDMxIiBuYW1lPSJob2xkZXIgZm9yIGxpYnJhcnkgc2V0dGluZ3MiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5saWJzIi8+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci4zMDcwNTg4NjUiIG5hbWU9IkdOVSBDKysiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS4xNTQwNzI2NTYzIiBsYW5ndWFnZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5nKysiIGxhbmd1YWdlTmFtZT0iR05VIEMrKyIgc291cmNlQ29udGVudFR5cGU9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmN4eFNvdXJjZSxvcmcuZWNsaXBzZS5jZHQuY29yZS5jeHhIZWFkZXIiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUiLz4NCis8L3Rvb2w+DQorPHRvb2wgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci40OTEwNDMyMzUiIG5hbWU9IkdOVSBDIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIiPg0KKzxpbnB1dFR5cGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlci5pblR5cGUuMTcyNTAyMzMzNyIgbGFuZ3VhZ2VJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZ2NjIiBsYW5ndWFnZU5hbWU9IkdOVSBDIiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuY1NvdXJjZSxvcmcuZWNsaXBzZS5jZHQuY29yZS5jSGVhZGVyIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuNDIwODM0NTk3IiBuYW1lPSJVUEMiIHN1cGVyQ2xhc3M9Im9yZy5lY2xpcHNlLmNkdC5idWlsZC5jb3JlLnNldHRpbmdzLmhvbGRlciI+DQorPGlucHV0VHlwZSBpZD0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyLmluVHlwZS43OTI1ODM5NjIiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhcnNlci51cGMudXBjIiBsYW5ndWFnZU5hbWU9IlVQQyIgc291cmNlQ29udGVudFR5cGU9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhcnNlci51cGMudXBjU291cmNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzx0b29sIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuMTg0NjQyMTk2IiBuYW1lPSJBc3NlbWJseSIgc3VwZXJDbGFzcz0ib3JnLmVjbGlwc2UuY2R0LmJ1aWxkLmNvcmUuc2V0dGluZ3MuaG9sZGVyIj4NCis8aW5wdXRUeXBlIGlkPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlLjEyOTM5Mzc0NzgiIGxhbmd1YWdlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmFzc2VtYmx5IiBsYW5ndWFnZU5hbWU9IkFzc2VtYmx5IiBzb3VyY2VDb250ZW50VHlwZT0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuYXNtU291cmNlIiBzdXBlckNsYXNzPSJvcmcuZWNsaXBzZS5jZHQuYnVpbGQuY29yZS5zZXR0aW5ncy5ob2xkZXIuaW5UeXBlIi8+DQorPC90b29sPg0KKzwvdG9vbENoYWluPg0KKzwvZm9sZGVySW5mbz4NCis8L2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0idHJ1ZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJGaWxlUHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ibWFrZWZpbGVHZW5lcmF0b3IiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItZiAke3Byb2plY3RfbmFtZX1fc2NkLm1rIiBjb21tYW5kPSJtYWtlIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259L3NwZWNzLmNwcCIgY29tbWFuZD0iZysrIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDV2luTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUMiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuYyIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLnhsYy5jb3JlLlhMQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLXYgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9IiR7WExfY29tcGlsZXJSb290fS94bGMiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZUNQUCI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsQyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHNjYW5uZXJDb25maWdCdWlsZEluZm8gaW5zdGFuY2VJZD0iMC40OTE5MTI2MDMiPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlckZpbGVQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJtYWtlZmlsZUdlbmVyYXRvciI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1mICR7cHJvamVjdF9uYW1lfV9zY2QubWsiIGNvbW1hbmQ9Im1ha2UiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ01hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGVDUFAiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9InRydWUiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vc3BlY3MuY3BwIiBjb21tYW5kPSJnKysiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5HQ0NXaW5NYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQyI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0idHJ1ZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS9zcGVjcy5jIiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIueGxjLmNvcmUuWExDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtdiAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iJHtYTF9jb21waWxlclJvb3R9L3hsYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci54bGMuY29yZS5YTENNYW5hZ2VkTWFrZVBlclByb2plY3RQcm9maWxlQ1BQIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC12ICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSIke1hMX2NvbXBpbGVyUm9vdH0veGxDIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L3NjYW5uZXJDb25maWdCdWlsZEluZm8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5leHRlcm5hbFNldHRpbmdzIi8+DQorPC9jY29uZmlndXJhdGlvbj4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9ImNkdEJ1aWxkU3lzdGVtIiB2ZXJzaW9uPSI0LjAuMCI+DQorPHByb2plY3QgaWQ9InR4bi5jbG9ja3MubnVsbC4xNzU5Mzg0NTM3IiBuYW1lPSJ0eG4uY2xvY2tzIi8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy8uZGxscyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvLmRsbHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvLmRsbHMKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvLmV4ZWN1dGFibGVzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy8uZXhlY3V0YWJsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvLmV4ZWN1dGFibGVzCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzLy5pbnRlcmZhY2VzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy8uaW50ZXJmYWNlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy8uaW50ZXJmYWNlcwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy8ubGlicmFyaWVzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy8ubGlicmFyaWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzLy5saWJyYXJpZXMKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvLnByb2plY3QgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4MTJkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzLy5wcm9qZWN0CkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+dHhuLmNsb2NrczwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmdlbm1ha2VidWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pj9uYW1lPzwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXV0b0J1aWxkVGFyZ2V0PC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZEFyZ3VtZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGRDb21tYW5kPC9rZXk+DQorCQkJCQk8dmFsdWU+JHtYRENST09UfS94ZGM8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkTG9jYXRpb248L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmNsZWFuQnVpbGRUYXJnZXQ8L2tleT4NCisJCQkJCTx2YWx1ZT5jbGVhbjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuY29udGVudHM8L2tleT4NCisJCQkJCTx2YWx1ZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFjdGl2ZUNvbmZpZ1NldHRpbmdzPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVBdXRvQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUZ1bGxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmZ1bGxCdWlsZFRhcmdldDwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS51c2VEZWZhdWx0QnVpbGRDbWQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5TY2FubmVyQ29uZmlnQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCTwvYnVpbGRTcGVjPg0KKwk8bmF0dXJlcz4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0LmNvcmUuY25hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5TY2FubmVyQ29uZmlnTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLm1hbmFnZWRCdWlsZE5hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzAxYzk1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAwCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSAKK292ZXJyaWRlIFhEQ1JPT1QgPSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkKK292ZXJyaWRlIFhEQ0JVSUxEQ0ZHID0gLi4vLi4vY29uZmlnLmJsZAorZW5kaWYKK2lmbmVxICgsJChmaW5kc3RyaW5nIGFyZ3MsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDQVJHUyA9IAorb3ZlcnJpZGUgWERDVEFSR0VUUyA9IAorZW5kaWYKKyMKK2lmZXEgKDAsMSkKK1BLR1BBVEggPSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXM7Li4vLi4KK0hPU1RPUyA9IFdpbmRvd3MKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL0Nsb2NrNjRQLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL0Nsb2NrNjRQLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzY1N2I4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvQ2xvY2s2NFAuYwpAQCAtMCwwICsxLDE5IEBACisvKg0KKyAqICA9PT09PT09PSB0eG4vY2xvY2tzL0Nsb2NrNjRQLmMgPT09PT09PT0NCisgKi8NCisNCisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3RhcnR1cC5oPg0KKyNpbmNsdWRlICJwYWNrYWdlL2ludGVybmFsL0Nsb2NrNjRQLnhkYy5oIg0KKyANCitleHRlcm4gdm9sYXRpbGUgY3JlZ2lzdGVyIHVuc2lnbmVkIGludCBUU0NMOw0KKyANCitJbnQgQ2xvY2s2NFBfTW9kdWxlX3N0YXJ0dXAoSW50IHN0YXRlKQ0KK3sNCisgICAgVFNDTCA9IDA7DQorICAgIHJldHVybiBTdGFydHVwX0RPTkU7DQorfQ0KKyANCitDbG9jazY0UF9UaW1lVmFsdWUgQ2xvY2s2NFBfZ2V0VGltZSgpDQorew0KKyAgICByZXR1cm4gKENsb2NrNjRQX1RpbWVWYWx1ZSkgVFNDTDsNCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9DbG9jazY0UC5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9DbG9jazY0UC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNmNkZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL0Nsb2NrNjRQLmgKQEAgLTAsMCArMSwzOTIgQEAKKy8qCisgKiAgRG8gbm90IG1vZGlmeSB0aGlzIGZpbGU7IGl0IGlzIGF1dG9tYXRpY2FsbHkgCisgKiAgZ2VuZXJhdGVkIGFuZCBhbnkgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLgorICoKKyAqIEAoIykgeGRjLXQzMgorICovCisKKy8qCisgKiA9PT09PT09PSBHRU5FUkFURUQgU0VDVElPTlMgPT09PT09PT0KKyAqICAgICAKKyAqICAgICBQUk9MT0dVRQorICogICAgIElOQ0xVREVTCisgKiAgICAgCisgKiAgICAgSU5URVJOQUwgREVGSU5JVElPTlMKKyAqICAgICBNT0RVTEUtV0lERSBDT05GSUdTCisgKiAgICAgVklSVFVBTCBGVU5DVElPTlMKKyAqICAgICBGVU5DVElPTiBERUNMQVJBVElPTlMKKyAqICAgICBDT05WRVJUT1JTCisgKiAgICAgU1lTVEVNIEZVTkNUSU9OUworICogICAgIEMrKyBDTElFTlQgV1JBUFBFUiBbZXhwZXJpbWVudGFsXQorICogICAgIAorICogICAgIEVQSUxPR1VFCisgKiAgICAgU1RBVEUgU1RSVUNUVVJFUworICogICAgIFBSRUZJWCBBTElBU0VTCisgKiAgICAgQysrIFNVUFBMSUVSIFdSQVBQRVIgW2V4cGVyaW1lbnRhbF0KKyAqLworCisKKy8qCisgKiA9PT09PT09PSBQUk9MT0dVRSA9PT09PT09PQorICovCisKKyNpZm5kZWYgdHhuX2Nsb2Nrc19DbG9jazY0UF9faW5jbHVkZQorI2RlZmluZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX19pbmNsdWRlCisKKyNpZm5kZWYgX19uZXN0ZWRfXworI2RlZmluZSBfX25lc3RlZF9fCisjZGVmaW5lIHR4bl9jbG9ja3NfQ2xvY2s2NFBfX3RvcF9fCisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCisjZGVmaW5lIF9fZXh0ZXJuIGV4dGVybiAiQyIKKyNlbHNlCisjZGVmaW5lIF9fZXh0ZXJuIGV4dGVybgorI2VuZGlmCisKKyNkZWZpbmUgdHhuX2Nsb2Nrc19DbG9jazY0UF9fX1ZFUlMgMTUwCisKKworLyoKKyAqID09PT09PT09IElOQ0xVREVTID09PT09PT09CisgKi8KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworI2luY2x1ZGUgPHhkYy9ydW50aW1lL3hkYy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1R5cGVzLmg+CisjaW5jbHVkZSA8dHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oPgorCisjaW5jbHVkZSA8YWNtZS91dGlscy9jbG9ja3MvSUNsb2NrLmg+CisKKworLyoKKyAqID09PT09PT09IEFVWElMSUFSWSBERUZJTklUSU9OUyA9PT09PT09PQorICovCisKKy8qIFRpbWVWYWx1ZSAqLwordHlwZWRlZiBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIHR4bl9jbG9ja3NfQ2xvY2s2NFBfVGltZVZhbHVlOworCisKKy8qCisgKiA9PT09PT09PSBJTlRFUk5BTCBERUZJTklUSU9OUyA9PT09PT09PQorICovCisKKworLyoKKyAqID09PT09PT09IE1PRFVMRS1XSURFIENPTkZJR1MgPT09PT09PT0KKyAqLworCisvKiBNb2R1bGVfX2RpYWdzRW5hYmxlZCAqLwordHlwZWRlZiB4ZGNfQml0czMyIENUX190eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fZGlhZ3NFbmFibGVkOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2RpYWdzRW5hYmxlZCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DOworCisvKiBNb2R1bGVfX2RpYWdzSW5jbHVkZWQgKi8KK3R5cGVkZWYgeGRjX0JpdHMzMiBDVF9fdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2RpYWdzSW5jbHVkZWQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX190eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fZGlhZ3NJbmNsdWRlZCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fZGlhZ3NJbmNsdWRlZF9fQzsKKworLyogTW9kdWxlX19kaWFnc01hc2sgKi8KK3R5cGVkZWYgeGRjX0JpdHMxNiogQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19kaWFnc01hc2s7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX190eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fZGlhZ3NNYXNrIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19kaWFnc01hc2tfX0M7CisKKy8qIE1vZHVsZV9fZ2F0ZU9iaiAqLwordHlwZWRlZiB4ZGNfUHRyIENUX190eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fZ2F0ZU9iajsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19nYXRlT2JqIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19nYXRlT2JqX19DOworCisvKiBNb2R1bGVfX2dhdGVQcm1zICovCit0eXBlZGVmIHhkY19QdHIgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19nYXRlUHJtczsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19nYXRlUHJtcyB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fZ2F0ZVBybXNfX0M7CisKKy8qIE1vZHVsZV9faWQgKi8KK3R5cGVkZWYgeGRjX3J1bnRpbWVfVHlwZXNfTW9kdWxlSWQgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19pZDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19pZCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9faWRfX0M7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRGVmaW5lZCAqLwordHlwZWRlZiB4ZGNfQm9vbCBDVF9fdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2xvZ2dlckRlZmluZWQ7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX190eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fbG9nZ2VyRGVmaW5lZCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fbG9nZ2VyRGVmaW5lZF9fQzsKKworLyogTW9kdWxlX19sb2dnZXJPYmogKi8KK3R5cGVkZWYgeGRjX1B0ciBDVF9fdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2xvZ2dlck9iajsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19sb2dnZXJPYmogdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2xvZ2dlck9ial9fQzsKKworLyogTW9kdWxlX19sb2dnZXJGeG40ICovCit0eXBlZGVmIHhkY19ydW50aW1lX1R5cGVzX0xvZ2dlckZ4bjQgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19sb2dnZXJGeG40OworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2xvZ2dlckZ4bjQgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2xvZ2dlckZ4bjRfX0M7CisKKy8qIE1vZHVsZV9fbG9nZ2VyRnhuOCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9UeXBlc19Mb2dnZXJGeG44IENUX190eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fbG9nZ2VyRnhuODsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19sb2dnZXJGeG44IHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19sb2dnZXJGeG44X19DOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lRnhuICovCit0eXBlZGVmIHhkY19Cb29sICgqQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19zdGFydHVwRG9uZUZ4bikodm9pZCk7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX190eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fc3RhcnR1cERvbmVGeG4gdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX3N0YXJ0dXBEb25lRnhuX19DOworCisvKiBPYmplY3RfX2NvdW50ICovCit0eXBlZGVmIHhkY19JbnQgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19jb3VudDsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19jb3VudCB0eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9fY291bnRfX0M7CisKKy8qIE9iamVjdF9faGVhcCAqLwordHlwZWRlZiB4ZGNfcnVudGltZV9JSGVhcF9IYW5kbGUgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19oZWFwOworX19leHRlcm4gX19GQVJfXyBjb25zdCBDVF9fdHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX2hlYXAgdHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX2hlYXBfX0M7CisKKy8qIE9iamVjdF9fc2l6ZW9mICovCit0eXBlZGVmIHhkY19TaXplVCBDVF9fdHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX3NpemVvZjsKK19fZXh0ZXJuIF9fRkFSX18gY29uc3QgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19zaXplb2YgdHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX3NpemVvZl9fQzsKKworLyogT2JqZWN0X190YWJsZSAqLwordHlwZWRlZiB4ZGNfUHRyIENUX190eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9fdGFibGU7CitfX2V4dGVybiBfX0ZBUl9fIGNvbnN0IENUX190eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9fdGFibGUgdHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX3RhYmxlX19DOworCisKKy8qCisgKiA9PT09PT09PSBWSVJUVUFMIEZVTkNUSU9OUyA9PT09PT09PQorICovCisKKy8qIEZ4bnNfXyAqLworc3RydWN0IHR4bl9jbG9ja3NfQ2xvY2s2NFBfRnhuc19fIHsKKyAgICB4ZGNfcnVudGltZV9UeXBlc19CYXNlKiBfX2Jhc2U7CisgICAgY29uc3QgeGRjX3J1bnRpbWVfVHlwZXNfU3lzRnhuczIqIF9fc3lzcDsKKyAgICBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlICgqZ2V0VGltZSkodm9pZCk7CisgICAgeGRjX3J1bnRpbWVfVHlwZXNfU3lzRnhuczIgX19zZnhuczsKK307CisKKy8qIE1vZHVsZV9fRlhOU19fQyAqLworX19leHRlcm4gY29uc3QgdHhuX2Nsb2Nrc19DbG9jazY0UF9GeG5zX18gdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX0ZYTlNfX0M7CisKKworLyoKKyAqID09PT09PT09IEZVTkNUSU9OIERFQ0xBUkFUSU9OUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV9zdGFydHVwICovCisjZGVmaW5lIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3N0YXJ0dXAgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfc3RhcnR1cF9fRQoreGRjX19DT0RFU0VDVCh0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9zdGFydHVwX19FLCAidHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfc3RhcnR1cCIpCitfX2V4dGVybiB4ZGNfSW50IHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3N0YXJ0dXBfX0UoIHhkY19JbnQgc3RhdGUgKTsKK3hkY19fQ09ERVNFQ1QodHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfc3RhcnR1cF9fRiwgInR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3N0YXJ0dXAiKQorX19leHRlcm4geGRjX0ludCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9zdGFydHVwX19GKCB4ZGNfSW50IHN0YXRlICk7Cit4ZGNfX0NPREVTRUNUKHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3N0YXJ0dXBfX1IsICJ0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9zdGFydHVwIikKK19fZXh0ZXJuIHhkY19JbnQgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfc3RhcnR1cF9fUiggeGRjX0ludCBzdGF0ZSApOworCisvKiBIYW5kbGVfX2xhYmVsX19TICovCit4ZGNfX0NPREVTRUNUKHR4bl9jbG9ja3NfQ2xvY2s2NFBfSGFuZGxlX19sYWJlbF9fUywgInR4bl9jbG9ja3NfQ2xvY2s2NFBfSGFuZGxlX19sYWJlbCIpCitfX2V4dGVybiB4ZGNfcnVudGltZV9UeXBlc19MYWJlbCogdHhuX2Nsb2Nrc19DbG9jazY0UF9IYW5kbGVfX2xhYmVsX19TKCB4ZGNfUHRyIG9iaiwgeGRjX3J1bnRpbWVfVHlwZXNfTGFiZWwqIGxhYiApOworCisvKiBNb2R1bGVfX3N0YXJ0dXBEb25lX19TICovCit4ZGNfX0NPREVTRUNUKHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19zdGFydHVwRG9uZV9fUywgInR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19zdGFydHVwRG9uZSIpCitfX2V4dGVybiB4ZGNfQm9vbCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fc3RhcnR1cERvbmVfX1MoIHZvaWQgKTsKKworLyogT2JqZWN0X19jcmVhdGVfX1MgKi8KK3hkY19fQ09ERVNFQ1QodHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX2NyZWF0ZV9fUywgInR4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19jcmVhdGUiKQorX19leHRlcm4geGRjX1B0ciB0eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9fY3JlYXRlX19TKCB4ZGNfUHRyIF9fb2EsIHhkY19TaXplVCBfX29zeiwgeGRjX1B0ciBfX2FhLCBjb25zdCB4ZGNfVUNoYXIqIF9fcGEsIHhkY19TaXplVCBfX3BzeiwgeGRjX3J1bnRpbWVfRXJyb3JfQmxvY2sqIF9fZWIgKTsKKworLyogT2JqZWN0X19kZWxldGVfX1MgKi8KK3hkY19fQ09ERVNFQ1QodHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX2RlbGV0ZV9fUywgInR4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19kZWxldGUiKQorX19leHRlcm4geGRjX1ZvaWQgdHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX2RlbGV0ZV9fUyggeGRjX1B0ciBpbnN0cCApOworCisvKiBPYmplY3RfX2Rlc3RydWN0X19TICovCit4ZGNfX0NPREVTRUNUKHR4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19kZXN0cnVjdF9fUywgInR4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19kZXN0cnVjdCIpCitfX2V4dGVybiB4ZGNfVm9pZCB0eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9fZGVzdHJ1Y3RfX1MoIHhkY19QdHIgb2JqcCApOworCisvKiBPYmplY3RfX2dldF9fUyAqLworeGRjX19DT0RFU0VDVCh0eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9fZ2V0X19TLCAidHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX2dldCIpCitfX2V4dGVybiB4ZGNfUHRyIHR4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19nZXRfX1MoIHhkY19QdHIgb2FyciwgeGRjX0ludCBpICk7CisKKy8qIE9iamVjdF9fZmlyc3RfX1MgKi8KK3hkY19fQ09ERVNFQ1QodHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX2ZpcnN0X19TLCAidHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX2ZpcnN0IikKK19fZXh0ZXJuIHhkY19QdHIgdHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX2ZpcnN0X19TKCB2b2lkICk7CisKKy8qIE9iamVjdF9fbmV4dF9fUyAqLworeGRjX19DT0RFU0VDVCh0eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9fbmV4dF9fUywgInR4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19uZXh0IikKK19fZXh0ZXJuIHhkY19QdHIgdHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX25leHRfX1MoIHhkY19QdHIgb2JqICk7CisKKy8qIFBhcmFtc19faW5pdF9fUyAqLworeGRjX19DT0RFU0VDVCh0eG5fY2xvY2tzX0Nsb2NrNjRQX1BhcmFtc19faW5pdF9fUywgInR4bl9jbG9ja3NfQ2xvY2s2NFBfUGFyYW1zX19pbml0IikKK19fZXh0ZXJuIHhkY19Wb2lkIHR4bl9jbG9ja3NfQ2xvY2s2NFBfUGFyYW1zX19pbml0X19TKCB4ZGNfUHRyIGRzdCwgeGRjX1B0ciBzcmMsIHhkY19TaXplVCBwc3osIHhkY19TaXplVCBpc3ogKTsKKworLyogUHJveHlfX2Fic3RyYWN0X19TICovCit4ZGNfX0NPREVTRUNUKHR4bl9jbG9ja3NfQ2xvY2s2NFBfUHJveHlfX2Fic3RyYWN0X19TLCAidHhuX2Nsb2Nrc19DbG9jazY0UF9Qcm94eV9fYWJzdHJhY3QiKQorX19leHRlcm4geGRjX0Jvb2wgdHhuX2Nsb2Nrc19DbG9jazY0UF9Qcm94eV9fYWJzdHJhY3RfX1MoIHZvaWQgKTsKKworLyogUHJveHlfX2RlbGVnYXRlX19TICovCit4ZGNfX0NPREVTRUNUKHR4bl9jbG9ja3NfQ2xvY2s2NFBfUHJveHlfX2RlbGVnYXRlX19TLCAidHhuX2Nsb2Nrc19DbG9jazY0UF9Qcm94eV9fZGVsZWdhdGUiKQorX19leHRlcm4geGRjX1B0ciB0eG5fY2xvY2tzX0Nsb2NrNjRQX1Byb3h5X19kZWxlZ2F0ZV9fUyggdm9pZCApOworCisvKiBnZXRUaW1lX19FICovCisjZGVmaW5lIHR4bl9jbG9ja3NfQ2xvY2s2NFBfZ2V0VGltZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX2dldFRpbWVfX0UKK3hkY19fQ09ERVNFQ1QodHhuX2Nsb2Nrc19DbG9jazY0UF9nZXRUaW1lX19FLCAidHhuX2Nsb2Nrc19DbG9jazY0UF9nZXRUaW1lIikKK19fZXh0ZXJuIGFjbWVfdXRpbHNfY2xvY2tzX0lDbG9ja19UaW1lVmFsdWUgdHhuX2Nsb2Nrc19DbG9jazY0UF9nZXRUaW1lX19FKCB2b2lkICk7Cit4ZGNfX0NPREVTRUNUKHR4bl9jbG9ja3NfQ2xvY2s2NFBfZ2V0VGltZV9fRiwgInR4bl9jbG9ja3NfQ2xvY2s2NFBfZ2V0VGltZSIpCitfX2V4dGVybiBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIHR4bl9jbG9ja3NfQ2xvY2s2NFBfZ2V0VGltZV9fRiggdm9pZCApOworX19leHRlcm4gYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX2dldFRpbWVfX1IoIHZvaWQgKTsKKworCisvKgorICogPT09PT09PT0gQ09OVkVSVE9SUyA9PT09PT09PQorICovCisKKy8qIE1vZHVsZV91cENhc3QgKi8KK3N0YXRpYyBpbmxpbmUgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV91cENhc3QoIHZvaWQgKQoreworICAgIHJldHVybiAoYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZSkmdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX0ZYTlNfX0M7Cit9CisKKy8qIE1vZHVsZV90b19hY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2sgKi8KKyNkZWZpbmUgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfdG9fYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3VwQ2FzdAorCisKKy8qCisgKiA9PT09PT09PSBTWVNURU0gRlVOQ1RJT05TID09PT09PT09CisgKi8KKworLyogTW9kdWxlX3N0YXJ0dXBEb25lICovCisjZGVmaW5lIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3N0YXJ0dXBEb25lKCkgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX3N0YXJ0dXBEb25lX19TKCkKKworLyogT2JqZWN0X2hlYXAgKi8KKyNkZWZpbmUgdHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfaGVhcCgpIHR4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19oZWFwX19DCisKKy8qIE1vZHVsZV9oZWFwICovCisjZGVmaW5lIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX2hlYXAoKSB0eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9faGVhcF9fQworCisvKiBNb2R1bGVfaWQgKi8KK3N0YXRpYyBpbmxpbmUgQ1RfX3R4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19pZCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9pZCggdm9pZCApIAoreworICAgIHJldHVybiB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9faWRfX0M7Cit9CisKKy8qIE1vZHVsZV9oYXNNYXNrICovCitzdGF0aWMgaW5saW5lIHhkY19Cb29sIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX2hhc01hc2soIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2RpYWdzTWFza19fQyAhPSBOVUxMOworfQorCisvKiBNb2R1bGVfZ2V0TWFzayAqLworc3RhdGljIGlubGluZSB4ZGNfQml0czE2IHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX2dldE1hc2soIHZvaWQgKSAKK3sKKyAgICByZXR1cm4gdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2RpYWdzTWFza19fQyAhPSBOVUxMID8gKnR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19kaWFnc01hc2tfX0MgOiAwOworfQorCisvKiBNb2R1bGVfc2V0TWFzayAqLworc3RhdGljIGlubGluZSB4ZGNfVm9pZCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9zZXRNYXNrKCB4ZGNfQml0czE2IG1hc2sgKSAKK3sKKyAgICBpZiAodHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2RpYWdzTWFza19fQyAhPSBOVUxMKSAqdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2RpYWdzTWFza19fQyA9IG1hc2s7Cit9CisKKworLyoKKyAqID09PT09PT09IEMrKyBDTElFTlQgV1JBUFBFUiBbZXhwZXJpbWVudGFsXSA9PT09PT09PQorICovCisKKyNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorbmFtZXNwYWNlIHR4bl9jbG9ja3MgeyBuYW1lc3BhY2UgQ2xvY2s2NFAgeworCisvKiBDbG9jazY0UDo6VGltZVZhbHVlICovCit0eXBlZGVmIHhkY19CaXRzMzIgVGltZVZhbHVlOworCisvKiBDbG9jazY0UDo6Z2V0VGltZSAqLworc3RhdGljIGlubGluZSBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIGdldFRpbWUoICApCit7CisgICAgcmV0dXJuIHR4bl9jbG9ja3NfQ2xvY2s2NFBfZ2V0VGltZSgpOworfQorCisvKiBDbG9jazY0UDo6TW9kdWxlICovCitjbGFzcyBNb2R1bGUgeworICAgIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlIF9fbW9kOworcHVibGljOgorICAgIE1vZHVsZSgpIHsgX19tb2QgPSAmdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX0ZYTlNfX0M7IH0KKyAgICBvcGVyYXRvciB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZSgpIHsgcmV0dXJuIF9fbW9kOyB9CisgICAgb3BlcmF0b3IgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX01vZHVsZSgpIHsgcmV0dXJuIChhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfTW9kdWxlKV9fbW9kOyB9CisgICAgb3BlcmF0b3IgYWNtZV91dGlsc19jbG9ja3M6OklDbG9jazo6TW9kdWxlJigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8YWNtZV91dGlsc19jbG9ja3M6OklDbG9jazo6TW9kdWxlJj4oKnRoaXMpOyB9Cit9OworCit9fQorI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCisKKworLyoKKyAqID09PT09PT09IEVQSUxPR1VFID09PT09PT09CisgKi8KKworI2lmZGVmIHR4bl9jbG9ja3NfQ2xvY2s2NFBfX3RvcF9fCisjdW5kZWYgX19uZXN0ZWRfXworI2VuZGlmCisKKyNlbmRpZiAvKiB0eG5fY2xvY2tzX0Nsb2NrNjRQX19pbmNsdWRlICovCisKKworLyoKKyAqID09PT09PT09IFNUQVRFIFNUUlVDVFVSRVMgPT09PT09PT0KKyAqLworCisjaWYgZGVmaW5lZChfX2NvbmZpZ19fKSB8fCAoIWRlZmluZWQoX19uZXN0ZWRfXykgJiYgZGVmaW5lZCh0eG5fY2xvY2tzX0Nsb2NrNjRQX19pbnRlcm5hbGFjY2VzcykpCisKKyNpZm5kZWYgdHhuX2Nsb2Nrc19DbG9jazY0UF9faW5jbHVkZV9zdGF0ZQorI2RlZmluZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX19pbmNsdWRlX3N0YXRlCisKKy8qIEMrKyB3cmFwcGVyICovCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKK25hbWVzcGFjZSB0eG5fY2xvY2tzIHsgbmFtZXNwYWNlIENsb2NrNjRQIHsKKworCit9fQorI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCisKKyNlbmRpZiAvKiB0eG5fY2xvY2tzX0Nsb2NrNjRQX19pbmNsdWRlX3N0YXRlICovCisKKyNlbmRpZgorCisKKy8qCisgKiA9PT09PT09PSBQUkVGSVggQUxJQVNFUyA9PT09PT09PQorICovCisKKyNpZiAhZGVmaW5lZChfX25lc3RlZF9fKSAmJiAhZGVmaW5lZCh0eG5fY2xvY2tzX0Nsb2NrNjRQX19ub2xvY2FsbmFtZXMpCisKKy8qIG1vZHVsZSBwcmVmaXggKi8KKyNkZWZpbmUgQ2xvY2s2NFBfVGltZVZhbHVlIHR4bl9jbG9ja3NfQ2xvY2s2NFBfVGltZVZhbHVlCisjZGVmaW5lIENsb2NrNjRQX2dldFRpbWUgdHhuX2Nsb2Nrc19DbG9jazY0UF9nZXRUaW1lCisjZGVmaW5lIENsb2NrNjRQX01vZHVsZV9uYW1lIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX25hbWUKKyNkZWZpbmUgQ2xvY2s2NFBfTW9kdWxlX2lkIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX2lkCisjZGVmaW5lIENsb2NrNjRQX01vZHVsZV9zdGFydHVwIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3N0YXJ0dXAKKyNkZWZpbmUgQ2xvY2s2NFBfTW9kdWxlX3N0YXJ0dXBEb25lIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3N0YXJ0dXBEb25lCisjZGVmaW5lIENsb2NrNjRQX01vZHVsZV9oYXNNYXNrIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX2hhc01hc2sKKyNkZWZpbmUgQ2xvY2s2NFBfTW9kdWxlX2dldE1hc2sgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfZ2V0TWFzaworI2RlZmluZSBDbG9jazY0UF9Nb2R1bGVfc2V0TWFzayB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9zZXRNYXNrCisjZGVmaW5lIENsb2NrNjRQX09iamVjdF9oZWFwIHR4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X2hlYXAKKyNkZWZpbmUgQ2xvY2s2NFBfTW9kdWxlX2hlYXAgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfaGVhcAorI2RlZmluZSBDbG9jazY0UF9Nb2R1bGVfdXBDYXN0IHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3VwQ2FzdAorI2RlZmluZSBDbG9jazY0UF9Nb2R1bGVfdG9fYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3RvX2FjbWVfdXRpbHNfY2xvY2tzX0lDbG9jaworCisvKiBDKysgd3JhcHBlciAqLworI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpICYmICFkZWZpbmVkKHR4bl9jbG9ja3NfQ2xvY2s2NFBfX0lOVEVSTkFMX18pCituYW1lc3BhY2UgQ2xvY2s2NFAgPSB0eG5fY2xvY2tzOjpDbG9jazY0UDsKKyNlbmRpZgorCisjZW5kaWYKKworCisvKgorICogPT09PT09PT0gQysrIFNVUFBMSUVSIFdSQVBQRVIgW2V4cGVyaW1lbnRhbF0gPT09PT09PT0KKyAqLworCisjaWYgZGVmaW5lZChfX2NwbHVzcGx1cykgJiYgZGVmaW5lZCh0eG5fY2xvY2tzX0Nsb2NrNjRQX19JTlRFUk5BTF9fKQorbmFtZXNwYWNlIENsb2NrNjRQIHsKKyAgICB1c2luZyB0eG5fY2xvY2tzOjpDbG9jazY0UDo6VGltZVZhbHVlOworCisvKiBDbG9jazY0UDo6TW9kdWxlX3N0YXJ0dXAgKi8KK2lubGluZSBpbnQgTW9kdWxlX3N0YXJ0dXAoIGludCBzdGF0ZSApOworI2RlZmluZSBERUZJTkVfX01vZHVsZV9zdGFydHVwXAorICAgIGludCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9zdGFydHVwKCBpbnQgc3RhdGUgKVwKKyAgICB7XAorICAgICAgICByZXR1cm4gQ2xvY2s2NFA6Ok1vZHVsZV9zdGFydHVwKHN0YXRlKTtcCisgICAgfVwKKworLyogQ2xvY2s2NFA6OmdldFRpbWUgKi8KK2lubGluZSBhY21lX3V0aWxzX2Nsb2Nrc19JQ2xvY2tfVGltZVZhbHVlIGdldFRpbWUoICApOworI2RlZmluZSBERUZJTkVfX2dldFRpbWVcCisgICAgYWNtZV91dGlsc19jbG9ja3NfSUNsb2NrX1RpbWVWYWx1ZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX2dldFRpbWUoIHZvaWQgKVwKKyAgICB7XAorICAgICAgICByZXR1cm4gQ2xvY2s2NFA6OmdldFRpbWUoKTtcCisgICAgfVwKKworfQorI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL0Nsb2NrNjRQLnhkYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvQ2xvY2s2NFAueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzMzlkMDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL0Nsb2NrNjRQLnhkYwpAQCAtMCwwICsxLDExIEBACisvKg0KKyAqICA9PT09PT09PSB0eG4vY2xvY2tzL0Nsb2NrNjRQLnhkYyA9PT09PT09PQ0KKyAqLw0KKw0KK2ltcG9ydCBhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2s7DQorIA0KKy8qISBUTVMzMjBDNjQrIElDbG9jayBtb2R1bGUgKi8NCitATW9kdWxlU3RhcnR1cA0KK21vZHVsZSBDbG9jazY0UCBpbmhlcml0cyBJQ2xvY2sgew0KKyAgICAvKiBubyBhZGRpdGlvbmFsIGZlYXR1cmVzIG9yIGludGVybmFsIGRldGFpbHMgKi8NCit9Ow0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvQ2xvY2s2NFAueHMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL0Nsb2NrNjRQLnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2NzBhYWYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL0Nsb2NrNjRQLnhzCkBAIC0wLDAgKzEsOCBAQAorLyoNCisgKiAgPT09PT09PT0gdHhuL2Nsb2Nrcy9DbG9jazY0UC54cyA9PT09PT09PQ0KKyAqLw0KKw0KK2Z1bmN0aW9uIG1vZHVsZSR1c2UoKQ0KK3sNCisgICAgeGRjLnVzZU1vZHVsZSgneGRjLnJ1bnRpbWUuU3RhcnR1cCcpOw0KK30NCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL2xpYi90eG4uY2xvY2tzLmE2NFAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL2xpYi90eG4uY2xvY2tzLmE2NFAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIzYTEyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvbGliL3R4bi5jbG9ja3MuYTY0UApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL2xpYi90eG4uY2xvY2tzLmE2NFAubWFrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9saWIvdHhuLmNsb2Nrcy5hNjRQLm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDM3MzkyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9saWIvdHhuLmNsb2Nrcy5hNjRQLm1hawpAQCAtMCwwICsxLDc3IEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisjICB0YXJnZXQgY29tcGF0aWJpbGl0eSBrZXkgPSB0aS50YXJnZXRzLkM2NFB7MSwwLDYuMSw1CisjCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MubzY0UC5kZXAKK2VuZGlmCisKK3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLm82NFA6IHwgLmludGVyZmFjZXMKK3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLm82NFA6IHBhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLmMgbGliL3R4bi5jbG9ja3MuYTY0UC5tYWsKKwlAJChSTSkgJEAuZGVwCisJJChSTSkgJEAKKwlAJChNU0cpIGNsNjRQICQ8IC4uLgorCSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi9jbDZ4IC1jICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfd2hvbGVfcHJvZ3JhbSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1vZSAtTzIgLW1vICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UgLXMgbzY0UCAkPCAtQyAgIC1xcSAtcGRzdzIyNSAtbXY2NHAgLWVvLm82NFAgLWVhLnM2NFAgIC1EeGRjX3RhcmdldF9uYW1lX189QzY0UCAtRHhkY190YXJnZXRfdHlwZXNfXz10aS90YXJnZXRzL3N0ZC5oIC1EeGRjX2JsZF9fcHJvZmlsZV93aG9sZV9wcm9ncmFtIC1EeGRjX2JsZF9fdmVyc18xXzBfNl8xXzUgLW9lIC1PMiAtbW8gICQoWERDSU5DUykgLUkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9pbmNsdWRlIC1mcz0uL3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UgLWZyPS4vcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvcGFja2FnZQorCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLm82NFA6Q19ESVI9CitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfdHhuLmNsb2Nrcy5vNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLm82NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfdHhuLmNsb2Nrcy5zNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfdHhuLmNsb2Nrcy5zNjRQOiBwYWNrYWdlL3BhY2thZ2VfdHhuLmNsb2Nrcy5jIGxpYi90eG4uY2xvY2tzLmE2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAtbiAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3dob2xlX3Byb2dyYW0gLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtb2UgLU8yIC1tbyAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvcGFja2FnZSAtZnI9Li9wYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlIC1mYyAkPAorCSQoTUtERVApIC1hICRALmRlcCAtcCBwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfd2hvbGVfcHJvZ3JhbSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1vZSAtTzIgLW1vICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlIC1mcj0uL3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UKKwktQCQoRklYREVQKSAkQC5kZXAgJEAuZGVwCisJCitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfdHhuLmNsb2Nrcy5zNjRQOkNfRElSPQorcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MuczY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfdHhuLmNsb2Nrcy5zNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL0Nsb2NrNjRQLm82NFAuZGVwCitlbmRpZgorCitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9DbG9jazY0UC5vNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9DbG9jazY0UC5vNjRQOiBDbG9jazY0UC5jIGxpYi90eG4uY2xvY2tzLmE2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3dob2xlX3Byb2dyYW0gLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtb2UgLU8yIC1tbyAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MgLWZyPS4vcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzIC1zIG82NFAgJDwgLUMgICAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfd2hvbGVfcHJvZ3JhbSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1vZSAtTzIgLW1vICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvdHhuLmNsb2NrcyAtZnI9Li9wYWNrYWdlL2xpYi9saWIvdHhuLmNsb2NrcworCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL0Nsb2NrNjRQLm82NFA6Q19ESVI9CitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9DbG9jazY0UC5vNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL0Nsb2NrNjRQLm82NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9DbG9jazY0UC5zNjRQOiB8IC5pbnRlcmZhY2VzCitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9DbG9jazY0UC5zNjRQOiBDbG9jazY0UC5jIGxpYi90eG4uY2xvY2tzLmE2NFAubWFrCisJQCQoUk0pICRALmRlcAorCSQoUk0pICRACisJQCQoTVNHKSBjbDY0UCAtbiAkPCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vY2w2eCAtYyAtbiAtcyAtLXN5bWRlYnVnOm5vbmUgLXFxIC1wZHN3MjI1IC1tdjY0cCAtZW8ubzY0UCAtZWEuczY0UCAgLUR4ZGNfdGFyZ2V0X25hbWVfXz1DNjRQIC1EeGRjX3RhcmdldF90eXBlc19fPXRpL3RhcmdldHMvc3RkLmggLUR4ZGNfYmxkX19wcm9maWxlX3dob2xlX3Byb2dyYW0gLUR4ZGNfYmxkX192ZXJzXzFfMF82XzFfNSAtb2UgLU8yIC1tbyAgJChYRENJTkNTKSAtSSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2luY2x1ZGUgLWZzPS4vcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MgLWZyPS4vcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MgLWZjICQ8CisJJChNS0RFUCkgLWEgJEAuZGVwIC1wIHBhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzIC1zIG82NFAgJDwgLUMgIC1uIC1zIC0tc3ltZGVidWc6bm9uZSAtcXEgLXBkc3cyMjUgLW12NjRwIC1lby5vNjRQIC1lYS5zNjRQICAtRHhkY190YXJnZXRfbmFtZV9fPUM2NFAgLUR4ZGNfdGFyZ2V0X3R5cGVzX189dGkvdGFyZ2V0cy9zdGQuaCAtRHhkY19ibGRfX3Byb2ZpbGVfd2hvbGVfcHJvZ3JhbSAtRHhkY19ibGRfX3ZlcnNfMV8wXzZfMV81IC1vZSAtTzIgLW1vICAkKFhEQ0lOQ1MpIC1JJCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvaW5jbHVkZSAtZnM9Li9wYWNrYWdlL2xpYi9saWIvdHhuLmNsb2NrcyAtZnI9Li9wYWNrYWdlL2xpYi9saWIvdHhuLmNsb2NrcworCS1AJChGSVhERVApICRALmRlcCAkQC5kZXAKKwkKK3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL0Nsb2NrNjRQLnM2NFA6Q19ESVI9CitwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9DbG9jazY0UC5zNjRQOiBQQVRIOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKK3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL0Nsb2NrNjRQLnM2NFA6IFBhdGg6PSQodGkudGFyZ2V0cy5DNjRQLnJvb3REaXIpL2Jpbi87JChQQVRIKQorCitjbGVhbiw2NFAgOjoKKwktJChSTSkgcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MubzY0UAorCS0kKFJNKSBwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9DbG9jazY0UC5vNjRQCisJLSQoUk0pIHBhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLnM2NFAKKwktJChSTSkgcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvQ2xvY2s2NFAuczY0UAorCitsaWIvdHhuLmNsb2Nrcy5hNjRQOiBwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfdHhuLmNsb2Nrcy5vNjRQIHBhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL0Nsb2NrNjRQLm82NFAgbGliL3R4bi5jbG9ja3MuYTY0UC5tYWsKKworY2xlYW46OgorCS0kKFJNKSBsaWIvdHhuLmNsb2Nrcy5hNjRQLm1hawpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlLmJsZCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIxOGE5MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS5ibGQKQEAgLTAsMCArMSwxNSBAQAorLyoNCisgKiAgPT09PT09PT0gdHhuL2Nsb2Nrcy9wYWNrYWdlLmJsZCA9PT09PT09PQ0KKyAqLw0KKw0KK3ZhciBCdWlsZCA9IHhkYy51c2VNb2R1bGUoJ3hkYy5ibGQuQnVpbGRFbnZpcm9ubWVudCcpOw0KK3ZhciBQa2cgPSB4ZGMudXNlTW9kdWxlKCd4ZGMuYmxkLlBhY2thZ2VDb250ZW50cycpOw0KKyANCit2YXIgTElCX05BTUUgPSAibGliLyIgKyBQa2cubmFtZTsNCit2YXIgTElCX1NSQ1MgPSBbIkNsb2NrNjRQLmMiXTsNCisgDQorZm9yIGVhY2ggKHZhciB0YXJnIGluIEJ1aWxkLnRhcmdldHMpIHsNCisgICAgaWYgKHRhcmcuaXNhID09ICI2NFAiKSB7DQorICAgICAgICBQa2cuYWRkTGlicmFyeShMSUJfTkFNRSwgdGFyZywge3Byb2ZpbGU6ICd3aG9sZV9wcm9ncmFtJ30pLmFkZE9iamVjdHMoTElCX1NSQ1MpOw0KKyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS5tYWsgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5OTQzYzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UubWFrCkBAIC0wLDAgKzEsMjIyIEBACisjCisjICBEbyBub3QgZWRpdCB0aGlzIGZpbGUuICBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGZyb20gCisjICBwYWNrYWdlLmJsZC4gIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgZmlsZSB3aWxsIGJlIAorIyAgb3ZlcndyaXR0ZW4gd2hlbmV2ZXIgbWFrZWZpbGVzIGFyZSByZS1nZW5lcmF0ZWQuCisjCisKK3VuZXhwb3J0IE1BS0VGSUxFX0xJU1QKK292ZXJyaWRlIFBLR0RJUiA9IHR4bi9jbG9ja3MKK1hEQ0lOQ1MgPSAtSS4gLUkkKHN0cmlwICQoc3Vic3QgOywgLUksJChzdWJzdCAkKHNwYWNlKSxcJChzcGFjZSksJChYUEtHUEFUSCkpKSkKK1hEQ0NGR0RJUiA9IHBhY2thZ2UvY2ZnLworCisjCisjIFRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jaWVzIGVuc3VyZSBwYWNrYWdlLm1hayBpcyByZWJ1aWx0CisjIGluIHRoZSBldmVudCB0aGF0IHNvbWUgaW5jbHVkZWQgQk9NIHNjcmlwdCBjaGFuZ2VzLgorIworaWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9JVGFyZ2V0LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9JVGFyZ2V0LnhzCitEOi93b3JrL3R1dG9yaWFsL3JlcG8vY29uZmlnLmJsZDoKK3BhY2thZ2UubWFrOiBEOi93b3JrL3R1dG9yaWFsL3JlcG8vY29uZmlnLmJsZAorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4yLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMveG1sZ2VuMi54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvQ2xvY2sueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvQ2xvY2sueHMKK3BhY2thZ2UubWFrOiBwYWNrYWdlLmJsZAorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUGFja2FnZUNvbnRlbnRzLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1BhY2thZ2VDb250ZW50cy54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvVHJhY2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9MaW51eDg2LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9MaW51eDg2LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9JVGFyZ2V0LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL0lUYXJnZXQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9NaW5ndy54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvTWluZ3cueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL3BhY2thZ2UueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvcGFja2FnZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL2dudS90YXJnZXRzL01WQXJtOS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvTVZBcm05LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvaW5jbHVkZS91dGlscy50Y2k6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L2luY2x1ZGUvdXRpbHMudGNpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3hkYy50Y2k6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94ZGMudGNpCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvZ251L3RhcmdldHMvVUNBcm05LnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9VQ0FybTkueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvdGVtcGxhdGUueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy90ZW1wbGF0ZS54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3RpL3RhcmdldHMvTVNQNDMwLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL01TUDQzMC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy94bWxnZW4ueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy9nbnUvdGFyZ2V0cy9wYWNrYWdlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9fZ2VuLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL19nZW4ueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvSVRhcmdldC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvUmVwb3NpdG9yeS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9SZXBvc2l0b3J5LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL0lQYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvSVBhY2thZ2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1NjcmlwdC54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9TY3JpcHQueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0J1aWxkRW52aXJvbm1lbnQueHM6CitwYWNrYWdlLm1hazogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvQnVpbGRFbnZpcm9ubWVudC54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvTGlicmFyeS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9MaWJyYXJ5LnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9wYWNrYWdlLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3BhY2thZ2UueHMKK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1V0aWxzLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL1V0aWxzLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL29tMi54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL29tMi54cworRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ibGQvRXhlY3V0YWJsZS54czoKK3BhY2thZ2UubWFrOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9FeGVjdXRhYmxlLnhzCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL2JsZC9JVGFyZ2V0RmlsdGVyLnhzOgorcGFja2FnZS5tYWs6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvYmxkL0lUYXJnZXRGaWx0ZXIueHMKK2VuZGlmCisKK3RpLnRhcmdldHMuQzY0UC5yb290RGlyID89IGQ6L3RpL2M2MDAwL2FsYwordGkudGFyZ2V0cy5wYWNrYWdlQmFzZSA/PSBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy8KKy5QUkVDSU9VUzogJChYRENDRkdESVIpLyUubzY0UAorLlBIT05ZOiBhbGwsNjRQIC5kbGxzLDY0UCAuZXhlY3V0YWJsZXMsNjRQIHRlc3QsNjRQCithbGwsNjRQOiAuZXhlY3V0YWJsZXMsNjRQCisuZXhlY3V0YWJsZXMsNjRQOiAubGlicmFyaWVzLDY0UAorLmV4ZWN1dGFibGVzLDY0UDogLmRsbHMsNjRQCisuZGxscyw2NFA6IC5saWJyYXJpZXMsNjRQCisubGlicmFyaWVzLDY0UDogLmludGVyZmFjZXMKKwlAJChSTSkgJEAKKwlAJChUT1VDSCkgIiRAIgorCisuaGVscDo6CisJQCQoRUNITykgeGRjIHRlc3QsNjRQCisJQCQoRUNITykgeGRjIC5leGVjdXRhYmxlcyw2NFAKKwlAJChFQ0hPKSB4ZGMgLmxpYnJhcmllcyw2NFAKKwlAJChFQ0hPKSB4ZGMgLmRsbHMsNjRQCisKK2FsbCw4NkdXIC5saWJyYXJpZXMsODZHVyAuZGxscyw4NkdXIC5leGVjdXRhYmxlcyw4NkdXIHRlc3QsODZHVzo7CisKK2FsbDogLmV4ZWN1dGFibGVzIAorLmV4ZWN1dGFibGVzOiAubGlicmFyaWVzIC5kbGxzCisubGlicmFyaWVzOiAuaW50ZXJmYWNlcworCitQS0dDRkdTIDo9ICQod2lsZGNhcmQgcGFja2FnZS54cykgcGFja2FnZS9idWlsZC5jZmcKKy5pbnRlcmZhY2VzOiBwYWNrYWdlL3BhY2thZ2UueGRjLmluYyBwYWNrYWdlL3BhY2thZ2UuZGVmcy5oIHBhY2thZ2UueGRjICQoUEtHQ0ZHUykKKworLWluY2x1ZGUgcGFja2FnZS9wYWNrYWdlLnhkYy5kZXAKK3BhY2thZ2UvJS54ZGMuaW5jIHBhY2thZ2UvJV90eG4uY2xvY2tzLmMgcGFja2FnZS8lLmRlZnMuaDogJS54ZGMgJChQS0dDRkdTKQorCUAkKE1TRykgZ2VuZXJhdGluZyBpbnRlcmZhY2VzIGZvciBwYWNrYWdlIHR4bi5jbG9ja3MiIChiZWNhdXNlICRAIGlzIG9sZGVyIHRoYW4gJChmaXJzdHdvcmQgJD8pKSIgLi4uCisJJChYU1JVTikgLWYgeGRjL3NlcnZpY2VzL2ludGVybi9jbWQvYnVpbGQueHMgJChNS19JRExPUFRTKSAtbSBwYWNrYWdlL3BhY2thZ2UueGRjLmRlcCAtaSBwYWNrYWdlL3BhY2thZ2UueGRjLmluYyBwYWNrYWdlLnhkYworCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorLWluY2x1ZGUgcGFja2FnZS9wYWNrYWdlLmNmZy5kZXAKK2VuZGlmCisKK3BhY2thZ2UvcGFja2FnZS5leHQueG1sOiBwYWNrYWdlL3BhY2thZ2UuY2ZnLnhkYy5pbmMKK3BhY2thZ2UvcGFja2FnZS5jZmcueGRjLmluYzogJChYRENST09UKS9wYWNrYWdlcy94ZGMvY2ZnL2NmZ2luYy5qcyBwYWNrYWdlLnhkYworCUAkKE1TRykgZ2VuZXJhdGluZyBzY2hlbWEgaW5jbHVkZSBmaWxlIGxpc3QgLi4uCisJJChDT05GSUcpIC1mICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2NmZy9jZmdpbmMuanMgdHhuLmNsb2NrcyAkQAorCisubGlicmFyaWVzLDY0UCAubGlicmFyaWVzOiBsaWIvdHhuLmNsb2Nrcy5hNjRQCisKKy1pbmNsdWRlIGxpYi90eG4uY2xvY2tzLmE2NFAubWFrCitsaWIvdHhuLmNsb2Nrcy5hNjRQOiAKKwkkKFJNKSAkQAorCUAkKE1TRykgYXJjaGl2aW5nIHBhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLm82NFAgcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvQ2xvY2s2NFAubzY0UCAgaW50byAkQCAuLi4KKwkkKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vYXI2eCAgcnEgJEAgICBwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfdHhuLmNsb2Nrcy5vNjRQIHBhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL0Nsb2NrNjRQLm82NFAgCitsaWIvdHhuLmNsb2Nrcy5hNjRQOkNfRElSPQorbGliL3R4bi5jbG9ja3MuYTY0UDogUEFUSDo9JCh0aS50YXJnZXRzLkM2NFAucm9vdERpcikvYmluLzskKFBBVEgpCitsaWIvdHhuLmNsb2Nrcy5hNjRQOiBQYXRoOj0kKHRpLnRhcmdldHMuQzY0UC5yb290RGlyKS9iaW4vOyQoUEFUSCkKKworY2xlYW4sNjRQIGNsZWFuOjoKKwktJChSTSkgbGliL3R4bi5jbG9ja3MuYTY0UAordGVzdDo7CislLGNvcHk6CisJQCQoaWYgJDwsLCQoTVNHKSBkb25cJ3Qga25vdyBob3cgdG8gYnVpbGQgJCo7IGV4aXQgMSkKKwlAJChNU0cpIGNwICQ8ICRACisJJChSTSkgJEAKKwkkKENQKSAkPCAkQAorcGFja2FnZV90eG4uY2xvY2tzLm82NFAsY29weSA6IHBhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLm82NFAKK3BhY2thZ2VfdHhuLmNsb2Nrcy5zNjRQLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfdHhuLmNsb2Nrcy5zNjRQCitDbG9jazY0UC5vNjRQLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9DbG9jazY0UC5vNjRQCitDbG9jazY0UC5zNjRQLGNvcHkgOiBwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9DbG9jazY0UC5zNjRQCisKKyQoWERDQ0ZHRElSKSUuYyAkKFhEQ0NGR0RJUiklLmggJChYRENDRkdESVIpJS54ZGw6ICQoWERDQ0ZHRElSKSUuY2ZnIC5pbnRlcmZhY2VzICQoWERDUk9PVCkvcGFja2FnZXMveGRjL2NmZy9NYWluLnhzCisJQCQoTVNHKSAiY29uZmlndXJpbmcgJChfUFJPR19OQU1FKSBmcm9tICQ8IC4uLiIKKwkkKENPTkZJRykgJChfUFJPR19YU09QVFMpIHhkYy5jZmcgJChfUFJPR19OQU1FKSAkKFhEQ0NGR0RJUikkKi5jZmcgJChYRENDRkdESVIpJCoKKworLlBIT05ZOiByZWxlYXNlLHR4bl9jbG9ja3MKK3R4bl9jbG9ja3MudGFyOiBwYWNrYWdlL2J1aWxkLmNmZwordHhuX2Nsb2Nrcy50YXI6IHBhY2thZ2UvcGFja2FnZS5jZmcueGRjLmluYwordHhuX2Nsb2Nrcy50YXI6IHBhY2thZ2UvcGFja2FnZS5leHQueG1sCit0eG5fY2xvY2tzLnRhcjogcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKK3R4bl9jbG9ja3MudGFyOiBwYWNrYWdlL3BhY2thZ2UuYmxkLnhtbAordHhuX2Nsb2Nrcy50YXI6IHBhY2thZ2UvcGFja2FnZS5yZWwuZG90Cit0eG5fY2xvY2tzLnRhcjogbGliL3R4bi5jbG9ja3MuYTY0UAoraWZuZXEgKGNsZWFuLCQoTUFLRUNNREdPQUxTKSkKKy1pbmNsdWRlIHBhY2thZ2UvcmVsL3R4bl9jbG9ja3MudGFyLmRlcAorZW5kaWYKK3BhY2thZ2UvcmVsL3R4bl9jbG9ja3MvdHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UucmVsLnhtbDoKKwordHhuX2Nsb2Nrcy50YXI6IHBhY2thZ2UvcmVsL3R4bl9jbG9ja3MueGRjLmluYyBwYWNrYWdlL3JlbC90eG5fY2xvY2tzL3R4bi9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLnJlbC54bWwKKwlAJChNU0cpIG1ha2luZyByZWxlYXNlIGZpbGUgJEAgIihiZWNhdXNlIG9mICQoZmlyc3R3b3JkICQ/KSkiIC4uLgorCS0kKFJNKSAkQAorCSQoY2FsbCBNS1JFTFRBUixwYWNrYWdlL3JlbC90eG5fY2xvY2tzLnhkYy5pbmMscGFja2FnZS9yZWwvdHhuX2Nsb2Nrcy50YXIuZGVwKQorCisKK3JlbGVhc2UgcmVsZWFzZSx0eG5fY2xvY2tzOiBhbGwgdHhuX2Nsb2Nrcy50YXIKK2NsZWFuOjogLmNsZWFuCisJLSQoUk0pIHR4bl9jbG9ja3MudGFyCisJLSQoUk0pIHBhY2thZ2UvcmVsL3R4bl9jbG9ja3MueGRjLmluYworCS0kKFJNKSBwYWNrYWdlL3JlbC90eG5fY2xvY2tzLnRhci5kZXAKKworY2xlYW46OiAuY2xlYW4KKwktJChSTSkgLmxpYnJhcmllcyAubGlicmFyaWVzLCoKK2NsZWFuOjogCisJLSQoUk0pIC5kbGxzIC5kbGxzLCoKKyMKKyMgVGhlIGZvbGxvd2luZyBjbGVhbiBydWxlIHJlbW92ZXMgdXNlciBzcGVjaWZpZWQKKyMgZ2VuZXJhdGVkIGZpbGVzIG9yIGRpcmVjdG9yaWVzLgorIworCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQoraWZlcSAoLCQod2lsZGNhcmQgbGliKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIGxpYikKK2VuZGlmCitpZmVxICgsJCh3aWxkY2FyZCBwYWNrYWdlKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9leHRlcm5hbCkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2V4dGVybmFsKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliKSkKKyAgICAkKHNoZWxsICQoTUtESVIpIHBhY2thZ2UvbGliKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvbGliL2xpYikpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2xpYi9saWIpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9yZWwpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9yZWwpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9jZmcpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9jZmcpCitlbmRpZgoraWZlcSAoLCQod2lsZGNhcmQgcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvcGFja2FnZSkpCisgICAgJChzaGVsbCAkKE1LRElSKSBwYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlKQorZW5kaWYKK2lmZXEgKCwkKHdpbGRjYXJkIHBhY2thZ2UvaW50ZXJuYWwpKQorICAgICQoc2hlbGwgJChNS0RJUikgcGFja2FnZS9pbnRlcm5hbCkKK2VuZGlmCitlbmRpZgorY2xlYW46OgorCS0kKFJNRElSKSBwYWNrYWdlCisKKworY2xlYW46OiAKKwktJChSTSkgcGFja2FnZS90eG4uY2xvY2tzLnBqdApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlLnhkYyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWIzNTE5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS54ZGMKQEAgLTAsMCArMSwxMCBAQAorLyoNCisgKiAgPT09PT09PT0gdHhuL2Nsb2Nrcy9wYWNrYWdlLnhkYyA9PT09PT09PQ0KKyAqLw0KKw0KK3JlcXVpcmVzIGFjbWUudXRpbHMuY2xvY2tzOyANCisNCisvKiEgVEktc3BlY2lmaWMgY2xvY2sgbW9kdWxlcyBbUlRTQyBJbnRlcmZhY2UgUHJpbWVyXSAqLw0KK3BhY2thZ2UgdHhuLmNsb2NrcyB7DQorICAgIG1vZHVsZSBDbG9jazY0UDsNCit9DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlLy52ZXJzX2IxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvLnZlcnNfYjE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlLy52ZXJzX2IxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS8udmVyc19jMTUwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlLy52ZXJzX2MxNTAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS8udmVyc19jMTUwCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvLnZlcnNfZzE1MCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS8udmVyc19nMTUwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU2OWRlMjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvLnZlcnNfZzE1MApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlLy52ZXJzX3IxNTAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvLnZlcnNfcjE1MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlLy52ZXJzX3IxNTAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS8ueGRjLXQyNiBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS8ueGRjLXQyNgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlLy54ZGMtdDI2CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvLnhkYy10MzIgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvLnhkYy10MzIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS8ueGRjLXQzMgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL2J1aWxkLmNmZyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9idWlsZC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWIxOTRmZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9idWlsZC5jZmcKQEAgLTAsMCArMSwyMCBAQAoraWYgKHBrZy4kdmVycy5sZW5ndGggPj0gMykgeworICAgIHBrZy4kdmVycy5wdXNoKFBhY2thZ2VzLnhkYy5zZXJ2aWNlcy5nbG9iYWwuVmVycy5nZXREYXRlKHhkYy5jc2QoKSArICcvLi4nKSk7Cit9CisKK3BrZy5idWlsZC5saWJyYXJpZXMgPSBbCisgICAgJ2xpYi90eG4uY2xvY2tzLmE2NFAnLAorXTsKKworcGtnLmJ1aWxkLmxpYkRlc2MgPSBbCisgICAgWworICAgICAgICAnbGliL3R4bi5jbG9ja3MuYTY0UCcsCisgICAgICAgIHsKKyAgICAgICAgICAgIHRhcmdldDogJ3RpLnRhcmdldHMuQzY0UCcKKyAgICAgICAgfQorICAgIF0sCitdOworaWYgKCdzdWZmaXgnIGluIHhkYy5vbVsneGRjLklQYWNrYWdlJCRMaWJEZXNjJ10pIHsKKyAgICBwa2cuYnVpbGQubGliRGVzY1snbGliL3R4bi5jbG9ja3MuYTY0UCddLnN1ZmZpeCA9ICc2NFAnOworfQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvaW50ZXJuYWwvQ2xvY2s2NFAueGRjLmggYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvaW50ZXJuYWwvQ2xvY2s2NFAueGRjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E0Yjc1MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9pbnRlcm5hbC9DbG9jazY0UC54ZGMuaApAQCAtMCwwICsxLDczIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaWZuZGVmIHR4bl9jbG9ja3NfQ2xvY2s2NFBfX0lOVEVSTkFMX18KKyNkZWZpbmUgdHhuX2Nsb2Nrc19DbG9jazY0UF9fSU5URVJOQUxfXworCisjaWZuZGVmIHR4bl9jbG9ja3NfQ2xvY2s2NFBfX2ludGVybmFsYWNjZXNzCisjZGVmaW5lIHR4bl9jbG9ja3NfQ2xvY2s2NFBfX2ludGVybmFsYWNjZXNzCisjZW5kaWYKKworI2luY2x1ZGUgPHR4bi9jbG9ja3MvQ2xvY2s2NFAuaD4KKworI3VuZGVmIHhkY19GSUxFX18KKyNpZm5kZWYgeGRjX0ZJTEUKKyNkZWZpbmUgeGRjX0ZJTEVfXyBOVUxMCisjZWxzZQorI2RlZmluZSB4ZGNfRklMRV9fIHhkY19GSUxFCisjZW5kaWYKKworLyogZ2V0VGltZSAqLworI3VuZGVmIHR4bl9jbG9ja3NfQ2xvY2s2NFBfZ2V0VGltZQorI2RlZmluZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX2dldFRpbWUgdHhuX2Nsb2Nrc19DbG9jazY0UF9nZXRUaW1lX19GCisKKy8qIE1vZHVsZV9zdGFydHVwICovCisjdW5kZWYgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfc3RhcnR1cAorI2RlZmluZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9zdGFydHVwIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX3N0YXJ0dXBfX0YKKworLyogSW5zdGFuY2VfaW5pdCAqLworI3VuZGVmIHR4bl9jbG9ja3NfQ2xvY2s2NFBfSW5zdGFuY2VfaW5pdAorI2RlZmluZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX0luc3RhbmNlX2luaXQgdHhuX2Nsb2Nrc19DbG9jazY0UF9JbnN0YW5jZV9pbml0X19GCisKKy8qIEluc3RhbmNlX2ZpbmFsaXplICovCisjdW5kZWYgdHhuX2Nsb2Nrc19DbG9jazY0UF9JbnN0YW5jZV9maW5hbGl6ZQorI2RlZmluZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX0luc3RhbmNlX2ZpbmFsaXplIHR4bl9jbG9ja3NfQ2xvY2s2NFBfSW5zdGFuY2VfZmluYWxpemVfX0YKKworLyogcGVyLW1vZHVsZSBydW50aW1lIHN5bWJvbHMgKi8KKyN1bmRlZiBNb2R1bGVfX01JRAorI2RlZmluZSBNb2R1bGVfX01JRCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9faWRfX0MKKyN1bmRlZiBNb2R1bGVfX0RHU0lOQ0wKKyNkZWZpbmUgTW9kdWxlX19ER1NJTkNMIHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX19kaWFnc0luY2x1ZGVkX19DCisjdW5kZWYgTW9kdWxlX19ER1NFTkFCCisjZGVmaW5lIE1vZHVsZV9fREdTRU5BQiB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fZGlhZ3NFbmFibGVkX19DCisjdW5kZWYgTW9kdWxlX19ER1NNQVNLCisjZGVmaW5lIE1vZHVsZV9fREdTTUFTSyB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fZGlhZ3NNYXNrX19DCisjdW5kZWYgTW9kdWxlX19MT0dERUYKKyNkZWZpbmUgTW9kdWxlX19MT0dERUYgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2xvZ2dlckRlZmluZWRfX0MKKyN1bmRlZiBNb2R1bGVfX0xPR09CSgorI2RlZmluZSBNb2R1bGVfX0xPR09CSiB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fbG9nZ2VyT2JqX19DCisjdW5kZWYgTW9kdWxlX19MT0dGWE40CisjZGVmaW5lIE1vZHVsZV9fTE9HRlhONCB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fbG9nZ2VyRnhuNF9fQworI3VuZGVmIE1vZHVsZV9fTE9HRlhOOAorI2RlZmluZSBNb2R1bGVfX0xPR0ZYTjggdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2xvZ2dlckZ4bjhfX0MKKyN1bmRlZiBNb2R1bGVfX0dfT0JKCisjZGVmaW5lIE1vZHVsZV9fR19PQkogdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfX2dhdGVPYmpfX0MKKyN1bmRlZiBNb2R1bGVfX0dfUFJNUworI2RlZmluZSBNb2R1bGVfX0dfUFJNUyB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fZ2F0ZVBybXNfX0MKKyN1bmRlZiBNb2R1bGVfX0dQX2NyZWF0ZQorI2RlZmluZSBNb2R1bGVfX0dQX2NyZWF0ZSB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9HYXRlUHJveHlfY3JlYXRlCisjdW5kZWYgTW9kdWxlX19HUF9kZWxldGUKKyNkZWZpbmUgTW9kdWxlX19HUF9kZWxldGUgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfR2F0ZVByb3h5X2RlbGV0ZQorI3VuZGVmIE1vZHVsZV9fR1BfZW50ZXIKKyNkZWZpbmUgTW9kdWxlX19HUF9lbnRlciB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9HYXRlUHJveHlfZW50ZXIKKyN1bmRlZiBNb2R1bGVfX0dQX2xlYXZlCisjZGVmaW5lIE1vZHVsZV9fR1BfbGVhdmUgdHhuX2Nsb2Nrc19DbG9jazY0UF9Nb2R1bGVfR2F0ZVByb3h5X2xlYXZlCisjdW5kZWYgTW9kdWxlX19HUF9xdWVyeQorI2RlZmluZSBNb2R1bGVfX0dQX3F1ZXJ5IHR4bl9jbG9ja3NfQ2xvY2s2NFBfTW9kdWxlX0dhdGVQcm94eV9xdWVyeQorCisKKyNlbmRpZiAvKiB0eG5fY2xvY2tzX0Nsb2NrNjRQX19JTlRFUk5BTF9fX18gKi8KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvQ2xvY2s2NFAubzY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvQ2xvY2s2NFAubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNmM2MDNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9DbG9jazY0UC5vNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvQ2xvY2s2NFAubzY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL0Nsb2NrNjRQLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljMDc3MDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL0Nsb2NrNjRQLm82NFAuZGVwCkBAIC0wLDAgKzEsMjkgQEAKK3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL0Nsb2NrNjRQLm82NFA6IENsb2NrNjRQLmMgRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAuaCAuL3BhY2thZ2UvaW50ZXJuYWwvQ2xvY2s2NFAueGRjLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaCBDbG9jazY0UC5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmggcGFja2FnZS9wYWNrYWdlLmRlZnMuaCAuLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaCBkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmggLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5LmggRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaCBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oIA0KK0Nsb2NrNjRQLmM6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1N0YXJ0dXAuaDoNCisuL3BhY2thZ2UvaW50ZXJuYWwvQ2xvY2s2NFAueGRjLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUveGRjLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvcGFja2FnZS5kZWZzLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaDoNCitDbG9jazY0UC5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oOg0KK2Q6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlc19fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXNfX2VwaWxvZ3VlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0lIZWFwLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmg6DQorcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCisuLi8uLi9hY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2suaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01lbW9yeS5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmg6DQorLi4vLi4vYWNtZS91dGlscy9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRlZnMuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9NZW1vcnlfSGVhcFByb3h5Lmg6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3J1bnRpbWUvSUdhdGVQcm92aWRlci5oOg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL01haW5fTW9kdWxlX0dhdGVQcm94eS5oOg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MubzY0UCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MubzY0UApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmMzMTMwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL2xpYi9saWIvdHhuLmNsb2Nrcy9wYWNrYWdlL3BhY2thZ2VfdHhuLmNsb2Nrcy5vNjRQCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MubzY0UC5kZXAgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLm82NFAuZGVwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiYmMwOTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLm82NFAuZGVwCkBAIC0wLDAgKzEsNyBAQAorcGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvcGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MubzY0UDogcGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MuYyBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3N0ZC5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGFyZy5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGRlZi5oIEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy90aS90YXJnZXRzL3N0ZC5oIGQ6L3RpL2M2MDAwL2FsYy9pbmNsdWRlL3N0ZGludC5oIA0KK3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLmM6DQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zdGQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRhcmcuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRkZWYuaDoNCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaDoNCitkOi90aS9jNjAwMC9hbGMvaW5jbHVkZS9zdGRpbnQuaDoNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5ibGQueG1sIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuYmxkLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODVjMGMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuYmxkLnhtbApAQCAtMCwwICsxLDYyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLSAgVGhpcyBmaWxlIGNvbmZvcm1zIHRvIHRoZSBEVEQgeGRjL2JsZC9idWlsZC5kdGQgLS0+Cis8cGFja2FnZSBuYW1lPSJ0eG4uY2xvY2tzIiB2ZXJzaW9uPSIiIHByb2R1Y2VySWQ9InVuZGVmaW5lZCI+CisgICAgPHVuaXRzPgorICAgICAgICA8bW9kdWxlIG5hbWU9IkNsb2NrNjRQIi8+CisgICAgPC91bml0cz4KKyAgICA8c291cmNlcz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJDbG9jazY0UC5jIi8+CisgICAgPC9zb3VyY2VzPgorICAgIDxjb25maWd1cmF0aW9ucz4KKyAgICA8L2NvbmZpZ3VyYXRpb25zPgorICAgIDxtYWtlZmlsZXM+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UubWFrIiBzcmM9InBhY2thZ2UuYmxkIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS54ZGMuZGVwIiBzcmM9InBhY2thZ2UueGRjIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5jZmcuZGVwIiBzcmM9InBhY2thZ2UueGRjIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9ImxpYi90eG4uY2xvY2tzLmE2NFAubWFrIiBzcmM9InBhY2thZ2UuYmxkIi8+CisgICAgICAgIDxzcmNGaWxlIG5hbWU9InBhY2thZ2UvbGliL2xpYi90eG4uY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLm82NFAuZGVwIiBzcmM9InBhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLmMiLz4KKyAgICAgICAgPHNyY0ZpbGUgbmFtZT0icGFja2FnZS9saWIvbGliL3R4bi5jbG9ja3MvQ2xvY2s2NFAubzY0UC5kZXAiIHNyYz0iQ2xvY2s2NFAuYyIvPgorICAgICAgICA8c3JjRmlsZSBuYW1lPSJwYWNrYWdlL3JlbC90eG5fY2xvY2tzLnRhci5kZXAiIHNyYz0icGFja2FnZS9yZWwvdHhuX2Nsb2Nrcy54ZGMuaW5jIi8+CisgICAgPC9tYWtlZmlsZXM+CisgICAgPHRhcmdldHM+CisgICAgICAgIDx0YXJnZXQgbmFtZT0idGkudGFyZ2V0cy5DNjRQIgorICAgICAgICAgICAgdmVyc2lvbj0idGkudGFyZ2V0cy5DNjRQezEsMCw2LjEsNSIKKyAgICAgICAgICAgIHBsYXRmb3JtPSJ0aS5wbGF0Zm9ybXMuc2ltNjRQeHgiCisgICAgICAgICAgICBpc2E9IjY0UCIKKyAgICAgICAgICAgIHN1ZmZpeD0iNjRQIgorICAgICAgICAgICAgcm9vdERpcj0iZDovdGkvYzYwMDAvYWxjIgorICAgICAgICAgICAgb3M9InVuZGVmaW5lZCIKKyAgICAgICAgICAgIHJ0cz0idGkudGFyZ2V0cy5ydHM2MDAwIj4KKyAgICAgICAgICAgIDxtb2RlbCBlbmRpYW49ImxpdHRsZSIKKyAgICAgICAgICAgICAgICBjb2RlTW9kZWw9InVuZGVmaW5lZCIKKyAgICAgICAgICAgICAgICBkYXRhTW9kZWw9InVuZGVmaW5lZCIvPgorICAgICAgICA8L3RhcmdldD4KKyAgICA8L3RhcmdldHM+CisgICAgPGxpYnJhcmllcz4KKyAgICA8bGlicmFyeSBuYW1lPSJsaWIvdHhuLmNsb2NrcyIKKyAgICAgICAgcG5hbWU9ImxpYi90eG4uY2xvY2tzLmE2NFAiCisgICAgICAgIHByb2ZpbGU9Indob2xlX3Byb2dyYW0iCisgICAgICAgIHRhcmdldD0idGkudGFyZ2V0cy5DNjRQIi8+CisgICAgPC9saWJyYXJpZXM+CisgICAgPGV4ZWN1dGFibGVzPgorICAgIDwvZXhlY3V0YWJsZXM+CisgICAgPHRlc3RzPgorICAgIDwvdGVzdHM+CisgICAgPHJlbGVhc2VzIHJlbERpcj0icGFja2FnZS9yZWwvIj4KKyAgICA8cmVsZWFzZSBuYW1lPSJ0eG5fY2xvY2tzIgorICAgICAgICBwbmFtZT0idHhuX2Nsb2Nrcy50YXIiCisgICAgICAgIGxhYmVsPSJkZWZhdWx0IgorICAgID4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9idWlsZC5jZmciLz4KKyAgICAgICAgPGZpbGUgbmFtZT0icGFja2FnZS9wYWNrYWdlLmNmZy54ZGMuaW5jIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5leHQueG1sIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS54ZGMuaW5jIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5ibGQueG1sIi8+CisgICAgICAgIDxmaWxlIG5hbWU9InBhY2thZ2UvcGFja2FnZS5yZWwuZG90Ii8+CisgICAgICAgIDxmaWxlIG5hbWU9ImxpYi90eG4uY2xvY2tzLmE2NFAiLz4KKyAgICA8L3JlbGVhc2U+CisgICAgPC9yZWxlYXNlcz4KKyAgICA8cmVwb3NpdG9yaWVzPgorICAgIDwvcmVwb3NpdG9yaWVzPgorPC9wYWNrYWdlPgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRjMmFmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvcGFja2FnZS5kZWZzLmgKQEAgLTAsMCArMSwyMCBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KKworI2lmbmRlZiB0eG5fY2xvY2tzX18KKyNkZWZpbmUgdHhuX2Nsb2Nrc19fCisKKworLyoKKyAqID09PT09PT09IG1vZHVsZSB0eG4uY2xvY2tzLkNsb2NrNjRQID09PT09PT09CisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgdHhuX2Nsb2Nrc19DbG9jazY0UF9GeG5zX18gdHhuX2Nsb2Nrc19DbG9jazY0UF9GeG5zX187Cit0eXBlZGVmIGNvbnN0IHR4bl9jbG9ja3NfQ2xvY2s2NFBfRnhuc19fKiB0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZTsKKworCisjZW5kaWYgLyogdHhuX2Nsb2Nrc19fICovIApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UuZG9jLnhtbCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRvYy54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWE2MzhjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9wYWNrYWdlLmRvYy54bWwKQEAgLTAsMCArMSwzMDUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cGFja2FnZSBraW5kPSdwYWNrYWdlJyBuYW1lPSd0eG4uY2xvY2tzJyBub2RvYz0nMCcgcm9vdD0nLi4vLi4vJyBzdW1tYXJ5PSdUSS1zcGVjaWZpYytjbG9jayttb2R1bGVzKyU1QlJUU0MrSW50ZXJmYWNlK1ByaW1lciU1RCc+CisgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VyZXF1aXJlcyUzQyUyRnNwYW4lM0UrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRmFjbWUlMkZ1dGlscyUyRmNsb2NrcyUyRnBhY2thZ2UuaHRtbCUyMit0aXRsZSUzRCUyMmFjbWUudXRpbHMuY2xvY2tzJTIyJTNFYWNtZS51dGlscy5jbG9ja3MlM0MlMkZhJTNFJTNCJy8+CisgICAgPGxpbmUgYmxhbms9JzEnIGFsd2F5cz0nMCcvPgorICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFcGFja2FnZSUzQyUyRnNwYW4lM0UrJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRXR4bi5jbG9ja3MlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTdCJy8+CisgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclN0QnLz4KKyAgICA8dW5pdCBuYW1lPSdDbG9jazY0UCcga2luZD0nbW9kdWxlJyBub2RvYz0nMCcgbWV0YW9ubHk9JzAnIHN1bW1hcnk9J1RNUzMyMEM2NCUyQitJQ2xvY2srbW9kdWxlJyBpbmhlcml0cz0nYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrJz4KKyAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFcGFja2FnZSUzQyUyRnNwYW4lM0UrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnR4biUyRmNsb2NrcyUyRnBhY2thZ2UuaHRtbCUyMit0aXRsZSUzRCUyMnR4bi5jbG9ja3MlMjIlM0V0eG4uY2xvY2tzJTNDJTJGYSUzRSUzQicvPgorICAgICAgICAgICAgPGxpbmUgYmxhbms9JzEnIGFsd2F5cz0nMCcvPgorICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzMlMjIlM0UlNDBNb2R1bGVTdGFydHVwKyUzQyUyRnNwYW4lM0UnLz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbW9kdWxlJTNDJTJGc3BhbiUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFQ2xvY2s2NFAlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0UraW5oZXJpdHMrJTNDJTJGc3BhbiUzRSUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZhY21lJTJGdXRpbHMlMkZjbG9ja3MlMkZJQ2xvY2suaHRtbCUyMit0aXRsZSUzRCUyMmFjbWUudXRpbHMuY2xvY2tzLklDbG9jayUyMiUzRUlDbG9jayUzQyUyRmElM0UrJTdCJy8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyU3RCcvPgorICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgPHNwZWNJbmZvPgorICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzMlMjIlM0UlNDBNb2R1bGVTdGFydHVwKyUzQyUyRnNwYW4lM0UnLz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbW9kdWxlJTNDJTJGc3BhbiUzRSslM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFQ2xvY2s2NFAlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTdCJTNDYiUzRSUyNm5ic3AlM0IlMjZuYnNwJTNCLi4uJTNDJTJGYiUzRScvPgorICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb21tZW50PSdpbmhlcml0cyslM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGY2xvY2tzJTJGSUNsb2NrLmh0bWwlMjIrdGl0bGUlM0QlMjJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2slMjIlM0VhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2slM0MlMkZhJTNFJy8+CisgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbW1lbnQ9J2luaGVyaXRzKyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGSU1vZHVsZS5odG1sJTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuSU1vZHVsZSUyMiUzRXhkYy5ydW50aW1lLklNb2R1bGUlM0MlMkZhJTNFJy8+CisgICAgICAgIDwvc3BlY0luZm8+CisgICAgICAgIDxzeW5vcE1ldGE+CisgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXZhciUzQyUyRnNwYW4lM0UrQ2xvY2s2NFArJTNEKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MyUyMiUzRXhkYy51c2VNb2R1bGUlM0MlMkZzcGFuJTNFJTI4JTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0UlMjd0eG4uY2xvY2tzLkNsb2NrNjRQJTI3JTNDJTJGc3BhbiUzRSUyOSUzQicvPgorICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3czJTIyJTNFJTIzaW5jbHVkZSUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0UlMjZsdCUzQnR4biUyRmNsb2NrcyUyRkNsb2NrNjRQLmglMjZndCUzQiUzQyUyRnNwYW4lM0UnLz4KKyAgICAgICAgPC9zeW5vcFRhcmc+CisgICAgICAgIDxncm91cCBuYW1lPSdsb2NhbCBwcm94eSBtb2R1bGVzJz4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGNvbnN0YW50cyAmYW1wOyB0eXBlcyc+CisgICAgICAgICAgICA8ZGVjbCBzcGFjZXI9JzEnLz4KKyAgICAgICAgICAgIDxkZWNsIGtpbmQ9J3R5cGVkZWYnIG5hbWU9J1RpbWVWYWx1ZScgYW5jaG9yPScuVGltZS5WYWx1ZScgYWx0ZXh0PSd0eG4uY2xvY2tzLkNsb2NrNjRQLlRpbWVWYWx1ZScgbm9kb2M9JzAnIGV4dGVybmFsPScxJyBvdmVycmlkZXM9JzAnIHJlYWRvbmx5PScwJyBpbnN0YW5jZT0nMCcgc3VtbWFyeT0nVGltZSt2YWx1ZSt0eXBlJyBvcmlnaW49JyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZhY21lJTJGdXRpbHMlMkZjbG9ja3MlMkZJQ2xvY2suaHRtbCUyMy5UaW1lLlZhbHVlJTIyK3RpdGxlJTNEJTIyYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLlRpbWVWYWx1ZSUyMiUzRUlDbG9jayUzQyUyRmElM0UnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFdHlwZWRlZiUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFQml0czMyJTNDJTJGc3BhbiUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFVGltZVZhbHVlJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0V0eXBlZGVmJTNDJTJGc3BhbiUzRSslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0VCaXRzMzIlM0MlMkZzcGFuJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VDbG9jazY0UF9UaW1lVmFsdWUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wVGFyZz4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGNvbmZpZyBwYXJhbWV0ZXJzJz4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wga2luZD0nY29uZmlnJyBuYW1lPSdjb25maWdOYW1lTWFwJCcgYW5jaG9yPSdjb25maWcuTmFtZS5NYXAkJyBhbHRleHQ9J3R4bi5jbG9ja3MuQ2xvY2s2NFAuY29uZmlnTmFtZU1hcCQnIG5vZG9jPScxJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMScgaW5zdGFuY2U9JzAnIHN1bW1hcnk9Jycgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklNb2R1bGUuaHRtbCUyM2NvbmZpZy5OYW1lLk1hcCUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLklNb2R1bGUuY29uZmlnTmFtZU1hcCUyNCUyMiUzRUlNb2R1bGUlM0MlMkZhJTNFJyBtZXRhb25seT0nMSc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VtZXRhb25seSslM0MlMkZzcGFuJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFcmVhZG9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbmZpZyUzQyUyRnNwYW4lM0UrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLlZpZXcuSW5mbyUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLlZpZXdJbmZvJTIyJTNFVHlwZXMuVmlld0luZm8lM0MlMkZhJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0Vjb25maWdOYW1lTWFwJTI0JTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTVCJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFc3RyaW5nJTNDJTJGc3BhbiUzRSU1RCslM0QrJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRk1lbW9yeSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZUhlYXAlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5pbnN0YW5jZVNlY3Rpb24lMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5tZW1vcnlQb2xpY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5uYW1lZE1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lm5hbWVkSW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5meG50YWIlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5yb21QYXRjaFRhYmxlJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRGlhZ25vc3RpY3MlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQubG9nZ2VyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfQVNTRVJUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfRU5UUlklMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19FWElUJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfSU5URVJOQUwlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19MSUZFQ1lDTEUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSMSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVIyJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI1JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjYlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI4JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQ29uY3VycmVuY3klMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZ2F0ZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmdhdGVQYXJhbXMlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZMb2clMkJFdmVudHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGTG9nJTJCRXZlbnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyTG9nLkV2ZW50JTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGQXNzZXJ0cyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJBc3NlcnQuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZBc3NlcnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyQXNzZXJ0LklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkVycm9yLklkJTI1MjInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUQlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGRXJyb3JzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIyaW5zdGFuY2UlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyRXJyb3IuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUyNTVEJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0Vjb25zdCUzQyUyRnNwYW4lM0UrJTNDZ28lM0VDbG9jazY0UC4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWNvbmZpZ05hbWVNYXAlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUzQ2klM0UlM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRlR5cGVzLmh0bWwlMjMuVmlldy5JbmZvJTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuVHlwZXMuVmlld0luZm8lMjIlM0VUeXBlcy5WaWV3SW5mbyUzQyUyRmElM0UlNUIlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzElMjIlM0VzdHJpbmclM0MlMkZzcGFuJTNFJTVEJTNDJTJGaSUzRSslMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1MjJ4ZGMucnVudGltZSUyNTJGTWVtb3J5JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lmluc3RhbmNlSGVhcCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lmluc3RhbmNlU2VjdGlvbiUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lm1lbW9yeVBvbGljeSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0Lm5hbWVkTW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQubmFtZWRJbnN0YW5jZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmZ4bnRhYiUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LnJvbVBhdGNoVGFibGUlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZEaWFnbm9zdGljcyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5sb2dnZXIlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19BU1NFUlQlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19FTlRSWSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX0VYSVQlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19JTlRFUk5BTCUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX0xJRkVDWUNMRSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVIxJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjIlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSMyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI0JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5kaWFnc19VU0VSNiUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMmNvbW1vbiUyNTI0LmRpYWdzX1VTRVI3JTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZGlhZ3NfVVNFUjglMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZDb25jdXJyZW5jeSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJjb21tb24lMjUyNC5nYXRlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyY29tbW9uJTI1MjQuZ2F0ZVBhcmFtcyUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRkxvZyUyQkV2ZW50cyUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J3ZpZXdUeXBlJTI1M0ElMkIlMjUyMm1vZHVsZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJMb2cuRXZlbnQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZMb2clMkJFdmVudHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJpbnN0YW5jZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJMb2cuRXZlbnQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZBc3NlcnRzJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTdCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0ndmlld1R5cGUlMjUzQSUyQiUyNTIybW9kdWxlJTI1MjIlMjUyQycvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9J2ZpZWxkcyUyNTNBJTJCJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSc0JyBjb250ZW50PSclMjUyMkFzc2VydC5JZCUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzInIGNvbnRlbnQ9JyUyNTIyeGRjLnJ1bnRpbWUlMjUyRkFzc2VydHMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJpbnN0YW5jZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJBc3NlcnQuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZFcnJvcnMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJtb2R1bGUlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nZmllbGRzJTI1M0ElMkIlMjU1QicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzQnIGNvbnRlbnQ9JyUyNTIyRXJyb3IuSWQlMjUyMicvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzMnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0QnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScxJyBjb250ZW50PSclMjU1RCUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMScgY29udGVudD0nJTI1NUInLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjUyMnhkYy5ydW50aW1lJTI1MkZFcnJvcnMlMjUyMiUyNTJDJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMicgY29udGVudD0nJTI1N0InLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSd2aWV3VHlwZSUyNTNBJTJCJTI1MjJpbnN0YW5jZSUyNTIyJTI1MkMnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPSczJyBjb250ZW50PSdmaWVsZHMlMjUzQSUyQiUyNTVCJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nNCcgY29udGVudD0nJTI1MjJFcnJvci5JZCUyNTIyJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMycgY29udGVudD0nJTI1NUQnLz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScyJyBjb250ZW50PSclMjU3RCcvPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzEnIGNvbnRlbnQ9JyUyNTVEJy8+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTI1NUQlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICAgICAgPGRlY2wgc3BhY2VyPScxJy8+CisgICAgICAgICAgICA8ZGVjbCBraW5kPSdjb25maWcnIG5hbWU9J2NvbW1vbiQnIGFuY2hvcj0nY29tbW9uJCcgYWx0ZXh0PSd0eG4uY2xvY2tzLkNsb2NrNjRQLmNvbW1vbiQnIG5vZG9jPScwJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9J0NvbW1vbittb2R1bGUrY29uZmlndXJhdGlvbitwYXJhbWV0ZXJzJyBvcmlnaW49JyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGSU1vZHVsZS5odG1sJTIzY29tbW9uJTI0JTIyK3RpdGxlJTNEJTIyeGRjLnJ1bnRpbWUuSU1vZHVsZS5jb21tb24lMjQlMjIlM0VJTW9kdWxlJTNDJTJGYSUzRScgbWV0YW9ubHk9JzEnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbWV0YW9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbmZpZyUzQyUyRnNwYW4lM0UrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLkNvbW1vbiUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLkNvbW1vbiUyNCUyMiUzRVR5cGVzLkNvbW1vbiUyNCUzQyUyRmElM0UlMjZuYnNwJTNCJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWNvbW1vbiUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BTcGVjPgorICAgICAgICAgICAgICAgIDxzeW5vcE1ldGE+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDZ28lM0VDbG9jazY0UC4lM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRWNvbW1vbiUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrJTNDaSUzRSUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGVHlwZXMuaHRtbCUyMy5Db21tb24lMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5UeXBlcy5Db21tb24lMjQlMjIlM0VUeXBlcy5Db21tb24lMjQlM0MlMkZhJTNFJTNDJTJGaSUzRSslM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1rdzIlMjIlM0V1bmRlZmluZWQlM0MlMkZzcGFuJTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcE1ldGE+CisgICAgICAgICAgICAgICAgPGRvY1NlY3QgbmFtZT0nZGV0YWlscyc+CisgICAgICAgICAgICAgICAgICAgIDxkb2NQYXJhIGNvbnRlbnQ9J0FsbCttb2R1bGVzK2hhdmUrdGhpcytjb25maWd1cmF0aW9uK3BhcmFtZXRlci4rK0l0cytuYW1lJTBBKytjb250YWlucyt0aGUrJTI3JTI0JTI3K2NoYXJhY3Rlcit0bytlbnN1cmUraXQrZG9lcytub3QrY29uZmxpY3Qrd2l0aCUwQSsrY29uZmlndXJhdGlvbitwYXJhbWV0ZXJzK2RlY2xhcmVkK2J5K3RoZSttb2R1bGUuKytUaGlzK2FsbG93cyUwQSsrbmV3K2NvbmZpZ3VyYXRpb24rcGFyYW1ldGVycyt0bytiZSthZGRlZCtpbit0aGUrZnV0dXJlK3dpdGhvdXQlMEErK2FueStjaGFuY2Urb2YrYnJlYWtpbmcrZXhpc3RpbmcrbW9kdWxlcy4nLz4KKyAgICAgICAgICAgICAgICA8L2RvY1NlY3Q+CisgICAgICAgICAgICA8L2RlY2w+CisgICAgICAgICAgICA8ZGVjbCBraW5kPSdjb25maWcnIG5hbWU9J3JvdlNob3dSYXdUYWIkJyBhbmNob3I9J3Jvdi5TaG93LlJhdy5UYWIkJyBhbHRleHQ9J3R4bi5jbG9ja3MuQ2xvY2s2NFAucm92U2hvd1Jhd1RhYiQnIG5vZG9jPScxJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9Jycgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGeGRjJTJGcnVudGltZSUyRklNb2R1bGUuaHRtbCUyM3Jvdi5TaG93LlJhdy5UYWIlMjQlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JTW9kdWxlLnJvdlNob3dSYXdUYWIlMjQlMjIlM0VJTW9kdWxlJTNDJTJGYSUzRScgbWV0YW9ubHk9JzEnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbWV0YW9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbmZpZyUzQyUyRnNwYW4lM0UrJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cyJTIyJTNFQm9vbCUzQyUyRnNwYW4lM0UlMjZuYnNwJTNCJTNDZ28lM0UlM0NzcGFuK2NsYXNzJTNEJTIyeGRvYy1pZCUyMiUzRXJvdlNob3dSYXdUYWIlMjQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UrJTNEKyUyNTNDc3BhbiUyQmNsYXNzJTI1M0QlMjUyMnhkb2Mta3cyJTI1MjIlMjUzRXRydWUlMjUzQyUyNTJGc3BhbiUyNTNFJTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wTWV0YT4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NnbyUzRUNsb2NrNjRQLiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFcm92U2hvd1Jhd1RhYiUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrJTNDaSUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRUJvb2wlM0MlMkZzcGFuJTNFJTNDJTJGaSUzRSslMjUzQ3NwYW4lMkJjbGFzcyUyNTNEJTI1MjJ4ZG9jLWt3MiUyNTIyJTI1M0V0cnVlJTI1M0MlMjUyRnNwYW4lMjUzRSUzQicvPgorICAgICAgICAgICAgICAgIDwvc3lub3BNZXRhPgorICAgICAgICAgICAgPC9kZWNsPgorICAgICAgICAgICAgPGRlY2wga2luZD0nY29uZmlnJyBuYW1lPSd2aWV3TmFtZU1hcCQnIGFuY2hvcj0ndmlldy5OYW1lLk1hcCQnIGFsdGV4dD0ndHhuLmNsb2Nrcy5DbG9jazY0UC52aWV3TmFtZU1hcCQnIG5vZG9jPScxJyBleHRlcm5hbD0nMScgb3ZlcnJpZGVzPScwJyByZWFkb25seT0nMCcgaW5zdGFuY2U9JzAnIHN1bW1hcnk9J1NwZWNpZmllcyt0aGUrUk9WK3ZpZXdzK2Zvcit0aGUrbW9kdWxlJyBvcmlnaW49JyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGSU1vZHVsZS5odG1sJTIzdmlldy5OYW1lLk1hcCUyNCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLklNb2R1bGUudmlld05hbWVNYXAlMjQlMjIlM0VJTW9kdWxlJTNDJTJGYSUzRScgbWV0YW9ubHk9JzEnPgorICAgICAgICAgICAgICAgIDxzeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29udGVudD0nJTNDc3BhbitjbGFzcyUzRCUyMnhkb2Mta3cxJTIyJTNFbWV0YW9ubHkrJTNDJTJGc3BhbiUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRWNvbmZpZyUzQyUyRnNwYW4lM0UrJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLlZpZXcuSW5mbyUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLlZpZXdJbmZvJTIyJTNFVHlwZXMuVmlld0luZm8lM0MlMkZhJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0V2aWV3TmFtZU1hcCUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSU1QiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXN0cmluZyUzQyUyRnNwYW4lM0UlNUQlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICA8c3lub3BNZXRhPgorICAgICAgICAgICAgICAgICAgICA8bGluZSB0YWI9JzAnIGNvbnRlbnQ9JyUzQ2dvJTNFQ2xvY2s2NFAuJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0V2aWV3TmFtZU1hcCUyNCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSslM0QrJTNDaSUzRSUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGVHlwZXMuaHRtbCUyMy5WaWV3LkluZm8lMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5UeXBlcy5WaWV3SW5mbyUyMiUzRVR5cGVzLlZpZXdJbmZvJTNDJTJGYSUzRSU1QiUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MSUyMiUzRXN0cmluZyUzQyUyRnNwYW4lM0UlNUQlM0MlMkZpJTNFKyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRXVuZGVmaW5lZCUzQyUyRnNwYW4lM0UlM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wTWV0YT4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgPC9ncm91cD4KKyAgICAgICAgPGdyb3VwIG5hbWU9J21vZHVsZS13aWRlIGZ1bmN0aW9ucyc+CisgICAgICAgICAgICA8ZGVjbCBraW5kPSdmeG4nIG5hbWU9J2dldFRpbWUnIGFuY2hvcj0nZ2V0LlRpbWUnIGFsdGV4dD0ndHhuLmNsb2Nrcy5DbG9jazY0UC5nZXRUaW1lJyBub2RvYz0nMCcgZXh0ZXJuYWw9JzEnIG92ZXJyaWRlcz0nMCcgcmVhZG9ubHk9JzAnIGluc3RhbmNlPScwJyBzdW1tYXJ5PSdHZXQrdGhlK2N1cnJlbnQrdGltZScgb3JpZ2luPSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGY2xvY2tzJTJGSUNsb2NrLmh0bWwlMjNnZXQuVGltZSUyMit0aXRsZSUzRCUyMmFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5nZXRUaW1lJTIyJTNFSUNsb2NrJTNDJTJGYSUzRSc+CisgICAgICAgICAgICAgICAgPHN5bm9wU3BlYz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NhK2NsYXNzJTNEJTIyeGRvYy1saW5rJTIyK2hyZWYlM0QlMjIuLiUyRi4uJTJGYWNtZSUyRnV0aWxzJTJGY2xvY2tzJTJGSUNsb2NrLmh0bWwlMjMuVGltZS5WYWx1ZSUyMit0aXRsZSUzRCUyMmFjbWUudXRpbHMuY2xvY2tzLklDbG9jay5UaW1lVmFsdWUlMjIlM0VJQ2xvY2suVGltZVZhbHVlJTNDJTJGYSUzRSUyNm5ic3AlM0IlM0NnbyUzRSUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWlkJTIyJTNFZ2V0VGltZSUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUyOCsrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPC9zeW5vcFNwZWM+CisgICAgICAgICAgICAgICAgPHN5bm9wVGFyZz4KKyAgICAgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb250ZW50PSclM0NpJTNFJTNDJTJGaSUzRSUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZhY21lJTJGdXRpbHMlMkZjbG9ja3MlMkZJQ2xvY2suaHRtbCUyMy5UaW1lLlZhbHVlJTIyK3RpdGxlJTNEJTIyYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLlRpbWVWYWx1ZSUyMiUzRUlDbG9ja19UaW1lVmFsdWUlM0MlMkZhJTNFJTI2bmJzcCUzQiUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VDbG9jazY0UF9nZXRUaW1lJTNDJTJGc3BhbiUzRSUzQyUyRmdvJTNFJTI4KyslMjklM0InLz4KKyAgICAgICAgICAgICAgICA8L3N5bm9wVGFyZz4KKyAgICAgICAgICAgIDwvZGVjbD4KKyAgICAgICAgICAgIDxkZWNsIHNwYWNlcj0nMScvPgorICAgICAgICA8L2dyb3VwPgorICAgICAgICA8Z3JvdXAgbmFtZT0nbW9kdWxlLXdpZGUgYnVpbHQtaW5zJz4KKyAgICAgICAgICAgIDxzeW5vcFRhcmc+CisgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb21tZW50PSdHZXQrdGhpcyttb2R1bGUlMjdzK3VuaXF1ZStpZCcgY29udGVudD0nJTNDYStjbGFzcyUzRCUyMnhkb2MtbGluayUyMitocmVmJTNEJTIyLi4lMkYuLiUyRnhkYyUyRnJ1bnRpbWUlMkZUeXBlcy5odG1sJTIzLk1vZHVsZS5JZCUyMit0aXRsZSUzRCUyMnhkYy5ydW50aW1lLlR5cGVzLk1vZHVsZUlkJTIyJTNFVHlwZXNfTW9kdWxlSWQlM0MlMkZhJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VDbG9jazY0UF9Nb2R1bGVfaWQlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlMjgrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPGxpbmUgYmxhbms9JzEnIGFsd2F5cz0nMCcvPgorICAgICAgICAgICAgICAgIDxsaW5lIHRhYj0nMCcgY29tbWVudD0nVGVzdCtpZit0aGlzK21vZHVsZStoYXMrY29tcGxldGVkK3N0YXJ0dXAnIGNvbnRlbnQ9JyUzQ3NwYW4rY2xhc3MlM0QlMjJ4ZG9jLWt3MiUyMiUzRUJvb2wlM0MlMkZzcGFuJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VDbG9jazY0UF9Nb2R1bGVfc3RhcnR1cERvbmUlM0MlMkZzcGFuJTNFJTNDJTJGZ28lM0UlMjgrJTI5JTNCJy8+CisgICAgICAgICAgICAgICAgPGxpbmUgdGFiPScwJyBjb21tZW50PSdUaGUraGVhcCtmcm9tK3doaWNoK3RoaXMrbW9kdWxlK2FsbG9jYXRlcyttZW1vcnknIGNvbnRlbnQ9JyUzQ2ErY2xhc3MlM0QlMjJ4ZG9jLWxpbmslMjIraHJlZiUzRCUyMi4uJTJGLi4lMkZ4ZGMlMkZydW50aW1lJTJGSUhlYXAuaHRtbCUyM3Blci1pbnN0YW5jZV9vYmplY3RfdHlwZXMlMjIrdGl0bGUlM0QlMjJ4ZGMucnVudGltZS5JSGVhcC5IYW5kbGUlMjIlM0VJSGVhcF9IYW5kbGUlM0MlMkZhJTNFKyUzQ2dvJTNFJTNDc3BhbitjbGFzcyUzRCUyMnhkb2MtaWQlMjIlM0VDbG9jazY0UF9Nb2R1bGVfaGVhcCUzQyUyRnNwYW4lM0UlM0MlMkZnbyUzRSUyOCslMjklM0InLz4KKyAgICAgICAgICAgICAgICA8bGluZSBibGFuaz0nMScgYWx3YXlzPScwJy8+CisgICAgICAgICAgICA8L3N5bm9wVGFyZz4KKyAgICAgICAgPC9ncm91cD4KKyAgICA8L3VuaXQ+Cis8L3BhY2thZ2U+CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvcGFja2FnZS54ZGMuZGVwIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UueGRjLmRlcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTJhOWM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UueGRjLmRlcApAQCAtMCwwICsxLDY5IEBACitjbGVhbjo6DQorCSQoUk0pIHBhY2thZ2UvdHhuLmNsb2Nrcy5zY2gNCisJJChSTSkgcGFja2FnZS8udmVyc19nMTUwDQorCSQoUk0pIHBhY2thZ2UvLnZlcnNfcjE1MA0KKwkkKFJNKSBwYWNrYWdlLy52ZXJzX2IxNTANCisJJChSTSkgcGFja2FnZS8udmVyc19jMTUwDQorCSQoUk0pIHBhY2thZ2UvLnhkYy10MzINCisJJChSTSkgcGFja2FnZS90eG5fY2xvY2tzLmphdmENCisJJChSTSkgcGFja2FnZS90eG5fY2xvY2tzLmNsYXNzDQorCSQoUk0pIHBhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLmMNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlLmRlZnMuaA0KKwkkKFJNKSBDbG9jazY0UC5oDQorCSQoUk0pIHBhY2thZ2UvaW50ZXJuYWwvQ2xvY2s2NFAueGRjLmgNCisJJChSTSkgcGFja2FnZS9wYWNrYWdlLmRvYy54bWwNCisJJChSTSkgcGFja2FnZS90eG4uY2xvY2tzLmNjcw0KKworLmludGVyZmFjZXM6IHBhY2thZ2UvdHhuLmNsb2Nrcy5zY2ggcGFja2FnZS8udmVyc19nMTUwIHBhY2thZ2UvLnZlcnNfcjE1MCBwYWNrYWdlLy52ZXJzX2IxNTAgcGFja2FnZS8udmVyc19jMTUwIHBhY2thZ2UvLnhkYy10MzIgcGFja2FnZS90eG5fY2xvY2tzLmphdmEgcGFja2FnZS90eG5fY2xvY2tzLmNsYXNzIHBhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLmMgcGFja2FnZS9wYWNrYWdlLmRlZnMuaCBDbG9jazY0UC5oIHBhY2thZ2UvaW50ZXJuYWwvQ2xvY2s2NFAueGRjLmggcGFja2FnZS9wYWNrYWdlLmRvYy54bWwgcGFja2FnZS90eG4uY2xvY2tzLmNjcyAKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2cxNTAKK3BhY2thZ2UvLnZlcnNfZzE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX3IxNTAKK3BhY2thZ2UvLnZlcnNfcjE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2IxNTAKK3BhY2thZ2UvLnZlcnNfYjE1MDoKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBwYWNrYWdlLy52ZXJzX2MxNTAKK3BhY2thZ2UvLnZlcnNfYzE1MDoKKworLmludGVyZmFjZXM6IENsb2NrNjRQLnhkYyAKKworIyBzY2hlbWEgaW5jbHVkZSBmaWxlIGRlcGVuZGVuY2llcworQ2xvY2s2NFAueHM6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IENsb2NrNjRQLnhzDQorCisjIHNjaGVtYSB1cGRhdGUgZGVwZW5kZW5jaWVzCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogQ2xvY2s2NFAueGRjDQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IHhkYy9JUGFja2FnZS54ZGMNCit4ZGMvSVBhY2thZ2UueGRjOg0KK3ZwYXRoIHhkYy9JUGFja2FnZS54ZGMgJChYUEtHVlBBVEgpDQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IGFjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay54ZGMNCithY21lL3V0aWxzL2Nsb2Nrcy9JQ2xvY2sueGRjOg0KK3ZwYXRoIGFjbWUvdXRpbHMvY2xvY2tzL0lDbG9jay54ZGMgJChYUEtHVlBBVEgpDQorCitpZm5lcSAoY2xlYW4sJChNQUtFQ01ER09BTFMpKQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvamF2YS9wYWNrYWdlLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9nbG9iYWwvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9qcy5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9qcy5qYXINCitFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEveGJlYW4uamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEveGJlYW4uamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4veHNyL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL3hzci9qYXZhL3BhY2thZ2UuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL3Rhci5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS90YXIuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zZXJ2aWNlcy9pbnRlcm4vY21kL2phdmEvcGFja2FnZS5qYXI6DQorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmM6IEU6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2NtZC9qYXZhL3BhY2thZ2UuamFyDQorRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2FudGxyLmphcjoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogRTovcnRzYy94ZGN0b29sc18zXzE1XzAwXzI5L3BhY2thZ2VzL3hkYy9zaGVsZi9qYXZhL2FudGxyLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvc3BlYy9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL3NwZWMvamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2VydmljZXMvaW50ZXJuL2dlbi9qYXZhL3BhY2thZ2UuamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NlcnZpY2VzL2ludGVybi9nZW4vamF2YS9wYWNrYWdlLmphcg0KK0U6L3J0c2MveGRjdG9vbHNfM18xNV8wMF8yOS9wYWNrYWdlcy94ZGMvc2hlbGYvamF2YS9lY2ouamFyOg0KK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBFOi9ydHNjL3hkY3Rvb2xzXzNfMTVfMDBfMjkvcGFja2FnZXMveGRjL3NoZWxmL2phdmEvZWNqLmphcg0KK2VuZGlmCisjIGdvYWxzIGZvciBmaWxlcyBnZW5lcmF0ZWQgZHVyaW5nIHNjaGVtYSBnZW5lcmF0aW9uIGJ1dCB1bnNwZWNpZmllZCBieSBzY2hlbWEncyBwYXR0ZXJuIHJ1bGUKK3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jOiBDbG9jazY0UC5oDQorQ2xvY2s2NFAuaDoNCitwYWNrYWdlL3BhY2thZ2UueGRjLmluYzogcGFja2FnZS9pbnRlcm5hbC9DbG9jazY0UC54ZGMuaA0KK3BhY2thZ2UvaW50ZXJuYWwvQ2xvY2s2NFAueGRjLmg6DQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvcGFja2FnZS54ZGMuaW5jIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmQzNDFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3BhY2thZ2UueGRjLmluYwpAQCAtMCwwICsxLDE3IEBACitwYWNrYWdlLnhkYw0KK0Nsb2NrNjRQLnhkYw0KK0Nsb2NrNjRQLnhzDQorcGFja2FnZS90eG4uY2xvY2tzLnNjaA0KK3BhY2thZ2UvLnZlcnNfZzE1MA0KK3BhY2thZ2UvLnZlcnNfcjE1MA0KK3BhY2thZ2UvLnZlcnNfYjE1MA0KK3BhY2thZ2UvLnZlcnNfYzE1MA0KK3BhY2thZ2UvLnhkYy10MzINCitwYWNrYWdlL3R4bl9jbG9ja3MuamF2YQ0KK3BhY2thZ2UvdHhuX2Nsb2Nrcy5jbGFzcw0KK3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLmMNCitwYWNrYWdlL3BhY2thZ2UuZGVmcy5oDQorQ2xvY2s2NFAuaA0KK3BhY2thZ2UvaW50ZXJuYWwvQ2xvY2s2NFAueGRjLmgNCitwYWNrYWdlL3BhY2thZ2UuZG9jLnhtbA0KK3BhY2thZ2UvdHhuLmNsb2Nrcy5jY3MNCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvcGFja2FnZV90eG4uY2xvY2tzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJlYTRmZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MuYwpAQCAtMCwwICsxLDIxIEBACisvKgorICogIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IAorICogIGdlbmVyYXRlZCBhbmQgYW55IG1vZGlmaWNhdGlvbnMgd2lsbCBiZSBvdmVyd3JpdHRlbi4KKyAqCisgKiBAKCMpIHhkYy10MzIKKyAqLworCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCitfX0ZBUl9fIGNoYXIgdHhuX2Nsb2Nrc19fZHVtbXlfXzsKKworI2RlZmluZSBfX3hkY19QS0dWRVJTIG51bGwKKyNkZWZpbmUgX194ZGNfUEtHTkFNRSB0eG4uY2xvY2tzCisjZGVmaW5lIF9feGRjX1BLR1BSRUZJWCB0eG5fY2xvY2tzXworCisjaWZkZWYgX194ZGNfYmxkX3BrZ19jX18KKyNkZWZpbmUgX19zdHJpbmdpZnkoYSkgI2EKKyNkZWZpbmUgX19sb2NhbF9pbmNsdWRlKGEpIF9fc3RyaW5naWZ5KGEpCisjaW5jbHVkZSBfX2xvY2FsX2luY2x1ZGUoX194ZGNfYmxkX3BrZ19jX18pCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3JlbC90eG5fY2xvY2tzLnhkYy5pbmMgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvcmVsL3R4bl9jbG9ja3MueGRjLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjI0MmNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3JlbC90eG5fY2xvY2tzLnhkYy5pbmMKQEAgLTAsMCArMSw3IEBACitwYWNrYWdlL2J1aWxkLmNmZworcGFja2FnZS9wYWNrYWdlLmNmZy54ZGMuaW5jCitwYWNrYWdlL3BhY2thZ2UuZXh0LnhtbAorcGFja2FnZS9wYWNrYWdlLnhkYy5pbmMKK3BhY2thZ2UvcGFja2FnZS5ibGQueG1sCitwYWNrYWdlL3BhY2thZ2UucmVsLmRvdAorbGliL3R4bi5jbG9ja3MuYTY0UApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3R4bi5jbG9ja3MuY2NzIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3R4bi5jbG9ja3MuY2NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmMjJmNzgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvdHhuLmNsb2Nrcy5jY3MKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3R4bi5jbG9ja3MucGp0IGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3R4bi5jbG9ja3MucGp0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzZThjOTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvdHhuLmNsb2Nrcy5wanQKQEAgLTAsMCArMSwxMCBAQAorOyBDb2RlIENvbXBvc2VyIFByb2plY3QgRmlsZSwgVmVyc2lvbiAyLjAgKGRvIG5vdCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgbGluZSkKK1tQcm9qZWN0IFNldHRpbmdzXQorUHJvamVjdE5hbWU9InR4bi5jbG9ja3MiCitQcm9qZWN0VHlwZT1FeHRlcm5hbAorQ1BVRmFtaWx5PVRNUzMyMEM2NFhYCitUb29sPSJDdXN0b21CdWlsZGVyIgorQ29uZmlnPSJQYWNrYWdlIgorW1NvdXJjZSBGaWxlc10KK1NvdXJjZT0iLi4vcGFja2FnZS9wYWNrYWdlX3R4bi5jbG9ja3MuYyIKK1NvdXJjZT0iLi4vQ2xvY2s2NFAuYyIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS90eG4uY2xvY2tzLnNjaCBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS90eG4uY2xvY2tzLnNjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3R4bi5jbG9ja3Muc2NoCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvdHhuX2Nsb2Nrcy5jbGFzcyBiL3NyYy9wYXJ0MS9leGFtcGxlcy9yZXBvL3R4bi9jbG9ja3MvcGFja2FnZS90eG5fY2xvY2tzLmNsYXNzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyMDQ0M2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvdHhuX2Nsb2Nrcy5jbGFzcwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDEvZXhhbXBsZXMvcmVwby90eG4vY2xvY2tzL3BhY2thZ2UvdHhuX2Nsb2Nrcy5qYXZhIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3R4bl9jbG9ja3MuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmMwN2VmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQxL2V4YW1wbGVzL3JlcG8vdHhuL2Nsb2Nrcy9wYWNrYWdlL3R4bl9jbG9ja3MuamF2YQpAQCAtMCwwICsxLDI3NyBAQAorLyoKKyAqICBEbyBub3QgbW9kaWZ5IHRoaXMgZmlsZTsgaXQgaXMgYXV0b21hdGljYWxseSAKKyAqICBnZW5lcmF0ZWQgYW5kIGFueSBtb2RpZmljYXRpb25zIHdpbGwgYmUgb3ZlcndyaXR0ZW4uCisgKgorICogQCgjKSB4ZGMtdDMyCisgKi8KK2ltcG9ydCBqYXZhLnV0aWwuKjsKK2ltcG9ydCBvcmcubW96aWxsYS5qYXZhc2NyaXB0Lio7CitpbXBvcnQgeGRjLnNlcnZpY2VzLmludGVybi54c3IuKjsKK2ltcG9ydCB4ZGMuc2VydmljZXMuc3BlYy4qOworCitwdWJsaWMgY2xhc3MgdHhuX2Nsb2NrcworeworICAgIHN0YXRpYyBmaW5hbCBTdHJpbmcgVkVSUyA9ICJAKCMpIHhkYy10MzJcbiI7CisKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9Cb29sID0gUHJvdG8uRWxtLm5ld0Jvb2woKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uRWxtICQkVF9OdW0gPSBQcm90by5FbG0ubmV3TnVtKCk7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLkVsbSAkJFRfU3RyID0gUHJvdG8uRWxtLm5ld1N0cigpOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5FbG0gJCRUX09iaiA9IFByb3RvLkVsbS5uZXdPYmooKTsKKworICAgIHN0YXRpYyBmaW5hbCBQcm90by5GeG4gJCRUX01ldCA9IG5ldyBQcm90by5GeG4obnVsbCwgbnVsbCwgMCwgLTEsIGZhbHNlKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uTWFwICQkVF9NYXAgPSBuZXcgUHJvdG8uTWFwKCQkVF9PYmopOworICAgIHN0YXRpYyBmaW5hbCBQcm90by5BcnIgJCRUX1ZlYyA9IG5ldyBQcm90by5BcnIoJCRUX09iaik7CisKKyAgICBzdGF0aWMgZmluYWwgWFNjcmlwdE8gJCRERUZBVUxUID0gVmFsdWUuREVGQVVMVDsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkVU5ERUYgPSBVbmRlZmluZWQuaW5zdGFuY2U7CisKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkUGFja2FnZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRQYWNrYWdlIik7CisgICAgc3RhdGljIGZpbmFsIFByb3RvLk9iaiAkJE1vZHVsZSA9IChQcm90by5PYmopR2xvYmFsLmdldCgiJCRNb2R1bGUiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkSW5zdGFuY2UgPSAoUHJvdG8uT2JqKUdsb2JhbC5nZXQoIiQkSW5zdGFuY2UiKTsKKyAgICBzdGF0aWMgZmluYWwgUHJvdG8uT2JqICQkUGFyYW1zID0gKFByb3RvLk9iailHbG9iYWwuZ2V0KCIkJFBhcmFtcyIpOworCisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJG9iakZsZEdldCA9IEdsb2JhbC5nZXQoIiQkb2JqRmxkR2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJG9iakZsZFNldCA9IEdsb2JhbC5nZXQoIiQkb2JqRmxkU2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJHByb3h5R2V0ID0gR2xvYmFsLmdldCgiJCRwcm94eUdldCIpOworICAgIHN0YXRpYyBmaW5hbCBPYmplY3QgJCRwcm94eVNldCA9IEdsb2JhbC5nZXQoIiQkcHJveHlTZXQiKTsKKyAgICBzdGF0aWMgZmluYWwgT2JqZWN0ICQkZGVsZWdHZXQgPSBHbG9iYWwuZ2V0KCIkJGRlbGVnR2V0Iik7CisgICAgc3RhdGljIGZpbmFsIE9iamVjdCAkJGRlbGVnU2V0ID0gR2xvYmFsLmdldCgiJCRkZWxlZ1NldCIpOworCisgICAgU2NyaXB0YWJsZSB4ZGNPOworICAgIFNlc3Npb24gc2VzOworICAgIFZhbHVlLk9iaiBvbTsKKworICAgIGJvb2xlYW4gaXNST1Y7CisgICAgYm9vbGVhbiBpc0NGRzsKKworICAgIFByb3RvLk9iaiBwa2dQOworICAgIFZhbHVlLk9iaiBwa2dWOworCisgICAgQXJyYXlMaXN0PE9iamVjdD4gaW1wb3J0cyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IGxvZ2dhYmxlcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IG1jZmdzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gcHJveGllcyA9IG5ldyBBcnJheUxpc3Q8T2JqZWN0PigpOworICAgIEFycmF5TGlzdDxPYmplY3Q+IHNpemVzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7CisgICAgQXJyYXlMaXN0PE9iamVjdD4gdGRlZnMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsKKworICAgIHZvaWQgJCRJTVBPUlRTKCkKKyAgICB7CisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJsb2FkUGFja2FnZSIsIHhkY08sICJhY21lLnV0aWxzLmNsb2NrcyIpOworICAgICAgICBHbG9iYWwuY2FsbEZ4bigibG9hZFBhY2thZ2UiLCB4ZGNPLCAieGRjIik7CisgICAgICAgIEdsb2JhbC5jYWxsRnhuKCJsb2FkUGFja2FnZSIsIHhkY08sICJ4ZGMuY29yZXZlcnMiKTsKKyAgICB9CisKKyAgICB2b2lkICQkT0JKRUNUUygpCisgICAgeworICAgICAgICBwa2dQID0gKFByb3RvLk9iailvbS5iaW5kKCJ0eG4uY2xvY2tzLlBhY2thZ2UiLCBuZXcgUHJvdG8uT2JqKCkpOworICAgICAgICBwa2dWID0gKFZhbHVlLk9iailvbS5iaW5kKCJ0eG4uY2xvY2tzIiwgbmV3IFZhbHVlLk9iaigidHhuLmNsb2NrcyIsIHBrZ1ApKTsKKyAgICB9CisKKyAgICB2b2lkIENsb2NrNjRQJCRPQkpFQ1RTKCkKKyAgICB7CisgICAgICAgIFByb3RvLk9iaiBwbywgc3BvOworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgcG8gPSAoUHJvdG8uT2JqKW9tLmJpbmQoInR4bi5jbG9ja3MuQ2xvY2s2NFAuTW9kdWxlIiwgbmV3IFByb3RvLk9iaigpKTsKKyAgICAgICAgdm8gPSAoVmFsdWUuT2JqKW9tLmJpbmQoInR4bi5jbG9ja3MuQ2xvY2s2NFAiLCBuZXcgVmFsdWUuT2JqKCJ0eG4uY2xvY2tzLkNsb2NrNjRQIiwgcG8pKTsKKyAgICAgICAgcGtnVi5iaW5kKCJDbG9jazY0UCIsIHZvKTsKKyAgICAgICAgLy8gZGVjbHMgCisgICAgfQorCisgICAgdm9pZCBDbG9jazY0UCQkQ09OU1RTKCkKKyAgICB7CisgICAgICAgIC8vIG1vZHVsZSBDbG9jazY0UAorICAgICAgICBvbS5iaW5kKCJ0eG4uY2xvY2tzLkNsb2NrNjRQLmdldFRpbWUiLCBuZXcgRXh0ZXJuKCJ0eG5fY2xvY2tzX0Nsb2NrNjRQX2dldFRpbWVfX0UiLCAieGRjX0JpdHMzMigqKSh4ZGNfVm9pZCkiLCB0cnVlLCBmYWxzZSwgInR4bi5jbG9ja3MuQ2xvY2s2NFAuZ2V0VGltZSIpKTsKKyAgICB9CisKKyAgICB2b2lkIENsb2NrNjRQJCRDUkVBVEVTKCkKKyAgICB7CisgICAgICAgIFByb3RvLkZ4biBmeG47CisgICAgICAgIFN0cmluZ0J1aWxkZXIgc2I7CisKKyAgICB9CisKKyAgICB2b2lkIENsb2NrNjRQJCRGVU5DVElPTlMoKQorICAgIHsKKyAgICAgICAgUHJvdG8uRnhuIGZ4bjsKKworICAgIH0KKworICAgIHZvaWQgQ2xvY2s2NFAkJFNJWkVTKCkKKyAgICB7CisgICAgICAgIFByb3RvLlN0ciBzbzsKKyAgICAgICAgT2JqZWN0IGZ4bjsKKworICAgIH0KKworICAgIHZvaWQgQ2xvY2s2NFAkJFRZUEVTKCkKKyAgICB7CisgICAgICAgIFNjcmlwdGFibGUgY2FwOworICAgICAgICBQcm90by5PYmogcG87CisgICAgICAgIFByb3RvLlN0ciBwczsKKyAgICAgICAgUHJvdG8uVHlwZWRlZiBwdDsKKyAgICAgICAgT2JqZWN0IGZ4bjsKKworICAgICAgICBjYXAgPSAoU2NyaXB0YWJsZSlHbG9iYWwuY2FsbEZ4bigibG9hZENhcHN1bGUiLCB4ZGNPLCAidHhuL2Nsb2Nrcy9DbG9jazY0UC54cyIpOworICAgICAgICBvbS5iaW5kKCJ0eG4uY2xvY2tzLkNsb2NrNjRQJCRjYXBzdWxlIiwgY2FwKTsKKyAgICAgICAgcG8gPSAoUHJvdG8uT2JqKW9tLmZpbmQoInR4bi5jbG9ja3MuQ2xvY2s2NFAuTW9kdWxlIik7CisgICAgICAgIHBvLmluaXQoInR4bi5jbG9ja3MuQ2xvY2s2NFAuTW9kdWxlIiwgb20uZmluZCgiYWNtZS51dGlscy5jbG9ja3MuSUNsb2NrLk1vZHVsZSIpKTsKKyAgICAgICAgICAgICAgICBwby5hZGRGbGQoIiRob3N0b25seSIsICQkVF9OdW0sIDAsICJyIik7CisgICAgICAgIGlmIChpc0NGRykgeworICAgICAgICB9Ly9pc0NGRworICAgICAgICAgICAgICAgIGZ4biA9IEdsb2JhbC5nZXQoY2FwLCAibW9kdWxlJHVzZSIpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgb20uYmluZCgidHhuLmNsb2Nrcy5DbG9jazY0UCQkbW9kdWxlJHVzZSIsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgcG8uYWRkRnhuKCJtb2R1bGUkdXNlIiwgJCRUX01ldCwgZnhuKTsKKyAgICAgICAgICAgICAgICBmeG4gPSBHbG9iYWwuZ2V0KGNhcCwgIm1vZHVsZSRtZXRhJGluaXQiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIG9tLmJpbmQoInR4bi5jbG9ja3MuQ2xvY2s2NFAkJG1vZHVsZSRtZXRhJGluaXQiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIHBvLmFkZEZ4bigibW9kdWxlJG1ldGEkaW5pdCIsICQkVF9NZXQsIGZ4bik7CisgICAgICAgICAgICAgICAgZnhuID0gR2xvYmFsLmdldChjYXAsICJtb2R1bGUkc3RhdGljJGluaXQiKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIG9tLmJpbmQoInR4bi5jbG9ja3MuQ2xvY2s2NFAkJG1vZHVsZSRzdGF0aWMkaW5pdCIsIHRydWUpOworICAgICAgICAgICAgICAgIGlmIChmeG4gIT0gbnVsbCkgcG8uYWRkRnhuKCJtb2R1bGUkc3RhdGljJGluaXQiLCAkJFRfTWV0LCBmeG4pOworICAgICAgICAgICAgICAgIGZ4biA9IEdsb2JhbC5nZXQoY2FwLCAibW9kdWxlJHZhbGlkYXRlIik7CisgICAgICAgICAgICAgICAgaWYgKGZ4biAhPSBudWxsKSBvbS5iaW5kKCJ0eG4uY2xvY2tzLkNsb2NrNjRQJCRtb2R1bGUkdmFsaWRhdGUiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoZnhuICE9IG51bGwpIHBvLmFkZEZ4bigibW9kdWxlJHZhbGlkYXRlIiwgJCRUX01ldCwgZnhuKTsKKyAgICB9CisKKyAgICB2b2lkIENsb2NrNjRQJCRST1YoKQorICAgIHsKKyAgICAgICAgUHJvdG8uT2JqIHBvOworICAgICAgICBWYWx1ZS5PYmogdm87CisKKyAgICAgICAgdm8gPSAoVmFsdWUuT2JqKW9tLmZpbmQoInR4bi5jbG9ja3MuQ2xvY2s2NFAiKTsKKyAgICB9CisKKyAgICB2b2lkICQkU0lOR0xFVE9OUygpCisgICAgeworICAgICAgICBwa2dQLmluaXQoInR4bi5jbG9ja3MuUGFja2FnZSIsIChQcm90by5PYmopb20uZmluZCgieGRjLklQYWNrYWdlLk1vZHVsZSIpKTsKKyAgICAgICAgcGtnUC5iaW5kKCIkY2Fwc3VsZSIsICQkVU5ERUYpOworICAgICAgICBwa2dWLmluaXQyKHBrZ1AsICJ0eG4uY2xvY2tzIiwgVmFsdWUuREVGQVVMVCwgZmFsc2UpOworICAgICAgICBwa2dWLmJpbmQoIiRuYW1lIiwgInR4bi5jbG9ja3MiKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkY2F0ZWdvcnkiLCAiUGFja2FnZSIpOworICAgICAgICBwa2dWLmJpbmQoIiQkcW4iLCAidHhuLmNsb2Nrcy4iKTsKKyAgICAgICAgcGtnVi5iaW5kKCIkdmVycyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgVmFsdWUuTWFwIGF0bWFwID0gKFZhbHVlLk1hcClwa2dWLmdldHYoIiRhdHRyIik7CisgICAgICAgIGF0bWFwLnNlYWwoImxlbmd0aCIpOworICAgICAgICBpbXBvcnRzLmNsZWFyKCk7CisgICAgICAgIGltcG9ydHMuYWRkKEdsb2JhbC5uZXdBcnJheSgiYWNtZS51dGlscy5jbG9ja3MiLCBHbG9iYWwubmV3QXJyYXkoKSkpOworICAgICAgICBwa2dWLmJpbmQoIiRpbXBvcnRzIiwgaW1wb3J0cyk7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgc2IgPSBuZXcgU3RyaW5nQnVpbGRlcigpOworICAgICAgICBzYi5hcHBlbmQoInZhciBwa2cgPSB4ZGMub21bJ3R4bi5jbG9ja3MnXTtcbiIpOworICAgICAgICBzYi5hcHBlbmQoImlmIChwa2cuJHZlcnMubGVuZ3RoID49IDMpIHtcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCJwa2cuJHZlcnMucHVzaChQYWNrYWdlcy54ZGMuc2VydmljZXMuZ2xvYmFsLlZlcnMuZ2V0RGF0ZSh4ZGMuY3NkKCkgKyAnLy4uJykpO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgifVxuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYnJhcmllcyA9IFtcbiIpOworICAgICAgICAgICAgc2IuYXBwZW5kKCInbGliL3R4bi5jbG9ja3MuYTY0UCcsXG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJdO1xuIik7CisgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2MgPSBbXG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgiWydsaWIvdHhuLmNsb2Nrcy5hNjRQJywge3RhcmdldDogJ3RpLnRhcmdldHMuQzY0UCd9XSxcbiIpOworICAgICAgICBzYi5hcHBlbmQoIl07XG4iKTsKKyAgICAgICAgc2IuYXBwZW5kKCJpZignc3VmZml4JyBpbiB4ZGMub21bJ3hkYy5JUGFja2FnZSQkTGliRGVzYyddKSB7XG4iKTsKKyAgICAgICAgICAgIHNiLmFwcGVuZCgicGtnLmJ1aWxkLmxpYkRlc2NbJ2xpYi90eG4uY2xvY2tzLmE2NFAnXS5zdWZmaXggPSAnNjRQJztcbiIpOworICAgICAgICBzYi5hcHBlbmQoIn1cbiIpOworICAgICAgICBHbG9iYWwuZXZhbChzYi50b1N0cmluZygpKTsKKyAgICB9CisKKyAgICB2b2lkIENsb2NrNjRQJCRTSU5HTEVUT05TKCkKKyAgICB7CisgICAgICAgIFByb3RvLk9iaiBwbzsKKyAgICAgICAgVmFsdWUuT2JqIHZvOworCisgICAgICAgIHZvID0gKFZhbHVlLk9iailvbS5maW5kKCJ0eG4uY2xvY2tzLkNsb2NrNjRQIik7CisgICAgICAgIHBvID0gKFByb3RvLk9iailvbS5maW5kKCJ0eG4uY2xvY2tzLkNsb2NrNjRQLk1vZHVsZSIpOworICAgICAgICB2by5pbml0MihwbywgInR4bi5jbG9ja3MuQ2xvY2s2NFAiLCAkJERFRkFVTFQsIGZhbHNlKTsKKyAgICAgICAgdm8uYmluZCgiTW9kdWxlIiwgcG8pOworICAgICAgICB2by5iaW5kKCIkY2F0ZWdvcnkiLCAiTW9kdWxlIik7CisgICAgICAgIHZvLmJpbmQoIiRjYXBzdWxlIiwgb20uZmluZCgidHhuLmNsb2Nrcy5DbG9jazY0UCQkY2Fwc3VsZSIpKTsKKyAgICAgICAgdm8uYmluZCgiJHBhY2thZ2UiLCBvbS5maW5kKCJ0eG4uY2xvY2tzIikpOworICAgICAgICB0ZGVmcy5jbGVhcigpOworICAgICAgICBwcm94aWVzLmNsZWFyKCk7CisgICAgICAgIG1jZmdzLmNsZWFyKCk7CisgICAgICAgIG1jZmdzLmFkZCgiTW9kdWxlX19kaWFnc0VuYWJsZWQiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2RpYWdzSW5jbHVkZWQiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2RpYWdzTWFzayIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fZ2F0ZU9iaiIpOworICAgICAgICBtY2Zncy5hZGQoIk1vZHVsZV9fZ2F0ZVBybXMiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2lkIik7CisgICAgICAgIG1jZmdzLmFkZCgiTW9kdWxlX19sb2dnZXJEZWZpbmVkIik7CisgICAgICAgIG1jZmdzLmFkZCgiTW9kdWxlX19sb2dnZXJPYmoiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2xvZ2dlckZ4bjQiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX2xvZ2dlckZ4bjgiKTsKKyAgICAgICAgbWNmZ3MuYWRkKCJNb2R1bGVfX3N0YXJ0dXBEb25lRnhuIik7CisgICAgICAgIG1jZmdzLmFkZCgiT2JqZWN0X19jb3VudCIpOworICAgICAgICBtY2Zncy5hZGQoIk9iamVjdF9faGVhcCIpOworICAgICAgICBtY2Zncy5hZGQoIk9iamVjdF9fc2l6ZW9mIik7CisgICAgICAgIG1jZmdzLmFkZCgiT2JqZWN0X190YWJsZSIpOworICAgICAgICB2by5iaW5kKCJUaW1lVmFsdWUiLCBvbS5maW5kKCJhY21lLnV0aWxzLmNsb2Nrcy5JQ2xvY2suVGltZVZhbHVlIikpOworICAgICAgICB2by5iaW5kKCIkJHRkZWZzIiwgR2xvYmFsLm5ld0FycmF5KHRkZWZzLnRvQXJyYXkoKSkpOworICAgICAgICB2by5iaW5kKCIkJHByb3hpZXMiLCBHbG9iYWwubmV3QXJyYXkocHJveGllcy50b0FycmF5KCkpKTsKKyAgICAgICAgdm8uYmluZCgiJCRtY2ZncyIsIEdsb2JhbC5uZXdBcnJheShtY2Zncy50b0FycmF5KCkpKTsKKyAgICAgICAgKChWYWx1ZS5BcnIpcGtnVi5nZXR2KCIkbW9kdWxlcyIpKS5hZGQodm8pOworICAgICAgICAoKFZhbHVlLkFycilvbS5maW5kKCIkbW9kdWxlcyIpKS5hZGQodm8pOworICAgICAgICB2by5iaW5kKCIkJGluc3RmbGFnIiwgMCk7CisgICAgICAgIHZvLmJpbmQoIiQkaW9iamZsYWciLCAwKTsKKyAgICAgICAgdm8uYmluZCgiJCRzaXplZmxhZyIsIDEpOworICAgICAgICB2by5iaW5kKCIkJGRsZ2ZsYWciLCAwKTsKKyAgICAgICAgdm8uYmluZCgiJCRpZmxhZyIsIDEpOworICAgICAgICB2by5iaW5kKCIkJHJvbWNmZ3MiLCAifCIpOworICAgICAgICBpZiAoaXNDRkcpIHsKKyAgICAgICAgICAgIFByb3RvLlN0ciBwcyA9IChQcm90by5TdHIpdm8uZmluZCgiTW9kdWxlX1N0YXRlIik7CisgICAgICAgICAgICBpZiAocHMgIT0gbnVsbCkgdm8uYmluZCgiJG9iamVjdCIsIHBzLm5ld0luc3RhbmNlKCkpOworICAgICAgICAgICAgdm8uYmluZCgiJCRtZXRhX2lvYmoiLCAxKTsKKyAgICAgICAgfS8vaXNDRkcKKyAgICAgICAgdm8uYmluZCgiZ2V0VGltZSIsIG9tLmZpbmQoInR4bi5jbG9ja3MuQ2xvY2s2NFAuZ2V0VGltZSIpKTsKKyAgICAgICAgdm8uYmluZCgiJCRmeG50YWIiLCBHbG9iYWwubmV3QXJyYXkoInR4bl9jbG9ja3NfQ2xvY2s2NFBfSGFuZGxlX19sYWJlbF9fRSIsICJ0eG5fY2xvY2tzX0Nsb2NrNjRQX01vZHVsZV9fc3RhcnR1cERvbmVfX0UiLCAidHhuX2Nsb2Nrc19DbG9jazY0UF9PYmplY3RfX2NyZWF0ZV9fRSIsICJ0eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9fZGVsZXRlX19FIiwgInR4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19kZXN0cnVjdF9fRSIsICJ0eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9fZ2V0X19FIiwgInR4bl9jbG9ja3NfQ2xvY2s2NFBfT2JqZWN0X19maXJzdF9fRSIsICJ0eG5fY2xvY2tzX0Nsb2NrNjRQX09iamVjdF9fbmV4dF9fRSIsICJ0eG5fY2xvY2tzX0Nsb2NrNjRQX1BhcmFtc19faW5pdF9fRSIsICJ0eG5fY2xvY2tzX0Nsb2NrNjRQX1Byb3h5X19hYnN0cmFjdF9fRSIsICJ0eG5fY2xvY2tzX0Nsb2NrNjRQX1Byb3h5X19kZWxlZ2F0ZV9fRSIsICJ0eG5fY2xvY2tzX0Nsb2NrNjRQX2dldFRpbWVfX0UiKSk7CisgICAgICAgIHZvLmJpbmQoIiQkbG9nRXZ0Q2ZncyIsIEdsb2JhbC5uZXdBcnJheSgpKTsKKyAgICAgICAgdm8uYmluZCgiJCRlcnJvckRlc2NDZmdzIiwgR2xvYmFsLm5ld0FycmF5KCkpOworICAgICAgICB2by5iaW5kKCIkJGFzc2VydERlc2NDZmdzIiwgR2xvYmFsLm5ld0FycmF5KCkpOworICAgICAgICBWYWx1ZS5NYXAgYXRtYXAgPSAoVmFsdWUuTWFwKXZvLmdldHYoIiRhdHRyIik7CisgICAgICAgIGF0bWFwLnNldEVsZW0oIiIsIHRydWUpOworICAgICAgICBhdG1hcC5zZWFsKCJsZW5ndGgiKTsKKyAgICAgICAgdm8uYmluZCgiTU9EVUxFX1NUQVJUVVAkIiwgMSk7CisgICAgICAgIHZvLmJpbmQoIlBST1hZJCIsIDApOworICAgICAgICBsb2dnYWJsZXMuY2xlYXIoKTsKKyAgICAgICAgbG9nZ2FibGVzLmFkZChHbG9iYWwubmV3T2JqZWN0KCJuYW1lIiwgImdldFRpbWUiLCAiZW50cnkiLCAiIiwgImV4aXQiLCAiJWQiKSk7CisgICAgICAgIHZvLmJpbmQoIiQkbG9nZ2FibGVzIiwgbG9nZ2FibGVzLnRvQXJyYXkoKSk7CisgICAgICAgIHBrZ1YuYmluZCgiQ2xvY2s2NFAiLCB2byk7CisgICAgICAgICgoVmFsdWUuQXJyKXBrZ1YuZ2V0digiJHVuaXROYW1lcyIpKS5hZGQoIkNsb2NrNjRQIik7CisgICAgfQorCisgICAgdm9pZCAkJElOSVRJQUxJWkFUSU9OKCkKKyAgICB7CisgICAgICAgIFZhbHVlLk9iaiB2bzsKKworICAgICAgICBpZiAoaXNDRkcpIHsKKyAgICAgICAgfS8vaXNDRkcKKyAgICAgICAgR2xvYmFsLmNhbGxGeG4oIm1vZHVsZSRtZXRhJGluaXQiLCAoU2NyaXB0YWJsZSlvbS5maW5kKCJ0eG4uY2xvY2tzLkNsb2NrNjRQIikpOworICAgICAgICBHbG9iYWwuY2FsbEZ4bigiaW5pdCIsIHBrZ1YpOworICAgICAgICAoKFZhbHVlLk9iailvbS5nZXR2KCJ0eG4uY2xvY2tzLkNsb2NrNjRQIikpLmJsZXNzKCk7CisgICAgICAgICgoVmFsdWUuQXJyKW9tLmZpbmQoIiRwYWNrYWdlcyIpKS5hZGQocGtnVik7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZXhlYyggU2NyaXB0YWJsZSB4ZGNPLCBTZXNzaW9uIHNlcyApCisgICAgeworICAgICAgICB0aGlzLnhkY08gPSB4ZGNPOworICAgICAgICB0aGlzLnNlcyA9IHNlczsKKyAgICAgICAgb20gPSAoVmFsdWUuT2JqKXhkY08uZ2V0KCJvbSIsIG51bGwpOworCisgICAgICAgIE9iamVjdCBvID0gb20uZ2V0bygiJG5hbWUiKTsKKyAgICAgICAgU3RyaW5nIHMgPSBvIGluc3RhbmNlb2YgU3RyaW5nID8gKFN0cmluZylvIDogbnVsbDsKKyAgICAgICAgaXNDRkcgPSBzICE9IG51bGwgJiYgcy5lcXVhbHMoImNmZyIpOworICAgICAgICBpc1JPViA9IHMgIT0gbnVsbCAmJiBzLmVxdWFscygicm92Iik7CisKKyAgICAgICAgJCRJTVBPUlRTKCk7CisgICAgICAgICQkT0JKRUNUUygpOworICAgICAgICBDbG9jazY0UCQkT0JKRUNUUygpOworICAgICAgICBDbG9jazY0UCQkQ09OU1RTKCk7CisgICAgICAgIENsb2NrNjRQJCRDUkVBVEVTKCk7CisgICAgICAgIENsb2NrNjRQJCRGVU5DVElPTlMoKTsKKyAgICAgICAgQ2xvY2s2NFAkJFNJWkVTKCk7CisgICAgICAgIENsb2NrNjRQJCRUWVBFUygpOworICAgICAgICBpZiAoaXNST1YpIHsKKyAgICAgICAgICAgIENsb2NrNjRQJCRST1YoKTsKKyAgICAgICAgfS8vaXNST1YKKyAgICAgICAgJCRTSU5HTEVUT05TKCk7CisgICAgICAgIENsb2NrNjRQJCRTSU5HTEVUT05TKCk7CisgICAgICAgICQkSU5JVElBTElaQVRJT04oKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDEvc2xpZGVzLnBwdCBiL3NyYy9wYXJ0MS9zbGlkZXMucHB0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhY2YxOTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDEvc2xpZGVzLnBwdApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvUkVBRE1FIGIvc3JjL3BhcnQyL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjRjMGM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL1JFQURNRQpAQCAtMCwwICsxLDc5IEBACitPdmVydmlldworLS0tLS0tLS0KK1RoaXMgZGlyZWN0b3J5IGNvbnRhaW5zIGFsbCBvZiB0aGUgbWF0ZXJpYWxzIHByb3ZpZGVkIGJ5IHBhcnQgMiBvZiB0aGUKK0VjbGlwc2VDb24gMjAwOSAiR2V0dGluZyBTdGFydGVkIHdpdGggUlRTQyIgdHV0b3JpYWwuICBJbiBwYXJ0aWN1bGFyOgorCisgICAgZG9jcyAtICAgICBjb250YWlucyB0aGUgdHV0b3JpYWwgc2xpZGVzIGFuZCB0aGUgc3ViLWRpcmVjdG9yeSBkb2NzL3JlZgorICAgICAgICAgICAgICAgY29udGFpbnMgcmVmZXJlbmNlIG1hdGVyaWFsIGZvciB0aGUgSFcgYW5kIGNvbXBpbGVyIHVzZWQgaW4gCisgICAgICAgICAgICAgICB0aGlzIHBhcnQgb2YgdGhlIHR1dG9yaWFsLgorCisgICAgZXhhbXBsZXMgLSBjb250YWlucyBhbGwgc291cmNlIGNvZGUgZm9yIHRoZSBleGFtcGxlcyBwcmVzZW50ZWQgKGFzCisgICAgICAgICAgICAgICB3ZWxsIGFzIGEgZmV3IG1vcmUpLiAgVGhlZSBleGFtcGxlcyBjYW4gYmUgYnVpbHQgZnJvbSB0aGUgCisgICAgICAgICAgICAgICBjb21tYW5kIGxpbmUgdmlhIHhkYyBvciBmcm9tIHdpdGhpbiBFY2xpcHNlIChhcyBkZXNjcmliZWQgCisgICAgICAgICAgICAgICBiZWxvdykuCisKKyAgICBlY2xpcHNlIC0gIGNvbnRhaW5zIGEgcGx1Zy1pbiB1c2VkIGluIHRoZSB0dXRvcmlhbCBmb3IgYnJvd3NpbmcgUlRTQworICAgICAgICAgICAgICAgcGFja2FnZXMgZnJvbSB3aXRoaW4gRWNsaXBzZS4KKworICAgIHBhdGNoZXMgLSAgY29udGFpbnMgcGF0Y2hlcyBuZWNlc3NhcnkgdG8gZW5hYmxlIFNpbXBsaWNpVEkgMS4wLjYgdG8gYmUgCisgICAgICAgICAgICAgICB1c2VkIHdpdGggdGhlIFRJIGNvbXBpbGVyLgorCisgICAgbWFrZWZpbGUgLSB0aGlzIG1ha2VmaWxlIGJ1aWxkcyBhbGwgdGhlIGV4YW1wbGVzCisKK0J1aWxkCistLS0tLQorICBUaGVzZSBpbnN0cnVjdGlvbnMgc3VtbWFyaXplIHRoZSBzZXRwcyBuZWNlc3NhcnkgdG8gYnVpbGQgdGhlIGV4YW1wbGVzIHRoYXQKKyAgYXJlIHBhcnQgb2YgdGhlIHR1dG9yaWFsLiAgVGhlIHR1dG9yaWFsIHNsaWRlcyAoZG9jcy90dXRvcmlhbC5wcHQpIHByb3ZpZGUKKyAgYWRkaXRpb25hbCBkZXRhaWxzIGluY2x1ZGluZyBsaW5rcyB0byB0aGUgdmFyaW91cyB3ZWIgc2l0ZXMgY29udGFpbmlnCisgIHByZS1yZXF1aXNpdGUgdG9vbHMuCisKKyAgUmVxdWlyZW1lbnRzCisgIC0tLS0tLS0tLS0tLQorICAgIG8gWERDdG9vbHMgMy4xNS4wMC4zMyAob3IgYWJvdmUpIG11c3QgYmUgaW5zdGFsbGVkIHNvbWV3aGVyZTsgd2UgdXNlIAorICAgICAgJFhEQ1JPT1QgYmVsb3cgdG8gcmVmZXIgdG8gdGhlIGFic29sdXRlIHBhdGggb2Ygd2hlcmUgWERDdG9vbHMgaXMKKyAgICAgIGluc3RhbGxlZC4gCisgICAgICAoaHR0cHM6Ly93d3ctYS50aS5jb20vZG93bmxvYWRzL3Nkc19zdXBwb3J0L3RhcmdldGNvbnRlbnQvcnRzYy9pbmRleC5odG1sKQorCisgICAgbyBDb2RlIENvbXBvc2VyIEVzc2VudGlhbHMgMy4xIG11c3QgYmUgaW5zdGFsbGVkIHNvbWV3aGVyZTsgaWYgeW91CisgICAgICBhY2NlcHQgdGhlIGRlZmF1bHQgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzIHlvdSB3b24ndCBoYXZlIHRvIGVkaXQKKyAgICAgIHNvbWUgc2V0dGluZ3MgZGVzY3JpYmVkIGJlbG93LgorICAgICAgKGh0dHA6Ly9mb2N1cy50aS5jb20vZG9jcy90b29sc3cvZm9sZGVycy9wcmludC9tc3AtY2NlNDMwLmh0bWwpCisKKyAgICBvIHRoZSB6aXAgZmlsZSByeHR4LTIuMS03LWJpbnMtcjIuemlwIChjb3Jlc3BvbmRpbmcgdG8gdGhlIDIuMS43UjIgCisgICAgICByZWxlYXNlIG9mIFJYVFgpIG11c3QgYmUgY29waWVkIGludG8gcGFja2FnZXMvdGhpcmRwYXJ0eS9yeHR4CisgICAgICAoaHR0cDovL3J4dHgucWJhbmcub3JnL3dpa2kvaW5kZXgucGhwL0Rvd25sb2FkKQorCisgICAgbyBTaW1wbGljaVRJIDEuMC42IG11c3QgYmUgaW5zdGFsbGVkIGFzIC4vU2ltcGxpY2lUSS0xLjAuNi4KKyAgICAgIEFsdGVybmF0aXZlbHksIGEgemlwIGZpbGUgY29udGFpbmluZyBTaW1wbGljaVRJLTEuMC42ICh0aGUgZW50aXJlCisgICAgICBjb250ZW50cyBvZiB0aGUgU2ltcGxpY2lUSSAxLjAuNiBpbnN0YWxsYXRpb24gZGlyZWN0b3J5KSBtdXN0IGJlCisgICAgICBjb3BpZWQgdG8gLi9TaW1wbGljaVRJLTEuMC42LnppcAorICAgICAgKGh0dHA6Ly9mb2N1cy50aS5jb20vZG9jcy90b29sc3cvZm9sZGVycy9wcmludC9zaW1wbGljaXRpLmh0bWwpCisKKyAgVG8gYnVpbGQgYWxsIGV4YW1wbGVzCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBXZSB1c2UgIm1ha2UiIGJlbG93IHRvIHJlZmVyIHRvIHRoZSAzLjgxIHZlcnNpb24gb2YgR05VIG1ha2UuICBJZiB5b3UgZG8KKyAgbm90IGhhdmUgdGhpcyB2ZXJzaW9uIChvciBsYXRlcikgb2YgR05VIG1ha2UsIHlvdSBjYW4gdXNlIHRoZSBvbmUKKyAgc3VwcHBsaWVkIHdpdGggWERDdG9vbHM6ICRYRENST09UL2dtYWtlCisKKyAgICBvIGVkaXQgcGFja2FnZXMvY29uZmlnLmJsZCBhbmQgcGFja2FnZXMvY29tbW9uLm1hayB0byByZWZsZWN0IHlvdXIKKyAgICAgIHRvb2xzIGluc3RhbGxhdGlvbiBjaG9pY2VzIG1hZGUgYWJvdmUuCisKKyAgICBvIGNkIHRvIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGlzIFJFQURNRSBmaWxlIGFuZCB0eXBlOgorCSAgbWFrZQorCisgIFRvIGJ1aWxkIGluZGl2aWR1YWwgZXhhbXBsZXMKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICBNb3N0IGV4YW1wbGVzIGFyZSBpbiBhIFJUU0MgcGFja2FnZS4gIFRvIGJ1aWxkIHRoZXNlIGV4YW1wbGVzLCBzaW1wbHkgY2QKKyAgdG8gdGhlIGV4YW1wbGUncyBwYWNrYWdlIGJhc2UgYW5kIHR5cGU6CisgICAgICAkWERDUk9PVC94ZGMKKworICBTb21lIGV4YW1wbGVzIGFyZSBzaW1wbHkgZGlyZWN0b3JpZXMgd2l0aCBhIG1ha2UgZmlsZSAobmFtZWQgIm1ha2VmaWxlIikuCisgIFRvIGJ1aWxkIHRoZXNlIGV4YW1wbGVzIHNpbXBseSB0eXBlOgorICAgICAgbWFrZQorCisgIFRvIGJ1aWxkIHdpdGhpbiBFY2xpcHNlCisgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgIEVhY2ggaW5kaXZpZHVhbCBleGFtcGxlIGhhcyBhbiBhc3NvY2lhdGVkIENEVCBwcm9qZWN0LiAgVGhpcyBhbGxvdyB5b3UgdG8gCisgIGltcG9ydCB0aGUgZXhhbXBsZSBpbnRvIEVjbGlwc2UgYW5kIGJ1aWxkIHVzaW5nIHN0YW5kYXJkIENEVCBtZWNoYW5pc21zLgorICBUaGUgdHV0b3JpYWwgc2xpZGVzIChkb2NzL3R1dG9yaWFsLXBhcnQyLnBwdCBzbGlkZXMgMzUtNDApKSBpbGx1c3RyYXRlIHRoZQorICBzdGVwcy4KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3JlZi9jYzI1MDBfZXJyYXRhLnBkZiBiL3NyYy9wYXJ0Mi9kb2NzL3JlZi9jYzI1MDBfZXJyYXRhLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjNiZmE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2RvY3MvcmVmL2NjMjUwMF9lcnJhdGEucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3JlZi9jYzI1MDBfdHJhbmNlaXZlcl9kYXRhX3NoZWV0LnBkZiBiL3NyYy9wYXJ0Mi9kb2NzL3JlZi9jYzI1MDBfdHJhbmNlaXZlcl9kYXRhX3NoZWV0LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZjk2NWEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2RvY3MvcmVmL2NjMjUwMF90cmFuY2VpdmVyX2RhdGFfc2hlZXQucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3JlZi9lejQzMF9hcHBfbm90ZS5wZGYgYi9zcmMvcGFydDIvZG9jcy9yZWYvZXo0MzBfYXBwX25vdGUucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkMzZjYTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZG9jcy9yZWYvZXo0MzBfYXBwX25vdGUucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3JlZi9lejQzMF91c2Vyc19ndWlkZS5wZGYgYi9zcmMvcGFydDIvZG9jcy9yZWYvZXo0MzBfdXNlcnNfZ3VpZGUucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMDJlMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZG9jcy9yZWYvZXo0MzBfdXNlcnNfZ3VpZGUucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3JlZi9tc3A0MzBfMjJ4NF9kYXRhX3NoZWV0LnBkZiBiL3NyYy9wYXJ0Mi9kb2NzL3JlZi9tc3A0MzBfMjJ4NF9kYXRhX3NoZWV0LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2YxM2E3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2RvY3MvcmVmL21zcDQzMF8yMng0X2RhdGFfc2hlZXQucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3JlZi9tc3A0MzBfYXNtX3VzZXJzX2d1aWRlLnBkZiBiL3NyYy9wYXJ0Mi9kb2NzL3JlZi9tc3A0MzBfYXNtX3VzZXJzX2d1aWRlLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzkzZTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2RvY3MvcmVmL21zcDQzMF9hc21fdXNlcnNfZ3VpZGUucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3JlZi9tc3A0MzBfY29tcGlsZXJfdXNlcnNfZ3VpZGUucGRmIGIvc3JjL3BhcnQyL2RvY3MvcmVmL21zcDQzMF9jb21waWxlcl91c2Vyc19ndWlkZS5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDIyMjgzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9kb2NzL3JlZi9tc3A0MzBfY29tcGlsZXJfdXNlcnNfZ3VpZGUucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3JlZi9tc3A0MzBfZmV0X3Rvb2wucGRmIGIvc3JjL3BhcnQyL2RvY3MvcmVmL21zcDQzMF9mZXRfdG9vbC5wZGYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTM2ZjQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9kb2NzL3JlZi9tc3A0MzBfZmV0X3Rvb2wucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3JlZi9tc3A0MzBfeDJ4eF91c2Vyc19ndWlkZS5wZGYgYi9zcmMvcGFydDIvZG9jcy9yZWYvbXNwNDMwX3gyeHhfdXNlcnNfZ3VpZGUucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1OTEwMzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZG9jcy9yZWYvbXNwNDMwX3gyeHhfdXNlcnNfZ3VpZGUucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3JlZi9zbGFhMzM4LnBkZiBiL3NyYy9wYXJ0Mi9kb2NzL3JlZi9zbGFhMzM4LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmE2Mzg4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2RvY3MvcmVmL3NsYWEzMzgucGRmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3R1dG9yaWFsLXBhcnQxLnBwdCBiL3NyYy9wYXJ0Mi9kb2NzL3R1dG9yaWFsLXBhcnQxLnBwdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTEyZWRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2RvY3MvdHV0b3JpYWwtcGFydDEucHB0CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9kb2NzL3R1dG9yaWFsLXBhcnQyLnBwdCBiL3NyYy9wYXJ0Mi9kb2NzL3R1dG9yaWFsLXBhcnQyLnBwdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Mjk4OThiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2RvY3MvdHV0b3JpYWwtcGFydDIucHB0CkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9lY2xpcHNlL3BsdWdpbnMvb3JnLmVjbGlwc2UucnRzYy5leHBsb3Jlcl8xLjAuMS5qYXIgYi9zcmMvcGFydDIvZWNsaXBzZS9wbHVnaW5zL29yZy5lY2xpcHNlLnJ0c2MuZXhwbG9yZXJfMS4wLjEuamFyCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlMDIyMjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZWNsaXBzZS9wbHVnaW5zL29yZy5lY2xpcHNlLnJ0c2MuZXhwbG9yZXJfMS4wLjEuamFyCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9jb21tb24ubWFrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2NvbW1vbi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDM5OTc1MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9jb21tb24ubWFrCkBAIC0wLDAgKzEsMjcgQEAKKyMKKyMgIFRoaXMgbWFrZWZpbGUgaXMgb25seSByZXF1aXJlZCBmb3I6CisjICAgICAgbG9jYWwvYXBwcy9tYWtlLyogLSB0aGUgbWFrZWZpbGUtYmFzZWQgZXhhbXBsZXMgbmVlZCB0aGUgbG9jYXRpb24KKyMgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSBjb21waWxlciBhbmQgdGhlIFhEQ3Rvb2xzCisjICAgICAgLi4vbWFrZWZpbGUJIC0gdG9wLWxldmVsIG1ha2VmaWxlIHRoYXQgYnVpbGRzIGFsbCB0dXRvcmlhbAorIwkJCSAgIGV4YW1wbGVzCisjCisKKyMKKyMgTW9kaWZ5IHRoZSBmb2xsb3dpbmcgZGVmaW5pdGlvbnMgYXMgYXBwcm9wcmlhdGU6CisjICAgICBDR1RPT0xTIC0gbXVzdCBwb2ludCB0byBhIDMuMSB2ZXJzaW9uIChvciBsYXRlcikgb2YgVEkncyBNU1A0MzAgY29tcGlsZXIKKyMgICAgIFhEQ1JPT1QgLSBtdXN0IHBvaW50IHRvIGEgMy4xNSB2ZXJzaW9uIChvciBsYXRlcikgb2YgWERDdG9vbHMKKyMKK0NHVE9PTFMgPSAiQzovUHJvZ3JhbSBGaWxlcy9UZXhhcyBJbnN0cnVtZW50cy9DQyBFc3NlbnRpYWxzIHYzLjEvdG9vbHMvY29tcGlsZXIvTVNQNDMwIgorWERDUk9PVCA9ICQoSE9NRSkveGRjdG9vbHNfM18xNV8wMF8zMworCisjCisjIElmIG5lY2Vzc2FyeSBtb2RpZnkgSE9TVE9TIHRvIGJlCisjCW8gV2luZG93cyBmb3IgV2luZG93cyBob3N0cywKKyMJbyBvdXRwdXQgb2YgdW5hbWUgZm9yIHVuaXggaG9zdHMKKyMKK0hPU1RPUyA6PSAkKHNoZWxsIHVuYW1lKQoraWZlcSAoLCQoSE9TVE9TKSkKKyAgICBIT1NUT1MgOj0gV2luZG93cworICAgICQoaW5mbyBzZXR0aW5nIEhPU1RPUyA9ICQoSE9TVE9TKSkKK2VuZGlmCitIT1NUT1MgOj0gJChwYXRzdWJzdCBXaW5kb3dzJSxXaW5kb3dzLCQoSE9TVE9TKSkKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9jb25maWcuYmxkIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2NvbmZpZy5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc3MGY1OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9jb25maWcuYmxkCkBAIC0wLDAgKzEsMjUgQEAKKy8qIHNwZWNpZnkgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSBmb3IgQ0NTIChmb3IgY29tcGlsZXJzIGFuZCBkZWJ1Z2dlcnMpICovCit2YXIgQ0NTUEFUSCA9ICJDOi9Qcm9ncmFtIEZpbGVzL1RleGFzIEluc3RydW1lbnRzL0NDIEVzc2VudGlhbHMgdjMuMSI7CisKKy8qIGdldCBhbmQgY29uZmlndXJlIHRoZSBNU1A0MzAgdGFyZ2V0ICovCit2YXIgTVNQNDMwID0geGRjLm1vZHVsZSgidHhuLnRhcmdldHMuTVNQNDMwIik7CitNU1A0MzAucGxhdGZvcm0gPSAidHhuLnBsYXRmb3Jtcy5lejQzMF9yZjI1MDAiOworTVNQNDMwLnJvb3REaXIgPSBDQ1NQQVRIICsgIi90b29scy9jb21waWxlci9NU1A0MzAiOworCisvKiBkZWZpbmUvY29uZmlndXJlIHNvbWUgcGxhdGZvcm1zICovCitCdWlsZC5wbGF0Zm9ybVRhYmxlWyJ0eG4ucGxhdGZvcm1zLmV6NDMwX3JmMjUwMCJdID0geworICAgIGRzc1BhdGg6IENDU1BBVEggKyAiL0RlYnVnU2VydmVyIgorfTsKKworQnVpbGQucGxhdGZvcm1UYWJsZVsidGkucGxhdGZvcm1zLmdlbmVyaWM6TVNQNDMwIl0gPSB7CisgICAgY2xvY2tSYXRlOiAgIDE2LAorICAgIGRldmljZU5hbWU6ICAiTVNQNDMwRjIyN3giLAorICAgIGNhdGFsb2dOYW1lOiAidHhuLmNhdGFsb2cuYzQzMCIKK307CisKKy8qIGRlZmluZSB0aGUgc2V0IG9mIHRhcmV0cyB0byBidWlsZCBmb3IgKi8KK0J1aWxkLnRhcmdldHMgPSBbTVNQNDMwXTsKKworLyogc2V0IGRlZmF1bHQgYnVpbGQgcHJvZmlsZSBmb3IgYWxsIHBhY2thZ2VzICovCitQa2cuYXR0cnMucHJvZmlsZSA9ICJ3aG9sZV9wcm9ncmFtX2RlYnVnIjsKKy8vUGtnLmF0dHJzLnByb2ZpbGUgPSAiZGVidWciOwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2hlbGxvLy54ZGNlbnYubWFrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2hlbGxvLy54ZGNlbnYubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlM2UxMDMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvaGVsbG8vLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAwCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSAKK292ZXJyaWRlIFhEQ1JPT1QgPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMworb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzL3BhY2thZ2VzOy4uCitIT1NUT1MgPSBMaW51eAorZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9oZWxsby9oZWxsby5jIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2hlbGxvL2hlbGxvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFmZWFmYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9oZWxsby9oZWxsby5jCkBAIC0wLDAgKzEsMTAgQEAKKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4KKworLyoKKyAqICA9PT09PT09PSBtYWluID09PT09PT09CisgKi8KK0ludCBtYWluKEludCBhcmdjLCBTdHJpbmcgYXJndltdKQoreworICAgIFN5c3RlbV9wcmludGYoImhlbGxvIHdvcmxkXG4iKTsKKyAgICByZXR1cm4gKDApOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2hlbGxvL2hlbGxvLmNmZyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9oZWxsby9oZWxsby5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZlZWM2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9oZWxsby9oZWxsby5jZmcKQEAgLTAsMCArMSwyMyBAQAordmFyIFN5c3RlbSA9IHhkYy51c2VNb2R1bGUoJ3hkYy5ydW50aW1lLlN5c3RlbScpOworCitpZiAoUHJvZ3JhbS5jcHUuZGV2aWNlTmFtZS5tYXRjaCgvTVNQNDMwLykpIHsKKyAgICAvKiBTeXNVYXJ0IG9ubHkgd29ya3Mgb24gTVNQNDMwICovCisgICAgdmFyIFN5c1VhcnQgPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5ydW50aW1lLlN5c1VhcnQiKTsKKyAgICBTeXN0ZW0uU3VwcG9ydFByb3h5ID0gU3lzVWFydDsKKyAgICBQcm9ncmFtLmhlYXAgPSAwOyAgICAgICAgICAgICAgIC8qIGRvbid0IG5lZWQgaGVhcCBmb3IgdGhpcyBhcHAgKi8KKyAgICBQcm9ncmFtLnN0YWNrID0gMHgxMDA7ICAgICAgICAgIC8qIGRvbid0IG5lZWQgbXVjaCBzdGFjayBmb3IgdGhpcyBhcHAgKi8KK30KKworLyogbWluaW1pemUgZm9vdHByaW50IGZvciByZXNvdXJjZSBjb25zdHJhaW5lZCB0YXJnZXRzICovCitTeXN0ZW0ubWF4QXRleGl0SGFuZGxlcnMgPSAwOyAgIC8qIHNhdmUgMjBCIFJBTTsgZG9uJ3QgbmVlZCBhdGV4aXQoKSAqLworUHJvZ3JhbS5hcmdTaXplID0gMDsgICAgICAgICAgICAvKiBkb24ndCBuZWVkIGFyYy9hcmd2IHN1cHBvcnQgKi8KKworLyogc2V0IFNUQVRJQ19QT0xJQ1ksIHJ1bnRpbWUgY3JlYXRpb24gc3VwcG9ydC9vdmVyaGVhZCBpcyBlbGltaW5hdGVkICovCit2YXIgVHlwZXMgPSB4ZGMudXNlTW9kdWxlKCd4ZGMucnVudGltZS5UeXBlcycpOwordmFyIERlZmF1bHRzID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRGVmYXVsdHMiKTsKK0RlZmF1bHRzLmNvbW1vbiQubWVtb3J5UG9saWN5ID0gVHlwZXMuU1RBVElDX1BPTElDWTsKK0RlZmF1bHRzLmNvbW1vbiQuZnhudGFiID0gZmFsc2U7CisKKy8qIHRoZSBmb2xsb3dpbmcgc2F2ZXMgYWxtb3N0IDFLQiBvZiBjb2RlIChzdHJpbmdzIGFyZSBlbGltaW5hdGVkKSAqLwordmFyIFRleHQgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5UZXh0Iik7CitUZXh0LmlzTG9hZGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvaGVsbG8vcGFja2FnZS5ibGQgYi9zcmMvcGFydDIvZXhhbXBsZXMvaGVsbG8vcGFja2FnZS5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmMyZWU0MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9oZWxsby9wYWNrYWdlLmJsZApAQCAtMCwwICsxLDUgQEAKK2ZvciAodmFyIGkgPSAwOyBpIDwgQnVpbGQudGFyZ2V0cy5sZW5ndGg7IGkrKykgeworICAgIHZhciB0YXJnID0gQnVpbGQudGFyZ2V0c1tpXTsKKyAgICB2YXIgZXhlID0gUGtnLmFkZEV4ZWN1dGFibGUoImhlbGxvIiwgdGFyZywgdGFyZy5wbGF0Zm9ybSk7CisgICAgZXhlLmFkZE9iamVjdHMoWyJoZWxsby5jIl0pOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2hlbGxvL3BhY2thZ2UueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2hlbGxvL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyMGM4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvaGVsbG8vcGFja2FnZS54ZGMKQEAgLTAsMCArMSwxMCBAQAorLyohCisgKiAgPT09PT09PT0gaGVsbG8gPT09PT09PT0KKyAqICBTeXN0ZW1fcHJpbnRmIGJhc2VkICJoZWxsbyB3b3JsZCIKKyAqCisgKiAgVGhpcyBwYWNrYWdlIHNpbXBseSBidWlsZHMgYSBge0BsaW5rIHhkYy5ydW50aW1lLlN5c3RlbSNwcmludGYgU3lzdGVtX3ByaW50Zn1gIAorICogIGJhc2VkICJoZWxsbyB3b3JsZCIgZXhlY3V0YWJsZS4KKyAqLworcGFja2FnZSBoZWxsbworeworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMC8uY2R0cHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvLmNkdHByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFiMjg0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvLmNkdHByb2plY3QKQEAgLTAsMCArMSwyNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8P2VjbGlwc2UtY2R0IHZlcnNpb249IjIuMCI/Pg0KKw0KKzxjZHRwcm9qZWN0IGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2UiPg0KKzxleHRlbnNpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5iaW5hcnlwYXJzZXIuQ29mZlBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkJpbmFyeVBhcnNlciIvPg0KKzxkYXRhPg0KKzxpdGVtIGlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzwvaXRlbT4NCis8aXRlbSBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGF0aGVudHJ5Ij4NCis8cGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJvdXQiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkRJU0NPVkVSRURfU0NBTk5FUl9JTkZPIi8+DQorPC9pdGVtPg0KKzwvZGF0YT4NCis8L2NkdHByb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMC8uY3Byb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18wLy5jcHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Nzg5OWY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMC8uY3Byb2plY3QKQEAgLTAsMCArMSwzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQorPD9maWxlVmVyc2lvbiA0LjAuMD8+DQorDQorPGNwcm9qZWN0Pg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyI+DQorPGNjb25maWd1cmF0aW9uIGlkPSJjb252ZXJ0ZWQuY29uZmlnLjE5MzY5MjQ1MTkiPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGF0aGVudHJ5Ij4NCis8cGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJvdXQiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkRJU0NPVkVSRURfU0NBTk5FUl9JTkZPIi8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIGJ1aWxkU3lzdGVtSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmRlZmF1bHRDb25maWdEYXRhUHJvdmlkZXIiIGlkPSJjb252ZXJ0ZWQuY29uZmlnLjE5MzY5MjQ1MTkiIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyIgbmFtZT0iY29udmVydGVkQ29uZmlnIj4NCis8ZXh0ZXJuYWxTZXR0aW5ncy8+DQorPGV4dGVuc2lvbnM+DQorPGV4dGVuc2lvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJpbmFyeXBhcnNlci5Db2ZmUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuQmluYXJ5UGFyc2VyIi8+DQorPC9leHRlbnNpb25zPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Njb25maWd1cmF0aW9uPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Nwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvLmxhdW5jaGVzL2xvY2FsJTJlYXBwcyUyZWhlbGxvXzAubGF1bmNoIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMC8ubGF1bmNoZXMvbG9jYWwlMmVhcHBzJTJlaGVsbG9fMC5sYXVuY2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmU5YTkzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvLmxhdW5jaGVzL2xvY2FsJTJlYXBwcyUyZWhlbGxvXzAubGF1bmNoCkBAIC0wLDAgKzEsMjQgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPGxhdW5jaENvbmZpZ3VyYXRpb24gdHlwZT0iY29tLnRpLmNjc3R1ZGlvLmRlYnVnLmNvcmUuQ0NFTGF1bmNoVHlwZSI+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLmNvcmUuc291cmNlX2xvY2F0b3JfbWVtZW50byIgdmFsdWU9IiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O3NvdXJjZUxvb2t1cERpcmVjdG9yJmd0OyYjMTM7JiMxMDsmbHQ7c291cmNlQ29udGFpbmVycyBkdXBsaWNhdGVzPSZxdW90O2ZhbHNlJnF1b3Q7Jmd0OyYjMTM7JiMxMDsmbHQ7Y29udGFpbmVyIG1lbWVudG89JnF1b3Q7JmFtcDtsdDs/eG1sIHZlcnNpb249JmFtcDtxdW90OzEuMCZhbXA7cXVvdDsgZW5jb2Rpbmc9JmFtcDtxdW90O1VURi04JmFtcDtxdW90Oz8mYW1wO2d0OyZhbXA7IzEzOyZhbXA7IzEwOyZhbXA7bHQ7ZGVmYXVsdC8mYW1wO2d0OyZhbXA7IzEzOyZhbXA7IzEwOyZxdW90OyB0eXBlSWQ9JnF1b3Q7b3JnLmVjbGlwc2UuZGVidWcuY29yZS5jb250YWluZXJUeXBlLmRlZmF1bHQmcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3NvdXJjZUNvbnRhaW5lcnMmZ3Q7JiMxMzsmIzEwOyZsdDsvc291cmNlTG9va3VwRGlyZWN0b3ImZ3Q7JiMxMzsmIzEwOyIvPg0KKzxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcudWkuQVRUUl9MQVVOQ0hfSU5fQkFDS0dST1VORCIgdmFsdWU9ImZhbHNlIi8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmNkdC5sYXVuY2guREVCVUdHRVJfSUQiIHZhbHVlPSJjb20udGkuY2NzdHVkaW8uZGVidWcuY29yZS5DQ0VEZWJ1Z2dlciIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJDQ0VEZWJ1Z09wdGlvbnMuQ1BVX1JFU09MVkVfT1BUSU9OIiB2YWx1ZT0iZXhhY3QiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcudWkuRElTUExBWV9OQU1FIiB2YWx1ZT0ibG9jYWwuYXBwcy5oZWxsb18wIC0gVEkgTVNQNDMwIFVTQjEvTVNQNDMwIi8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmNkdC5sYXVuY2guREVCVUdHRVJfUkVHSVNURVJfR1JPVVBTIiB2YWx1ZT0iIi8+DQorPG1hcEF0dHJpYnV0ZSBrZXk9ImNvbS50aS5jY3N0dWRpby5kZWJ1Zy5jb3JlLlZBUklBQkxFX1NUQVRFIi8+DQorPGxpc3RBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5mYXZvcml0ZUdyb3VwcyI+DQorPGxpc3RFbnRyeSB2YWx1ZT0ib3JnLmVjbGlwc2UuZGVidWcudWkubGF1bmNoR3JvdXAuZGVidWciLz4NCis8L2xpc3RBdHRyaWJ1dGU+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmNkdC5sYXVuY2guREVCVUdHRVJfU1RBUlRfTU9ERSIgdmFsdWU9InJ1biIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJjb20udGkuY2NzdHVkaW8uZGVidWcuY29yZS5ESVNQTEFZX05BTUVfRk9STUFUIiB2YWx1ZT0ibG9jYWwuYXBwcy5oZWxsb18wIC0gezB9Ii8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmNkdC5sYXVuY2guTUVNT1JZX0JMT0NLUyIgdmFsdWU9IiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O21lbW9yeUJsb2NrRXhwcmVzc2lvbkxpc3QvJmd0OyYjMTM7JiMxMDsiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuY2R0LmxhdW5jaC5QUk9KRUNUX0FUVFIiIHZhbHVlPSJsb2NhbC5hcHBzLmhlbGxvXzAiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0iQ0NFRGVidWdPcHRpb25zLkNQVV9OQU1FIiB2YWx1ZT0iVEkgTVNQNDMwIFVTQjEvTVNQNDMwIi8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9ImNvbS50aS5jY3N0dWRpby5kZWJ1Zy5jb3JlLk1SVV9NT0RVTEVTIiB2YWx1ZT0iJmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7bW9kdWxlcyZndDsmIzEzOyYjMTA7Jmx0O21vZHVsZSBuYW1lPSZxdW90O0M6XHVzZXJzXGRyXGVjMjAwOVxzcmNcbG9jYWxcYXBwc1xoZWxsb18wXGhlbGxvLng0MzAmcXVvdDsgdGltZT0mcXVvdDtUdWUgTWFyIDE3IDEwOjU2OjA3IFBEVCAyMDA5JnF1b3Q7IHRpbWVfbG9uZz0mcXVvdDsxMjM3MzEyNTY3NjM1JnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0Oy9tb2R1bGVzJmd0OyYjMTM7JiMxMDsiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuY2R0LmxhdW5jaC5HTE9CQUxfVkFSSUFCTEVTIiB2YWx1ZT0iJmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7Z2xvYmFsVmFyaWFibGVMaXN0LyZndDsmIzEzOyYjMTA7Ii8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmNkdC5sYXVuY2guUFJPR1JBTV9OQU1FIiB2YWx1ZT0iaGVsbG8ueDQzMCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJDQ0VEZWJ1Z09wdGlvbnMuQ1BVX0lTQSIgdmFsdWU9Ik1TUDQzMCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJDQ0VEZWJ1Z09wdGlvbnMuVEFSR0VUX0NPTkZJR1VSQVRJT05fRklMRSIgdmFsdWU9Ii9DOi91c2Vycy9kci9lYzIwMDkvc3JjL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL1N5c3RlbVNldHVwLnhtbCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLnNvdXJjZV9sb2NhdG9yX2lkIiB2YWx1ZT0iY29tLnRpLmNjc3R1ZGlvLmRlYnVnLmNvcmUuc291cmNlTG9jYXRvciIvPg0KKzwvbGF1bmNoQ29uZmlndXJhdGlvbj4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18wLy5wcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMC8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDcwOTFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMC8ucHJvamVjdApAQCAtMCwwICsxLDg1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPmxvY2FsLmFwcHMuaGVsbG9fMDwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCQk8cHJvamVjdD5sb2NhbC5ydW50aW1lPC9wcm9qZWN0Pg0KKwkJPHByb2plY3Q+dHhuLnBsYXRmb3Jtcy5lejQzMF9yZjI1MDA8L3Byb2plY3Q+DQorCQk8cHJvamVjdD50eG4udGFyZ2V0czwvcHJvamVjdD4NCisJCTxwcm9qZWN0PnR4bi50YXJnZXRzLnJ0czQzMDwvcHJvamVjdD4NCisJPC9wcm9qZWN0cz4NCisJPGJ1aWxkU3BlYz4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlQnVpbGRlcjwvbmFtZT4NCisJCQk8dHJpZ2dlcnM+Y2xlYW4sZnVsbCxpbmNyZW1lbnRhbCw8L3RyaWdnZXJzPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLmFyZ3VtZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5jb3JlLmVycm9yT3V0cHV0UGFyc2VyPC9rZXk+DQorCQkJCQk8dmFsdWU+Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkNvZmZFcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQXNtRXJyb3JQYXJzZXI7Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkxpbmtFcnJvclBhcnNlcjtvcmcuZWNsaXBzZS5jZHQuY29yZS5NYWtlRXJyb3JQYXJzZXI7PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVBdXRvQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW52aXJvbm1lbnQ8L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUZ1bGxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5pbmM8L2tleT4NCisJCQkJCTx2YWx1ZT5hbGw8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZWRJbmNyZW1lbnRhbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmNsZWFuPC9rZXk+DQorCQkJCQk8dmFsdWU+Y2xlYW48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLmNvbW1hbmQ8L2tleT4NCisJCQkJCTx2YWx1ZT4ke1hEQ1JPT1R9L3hkYzwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFwcGVuZF9lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnVzZURlZmF1bHRCdWlsZENtZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuYXV0bzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQuY29yZS5jbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZU5hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdOYXR1cmU8L25hdHVyZT4NCisJPC9uYXR1cmVzPg0KKzwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDllN2M0YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzCkBAIC0wLDAgKzEsNCBAQAorI1R1ZSBNYXIgMTcgMTA6MzI6MDIgUERUIDIwMDkNCitlY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQ0KK2luZGV4ZXIvaW5kZXhlcklkPW9yZy5lY2xpcHNlLmNkdC5jb3JlLmRvbXNvdXJjZWluZGV4ZXINCitpbmRleGVySWQ9b3JnLmVjbGlwc2UuY2R0LmNvcmUuZG9tc291cmNlaW5kZXhlcg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18wLy54ZGNlbnYubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwZDEwMTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18wLy54ZGNlbnYubWFrCkBAIC0wLDAgKzEsMTYgQEAKKyMKK19YRENCVUlMRENPVU5UID0gMAoraWZuZXEgKCwkKGZpbmRzdHJpbmcgcGF0aCwkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENQQVRIID0gCitvdmVycmlkZSBYRENST09UID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMKK292ZXJyaWRlIFhEQ0JVSUxEQ0ZHID0gLi4vLi4vLi4vY29uZmlnLmJsZAorZW5kaWYKK2lmbmVxICgsJChmaW5kc3RyaW5nIGFyZ3MsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDQVJHUyA9IAorb3ZlcnJpZGUgWERDVEFSR0VUUyA9IAorZW5kaWYKKyMKK2lmZXEgKDAsMSkKK1BLR1BBVEggPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMy9wYWNrYWdlczsuLi8uLi8uLgorSE9TVE9TID0gTGludXgKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18wL2hlbGxvLmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18wL2hlbGxvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWFmZWFmYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvaGVsbG8uYwpAQCAtMCwwICsxLDEwIEBACisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzdGVtLmg+CisKKy8qCisgKiAgPT09PT09PT0gbWFpbiA9PT09PT09PQorICovCitJbnQgbWFpbihJbnQgYXJnYywgU3RyaW5nIGFyZ3ZbXSkKK3sKKyAgICBTeXN0ZW1fcHJpbnRmKCJoZWxsbyB3b3JsZFxuIik7CisgICAgcmV0dXJuICgwKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvaGVsbG8uY2ZnIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMC9oZWxsby5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZlZWM2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvaGVsbG8uY2ZnCkBAIC0wLDAgKzEsMjMgQEAKK3ZhciBTeXN0ZW0gPSB4ZGMudXNlTW9kdWxlKCd4ZGMucnVudGltZS5TeXN0ZW0nKTsKKworaWYgKFByb2dyYW0uY3B1LmRldmljZU5hbWUubWF0Y2goL01TUDQzMC8pKSB7CisgICAgLyogU3lzVWFydCBvbmx5IHdvcmtzIG9uIE1TUDQzMCAqLworICAgIHZhciBTeXNVYXJ0ID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5TeXNVYXJ0Iik7CisgICAgU3lzdGVtLlN1cHBvcnRQcm94eSA9IFN5c1VhcnQ7CisgICAgUHJvZ3JhbS5oZWFwID0gMDsgICAgICAgICAgICAgICAvKiBkb24ndCBuZWVkIGhlYXAgZm9yIHRoaXMgYXBwICovCisgICAgUHJvZ3JhbS5zdGFjayA9IDB4MTAwOyAgICAgICAgICAvKiBkb24ndCBuZWVkIG11Y2ggc3RhY2sgZm9yIHRoaXMgYXBwICovCit9CisKKy8qIG1pbmltaXplIGZvb3RwcmludCBmb3IgcmVzb3VyY2UgY29uc3RyYWluZWQgdGFyZ2V0cyAqLworU3lzdGVtLm1heEF0ZXhpdEhhbmRsZXJzID0gMDsgICAvKiBzYXZlIDIwQiBSQU07IGRvbid0IG5lZWQgYXRleGl0KCkgKi8KK1Byb2dyYW0uYXJnU2l6ZSA9IDA7ICAgICAgICAgICAgLyogZG9uJ3QgbmVlZCBhcmMvYXJndiBzdXBwb3J0ICovCisKKy8qIHNldCBTVEFUSUNfUE9MSUNZLCBydW50aW1lIGNyZWF0aW9uIHN1cHBvcnQvb3ZlcmhlYWQgaXMgZWxpbWluYXRlZCAqLwordmFyIFR5cGVzID0geGRjLnVzZU1vZHVsZSgneGRjLnJ1bnRpbWUuVHlwZXMnKTsKK3ZhciBEZWZhdWx0cyA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkRlZmF1bHRzIik7CitEZWZhdWx0cy5jb21tb24kLm1lbW9yeVBvbGljeSA9IFR5cGVzLlNUQVRJQ19QT0xJQ1k7CitEZWZhdWx0cy5jb21tb24kLmZ4bnRhYiA9IGZhbHNlOworCisvKiB0aGUgZm9sbG93aW5nIHNhdmVzIGFsbW9zdCAxS0Igb2YgY29kZSAoc3RyaW5ncyBhcmUgZWxpbWluYXRlZCkgKi8KK3ZhciBUZXh0ID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuVGV4dCIpOworVGV4dC5pc0xvYWRlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMC9wYWNrYWdlLmJsZCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvcGFja2FnZS5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjJiYWZiZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvcGFja2FnZS5ibGQKQEAgLTAsMCArMSwxMCBAQAorZm9yICh2YXIgaSA9IDA7IGkgPCBCdWlsZC50YXJnZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIHRhcmcgPSBCdWlsZC50YXJnZXRzW2ldOworICAgIHZhciBleGUgPSBQa2cuYWRkRXhlY3V0YWJsZSgiaGVsbG8iLCB0YXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnLnBsYXRmb3JtLAorLy8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGkucGxhdGZvcm1zLmdlbmVyaWM6TVNQNDMwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZmlsZTogIndob2xlX3Byb2dyYW0iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgIGV4ZS5hZGRPYmplY3RzKFsiaGVsbG8uYyJdKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzAvcGFja2FnZS54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18wL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiNmZmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18wL3BhY2thZ2UueGRjCkBAIC0wLDAgKzEsNyBAQAorLyohCisgKiAgPT09PT09PT0gaGVsbG9fMCA9PT09PT09PQorICogIFN5c3RlbV9wcmludGYgYmFzZWQgImhlbGxvIHdvcmxkIgorICovCitwYWNrYWdlIGxvY2FsLmFwcHMuaGVsbG9fMAoreworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS8uY2R0cHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzEvLmNkdHByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFiMjg0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzEvLmNkdHByb2plY3QKQEAgLTAsMCArMSwyNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8P2VjbGlwc2UtY2R0IHZlcnNpb249IjIuMCI/Pg0KKw0KKzxjZHRwcm9qZWN0IGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2UiPg0KKzxleHRlbnNpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5iaW5hcnlwYXJzZXIuQ29mZlBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkJpbmFyeVBhcnNlciIvPg0KKzxkYXRhPg0KKzxpdGVtIGlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzwvaXRlbT4NCis8aXRlbSBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGF0aGVudHJ5Ij4NCis8cGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJvdXQiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkRJU0NPVkVSRURfU0NBTk5FUl9JTkZPIi8+DQorPC9pdGVtPg0KKzwvZGF0YT4NCis8L2NkdHByb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS8uY3Byb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18xLy5jcHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZTI0NDBmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS8uY3Byb2plY3QKQEAgLTAsMCArMSwzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQorPD9maWxlVmVyc2lvbiA0LjAuMD8+DQorDQorPGNwcm9qZWN0Pg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyI+DQorPGNjb25maWd1cmF0aW9uIGlkPSJjb252ZXJ0ZWQuY29uZmlnLjE2NjY4Mjk1MjAiPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGF0aGVudHJ5Ij4NCis8cGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJvdXQiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkRJU0NPVkVSRURfU0NBTk5FUl9JTkZPIi8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIGJ1aWxkU3lzdGVtSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmRlZmF1bHRDb25maWdEYXRhUHJvdmlkZXIiIGlkPSJjb252ZXJ0ZWQuY29uZmlnLjE2NjY4Mjk1MjAiIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyIgbmFtZT0iY29udmVydGVkQ29uZmlnIj4NCis8ZXh0ZXJuYWxTZXR0aW5ncy8+DQorPGV4dGVuc2lvbnM+DQorPGV4dGVuc2lvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJpbmFyeXBhcnNlci5Db2ZmUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuQmluYXJ5UGFyc2VyIi8+DQorPC9leHRlbnNpb25zPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Njb25maWd1cmF0aW9uPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Nwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzEvLnByb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18xLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjYmNlYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18xLy5wcm9qZWN0CkBAIC0wLDAgKzEsODUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+bG9jYWwuYXBwcy5oZWxsb18xPC9uYW1lPg0KKwk8Y29tbWVudD48L2NvbW1lbnQ+DQorCTxwcm9qZWN0cz4NCisJCTxwcm9qZWN0PmxvY2FsLnJ1bnRpbWU8L3Byb2plY3Q+DQorCQk8cHJvamVjdD50eG4ucGxhdGZvcm1zLmV6NDMwX3JmMjUwMDwvcHJvamVjdD4NCisJCTxwcm9qZWN0PnR4bi50YXJnZXRzPC9wcm9qZWN0Pg0KKwkJPHByb2plY3Q+dHhuLnRhcmdldHMucnRzNDMwPC9wcm9qZWN0Pg0KKwk8L3Byb2plY3RzPg0KKwk8YnVpbGRTcGVjPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2VCdWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQuYXJndW1lbnRzPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0LmNvcmUuZXJyb3JPdXRwdXRQYXJzZXI8L2tleT4NCisJCQkJCTx2YWx1ZT5jb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQ29mZkVycm9yUGFyc2VyO2NvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5Bc21FcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuTGlua0Vycm9yUGFyc2VyO29yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlcjs8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUF1dG9CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlRnVsbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmluYzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlZEluY3JlbWVudGFsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuY2xlYW48L2tleT4NCisJCQkJCTx2YWx1ZT5jbGVhbjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQuY29tbWFuZDwva2V5Pg0KKwkJCQkJPHZhbHVlPiR7WERDUk9PVH0veGRjPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVDbGVhbkJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUudXNlRGVmYXVsdEJ1aWxkQ21kPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5hdXRvPC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5zdG9wT25FcnJvcjwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuU2Nhbm5lckNvbmZpZ0J1aWxkZXI8L25hbWU+DQorCQkJPGFyZ3VtZW50cz4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwk8L2J1aWxkU3BlYz4NCisJPG5hdHVyZXM+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5jb3JlLmNuYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuU2Nhbm5lckNvbmZpZ05hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18xLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWU3YzRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKQEAgLTAsMCArMSw0IEBACisjVHVlIE1hciAxNyAxMDozMjowMiBQRFQgMjAwOQ0KK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQoraW5kZXhlci9pbmRleGVySWQ9b3JnLmVjbGlwc2UuY2R0LmNvcmUuZG9tc291cmNlaW5kZXhlcg0KK2luZGV4ZXJJZD1vcmcuZWNsaXBzZS5jZHQuY29yZS5kb21zb3VyY2VpbmRleGVyDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzEvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBkMTAxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzEvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAwCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSAKK292ZXJyaWRlIFhEQ1JPT1QgPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMworb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuLi8uLi8uLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzL3BhY2thZ2VzOy4uLy4uLy4uCitIT1NUT1MgPSBMaW51eAorZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzEvaGVsbG8uYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzEvaGVsbG8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYmE2NmQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS9oZWxsby5jCkBAIC0wLDAgKzEsMTIgQEAKKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Mb2cuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9EaWFncy5oPgorCisvKgorICogID09PT09PT09IG1haW4gPT09PT09PT0KKyAqLworSW50IG1haW4oSW50IGFyZ2MsIFN0cmluZyBhcmd2W10pCit7CisgICAgTG9nX3ByaW50MChEaWFnc19FTlRSWSwgImhlbGxvIHdvcmxkIik7CisgICAgCisgICAgcmV0dXJuICgwKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzEvaGVsbG8uY2ZnIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS9oZWxsby5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDgxNzRjYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzEvaGVsbG8uY2ZnCkBAIC0wLDAgKzEsMzYgQEAKKy8qIG1pbmltaXplIGZvb3RwcmludCBmb3IgTVNQNDMwIHRhcmdldHMgKi8KK2lmIChQcm9ncmFtLmNwdS5kZXZpY2VOYW1lLm1hdGNoKC9NU1A0MzAvKSkgeworICAgIC8qIHVzZSB0aGUgTG9nZ2VyVWFydCBJTG9nZ2VyIHNlcnZpY2UgcHJvdmlkZXIgKi8KKyAgICB2YXIgTG9nZ2VyID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5Mb2dnZXJVYXJ0Iik7CisKKyAgICBwcmludCgib3B0aW1pemluZyBmb290cHJpbnQgZm9yIHRoZSBNU1A0MzAgLi4uIik7CisgICAgUHJvZ3JhbS5hcmdTaXplID0gMDsgICAgLyogZG9uJ3QgbmVlZCBhcmMvYXJndiBzdXBwb3J0ICovCisgICAgUHJvZ3JhbS5zdGFjayA9IDB4MTAwOyAgLyogZG9uJ3QgbmVlZCBtdWNoIHN0YWNrIGZvciB0aGlzIGFwcCAqLworICAgIFByb2dyYW0uaGVhcCA9IDA7ICAgICAgIC8qIGRvbid0IG5lZWQgYSBoZWFwIGZyb20gdGhlIHJ1bnRpbWUgKi8KKworICAgIC8qIHVzZSBTeXNVYXJ0IHRvIGVsaW1pbmF0ZSBidWZmZXJzIHVzZWQgYnkgU3lzTWluL1N5c1N0ZCAqLworICAgIHZhciBTeXNVYXJ0ID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5TeXNVYXJ0Iik7CisgICAgdmFyIFN5c3RlbSA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLlN5c3RlbSIpOworICAgIFN5c3RlbS5TdXBwb3J0UHJveHkgPSBTeXNVYXJ0OworICAgIFN5c3RlbS5tYXhBdGV4aXRIYW5kbGVycyA9IDA7ICAgLyogc2F2ZSAyMEIgUkFNOyBkb24ndCBuZWVkIGF0ZXhpdCgpICovCisKKyAgICAvKiBzZXQgU1RBVElDX1BPTElDWSwgcnVudGltZSBjcmVhdGlvbiBzdXBwb3J0L292ZXJoZWFkIGlzIGVsaW1pbmF0ZWQgKi8KKyAgICB2YXIgVHlwZXMgPSB4ZGMudXNlTW9kdWxlKCd4ZGMucnVudGltZS5UeXBlcycpOworICAgIHZhciBEZWZhdWx0cyA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkRlZmF1bHRzIik7CisgICAgRGVmYXVsdHMuY29tbW9uJC5tZW1vcnlQb2xpY3kgPSBUeXBlcy5TVEFUSUNfUE9MSUNZOworICAgIERlZmF1bHRzLmNvbW1vbiQuZnhudGFiID0gZmFsc2U7CisKKyAgICAvKiB0aGUgZm9sbG93aW5nIHNhdmVzIGFsbW9zdCAxS0Igb2YgRkxBU0ggKHN0cmluZ3MgYXJlIGVsaW1pbmF0ZWQpICovCisgICAgdmFyIFRleHQgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5UZXh0Iik7CisgICAgVGV4dC5pc0xvYWRlZCA9IGZhbHNlOworfQorZWxzZSB7CisgICAgLyogdXNlIHRoZSBMb2dnZXJTeXMgSUxvZ2dlciBzZXJ2aWNlIHByb3ZpZGVyICovCisgICAgdmFyIExvZ2dlciA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkxvZ2dlclN5cyIpOworfQorCisvKiBjcmVhdGUgYW5kIGJpbmQgYSBsb2dnZXIgZm9yIGFsbCBub24tbW9kdWxlIGNvZGUgKi8KK3ZhciBNYWluID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuTWFpbiIpOwordmFyIERpYWdzID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRGlhZ3MiKTsKK01haW4uY29tbW9uJC5sb2dnZXIgPSBMb2dnZXIuY3JlYXRlKCk7CitNYWluLmNvbW1vbiQuZGlhZ3NfRU5UUlkgPSBEaWFncy5BTFdBWVNfT047CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18xL3BhY2thZ2UuYmxkIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTcxOTZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS9wYWNrYWdlLmJsZApAQCAtMCwwICsxLDcgQEAKK2ZvciAodmFyIGkgPSAwOyBpIDwgQnVpbGQudGFyZ2V0cy5sZW5ndGg7IGkrKykgeworICAgIHZhciB0YXJnID0gQnVpbGQudGFyZ2V0c1tpXTsKKyAgICB2YXIgZXhlID0gUGtnLmFkZEV4ZWN1dGFibGUoImhlbGxvIiwgdGFyZywgdGFyZy5wbGF0Zm9ybSwgeworICAgICAgICBwcm9maWxlOiAid2hvbGVfcHJvZ3JhbSIKKyAgICB9KTsKKyAgICBleGUuYWRkT2JqZWN0cyhbImhlbGxvLmMiXSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18xL3BhY2thZ2UueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS9wYWNrYWdlLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODQ4MGY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMS9wYWNrYWdlLnhkYwpAQCAtMCwwICsxLDcgQEAKKy8qIQorICogID09PT09PT09IGxvY2FsLmFwcHMuaGVsbG9fMSA9PT09PT09PQorICogIFNpbXBsZSAiaGVsbG8gd29ybGQiIGFwcCB0aGF0IHVzZXMgTG9nX3ByaW50ZgorICovCitwYWNrYWdlIGxvY2FsLmFwcHMuaGVsbG9fMQoreworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi8ubGF1bmNoZXMvbG9jYWwlMmVhcHBzJTJlaGVsbG8ubGF1bmNoIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi8ubGF1bmNoZXMvbG9jYWwlMmVhcHBzJTJlaGVsbG8ubGF1bmNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YjUwYzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18yLy5sYXVuY2hlcy9sb2NhbCUyZWFwcHMlMmVoZWxsby5sYXVuY2gKQEAgLTAsMCArMSwyMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8bGF1bmNoQ29uZmlndXJhdGlvbiB0eXBlPSJjb20udGkuY2NzdHVkaW8uZGVidWcuY29yZS5DQ0VMYXVuY2hUeXBlIj4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcuY29yZS5zb3VyY2VfbG9jYXRvcl9tZW1lbnRvIiB2YWx1ZT0iJmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7c291cmNlTG9va3VwRGlyZWN0b3ImZ3Q7JiMxMzsmIzEwOyZsdDtzb3VyY2VDb250YWluZXJzIGR1cGxpY2F0ZXM9JnF1b3Q7ZmFsc2UmcXVvdDsmZ3Q7JiMxMzsmIzEwOyZsdDtjb250YWluZXIgbWVtZW50bz0mcXVvdDsmYW1wO2x0Oz94bWwgdmVyc2lvbj0mYW1wO3F1b3Q7MS4wJmFtcDtxdW90OyBlbmNvZGluZz0mYW1wO3F1b3Q7VVRGLTgmYW1wO3F1b3Q7PyZhbXA7Z3Q7JmFtcDsjMTM7JmFtcDsjMTA7JmFtcDtsdDtkZWZhdWx0LyZhbXA7Z3Q7JmFtcDsjMTM7JmFtcDsjMTA7JnF1b3Q7IHR5cGVJZD0mcXVvdDtvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLmNvbnRhaW5lclR5cGUuZGVmYXVsdCZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDsvc291cmNlQ29udGFpbmVycyZndDsmIzEzOyYjMTA7Jmx0Oy9zb3VyY2VMb29rdXBEaXJlY3RvciZndDsmIzEzOyYjMTA7Ii8+DQorPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5BVFRSX0xBVU5DSF9JTl9CQUNLR1JPVU5EIiB2YWx1ZT0iZmFsc2UiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuY2R0LmxhdW5jaC5ERUJVR0dFUl9JRCIgdmFsdWU9ImNvbS50aS5jY3N0dWRpby5kZWJ1Zy5jb3JlLkNDRURlYnVnZ2VyIi8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9IkNDRURlYnVnT3B0aW9ucy5DUFVfUkVTT0xWRV9PUFRJT04iIHZhbHVlPSJleGFjdCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5ESVNQTEFZX05BTUUiIHZhbHVlPSJsb2NhbC5hcHBzLmhlbGxvIC0gVEkgTVNQNDMwIFVTQjEvTVNQNDMwIi8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmNkdC5sYXVuY2guREVCVUdHRVJfUkVHSVNURVJfR1JPVVBTIiB2YWx1ZT0iIi8+DQorPG1hcEF0dHJpYnV0ZSBrZXk9ImNvbS50aS5jY3N0dWRpby5kZWJ1Zy5jb3JlLlZBUklBQkxFX1NUQVRFIi8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmNkdC5sYXVuY2guREVCVUdHRVJfU1RBUlRfTU9ERSIgdmFsdWU9InJ1biIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJjb20udGkuY2NzdHVkaW8uZGVidWcuY29yZS5ESVNQTEFZX05BTUVfRk9STUFUIiB2YWx1ZT0ibG9jYWwuYXBwcy5oZWxsbyAtIHswfSIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5jZHQubGF1bmNoLk1FTU9SWV9CTE9DS1MiIHZhbHVlPSImbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90Oz8mZ3Q7JiMxMzsmIzEwOyZsdDttZW1vcnlCbG9ja0V4cHJlc3Npb25MaXN0LyZndDsmIzEzOyYjMTA7Ii8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmNkdC5sYXVuY2guUFJPSkVDVF9BVFRSIiB2YWx1ZT0ibG9jYWwuYXBwcy5oZWxsbyIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJDQ0VEZWJ1Z09wdGlvbnMuQ1BVX05BTUUiIHZhbHVlPSJUSSBNU1A0MzAgVVNCMS9NU1A0MzAiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0iY29tLnRpLmNjc3R1ZGlvLmRlYnVnLmNvcmUuTVJVX01PRFVMRVMiIHZhbHVlPSImbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90Oz8mZ3Q7JiMxMzsmIzEwOyZsdDttb2R1bGVzJmd0OyYjMTM7JiMxMDsmbHQ7bW9kdWxlIG5hbWU9JnF1b3Q7QzpcdXNlcnNcZHJcZWMyMDA5XHNyY1xsb2NhbFxhcHBzXGhlbGxvXGhlbGxvLng0MzAmcXVvdDsgdGltZT0mcXVvdDtUaHUgTWFyIDA1IDEwOjA2OjIxIFBTVCAyMDA5JnF1b3Q7IHRpbWVfbG9uZz0mcXVvdDsxMjM2Mjc2MzgxMDU1JnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0Oy9tb2R1bGVzJmd0OyYjMTM7JiMxMDsiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuY2R0LmxhdW5jaC5HTE9CQUxfVkFSSUFCTEVTIiB2YWx1ZT0iJmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7Z2xvYmFsVmFyaWFibGVMaXN0LyZndDsmIzEzOyYjMTA7Ii8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmNkdC5sYXVuY2guUFJPR1JBTV9OQU1FIiB2YWx1ZT0iaGVsbG8ueDQzMCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJDQ0VEZWJ1Z09wdGlvbnMuQ1BVX0lTQSIgdmFsdWU9Ik1TUDQzMCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLnNvdXJjZV9sb2NhdG9yX2lkIiB2YWx1ZT0iY29tLnRpLmNjc3R1ZGlvLmRlYnVnLmNvcmUuc291cmNlTG9jYXRvciIvPg0KKzwvbGF1bmNoQ29uZmlndXJhdGlvbj4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18yLy54ZGNlbnYubWFrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi8ueGRjZW52Lm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGQxMDEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi8ueGRjZW52Lm1hawpAQCAtMCwwICsxLDE2IEBACisjCitfWERDQlVJTERDT1VOVCA9IDAKK2lmbmVxICgsJChmaW5kc3RyaW5nIHBhdGgsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDUEFUSCA9IAorb3ZlcnJpZGUgWERDUk9PVCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzCitvdmVycmlkZSBYRENCVUlMRENGRyA9IC4uLy4uLy4uL2NvbmZpZy5ibGQKK2VuZGlmCitpZm5lcSAoLCQoZmluZHN0cmluZyBhcmdzLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ0FSR1MgPSAKK292ZXJyaWRlIFhEQ1RBUkdFVFMgPSAKK2VuZGlmCisjCitpZmVxICgwLDEpCitQS0dQQVRIID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMvcGFja2FnZXM7Li4vLi4vLi4KK0hPU1RPUyA9IExpbnV4CitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi9Nc2dzLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzIvTXNncy54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA3MWE2YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzIvTXNncy54ZGMKQEAgLTAsMCArMSwxOSBAQAoraW1wb3J0IHhkYy5ydW50aW1lLkRpYWdzOworaW1wb3J0IHhkYy5ydW50aW1lLkxvZzsKKworLyohCisgKiAgPT09PT09PT0gTXNncyA9PT09PT09PQorICogIFNpbXBsZSBMb2cgRXZlbnRzCisgKi8KKworbW9kdWxlIE1zZ3MgeworICAgIGNvbmZpZyBMb2cuRXZlbnQgSEVMTE8gPSB7CisgICAgICAgIG1hc2s6IERpYWdzLkVOVFJZLAorICAgICAgICBtc2c6ICJoZWxsbyB3b3JsZCIKKyAgICB9OworCisgICAgY29uZmlnIExvZy5FdmVudCBHT09EQllFID0geworICAgICAgICBtYXNrOiBEaWFncy5FTlRSWSwKKyAgICAgICAgbXNnOiAiZ29vZGJ5ZSBjcnVlbCB3b3JsZCwgc3RhdHVzOiAlZCIKKyAgICB9OworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi9oZWxsby5jIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi9oZWxsby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2OTZjNWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18yL2hlbGxvLmMKQEAgLTAsMCArMSwxNyBAQAorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0xvZy5oPgorCisjaW5jbHVkZSAiTXNncy5oIgorCisvKgorICogID09PT09PT09IG1haW4gPT09PT09PT0KKyAqLworSW50IG1haW4oSW50IGFyZ2MsIFN0cmluZyBhcmd2W10pCit7CisgICAgLyogc2F5IGhlbGxvICovCisgICAgTG9nX3dyaXRlMChNc2dzX0hFTExPKTsKKworICAgIC8qIGFuZCBnb29kYnllICovCisgICAgTG9nX3dyaXRlMShNc2dzX0dPT0RCWUUsIDApOworICAgIAorICAgIHJldHVybiAoMCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18yL2hlbGxvLmNmZyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvXzIvaGVsbG8uY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4NGZjNzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18yL2hlbGxvLmNmZwpAQCAtMCwwICsxLDM4IEBACit2YXIgTXNncyA9IHhkYy51c2VNb2R1bGUoImxvY2FsLmFwcHMuaGVsbG9fMi5Nc2dzIik7CisKKy8qIG1pbmltaXplIGZvb3RwcmludCBmb3IgTVNQNDMwIHRhcmdldHMgKi8KK2lmIChQcm9ncmFtLmNwdS5kZXZpY2VOYW1lLm1hdGNoKC9NU1A0MzAvKSkgeworICAgIC8qIHVzZSB0aGUgTG9nZ2VyVWFydCBJTG9nZ2VyIHNlcnZpY2UgcHJvdmlkZXIgKi8KKyAgICB2YXIgTG9nZ2VyID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5Mb2dnZXJVYXJ0Iik7CisKKyAgICBwcmludCgib3B0aW1pemluZyBmb290cHJpbnQgZm9yIHRoZSBNU1A0MzAgLi4uIik7CisgICAgUHJvZ3JhbS5hcmdTaXplID0gMDsgICAgLyogZG9uJ3QgbmVlZCBhcmMvYXJndiBzdXBwb3J0ICovCisgICAgUHJvZ3JhbS5zdGFjayA9IDB4MTAwOyAgLyogZG9uJ3QgbmVlZCBtdWNoIHN0YWNrIGZvciB0aGlzIGFwcCAqLworICAgIFByb2dyYW0uaGVhcCA9IDA7ICAgICAgIC8qIGRvbid0IG5lZWQgYSBoZWFwIGZyb20gdGhlIHJ1bnRpbWUgKi8KKworICAgIC8qIHVzZSBTeXNVYXJ0IHRvIGVsaW1pbmF0ZSBidWZmZXJzIHVzZWQgYnkgU3lzTWluL1N5c1N0ZCAqLworICAgIHZhciBTeXNVYXJ0ID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5TeXNVYXJ0Iik7CisgICAgdmFyIFN5c3RlbSA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLlN5c3RlbSIpOworICAgIFN5c3RlbS5TdXBwb3J0UHJveHkgPSBTeXNVYXJ0OworICAgIFN5c3RlbS5tYXhBdGV4aXRIYW5kbGVycyA9IDA7ICAgLyogc2F2ZSAyMEIgUkFNOyBkb24ndCBuZWVkIGF0ZXhpdCgpICovCisKKyAgICAvKiBzZXQgU1RBVElDX1BPTElDWSwgcnVudGltZSBjcmVhdGlvbiBzdXBwb3J0L292ZXJoZWFkIGlzIGVsaW1pbmF0ZWQgKi8KKyAgICB2YXIgVHlwZXMgPSB4ZGMudXNlTW9kdWxlKCd4ZGMucnVudGltZS5UeXBlcycpOworICAgIHZhciBEZWZhdWx0cyA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkRlZmF1bHRzIik7CisgICAgRGVmYXVsdHMuY29tbW9uJC5tZW1vcnlQb2xpY3kgPSBUeXBlcy5TVEFUSUNfUE9MSUNZOworICAgIERlZmF1bHRzLmNvbW1vbiQuZnhudGFiID0gZmFsc2U7CisKKyAgICAvKiB0aGUgZm9sbG93aW5nIHNhdmVzIGFsbW9zdCAxS0Igb2YgRkxBU0ggKHN0cmluZ3MgYXJlIGVsaW1pbmF0ZWQpICovCisgICAgdmFyIFRleHQgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5UZXh0Iik7CisgICAgVGV4dC5pc0xvYWRlZCA9IGZhbHNlOworfQorZWxzZSB7CisgICAgLyogdXNlIHRoZSBMb2dnZXJTeXMgSUxvZ2dlciBzZXJ2aWNlIHByb3ZpZGVyICovCisgICAgdmFyIExvZ2dlciA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkxvZ2dlclN5cyIpOworfQorCisvKiBjcmVhdGUgYW5kIGJpbmQgYSBsb2dnZXIgZm9yIGFsbCBub24tbW9kdWxlIGNvZGUgKi8KK3ZhciBNYWluID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuTWFpbiIpOwordmFyIERpYWdzID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRGlhZ3MiKTsKK01haW4uY29tbW9uJC5sb2dnZXIgPSBMb2dnZXIuY3JlYXRlKCk7CitNYWluLmNvbW1vbiQuZGlhZ3NfRU5UUlkgPSBEaWFncy5BTFdBWVNfT047CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18yL3BhY2thZ2UuYmxkIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTcxOTZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi9wYWNrYWdlLmJsZApAQCAtMCwwICsxLDcgQEAKK2ZvciAodmFyIGkgPSAwOyBpIDwgQnVpbGQudGFyZ2V0cy5sZW5ndGg7IGkrKykgeworICAgIHZhciB0YXJnID0gQnVpbGQudGFyZ2V0c1tpXTsKKyAgICB2YXIgZXhlID0gUGtnLmFkZEV4ZWN1dGFibGUoImhlbGxvIiwgdGFyZywgdGFyZy5wbGF0Zm9ybSwgeworICAgICAgICBwcm9maWxlOiAid2hvbGVfcHJvZ3JhbSIKKyAgICB9KTsKKyAgICBleGUuYWRkT2JqZWN0cyhbImhlbGxvLmMiXSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb18yL3BhY2thZ2UueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi9wYWNrYWdlLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGMxNWRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fMi9wYWNrYWdlLnhkYwpAQCAtMCwwICsxLDggQEAKKy8qIQorICogID09PT09PT09IGxvY2FsLmFwcHMuaGVsbG9fMiA9PT09PT09PQorICogIFNpbXBsZSAiaGVsbG8gd29ybGQiIGFwcCB0aGF0IHVzZXMgTG9nX3dyaXRlCisgKi8KK3BhY2thZ2UgbG9jYWwuYXBwcy5oZWxsb18yCit7CisgICAgbW9kdWxlIE1zZ3M7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb19rbnIvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb19rbnIvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBkMTAxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvX2tuci8ueGRjZW52Lm1hawpAQCAtMCwwICsxLDE2IEBACisjCitfWERDQlVJTERDT1VOVCA9IDAKK2lmbmVxICgsJChmaW5kc3RyaW5nIHBhdGgsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDUEFUSCA9IAorb3ZlcnJpZGUgWERDUk9PVCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzCitvdmVycmlkZSBYRENCVUlMRENGRyA9IC4uLy4uLy4uL2NvbmZpZy5ibGQKK2VuZGlmCitpZm5lcSAoLCQoZmluZHN0cmluZyBhcmdzLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ0FSR1MgPSAKK292ZXJyaWRlIFhEQ1RBUkdFVFMgPSAKK2VuZGlmCisjCitpZmVxICgwLDEpCitQS0dQQVRIID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMvcGFja2FnZXM7Li4vLi4vLi4KK0hPU1RPUyA9IExpbnV4CitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fa25yL2hlbGxvLmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb19rbnIvaGVsbG8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYzcxMjhjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fa25yL2hlbGxvLmMKQEAgLTAsMCArMSwxMCBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKy8qCisgKiAgPT09PT09PT0gbWFpbiA9PT09PT09PQorICovCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQoreworICAgIHByaW50ZigiaGVsbG8gd29ybGRcbiIpOworICAgIHJldHVybiAoMCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb19rbnIvaGVsbG8uY2ZnIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fa25yL2hlbGxvLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTI4ODE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fa25yL2hlbGxvLmNmZwpAQCAtMCwwICsxLDcgQEAKKy8qIG1pbmltaXplIGZvb3RwcmludCBmb3IgTVNQNDMwIHRhcmdldHMgKi8KK2lmIChQcm9ncmFtLmJ1aWxkLnRhcmdldC5pc2EubWF0Y2goLzQzMC8pKSB7CisgICAgcHJpbnQoIm9wdGltaXppbmcgZm9vdHByaW50IGZvciB0aGUgTVNQNDMwIC4uLiIpOworICAgIFByb2dyYW0uYXJnU2l6ZSA9IDA7ICAgIC8qIGRvbid0IG5lZWQgYXJjL2FyZ3Ygc3VwcG9ydCAqLworICAgIFByb2dyYW0uc3RhY2sgPSAweDE7ICAvKiBkb24ndCBuZWVkIG11Y2ggc3RhY2sgZm9yIHRoaXMgYXBwICovCisgICAgUHJvZ3JhbS5oZWFwID0gMDsgIC8qIGRvbid0IG5lZWQgbXVjaCBzdGFjayBmb3IgdGhpcyBhcHAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvX2tuci9wYWNrYWdlLmJsZCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL2hlbGxvX2tuci9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTdkYjk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fa25yL3BhY2thZ2UuYmxkCkBAIC0wLDAgKzEsOSBAQAorZm9yICh2YXIgaSA9IDA7IGkgPCBCdWlsZC50YXJnZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIHRhcmcgPSBCdWlsZC50YXJnZXRzW2ldOworICAgIHZhciBleGUgPSBQa2cuYWRkRXhlY3V0YWJsZSgiaGVsbG8iLCB0YXJnLHRhcmcucGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0c05hbWU6IG51bGwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9maWxlOiAid2hvbGVfcHJvZ3JhbSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgZXhlLmFkZE9iamVjdHMoWyJoZWxsby5jIl0pOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fa25yL3BhY2thZ2UueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvaGVsbG9fa25yL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiNWE4MzAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9oZWxsb19rbnIvcGFja2FnZS54ZGMKQEAgLTAsMCArMSw3IEBACisvKiEKKyAqICA9PT09PT09PSBoZWxsb19rbnIgPT09PT09PT0KKyAqICBLZXJuaWdoYW4gYW5kIFJpdGNoaWUgImhlbGxvIHdvcmxkIgorICovCitwYWNrYWdlIGxvY2FsLmFwcHMuaGVsbG9fa25yCit7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8uY2NzcHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwLy5jY3Nwcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzMTk0MWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8uY2NzcHJvamVjdApAQCAtMCwwICsxLDExIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/Y2NzcHJvamVjdCB2ZXJzaW9uPSIxLjAiPz4NCisNCis8cHJvamVjdE9wdGlvbnM+DQorPGRldmljZVZhcmlhbnQgdmFsdWU9Ik1TUDQzMEYyMjc0Ii8+DQorPGRldmljZUVuZGlhbm5lc3MgdmFsdWU9ImxpdHRsZSIvPg0KKzxjb2RlZ2VuVG9vbFZlcnNpb24gdmFsdWU9IjMuMS4wIi8+DQorPGxpbmtlckNvbW1hbmRGaWxlIHZhbHVlPSIiLz4NCis8cnRzIHZhbHVlPSJydHM0MzAubGliIi8+DQorPGRlZmF1bHRBc3NlbWJseU9ubHkgdmFsdWU9ImZhbHNlIi8+DQorPC9wcm9qZWN0T3B0aW9ucz4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8uY2R0YnVpbGQgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8uY2R0YnVpbGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU3MDQxMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwLy5jZHRidWlsZApAQCAtMCwwICsxLDcwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZmlsZVZlcnNpb24gMy4xLjA/Pg0KKw0KKzxNYW5hZ2VkUHJvamVjdEJ1aWxkSW5mbz4NCis8cHJvamVjdCBpZD0iYXBwLmNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMC5leGVjdXRhYmxlUHJvamVjdFR5cGUuMjAxOTc2NjA0MiIgbmFtZT0iTVNQNDMwIEV4ZWN1dGFibGUiIHByb2plY3RUeXBlPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzAuZXhlY3V0YWJsZVByb2plY3RUeXBlIj4NCis8Y29uZmlndXJhdGlvbiBhcnRpZmFjdEV4dGVuc2lvbj0ib3V0IiBhcnRpZmFjdE5hbWU9ImFwcCIgY2xlYW5Db21tYW5kPSIke0NDRV9JTlNUQUxMX1JPT1R9L3V0aWxzL0N5Z3dpbi9ybSAtcmYiIGRlc2NyaXB0aW9uPSIiIGVycm9yUGFyc2Vycz0iY29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkNvZmZFcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQXNtRXJyb3JQYXJzZXI7Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkxpbmtFcnJvclBhcnNlcjtvcmcuZWNsaXBzZS5jZHQuY29yZS5NYWtlRXJyb3JQYXJzZXIiIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzAuZXhlLmRlYnVnLjM1MDczNzMxMiIgbmFtZT0iRGVidWciIHBhcmVudD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwLmV4ZS5kZWJ1ZyI+DQorPHRvb2xDaGFpbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5leGUuRGVidWdUb29sY2hhaW4uMTY1MTc2MjEwNSIgbmFtZT0iVEkgQ29kZSBHZW5lcmF0aW9uIFRvb2xzIiBzdXBlckNsYXNzPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmV4ZS5EZWJ1Z1Rvb2xjaGFpbiIgdGFyZ2V0VG9vbD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5leGUubGlua2VyRGVidWcuMTM4OTg1MDM5MSI+DQorPG9wdGlvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuY29yZS5PUFRfQ09ERUdFTl9WRVJTSU9OLjQzNjQyNjMzMiIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuY29yZS5PUFRfQ09ERUdFTl9WRVJTSU9OIiB2YWx1ZT0iMy4xLjAiIHZhbHVlVHlwZT0ic3RyaW5nIi8+DQorPG9wdGlvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuY29yZS5PUFRfVEFHUy4yMDE1NzI2OTk0IiBzdXBlckNsYXNzPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5jb3JlLk9QVF9UQUdTIiB2YWx1ZVR5cGU9InN0cmluZ0xpc3QiPg0KKzxsaXN0T3B0aW9uVmFsdWUgYnVpbHRJbj0iZmFsc2UiIHZhbHVlPSJERVZJQ0VfQ09ORklHVVJBVElPTl9JRD1NU1A0MzBGMjI3NCIvPg0KKzxsaXN0T3B0aW9uVmFsdWUgYnVpbHRJbj0iZmFsc2UiIHZhbHVlPSJERVZJQ0VfRU5ESUFOTkVTUz1saXR0bGUiLz4NCis8bGlzdE9wdGlvblZhbHVlIGJ1aWx0SW49ImZhbHNlIiB2YWx1ZT0iTElOS0VSX0NPTU1BTkRfRklMRT0iLz4NCis8bGlzdE9wdGlvblZhbHVlIGJ1aWx0SW49ImZhbHNlIiB2YWx1ZT0iUlVOVElNRV9TVVBQT1JUX0xJQlJBUlk9cnRzNDMwLmxpYiIvPg0KKzxsaXN0T3B0aW9uVmFsdWUgYnVpbHRJbj0iZmFsc2UiIHZhbHVlPSJJU19BU1NFTUJMWV9PTkxZPWZhbHNlIi8+DQorPC9vcHRpb24+DQorPGJ1aWxkZXIgYXJndW1lbnRzPSIiIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmV4ZS5idWlsZGVyRGVidWcuMTAxODg1OTUzMiIgbmFtZT0iR05VIE1ha2UuRGVidWciIHN1cGVyQ2xhc3M9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEuZXhlLmJ1aWxkZXJEZWJ1ZyIvPg0KKzx0b29sIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmV4ZS5jb21waWxlckRlYnVnLjI5NTU3MjE2OSIgbmFtZT0iTVNQNDMwIENvbXBpbGVyIHYzLjEiIHN1cGVyQ2xhc3M9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEuZXhlLmNvbXBpbGVyRGVidWciPg0KKzxvcHRpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEuY29tcGlsZXJJRC5QUklOVEZfU1VQUE9SVC4xMTg0NTIzMDI5IiBzdXBlckNsYXNzPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmNvbXBpbGVySUQuUFJJTlRGX1NVUFBPUlQiIHZhbHVlPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmNvbXBpbGVySUQuUFJJTlRGX1NVUFBPUlQuZnVsbCIgdmFsdWVUeXBlPSJlbnVtZXJhdGVkIi8+DQorPG9wdGlvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5jb21waWxlcklELkNNRF9GSUxFLjc2ODM5NzE5OSIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5jb21waWxlcklELkNNRF9GSUxFIiB2YWx1ZVR5cGU9InN0cmluZ0xpc3QiPg0KKzxsaXN0T3B0aW9uVmFsdWUgYnVpbHRJbj0iZmFsc2UiIHZhbHVlPSImcXVvdDske3dvcmtzcGFjZV9sb2M6L2xvY2FsLmFwcHMucnRhY2ZnL2Fzc2VtYmx5L2NvbXBpbGVyLm9wdH0mcXVvdDsiLz4NCis8L29wdGlvbj4NCis8L3Rvb2w+DQorPHRvb2wgY29tbWFuZExpbmVQYXR0ZXJuPSIke2NvbW1hbmR9ICR7aW5wdXRzfSAmcXVvdDske3dvcmtzcGFjZV9sb2M6L2xvY2FsLmFwcHMucnRhY2ZnL2Fzc2VtYmx5L2xpbmtlci5jbWR9JnF1b3Q7ICR7ZmxhZ3N9ICR7b3V0cHV0X2ZsYWd9ICR7b3V0cHV0fSIgaWQ9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEuZXhlLmxpbmtlckRlYnVnLjEzODk4NTAzOTEiIG5hbWU9Ik1TUDQzMCBMaW5rZXIgdjMuMSIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5leGUubGlua2VyRGVidWciPg0KKzxvcHRpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEubGlua2VySUQuTElCUkFSWS4xNDY5Njc3MjAxIiBzdXBlckNsYXNzPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmxpbmtlcklELkxJQlJBUlkiIHZhbHVlVHlwZT0ic3RyaW5nTGlzdCI+DQorPGxpc3RPcHRpb25WYWx1ZSBidWlsdEluPSJmYWxzZSIgdmFsdWU9IiZxdW90O3J0czQzMC5saWImcXVvdDsiLz4NCis8L29wdGlvbj4NCis8b3B0aW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmxpbmtlcklELkhFQVBfU0laRS43MTQ2NDYzMDIiIHN1cGVyQ2xhc3M9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEubGlua2VySUQuSEVBUF9TSVpFIiB2YWx1ZT0iIiB2YWx1ZVR5cGU9InN0cmluZyIvPg0KKzxvcHRpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEubGlua2VySUQuU1RBQ0tfU0laRS42MjM1NjE1MDciIHN1cGVyQ2xhc3M9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEubGlua2VySUQuU1RBQ0tfU0laRSIgdmFsdWU9IiIgdmFsdWVUeXBlPSJzdHJpbmciLz4NCis8b3B0aW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmxpbmtlcklELlNFQVJDSF9QQVRILjMxMTkxODM1NyIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5saW5rZXJJRC5TRUFSQ0hfUEFUSCIgdmFsdWVUeXBlPSJzdHJpbmdMaXN0Ij4NCis8bGlzdE9wdGlvblZhbHVlIGJ1aWx0SW49ImZhbHNlIiB2YWx1ZT0iJnF1b3Q7JHtNU1A0MzBfQ0dfUk9PVH0vbGliJnF1b3Q7Ii8+DQorPC9vcHRpb24+DQorPG9wdGlvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5saW5rZXJJRC5NQVBfRklMRS4xNDc0NjExMjE3IiBzdXBlckNsYXNzPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmxpbmtlcklELk1BUF9GSUxFIiB2YWx1ZT0iJnF1b3Q7YXBwLm1hcCZxdW90OyIgdmFsdWVUeXBlPSJzdHJpbmciLz4NCis8b3B0aW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmxpbmtlcklELlJFUkVBRF9MSUJTLjE2MzE3ODQyMSIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5saW5rZXJJRC5SRVJFQURfTElCUyIgdmFsdWU9ImZhbHNlIiB2YWx1ZVR5cGU9ImJvb2xlYW4iLz4NCis8L3Rvb2w+DQorPG1hY3JvcyBleHBhbmRFbnZpcm9ubWVudE1hY3Jvcz0idHJ1ZSIvPg0KKzwvdG9vbENoYWluPg0KKzwvY29uZmlndXJhdGlvbj4NCis8Y29uZmlndXJhdGlvbiBhcnRpZmFjdEV4dGVuc2lvbj0ib3V0IiBhcnRpZmFjdE5hbWU9ImFwcCIgY2xlYW5Db21tYW5kPSIke0NDRV9JTlNUQUxMX1JPT1R9L3V0aWxzL0N5Z3dpbi9ybSAtcmYiIGRlc2NyaXB0aW9uPSIiIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzAuZXhlLlJlbGVhc2UuOTczNDQ2NzQ5IiBuYW1lPSJSZWxlYXNlIiBwYXJlbnQ9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMC5leGUuUmVsZWFzZSI+DQorPHRvb2xDaGFpbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5leGUuUmVsZWFzZVRvb2xjaGFpbi41ODM4NjAwNDEiIG5hbWU9IlRJIENvZGUgR2VuZXJhdGlvbiBUb29scyIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5leGUuUmVsZWFzZVRvb2xjaGFpbiIgdGFyZ2V0VG9vbD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5leGUubGlua2VyUmVsZWFzZS4xMjUwNjU1MDY4Ij4NCis8b3B0aW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5jb3JlLk9QVF9DT0RFR0VOX1ZFUlNJT04uNzgyODg4NzIzIiBzdXBlckNsYXNzPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5jb3JlLk9QVF9DT0RFR0VOX1ZFUlNJT04iIHZhbHVlPSIzLjEuMCIgdmFsdWVUeXBlPSJzdHJpbmciLz4NCis8b3B0aW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5jb3JlLk9QVF9UQUdTLjkxNTMzODAiIHN1cGVyQ2xhc3M9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLmNvcmUuT1BUX1RBR1MiIHZhbHVlVHlwZT0ic3RyaW5nTGlzdCI+DQorPGxpc3RPcHRpb25WYWx1ZSBidWlsdEluPSJmYWxzZSIgdmFsdWU9IkRFVklDRV9DT05GSUdVUkFUSU9OX0lEPU1TUDQzMEYyMjc0Ii8+DQorPGxpc3RPcHRpb25WYWx1ZSBidWlsdEluPSJmYWxzZSIgdmFsdWU9IkRFVklDRV9FTkRJQU5ORVNTPWxpdHRsZSIvPg0KKzxsaXN0T3B0aW9uVmFsdWUgYnVpbHRJbj0iZmFsc2UiIHZhbHVlPSJMSU5LRVJfQ09NTUFORF9GSUxFPSIvPg0KKzxsaXN0T3B0aW9uVmFsdWUgYnVpbHRJbj0iZmFsc2UiIHZhbHVlPSJSVU5USU1FX1NVUFBPUlRfTElCUkFSWT1ydHM0MzAubGliIi8+DQorPGxpc3RPcHRpb25WYWx1ZSBidWlsdEluPSJmYWxzZSIgdmFsdWU9IklTX0FTU0VNQkxZX09OTFk9ZmFsc2UiLz4NCis8L29wdGlvbj4NCis8dG9vbCBpZD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5leGUuY29tcGlsZXJSZWxlYXNlLjMxMDg2NTE2NCIgbmFtZT0iTVNQNDMwIENvbXBpbGVyIHYzLjEiIHN1cGVyQ2xhc3M9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEuZXhlLmNvbXBpbGVyUmVsZWFzZSI+DQorPG9wdGlvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5jb21waWxlcklELlBSSU5URl9TVVBQT1JULjg4NDczMjEwMiIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5jb21waWxlcklELlBSSU5URl9TVVBQT1JUIiB2YWx1ZT0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5jb21waWxlcklELlBSSU5URl9TVVBQT1JULl9ub25lIiB2YWx1ZVR5cGU9ImVudW1lcmF0ZWQiLz4NCis8b3B0aW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmNvbXBpbGVySUQuT1BUX0xFVkVMLnJlbGVhc2UuMjEwMjc5OTU1OSIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5jb21waWxlcklELk9QVF9MRVZFTC5yZWxlYXNlIiB2YWx1ZT0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5jb21waWxlcklELk9QVF9MRVZFTC4zIiB2YWx1ZVR5cGU9ImVudW1lcmF0ZWQiLz4NCis8b3B0aW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmNvbXBpbGVySUQuQ01EX0ZJTEUuMTI2OTIyMTMzMiIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5jb21waWxlcklELkNNRF9GSUxFIiB2YWx1ZVR5cGU9InN0cmluZ0xpc3QiPg0KKzxsaXN0T3B0aW9uVmFsdWUgYnVpbHRJbj0iZmFsc2UiIHZhbHVlPSImcXVvdDske3dvcmtzcGFjZV9sb2M6L2xvY2FsLmFwcHMucnRhY2ZnL2Fzc2VtYmx5L2NvbXBpbGVyLm9wdH0mcXVvdDsiLz4NCis8L29wdGlvbj4NCis8L3Rvb2w+DQorPHRvb2wgY29tbWFuZExpbmVQYXR0ZXJuPSIke2NvbW1hbmR9ICR7aW5wdXRzfSAmcXVvdDske3dvcmtzcGFjZV9sb2M6L2xvY2FsLmFwcHMucnRhY2ZnL2Fzc2VtYmx5L2xpbmtlci5jbWR9JnF1b3Q7ICR7ZmxhZ3N9ICR7b3V0cHV0X2ZsYWd9ICR7b3V0cHV0fSIgaWQ9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEuZXhlLmxpbmtlclJlbGVhc2UuMTI1MDY1NTA2OCIgbmFtZT0iTVNQNDMwIExpbmtlciB2My4xIiBzdXBlckNsYXNzPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmV4ZS5saW5rZXJSZWxlYXNlIj4NCis8b3B0aW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmxpbmtlcklELkxJQlJBUlkuMTEyMTk3Mjg3MiIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5saW5rZXJJRC5MSUJSQVJZIiB2YWx1ZVR5cGU9InN0cmluZ0xpc3QiPg0KKzxsaXN0T3B0aW9uVmFsdWUgYnVpbHRJbj0iZmFsc2UiIHZhbHVlPSImcXVvdDtydHM0MzAubGliJnF1b3Q7Ii8+DQorPC9vcHRpb24+DQorPG9wdGlvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5saW5rZXJJRC5IRUFQX1NJWkUuMTk2NTE4NjQ2IiBzdXBlckNsYXNzPSJjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzBfMy4xLmxpbmtlcklELkhFQVBfU0laRSIgdmFsdWU9IjAiIHZhbHVlVHlwZT0ic3RyaW5nIi8+DQorPG9wdGlvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5saW5rZXJJRC5TVEFDS19TSVpFLjUzNDkxNDM5OCIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5saW5rZXJJRC5TVEFDS19TSVpFIiB2YWx1ZT0iMjU2IiB2YWx1ZVR5cGU9InN0cmluZyIvPg0KKzxvcHRpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMF8zLjEubGlua2VySUQuQVJHX1NJWkUuMTAyNTEzNzg0MyIgc3VwZXJDbGFzcz0iY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwXzMuMS5saW5rZXJJRC5BUkdfU0laRSIgdmFsdWU9IjAiIHZhbHVlVHlwZT0ic3RyaW5nIi8+DQorPC90b29sPg0KKzxtYWNyb3MgZXhwYW5kRW52aXJvbm1lbnRNYWNyb3M9InRydWUiLz4NCis8L3Rvb2xDaGFpbj4NCis8L2NvbmZpZ3VyYXRpb24+DQorPG1hY3Jvcz4NCis8c3RyaW5nTWFjcm8gbmFtZT0iUlRTQ19DRkciIHR5cGU9IlZBTFVFX1BBVEhfRElSIiB2YWx1ZT0iJHtQcm9qRGlyUGF0aH0vLi4vcnRhY2ZnIi8+DQorPC9tYWNyb3M+DQorPC9wcm9qZWN0Pg0KKzwvTWFuYWdlZFByb2plY3RCdWlsZEluZm8+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvLmNkdHByb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8uY2R0cHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjM1NGM2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvLmNkdHByb2plY3QKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8P2VjbGlwc2UtY2R0IHZlcnNpb249IjIuMCI/Pg0KKw0KKzxjZHRwcm9qZWN0IGlkPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5tYW5hZ2VkTWFrZSI+DQorPGV4dGVuc2lvbiBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuTWFuYWdlZEJ1aWxkTWFuYWdlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLlNjYW5uZXJJbmZvUHJvdmlkZXIiLz4NCis8ZXh0ZW5zaW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYmluYXJ5cGFyc2VyLkNvZmZQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5CaW5hcnlQYXJzZXIiLz4NCis8ZGF0YT4NCis8aXRlbSBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGF0aGVudHJ5Ij4NCis8cGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJvdXQiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuTUFOQUdFRF9DT05UQUlORVIiLz4NCis8L2l0ZW0+DQorPC9kYXRhPg0KKzwvY2R0cHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8ubGF1bmNoZXMvbG9jYWwlMmVhcHBzJTJlYXBwLmxhdW5jaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwLy5sYXVuY2hlcy9sb2NhbCUyZWFwcHMlMmVhcHAubGF1bmNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0ODY0MTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8ubGF1bmNoZXMvbG9jYWwlMmVhcHBzJTJlYXBwLmxhdW5jaApAQCAtMCwwICsxLDI1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxsYXVuY2hDb25maWd1cmF0aW9uIHR5cGU9ImNvbS50aS5jY3N0dWRpby5kZWJ1Zy5jb3JlLkNDRUxhdW5jaFR5cGUiPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJDQ0VEZWJ1Z09wdGlvbnMuREVWSUNFX0NPTkZJR1VSQVRJT05fRklMRSIgdmFsdWU9IkRlYnVnU2VydmVyL2RyaXZlcnMvVGFyZ2V0REIvZGV2aWNlcy9NU1A0MzBGMjI3NC54bWwiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcuY29yZS5zb3VyY2VfbG9jYXRvcl9tZW1lbnRvIiB2YWx1ZT0iJmx0Oz94bWwgdmVyc2lvbj0mcXVvdDsxLjAmcXVvdDsgZW5jb2Rpbmc9JnF1b3Q7VVRGLTgmcXVvdDs/Jmd0OyYjMTM7JiMxMDsmbHQ7c291cmNlTG9va3VwRGlyZWN0b3ImZ3Q7JiMxMzsmIzEwOyZsdDtzb3VyY2VDb250YWluZXJzIGR1cGxpY2F0ZXM9JnF1b3Q7ZmFsc2UmcXVvdDsmZ3Q7JiMxMzsmIzEwOyZsdDtjb250YWluZXIgbWVtZW50bz0mcXVvdDsmYW1wO2x0Oz94bWwgdmVyc2lvbj0mYW1wO3F1b3Q7MS4wJmFtcDtxdW90OyBlbmNvZGluZz0mYW1wO3F1b3Q7VVRGLTgmYW1wO3F1b3Q7PyZhbXA7Z3Q7JmFtcDsjMTM7JmFtcDsjMTA7JmFtcDtsdDtkZWZhdWx0LyZhbXA7Z3Q7JmFtcDsjMTM7JmFtcDsjMTA7JnF1b3Q7IHR5cGVJZD0mcXVvdDtvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLmNvbnRhaW5lclR5cGUuZGVmYXVsdCZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDsvc291cmNlQ29udGFpbmVycyZndDsmIzEzOyYjMTA7Jmx0Oy9zb3VyY2VMb29rdXBEaXJlY3RvciZndDsmIzEzOyYjMTA7Ii8+DQorPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5BVFRSX0xBVU5DSF9JTl9CQUNLR1JPVU5EIiB2YWx1ZT0iZmFsc2UiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuY2R0LmxhdW5jaC5ERUJVR0dFUl9JRCIgdmFsdWU9ImNvbS50aS5jY3N0dWRpby5kZWJ1Zy5jb3JlLkNDRURlYnVnZ2VyIi8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9IkNDRURlYnVnT3B0aW9ucy5DUFVfUkVTT0xWRV9PUFRJT04iIHZhbHVlPSJleGFjdCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy51aS5ESVNQTEFZX05BTUUiIHZhbHVlPSJsb2NhbC5hcHBzLmFwcCBbUmVsZWFzZV0gLSBUSSBNU1A0MzAgVVNCMS9NU1A0MzAiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuY2R0LmxhdW5jaC5ERUJVR0dFUl9SRUdJU1RFUl9HUk9VUFMiIHZhbHVlPSIiLz4NCis8bWFwQXR0cmlidXRlIGtleT0iY29tLnRpLmNjc3R1ZGlvLmRlYnVnLmNvcmUuVkFSSUFCTEVfU1RBVEUiLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuY2R0LmxhdW5jaC5ERUJVR0dFUl9TVEFSVF9NT0RFIiB2YWx1ZT0icnVuIi8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9ImNvbS50aS5jY3N0dWRpby5kZWJ1Zy5jb3JlLkRJU1BMQVlfTkFNRV9GT1JNQVQiIHZhbHVlPSJsb2NhbC5hcHBzLmFwcCBbUmVsZWFzZV0gLSB7MH0iLz4NCis8c3RyaW5nQXR0cmlidXRlIGtleT0iQ0NFRGVidWdPcHRpb25zLlRBUkdFVF9DT05GSUdVUkFUSU9OX09QVElPTiIgdmFsdWU9ImNvbXBvbmVudCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5jZHQubGF1bmNoLk1FTU9SWV9CTE9DS1MiIHZhbHVlPSImbHQ7P3htbCB2ZXJzaW9uPSZxdW90OzEuMCZxdW90OyBlbmNvZGluZz0mcXVvdDtVVEYtOCZxdW90Oz8mZ3Q7JiMxMzsmIzEwOyZsdDttZW1vcnlCbG9ja0V4cHJlc3Npb25MaXN0Jmd0OyYjMTM7JiMxMDsmbHQ7ZXhwcmVzc2lvbiB0ZXh0PSZxdW90Ozg3OCZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDsvbWVtb3J5QmxvY2tFeHByZXNzaW9uTGlzdCZndDsmIzEzOyYjMTA7Ii8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9IkNDRURlYnVnT3B0aW9ucy5DT05ORUNUSU9OX0NPTkZJR1VSQVRJT05fRklMRSIgdmFsdWU9IkRlYnVnU2VydmVyL2RyaXZlcnMvVGFyZ2V0REIvY29ubmVjdGlvbnMvVElNU1A0MzAtVVNCLnhtbCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5jZHQubGF1bmNoLlBST0pFQ1RfQVRUUiIgdmFsdWU9ImxvY2FsLmFwcHMuYXBwIi8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9IkNDRURlYnVnT3B0aW9ucy5DUFVfTkFNRSIgdmFsdWU9IlRJIE1TUDQzMCBVU0IxL01TUDQzMCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJjb20udGkuY2NzdHVkaW8uZGVidWcuY29yZS5NUlVfTU9EVUxFUyIgdmFsdWU9IiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O21vZHVsZXMmZ3Q7JiMxMzsmIzEwOyZsdDttb2R1bGUgbmFtZT0mcXVvdDtDOlx1c2Vyc1xkclxlYzIwMDlcc3JjXGxvY2FsXGFwcHNcYXBwXERlYnVnXGFwcC5vdXQmcXVvdDsgdGltZT0mcXVvdDtUaHUgRmViIDEyIDA4OjI3OjM4IFBTVCAyMDA5JnF1b3Q7IHRpbWVfbG9uZz0mcXVvdDsxMjM0NDU2MDU4OTc5JnF1b3Q7LyZndDsmIzEzOyYjMTA7Jmx0O21vZHVsZSBuYW1lPSZxdW90O0M6XHVzZXJzXGRyXGVjMjAwOVxzcmNcbG9jYWxcYXBwc1xhcHBcUmVsZWFzZVxhcHAub3V0JnF1b3Q7IHRpbWU9JnF1b3Q7VGh1IEZlYiAxMiAwOTowODozMCBQU1QgMjAwOSZxdW90OyB0aW1lX2xvbmc9JnF1b3Q7MTIzNDQ1ODUxMDUwOSZxdW90Oy8mZ3Q7JiMxMzsmIzEwOyZsdDsvbW9kdWxlcyZndDsmIzEzOyYjMTA7Ii8+DQorPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmNkdC5sYXVuY2guR0xPQkFMX1ZBUklBQkxFUyIgdmFsdWU9IiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O2dsb2JhbFZhcmlhYmxlTGlzdC8mZ3Q7JiMxMzsmIzEwOyIvPg0KKzxib29sZWFuQXR0cmlidXRlIGtleT0iQ0NFRGVidWdPcHRpb25zLkZPUkJJRF9ERVZJQ0VfTU9ESUZJQ0FUSU9OIiB2YWx1ZT0idHJ1ZSIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJDQ0VEZWJ1Z09wdGlvbnMuQ1BVX0lTQSIgdmFsdWU9Ik1TUDQzMCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5jZHQubGF1bmNoLlBST0dSQU1fTkFNRSIgdmFsdWU9IlJlbGVhc2UvYXBwLm91dCIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJjb20udGkuY2NzdHVkaW8uZGVidWcuY29yZS5CVUlMRF9DT05GSUdVUkFUSU9OIiB2YWx1ZT0iUmVsZWFzZSIvPg0KKzxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLnNvdXJjZV9sb2NhdG9yX2lkIiB2YWx1ZT0iY29tLnRpLmNjc3R1ZGlvLmRlYnVnLmNvcmUuc291cmNlTG9jYXRvciIvPg0KKzwvbGF1bmNoQ29uZmlndXJhdGlvbj4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8ucHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY4MDlkMzYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8ucHJvamVjdApAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPmxvY2FsLmFwcHMuYXBwPC9uYW1lPg0KKwk8Y29tbWVudD48L2NvbW1lbnQ+DQorCTxwcm9qZWN0cz4NCisJCTxwcm9qZWN0PmxvY2FsLmFwcHMuaGVsbG88L3Byb2plY3Q+DQorCQk8cHJvamVjdD5sb2NhbC5hcHBzLnJ0YWNmZzwvcHJvamVjdD4NCisJCTxwcm9qZWN0PmxvY2FsLnJ1bnRpbWUuZXh0ZW5zaW9uczwvcHJvamVjdD4NCisJCTxwcm9qZWN0PnRpLnBsYXRmb3Jtcy5lejQzMF9yZjI1MDA8L3Byb2plY3Q+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLmdlbm1ha2VidWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQuY29yZS5jbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLm1hbmFnZWRCdWlsZE5hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljZjc4YzUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKQEAgLTAsMCArMSwzIEBACisjVHVlIEphbiAyMCAxMjo0MDowNCBQU1QgMjAwOQorZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKK2luZGV4ZXJJZD1vcmcuZWNsaXBzZS5jZHQuY29yZS5kb21zb3VyY2VpbmRleGVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUucHJlZnMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzViMmZmYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQubWFuYWdlZGJ1aWxkZXIuY29yZS5wcmVmcwpAQCAtMCwwICsxLDkgQEAKKyNUaHUgRmViIDEyIDA4OjQxOjE3IFBTVCAyMDA5Citjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzAuZXhlLlJlbGVhc2UuOTczNDQ2NzQ5L2ludGVybmFsQnVpbGRlci9lbmFibGVkPWZhbHNlCitjb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzAuZXhlLlJlbGVhc2UuOTczNDQ2NzQ5L2ludGVybmFsQnVpbGRlci9pZ25vcmVFcnI9dHJ1ZQorY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwLmV4ZS5kZWJ1Zy4zNTA3MzczMTIvaW50ZXJuYWxCdWlsZGVyL2VuYWJsZWQ9ZmFsc2UKK2NvbS50aS5jY3N0dWRpby5idWlsZERlZmluaXRpb25zLk1TUDQzMC5leGUuZGVidWcuMzUwNzM3MzEyL2ludGVybmFsQnVpbGRlci9pZ25vcmVFcnI9dHJ1ZQorZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKK2Vudmlyb25tZW50L3Byb2plY3Q9PD94bWwgdmVyc2lvblw9IjEuMCIgZW5jb2RpbmdcPSJVVEYtOCI/PlxyXG48ZW52aXJvbm1lbnQvPlxyXG4KK2Vudmlyb25tZW50L3Byb2plY3QvY29tLnRpLmNjc3R1ZGlvLmJ1aWxkRGVmaW5pdGlvbnMuTVNQNDMwLmV4ZS5SZWxlYXNlLjk3MzQ0Njc0OT08P3htbCB2ZXJzaW9uXD0iMS4wIiBlbmNvZGluZ1w9IlVURi04Ij8+XHJcbjxlbnZpcm9ubWVudC8+XHJcbgorZW52aXJvbm1lbnQvcHJvamVjdC9jb20udGkuY2NzdHVkaW8uYnVpbGREZWZpbml0aW9ucy5NU1A0MzAuZXhlLmRlYnVnLjM1MDczNzMxMj08P3htbCB2ZXJzaW9uXD0iMS4wIiBlbmNvZGluZ1w9IlVURi04Ij8+XHJcbjxlbnZpcm9ubWVudC8+XHJcbgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmx0ay5jb3JlLnJlZmFjdG9yaW5nLnByZWZzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmx0ay5jb3JlLnJlZmFjdG9yaW5nLnByZWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyYjhjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UubHRrLmNvcmUucmVmYWN0b3JpbmcucHJlZnMKQEAgLTAsMCArMSwzIEBACisjRnJpIEphbiAzMCAxNzoyOTowNSBQU1QgMjAwOQorZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKK29yZy5lY2xpcHNlLmx0ay5jb3JlLnJlZmFjdG9yaW5nLmVuYWJsZS5wcm9qZWN0LnJlZmFjdG9yaW5nLmhpc3Rvcnk9ZmFsc2UKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwL0RlYnVnL21ha2VmaWxlIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvRGVidWcvbWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY4OTQ3NwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwL0RlYnVnL21ha2VmaWxlCkBAIC0wLDAgKzEsMTEzIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgQXV0b21hdGljYWxseS1nZW5lcmF0ZWQgZmlsZS4gRG8gbm90IGVkaXQhDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisNCitFTVBUWSA6PSANCitTUEFDRSA6PSAkKEVNUFRZKSAkKEVNUFRZKQ0KKw0KKy1pbmNsdWRlIC4uL21ha2VmaWxlLmluaXQNCisNCitSTSA6PSBDOi9Qcm9ncmFtIEZpbGVzL1RleGFzIEluc3RydW1lbnRzL0NDIEVzc2VudGlhbHMgdjMuMS8vdXRpbHMvQ3lnd2luL3JtIC1yZg0KKw0KKyMgQWxsIG9mIHRoZSBzb3VyY2VzIHBhcnRpY2lwYXRpbmcgaW4gdGhlIGJ1aWxkIGFyZSBkZWZpbmVkIGhlcmUNCistaW5jbHVkZSBzb3VyY2VzLm1rDQorLWluY2x1ZGUgc3ViZGlyLm1rDQorLWluY2x1ZGUgb2JqZWN0cy5taw0KKw0KK2lmbmVxICgkKE1BS0VDTURHT0FMUyksY2xlYW4pDQoraWZuZXEgKCQoc3RyaXAgJChTNjJfREVQUykpLCkNCistaW5jbHVkZSAkKFM2Ml9ERVBTKQ0KK2VuZGlmDQoraWZuZXEgKCQoc3RyaXAgJChBU01fREVQUykpLCkNCistaW5jbHVkZSAkKEFTTV9ERVBTKQ0KK2VuZGlmDQoraWZuZXEgKCQoc3RyaXAgJChDNTVfREVQUykpLCkNCistaW5jbHVkZSAkKEM1NV9ERVBTKQ0KK2VuZGlmDQoraWZuZXEgKCQoc3RyaXAgJChTX1VQUEVSX0RFUFMpKSwpDQorLWluY2x1ZGUgJChTX1VQUEVSX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKEMrK19ERVBTKSksKQ0KKy1pbmNsdWRlICQoQysrX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKFNfREVQUykpLCkNCistaW5jbHVkZSAkKFNfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQ0NfREVQUykpLCkNCistaW5jbHVkZSAkKENDX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKEM2NF9ERVBTKSksKQ0KKy1pbmNsdWRlICQoQzY0X0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKENQUF9ERVBTKSksKQ0KKy1pbmNsdWRlICQoQ1BQX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKFM2NF9ERVBTKSksKQ0KKy1pbmNsdWRlICQoUzY0X0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKENYWF9ERVBTKSksKQ0KKy1pbmNsdWRlICQoQ1hYX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKEM2N19ERVBTKSksKQ0KKy1pbmNsdWRlICQoQzY3X0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKFM2N19ERVBTKSksKQ0KKy1pbmNsdWRlICQoUzY3X0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKFM0M19ERVBTKSksKQ0KKy1pbmNsdWRlICQoUzQzX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKEM2Ml9ERVBTKSksKQ0KKy1pbmNsdWRlICQoQzYyX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKEM0M19ERVBTKSksKQ0KKy1pbmNsdWRlICQoQzQzX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKEM/P19ERVBTKSksKQ0KKy1pbmNsdWRlICQoQz8/X0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKEFTTV9VUFBFUl9ERVBTKSksKQ0KKy1pbmNsdWRlICQoQVNNX1VQUEVSX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKE9QVF9ERVBTKSksKQ0KKy1pbmNsdWRlICQoT1BUX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKFM/P19ERVBTKSksKQ0KKy1pbmNsdWRlICQoUz8/X0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKFM1NV9ERVBTKSksKQ0KKy1pbmNsdWRlICQoUzU1X0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKENfREVQUykpLCkNCistaW5jbHVkZSAkKENfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQ19VUFBFUl9ERVBTKSksKQ0KKy1pbmNsdWRlICQoQ19VUFBFUl9ERVBTKQ0KK2VuZGlmDQorZW5kaWYNCisNCistaW5jbHVkZSAuLi9tYWtlZmlsZS5kZWZzDQorDQorIyBBZGQgaW5wdXRzIGFuZCBvdXRwdXRzIGZyb20gdGhlc2UgdG9vbCBpbnZvY2F0aW9ucyB0byB0aGUgYnVpbGQgdmFyaWFibGVzIA0KKw0KKyMgQWxsIFRhcmdldA0KK2FsbDogYXBwLm91dA0KKw0KKw0KKyMgVG9vbCBpbnZvY2F0aW9ucw0KK2FwcC5vdXQ6ICQoR0VOX0NNRFMpICQoT0JKUykNCisJQGVjaG8gJ0J1aWxkaW5nIHRhcmdldDogJEAnDQorCUBlY2hvICdJbnZva2luZzogTVNQNDMwIExpbmtlciB2My4xJw0KKwkiQzovUHJvZ3JhbSBGaWxlcy9UZXhhcyBJbnN0cnVtZW50cy9DQyBFc3NlbnRpYWxzIHYzLjEvdG9vbHMvY29tcGlsZXIvTVNQNDMwL2Jpbi9jbDQzMCIgLXogJChPQkpTX1FVT1RFRCkgIiIgLS13YXJuX3NlY3Rpb25zIC0tc2VhcmNoX3BhdGg9IkM6L1Byb2dyYW0gRmlsZXMvVGV4YXMgSW5zdHJ1bWVudHMvQ0MgRXNzZW50aWFscyB2My4xL3Rvb2xzL2NvbXBpbGVyL01TUDQzMC9saWIiICQoR0VOX0NNRFNfUVVPVEVEKSAtLWxpYnJhcnk9InJ0czQzMC5saWIiIC0tbWFwX2ZpbGU9ImFwcC5tYXAiIC0tcm9tX21vZGVsIC1vICJhcHAub3V0Ig0KKwlAZWNobyAnRmluaXNoZWQgYnVpbGRpbmcgdGFyZ2V0OiAkQCcNCisJQGVjaG8gJyAnDQorDQorIyBPdGhlciBUYXJnZXRzDQorY2xlYW46DQorCS0kKFJNKSAkKFM2Ml9ERVBTKSQoQVNNX0RFUFMpJChDNTVfREVQUykkKFNfVVBQRVJfREVQUykkKFNfREVQUykkKENQUF9ERVBTKSQoQzY0X0RFUFMpJChDNDNfREVQUykkKEM2Ml9ERVBTKSQoT0JKUykkKEM/P19ERVBTKSQoUz8/X0RFUFMpJChTNTVfREVQUykkKENfREVQUykkKENfVVBQRVJfREVQUykkKE1TUDQzMF9FWEVDVVRBQkxFX09VVFBVVFMpJChDKytfREVQUykkKENDX0RFUFMpJChTNjRfREVQUykkKENYWF9ERVBTKSQoUzQzX0RFUFMpJChTNjdfREVQUykkKEM2N19ERVBTKSQoQVNNX1VQUEVSX0RFUFMpJChPUFRfREVQUykgYXBwLm91dA0KKwktQGVjaG8gJyAnDQorDQorLlBIT05ZOiBhbGwgY2xlYW4gZGVwZW5kZW50cw0KKy5TRUNPTkRBUlk6DQorDQorLWluY2x1ZGUgLi4vbWFrZWZpbGUudGFyZ2V0cw0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwL0RlYnVnL29iamVjdHMubWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9EZWJ1Zy9vYmplY3RzLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZjUxMDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9EZWJ1Zy9vYmplY3RzLm1rCkBAIC0wLDAgKzEsNyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjIEF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBlZGl0IQ0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorTElCUyA6PQ0KKw0KK1VTRVJfT0JKUyA6PQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwL0RlYnVnL3NvdXJjZXMubWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9EZWJ1Zy9zb3VyY2VzLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwYzYyZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9EZWJ1Zy9zb3VyY2VzLm1rCkBAIC0wLDAgKzEsNjAgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBBdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCBmaWxlLiBEbyBub3QgZWRpdCENCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK0M2N19TUkNTIDo9IA0KK1NfVVBQRVJfU1JDUyA6PSANCitPQkpfU1JDUyA6PSANCitDNTVfU1JDUyA6PSANCitDX1NSQ1MgOj0gDQorQ1BQX1NSQ1MgOj0gDQorT19TUkNTIDo9IA0KK0FTTV9TUkNTIDo9IA0KK0NYWF9TUkNTIDo9IA0KK0FTTV9VUFBFUl9TUkNTIDo9IA0KK09QVF9TUkNTIDo9IA0KK0M0M19TUkNTIDo9IA0KK0M2NF9TUkNTIDo9IA0KK1M2Ml9TUkNTIDo9IA0KK1M1NV9TUkNTIDo9IA0KK0NNRF9TUkNTIDo9IA0KK1M2N19TUkNTIDo9IA0KK0MrK19TUkNTIDo9IA0KK1M2NF9TUkNTIDo9IA0KK0NfVVBQRVJfU1JDUyA6PSANCitTPz9fU1JDUyA6PSANCitTNDNfU1JDUyA6PSANCitDNjJfU1JDUyA6PSANCitTX1NSQ1MgOj0gDQorQz8/X1NSQ1MgOj0gDQorQ0NfU1JDUyA6PSANCitTNjJfREVQUyA6PSANCitBU01fREVQUyA6PSANCitDNTVfREVQUyA6PSANCitTX1VQUEVSX0RFUFMgOj0gDQorU19ERVBTIDo9IA0KK0NQUF9ERVBTIDo9IA0KK0M2NF9ERVBTIDo9IA0KK0M0M19ERVBTIDo9IA0KK0M2Ml9ERVBTIDo9IA0KK09CSlMgOj0gDQorQz8/X0RFUFMgOj0gDQorUz8/X0RFUFMgOj0gDQorUzU1X0RFUFMgOj0gDQorQ19ERVBTIDo9IA0KK0NfVVBQRVJfREVQUyA6PSANCitNU1A0MzBfRVhFQ1VUQUJMRV9PVVRQVVRTIDo9IA0KK0MrK19ERVBTIDo9IA0KK0NDX0RFUFMgOj0gDQorUzY0X0RFUFMgOj0gDQorQ1hYX0RFUFMgOj0gDQorUzQzX0RFUFMgOj0gDQorUzY3X0RFUFMgOj0gDQorQzY3X0RFUFMgOj0gDQorQVNNX1VQUEVSX0RFUFMgOj0gDQorT1BUX0RFUFMgOj0gDQorDQorIyBFdmVyeSBzdWJkaXJlY3Rvcnkgd2l0aCBzb3VyY2UgZmlsZXMgbXVzdCBiZSBkZXNjcmliZWQgaGVyZQ0KK1NVQkRJUlMgOj0gXAorLiBcCisNCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9EZWJ1Zy9zdWJkaXIubWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9EZWJ1Zy9zdWJkaXIubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZmZTU3OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwL0RlYnVnL3N1YmRpci5tawpAQCAtMCwwICsxLDI3IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgQXV0b21hdGljYWxseS1nZW5lcmF0ZWQgZmlsZS4gRG8gbm90IGVkaXQhDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisNCisjIEFkZCBpbnB1dHMgYW5kIG91dHB1dHMgZnJvbSB0aGVzZSB0b29sIGludm9jYXRpb25zIHRvIHRoZSBidWlsZCB2YXJpYWJsZXMgDQorQ19TUkNTICs9IFwKKy4uL2FwcC5jIA0KKw0KK09CSlMgKz0gXAorLi9hcHAub2JqIA0KKw0KK0NfREVQUyArPSBcCisuL2FwcC5wcCANCisNCitPQkpTX1FVT1RFRCArPSBcCisiLi9hcHAub2JqIiANCisNCisNCisjIEVhY2ggc3ViZGlyZWN0b3J5IG11c3Qgc3VwcGx5IHJ1bGVzIGZvciBidWlsZGluZyBzb3VyY2VzIGl0IGNvbnRyaWJ1dGVzDQorYXBwLm9iajogLi4vYXBwLmMgJChHRU5fU1JDUykgJChHRU5fT1BUUykNCisJQGVjaG8gJ0J1aWxkaW5nIGZpbGU6ICQ8Jw0KKwlAZWNobyAnSW52b2tpbmc6IE1TUDQzMCBDb21waWxlciB2My4xJw0KKwkiQzovUHJvZ3JhbSBGaWxlcy9UZXhhcyBJbnN0cnVtZW50cy9DQyBFc3NlbnRpYWxzIHYzLjEvdG9vbHMvY29tcGlsZXIvTVNQNDMwL2Jpbi9jbDQzMCIgJChHRU5fT1BUU19RVU9URUQpIC0tY21kX2ZpbGU9IiIgLS1mcF9yZWFzc29jPW9mZiAtLWluY2x1ZGVfcGF0aD0iQzovUHJvZ3JhbSBGaWxlcy9UZXhhcyBJbnN0cnVtZW50cy9DQyBFc3NlbnRpYWxzIHYzLjEvdG9vbHMvY29tcGlsZXIvTVNQNDMwL2luY2x1ZGUiIC0tc2F0X3JlYXNzb2M9b2ZmIC0tc3ltZGVidWc6ZHdhcmYgLS1wbGFpbl9jaGFyPXVuc2lnbmVkIC0tc2lsaWNvbl92ZXJzaW9uPW1zcCAtLXByaW50Zl9zdXBwb3J0PWZ1bGwgLS1wcmVwcm9jX3dpdGhfY29tcGlsZSAtLXByZXByb2NfZGVwZW5kZW5jeT0iYXBwLnBwIiAkKHN1YnN0ICMsJCh3aWxkY2FyZCAkKHN1YnN0ICQoU1BBQ0UpLFwkKFNQQUNFKSwkPCkpLCIjIikNCisJQGVjaG8gJ0ZpbmlzaGVkIGJ1aWxkaW5nOiAkPCcNCisJQGVjaG8gJyAnDQorDQorDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9hcHAub2JqIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9hcHAub2JqCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhOGE2ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9SZWxlYXNlL2FwcC5vYmoKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9hcHAub3V0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9hcHAub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmOTRjMjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9SZWxlYXNlL2FwcC5vdXQKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9hcHAucHAgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9SZWxlYXNlL2FwcC5wcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzY0NjgyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9hcHAucHAKQEAgLTAsMCArMSw5OSBAQAorIyBGSVhFRA0KK2FwcC5vYmo6IC4uL2FwcC5jDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvc3RkLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9lYzIwMDkvY2d0b29scy9tc3A0MzAvMy4xLjAvaW5jbHVkZS9zdGRhcmcuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2VjMjAwOS9jZ3Rvb2xzL21zcDQzMC8zLjEuMC9pbmNsdWRlL3N0ZGRlZi5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMvdGkvdGFyZ2V0cy9zdGQuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3RpL3RhcmdldHMvTVNQNDMwLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9lYzIwMDkvY2d0b29scy9tc3A0MzAvMy4xLjAvaW5jbHVkZS9zdGRpbnQuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3hkYy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19wcm9sb2d1ZS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvcGFja2FnZS9wYWNrYWdlLmRlZnMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzX19lcGlsb2d1ZS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nX19wcm9sb2d1ZS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvcl9fcHJvbG9ndWUuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9NZW1vcnkuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JSGVhcC5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3IuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWVtb3J5X0hlYXBQcm94eS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lJbnN0YW5jZS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSUhlYXAuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9FcnJvci5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lHYXRlUHJvdmlkZXIuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JSW5zdGFuY2UuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvTWFpbl9Nb2R1bGVfR2F0ZVByb3h5LmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRXJyb3JfX2VwaWxvZ3VlLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9NYWluLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19wcm9sb2d1ZS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvTWFpbi5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzX19lcGlsb2d1ZS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvRGlhZ3MuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1R5cGVzLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UZXh0LmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0xvZ19fZXBpbG9ndWUuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL1N5c3RlbS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydC5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Fzc2VydF9fcHJvbG9ndWUuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL01haW4uaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0Vycm9yLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9Bc3NlcnRfX2VwaWxvZ3VlLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JTW9kdWxlLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JU3lzdGVtU3VwcG9ydC5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lNb2R1bGUuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX1N1cHBvcnRQcm94eS5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0lTeXN0ZW1TdXBwb3J0LmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9Nb2R1bGVfR2F0ZVByb3h5LmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9UeXBlcy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSUluc3RhbmNlLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9JR2F0ZVByb3ZpZGVyLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9wYWNrYWdlL1N5c3RlbV9TdXBwb3J0UHJveHkuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL3BhY2thZ2UvU3lzdGVtX01vZHVsZV9HYXRlUHJveHkuaA0KK2FwcC5vYmo6IGM6L3VzZXJzL2RyL2lsaWFkL3BhY2thZ2VzL3hkYy9ydW50aW1lL0RpYWdzLmgNCithcHAub2JqOiBDOi91c2Vycy9kci9lYzIwMDkvc3JjL2xvY2FsL2FwcHMvaGVsbG8vTXNncy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvVHlwZXMuaA0KK2FwcC5vYmo6IEM6L3VzZXJzL2RyL2VjMjAwOS9zcmMvbG9jYWwvYXBwcy9oZWxsby9wYWNrYWdlL3BhY2thZ2UuZGVmcy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvTG9nLmgNCithcHAub2JqOiBjOi91c2Vycy9kci9pbGlhZC9wYWNrYWdlcy94ZGMvcnVudGltZS9EaWFncy5oDQorYXBwLm9iajogYzovdXNlcnMvZHIvaWxpYWQvcGFja2FnZXMveGRjL3J1bnRpbWUvSU1vZHVsZS5oDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9tYWtlZmlsZSBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwL1JlbGVhc2UvbWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZmY2Q5MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwL1JlbGVhc2UvbWFrZWZpbGUKQEAgLTAsMCArMSwxMTggQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBBdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCBmaWxlLiBEbyBub3QgZWRpdCENCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KK0VNUFRZIDo9IA0KK1NQQUNFIDo9ICQoRU1QVFkpICQoRU1QVFkpDQorDQorLWluY2x1ZGUgLi4vbWFrZWZpbGUuaW5pdA0KKw0KK1JNIDo9IEM6L1Byb2dyYW0gRmlsZXMvVGV4YXMgSW5zdHJ1bWVudHMvQ0MgRXNzZW50aWFscyB2My4xLy91dGlscy9DeWd3aW4vcm0gLXJmDQorDQorIyBBbGwgb2YgdGhlIHNvdXJjZXMgcGFydGljaXBhdGluZyBpbiB0aGUgYnVpbGQgYXJlIGRlZmluZWQgaGVyZQ0KKy1pbmNsdWRlIHNvdXJjZXMubWsNCistaW5jbHVkZSBzdWJkaXIubWsNCistaW5jbHVkZSBvYmplY3RzLm1rDQorDQoraWZuZXEgKCQoTUFLRUNNREdPQUxTKSxjbGVhbikNCitpZm5lcSAoJChzdHJpcCAkKFM2Ml9ERVBTKSksKQ0KKy1pbmNsdWRlICQoUzYyX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKEFTTV9ERVBTKSksKQ0KKy1pbmNsdWRlICQoQVNNX0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKEM1NV9ERVBTKSksKQ0KKy1pbmNsdWRlICQoQzU1X0RFUFMpDQorZW5kaWYNCitpZm5lcSAoJChzdHJpcCAkKFNfVVBQRVJfREVQUykpLCkNCistaW5jbHVkZSAkKFNfVVBQRVJfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQysrX0RFUFMpKSwpDQorLWluY2x1ZGUgJChDKytfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoU19ERVBTKSksKQ0KKy1pbmNsdWRlICQoU19ERVBTKQ0KK2VuZGlmDQoraWZuZXEgKCQoc3RyaXAgJChDQ19ERVBTKSksKQ0KKy1pbmNsdWRlICQoQ0NfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQzY0X0RFUFMpKSwpDQorLWluY2x1ZGUgJChDNjRfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQ1BQX0RFUFMpKSwpDQorLWluY2x1ZGUgJChDUFBfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoUzY0X0RFUFMpKSwpDQorLWluY2x1ZGUgJChTNjRfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQ1hYX0RFUFMpKSwpDQorLWluY2x1ZGUgJChDWFhfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQzY3X0RFUFMpKSwpDQorLWluY2x1ZGUgJChDNjdfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoUzY3X0RFUFMpKSwpDQorLWluY2x1ZGUgJChTNjdfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoUzQzX0RFUFMpKSwpDQorLWluY2x1ZGUgJChTNDNfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQzYyX0RFUFMpKSwpDQorLWluY2x1ZGUgJChDNjJfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQzQzX0RFUFMpKSwpDQorLWluY2x1ZGUgJChDNDNfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQz8/X0RFUFMpKSwpDQorLWluY2x1ZGUgJChDPz9fREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQVNNX1VQUEVSX0RFUFMpKSwpDQorLWluY2x1ZGUgJChBU01fVVBQRVJfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoT1BUX0RFUFMpKSwpDQorLWluY2x1ZGUgJChPUFRfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoUz8/X0RFUFMpKSwpDQorLWluY2x1ZGUgJChTPz9fREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoUzU1X0RFUFMpKSwpDQorLWluY2x1ZGUgJChTNTVfREVQUykNCitlbmRpZg0KK2lmbmVxICgkKHN0cmlwICQoQ19ERVBTKSksKQ0KKy1pbmNsdWRlICQoQ19ERVBTKQ0KK2VuZGlmDQoraWZuZXEgKCQoc3RyaXAgJChDX1VQUEVSX0RFUFMpKSwpDQorLWluY2x1ZGUgJChDX1VQUEVSX0RFUFMpDQorZW5kaWYNCitlbmRpZg0KKw0KKy1pbmNsdWRlIC4uL21ha2VmaWxlLmRlZnMNCisNCisjIEFkZCBpbnB1dHMgYW5kIG91dHB1dHMgZnJvbSB0aGVzZSB0b29sIGludm9jYXRpb25zIHRvIHRoZSBidWlsZCB2YXJpYWJsZXMgDQorDQorIyBBbGwgVGFyZ2V0DQorYWxsOiBhcHAub3V0DQorDQorZGVwZW5kZW50czoNCisJLWNkIEM6L3VzZXJzL2RyL2VjMjAwOS9zcmMvbG9jYWwvYXBwcy9oZWxsbyAmJiAkKE1BS0UpIGFsbA0KKwktY2QgQzovdXNlcnMvZHIvZWMyMDA5L3NyYy9sb2NhbC9hcHBzL3J0YWNmZyAmJiAkKE1BS0UpIGFsbA0KKwktY2QgQzovdXNlcnMvZHIvZWMyMDA5L3NyYy9sb2NhbC9ydW50aW1lL2V4dGVuc2lvbnMgJiYgJChNQUtFKSBhbGwNCisJLWNkIEM6L3VzZXJzL2RyL2VjMjAwOS9zcmMvdGkvcGxhdGZvcm1zL2V6NDMwX3JmMjUwMCAmJiAkKE1BS0UpIGFsbA0KKw0KKyMgVG9vbCBpbnZvY2F0aW9ucw0KK2FwcC5vdXQ6ICQoR0VOX0NNRFMpICQoT0JKUykNCisJQGVjaG8gJ0J1aWxkaW5nIHRhcmdldDogJEAnDQorCUBlY2hvICdJbnZva2luZzogTVNQNDMwIExpbmtlciB2My4xJw0KKwkiQzovUHJvZ3JhbSBGaWxlcy9UZXhhcyBJbnN0cnVtZW50cy9DQyBFc3NlbnRpYWxzIHYzLjEvdG9vbHMvY29tcGlsZXIvTVNQNDMwL2Jpbi9jbDQzMCIgLXogJChPQkpTX1FVT1RFRCkgIkM6XHVzZXJzXGRyXGVjMjAwOVxzcmNcbG9jYWxcYXBwc1xydGFjZmdcYXNzZW1ibHlcbGlua2VyLmNtZCIgLS1yZXJlYWRfbGlicyAtLXdhcm5fc2VjdGlvbnMgLS1zZWFyY2hfcGF0aD0iQzovUHJvZ3JhbSBGaWxlcy9UZXhhcyBJbnN0cnVtZW50cy9DQyBFc3NlbnRpYWxzIHYzLjEvdG9vbHMvY29tcGlsZXIvTVNQNDMwL2xpYiIgLS1zZWFyY2hfcGF0aD0iQzovUHJvZ3JhbSBGaWxlcy9UZXhhcyBJbnN0cnVtZW50cy9DQyBFc3NlbnRpYWxzIHYzLjEvdG9vbHMvY29tcGlsZXIvTVNQNDMwL2luY2x1ZGUiICQoR0VOX0NNRFNfUVVPVEVEKSAtLWxpYnJhcnk9InJ0czQzMC5saWIiIC0tcm9tX21vZGVsIC0tYXJnX3NpemU9MCAtLWhlYXBfc2l6ZT0wIC0tc3RhY2tfc2l6ZT0yNTYgLW8gImFwcC5vdXQiDQorCUBlY2hvICdGaW5pc2hlZCBidWlsZGluZyB0YXJnZXQ6ICRAJw0KKwlAZWNobyAnICcNCisNCisjIE90aGVyIFRhcmdldHMNCitjbGVhbjoNCisJLSQoUk0pICQoUzYyX0RFUFMpJChBU01fREVQUykkKEM1NV9ERVBTKSQoU19VUFBFUl9ERVBTKSQoU19ERVBTKSQoQ1BQX0RFUFMpJChDNjRfREVQUykkKEM0M19ERVBTKSQoQzYyX0RFUFMpJChPQkpTKSQoQz8/X0RFUFMpJChTPz9fREVQUykkKFM1NV9ERVBTKSQoQ19ERVBTKSQoQ19VUFBFUl9ERVBTKSQoTVNQNDMwX0VYRUNVVEFCTEVfT1VUUFVUUykkKEMrK19ERVBTKSQoQ0NfREVQUykkKFM2NF9ERVBTKSQoQ1hYX0RFUFMpJChTNDNfREVQUykkKFM2N19ERVBTKSQoQzY3X0RFUFMpJChBU01fVVBQRVJfREVQUykkKE9QVF9ERVBTKSBhcHAub3V0DQorCS1AZWNobyAnICcNCisNCisuUEhPTlk6IGFsbCBjbGVhbiBkZXBlbmRlbnRzDQorLlNFQ09OREFSWToNCisNCistaW5jbHVkZSAuLi9tYWtlZmlsZS50YXJnZXRzDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9vYmplY3RzLm1rIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9vYmplY3RzLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwZjUxMDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9SZWxlYXNlL29iamVjdHMubWsKQEAgLTAsMCArMSw3IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgQXV0b21hdGljYWxseS1nZW5lcmF0ZWQgZmlsZS4gRG8gbm90IGVkaXQhDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisNCitMSUJTIDo9DQorDQorVVNFUl9PQkpTIDo9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9zb3VyY2VzLm1rIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9zb3VyY2VzLm1rCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwYzYyZDQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9SZWxlYXNlL3NvdXJjZXMubWsKQEAgLTAsMCArMSw2MCBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCisjIEF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIGZpbGUuIERvIG5vdCBlZGl0IQ0KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorQzY3X1NSQ1MgOj0gDQorU19VUFBFUl9TUkNTIDo9IA0KK09CSl9TUkNTIDo9IA0KK0M1NV9TUkNTIDo9IA0KK0NfU1JDUyA6PSANCitDUFBfU1JDUyA6PSANCitPX1NSQ1MgOj0gDQorQVNNX1NSQ1MgOj0gDQorQ1hYX1NSQ1MgOj0gDQorQVNNX1VQUEVSX1NSQ1MgOj0gDQorT1BUX1NSQ1MgOj0gDQorQzQzX1NSQ1MgOj0gDQorQzY0X1NSQ1MgOj0gDQorUzYyX1NSQ1MgOj0gDQorUzU1X1NSQ1MgOj0gDQorQ01EX1NSQ1MgOj0gDQorUzY3X1NSQ1MgOj0gDQorQysrX1NSQ1MgOj0gDQorUzY0X1NSQ1MgOj0gDQorQ19VUFBFUl9TUkNTIDo9IA0KK1M/P19TUkNTIDo9IA0KK1M0M19TUkNTIDo9IA0KK0M2Ml9TUkNTIDo9IA0KK1NfU1JDUyA6PSANCitDPz9fU1JDUyA6PSANCitDQ19TUkNTIDo9IA0KK1M2Ml9ERVBTIDo9IA0KK0FTTV9ERVBTIDo9IA0KK0M1NV9ERVBTIDo9IA0KK1NfVVBQRVJfREVQUyA6PSANCitTX0RFUFMgOj0gDQorQ1BQX0RFUFMgOj0gDQorQzY0X0RFUFMgOj0gDQorQzQzX0RFUFMgOj0gDQorQzYyX0RFUFMgOj0gDQorT0JKUyA6PSANCitDPz9fREVQUyA6PSANCitTPz9fREVQUyA6PSANCitTNTVfREVQUyA6PSANCitDX0RFUFMgOj0gDQorQ19VUFBFUl9ERVBTIDo9IA0KK01TUDQzMF9FWEVDVVRBQkxFX09VVFBVVFMgOj0gDQorQysrX0RFUFMgOj0gDQorQ0NfREVQUyA6PSANCitTNjRfREVQUyA6PSANCitDWFhfREVQUyA6PSANCitTNDNfREVQUyA6PSANCitTNjdfREVQUyA6PSANCitDNjdfREVQUyA6PSANCitBU01fVVBQRVJfREVQUyA6PSANCitPUFRfREVQUyA6PSANCisNCisjIEV2ZXJ5IHN1YmRpcmVjdG9yeSB3aXRoIHNvdXJjZSBmaWxlcyBtdXN0IGJlIGRlc2NyaWJlZCBoZXJlDQorU1VCRElSUyA6PSBcCisuIFwKKw0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwL1JlbGVhc2Uvc3ViZGlyLm1rIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9hcHAvUmVsZWFzZS9zdWJkaXIubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDc4ZmI3MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwL1JlbGVhc2Uvc3ViZGlyLm1rCkBAIC0wLDAgKzEsMjcgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorIyBBdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCBmaWxlLiBEbyBub3QgZWRpdCENCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKw0KKyMgQWRkIGlucHV0cyBhbmQgb3V0cHV0cyBmcm9tIHRoZXNlIHRvb2wgaW52b2NhdGlvbnMgdG8gdGhlIGJ1aWxkIHZhcmlhYmxlcyANCitDX1NSQ1MgKz0gXAorLi4vYXBwLmMgDQorDQorT0JKUyArPSBcCisuL2FwcC5vYmogDQorDQorQ19ERVBTICs9IFwKKy4vYXBwLnBwIA0KKw0KK09CSlNfUVVPVEVEICs9IFwKKyIuL2FwcC5vYmoiIA0KKw0KKw0KKyMgRWFjaCBzdWJkaXJlY3RvcnkgbXVzdCBzdXBwbHkgcnVsZXMgZm9yIGJ1aWxkaW5nIHNvdXJjZXMgaXQgY29udHJpYnV0ZXMNCithcHAub2JqOiAuLi9hcHAuYyAkKEdFTl9TUkNTKSAkKEdFTl9PUFRTKQ0KKwlAZWNobyAnQnVpbGRpbmcgZmlsZTogJDwnDQorCUBlY2hvICdJbnZva2luZzogTVNQNDMwIENvbXBpbGVyIHYzLjEnDQorCSJDOi9Qcm9ncmFtIEZpbGVzL1RleGFzIEluc3RydW1lbnRzL0NDIEVzc2VudGlhbHMgdjMuMS90b29scy9jb21waWxlci9NU1A0MzAvYmluL2NsNDMwIiAkKEdFTl9PUFRTX1FVT1RFRCkgLS1jbWRfZmlsZT0iQzpcdXNlcnNcZHJcZWMyMDA5XHNyY1xsb2NhbFxhcHBzXHJ0YWNmZ1xhc3NlbWJseVxjb21waWxlci5vcHQiIC0tZnBfcmVhc3NvYz1vZmYgLS1pbmNsdWRlX3BhdGg9IkM6L1Byb2dyYW0gRmlsZXMvVGV4YXMgSW5zdHJ1bWVudHMvQ0MgRXNzZW50aWFscyB2My4xL3Rvb2xzL2NvbXBpbGVyL01TUDQzMC9pbmNsdWRlIiAtLXNhdF9yZWFzc29jPW9mZiAtLXN5bWRlYnVnOmR3YXJmIC0tcGxhaW5fY2hhcj11bnNpZ25lZCAtLXNpbGljb25fdmVyc2lvbj1tc3AgLS1vcHRfbGV2ZWw9MyAtLXByZXByb2Nfd2l0aF9jb21waWxlIC0tcHJlcHJvY19kZXBlbmRlbmN5PSJhcHAucHAiICQoc3Vic3QgIywkKHdpbGRjYXJkICQoc3Vic3QgJChTUEFDRSksXCQoU1BBQ0UpLCQ8KSksIiMiKQ0KKwlAZWNobyAnRmluaXNoZWQgYnVpbGRpbmc6ICQ8Jw0KKwlAZWNobyAnICcNCisNCisNCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9hcHAuYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvYXBwL2FwcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyZDk3MDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2FwcC9hcHAuYwpAQCAtMCwwICsxLDE4IEBACisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTG9nLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzdGVtLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRGlhZ3MuaD4KKworI2luY2x1ZGUgPGxvY2FsL2FwcHMvaGVsbG9fMi9Nc2dzLmg+CisKKy8qCisgKiAgPT09PT09PT0gbWFpbiA9PT09PT09PQorICovCitJbnQgbWFpbihJbnQgYXJnYywgU3RyaW5nIGFyZ3ZbXSkKK3sKKyAgICBMb2dfd3JpdGUwKE1zZ3NfSEVMTE8pOworCisgICAgTG9nX3ByaW50MChEaWFnc19VU0VSMSwgImhlbGxvIHdvcmxkLCBhZ2FpblxuIik7CisKKyAgICBTeXN0ZW1fZXhpdCgwKTsKKyAgICByZXR1cm4gKDApOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9sb2dhcHAvYXBwLmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL2xvZ2FwcC9hcHAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMmQ5NzA2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9sb2dhcHAvYXBwLmMKQEAgLTAsMCArMSwxOCBAQAorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0xvZy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c3RlbS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0RpYWdzLmg+CisKKyNpbmNsdWRlIDxsb2NhbC9hcHBzL2hlbGxvXzIvTXNncy5oPgorCisvKgorICogID09PT09PT09IG1haW4gPT09PT09PT0KKyAqLworSW50IG1haW4oSW50IGFyZ2MsIFN0cmluZyBhcmd2W10pCit7CisgICAgTG9nX3dyaXRlMChNc2dzX0hFTExPKTsKKworICAgIExvZ19wcmludDAoRGlhZ3NfVVNFUjEsICJoZWxsbyB3b3JsZCwgYWdhaW5cbiIpOworCisgICAgU3lzdGVtX2V4aXQoMCk7CisgICAgcmV0dXJuICgwKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvbG9nYXBwL21ha2VmaWxlIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9sb2dhcHAvbWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjIxZjRhNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvbG9nYXBwL21ha2VmaWxlCkBAIC0wLDAgKzEsMjMgQEAKK1RPUCA9ICQoQ1VSRElSKS8uLi8uLi8uLi8uLi8KK2luY2x1ZGUgJChUT1ApL2NvbW1vbi5tYWsKKworQ09ORklHID0gJChDVVJESVIpLy4uL3J0YWNmZy9hc3NlbWJseQorCitDQyA9ICQoQ0dUT09MUykvYmluL2NsNDMwCitMTksgPSAkKENHVE9PTFMpL2Jpbi9sbms0MzAKK1JUUyA9ICQoQ0dUT09MUykvbGliL3J0czQzMC5saWIKKworYWxsOiBhcHAub3V0CisKKyQoQ09ORklHKS9jb21waWxlci5vcHQ6IAorCSQoTUFLRSkgLUMgLi4vcnRhY2ZnCisKK2FwcC5vYmogOiBhcHAuYyAkKENPTkZJRykvY29tcGlsZXIub3B0CisJJChDQykgLUAkKENPTkZJRykvY29tcGlsZXIub3B0IC1jICQ8CisgCithcHAub3V0IDogYXBwLm9iaiAkKENPTkZJRykvbGlua2VyLmNtZAorCSQoTE5LKSAtbyBhcHAub3V0IC1tIGFwcC5tYXAgLWMgYXBwLm9iaiAkKENPTkZJRykvbGlua2VyLmNtZCAkKFJUUykKKyAKK2NsZWFuOgorCSQoTUFLRSkgLUMgLi4vcnRhY2ZnICRACisJcm0gLWYgYXBwLm91dCBhcHAub2JqIGFwcC5tYXAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvcnRhY2ZnL2Fzc2VtYmx5LmNmZyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvcnRhY2ZnL2Fzc2VtYmx5LmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMmIwYWM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9ydGFjZmcvYXNzZW1ibHkuY2ZnCkBAIC0wLDAgKzEsNDUgQEAKK3ZhciBNc2dzID0geGRjLnVzZU1vZHVsZSgibG9jYWwuYXBwcy5oZWxsb18yLk1zZ3MiKTsKK3ZhciBNYWluID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuTWFpbiIpOwordmFyIERpYWdzID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRGlhZ3MiKTsKKworLyogdXNlIHRoZSBMb2dnZXJTeXMgSUxvZ2dlciBzZXJ2aWNlIHByb3ZpZGVyICovCisvL3ZhciBMb2dnZXIgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5Mb2dnZXJTeXMiKTsKK3ZhciBMb2dnZXIgPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5ydW50aW1lLkxvZ2dlclVhcnQiKTsKKworLyogY3JlYXRlIGFuZCBiaW5kIGEgbG9nZ2VyIGZvciBhbGwgbm9uLW1vZHVsZSBjb2RlICovCitNYWluLmNvbW1vbiQubG9nZ2VyID0gTG9nZ2VyLmNyZWF0ZSgpOworTWFpbi5jb21tb24kLmRpYWdzX0VOVFJZID0gRGlhZ3MuQUxXQVlTX09OOworCisvKiBtaW5pbWl6ZSBmb290cHJpbnQgKi8KK1Byb2dyYW0uYXJnU2l6ZSA9IDA7CitQcm9ncmFtLmhlYXAgPSAwOworUHJvZ3JhbS5zdGFjayA9IDB4MjAwOworCit2YXIgRXJyID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRXJyb3IiKTsKK0Vyci5yYWlzZUhvb2sgPSBudWxsOworCisvKiBzZXQgU1RBVElDX1BPTElDWSwgcnVudGltZSBjcmVhdGlvbiBzdXBwb3J0L292ZXJoZWFkIGlzIGVsaW1pbmF0ZWQgKi8KK3ZhciBUeXBlcyA9IHhkYy5tb2R1bGUoJ3hkYy5ydW50aW1lLlR5cGVzJyk7Cit2YXIgRGVmYXVsdHMgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5EZWZhdWx0cyIpOworRGVmYXVsdHMuY29tbW9uJC5tZW1vcnlQb2xpY3kgPSBUeXBlcy5TVEFUSUNfUE9MSUNZOworRGVmYXVsdHMuY29tbW9uJC5kaWFnc19BU1NFUlQgPSBEaWFncy5BTFdBWVNfT0ZGOworRGVmYXVsdHMuY29tbW9uJC5uYW1lZE1vZHVsZSA9IGZhbHNlOworCitNYWluLmNvbW1vbiQuZGlhZ3NfVVNFUjEgPSBEaWFncy5BTFdBWVNfT047CisKK3ZhciBTeXNVYXJ0ID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5TeXNVYXJ0Iik7Cit2YXIgU3lzdGVtID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuU3lzdGVtIik7CitTeXN0ZW0uU3VwcG9ydFByb3h5ID0gU3lzVWFydDsKK1N5c3RlbS5tYXhBdGV4aXRIYW5kbGVycyA9IDA7CisKK3ZhciBUZXh0ID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuVGV4dCIpOworVGV4dC5pc0xvYWRlZCA9IGZhbHNlOworCitpZiAoZmFsc2UpIHsKKyAgICAvKiBuZWVkZWQgaWYgd2UgdXNlIFN5c01pbiAob3Igc29tZW9uZSB3aG8gbmVlZHMgeGRjLnJ1bnRpbWUuTWVtb3J5KSAqLworICAgIHZhciBIZWFwTWluID0geGRjLnVzZU1vZHVsZSgneGRjLnJ1bnRpbWUuSGVhcE1pbicpOworICAgIEhlYXBNaW4uY29tbW9uJC5meG50YWIgPSBmYWxzZTsKKworICAgIHZhciBNZW1vcnkgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5NZW1vcnkiKTsKKyAgICBNZW1vcnkuZGVmYXVsdEhlYXBJbnN0YW5jZSA9IEhlYXBNaW4uY3JlYXRlKHtzaXplOiAxfSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL3J0YWNmZy9tYWtlZmlsZSBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvcnRhY2ZnL21ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyZTg1ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tYWtlL3J0YWNmZy9tYWtlZmlsZQpAQCAtMCwwICsxLDIwIEBACitUT1AgPSAkKENVUkRJUikvLi4vLi4vLi4vLi4vCitpbmNsdWRlICQoVE9QKS9jb21tb24ubWFrCisKK0NPTkZJRyA9IGFzc2VtYmx5CisKK1hEQ1RBUkdFVCA9IHR4bi50YXJnZXRzLk1TUDQzMAorWERDUExBVEZPUk0gPSB0eG4ucGxhdGZvcm1zLmV6NDMwX3JmMjUwMAorCitleHBvcnQgWERDUEFUSCA9ICQoVE9QKQorCitDRkcgPSAkKFhEQ1JPT1QpL3hzIHhkYy50b29scy5jb25maWd1cm8KKworYWxsOiAkKENPTkZJRykvY29tcGlsZXIub3B0ICAkKENPTkZJRykvbGlua2VyLmNtZAorCUBlY2hvICRAIGRvbmUuCisKKyUvbGlua2VyLmNtZCAlL2NvbXBpbGVyLm9wdCA6ICUuY2ZnCisJJChDRkcpIC1jICQoQ0dUT09MUykgLXQgJChYRENUQVJHRVQpIC1wICQoWERDUExBVEZPUk0pICQ8CisgCitjbGVhbjoKKwlAcm0gLXJmICQoQ09ORklHKQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci8uY2R0cHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvLmNkdHByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVhOWJhMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvLmNkdHByb2plY3QKQEAgLTAsMCArMSw1NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8P2VjbGlwc2UtY2R0IHZlcnNpb249IjIuMCI/Pg0KKw0KKzxjZHRwcm9qZWN0IGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2UiPg0KKzxleHRlbnNpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5iaW5hcnlwYXJzZXIuQ29mZlBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkJpbmFyeVBhcnNlciIvPg0KKzxkYXRhPg0KKzxpdGVtIGlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyRmlsZVByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJtYWtlZmlsZUdlbmVyYXRvciI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1mICR7cHJvamVjdF9uYW1lfV9zY2QubWsiIGNvbW1hbmQ9Im1ha2UiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzwvaXRlbT4NCis8aXRlbSBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGF0aGVudHJ5Ij4NCis8cGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJvdXQiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkRJU0NPVkVSRURfU0NBTk5FUl9JTkZPIi8+DQorPC9pdGVtPg0KKzwvZGF0YT4NCis8L2NkdHByb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci8uY3Byb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tb25pdG9yLy5jcHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmY1YWFlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci8uY3Byb2plY3QKQEAgLTAsMCArMSw2MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQorPD9maWxlVmVyc2lvbiA0LjAuMD8+DQorDQorPGNwcm9qZWN0Pg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyI+DQorPGNjb25maWd1cmF0aW9uIGlkPSJjb252ZXJ0ZWQuY29uZmlnLjE1OTIxNTMzNzgiPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJ0cnVlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyRmlsZVByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJtYWtlZmlsZUdlbmVyYXRvciI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1mICR7cHJvamVjdF9uYW1lfV9zY2QubWsiIGNvbW1hbmQ9Im1ha2UiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9ImZhbHNlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1hbmFnZWRidWlsZGVyLmNvcmUuR0NDTWFuYWdlZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJmYWxzZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYW5hZ2VkYnVpbGRlci5jb3JlLkdDQ1dpbk1hbmFnZWRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0iZmFsc2UiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGF0aGVudHJ5Ij4NCis8cGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJvdXQiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkRJU0NPVkVSRURfU0NBTk5FUl9JTkZPIi8+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIGJ1aWxkU3lzdGVtSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLmRlZmF1bHRDb25maWdEYXRhUHJvdmlkZXIiIGlkPSJjb252ZXJ0ZWQuY29uZmlnLjE1OTIxNTMzNzgiIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyIgbmFtZT0iY29udmVydGVkQ29uZmlnIj4NCis8ZXh0ZXJuYWxTZXR0aW5ncy8+DQorPGV4dGVuc2lvbnM+DQorPGV4dGVuc2lvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJpbmFyeXBhcnNlci5Db2ZmUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuQmluYXJ5UGFyc2VyIi8+DQorPC9leHRlbnNpb25zPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Njb25maWd1cmF0aW9uPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Nwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvLnByb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tb25pdG9yLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1MmNjZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tb25pdG9yLy5wcm9qZWN0CkBAIC0wLDAgKzEsOTYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+bG9jYWwuYXBwcy5tb25pdG9yPC9uYW1lPg0KKwk8Y29tbWVudD48L2NvbW1lbnQ+DQorCTxwcm9qZWN0cz4NCisJCTxwcm9qZWN0PmxvY2FsLmNvbnNvbGU8L3Byb2plY3Q+DQorCQk8cHJvamVjdD5sb2NhbC5yZjwvcHJvamVjdD4NCisJCTxwcm9qZWN0PmxvY2FsLnJ1bnRpbWU8L3Byb2plY3Q+DQorCQk8cHJvamVjdD5sb2NhbC5ydW50aW1lLnV0aWxzPC9wcm9qZWN0Pg0KKwkJPHByb2plY3Q+bG9jYWwudGFyZ2V0czwvcHJvamVjdD4NCisJCTxwcm9qZWN0PmxvY2FsLnRhcmdldHMucnRzNDMwPC9wcm9qZWN0Pg0KKwkJPHByb2plY3Q+dGhpcmRwYXJ0eS5yeHR4PC9wcm9qZWN0Pg0KKwkJPHByb2plY3Q+dHhuLmNhdGFsb2cuYzQzMDwvcHJvamVjdD4NCisJCTxwcm9qZWN0PnR4bi5wbGF0Zm9ybXMuZXo0MzBfcmYyNTAwPC9wcm9qZWN0Pg0KKwkJPHByb2plY3Q+dHhuLnRhcmdldHM8L3Byb2plY3Q+DQorCQk8cHJvamVjdD50eG4udGFyZ2V0cy5ydHM0MzA8L3Byb2plY3Q+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZUJ1aWxkZXI8L25hbWU+DQorCQkJPHRyaWdnZXJzPmNsZWFuLGZ1bGwsaW5jcmVtZW50YWwsPC90cmlnZ2Vycz4NCisJCQk8YXJndW1lbnRzPg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC5hcmd1bWVudHM8L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQuY29yZS5lcnJvck91dHB1dFBhcnNlcjwva2V5Pg0KKwkJCQkJPHZhbHVlPmNvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5Db2ZmRXJyb3JQYXJzZXI7Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkFzbUVycm9yUGFyc2VyO2NvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5MaW5rRXJyb3JQYXJzZXI7b3JnLmVjbGlwc2UuY2R0LmNvcmUuTWFrZUVycm9yUGFyc2VyOzwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW52aXJvbm1lbnQ8L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUF1dG9CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuaW5jPC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVGdWxsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVkSW5jcmVtZW50YWxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLmxvY2F0aW9uPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC5jb21tYW5kPC9rZXk+DQorCQkJCQk8dmFsdWU+JHtYRENST09UfS94ZGM8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5jbGVhbjwva2V5Pg0KKwkJCQkJPHZhbHVlPmNsZWFuPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVDbGVhbkJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUudXNlRGVmYXVsdEJ1aWxkQ21kPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5hdXRvPC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5zdG9wT25FcnJvcjwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuU2Nhbm5lckNvbmZpZ0J1aWxkZXI8L25hbWU+DQorCQkJPGFyZ3VtZW50cz4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwk8L2J1aWxkU3BlYz4NCisJPG5hdHVyZXM+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5jb3JlLmNuYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuU2Nhbm5lckNvbmZpZ05hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tb25pdG9yLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWU3YzRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKQEAgLTAsMCArMSw0IEBACisjVHVlIE1hciAxNyAxMDozMjowMiBQRFQgMjAwOQ0KK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQoraW5kZXhlci9pbmRleGVySWQ9b3JnLmVjbGlwc2UuY2R0LmNvcmUuZG9tc291cmNlaW5kZXhlcg0KK2luZGV4ZXJJZD1vcmcuZWNsaXBzZS5jZHQuY29yZS5kb21zb3VyY2VpbmRleGVyDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBkMTAxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAwCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSAKK292ZXJyaWRlIFhEQ1JPT1QgPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMworb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuLi8uLi8uLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzL3BhY2thZ2VzOy4uLy4uLy4uCitIT1NUT1MgPSBMaW51eAorZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvY29uc29sZS5hcmdzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci9jb25zb2xlLmFyZ3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTMwZDU4MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvY29uc29sZS5hcmdzCkBAIC0wLDAgKzEsNSBAQAorbG9jYWwuY29uc29sZQorLWMKK0NPTTE4Cittb25fQVAueDQzMAorbW9uX0VELng0MzAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvaXNyLmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tb25pdG9yL2lzci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkMjVhNTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tb25pdG9yL2lzci5jCkBAIC0wLDAgKzEsMTggQEAKK2V4dGVybiB2b2lkIE1SRklfR3Bpb0lzcih2b2lkKTsKKworLyoKKyAqICA9PT09PT09PSBJT1BPUlQyX0lTUiA9PT09PT09PQorICovCitfX2ludGVycnVwdCB2b2lkIElPUE9SVDJfSVNSKHZvaWQpCit7CisgICAgLyoKKyAgICAgKiAgVGhpcyBJU1IgaXMgZWFzaWx5IHJlcGxhY2VkLiAgVGhlIG5ldyBJU1IgbXVzdCBzaW1wbHkKKyAgICAgKiAgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGNhbGwuCisgICAgICovCisgICAgTVJGSV9HcGlvSXNyKCk7Cit9CisKK19fYXNtKCJcdC5nbG9iYWwgSU9QT1JUMl9JU1IiKTsKK19fYXNtKCJcdC5zZWN0ICAgXCIuaW9wb3J0MlwiIik7CitfX2FzbSgiXHQuYWxpZ24gIDIiKTsKK19fYXNtKCJfSU9QT1JUMl92ZWN0b3I6XG5cdC5maWVsZCBJT1BPUlQyX0lTUiwgMTYiKTsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvbW9uX0FQLmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tb25pdG9yL21vbl9BUC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlMmI5N2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tb25pdG9yL21vbl9BUC5jCkBAIC0wLDAgKzEsNTA5IEBACisvKgorICogID09PT0gbW9uX0FQLmMgPT09PT09PT0KKyAqLworI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c3RlbS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0dhdGUuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9EaWFncy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0xvZy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1R5cGVzLmg+CisKKyNpbmNsdWRlIDxsb2NhbC9ydW50aW1lL1N5c1VhcnQuaD4KKyNpbmNsdWRlIDxsb2NhbC9ydW50aW1lL3V0aWxzL1N0YWNrLmg+CisKKyNpbmNsdWRlIDxsb2NhbC9yZi9SYWRpby5oPgorI2luY2x1ZGUgPGxvY2FsL3JmL0JzcC5oPgorCisjaW5jbHVkZSAibXNwNDMweDIyeDQuaCIKKworI2RlZmluZSBOVU1fQ09OTkVDVElPTlMgMiAgIC8qIHNob3VsZCBtYXRjaCAob3IgZXhjZWVkKSByZiBjb25maWcgKi8KKyNkZWZpbmUgTUFYX0FQUF9QQVlMT0FEIDIwICAvKiBzaG91bGQgbWF0Y2ggKG9yIGV4Y2VlZCkgcmYgY29uZmlnICovCisKKyNkZWZpbmUgUkVEICAgICAgICAgMQorI2RlZmluZSBHUkVFTiAgICAgICAyCisKKyNkZWZpbmUgTUVTU0FHRV9MRU5HVEggMyAgICAvKiBzaG91bGQgYmUgPD0gTUFYX0FQUF9QQVlMT0FEICovCisKKyNkZWZpbmUgVFJBQ0UgICAgICAgMHgwMQorI2RlZmluZSBTVEFDSyAgICAgICAweDAyCisjZGVmaW5lIFJBRElPICAgICAgIDB4MDQKKyNkZWZpbmUgU01QTFQgICAgICAgMHgwOAorCisjZGVmaW5lIEhFTFAgICAgMHgwMQorCit2b2lkIGNyZWF0ZVJhbmRvbUFkZHJlc3Modm9pZCk7CitSYWRpb19Sc3NpIGdldFJzc2kodm9pZCk7Cit2b2lkIG1jdUluaXQodm9pZCk7Cit2b2lkIHByaW50TWVzc2FnZShpbnQgYWRkciwgc2lnbmVkIGNoYXIgcnNzaSwgIGNoYXIgbXNnW01FU1NBR0VfTEVOR1RIXSk7CitWb2lkIHByaW50RURFdmVudChjaGFyIG1zZ1tdLCBpbnQgbGVuKTsKK3ZvaWQgcHJpbnRUZW1wRGF0YShpbnQgbm9kZSwgaW50IHRlbXAsIGludCB2b2x0LCBpbnQgcnNzaV9wY3QpOworCisvKiB1c2FnZSBtZXNzYWdlIGZvciB0ZXJtaW5hbCBpbnB1dCAqLworY29uc3QgY2hhciBoZWxwW10gPSB7CisgICAgIkNvbW1hbmRzOlxyXG4iCisgICAgIiAgICBjICAgLSBkaXNwbGF5IHRlbXBhdHVyZSBpbiBDZWxjaXVzXHJcbiIKKyAgICAiICAgIGYgICAtIGRpc3BsYXkgdGVtcGF0dXJlIGluIEZhaHJlbmhlaXRcclxuIiAKKyAgICAiICAgIHMgICAtIHRvZ2dsZSBzdGFjayB0cmFjZVxyXG4iCisgICAgIiAgICByICAgLSB0b2dnbGUgcmFkaW8gdHJhY2VcclxuIgorICAgICIgICAgbiAgIC0gZGlzYWJsZSBhbGwgdHJhY2VcclxuIgorICAgICIgICAgMC0zIC0gc3dpdGNoIHRvIHNwZWNpZmllZCBjaGFubmVsXHJcbiIKKyAgICAiICAgID8gICAtIGRpc3BsYXkgdGhpcyBtZW51XHJcbiIKKyAgICAiICAgICEgICAtIHJlc2V0XHJcbiJ9OworCisjZGVmaW5lIFRFTVBfT0ZGU0VUICgqKGludCAqKTB4MTBGNCkgICAgLyogdGVtcGF0dXJlIGNhbGlicmF0aW9uIG9mZnNldCAqLworI2RlZmluZSBGTEFTSF9BRERSICAoKGNoYXIgKikweDEwRjApICAgIC8qIFRhZy1MZW5ndGgtVmFsdWUgVGFibGUgYWRkcmVzcyAqLworCisjZGVmaW5lIElOVkFMSURfQ0hBTiAgICAoKGNoYXIpLTEpCisKKy8qIHJlc2VydmUgc3BhY2UgZm9yIHRoZSBtYXhpbXVtIHBvc3NpYmxlIHBlZXIgTGluayBJRHMgKi8KK3N0YXRpYyBSYWRpb19MaW5rSWQgc0xJRFtOVU1fQ09OTkVDVElPTlNdOworc3RhdGljIHVpbnQ4X3QgIHNOdW1DdXJyZW50UGVlcnM7CisKKy8qIGNhbGxiYWNrIGhhbmRsZXIgKi8KK3N0YXRpYyB1aW50OF90IHNDQihSYWRpb19MaW5rSWQpOworCisvKiB3b3JrIGxvb3Agc2VtYXBob3JlcyAqLworc3RhdGljIHVpbnQ4X3Qgc1BlZXJGcmFtZVNlbTsKK3N0YXRpYyB1aW50OF90IHNKb2luU2VtOworc3RhdGljIHVpbnQ4X3Qgc1NlbGZNZWFzdXJlU2VtOworCisvKiBtb2RlIGRhdGEgKi8KK2NoYXIgZGVnQ01vZGUgPSAwOyAgICAgIC8qIHVzZSBkZWcgRiBieSBkZWZhdWx0ICovCitjaGFyIHRyYWNlTWFzayA9IDA7ICAgICAvKiBkaXNhYmxlIGFsbCB0cmFjZSBieSBkZWZhdWx0ICovCitjaGFyIGhlbHBNYXNrID0gMDsgICAgICAvKiBkb24ndCBkaXNwbGF5IGhlbHAgaW5pdGlhbGx5ICovCitjaGFyIHJhZGlvQ2hhbiA9IElOVkFMSURfQ0hBTjsKKworLyoKKyAqICA9PT09PT09PSBtYWluID09PT09PT09CisgKi8KK3ZvaWQgbWFpbih2b2lkKQoreworICAgIFJhZGlvX0FkZHIgbEFkZHI7CisgICAgSUFyZyBpbnRTdGF0ZTsKKyAgICB2b2xhdGlsZSBpbnQgaTsKKyAgICAKKyAgICBXRFRDVEwgPSBXRFRQVyArIFdEVEhPTEQ7ICAgICAgICAgLyogU3RvcCBXRFQgKi8KKworICAgIC8qIGRlbGF5IGxvb3AgdG8gZW5zdXJlIHByb3BlciBzdGFydHVwIGJlZm9yZSBTaW1wbGljaVRJIGluY3JlYXNlcyBEQ08gKi8KKyAgICAvKiBUaGlzIGlzIHR5cGljYWxseSB0YWlsb3JlZCB0byB0aGUgcG93ZXIgc3VwcGx5IHVzZWQsIGFuZCBpbiB0aGlzIGNhc2UgKi8KKyAgICAvKiBpcyBvdmVya2lsbCBmb3Igc2FmZXR5IGR1ZSB0byB3aWRlIGRpc3RyaWJ1dGlvbi4gKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgMHhGRkZGOyBpKyspe30KKyAgICAKKyAgICBpZiAoQ0FMQkMxXzhNSFogPT0gMHhGRikgeyAgLyogRG8gbm90IHJ1biBpZiBjYWwgdmFsdWVzIGFyZSBlcmFzZWQgKi8KKyAgICAgICAgdm9sYXRpbGUgaW50IGk7CisgICAgICAgIFAxRElSIHw9IDB4MDM7CisgICAgICAgIEJzcF90dXJuT25MZWQoUkVEKTsKKyAgICAgICAgQnNwX3R1cm5PZmZMZWQoR1JFRU4pOworICAgICAgICB3aGlsZSAoMSkgeworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDB4NUZGRjsgaSsrKXt9CisgICAgICAgICAgICBCc3BfdG9nZ2xlTGVkKEdSRUVOKTsKKyAgICAgICAgICAgIEJzcF90b2dnbGVMZWQoUkVEKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBpZiAoRkxBU0hfQUREUlswXSA9PSAweEZGICYmIEZMQVNIX0FERFJbMV0gPT0gMHhGRgorICAgICAgICAmJiBGTEFTSF9BRERSWzJdID09IDB4RkYgJiYgRkxBU0hfQUREUlszXSA9PSAweEZGKSB7CisKKyAgICAgICAgLyogZmxhc2ggYSBSYW5kb20gZGV2aWNlIGFkZHJlc3MgYXQgc3RhcnR1cCAqLworICAgICAgICBjcmVhdGVSYW5kb21BZGRyZXNzKCk7ICAgCisgICAgfQorCisgICAgLyogY29weSBvdXIgYWRkcmVzcyAoZnJvbSBmbGFzaCkgaW50byBuZXR3b3JrIFJBTSAqLworICAgIGxBZGRyLmFkZHJbMF0gPSBGTEFTSF9BRERSWzBdOworICAgIGxBZGRyLmFkZHJbMV0gPSBGTEFTSF9BRERSWzFdOworICAgIGxBZGRyLmFkZHJbMl0gPSBGTEFTSF9BRERSWzJdOworICAgIGxBZGRyLmFkZHJbM10gPSBGTEFTSF9BRERSWzNdOworICAgIAorICAgIG1jdUluaXQoKTsKKworICAgIGZvciAoaSA9IDA7IGkgPCAweEZGRkY7IGkrKyl7fQorCisgICAgLyogaW5pdGlhbGl6ZSB0aGUgcmFkaW8gbmV0d29yayAqLworICAgIFJhZGlvX3N0YXJ0KHNDQiwgJmxBZGRyKTsKKyAgICBTeXN0ZW1fcHJpbnRmKCJOZXR3b3JrIGluaXRpYWxpemF0aW9uIGRvbmVcbiIpOworCisgICAgLyogbWFpbiB3b3JrIGxvb3AgKi8KKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoaGVscE1hc2sgJiBIRUxQKSB7CisgICAgICAgICAgICBoZWxwTWFzayBePSBIRUxQOworICAgICAgICAgICAgU3lzdGVtX3ByaW50ZigoU3RyaW5nKWhlbHApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodHJhY2VNYXNrICYgVFJBQ0UpIHsKKyAgICAgICAgICAgIEJpdHMxNiBtYXNrOworICAgICAgICAgICAgdHJhY2VNYXNrIF49IFRSQUNFOworCisgICAgICAgICAgICBtYXNrID0gKCh0cmFjZU1hc2sgJiBSQURJTykgPyBEaWFnc19FTlRSWSA6IDApCisgICAgICAgICAgICAgICAgfCAoKHRyYWNlTWFzayAmIFNNUExUKSA/IERpYWdzX1VTRVIxIDogMCk7CisgICAgICAgICAgICBSYWRpb19Nb2R1bGVfc2V0TWFzayhtYXNrKTsKKyAgICAgICAgICAgIFN0YWNrX01vZHVsZV9zZXRNYXNrKCh0cmFjZU1hc2sgJiBTVEFDSykgPyBEaWFnc19FWElUIDogMCk7CisKKyAgICAgICAgICAgIExvZ19wcmludDEoRGlhZ3NfVVNFUjEsICJ0cmFjZSBtYXNrIHNldCB0byAweCV4IiwgdHJhY2VNYXNrKTsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFdhaXQgZm9yIHRoZSBKb2luIHNlbWFwaG9yZSB0byBiZSBzZXQgYnkgdGhlIHJlY2VpcHQgb2YgYQorICAgICAgICAgKiBKb2luIGZyYW1lIGZyb20gYSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBhbiBFbmQgRGV2aWNlLiAKKyAgICAgICAgICovCisgICAgICAgIGlmIChzSm9pblNlbSAmJiAoc051bUN1cnJlbnRQZWVycyA8IE5VTV9DT05ORUNUSU9OUykpIHsKKyAgICAgICAgICAgIC8qIGxpc3RlbiBmb3IgYSBuZXcgY29ubmVjdGlvbiAqLworICAgICAgICAgICAgUmFkaW9fbGlzdGVuKCZzTElEW3NOdW1DdXJyZW50UGVlcnNdKTsKKyAgICAgICAgICAgIHNOdW1DdXJyZW50UGVlcnMrKzsKKyAgICAgICAgICAgIGludFN0YXRlID0gR2F0ZV9lbnRlclN5c3RlbSgpOworICAgICAgICAgICAgaWYgKHNKb2luU2VtKSB7CisgICAgICAgICAgICAgICAgc0pvaW5TZW0tLTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEdhdGVfbGVhdmVTeXN0ZW0oaW50U3RhdGUpOworICAgICAgICB9CisgICAgCisgICAgICAgIC8qIGNoYW5nZSBjaGFubmVsIGlmIHJlcXVlc3RlZCAqLworICAgICAgICBpZiAocmFkaW9DaGFuICE9IElOVkFMSURfQ0hBTikgeworICAgICAgICAgICAgUmFkaW9fc2V0Q2hhbm5lbCgoSW50KXJhZGlvQ2hhbik7CisgICAgICAgICAgICByYWRpb0NoYW4gPSBJTlZBTElEX0NIQU47CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qIGlmIGl0IGlzIHRpbWUgdG8gbWVhc3VyZSBvdXIgb3duIHRlbXBlcmF0dXJlLi4uICovCisgICAgICAgIGlmIChzU2VsZk1lYXN1cmVTZW0pIHsKKyAgICAgICAgICAgIGNoYXIgbXNnW01FU1NBR0VfTEVOR1RIXTsKKyAgICAgICAgICAgIGludCBkZWdDLCB2b2x0OworICAgICAgICAgICAgdm9sYXRpbGUgbG9uZyB0ZW1wOworICAgICAgICAgICAgaW50IHJlc3VsdHNbMl07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFEQzEwQ1RMMSA9IElOQ0hfMTAgKyBBREMxMERJVl80OyAgIC8qIFRlbXAgU2Vuc29yIEFEQzEwQ0xLLzUgKi8KKyAgICAgICAgICAgIEFEQzEwQ1RMMCA9IFNSRUZfMSArIEFEQzEwU0hUXzMgKyBSRUZPTiArIEFEQzEwT04gKyBBREMxMElFICsgQURDMTBTUjsKKyAgICAgICAgICAgIGZvciAoZGVnQyA9IDI0MDsgZGVnQyA+IDA7IGRlZ0MtLSk7IC8qIGFsbG93IHJlZmVyZW5jZSB0byBzZXR0bGUgKi8KKyAgICAgICAgICAgIEFEQzEwQ1RMMCB8PSBFTkMgKyBBREMxMFNDOyAgICAgICAgIC8qIFNhbXBsZSAmIGNvbnZlcnRpb24gc3RhcnQgKi8KKyAgICAgICAgICAgIF9fYmlzX1NSX3JlZ2lzdGVyKENQVU9GRiArIEdJRSk7ICAgIC8qIExQTTAgd2l0aCBpbnRlcnVwdHMgb24gKi8KKyAgICAgICAgICAgIHJlc3VsdHNbMF0gPSBBREMxME1FTTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQURDMTBDVEwwICY9IH5FTkM7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEFEQzEwQ1RMMSA9IElOQ0hfMTE7ICAgICAgICAgICAgICAgIC8qIEFWY2MvMiAqLworICAgICAgICAgICAgQURDMTBDVEwwID0gU1JFRl8xICsgQURDMTBTSFRfMiArIFJFRk9OICsgQURDMTBPTiArIEFEQzEwSUUgKyBSRUYyXzVWOworICAgICAgICAgICAgZm9yIChkZWdDID0gMjQwOyBkZWdDID4gMDsgZGVnQy0tKTsgLyogYWxsb3cgcmVmZXJlbmNlIHRvIHNldHRsZSAqLworICAgICAgICAgICAgQURDMTBDVEwwIHw9IEVOQyArIEFEQzEwU0M7ICAgICAgICAgLyogU2FtcGxlICYgY29udmVydGlvbiBzdGFydCAqLworICAgICAgICAgICAgX19iaXNfU1JfcmVnaXN0ZXIoQ1BVT0ZGICsgR0lFKTsgICAgLyogTFBNMCB3aXRoIGludGVycnVwdHMgb24gKi8KKyAgICAgICAgICAgIHJlc3VsdHNbMV0gPSBBREMxME1FTTsKKyAgICAgICAgICAgIEFEQzEwQ1RMMCAmPSB+RU5DOworICAgICAgICAgICAgQURDMTBDVEwwICY9IH4oUkVGT04gKyBBREMxME9OKTsgICAgLyogdHVybiBvZmYgQS9EOyBzYXZlcyBwb3dlciAqLworICAgICAgICAgICAgCisgICAgICAgICAgICAvKiBvQyA9ICgoQTEwLzEwMjQpKjE1MDBtViktOTg2bVYpKjEvMy41NW1WID0gQTEwKjQyMy8xMDI0IC0gMjc4ICovCisgICAgICAgICAgICAvKiB0aGUgdGVtcGVyYXR1cmUgaXMgcHJpbnRlZCBhcyBhbiBpbnRlZ2VyIHdoZXJlIDMyLjEgPSAzMjEgKi8KKyAgICAgICAgICAgIC8qIGhlbmNlIDQyMzAgaW5zdGVhZCBvZiA0MjMgKi8KKyAgICAgICAgICAgIHRlbXAgPSByZXN1bHRzWzBdOworICAgICAgICAgICAgZGVnQyA9ICgodGVtcCAtIDY3MykgKiA0MjMwKSAvIDEwMjQ7CisgICAgICAgICAgICBpZiAoVEVNUF9PRkZTRVQgIT0gMHhGRkZGKSB7CisgICAgICAgICAgICAgICAgZGVnQyArPSBURU1QX09GRlNFVDsgCisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHRlbXAgPSByZXN1bHRzWzFdOworICAgICAgICAgICAgdm9sdCA9ICh0ZW1wICogMjUpIC8gNTEyOworICAgICAgICAgICAgbXNnWzBdID0gZGVnQyAmIDB4RkY7CisgICAgICAgICAgICBtc2dbMV0gPSAoZGVnQyA+PiA4KSAmIDB4RkY7CisgICAgICAgICAgICBtc2dbMl0gPSB2b2x0OworCisgICAgICAgICAgICBwcmludE1lc3NhZ2UoLTEsIGdldFJzc2koKSwgbXNnKTsKKyAgICAgICAgICAgIEJzcF90b2dnbGVMZWQoUkVEKTsKKworICAgICAgICAgICAgc1NlbGZNZWFzdXJlU2VtID0gMDsKKyAgICAgICAgfQorICAgIAorICAgICAgICAvKiAgSGF2ZSB3ZSByZWNlaXZlZCBhIGZyYW1lIG9uIG9uZSBvZiB0aGUgRUQgY29ubmVjdGlvbnM/CisgICAgICAgICAqICBObyBjcml0aWNhbCBzZWN0aW9uIC0tIGl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRlciBtdWNoIGlmIHdlIG1pc3MgYQorICAgICAgICAgKiAgcG9sbCAKKyAgICAgICAgICovCisgICAgICAgIGlmIChzUGVlckZyYW1lU2VtKSB7CisgICAgICAgICAgICB1aW50OF90IG1zZ1tNQVhfQVBQX1BBWUxPQURdLCBsZW4sIGk7CisgICAgICAgIAorICAgICAgICAgICAgLyogcHJvY2VzcyBhbGwgZnJhbWVzIHdhaXRpbmcgKi8KKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBzTnVtQ3VycmVudFBlZXJzOyArK2kpICB7CisgICAgICAgICAgICAgICAgaWYgKFJhZGlvX3JlY2VpdmUoc0xJRFtpXSwgbXNnLCAmbGVuKSA9PSBSYWRpb19TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgICAgIFJhZGlvX1J4TWV0cmljcyBtZXRyaWNzOworCisgICAgICAgICAgICAgICAgICAgIFJhZGlvX2dldE1ldHJpY3Moc0xJRFtpXSwgJm1ldHJpY3MpOworICAgICAgICAgICAgICAgICAgICBwcmludE1lc3NhZ2UoaSwgbWV0cmljcy5yc3NpLCAoY2hhciAqKW1zZyk7CisgICAgICAgICAgICAgICAgICAgIEJzcF90b2dnbGVMZWQoR1JFRU4pOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaW50U3RhdGUgPSBHYXRlX2VudGVyU3lzdGVtKCk7CisgICAgICAgICAgICAgICAgICAgIHNQZWVyRnJhbWVTZW0tLTsKKyAgICAgICAgICAgICAgICAgICAgR2F0ZV9sZWF2ZVN5c3RlbShpbnRTdGF0ZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvKgorICogID09PT09PT09IGNyZWF0ZVJhbmRvbUFkZHJlc3MgPT09PT09PT0KKyAqLwordm9pZCBjcmVhdGVSYW5kb21BZGRyZXNzKHZvaWQpCit7CisgICAgdW5zaWduZWQgaW50IHJhbmQsIHJhbmQyOworICAgIGV4dGVybiBpbnQgVElfZ2V0UmFuZG9tSW50ZWdlckZyb21WTE8odm9pZCk7CisgICAgCisgICAgZG8geyAgICAvKiBmaXJzdCBieXRlIGNhbid0IGJlIDB4MDAgb3IgMHhGRiAqLworICAgICAgICByYW5kID0gVElfZ2V0UmFuZG9tSW50ZWdlckZyb21WTE8oKTsgICAgCisgICAgfSB3aGlsZSgocmFuZCAmIDB4RkYwMCkgPT0gMHhGRjAwIHx8IChyYW5kICYgMHhGRjAwKSA9PSAweDAwMDApOworCisgICAgcmFuZDIgPSBUSV9nZXRSYW5kb21JbnRlZ2VyRnJvbVZMTygpOworICAgIAorICAgIC8qIHdyaXRlIHRoZSByYW5kb20gYWRkcmVzcyB0byBGbGFzaCAqLworICAgIEJDU0NUTDEgPSBDQUxCQzFfMU1IWjsgICAgICAgICAgICAgIC8qIFNldCBEQ08gdG8gMU1IeiAqLworICAgIERDT0NUTCA9IENBTERDT18xTUhaOworICAgIEZDVEwyID0gRldLRVkgKyBGU1NFTDAgKyBGTjE7ICAgICAgIC8qIE1DTEsvMyBmb3IgRmxhc2ggVGltaW5nIEdlbmVyYXRvciAqLworICAgIEZDVEwzID0gRldLRVkgKyBMT0NLQTsgICAgICAgICAgICAgIC8qIENsZWFyIExPQ0sgJiBMT0NLQSBiaXRzICovCisgICAgRkNUTDEgPSBGV0tFWSArIFdSVDsgICAgICAgICAgICAgICAgLyogU2V0IFdSVCBiaXQgZm9yIHdyaXRlIG9wZXJhdGlvbiAqLworICAgIAorICAgIEZMQVNIX0FERFJbMF0gPSAocmFuZCA+PiA4KSAmIDB4RkY7CisgICAgRkxBU0hfQUREUlsxXSA9IHJhbmQgJiAweEZGOworICAgIEZMQVNIX0FERFJbMl0gPSAocmFuZDIgPj4gOCkgJiAweEZGOyAKKyAgICBGTEFTSF9BRERSWzNdID0gcmFuZDIgJiAweEZGOyAKKyAgICAKKyAgICBGQ1RMMSA9IEZXS0VZOyAgICAgICAgICAgICAgICAgICAgICAvKiBDbGVhciBXUlQgYml0ICovCisgICAgRkNUTDMgPSBGV0tFWSArIExPQ0tBICsgTE9DSzsgICAgICAgLyogU2V0IExPQ0sgJiBMT0NLQSBiaXQgKi8KK30KKworLyoKKyAqICA9PT09PT09PSBwcmludE1lc3NhZ2UgPT09PT09PT0KKyAqLwordm9pZCBwcmludE1lc3NhZ2UoaW50IGFkZHIsIHNpZ25lZCBjaGFyIHJzc2ksIGNoYXIgbXNnW01FU1NBR0VfTEVOR1RIXSkKK3sKKyAgICBpbnQgcnNzaV9wY3Q7CisgICAgaW50IHRlbXA7CisgICAgCisgICAgLyogIENvbnZlcnQgcmF3IHJzc2kgdmFsdWUgaW50byBhICJwZXJjZW50IgorICAgICAqICBXZSBjb3VsZCBzY2FsZSB0aGUgcnNzaSB2YWx1ZSBiYXNlZCBvbiB0aGUgZnVsbCByYW5nZSBvZiB0aGUKKyAgICAgKiAgZGF0YSB0eXBlIChbLTEyOCwxMjddKToKKyAgICAgKiAgICAgIHJzc2lfcGN0ID0gKGludClyc3NpX3BjdCArIDEyODsKKyAgICAgKiAgICAgIHJzc2lfcGN0ID0gKHJzc2lfcGN0ICogMTAwKSAvIDI1NjsKKyAgICAgKgorICAgICAqICBCdXQgc2luY2UgcnNzaSBpcyBkQm0sIGl0J3MgcmVhbCByYW5nZSBpcyBbLTExMCwgMCkgYW5kLCBpbgorICAgICAqICBwcmFjdGljZSBuZXZlciBzZWVtcyB0byBnbyBiZWxvdyAtOTguICBTbywgd2Ugc2ltcGx5IGFkZCAxMDAgdG8KKyAgICAgKiAgdGhlIHJhdyB2YWx1ZS4KKyAgICAgKi8KKyAgICByc3NpX3BjdCA9IHJzc2kgKyAxMDA7CisgICAgCisgICAgdGVtcCA9IG1zZ1swXSArIChtc2dbMV0gPDwgOCk7CisgICAgaWYgKG1zZ1sxXSA9PSAweDgwKSB7CisgICAgICAgIGlmICh0cmFjZU1hc2sgJiBSQURJTykgeworICAgICAgICAgICAgTG9nX3ByaW50MihEaWFnc19VU0VSMSwKKyAgICAgICAgICAgICAgICAidHJhY2UgZXZlbnQgcmVjZWl2ZWQ6IG5vZGU6ICUwLjJkLCBzdHJlbmd0aDogJTNkIiwKKyAgICAgICAgICAgICAgICBhZGRyICsgMSwgcnNzaV9wY3QpOworICAgICAgICB9CisgICAgICAgIHByaW50RURFdmVudChtc2cgKyAyLCBtc2dbMF0pOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcHJpbnRUZW1wRGF0YShhZGRyICsgMSwgdGVtcCwgbXNnWzJdLCByc3NpX3BjdCk7CisKKyAgICAgICAgaWYgKFN0YWNrX2dldFVudXNlZCgpIDw9IDApIHsKKyAgICAgICAgICAgIElBcmcgaW50U3RhdGU7CisgICAgICAgICAgICBTeXN0ZW1fcHJpbnRmKCJ3YXJuaW5nOiBzdGFjayBvdmVycnVuXHJcbiIpOworICAgICAgICAgICAgaW50U3RhdGUgPSBHYXRlX2VudGVyU3lzdGVtKCk7CisgICAgICAgICAgICBTdGFja19maWxsKCk7CisgICAgICAgICAgICBHYXRlX2xlYXZlU3lzdGVtKGludFN0YXRlKTsKKyAgICAgICAgfQorICAgIH0KK30KKworI2RlZmluZSBFVkVOVF9TVUZGSVhfU0laRSAoc2l6ZW9mKExvZ19FdmVudFJlYyktc2l6ZW9mKFR5cGVzX1RpbWVzdGFtcDY0KSkKKworLyoKKyAqICA9PT09PT09PSBwcmludEVERXZlbnQgPT09PT09PT0KKyAqLworVm9pZCBwcmludEVERXZlbnQoY2hhciBtc2dbXSwgaW50IGxlbikKK3sKKyAgICBMb2dfRXZlbnRSZWMgZXZ0UmVjOworICAgIENoYXIgKnNyYywgKmRzdDsKKyAgICBJbnQgaTsKKworICAgIGlmIChsZW4gPiBFVkVOVF9TVUZGSVhfU0laRSkgeworICAgICAgICBsZW4gPSBFVkVOVF9TVUZGSVhfU0laRTsKKyAgICB9CisKKyAgICAvKiAidW5wYWNrIiBtZXNzYWdlIGludG8gYSBMb2dfRXZlbnRSZWMgKi8KKyAgICBldnRSZWMudHN0YW1wLmhpID0gMDsKKyAgICBldnRSZWMudHN0YW1wLmxvID0gMDsKKyAgICBzcmMgPSBtc2c7CisgICAgZHN0ID0gKENoYXIgKikmZXZ0UmVjLnNlcmlhbDsKKyAgICBmb3IgKGkgPSBsZW47IGkgPiAwOyBpLS0pIHsKKyAgICAgICAgKmRzdCsrID0gKnNyYysrOworICAgIH0KKworICAgIC8qIHB1c2ggRUQgZXZlbnQgb3V0IHRoZSBzZXJpYWwgcG9ydCAqLworCisgICAgLyogc2VuZCBoZWFkZXIgKi8KKyAgICBTeXNVYXJ0X3B1dGNoKCdcMDEnKTsKKworICAgIC8qIHNlbmQgcHJvZyBpZCAqLworICAgIFN5c1VhcnRfcHV0Y2goJ1wwMScpOworCisgICAgLyogc2VuZCBwYXlsb2FkICovCisgICAgZm9yIChzcmMgPSAoQ2hhciAqKSZldnRSZWMsIGkgPSAwOyBpIDwgc2l6ZW9mKGV2dFJlYyk7IGkrKykgeworICAgICAgICBTeXNVYXJ0X3B1dGNoKCpzcmMrKyk7CisgICAgfQorfQorCisvKgorICogID09PT09PT09IHByaW50VGVtcERhdGEgPT09PT09PT0KKyAqLwordm9pZCBwcmludFRlbXBEYXRhKGludCBub2RlLCBpbnQgdGVtcCwgaW50IHZvbHQsIGludCByc3NpX3BjdCkKK3sKKyAgICBpbnQgdDEsIHQyOworICAgIGNoYXIgKmZvcm1hdCA9ICJOb2RlOiUwLjJkLCBUZW1wOiAlZC4lZEMsIEJhdHRlcnk6ICVkLiVkViwgU3RyZW5ndGg6ICVkXG4iOworCisgICAgaWYgKCFkZWdDTW9kZSkgeworICAgICAgICB0ZW1wID0gKCgoZmxvYXQpdGVtcCkgKiAxLjgpICsgMzIwOworICAgIH0KKworICAgIHQxID0gdGVtcCAvIDEwOworICAgIHQyID0gdGVtcCAlIDEwOworICAgIGlmICh0MiA8IDApIHsKKyAgICAgICAgdDIgPSAtMSAqIHQyOworICAgIH0KKworICAgIGlmICghZGVnQ01vZGUpIHsKKyAgICAgICAgZm9ybWF0ID0gIk5vZGU6JTAuMmQsIFRlbXA6ICVkLiVkRiwgQmF0dGVyeTogJWQuJWRWLCBTdHJlbmd0aDogJWRcbiI7CisgICAgfQorCisgICAgU3lzdGVtX3ByaW50Zihmb3JtYXQsIG5vZGUsIHQxLCB0Miwgdm9sdCAvIDEwLCB2b2x0ICUgMTAsIHJzc2lfcGN0KTsKK30KKworLyoKKyAqICA9PT09PT09PSBtY3VJbml0ID09PT09PT09CisgKi8KK3ZvaWQgbWN1SW5pdCh2b2lkKQoreworICAgIEJDU0NUTDEgPSBDQUxCQzFfOE1IWjsgICAgICAgICAgICAgIC8qIFNldCBEQ08gKi8KKyAgICBEQ09DVEwgPSBDQUxEQ09fOE1IWjsKKyAgICBCQ1NDVEwzIHw9IExGWFQxU18yOyAgICAgICAgICAgICAgICAvKiBMRlhUMSA9IFZMTyAqLworICAgIAorICAgIFRCQ0NUTDAgPSBDQ0lFOyAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0IgaW50ZXJydXB0IGVuYWJsZWQgKi8KKyAgICBUQkNDUjAgPSAxMjAwMDsgICAgICAgICAgICAgICAgICAgICAvKiB+MSBzZWNvbmQgKi8KKyAgICBUQkNUTCA9IFRBU1NFTF8xICsgTUNfMTsgICAgICAgICAgICAvKiBBQ0xLLCB1cG1vZGUgKi8KK30KKworLyoKKyAqICA9PT09PT09PSBnZXRSc3NpID09PT09PT09CisgKiAgQ29tcHV0ZSBhIG1lYXN1cmUgb2YgdGhlIHNpZ25hbCBzdHJlbmd0aCBvbiB0aGUgY3VycmVudCBjaGFubmVsLiAgVGhpcworICogIGdpdmVzIGEgbWVhc3VyZSBvZiBpbnRlcmZlcmVuY2UgZnJvbSBvdGhlciB3aXJlbGVzcyBkZXZpY2VzIGFuZCBjYW4gYmUKKyAqICB1c2VkIHRvIGRlY2lkZSB0byBzd2l0Y2ggY2hhbm5lbHMgdG8gYXZvaWQgaW50ZXJmZXJlbmNlLgorICovCisjZGVmaW5lIFdMRU4gICAyCisjZGVmaW5lIE5VTVNBTVBMRVMgICgyNCAvIFdMRU4pCisKK1JhZGlvX1Jzc2kgZ2V0UnNzaSgpCit7CisgICAgSW50IG1heCA9IC0xMDA7CisgICAgSW50IHRvdGFsOworICAgIEludCBpLCBqOworICAgIFJhZGlvX1Jzc2kgd2luZG93W1dMRU5dOworICAgIAorICAgIGZvciAoaSA9IDE7IGkgPD0gTlVNU0FNUExFUzsgaSsrKSB7CisgICAgICAgIGlmIChzUGVlckZyYW1lU2VtIHx8IHNKb2luU2VtKSB7CisgICAgICAgICAgICByZXR1cm4gKChSYWRpb19Sc3NpKW1heCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3dbaSAlIFdMRU5dID0gUmFkaW9fZ2V0UnNzaSgpOworICAgICAgICBpZiAoaSA+PSBXTEVOKSB7CisgICAgICAgICAgICBmb3IgKHRvdGFsID0gaiA9IDA7IGogPCBXTEVOOyBqKyspIHsKKyAgICAgICAgICAgICAgICB0b3RhbCArPSB3aW5kb3dbal07CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0b3RhbCA9IHRvdGFsIC8gV0xFTjsKKyAgICAgICAgICAgIGlmIChtYXggPCB0b3RhbCkgeworICAgICAgICAgICAgICAgIG1heCA9IHRvdGFsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIEJzcF9kZWxheSgxKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuICgoUmFkaW9fUnNzaSltYXgpOworfQorCisvKgorICogID09PT09PT09IHNDQiA9PT09PT09PQorICogIFJ1bnMgaW4gSVNSIGNvbnRleHQuIFJlYWRpbmcgdGhlIGZyYW1lIHNob3VsZCBiZSBkb25lIGluIHRoZQorICogIGFwcGxpY2F0aW9uIHRocmVhZCBub3QgaW4gdGhlIElTUiB0aHJlYWQuCisgKi8KK3N0YXRpYyB1aW50OF90IHNDQihSYWRpb19MaW5rSWQgbGlkKQoreworICAgIGlmIChsaWQpICB7CisgICAgICAgIHNQZWVyRnJhbWVTZW0rKzsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHNKb2luU2VtKys7CisgICAgfQorICAgIAorICAgIC8qIGxlYXZlIGZyYW1lIHRvIGJlIHJlYWQgYnkgYXBwbGljYXRpb24uICovCisgICAgcmV0dXJuICgwKTsKK30KKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyogQURDMTAgaW50ZXJydXB0IHNlcnZpY2Ugcm91dGluZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KK19fYXNtKCJcdC5nbG9iYWwgQURDMTBfSVNSIik7CitfX2FzbSgiXHQuc2VjdCAgIFwiLmFkYzEwXCIiKTsKK19fYXNtKCJcdC5hbGlnbiAgMiIpOworX19hc20oIl9BREMxMF92ZWN0b3I6XG5cdC5maWVsZCBBREMxMF9JU1IsIDE2Iik7CitfX2ludGVycnVwdCB2b2lkIEFEQzEwX0lTUih2b2lkKQoreworICAgIF9fYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoQ1BVT0ZGKTsgIC8qIENsZWFyIENQVU9GRiBiaXQgZnJvbSAwKFNSKSAqLworfQorCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKiBUaW1lciBBMCBpbnRlcnJ1cHQgc2VydmljZSByb3V0aW5lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworX19hc20oIlx0Lmdsb2JhbCBUSU1FUl9BMF9JU1IiKTsKK19fYXNtKCJcdC5zZWN0ICAgXCIudGltZXJfYTBcIiIpOworX19hc20oIlx0LmFsaWduICAyIik7CitfX2FzbSgiX1RJTUVSX0EwX3ZlY3Rvcjpcblx0LmZpZWxkIFRJTUVSX0EwX0lTUiwgMTYiKTsKK19faW50ZXJydXB0IHZvaWQgVElNRVJfQTBfSVNSICh2b2lkKQoreworICAgIHNTZWxmTWVhc3VyZVNlbSA9IDE7Cit9CisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqIFRpbWVyIEIwIGludGVycnVwdCBzZXJ2aWNlIHJvdXRpbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitfX2FzbSgiXHQuZ2xvYmFsIFRJTUVSX0IwX0lTUiIpOworX19hc20oIlx0LnNlY3QgICBcIi50aW1lcl9iMFwiIik7CitfX2FzbSgiXHQuYWxpZ24gIDIiKTsKK19fYXNtKCJfVElNRVJfQjBfdmVjdG9yOlxuXHQuZmllbGQgVElNRVJfQjBfSVNSLCAxNiIpOworX19pbnRlcnJ1cHQgdm9pZCBUSU1FUl9CMF9JU1IgKHZvaWQpCit7CisgICAgc1NlbGZNZWFzdXJlU2VtID0gMTsKK30KKworLyoKKyAqICA9PT09PT09PSB1YXJ0UnhDYWxsYmFjayA9PT09PT09PQorICovCit2b2lkIHVhcnRSeENhbGxiYWNrKGNoYXIgKmJ1ZiwgaW50IGxlbikKK3sKKyAgICBjaGFyIHJ4ID0gYnVmWzBdOworICAgIGV4dGVybiB2b2lkIF9jX2ludDAwKHZvaWQpOworICAgIAorICAgIGlmIChyeCA9PSAnRicgfHwgcnggPT0gJ2YnKSB7CisgICAgICAgIGRlZ0NNb2RlID0gMDsKKyAgICB9CisgICAgZWxzZSBpZiAocnggPT0gJ0MnIHx8IHJ4ID09ICdjJykgeworICAgICAgICBkZWdDTW9kZSA9IDE7CisgICAgfQorICAgIGVsc2UgaWYgKHJ4ID09ICdyJykgeworICAgICAgICB0cmFjZU1hc2sgXj0gKFJBRElPIHwgVFJBQ0UpOworICAgIH0KKyAgICBlbHNlIGlmIChyeCA9PSAnUicpIHsKKyAgICAgICAgdHJhY2VNYXNrIF49IChTTVBMVCB8IFRSQUNFKTsKKyAgICB9CisgICAgZWxzZSBpZiAocnggPT0gJ04nIHx8IHJ4ID09ICduJykgeworICAgICAgICB0cmFjZU1hc2sgPSBUUkFDRTsKKyAgICB9CisgICAgaWYgKHJ4ID09ICdTJyB8fCByeCA9PSAncycpIHsKKyAgICAgICAgdHJhY2VNYXNrIF49IChTVEFDSyB8IFRSQUNFKTsKKyAgICB9CisgICAgaWYgKHJ4ID09ICc/JykgeworICAgICAgICBoZWxwTWFzayA9IEhFTFA7CisgICAgfQorICAgIGlmIChyeCA+PSAnMCcgJiYgcnggPD0gJzMnKSB7CisgICAgICAgIHJhZGlvQ2hhbiA9IHJ4IC0gJzAnOworICAgIH0KKyAgICBpZiAocnggPT0gJyEnKSB7CisgICAgICAgIEJzcF9yZXNldCgpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvbW9uX0FQLmNmZyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvbW9uX0FQLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmY4MzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci9tb25fQVAuY2ZnCkBAIC0wLDAgKzEsNTUgQEAKK3ZhciBTdGFjayA9IHhkYy51c2VNb2R1bGUoJ2xvY2FsLnJ1bnRpbWUudXRpbHMuU3RhY2snKTsKK3ZhciBSYWRpbyA9IHhkYy51c2VNb2R1bGUoJ2xvY2FsLnJmLlJhZGlvJyk7Cit2YXIgQnNwID0geGRjLnVzZU1vZHVsZSgnbG9jYWwucmYuQnNwJyk7Cit2YXIgU2V0dGluZ3MgPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5yZi5TZXR0aW5ncyIpOworU2V0dGluZ3MudHlwZSA9IFNldHRpbmdzLkFDQ0VTU19QT0lOVDsKKwordmFyIE1haW4gPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5NYWluIik7Cit2YXIgRGlhZ3MgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5EaWFncyIpOworCisvKiB1c2UgdGhlIExvZ2dlclN5cyBJTG9nZ2VyIHNlcnZpY2UgcHJvdmlkZXIgKi8KKy8vdmFyIExvZ2dlciA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkxvZ2dlclN5cyIpOwordmFyIExvZ2dlciA9IHhkYy51c2VNb2R1bGUoImxvY2FsLnJ1bnRpbWUuTG9nZ2VyVWFydCIpOworCisvKiBjcmVhdGUgYW5kIGJpbmQgYSBsb2dnZXIgZm9yIGFsbCBub24tbW9kdWxlIGNvZGUgKi8KK01haW4uY29tbW9uJC5sb2dnZXIgPSBMb2dnZXIuY3JlYXRlKCk7CitNYWluLmNvbW1vbiQuZGlhZ3NfRU5UUlkgPSBEaWFncy5BTFdBWVNfT047CisKKy8qIG1pbmltaXplIGZvb3RwcmludCAqLworUHJvZ3JhbS5hcmdTaXplID0gMDsKK1Byb2dyYW0uaGVhcCA9IDA7CitQcm9ncmFtLnN0YWNrID0gMHgxMTA7CisKK3ZhciBFcnIgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5FcnJvciIpOworRXJyLnJhaXNlSG9vayA9IG51bGw7CisKK3ZhciBEZWZhdWx0cyA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkRlZmF1bHRzIik7CitEZWZhdWx0cy5jb21tb24kLmRpYWdzX0FTU0VSVCA9IERpYWdzLkFMV0FZU19PRkY7CitEZWZhdWx0cy5jb21tb24kLmZ4bnRhYiA9IGZhbHNlOworRGVmYXVsdHMuY29tbW9uJC5tZW1vcnlQb2xpY3kgPSB4ZGMubW9kdWxlKCd4ZGMucnVudGltZS5UeXBlcycpLlNUQVRJQ19QT0xJQ1k7CitEZWZhdWx0cy5jb21tb24kLm5hbWVkTW9kdWxlID0gZmFsc2U7CisKK01haW4uY29tbW9uJC5kaWFnc19VU0VSMSA9IERpYWdzLkFMV0FZU19PTjsKKwordmFyIFN5c1VhcnQgPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5ydW50aW1lLlN5c1VhcnQiKTsKK1N5c1VhcnQuZ2V0TGluZUZ4biA9ICImdWFydFJ4Q2FsbGJhY2siOworCit2YXIgU3lzdGVtID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuU3lzdGVtIik7CitTeXN0ZW0uU3VwcG9ydFByb3h5ID0gU3lzVWFydDsKK1N5c3RlbS5tYXhBdGV4aXRIYW5kbGVycyA9IDA7CisKKy8qIHVzZSB0aGUgc2FtZSBsb2dnZXIgZm9yIHRoZSBSYWRpbywgYnV0IGVuYWJsZSBydW50aW1lIHN3aXRjaCAqLworUmFkaW8uY29tbW9uJC5sb2dnZXIgPSBNYWluLmNvbW1vbiQubG9nZ2VyOworUmFkaW8uY29tbW9uJC5kaWFnc19FTlRSWSA9IERpYWdzLlJVTlRJTUVfT0ZGOworUmFkaW8uY29tbW9uJC5kaWFnc19FWElUID0gRGlhZ3MuUlVOVElNRV9PRkY7CitSYWRpby5jb21tb24kLmRpYWdzX1VTRVIxID0gRGlhZ3MuUlVOVElNRV9PRkY7CisvL1JhZGlvLmNvbW1vbiQuZGlhZ3NfVVNFUjEgPSBEaWFncy5BTFdBWVNfT0ZGOworUmFkaW8uY29tbW9uJC5uYW1lZE1vZHVsZSA9IHRydWU7CisKK1N0YWNrLmNvbW1vbiQubG9nZ2VyID0gTWFpbi5jb21tb24kLmxvZ2dlcjsKK1N0YWNrLmNvbW1vbiQuZGlhZ3NfRVhJVCA9IERpYWdzLlJVTlRJTUVfT0ZGOworU3RhY2suY29tbW9uJC5uYW1lZE1vZHVsZSA9IHRydWU7CisKK3ZhciBUZXh0ID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuVGV4dCIpOworVGV4dC5pc0xvYWRlZCA9IGZhbHNlOworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tb25pdG9yL21vbl9FRC5jIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci9tb25fRUQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzhmMjA0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci9tb25fRUQuYwpAQCAtMCwwICsxLDMxOSBAQAorLyoKKyAqICA9PT09PT09PSBtb25fRUQuYyA9PT09PT09PQorICovCisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzdGVtLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTG9nLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRGlhZ3MuaD4KKworI2luY2x1ZGUgPGxvY2FsL3J1bnRpbWUvdXRpbHMvU3RhY2suaD4KKyNpbmNsdWRlIDxsb2NhbC9yZi9SYWRpby5oPgorI2luY2x1ZGUgPGxvY2FsL3JmL0JzcC5oPgorCisjaW5jbHVkZSAibXNwNDMweDIyeDQuaCIKKworI2RlZmluZSBSRUQgICAgICAgICAxCisjZGVmaW5lIEdSRUVOICAgICAgIDIKKworI2RlZmluZSBFVkVOVF9TSVpFIDE4CisKKyNkZWZpbmUgVEVNUF9PRkZTRVQgKCooSW50ICopMHgxMEY0KSAgICAvKiB0ZW1wZXJhdHVyZSBjYWxpYnJhdGlvbiBvZmZzZXQgKi8KKyNkZWZpbmUgRkxBU0hfQUREUiAgKChCaXRzOCAqKTB4MTBGMCkgICAvKiBUYWctTGVuZ3RoLVZhbHVlIFRhYmxlIGFkZHJlc3MgKi8KKworUmFkaW9fTGlua0lkIHNMaW5rSUQxID0gMDsKKwordm9pZCBjcmVhdGVSYW5kb21BZGRyZXNzKCk7IAordm9pZCBsaW5rVG8odm9pZCk7Cit2b2lkIG1lYXN1cmUodWludDhfdCBtc2dbXSk7CisKKy8qCisgKiAgPT09PT09PT0gbWFpbiA9PT09PT09PQorICovCit2b2lkIG1haW4odm9pZCkKK3sKKyAgICBSYWRpb19BZGRyIGxBZGRyOworICAgIFJhZGlvX1N0YXR1cyBzdGF0dXM7CisgICAgdm9sYXRpbGUgaW50IGk7CisKKyAgICBXRFRDVEwgPSBXRFRQVyArIFdEVEhPTEQ7ICAgICAgICAgICAgICAgICAvKiBTdG9wIFdEVCAqLworCisgICAgLyogZGVsYXkgbG9vcCB0byBlbnN1cmUgcHJvcGVyIHN0YXJ0dXAgYmVmb3JlIFNpbXBsaWNpVEkgaW5jcmVhc2VzIERDTworICAgICAqIFRoaXMgaXMgdHlwaWNhbGx5IHRhaWxvcmVkIHRvIHRoZSBwb3dlciBzdXBwbHkgdXNlZCwgYW5kIGluIHRoaXMgY2FzZQorICAgICAqIGlzIG92ZXJraWxsIGZvciBzYWZldHkgZHVlIHRvIHdpZGUgZGlzdHJpYnV0aW9uLgorICAgICAqLworICAgIGZvciAoaSA9IDA7IGkgPCAweEZGRkY7IGkrKyl7fQorCisgICAgaWYgKENBTEJDMV84TUhaID09IDB4RkYpIHsgIC8qIERvIG5vdCBydW4gaWYgY2FsIHZhbHVlcyBhcmUgZXJhc2VkICovCisgICAgICAgIFAxRElSIHw9IDB4MDM7CisgICAgICAgIHdoaWxlICgxKSB7CisgICAgICAgICAgICB2b2xhdGlsZSBpbnQgaTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAweDVGRkY7IGkrKyl7fQorICAgICAgICAgICAgQnNwX3RvZ2dsZUxlZChSRUQpOworICAgICAgICB9CisgICAgfQorCisgICAgbEFkZHIuYWRkclswXSA9IEZMQVNIX0FERFJbMF07CisgICAgbEFkZHIuYWRkclsxXSA9IEZMQVNIX0FERFJbMV07CisgICAgbEFkZHIuYWRkclsyXSA9IEZMQVNIX0FERFJbMl07CisgICAgbEFkZHIuYWRkclszXSA9IEZMQVNIX0FERFJbM107CisKKyAgICBpZiAoRkxBU0hfQUREUlswXSA9PSAweEZGICYmIAorICAgICAgICBGTEFTSF9BRERSWzFdID09IDB4RkYgJiYgCisgICAgICAgIEZMQVNIX0FERFJbMl0gPT0gMHhGRiAmJiAKKyAgICAgICAgRkxBU0hfQUREUlszXSA9PSAweEZGKSB7CisgICAgICAgIGNyZWF0ZVJhbmRvbUFkZHJlc3MoKTsgIC8qIHNldCBSYW5kb20gZGV2aWNlIGFkZHJlc3MgYXQgc3RhcnR1cCAqLworICAgIH0KKworICAgIEJDU0NUTDEgPSBDQUxCQzFfOE1IWjsgICAgICAvKiBTZXQgRENPIGFmdGVyIHJhbmRvbSBmdW5jdGlvbiAqLworICAgIERDT0NUTCA9IENBTERDT184TUhaOworICAgIEJDU0NUTDMgfD0gTEZYVDFTXzI7ICAgICAgICAvKiBMRlhUMSA9IFZMTyAqLworICAgIAorICAgIC8qIFVzZSB0aW1lciBpbnRlcnJ1cHQgdG8gd2FrZSB1cyBmcm9tIExQTSBvbmNlIHBlciBzZWNvbmQKKyAgICAgKiBXZSB1c2UgVGltZXJfQiBzaW5jZSBCU1AgdXNlcyBUaW1lcl9BCisgICAgICovCisgICAgVEJDQ1RMMCA9IENDSUU7ICAgICAgICAgICAgIC8qIFRCQ0NSMCBpbnRlcnJ1cHQgZW5hYmxlZCAqLworICAgIFRCQ0NSMCA9IDEyMDAwOyAgICAgICAgICAgICAvKiB+MSBzZWNvbmQgKEAgOE1IeikgKi8KKyAgICBUQkNUTCA9IFRBU1NFTF8xICsgTUNfMTsgICAgLyogQUNMSywgdXBtb2RlICovCisgICAgCisgICAgLyogIEtlZXAgdHJ5aW5nIHRvIGpvaW4gdW50aWwgc3VjY2Vzc2Z1bC4gdG9nZ2xlIExFRHMgdG8gaW5kaWNhdGUgdGhhdAorICAgICAqICBqb2luaW5nIGhhcyBub3Qgb2NjdXJyZWQuCisgICAgICovCisgICAgQnNwX3R1cm5PbkxlZChHUkVFTik7CisgICAgd2hpbGUgKFJhZGlvX1NVQ0NFU1MgIT0gKHN0YXR1cz1SYWRpb19zdGFydCgoUmFkaW9fQ2FsbEJhY2spMCwgJmxBZGRyKSkpIHsKKyAgICAgICAgU3lzdGVtX3ByaW50Zigid2FpdGluZyB0byBqb2luICh1bnVzZWQgc3RhY2s6ICVkLCBzdGF0dXMgJWQpIC4uLlxyXG4iLAorICAgICAgICAgICAgU3RhY2tfZ2V0VW51c2VkKCksIHN0YXR1cyk7CisgICAgICAgIAorICAgICAgICBpZiAoQnNwX2J1dHRvbigxKSkgeyAgICAvKiByZXNldCEgKi8KKyAgICAgICAgICAgIEJzcF9yZXNldCgpOworICAgICAgICB9CisKKyAgICAgICAgQnNwX3RvZ2dsZUxlZChSRUQpOworICAgICAgICBCc3BfdG9nZ2xlTGVkKEdSRUVOKTsKKyAgICAgICAgX19iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzICsgR0lFKTsgICAgIC8qIExQTTMgd2l0aCBpbnRzIGVuYWJsZWQgKi8KKyAgICB9CisKKyAgICAvKiB1bmNvbmRpdGlvbmFsIGxpbmsgdG8gQVAgd2hpY2ggaXMgbGlzdGVuaW5nIGR1ZSB0byBzdWNjZXNzZnVsIGpvaW4uICovCisgICAgbGlua1RvKCk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gY3JlYXRlUmFuZG9tQWRkcmVzcyA9PT09PT09PQorICovCit2b2lkIGNyZWF0ZVJhbmRvbUFkZHJlc3MoKQoreworICAgIHVuc2lnbmVkIGludCByYW5kLCByYW5kMjsKKyAgICBleHRlcm4gaW50IFRJX2dldFJhbmRvbUludGVnZXJGcm9tVkxPKHZvaWQpOworICAgIAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZpcnN0IGJ5dGUgY2FuIG5vdCBiZSAweDAwIG9yIDB4RkYgKi8KKyAgICAgICAgcmFuZCA9IFRJX2dldFJhbmRvbUludGVnZXJGcm9tVkxPKCk7CisgICAgfSB3aGlsZSgocmFuZCAmIDB4RkYwMCkgPT0gMHhGRjAwIHx8IChyYW5kICYgMHhGRjAwKSA9PSAweDAwMDApOworCisgICAgcmFuZDIgPSBUSV9nZXRSYW5kb21JbnRlZ2VyRnJvbVZMTygpOworICAKKyAgICBCQ1NDVEwxID0gQ0FMQkMxXzFNSFo7ICAgICAgICAgICAgICAvKiBTZXQgRENPIHRvIDFNSHogKi8KKyAgICBEQ09DVEwgPSBDQUxEQ09fMU1IWjsKKyAgICBGQ1RMMiA9IEZXS0VZICsgRlNTRUwwICsgRk4xOyAgICAgICAvKiBNQ0xLLzMgZm9yIEZsYXNoIFRpbWluZyBHZW5lcmF0b3IgKi8KKyAgICBGQ1RMMyA9IEZXS0VZICsgTE9DS0E7ICAgICAgICAgICAgICAvKiBDbGVhciBMT0NLICYgTE9DS0EgYml0cyAqLworICAgIEZDVEwxID0gRldLRVkgKyBXUlQ7ICAgICAgICAgICAgICAgIC8qIFNldCBXUlQgYml0IGZvciB3cml0ZSBvcGVyYXRpb24gKi8KKyAgICAKKyAgICBGTEFTSF9BRERSWzBdID0gKHJhbmQgPj4gOCkgJiAweEZGOworICAgIEZMQVNIX0FERFJbMV0gPSByYW5kICYgMHhGRjsKKyAgICBGTEFTSF9BRERSWzJdID0gKHJhbmQyID4+IDgpICYgMHhGRjsgCisgICAgRkxBU0hfQUREUlszXSA9IHJhbmQyICYgMHhGRjsgCisgICAgCisgICAgRkNUTDEgPSBGV0tFWTsgICAgICAgICAgICAgICAgICAgICAgLyogQ2xlYXIgV1JUIGJpdCAqLworICAgIEZDVEwzID0gRldLRVkgKyBMT0NLQSArIExPQ0s7ICAgICAgIC8qIFNldCBMT0NLICYgTE9DS0EgYml0ICovCit9CisKKy8qCisgKiAgPT09PT09PT0gbGlua1RvID09PT09PT09CisgKi8KK3ZvaWQgbGlua1RvKCkKK3sKKyAgICB1aW50OF90ICBtc2dbM107CisgICAgdWludDhfdCB0cmFjZUZsYWcgPSAwOworICAgIAorICAgIC8qIHR1cm4gb2ZmIGFsbCBMRURzICovCisgICAgQnNwX3R1cm5PZmZMZWQoUkVEKTsKKyAgICBCc3BfdHVybk9mZkxlZChHUkVFTik7CisKKyAgICAvKiBrZWVwIHRyeWluZyB0byBsaW5rLi4uICovCisgICAgd2hpbGUgKFJhZGlvX1NVQ0NFU1MgIT0gUmFkaW9fbGluaygmc0xpbmtJRDEpKSB7CisgICAgICAgIF9fYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cyArIEdJRSk7ICAvKiBMUE0zIHdpdGggaW50ZXJydXB0cyBlbmFibGVkICovCisKKyAgICAgICAgaWYgKEJzcF9idXR0b24oMSkpIHsgICAgLyogcmVzZXQhICovCisgICAgICAgICAgICBCc3BfcmVzZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIEJzcF90b2dnbGVMZWQoUkVEKTsKKyAgICAgICAgQnNwX3RvZ2dsZUxlZChHUkVFTik7CisgICAgfQorICAgIAorICAgIC8qIHR1cm4gb2ZmIGFsbCBMRURzICovCisgICAgQnNwX3R1cm5PZmZMZWQoUkVEKTsKKyAgICBCc3BfdHVybk9mZkxlZChHUkVFTik7CisKKyAgICBMb2dfd3JpdGU0KFJhZGlvX0FERFJFU1MsIEZMQVNIX0FERFJbMF0sIEZMQVNIX0FERFJbMV0sCisgICAgICAgIEZMQVNIX0FERFJbMl0sIEZMQVNIX0FERFJbM10pOworICAgIExvZ19wcmludDEoRGlhZ3NfVVNFUjEsICJFbmQgRGV2aWNlOiBsaW5rIGlkID0gJWQiLCBzTGlua0lEMSk7CisKKyAgICB3aGlsZSAoMSkgeworICAgICAgICAvKiBnbyBpbnRvIExQTTMgd2l0aCBpbnRlcnJ1cHRzIGVuYWJsZWQsIHdhaXQgZm9yIHRpbWVyIHRvIGNvbnRpbnVlICovCisgICAgICAgIFJhZGlvX3NsZWVwKCk7CisgICAgICAgIF9fYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cyArIEdJRSk7IAorCisgICAgICAgIC8qIHRpbWUgdG8gd2FrZSB1cCAuLi4gKi8KKyAgICAgICAgUmFkaW9fYXdha2UoKTsKKyAgICAgICAgQnNwX3R1cm5PbkxlZChHUkVFTik7CisKKyAgICAgICAgLyogbWVhc3VyZSB0ZW1wIGFuZCB2b2x0YWdlICovCisgICAgICAgIG1lYXN1cmUobXNnKTsKKworICAgICAgICBpZiAodHJhY2VGbGFnKSB7CisgICAgICAgICAgICBMb2dfd3JpdGUxKFN0YWNrX1VOVVNFRCwgU3RhY2tfZ2V0VW51c2VkKCkpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKEJzcF9idXR0b24oMSkpIHsKKyAgICAgICAgICAgIHRyYWNlRmxhZyBePSAxOworICAgICAgICAgICAgaWYgKHRyYWNlRmxhZykgeworICAgICAgICAgICAgICAgIExvZ19wcmludDAoRGlhZ3NfVVNFUjEsICJFbmQgRGV2aWNlOiBlbmFibGluZyB0cmFjZSAuLi4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIExvZ19wcmludDAoRGlhZ3NfVVNFUjEsICJFbmQgRGV2aWNlOiB0cmFjZSBkaXNhYmxlZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFJhZGlvX01vZHVsZV9zZXRNYXNrKHRyYWNlRmxhZyA/IERpYWdzX0VOVFJZIDogMCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8qIHNlbmQgcmVzdWx0cyB0byBBY2Nlc3MgUG9pbnQgKi8KKyAgICAgICAgaWYgKFJhZGlvX1NVQ0NFU1MgPT0gUmFkaW9fc2VuZChzTGlua0lEMSwgbXNnLCBzaXplb2YobXNnKSkpIHsKKyAgICAgICAgICAgIEJzcF90dXJuT2ZmTGVkKFJFRCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBCc3BfdHVybk9uTGVkKFJFRCk7CisgICAgICAgIH0KKworICAgICAgICBCc3BfdHVybk9mZkxlZChHUkVFTik7CisgICAgfQorfQorCisvKgorICogID09PT09PT09IG1lYXN1cmUgPT09PT09PT0KKyAqLwordm9pZCBtZWFzdXJlKHVpbnQ4X3QgbXNnW10pCit7CisgICAgdm9sYXRpbGUgbG9uZyB0ZW1wOworICAgIGludCBkZWdDLCB2b2x0OworICAgIGludCByZXN1bHRzWzJdOworCisgICAgQURDMTBDVEwxID0gSU5DSF8xMCArIEFEQzEwRElWXzQ7ICAgLyogVGVtcCBTZW5zb3IgQURDMTBDTEsvNSAqLworICAgIEFEQzEwQ1RMMCA9IFNSRUZfMSArIEFEQzEwU0hUXzMgKyBSRUZPTiArIEFEQzEwT04gKyBBREMxMElFICsgQURDMTBTUjsKKworICAgIC8qIGRlbGF5IHRvIGFsbG93IHJlZmVyZW5jZSB0byBzZXR0bGUgKi8KKyAgICBmb3IgKGRlZ0MgPSAyNDA7IGRlZ0MgPiAwOyBkZWdDLS0pOyAgICAgCisKKyAgICBBREMxMENUTDAgfD0gRU5DICsgQURDMTBTQzsgICAgICAgICAvKiBTYW1wbGluZyBhbmQgY29udmVyc2lvbiBzdGFydCAqLworICAgIF9fYmlzX1NSX3JlZ2lzdGVyKENQVU9GRiArIEdJRSk7ICAgIC8qIExQTTAgd2l0aCBpbnRlcnJ1cHRzIGVuYWJsZWQgKi8KKyAgICByZXN1bHRzWzBdID0gQURDMTBNRU07CisgICAgCisgICAgQURDMTBDVEwwICY9IH5FTkM7CisgICAgCisgICAgQURDMTBDVEwxID0gSU5DSF8xMTsgICAgICAgICAgICAgICAgLyogQVZjYy8yICovCisgICAgQURDMTBDVEwwID0gU1JFRl8xICsgQURDMTBTSFRfMiArIFJFRk9OICsgQURDMTBPTiArIEFEQzEwSUUgKyBSRUYyXzVWOworCisgICAgLyogZGVsYXkgdG8gYWxsb3cgcmVmZXJlbmNlIHRvIHNldHRsZSAqLworICAgIGZvciAoZGVnQyA9IDI0MDsgZGVnQyA+IDA7IGRlZ0MtLSk7IAorCisgICAgQURDMTBDVEwwIHw9IEVOQyArIEFEQzEwU0M7ICAgICAgICAgLyogU2FtcGxpbmcgYW5kIGNvbnZlcnNpb24gc3RhcnQgKi8KKyAgICBfX2Jpc19TUl9yZWdpc3RlcihDUFVPRkYgKyBHSUUpOyAgICAvKiBMUE0wIHdpdGggaW50ZXJydXB0cyBlbmFibGVkICovCisgICAgcmVzdWx0c1sxXSA9IEFEQzEwTUVNOworICAgIEFEQzEwQ1RMMCAmPSB+RU5DOworICAgIEFEQzEwQ1RMMCAmPSB+KFJFRk9OICsgQURDMTBPTik7ICAgIC8qIHR1cm4gb2ZmIEEvRCB0byBzYXZlIHBvd2VyICovCisgICAgCisgICAgLyogb0MgPSAoKEExMC8xMDI0KSoxNTAwbVYpLTk4Nm1WKSoxLzMuNTVtViA9IEExMCo0MjMvMTAyNCAtIDI3OCAqLworICAgIC8qIHRoZSB0ZW1wZXJhdHVyZSBpcyB0cmFuc21pdHRlZCBhcyBhbiBpbnRlZ2VyIHdoZXJlIDMyLjEgPSAzMjEgKi8KKyAgICAvKiBoZW5jZSA0MjMwIGluc3RlYWQgb2YgNDIzICovCisgICAgdGVtcCA9IHJlc3VsdHNbMF07CisgICAgZGVnQyA9ICgodGVtcCAtIDY3MykgKiA0MjMwKSAvIDEwMjQ7CisgICAgaWYgKFRFTVBfT0ZGU0VUICE9IDB4RkZGRikgeworICAgICAgICBkZWdDICs9IFRFTVBfT0ZGU0VUOyAKKyAgICB9CisKKyAgICAvKiBFbmNvZGUgZXZlbnQgZm9yIHRyYW5zbWlzc2lvbgorICAgICAqCisgICAgICogbWVzc2FnZSBmb3JtYXQsICBVQiA9IHVwcGVyIEJ5dGUsIExCID0gbG93ZXIgQnl0ZQorICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgKiB8ZGVnQyBMQiB8IGRlZ0MgVUIgfCAgdm9sdCBMQiB8CisgICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqICAgICAgMCAgICAgICAgMSAgICAgICAgIDIKKyAgICAgKi8KKyAgICB0ZW1wID0gcmVzdWx0c1sxXTsKKyAgICB2b2x0ID0gKHRlbXAgKiAyNSkgLyA1MTI7CisgICAgbXNnWzBdID0gZGVnQyAmIDB4RkY7CisgICAgbXNnWzFdID0gKGRlZ0MgPj4gOCkgJiAweEZGOworICAgIG1zZ1syXSA9IHZvbHQ7Cit9CisKKy8qCisgKiAgPT09PT09PT0gbG9nZ2VyQ2FsbGJhY2sgPT09PT09PT0KKyAqLworVm9pZCBsb2dnZXJDYWxsYmFjayhMb2dfRXZlbnRSZWMgKmVycCkKK3sKKyAgICBVSW50OCBtc2dbRVZFTlRfU0laRV07CisgICAgaW50IGxlbiA9IEVWRU5UX1NJWkUgLSAyOworICAgIFVJbnQ4ICpzcmMsICpkc3Q7CisgICAgVUludDE2IG1hc2s7CisgICAgCisgICAgLyogRW5jb2RlIGV2ZW50IGZvciB0cmFuc21pc3Npb24KKyAgICAgKgorICAgICAqIG1lc3NhZ2UgZm9ybWF0OgorICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICogfCBwYXlsb2FkIGxlbiB8IDB4ODAgfCAgZXZlbnQgcGF5bG9hZCAuLi4KKyAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAqICAgICAgMCAgICAgICAgICAgMSAgICAgICAgICAgMiAuLi4KKyAgICAgKi8KKyAgICBtc2dbMF0gPSBsZW47CisgICAgbXNnWzFdID0gMHg4MDsgLyogc2VudGluZWwgZm9yIGV2ZW50IG1lc3NhZ2UgKi8KKworICAgIC8qIGNvcHkgZXZlbnQgaW50byBtc2cgYnVmZmVyICovCisgICAgZm9yIChkc3QgPSBtc2cgKyAyLCBzcmMgPSAoVUludDggKikmZXJwLT5zZXJpYWw7IGxlbiA+IDA7IGxlbi0tKSB7CisgICAgICAgICpkc3QrKyA9ICpzcmMrKzsKKyAgICB9CisKKyAgICAvKiBkaXNhYmxlIGxvZ2dpbmcgb2YgUmFkaW8gdG8gcHJldmVudCByZWN1cnNpb24gKi8KKyAgICBtYXNrID0gUmFkaW9fTW9kdWxlX2dldE1hc2soKTsKKyAgICBSYWRpb19Nb2R1bGVfc2V0TWFzaygwKTsKKworICAgIGlmIChzTGlua0lEMSAmJiBSYWRpb19TVUNDRVNTID09IFJhZGlvX3NlbmQoc0xpbmtJRDEsIG1zZywgc2l6ZW9mKG1zZykpKSB7CisgICAgICAgIEJzcF90dXJuT2ZmTGVkKEdSRUVOKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIEJzcF90b2dnbGVMZWQoR1JFRU4pOworICAgICAgICBCc3BfdG9nZ2xlTGVkKFJFRCk7CisgICAgfQorCisgICAgLyogcmVzdG9yZSBsb2dnaW5nIG9mIFJhZGlvICovCisgICAgUmFkaW9fTW9kdWxlX3NldE1hc2sobWFzayk7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBBREMxMCBpbnRlcnJ1cHQgc2VydmljZSByb3V0aW5lCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitfX2FzbSgiXHQuZ2xvYmFsIEFEQzEwX0lTUiIpOworX19hc20oIlx0LnNlY3QgICBcIi5hZGMxMFwiIik7CitfX2FzbSgiXHQuYWxpZ24gIDIiKTsKK19fYXNtKCJfQURDMTBfdmVjdG9yOlxuXHQuZmllbGQgQURDMTBfSVNSLCAxNiIpOworX19pbnRlcnJ1cHQgdm9pZCBBREMxMF9JU1Iodm9pZCkKK3sKKyAgICBfX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KENQVU9GRik7ICAgICAgLyogQ2xlYXIgQ1BVT0ZGIGJpdCBmcm9tIDAoU1IpICovCit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqICBUaW1lciBCMCBpbnRlcnJ1cHQgc2VydmljZSByb3V0aW5lCisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCitfX2FzbSgiXHQuZ2xvYmFsIFRJTUVSX0IwX0lTUiIpOworX19hc20oIlx0LnNlY3QgICBcIi50aW1lcl9iMFwiIik7CitfX2FzbSgiXHQuYWxpZ24gIDIiKTsKK19fYXNtKCJfVElNRVJfQjBfdmVjdG9yOlxuXHQuZmllbGQgVElNRVJfQjBfSVNSLCAxNiIpOworX19pbnRlcnJ1cHQgdm9pZCBUSU1FUl9CMF9JU1Iodm9pZCkKK3sKKyAgICBfX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cyk7ICAgLyogQ2xlYXIgTFBNMyBiaXRzIGZyb20gMChTUikgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvbW9uX0VELmNmZyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvbW9uX0VELmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzE5ZjNiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci9tb25fRUQuY2ZnCkBAIC0wLDAgKzEsNDggQEAKK3ZhciBTdGFjayA9IHhkYy51c2VNb2R1bGUoJ2xvY2FsLnJ1bnRpbWUudXRpbHMuU3RhY2snKTsKK3ZhciBSYWRpbyA9IHhkYy51c2VNb2R1bGUoJ2xvY2FsLnJmLlJhZGlvJyk7Cit2YXIgQnNwID0geGRjLnVzZU1vZHVsZSgnbG9jYWwucmYuQnNwJyk7Cit2YXIgU2V0dGluZ3MgPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5yZi5TZXR0aW5ncyIpOworU2V0dGluZ3MudHlwZSA9IFNldHRpbmdzLkVORF9ERVZJQ0U7CisKK3ZhciBNYWluID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuTWFpbiIpOwordmFyIERpYWdzID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRGlhZ3MiKTsKKworLyogdXNlIExvZ2dlckNhbGxiYWNrIHNvIHdlIGNhbiBoYW5kbGUgZXZlbnRzIGluIHRoZSBhcHAgKi8KK3ZhciBMb2dnZXIgPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5ydW50aW1lLkxvZ2dlckNhbGxiYWNrIik7CitMb2dnZXIuY2FsbGJhY2tGeG4gPSAiJmxvZ2dlckNhbGxiYWNrIjsKKworLyogY3JlYXRlIGFuZCBiaW5kIGEgbG9nZ2VyIGZvciBhbGwgbm9uLW1vZHVsZSBjb2RlICovCitNYWluLmNvbW1vbiQubG9nZ2VyID0gTG9nZ2VyLmNyZWF0ZSgpOworTWFpbi5jb21tb24kLmRpYWdzX0VOVFJZID0gRGlhZ3MuQUxXQVlTX09OOworTWFpbi5jb21tb24kLmRpYWdzX1VTRVIxID0gRGlhZ3MuQUxXQVlTX09OOworCisvKiB1c2UgdGhlIHNhbWUgbG9nZ2VyIGZvciB0aGUgUmFkaW8sIGJ1dCBlbmFibGUgcnVudGltZSBzd2l0Y2ggKi8KK1JhZGlvLmNvbW1vbiQubG9nZ2VyID0gTWFpbi5jb21tb24kLmxvZ2dlcjsKK1JhZGlvLmNvbW1vbiQuZGlhZ3NfRU5UUlkgPSBEaWFncy5SVU5USU1FX09GRjsKK1JhZGlvLmNvbW1vbiQuZGlhZ3NfRVhJVCA9IERpYWdzLlJVTlRJTUVfT0ZGOworUmFkaW8uY29tbW9uJC5kaWFnc19VU0VSMSA9IERpYWdzLkFMV0FZU19PRkY7CitSYWRpby5jb21tb24kLm5hbWVkTW9kdWxlID0gdHJ1ZTsKKworLyogbWluaW1pemUgZm9vdHByaW50ICovCitQcm9ncmFtLmFyZ1NpemUgPSAwOworUHJvZ3JhbS5oZWFwID0gMDsKK1Byb2dyYW0uc3RhY2sgPSAweDEwMDsKKwordmFyIEVyciA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkVycm9yIik7CitFcnIucmFpc2VIb29rID0gbnVsbDsKKwordmFyIERlZmF1bHRzID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRGVmYXVsdHMiKTsKK0RlZmF1bHRzLmNvbW1vbiQuZGlhZ3NfQVNTRVJUID0gRGlhZ3MuQUxXQVlTX09GRjsKK0RlZmF1bHRzLmNvbW1vbiQuZnhudGFiID0gZmFsc2U7CitEZWZhdWx0cy5jb21tb24kLm1lbW9yeVBvbGljeSA9IHhkYy5tb2R1bGUoJ3hkYy5ydW50aW1lLlR5cGVzJykuU1RBVElDX1BPTElDWTsKK0RlZmF1bHRzLmNvbW1vbiQubmFtZWRNb2R1bGUgPSBmYWxzZTsKKwordmFyIFN5c1VhcnQgPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5ydW50aW1lLlN5c1VhcnQiKTsKKwordmFyIFN5c3RlbSA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLlN5c3RlbSIpOworU3lzdGVtLlN1cHBvcnRQcm94eSA9IFN5c1VhcnQ7CitTeXN0ZW0ubWF4QXRleGl0SGFuZGxlcnMgPSAwOworCit2YXIgVGV4dCA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLlRleHQiKTsKK1RleHQuaXNMb2FkZWQgPSBmYWxzZTsKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci9wYWNrYWdlLmJsZCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvcGFja2FnZS5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU4ZDljYQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvcGFja2FnZS5ibGQKQEAgLTAsMCArMSw4MCBAQAorUGtnLnVzZXMgPSBbInRpL2FwcHMvbXNwNDMwIl07CisvL1BrZy5hdHRycy5wcm9maWxlID0gInJlbGVhc2UiOworCisvKiBnZXQgU2ltcGxpY2lUSSBidWlsZCBvcHRpb25zIHN1cHBvcnQgKi8KK0J1aWxkT3B0cyA9IHhkYy5tb2R1bGUoJ2xvY2FsLnJmLkJ1aWxkT3B0cycpOworCisvKiBTaW1wbGljaVRJIGlzIGluc3RhbGxlZCByZWxhdGl2ZSB0byBsb2NhbC5yZidzIHJlcG9zaXRvcnkgKi8KK0J1aWxkT3B0cy5yb290RGlyID0gQnVpbGRPcHRzLiRwYWNrYWdlLnBhY2thZ2VSZXBvc2l0b3J5CisgICAgKyAiLi4vU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzIjsKKworLyogdGVsbCBtYWtlIGhvdyB0byBmaW5kIHRoZSBTaW1wbGljaVRJIHNvdXJjZXMgKi8KK1BrZy5tYWtlUHJvbG9ndWUgPSBCdWlsZE9wdHMuZ2V0TWFrZVByb2xvZ3VlKCk7CisKKy8qIHNlbGVjdCByYWRpbyBhbmQgbWN1IGRldmljZSAqLworQnVpbGRPcHRzLm1jdSA9IEJ1aWxkT3B0cy5NU1A0MzBGMjI3NDsKK0J1aWxkT3B0cy5yYWRpbyA9IEJ1aWxkT3B0cy5DQzI1MDA7CisKKy8qIHNldCB0aGUgbWF4aW11bSBSYWRpbyBtZXNzYWdlIHNpemUgKi8KK3ZhciBNQVhfQVBQX1BBWUxPQUQgPSAxODsKKworLyogY3JlYXRlIGJ1aWxkIG9wdGlvbnMgZm9yIGFuIEVuZCBEZXZpY2UgKi8KK3ZhciBlZCA9IEJ1aWxkT3B0cy5jcmVhdGUoeworICAgIG1heEhvcENvdW50OiAzLAorICAgIG1heEhvcEZyb21BUDogMSwKKyAgICBtYXhBcHBQYXlsb2FkOiBNQVhfQVBQX1BBWUxPQUQsCisgICAgbGlua1Rva2VuOiAweDAxMDIwMzA0LAorICAgIGpvaW5Ub2tlbjogMHgwNTA2MDcwOCwKKyAgICBmcmVxdWVuY3lBZ2lsaXR5OiB0cnVlLAorICAgIAorICAgIGRldmljZVR5cGU6IEJ1aWxkT3B0cy5FTkRfREVWSUNFLAorICAgIG51bUNvbm5lY3Rpb25zOiAyLAorICAgIGluRnJhbWVRU2l6ZTogMiwKKyAgICBvdXRGcmFtZVFTaXplOiAyLAorICAgIGRldmljZUFkZHJlc3M6ICJ7MHg3NywgMHg1NiwgMHgzNCwgMHgxMn0iLAorICAgIHJ4TW9kZTogQnVpbGRPcHRzLlJYX0FMV0FZUworfSk7CisKKy8qIGNyZWF0ZSBidWlsZCBvcHRpb25zIGZvciBhbiBBY2Nlc3MgUG9pbnQgKi8KK3ZhciBhcCA9IEJ1aWxkT3B0cy5jcmVhdGUoeworICAgIG1heEhvcENvdW50OiAzLAorICAgIG1heEhvcEZyb21BUDogMSwKKyAgICBtYXhBcHBQYXlsb2FkOiBNQVhfQVBQX1BBWUxPQUQsCisgICAgbGlua1Rva2VuOiAweDAxMDIwMzA0LAorICAgIGpvaW5Ub2tlbjogMHgwNTA2MDcwOCwKKyAgICBmcmVxdWVuY3lBZ2lsaXR5OiB0cnVlLAorCisgICAgZGV2aWNlVHlwZTogQnVpbGRPcHRzLkFDQ0VTU19QT0lOVCwKKyAgICBudW1Db25uZWN0aW9uczogMywKKyAgICBpbkZyYW1lUVNpemU6IDYsCisgICAgb3V0RnJhbWVRU2l6ZTogMiwKKyAgICBkZXZpY2VBZGRyZXNzOiAiezB4NzgsIDB4NTYsIDB4MzQsIDB4MTJ9IiwKKyAgICBpc0RhdGFIdWI6IHRydWUsCisgICAgbnVtU3RvcmVBbmRGd2RDbGllbnRzOiAzCit9KTsKKworLyogYnVpbGQgYm90aCB0aGUgYWNjZXNzIHBvaW50IGFuZCBlbmQgZGV2aWNlIGxpYnJhcmllcyAqLworZm9yICh2YXIgaSA9IDA7IGkgPCBCdWlsZC50YXJnZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIHRhcmcgPSBCdWlsZC50YXJnZXRzW2ldOworCisgICAgaWYgKHRhcmcuaXNhLm1hdGNoKC80MzAvKSkgeworICAgICAgICB2YXIgbGliID0gUGtnLmFkZExpYnJhcnkoImxpYi9lZCIsIHRhcmcsIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3M6IGVkLmdldEluY3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZnM6IGVkLmdldERlZnMoKX0pOworICAgICAgICBsaWIuYWRkT2JqZWN0cyhCdWlsZE9wdHMuU1JDUyk7CisKKyAgICAgICAgbGliID0gUGtnLmFkZExpYnJhcnkoImxpYi9hcCIsIHRhcmcsIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3M6IGFwLmdldEluY3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZnM6IGFwLmdldERlZnMoKX0pOworICAgICAgICBsaWIuYWRkT2JqZWN0cyhCdWlsZE9wdHMuU1JDUyk7CisKKyAgICAgICAgdmFyIG1vbl9BUCA9IFBrZy5hZGRFeGVjdXRhYmxlKCJtb25fQVAiLCB0YXJnLCB0YXJnLnBsYXRmb3JtKTsKKyAgICAgICAgbW9uX0FQLmFkZE9iamVjdHMoWyJtb25fQVAuYyIsICJpc3IuYyIsICJ2bG9fcmFuZC5zNDMwIl0pOworCisgICAgICAgIHZhciBtb25fRUQgPSBQa2cuYWRkRXhlY3V0YWJsZSgibW9uX0VEIiwgdGFyZywgdGFyZy5wbGF0Zm9ybSk7CisKKyAgICAgICAgbW9uX0VELmFkZE9iamVjdHMoWyJtb25fRUQuYyIsICJpc3IuYyIsICJ2bG9fcmFuZC5zNDMwIl0pOworICAgIH0KK30KKworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9tb25pdG9yL3BhY2thZ2UueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci9wYWNrYWdlLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NTA0YzM5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci9wYWNrYWdlLnhkYwpAQCAtMCwwICsxLDE3IEBACisvKiEKKyAqICA9PT09PT09PSBtb25pdG9yID09PT09PT09CisgKiAgV2lyZWxlc3MgdGVtcGVyYXR1cmUgc2Vuc29yIGFwcGxpY2F0aW9uCisgKgorICogIFRoaXMgcGFja2FnZSBidWlsZHMgdHdvIGV4ZWN1dGFibGVzOgorICogIEBwKGRsaXN0KQorICogICAgICAtIGBtb2RfQVBgCisgKiAgICAgICAgICBhIHdpcmVsZXNzICJhY2Nlc3MgcG9pbnQiIHRoYXQgYWNjdW11bGF0ZXMgc2Vuc29yIGRhdGEgZnJvbQorICogICAgICAgICAgImVuZCBkZXZpY2VzIiBhbmQgZGlzcGxheXMgdGhlIGRhdGEgdG8gdmlhIGEgVUFSVC4KKyAqICAgICAgLSBgbW9kX0VEYAorICogICAgICAgICAgYW4gImVuZCBkZXZpY2UiIHRoYXQgbW9uaXRvcnMgdGVtcGF0dXJlIGFuZCBiYXR0ZXJ5IHN0cmVuZ3RoCisgKiAgICAgICAgICBhbmQgd2lyZWxlc3NseSB0cmFuc21pdHMgdGhpcyB0byB0aGUgImFjY2VzcyBwb2ludCIuCisgKiAgQHAKKyAqLworcGFja2FnZSBsb2NhbC5hcHBzLm1vbml0b3IKK3sKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvcGFja2FnZS54cyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvcGFja2FnZS54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWEzNDM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci9wYWNrYWdlLnhzCkBAIC0wLDAgKzEsMTQgQEAKKy8qCisgKiAgPT09PT09PT0gZ2V0TGlicyA9PT09PT09PQorICovCitmdW5jdGlvbiBnZXRMaWJzKHByb2cpCit7CisgICAgdmFyIFNldHRpbmdzID0geGRjLm1vZHVsZSgibG9jYWwucmYuU2V0dGluZ3MiKTsKKworICAgIHZhciBsaWIgPSAibGliL2VkIjsKKyAgICBpZiAoU2V0dGluZ3MudHlwZSA9PSBTZXR0aW5ncy5BQ0NFU1NfUE9JTlQpIHsKKyAgICAgICAgbGliID0gImxpYi9hcCI7CisgICAgfQorCisgICAgcmV0dXJuIChsaWIgKyAiLmEiICsgcHJvZy5idWlsZC50YXJnZXQuc3VmZml4KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvdmxvX3JhbmQuaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvdmxvX3JhbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODM1ODA5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci92bG9fcmFuZC5oCkBAIC0wLDAgKzEsNyBAQAorI2lmbmRlZiBWTE9fUmFuZF9MaWJyYXJ5CisjZGVmaW5lIFZMT19SYW5kX0xpYnJhcnkKKworZXh0ZXJuIGludCBUSV9nZXRSYW5kb21JbnRlZ2VyRnJvbUFEQyggdm9pZCApOworZXh0ZXJuIGludCBUSV9nZXRSYW5kb21JbnRlZ2VyRnJvbVZMTyggdm9pZCApOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvdmxvX3JhbmQuczQzMCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL21vbml0b3IvdmxvX3JhbmQuczQzMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMGI4ZGRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvbW9uaXRvci92bG9fcmFuZC5zNDMwCkBAIC0wLDAgKzEsOTYgQEAKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7ICAgVGV4YXMgSW5zdHJ1bWVudHMgSW5jLgorOyAgIE5vdmVtYmVyIDIwMDcKKzsgICBCdWlsdCB3aXRoIFRJJ3MgTVNQNDMwIDMuMSBjb2RlIGdlbgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAuY2RlY2xzIEMKKyV7CisjaW5jbHVkZSAgPG1zcDQzMHgyMng0Lmg+CisKKyNkZWZpbmUgVEJDQ1RMMl8KKyNpZmRlZiBUQkNDVEwyXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGb3Igbm9uLVRpbWVyX0IyIGRldmljZXMgKi8KKyAgI2RlZmluZSBDQ1RMWCBUQkNDVEwyCisgICNkZWZpbmUgQ0NSWCBUQkNDUjIKKyNlbHNlCisgICNkZWZpbmUgQ0NUTFggVEJDQ1RMMAorICAjZGVmaW5lIENDUlggVEJDQ1IwCisjZW5kaWYKKyV9CisKKyAgICAgICAgICAgIC5nbG9iYWwgVElfZ2V0UmFuZG9tSW50ZWdlckZyb21WTE8KKyAgICAgICAgICAgIC5nbG9iYWwgVElfZ2V0UmFuZG9tSW50ZWdlckZyb21BREMKKworICAgICAgICAgICAgLnRleHQKKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitUSV9nZXRSYW5kb21JbnRlZ2VyRnJvbUFEQzoKKzsgICAgICAgICAgIHJldHVybnM6IHIxMgorOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIG1vdi53ICAgIzE2LCAgICAgICByMTUgICAgICAgICAgOyBsb29wIGNvdW50ZXIKKyAgICAgICAgICAgIG1vdi53ICAgI0lOQ0hfMTAsICAmQURDMTBDVEwxCisgICAgICAgICAgICBtb3YudyAgICNTUkVGXzEgKyBBREMxMFNIVF8xICsgUkVGT04gKyBBREMxME9OLCAmQURDMTBDVEwwCithZGNsb29wOiAgICAgYmlzLncgICAjRU5DICsgQURDMTBTQywgJkFEQzEwQ1RMMAorc2FtcGxpbmc6ICAgIGJpdC53ICAgI0FEQzEwQlVTWSwgJkFEQzEwQ1RMMQorICAgICAgICAgICAgam56ICAgICBzYW1wbGluZworICAgICAgICAgICAgYml0LncgICAjMHgwMSwgICAgICZBREMxME1FTQorICAgICAgICAgICAgcnJjLncgICByMTIKKyAgICAgICAgICAgIGRlYy53ICAgcjE1CisgICAgICAgICAgICBqbnogICAgIGFkY2xvb3AKKyAgICAgICAgICAgIHJldAorOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RJX2dldFJhbmRvbUludGVnZXJGcm9tVkxPOgorOyAgICAgICAgICAgcmV0dXJuczogcjEyCis7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgcHVzaC53ICByMTEgICAgICAgICAgICAgICAgICAgICA7IHIxMSBwcmVzZXJ2ZWQKKyAgICAgICAgICAgIGJpYy5iICAgIzB4MDIsICAgICAmQkNTQ1RMMSAgICAgOyBDbGVhciBSU0VMeCBiaXQKKyAgICAgICAgICAgIGJpYy5iICAgIzB4RTAsICAgICAmRENPQ1RMICAgICAgOyBjbGVhciBEQ094IGJpdHMKKyAgICAgICAgICAgIGJpcy5iICAgI0xGWFQxU18yLCAmQkNTQ1RMMyAgICAgOyBBQ0xLID0gVkxPCisgICAgICAgICAgICBtb3YudyAgICNDTV8xICsgQ0NJU18xICsgQ0FQLCAgICZDQ1RMWCA7IENBUCwgQUNMSworICAgICAgICAgICAgbW92LncgICAjVEJTU0VMXzIgKyBNQ18yLCAmVEJDVEw7IFNNQ0xLLCBjb250LW1vZGUsIGRvbid0IGNsZWFyCisgICAgICAgICAgICBtb3YudyAgICMxNiwgICAgICAgcjE1ICAgICAgICAgIDsgbG9vcCBjb3VudGVyID0gMTYKKyAgICAgICAgICAgIGNsci53ICAgcjEyICAgICAgICAgICAgICAgICAgICAgOyByZXR1cm4gdmFsdWUgY2xlYXJlZAorICAgICAgICAgICAgY2xyLncgICByMTMgICAgICAgICAgICAgICAgICAgICA7IEFDTEsgZGl2aWRlciByYW5kb21uZXNzCittYWluTG9vcCAgICBtb3YudyAgICM1LCAgICAgICAgcjE0ICAgICAgICAgIDsgc3ViIGxvb3AgY291bnRlcgorICAgICAgICAgICAgY2xyLncgICByMTEgICAgICAgICAgICAgICAgICAgICA7IG1ham9yaXR5IHZvdGUgaG9sZGVyCitjYXB0dXJlICAgICBiaXQudyAgICNDQ0lGRywgICAgJkNDVExYICAgICAgIDsgdGVzdCBmb3IgY2FwdHVyZQorICAgICAgICAgICAganogICAgICBjYXB0dXJlCisgICAgICAgICAgICBiaWMudyAgICNDQ0lGRywgICAgJkNDVExYICAgICAgIDsgY2FwdHVyZSBvY2N1cmVkLCBjbGVhciBmbGFnCisgICAgICAgICAgICBiaXQudyAgICMweDAxLCAgICAgJkNDUlggICAgICAgIDsgdGVzdCBMU0Igb2YgY2FwdHVyZWQgdGltZQorICAgICAgICAgICAganogICAgICB6ZXJvICAgICAgICAgICAgICAgICAgICA7IG9mIExTQiBpcyB6ZXJvLCBqdW1wCisgICAgICAgICAgICBpbmMudyAgIHIxMSAgICAgICAgICAgICAgICAgICAgIDsgaWYgbm90LCBhZGQgIG9uZSB0byBSMTEgdG8gY291bnQgMXMKK3plcm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBkZWMudyAgIHIxNCAgICAgICAgICAgICAgICAgICAgIDsgZGVjcmVtZW50IG1ham9yaXR5IHZvdGUgY291bnRlcgorICAgICAgICAgICAgam56ICAgICBjYXB0dXJlICAgICAgICAgICAgICAgICA7IGlmIDMgYml0cyBhcmVuJ3QgY291bnRlZCBmb3IsIGxvb3AKKyAgICAgICAgICAgIHJyYS53ICAgcjEyICAgICAgICAgICAgICAgICAgICAgOyBtYWtlIHNwYWNlIGZvciB0aGUgbmV3IGJpdAorICAgICAgICAgICAgY21wLncgICAjMHgwMywgcjExICAgICAgICAgICAgICA7IHNlZSBpZiB0aGVyZSBhcmUgMiBvciBtb3JlIDFzCisgICAgICAgICAgICBqZ2UgICAgIG9uZQorICAgICAgICAgICAgYmljLncgICAjMHg4MDAwLCByMTIgICAgICAgICAgICA7IGlmIG5vdCwgY2xlYXIgdGhlIG5ldyBiaXQgaW4gcjEyCisgICAgICAgICAgICBqbXAgICAgIGRvbmUKK29uZSAgICAgICAgIGJpcy53ICAgIzB4ODAwMCwgcjEyICAgICAgICAgICAgOyBpZiBzbywgc2V0IHRoZSBuZXcgYml0IGluIHIxMgorZG9uZQorICAgICAgICAgICAgOy0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICA7IHhvciB0aGUgQUNMSyBkaXZpZGVyIHNlY3Rpb24gb2YgdGhlIEJDU0NUTDEKKyAgICAgICAgICAgIG1vdi53ICAgcjEyLCAgICAgICByMTMKKyAgICAgICAgICAgIHN3cGIgICAgcjEzCisgICAgICAgICAgICBycmEudyAgIHIxMworICAgICAgICAgICAgcnJhLncgICByMTMKKyAgICAgICAgICAgIHJyYS53ICAgcjEzCisgICAgICAgICAgICBhbmQudyAgICMweDMwLCAgICAgcjEzCisgICAgICAgICAgICB4b3IuYiAgIHIxMywgICAgICAgJkJDU0NUTDEKKyAgICAgICAgICAgIDstLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgOyBhZGQgdG8gdGhlIFJTRUwvRElWQSBiaXRzIHRvIGNoYW5nZSBEQ08gc3BlZWQKKyAgICAgICAgICAgIG1vdi5iICAgJkJDU0NUTDEsICByMTMKKyAgICAgICAgICAgIGFkZC5iICAgIzB4MTUsICAgICByMTMKKyAgICAgICAgICAgIGJpcy5iICAgI1hUMk9GRiwgICByMTMgICAgICAgICAgOyBlbnN1cmUgWFQyIHN0YXlzIG9mZgorICAgICAgICAgICAgYmljLmIgICAjWFRTKzB4MDIsIHIxMyAgICAgICAgICA7IGVuc3VyZSBMRlhUMSBzdGF5cyBpbiBMRiBtb2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgY2xlYXIgUlNFTCBiaXQgdG8gZW5zdXJlIGxvd2VyIG1heCBzcGVlZAorICAgICAgICAgICAgbW92LmIgICByMTMsICAgICAgICZCQ1NDVEwxCisgICAgICAgICAgICA7LS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgIDsgbW9kaWZ5IERDTyBNb2QgYml0cworICAgICAgICAgICAgbW92LmIgICAmRENPQ1RMLCAgIHIxMworICAgICAgICAgICAgYWRkLmIgICAmMHgxNSwgICAgIHIxMworICAgICAgICAgICAgYmljLmIgICAjMHhFMCwgICAgIHIxMworICAgICAgICAgICAgbW92LmIgICByMTMsICAgICAgICZEQ09DVEwKKyAgICAgICAgICAgIDstLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICBkZWMudyAgIHIxNQorICAgICAgICAgICAgam56ICAgICBtYWluTG9vcAorICAgICAgICAgICAgcG9wLncgICByMTEgICAgICAgICAgICAgICA7IFRFU1QKKyAgICAgICAgICAgIHJldAorCisgICAgICAgICAgICAuZW5kCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9yYW5kLy5jZHRwcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC8uY2R0cHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWIyODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC8uY2R0cHJvamVjdApAQCAtMCwwICsxLDI2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZWNsaXBzZS1jZHQgdmVyc2lvbj0iMi4wIj8+DQorDQorPGNkdHByb2plY3QgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZSI+DQorPGV4dGVuc2lvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJpbmFyeXBhcnNlci5Db2ZmUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuQmluYXJ5UGFyc2VyIi8+DQorPGRhdGE+DQorPGl0ZW0gaWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9pdGVtPg0KKzxpdGVtIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L2l0ZW0+DQorPC9kYXRhPg0KKzwvY2R0cHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9yYW5kLy5wcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYmMwZDJmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC8ucHJvamVjdApAQCAtMCwwICsxLDg0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPmxvY2FsLmFwcHMucmFuZDwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCQk8cHJvamVjdD50eG4ucGxhdGZvcm1zLmV6NDMwX3JmMjUwMDwvcHJvamVjdD4NCisJCTxwcm9qZWN0PnR4bi50YXJnZXRzPC9wcm9qZWN0Pg0KKwkJPHByb2plY3Q+dHhuLnRhcmdldHMucnRzNDMwPC9wcm9qZWN0Pg0KKwk8L3Byb2plY3RzPg0KKwk8YnVpbGRTcGVjPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2VCdWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQuYXJndW1lbnRzPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0LmNvcmUuZXJyb3JPdXRwdXRQYXJzZXI8L2tleT4NCisJCQkJCTx2YWx1ZT5jb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQ29mZkVycm9yUGFyc2VyO2NvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5Bc21FcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuTGlua0Vycm9yUGFyc2VyO29yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlcjs8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUF1dG9CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlRnVsbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmluYzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlZEluY3JlbWVudGFsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuY2xlYW48L2tleT4NCisJCQkJCTx2YWx1ZT5jbGVhbjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQuY29tbWFuZDwva2V5Pg0KKwkJCQkJPHZhbHVlPiR7WERDUk9PVH0veGRjLmV4ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFwcGVuZF9lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnVzZURlZmF1bHRCdWlsZENtZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuYXV0bzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQuY29yZS5jbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZU5hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdOYXR1cmU8L25hdHVyZT4NCisJPC9uYXR1cmVzPg0KKzwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL3JhbmQvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9yYW5kLy54ZGNlbnYubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhmMzU5OTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9yYW5kLy54ZGNlbnYubWFrCkBAIC0wLDAgKzEsMTYgQEAKKyMKK19YRENCVUlMRENPVU5UID0gCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSAKK292ZXJyaWRlIFhEQ1JPT1QgPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMworb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuLi8uLi8uLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzL3BhY2thZ2VzOy4uLy4uLy4uCitIT1NUT1MgPSBMaW51eAorZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL3JhbmQvcGFja2FnZS5ibGQgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9yYW5kL3BhY2thZ2UuYmxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMzM4MWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9yYW5kL3BhY2thZ2UuYmxkCkBAIC0wLDAgKzEsMTIgQEAKKy8qIFBrZy51c2VzIGlzIG9ubHkgbmVjZXNzYXJ5IGlmIHlvdSBhcmUgdXNpbmcgYSBUSSBjb21waWxlciB0aGF0IGRvZXMgX25vdF8KKyAqIHByb3ZpZGUgbXNwNDMweDIyeDQuaCBpbiBpdCdzIGluY2x1ZGUgZGlyZWN0b3J5LgorICovCitQa2cudXNlcyA9IFsidGkvYXBwcy9tc3A0MzAiXTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCBCdWlsZC50YXJnZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIHRhcmcgPSBCdWlsZC50YXJnZXRzW2ldOworICAgIGlmICh0YXJnLmlzYS5tYXRjaCgvNDMwLykpIHsKKwl2YXIgZXhlID0gUGtnLmFkZEV4ZWN1dGFibGUoInJhbmQiLCB0YXJnLHRhcmcucGxhdGZvcm0pOworCWV4ZS5hZGRPYmplY3RzKFsicmFuZC5jIiwgInZsb19yYW5kLnM0MzAiXSk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC9wYWNrYWdlLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL3JhbmQvcGFja2FnZS54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQwODk3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL3JhbmQvcGFja2FnZS54ZGMKQEAgLTAsMCArMSwzIEBACitwYWNrYWdlIGxvY2FsLmFwcHMucmFuZAoreworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC9yYW5kLmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9yYW5kL3JhbmQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYThiZGE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC9yYW5kLmMKQEAgLTAsMCArMSwxMzYgQEAKKyNpbmNsdWRlIDxtc3A0MzB4MjJ4NC5oPgorI2luY2x1ZGUgInZsb19yYW5kLmgiCisKK3Vuc2lnbmVkIGludCByYW5kSW50OwordW5zaWduZWQgaW50IGJpdENvdW50ZXI7CisKKy8vbW9ub2JpdCB2YXJpYWJsZXMKK2ludCBudW1iZXJPZk9uZXMgPSAwOworaW50IG51bWJlck9mWmVyb3MgPSAwOworCisvLyBwb2tlciB0ZXN0IHZhcmlhYmxlcworZmxvYXQgcG9rZXJCdWNrZXRzWzE2XTsgIC8vIG09NCwgaz01LDAwMAorZmxvYXQgcG9rZXJSZXN1bHQ7CisKKy8vIHJ1bnMgdGVzdCB2YXJpYWJsZXMKK2ludCBsYXN0Qml0ID0gMHgwZjsKK2ludCBjdXJyZW50UnVuID0gMTsKK2ludCBydW5MZW5ndGhzWmVyb1s2XTsKK2ludCBydW5MZW5ndGhzT25lWzZdOworaW50IGZhaWxMb25nVGVzdCA9IDA7CisKK3ZvaWQgbW9ub2JpdCh1bnNpZ25lZCBpbnQpOwordm9pZCBwb2tlcih1bnNpZ25lZCBpbnQpOworZmxvYXQgY29tcHV0ZVBva2VyKHZvaWQpOwordm9pZCBydW4oIHVuc2lnbmVkIGludCApOworCit2b2lkIG1haW4odm9pZCkKK3sKKyAgdm9sYXRpbGUgaW50IGRlbGF5OworICBXRFRDVEwgPSBXRFRQVyArIFdEVEhPTEQ7ICAgICAgICAgICAgICAgICAvLyBTdG9wIFdhdGNoZG9nIFRpbWVyCisgIGZvciggYml0Q291bnRlciA9IDEyNTA7IGJpdENvdW50ZXIgIT0gMDsgYml0Q291bnRlci0tKQorICB7CisgICAgcmFuZEludCA9IFRJX2dldFJhbmRvbUludGVnZXJGcm9tVkxPKCk7CisgICAgbW9ub2JpdCggcmFuZEludCApOworICAgIHJ1biggcmFuZEludCApOworICAgIHBva2VyKCByYW5kSW50ICk7CisgIH0KKyAgcG9rZXJSZXN1bHQgPSBjb21wdXRlUG9rZXIoKTsKKyAgIFAxRElSID0gMHgwMTsKKyAgX05PUCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU0VUIEJSRUFLUE9JTlQgSEVSRQorICB3aGlsZSggMSApCisgIHsKKyAgIFAxT1VUIF49IDB4MDE7CisgIH0KK30KKwordm9pZCBydW4oIHVuc2lnbmVkIGludCByYW5kICkKK3sKKyAgaW50IGk7CisgIGZvciggaSA9IDA7IGkgPCAxNjsgaSsrICkKKyAgeworICAgIGlmKCBjdXJyZW50UnVuID09IDI2ICkKKyAgICB7CisgICAgICBmYWlsTG9uZ1Rlc3QgPSAxOworICAgIH0KKyAgICBpZiggbGFzdEJpdCA9PSAweDBmICkKKyAgICB7CisgICAgICBsYXN0Qml0ID0gcmFuZCAmIDB4MDE7CisgICAgfQorICAgIGVsc2UgaWYgKCBsYXN0Qml0ID09IChyYW5kICYgMHgwMSkgKQorICAgIHsKKyAgICAgIGN1cnJlbnRSdW4rKzsKKyAgICB9CisgICAgZWxzZSBpZiAoIGxhc3RCaXQgIT0gKHJhbmQgJiAweDAxKSApCisgICAgeworICAgICAgaWYoIGxhc3RCaXQgKQorICAgICAgeworICAgICAgICBpZiggY3VycmVudFJ1biA+PTYgKQorICAgICAgICB7CisgICAgICAgICAgcnVuTGVuZ3Roc09uZVs1XSsrOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgIHJ1bkxlbmd0aHNPbmVbY3VycmVudFJ1bi0xXSsrOworICAgICAgICB9CisgICAgICB9CisgICAgICBlbHNlCisgICAgICB7CisgICAgICAgIGlmKCBjdXJyZW50UnVuID49NiApCisgICAgICAgIHsKKyAgICAgICAgICBydW5MZW5ndGhzWmVyb1s1XSsrOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgIHJ1bkxlbmd0aHNaZXJvW2N1cnJlbnRSdW4tMV0rKzsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgY3VycmVudFJ1biA9IDE7CisgICAgfSAvLyBpZiBiaXQgY2hhbmdlCisgICAgbGFzdEJpdCA9IChyYW5kICYgMHgwMSk7CisgICAgcmFuZCA9IHJhbmQgPj4gMTsKKyAgfSAvLyBmb3IKK30KKworZmxvYXQgY29tcHV0ZVBva2VyKCB2b2lkICkKK3sKKyAgZmxvYXQgcmV0dXJuVmFsdWUgPSAwOworICBpbnQgaTsKKyAgZm9yKCBpID0gMDsgaSA8IDE2OyBpKysgKQorICB7CisgICAgcmV0dXJuVmFsdWUgKz0gcG9rZXJCdWNrZXRzW2ldKnBva2VyQnVja2V0c1tpXTsKKyAgfQorICByZXR1cm5WYWx1ZSA9IHJldHVyblZhbHVlICogMC4wMDMyOworICByZXR1cm5WYWx1ZSAtPSA1MDAwLjAwOworICByZXR1cm4gcmV0dXJuVmFsdWU7Cit9CisKK3ZvaWQgcG9rZXIoIHVuc2lnbmVkIGludCByYW5kICkKK3sKKyAgaW50IHRvcFRvcCA9IChyYW5kICYgMHhGMDAwKT4+MTI7CisgIGludCB0b3BCb3QgPSAocmFuZCAmIDB4MEYwMCk+Pjg7CisgIGludCBib3RUb3AgPSAocmFuZCAmIDB4MDBGMCk+PjQ7CisgIGludCBib3RCb3QgPSAocmFuZCAmIDB4MDAwRik7CisgIHBva2VyQnVja2V0c1t0b3BUb3BdKys7CisgIHBva2VyQnVja2V0c1t0b3BCb3RdKys7CisgIHBva2VyQnVja2V0c1tib3RUb3BdKys7CisgIHBva2VyQnVja2V0c1tib3RCb3RdKys7Cit9CisKK3ZvaWQgbW9ub2JpdCggdW5zaWduZWQgaW50IHJhbmQgKQoreworICBpbnQgaTsKKyAgZm9yKCBpID0gMTY7IGkgIT0gMDsgaS0tICkKKyAgeworICAgIGlmKCByYW5kICYgMHgwMSApCisgICAgeworICAgICAgbnVtYmVyT2ZPbmVzKys7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICBudW1iZXJPZlplcm9zKys7CisgICAgfQorICAgIHJhbmQgPSByYW5kPj4xOworICB9IC8vIGZvciBhbGwgYml0cworfQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9yYW5kL3JhbmQuY2ZnIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC9yYW5kLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTI4ODE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC9yYW5kLmNmZwpAQCAtMCwwICsxLDcgQEAKKy8qIG1pbmltaXplIGZvb3RwcmludCBmb3IgTVNQNDMwIHRhcmdldHMgKi8KK2lmIChQcm9ncmFtLmJ1aWxkLnRhcmdldC5pc2EubWF0Y2goLzQzMC8pKSB7CisgICAgcHJpbnQoIm9wdGltaXppbmcgZm9vdHByaW50IGZvciB0aGUgTVNQNDMwIC4uLiIpOworICAgIFByb2dyYW0uYXJnU2l6ZSA9IDA7ICAgIC8qIGRvbid0IG5lZWQgYXJjL2FyZ3Ygc3VwcG9ydCAqLworICAgIFByb2dyYW0uc3RhY2sgPSAweDE7ICAvKiBkb24ndCBuZWVkIG11Y2ggc3RhY2sgZm9yIHRoaXMgYXBwICovCisgICAgUHJvZ3JhbS5oZWFwID0gMDsgIC8qIGRvbid0IG5lZWQgbXVjaCBzdGFjayBmb3IgdGhpcyBhcHAgKi8KK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL3JhbmQvdmxvX3JhbmQuaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL3JhbmQvdmxvX3JhbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYjlhYmFmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC92bG9fcmFuZC5oCkBAIC0wLDAgKzEsMTAgQEAKKyNpZm5kZWYgVkxPX1JhbmRfTGlicmFyeQorI2RlZmluZSBWTE9fUmFuZF9MaWJyYXJ5CisKK2V4dGVybiBpbnQgVElfZ2V0UmFuZG9tSW50ZWdlckZyb21BREMoIHZvaWQgKTsKK2V4dGVybiBpbnQgVElfZ2V0UmFuZG9tSW50ZWdlckZyb21WTE8oIHZvaWQgKTsKKworZXh0ZXJuIHVuc2lnbmVkIGludCBUSV9SYW5kb21JbnRlZ2VyRnJvbVZMTzsKK2V4dGVybiB1bnNpZ25lZCBpbnQgVElfUmFuZG9tSW50ZWdlckZyb21BREM7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC92bG9fcmFuZC5zNDMsc2F2IGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC92bG9fcmFuZC5zNDMsc2F2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlNjk1MWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvYXBwcy9yYW5kL3Zsb19yYW5kLnM0MyxzYXYKQEAgLTAsMCArMSw4NyBAQAorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKzsgICBMLiBXZXN0bHVuZAorOyAgIFRleGFzIEluc3RydW1lbnRzIEluYy4KKzsgICBKdWx5IDIwMDYKKzsgICBCdWlsdCB3aXRoIElBUiBFbWJlZGRlZCBXb3JrYmVuY2ggVmVyc2lvbjogMy40MEEKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjaW5jbHVkZSAgPG1zcDQzMHgyMng0Lmg+CisKKyAgICAgICAgICAgIE1PRFVMRSAgVkxPX1JhbmRfTGlicmFyeQorCisgICAgICAgICAgICBQVUJMSUMgIFRJX2dldFJhbmRvbUludGVnZXJGcm9tVkxPCisgICAgICAgICAgICBQVUJMSUMgIFRJX2dldFJhbmRvbUludGVnZXJGcm9tQURDCisKKyAgICAgICAgICAgIFJTRUcgICAgICBEQVRBMTZfSQorVElfUmFuZG9tSW50ZWdlckZyb21WTE8gIERTIDIKK1RJX1JhbmRvbUludGVnZXJGcm9tQURDICBEUyAyCisKKyNpZmRlZiBUQUNDVEwyXyAgICAgICAgICAgICAgICAgICAgICAgICAgICA7IEZvciBub24tVGltZXJfQTIgZGV2aWNlcworICAjZGVmaW5lIENDVExYIFRBQ0NUTDIKKyAgI2RlZmluZSBDQ1JYIFRBQ0NSMgorI2Vsc2UKKyAgI2RlZmluZSBDQ1RMWCBUQUNDVEwwCisgICNkZWZpbmUgQ0NSWCBUQUNDUjAKKyNlbmRpZgorICAgICAgICAgICAgUlNFRyAgICBDT0RFICAgICAgICAgICAgICAgICAgICA7IENvZGUgaXMgcmVsb2NhdGFibGUKKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitUSV9nZXRSYW5kb21JbnRlZ2VyRnJvbUFEQworOyAgICAgICAgICAgcmV0dXJuczogcjEyCis7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgbW92LncgICAjMTYsICAgICAgIHIxNSAgICAgICAgICA7IGxvb3AgY291bnRlcgorICAgICAgICAgICAgbW92LncgICAjSU5DSF8xMCwgICZBREMxMENUTDEKKyAgICAgICAgICAgIG1vdi53ICAgI1NSRUZfMSArIEFEQzEwU0hUXzEgKyBSRUZPTiArIEFEQzEwT04sICZBREMxMENUTDAKK2FkY2xvb3AgICAgIGJpcy53ICAgI0VOQyArIEFEQzEwU0MsICZBREMxMENUTDAKK3NhbXBsaW5nICAgIGJpdC53ICAgI0FEQzEwQlVTWSwgJkFEQzEwQ1RMMQorICAgICAgICAgICAgam56ICAgICBzYW1wbGluZworICAgICAgICAgICAgYml0LncgICAjMHgwMSwgICAgICZBREMxME1FTQorICAgICAgICAgICAgcnJjLncgICByMTIKKyAgICAgICAgICAgIGRlYy53ICAgcjE1CisgICAgICAgICAgICBqbnogICAgIGFkY2xvb3AKKyAgICAgICAgICAgIHJldAorOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RJX2dldFJhbmRvbUludGVnZXJGcm9tVkxPCis7ICAgICAgICAgICByZXR1cm5zOiByMTIKKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICBwdXNoLncgIHIxMSAgICAgICAgICAgICAgICAgICAgIDsgcjExIHByZXNlcnZlZAorICAgICAgICAgICAgLy9iaXMuYiAgICNMRlhUMVNfMiwgJkJDU0NUTDMgICAgIDsgQUNMSyA9IFZMTworICAgICAgICAgICAgbW92LncgICAjQ01fMSArIENDSVNfMSArIENBUCwgICAmQ0NUTFggOyBDQVAsIEFDTEsKKyAgICAgICAgICAgIG1vdi53ICAgI1RBU1NFTF8yICsgTUNfMiwgJlRBQ1RMOyBTTUNMSywgY29udC1tb2RlLCBkb24ndCBjbGVhcgorICAgICAgICAgICAgbW92LncgICAjMTYsICAgICAgIHIxNSAgICAgICAgICA7IGxvb3AgY291bnRlciA9IDE2CisgICAgICAgICAgICBjbHIudyAgIHIxMiAgICAgICAgICAgICAgICAgICAgIDsgcmV0dXJuIHZhbHVlIGNsZWFyZWQKKyAgICAgICAgICAgIGNsci53ICAgcjEzICAgICAgICAgICAgICAgICAgICAgOyBBQ0xLIGRpdmlkZXIgcmFuZG9tbmVzcworbWFpbkxvb3AgICAgbW92LncgICAjNSwgICAgICAgIHIxNCAgICAgICAgICA7IHN1YiBsb29wIGNvdW50ZXIKKyAgICAgICAgICAgIGNsci53ICAgcjExICAgICAgICAgICAgICAgICAgICAgOyBtYWpvcml0eSB2b3RlIGhvbGRlcgorY2FwdHVyZSAgICAgYml0LncgICAjQ0NJRkcsICAgICZDQ1RMWCAgICAgICA7IHRlc3QgZm9yIGNhcHR1cmUKKyAgICAgICAgICAgIGp6ICAgICAgY2FwdHVyZQorICAgICAgICAgICAgYmljLncgICAjQ0NJRkcsICAgICZDQ1RMWCAgICAgICA7IGNhcHR1cmUgb2NjdXJlZCwgY2xlYXIgZmxhZworICAgICAgICAgICAgYml0LncgICAjMHgwMSwgICAgICZDQ1JYICAgICAgICA7IHRlc3QgTFNCIG9mIGNhcHR1cmVkIHRpbWUKKyAgICAgICAgICAgIGp6ICAgICAgemVybyAgICAgICAgICAgICAgICAgICAgOyBvZiBMU0IgaXMgemVybywganVtcAorICAgICAgICAgICAgaW5jLncgICByMTEgICAgICAgICAgICAgICAgICAgICA7IGlmIG5vdCwgYWRkICBvbmUgdG8gUjExIHRvIGNvdW50IDFzCit6ZXJvICAgICAgICBkZWMudyAgIHIxNCAgICAgICAgICAgICAgICAgICAgIDsgZGVjcmVtZW50IG1ham9yaXR5IHZvdGUgY291bnRlcgorICAgICAgICAgICAgam56ICAgICBjYXB0dXJlICAgICAgICAgICAgICAgICA7IGlmIDMgYml0cyBhcmVuJ3QgY291bnRlZCBmb3IsIGxvb3AKKyAgICAgICAgICAgIHJyYS53ICAgcjEyICAgICAgICAgICAgICAgICAgICAgOyBtYWtlIHNwYWNlIGZvciB0aGUgbmV3IGJpdAorICAgICAgICAgICAgY21wLncgICAjMHgwMywgcjExICAgICAgICAgICAgICA7IHNlZSBpZiB0aGVyZSBhcmUgMiBvciBtb3JlIDFzCisgICAgICAgICAgICBqZ2UgICAgIG9uZQorICAgICAgICAgICAgYmljLncgICAjMHg4MDAwLCByMTIgICAgICAgICAgICA7IGlmIG5vdCwgY2xlYXIgdGhlIG5ldyBiaXQgaW4gcjEyCisgICAgICAgICAgICBqbXAgICAgIGRvbmUKK29uZSAgICAgICAgIGJpcy53ICAgIzB4ODAwMCwgcjEyICAgICAgICAgICAgOyBpZiBzbywgc2V0IHRoZSBuZXcgYml0IGluIHIxMgorZG9uZQorICAgICAgICAgICAgOy0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICA7IHhvciB0aGUgQUNMSyBkaXZpZGVyIHNlY3Rpb24gb2YgdGhlIEJDU0NUTDEKKyAgICAgICAgICAgIG1vdi53ICAgcjEyLCAgICAgICByMTMKKyAgICAgICAgICAgIHN3cGIgICAgcjEzCisgICAgICAgICAgICBycmEudyAgIHIxMworICAgICAgICAgICAgcnJhLncgICByMTMKKyAgICAgICAgICAgIHJyYS53ICAgcjEzCisgICAgICAgICAgICBhbmQudyAgICMweDMwLCAgICAgcjEzCisgICAgICAgICAgICB4b3IuYiAgIHIxMywgICAgICAgJkJDU0NUTDEKKyAgICAgICAgICAgIDstLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgOyBhZGQgdG8gdGhlIFJTRUwgYml0cyB0byBjaGFuZ2UgRENPIHNwZWVkCisgICAgICAgICAgICBhZGQuYiAgICMweDA1LCAgICAgJkJDU0NUTDEKKyAgICAgICAgICAgIGFuZC5iICAgIzB4M0YsICAgICAmQkNTQ1RMMQorICAgICAgICAgICAgOy0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICA7IFhPUiBEQ08gTW9kIGJpdHMKKyAgICAgICAgICAgIHhvci5iICAgIzB4MUYsICAgICAmRENPQ1RMCisgICAgICAgICAgICA7LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgZGVjLncgICByMTUKKyAgICAgICAgICAgIGpueiAgICAgbWFpbkxvb3AKKyAgICAgICAgICAgIHBvcC53ICAgcjExCisgICAgICAgICAgICByZXQKK0VORApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL3JhbmQvdmxvX3JhbmQuczQzMCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9hcHBzL3JhbmQvdmxvX3JhbmQuczQzMApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ODViODIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2FwcHMvcmFuZC92bG9fcmFuZC5zNDMwCkBAIC0wLDAgKzEsODYgQEAKKzsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCis7ICAgTC4gV2VzdGx1bmQKKzsgICBUZXhhcyBJbnN0cnVtZW50cyBJbmMuCis7ICAgSnVseSAyMDA2Cis7ICAgQnVpbHQgd2l0aCBJQVIgRW1iZWRkZWQgV29ya2JlbmNoIFZlcnNpb246IDMuNDBBCis7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAgICAuY2RlY2xzIEMKKyV7CisjaW5jbHVkZSAgPG1zcDQzMHgyMng0Lmg+CisjZGVmaW5lIFRBQ0NUTDJfCisjaWZkZWYgVEFDQ1RMMl8gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogb3Igbm9uLVRpbWVyX0EyIGRldmljZXMgKi8KKyAgI2RlZmluZSBDQ1RMWCBUQUNDVEwyCisgICNkZWZpbmUgQ0NSWCBUQUNDUjIKKyNlbHNlCisgICNkZWZpbmUgQ0NUTFggVEFDQ1RMMAorICAjZGVmaW5lIENDUlggVEFDQ1IwCisjZW5kaWYKKyV9CisKKyAgICAuZ2xvYmFsIFRJX2dldFJhbmRvbUludGVnZXJGcm9tVkxPCisgICAgLmdsb2JhbCBUSV9nZXRSYW5kb21JbnRlZ2VyRnJvbUFEQworCisgICAgLnRleHQKKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitUSV9nZXRSYW5kb21JbnRlZ2VyRnJvbUFEQworOyAgICAgICAgICAgcmV0dXJuczogcjEyCis7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgbW92LncgICAjMTYsICAgICAgIHIxNSAgICAgICAgICA7IGxvb3AgY291bnRlcgorICAgICAgICAgICAgbW92LncgICAjSU5DSF8xMCwgICZBREMxMENUTDEKKyAgICAgICAgICAgIG1vdi53ICAgI1NSRUZfMSArIEFEQzEwU0hUXzEgKyBSRUZPTiArIEFEQzEwT04sICZBREMxMENUTDAKK2FkY2xvb3AgICAgIGJpcy53ICAgI0VOQyArIEFEQzEwU0MsICZBREMxMENUTDAKK3NhbXBsaW5nICAgIGJpdC53ICAgI0FEQzEwQlVTWSwgJkFEQzEwQ1RMMQorICAgICAgICAgICAgam56ICAgICBzYW1wbGluZworICAgICAgICAgICAgYml0LncgICAjMHgwMSwgICAgICZBREMxME1FTQorICAgICAgICAgICAgcnJjLncgICByMTIKKyAgICAgICAgICAgIGRlYy53ICAgcjE1CisgICAgICAgICAgICBqbnogICAgIGFkY2xvb3AKKyAgICAgICAgICAgIHJldAorOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1RJX2dldFJhbmRvbUludGVnZXJGcm9tVkxPCis7ICAgICAgICAgICByZXR1cm5zOiByMTIKKzstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICBwdXNoLncgIHIxMSAgICAgICAgICAgICAgICAgICAgIDsgcjExIHByZXNlcnZlZAorICAgICAgICAgICAgYmlzLmIgICAjTEZYVDFTXzIsICZCQ1NDVEwzICAgICA7IEFDTEsgPSBWTE8KKyAgICAgICAgICAgIG1vdi53ICAgI0NNXzEgKyBDQ0lTXzEgKyBDQVAsICAgJkNDVExYIDsgQ0FQLCBBQ0xLCisgICAgICAgICAgICBtb3YudyAgICNUQVNTRUxfMiArIE1DXzIsICZUQUNUTDsgU01DTEssIGNvbnQtbW9kZSwgZG9uJ3QgY2xlYXIKKyAgICAgICAgICAgIG1vdi53ICAgIzE2LCAgICAgICByMTUgICAgICAgICAgOyBsb29wIGNvdW50ZXIgPSAxNgorICAgICAgICAgICAgY2xyLncgICByMTIgICAgICAgICAgICAgICAgICAgICA7IHJldHVybiB2YWx1ZSBjbGVhcmVkCisgICAgICAgICAgICBjbHIudyAgIHIxMyAgICAgICAgICAgICAgICAgICAgIDsgQUNMSyBkaXZpZGVyIHJhbmRvbW5lc3MKK21haW5Mb29wICAgIG1vdi53ICAgIzUsICAgICAgICByMTQgICAgICAgICAgOyBzdWIgbG9vcCBjb3VudGVyCisgICAgICAgICAgICBjbHIudyAgIHIxMSAgICAgICAgICAgICAgICAgICAgIDsgbWFqb3JpdHkgdm90ZSBob2xkZXIKK2NhcHR1cmUgICAgIGJpdC53ICAgI0NDSUZHLCAgICAmQ0NUTFggICAgICAgOyB0ZXN0IGZvciBjYXB0dXJlCisgICAgICAgICAgICBqeiAgICAgIGNhcHR1cmUKKyAgICAgICAgICAgIGJpYy53ICAgI0NDSUZHLCAgICAmQ0NUTFggICAgICAgOyBjYXB0dXJlIG9jY3VyZWQsIGNsZWFyIGZsYWcKKyAgICAgICAgICAgIGJpdC53ICAgIzB4MDEsICAgICAmQ0NSWCAgICAgICAgOyB0ZXN0IExTQiBvZiBjYXB0dXJlZCB0aW1lCisgICAgICAgICAgICBqeiAgICAgIHplcm8gICAgICAgICAgICAgICAgICAgIDsgb2YgTFNCIGlzIHplcm8sIGp1bXAKKyAgICAgICAgICAgIGluYy53ICAgcjExICAgICAgICAgICAgICAgICAgICAgOyBpZiBub3QsIGFkZCAgb25lIHRvIFIxMSB0byBjb3VudCAxcworemVybyAgICAgICAgZGVjLncgICByMTQgICAgICAgICAgICAgICAgICAgICA7IGRlY3JlbWVudCBtYWpvcml0eSB2b3RlIGNvdW50ZXIKKyAgICAgICAgICAgIGpueiAgICAgY2FwdHVyZSAgICAgICAgICAgICAgICAgOyBpZiAzIGJpdHMgYXJlbid0IGNvdW50ZWQgZm9yLCBsb29wCisgICAgICAgICAgICBycmEudyAgIHIxMiAgICAgICAgICAgICAgICAgICAgIDsgbWFrZSBzcGFjZSBmb3IgdGhlIG5ldyBiaXQKKyAgICAgICAgICAgIGNtcC53ICAgIzB4MDMsIHIxMSAgICAgICAgICAgICAgOyBzZWUgaWYgdGhlcmUgYXJlIDIgb3IgbW9yZSAxcworICAgICAgICAgICAgamdlICAgICBvbmUKKyAgICAgICAgICAgIGJpYy53ICAgIzB4ODAwMCwgcjEyICAgICAgICAgICAgOyBpZiBub3QsIGNsZWFyIHRoZSBuZXcgYml0IGluIHIxMgorICAgICAgICAgICAgam1wICAgICBkb25lCitvbmUgICAgICAgICBiaXMudyAgICMweDgwMDAsIHIxMiAgICAgICAgICAgIDsgaWYgc28sIHNldCB0aGUgbmV3IGJpdCBpbiByMTIKK2RvbmUKKyAgICAgICAgICAgIDstLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgOyB4b3IgdGhlIEFDTEsgZGl2aWRlciBzZWN0aW9uIG9mIHRoZSBCQ1NDVEwxCisgICAgICAgICAgICBtb3YudyAgIHIxMiwgICAgICAgcjEzCisgICAgICAgICAgICBzd3BiICAgIHIxMworICAgICAgICAgICAgcnJhLncgICByMTMKKyAgICAgICAgICAgIHJyYS53ICAgcjEzCisgICAgICAgICAgICBycmEudyAgIHIxMworICAgICAgICAgICAgYW5kLncgICAjMHgzMCwgICAgIHIxMworICAgICAgICAgICAgeG9yLmIgICByMTMsICAgICAgICZCQ1NDVEwxCisgICAgICAgICAgICA7LS0tLS0tLS0tLS0tLS0tLS0tLSAgICAgICAgICAgIDsgYWRkIHRvIHRoZSBSU0VMIGJpdHMgdG8gY2hhbmdlIERDTyBzcGVlZAorICAgICAgICAgICAgYWRkLmIgICAjMHgwNSwgICAgICZCQ1NDVEwxCisgICAgICAgICAgICBhbmQuYiAgICMweDNGLCAgICAgJkJDU0NUTDEKKyAgICAgICAgICAgIDstLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgOyBYT1IgRENPIE1vZCBiaXRzCisgICAgICAgICAgICB4b3IuYiAgICMweDFGLCAgICAgJkRDT0NUTAorICAgICAgICAgICAgOy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIGRlYy53ICAgcjE1CisgICAgICAgICAgICBqbnogICAgIG1haW5Mb29wCisgICAgICAgICAgICBwb3AudyAgIHIxMQorICAgICAgICAgICAgcmV0CisgICAgLmVuZAorICAgIApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvLmNkdHByb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS8uY2R0cHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWIyODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvLmNkdHByb2plY3QKQEAgLTAsMCArMSwyNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8P2VjbGlwc2UtY2R0IHZlcnNpb249IjIuMCI/Pg0KKw0KKzxjZHRwcm9qZWN0IGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2UiPg0KKzxleHRlbnNpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5iaW5hcnlwYXJzZXIuQ29mZlBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkJpbmFyeVBhcnNlciIvPg0KKzxkYXRhPg0KKzxpdGVtIGlkPSJzY2FubmVyQ29uZmlndXJhdGlvbiI+DQorPGF1dG9kaXNjb3ZlcnkgZW5hYmxlZD0iZmFsc2UiIHByb2JsZW1SZXBvcnRpbmdFbmFibGVkPSJ0cnVlIiBzZWxlY3RlZFByb2ZpbGVJZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSIvPg0KKzxwcm9maWxlIGlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIj4NCis8YnVpbGRPdXRwdXRQcm92aWRlcj4NCis8b3BlbkFjdGlvbiBlbmFibGVkPSJmYWxzZSIgZmlsZVBhdGg9IiIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvYnVpbGRPdXRwdXRQcm92aWRlcj4NCis8c2Nhbm5lckluZm9Qcm92aWRlciBpZD0ic3BlY3NGaWxlIj4NCis8cnVuQWN0aW9uIGFyZ3VtZW50cz0iLUUgLVAgLXYgLWREICR7cGx1Z2luX3N0YXRlX2xvY2F0aW9ufS8ke3NwZWNzX2ZpbGV9IiBjb21tYW5kPSJnY2MiIHVzZURlZmF1bHQ9InRydWUiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L3NjYW5uZXJJbmZvUHJvdmlkZXI+DQorPC9wcm9maWxlPg0KKzwvaXRlbT4NCis8aXRlbSBpZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUucGF0aGVudHJ5Ij4NCis8cGF0aGVudHJ5IGtpbmQ9InNyYyIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJvdXQiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkRJU0NPVkVSRURfU0NBTk5FUl9JTkZPIi8+DQorPC9pdGVtPg0KKzwvZGF0YT4NCis8L2NkdHByb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvLmNwcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvLmNwcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlN2U1YWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS8uY3Byb2plY3QKQEAgLTAsMCArMSwzMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQorPD9maWxlVmVyc2lvbiA0LjAuMD8+DQorDQorPGNwcm9qZWN0Pg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyI+DQorPGNjb25maWd1cmF0aW9uIGlkPSJjb252ZXJ0ZWQuY29uZmlnLjMyMjgzNDcwMyI+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgYnVpbGRTeXN0ZW1JZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZGVmYXVsdENvbmZpZ0RhdGFQcm92aWRlciIgaWQ9ImNvbnZlcnRlZC5jb25maWcuMzIyODM0NzAzIiBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiIG5hbWU9ImNvbnZlcnRlZENvbmZpZyI+DQorPGV4dGVybmFsU2V0dGluZ3MvPg0KKzxleHRlbnNpb25zPg0KKzxleHRlbnNpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5iaW5hcnlwYXJzZXIuQ29mZlBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkJpbmFyeVBhcnNlciIvPg0KKzwvZXh0ZW5zaW9ucz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jY29uZmlndXJhdGlvbj4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jcHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS8ucHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2NGMzM2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS8ucHJvamVjdApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPmxvY2FsLmNvbnNvbGU8L25hbWU+DQorCTxjb21tZW50PjwvY29tbWVudD4NCisJPHByb2plY3RzPg0KKwk8L3Byb2plY3RzPg0KKwk8YnVpbGRTcGVjPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2VCdWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQuYXJndW1lbnRzPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0LmNvcmUuZXJyb3JPdXRwdXRQYXJzZXI8L2tleT4NCisJCQkJCTx2YWx1ZT5jb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQ29mZkVycm9yUGFyc2VyO2NvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5Bc21FcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuTGlua0Vycm9yUGFyc2VyO29yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlcjs8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUF1dG9CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlRnVsbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmluYzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlZEluY3JlbWVudGFsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuY2xlYW48L2tleT4NCisJCQkJCTx2YWx1ZT5jbGVhbjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQuY29tbWFuZDwva2V5Pg0KKwkJCQkJPHZhbHVlPiR7WERDUk9PVH0veGRjPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVDbGVhbkJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUudXNlRGVmYXVsdEJ1aWxkQ21kPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5hdXRvPC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5zdG9wT25FcnJvcjwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuU2Nhbm5lckNvbmZpZ0J1aWxkZXI8L25hbWU+DQorCQkJPGFyZ3VtZW50cz4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwk8L2J1aWxkU3BlYz4NCisJPG5hdHVyZXM+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5jb3JlLmNuYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuU2Nhbm5lckNvbmZpZ05hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzNDZjYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKQEAgLTAsMCArMSw0IEBACisjVHVlIE1hciAxNyAxMDozMjowMyBQRFQgMjAwOQ0KK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQoraW5kZXhlci9pbmRleGVySWQ9b3JnLmVjbGlwc2UuY2R0LmNvcmUuZG9tc291cmNlaW5kZXhlcg0KK2luZGV4ZXJJZD1vcmcuZWNsaXBzZS5jZHQuY29yZS5kb21zb3VyY2VpbmRleGVyDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS8ueGRjZW52Lm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmJkZGViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAwCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSAKK292ZXJyaWRlIFhEQ1JPT1QgPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMworb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuL2NvbmZpZy5ibGQKK2VuZGlmCitpZm5lcSAoLCQoZmluZHN0cmluZyBhcmdzLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ0FSR1MgPSAKK292ZXJyaWRlIFhEQ1RBUkdFVFMgPSAKK2VuZGlmCisjCitpZmVxICgwLDEpCitQS0dQQVRIID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMvcGFja2FnZXM7Li4vLi4KK0hPU1RPUyA9IExpbnV4CitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvTWFpbi54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9NYWluLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMThkYmEyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvTWFpbi54ZGMKQEAgLTAsMCArMSwyNSBAQAorLyohCisgKiAgPT09PT09PT0gTWFpbiA9PT09PT09PQorICogIEdyYXBoaWNhbCBMb2cgRXZlbnQgRGlzcGxheSBUb29sCisgKgorICogIFRoaXMgcGFja2FnZSBwcm92aWRlcyBhIGdyYXBoaWNhbCBldmVudCBkZWNvZGVyIGZvciBgeGRjLnJ1bnRpbWUuTG9nYAorICogIGV2ZW50cyB0aGF0IGFyZSBvdXRwdXQgdG8gYSBzZXJpYWwgcG9ydC4KKyAqLworbWV0YW9ubHkgbW9kdWxlIE1haW4gaW5oZXJpdHMgeGRjLnRvb2xzLklDbWQgeworCisgICAgb3ZlcnJpZGUgY29uZmlnIFN0cmluZyB1c2FnZVtdID0gWworICAgICAgICAnWy1jIGNvbW1Qb3J0XSBbLW4gb3V0SGlzdF0gcHJvZ0ltYWdlIC4uLicsCisgICAgXTsKKworaW5zdGFuY2U6CisKKyAgICAvLyFNU1A0MzAgQXBwbGljYXRpb24gVUFSVCBDT00gUG9ydAorICAgIEBDb21tYW5kT3B0aW9uKCdjJykKKyAgICBjb25maWcgU3RyaW5nIGNvbW1Qb3J0ID0gIkNPTTQiOworCisgICAgLy8hQXZlcmFnZSBhbW91bnQgb2Ygb3V0cHV0IGhpc3RvcnkgdG8gcmV0YWluCisgICAgQENvbW1hbmRPcHRpb24oJ24nKQorICAgIGNvbmZpZyBJbnQgb3V0SGlzdCA9IDIwMDsKKworfQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9NYWluLnhzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvTWFpbi54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNzlhZTRiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvTWFpbi54cwpAQCAtMCwwICsxLDU1OCBAQAorLyogJ3hzJyBjb21tYW5kIGludm9jYXRpb24gb25seSAqLworaWYgKHhkYy5vbS4kbmFtZSA9PSBudWxsKSB7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0gR0xPQkFMIFNUQVRFIC0tLS0tLS0tLS0tLS0tLS0gKi8KKwordmFyIHdfZGlzcGxheSwgd19zaGVsbDsKK3ZhciBhcHAgPSB7fTsKKworLyogLS0tLS0tLS0tLS0tLS0tLSBPVVRQVVQgT0JKRUNUIC0tLS0tLS0tLS0tLS0tLS0gKi8KKworZnVuY3Rpb24gT3V0cHV0KHByb2dOYW1lKQoreworICAgIHRoaXMucHJvZ05hbWUgPSBwcm9nTmFtZTsKKworICAgIHRoaXMubG9ja2VkID0gZmFsc2U7CisgICAgdGhpcy5tZXRhZmxnID0gZmFsc2U7CisgICAgdGhpcy5tYXhpbWl6ZWQgPSBmYWxzZTsKKyAgICB0aGlzLnN0eWxlID0gbnVsbDsKKyAgICB0aGlzLnRleHQgPSAiIjsKKworICAgIHRoaXMuZnJhZ3MgPSBbXTsKKyAgICB0aGlzLnN0eWxlcyA9IFtdOworCisgICAgdGhpcy53X2NvbXAgPSBudWxsOworICAgIHRoaXMud19idG5XaW4gPSBudWxsOworICAgIHRoaXMud190eHRPdXQgPSBudWxsOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tIFNXVCBBTElBU0VTIC0tLS0tLS0tLS0tLS0tLS0gKi8KKwordmFyIGN1c3RvbSA9IHhkYy5qcmUub3JnLmVjbGlwc2Uuc3d0LmN1c3RvbTsKK3ZhciBncmFwaGljcyA9IHhkYy5qcmUub3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzOwordmFyIGxheW91dCA9IHhkYy5qcmUub3JnLmVjbGlwc2Uuc3d0LmxheW91dDsKK3ZhciB3aWRnZXRzID0geGRjLmpyZS5vcmcuZWNsaXBzZS5zd3Qud2lkZ2V0czsKKwordmFyIFNXVCA9IHhkYy5qcmUub3JnLmVjbGlwc2Uuc3d0LlNXVDsKK3ZhciBHRCA9IGxheW91dC5HcmlkRGF0YTsKKworLyogLS0tLS0tLS0tLS0tLS0tLSBESVNQTEFZIFJFU09VUkNFUyAtLS0tLS0tLS0tLS0tLS0tICovCisKK3dfZGlzcGxheSA9IHdpZGdldHMuRGlzcGxheSgpOworCit2YXIgSUNPX0RFTEVURSA9IGdyYXBoaWNzLkltYWdlKHdfZGlzcGxheSwgeGRjLmZpbmRGaWxlKCdsb2NhbC9jb25zb2xlL2ZpbGVzL2RlbGV0ZV9vYmouZ2lmJykpOwordmFyIElDT19JTkZPID0gZ3JhcGhpY3MuSW1hZ2Uod19kaXNwbGF5LCB4ZGMuZmluZEZpbGUoJ2xvY2FsL2NvbnNvbGUvZmlsZXMvaW5mby5wbmcnKSk7Cit2YXIgSUNPX0xPQ0sgPSBncmFwaGljcy5JbWFnZSh3X2Rpc3BsYXksIHhkYy5maW5kRmlsZSgnbG9jYWwvY29uc29sZS9maWxlcy9sb2NrLnBuZycpKTsKK3ZhciBJQ09fTUFYSU1JWkUgPSBncmFwaGljcy5JbWFnZSh3X2Rpc3BsYXksIHhkYy5maW5kRmlsZSgnbG9jYWwvY29uc29sZS9maWxlcy9zaW5nbGUucG5nJykpOwordmFyIElDT19SRVNUQVJUID0gZ3JhcGhpY3MuSW1hZ2Uod19kaXNwbGF5LCB4ZGMuZmluZEZpbGUoJ2xvY2FsL2NvbnNvbGUvZmlsZXMvcmVsb2FkLnBuZycpKTsKK3ZhciBJQ09fUkVTVE9SRSA9IGdyYXBoaWNzLkltYWdlKHdfZGlzcGxheSwgeGRjLmZpbmRGaWxlKCdsb2NhbC9jb25zb2xlL2ZpbGVzL3RpbGUucG5nJykpOwordmFyIElDT19TT0cgPSBncmFwaGljcy5JbWFnZSh3X2Rpc3BsYXksIHhkYy5maW5kRmlsZSgneGRjL3Rvb2xzL3NnL2ljb25zL3NvZy5pY28nKSk7CisKK3ZhciBDVVJfSEFORCA9IGdyYXBoaWNzLkN1cnNvcih3X2Rpc3BsYXksIFNXVC5DVVJTT1JfSEFORCk7CisKK3ZhciBDT0xfQkVJR0UgPSBncmFwaGljcy5Db2xvcih3X2Rpc3BsYXksIDI1NSwgMjU1LCAxODApOwordmFyIENPTF9CTFVFID0gd19kaXNwbGF5LmdldFN5c3RlbUNvbG9yKFNXVC5DT0xPUl9CTFVFKTsKK3ZhciBDT0xfR1JFRU4gPSB3X2Rpc3BsYXkuZ2V0U3lzdGVtQ29sb3IoU1dULkNPTE9SX0RBUktfR1JFRU4pOwordmFyIENPTF9HUkFZID0gd19kaXNwbGF5LmdldFN5c3RlbUNvbG9yKFNXVC5DT0xPUl9EQVJLX0dSQVkpOworCit2YXIgJGQgPSB3X2Rpc3BsYXkuZ2V0U3lzdGVtRm9udCgpLmdldEZvbnREYXRhKClbMF07ICRkLnNldFN0eWxlKFNXVC5CT0xEKTsKK3ZhciBGT05fTEFCRUwgPSBncmFwaGljcy5Gb250KHdfZGlzcGxheSwgJGQpOwordmFyIEZPTl9PVVRQVVQgPSBncmFwaGljcy5Gb250KHdfZGlzcGxheSwgIkNvdXJpZXIgTmV3IiwgOCwgU1dULk5PUk1BTCk7CisKK3ZhciAkcyA9IGN1c3RvbS5TdHlsZVJhbmdlKCk7ICRzLmZvcmVncm91bmQgPSBDT0xfQkxVRTsKK3ZhciBTVFlfTE9HTVNHID0gJHM7CiskcyA9IGN1c3RvbS5TdHlsZVJhbmdlKCk7ICRzLmZvcmVncm91bmQgPSBDT0xfR1JFRU47ICRzLmZvbnRTdHlsZSA9IFNXVC5CT0xEOwordmFyIFNUWV9MT0dQSUQgPSAkczsKKyRzID0gY3VzdG9tLlN0eWxlUmFuZ2UoKTsgJHMuZm9yZWdyb3VuZCA9IENPTF9HUkFZOwordmFyIFNUWV9MT0dFVlQgPSAkczsKKworCisvKiAtLS0tLS0tLS0tLS0tLS0tIFdJREdFVCBUUkVFIC0tLS0tLS0tLS0tLS0tLS0gKi8KKworZnVuY3Rpb24gd2lkZ2V0c0luaXQoKQoreworICAgIGZ1bmN0aW9uIG1rVG9vbEJhcihwcm50LCBzdHlsZSkKKyAgICB7CisgICAgICAgIHZhciBiYXIgPSB3aWRnZXRzLlRvb2xCYXIocHJudCwgc3R5bGUpOworICAgICAgICBiYXIuc2V0Q3Vyc29yKENVUl9IQU5EKTsKKworICAgICAgICByZXR1cm4gKGJhcik7CisgICAgfQorCisgICAgZnVuY3Rpb24gbWtUb29sQnV0KHRiLCBzdHlsZSwgaWNvbiwgdGlwLCBlZmxnKQorICAgIHsKKyAgICAgICAgdmFyIGJ1dCA9IHdpZGdldHMuVG9vbEl0ZW0odGIsIHN0eWxlKTsKKworICAgICAgICBidXQuc2V0SW1hZ2UoaWNvbik7CisgICAgICAgIGJ1dC5zZXRUb29sVGlwVGV4dCh0aXApOworICAgICAgICBidXQuc2V0RW5hYmxlZChlZmxnID8gdHJ1ZSA6IGZhbHNlKTsKKworICAgICAgICByZXR1cm4gKGJ1dCk7CisgICAgfQorCisgICAgdmFyIERJU0FCTEVEID0gZmFsc2U7CisgICAgdmFyIEVOQUJMRUQgPSB0cnVlOworCisgICAgdmFyICR3JHN0YWNrID0gW107CisgICAgdmFyICR3ID0gbnVsbDsKKworICAgIGZ1bmN0aW9uIFdJRCh3KSB7ICR3JHN0YWNrLnB1c2goJHcpOyAkdyA9IHc7IHJldHVybiAkdzsgfQorICAgIGZ1bmN0aW9uIEVORCgpIHsgJHcgPSAkdyRzdGFjay5wb3AoKTsgcmV0dXJuICR3OyB9CisKKyAgICB3X3NoZWxsID0gLyogU2hlbGwgKi8KKyAgICAgICAgV0lEKHdpZGdldHMuU2hlbGwod19kaXNwbGF5LCBTV1QuU0hFTExfVFJJTSB8IFNXVC5PTl9UT1ApKTsKKyAgICAgICAgICAgICR3LnNldExheW91dChsYXlvdXQuR3JpZExheW91dCgpKTsKKyAgICAgICAgICAgICR3LnNldFRleHQoJ2V6NDMwIENvbnNvbGUnKTsKKyAgICAgICAgICAgICR3LnNldEltYWdlKElDT19TT0cpOworICAgICAgICAgICAgJHcuc2V0U2l6ZSg2MDAsIDYwMCk7CisgICAgICAgICAgICAkdy5zZXRMb2NhdGlvbig0MDAsIDApOworICAgICAgICAgICAgJHcuYWRkU2hlbGxMaXN0ZW5lcihmdW5jdGlvbihlLCBtKXsgYXBwUXVpdChlLCBtKTsgfSk7CisKKyAgICAgICAgICAgIFdJRChta1Rvb2xCYXIoJHcsIFNXVC5IT1JJWk9OVEFMIHwgU1dULkZMQVQpKTsKKyAgICAgICAgICAgICAgICAkdy5zZXRMYXlvdXREYXRhKGxheW91dC5HcmlkRGF0YShHRC5IT1JJWk9OVEFMX0FMSUdOX0VORCkpOworICAgIGFwcC53X2J0bk1ldGEgPSAvKiBCdXR0b24gKi8KKyAgICAgICAgICAgICAgICBXSUQobWtUb29sQnV0KCR3LCBTV1QuQ0hFQ0ssIElDT19JTkZPLCAnU2hvdyBtZXRhLWRhdGEnLCBFTkFCTEVEKSk7CisgICAgICAgICAgICAgICAgICAgICR3LmFkZExpc3RlbmVyKFNXVC5TZWxlY3Rpb24sIGZ1bmN0aW9uKGUpeyBmb3IgZWFjaCAodmFyIG8gaW4gYXBwLm91dHB1dHMpIG8ubWV0YSgpOyB9KTsKKyAgICAgICAgICAgICAgICBFTkQoKTsKKyAgICBhcHAud19idG5Mb2NrID0gLyogQnV0dG9uICovCisgICAgICAgICAgICAgICAgV0lEKG1rVG9vbEJ1dCgkdywgU1dULkNIRUNLLCBJQ09fTE9DSywgJ0xvY2sgb3V0cHV0JywgRU5BQkxFRCkpOworICAgICAgICAgICAgICAgICAgICAkdy5hZGRMaXN0ZW5lcihTV1QuU2VsZWN0aW9uLCBmdW5jdGlvbihlKXsgZm9yIGVhY2ggKHZhciBvIGluIGFwcC5vdXRwdXRzKSBvLmxvY2soKTsgfSk7CisgICAgICAgICAgICAgICAgRU5EKCk7CisgICAgICAgICAgICAgICAgV0lEKHdpZGdldHMuVG9vbEl0ZW0oJHcsIFNXVC5TRVBBUkFUT1IpKTsKKyAgICAgICAgICAgICAgICBFTkQoKTsKKyAgICAgICAgICAgICAgICBXSUQobWtUb29sQnV0KCR3LCBTV1QuUFVTSCwgSUNPX0RFTEVURSwgJ0NsZWFyIG91dHB1dCcsIEVOQUJMRUQpKTsKKyAgICAgICAgICAgICAgICAgICAgJHcuYWRkTGlzdGVuZXIoU1dULlNlbGVjdGlvbiwgZnVuY3Rpb24oZSl7IGZvciBlYWNoICh2YXIgbyBpbiBhcHAub3V0cHV0cykgby5jbGVhcigpOyB9KTsKKyAgICAgICAgICAgICAgICBFTkQoKTsKKyAgICAgICAgICAgICAgICBXSUQobWtUb29sQnV0KCR3LCBTV1QuUFVTSCwgSUNPX1JFU1RBUlQsICdSZWxvYWQgYXJndW1lbnRzJywgRU5BQkxFRCkpOworICAgICAgICAgICAgICAgICAgICR3LmFkZExpc3RlbmVyKFNXVC5TZWxlY3Rpb24sIGZ1bmN0aW9uKGUpeyBkZWNvZGVyU2V0dXAoKTsgfSk7CisgICAgICAgICAgICAgICAgRU5EKCk7CisgICAgICAgICAgICBFTkQoKTsKKworICAgIGFwcC53X3Nhc2ggPSAvKiBTYXNoRm9ybSAqLworICAgICAgICAgICAgV0lEKGN1c3RvbS5TYXNoRm9ybSgkdywgU1dULlZFUlRJQ0FMKSk7CisgICAgICAgICAgICAgICAgJHcuc2V0TGF5b3V0RGF0YShsYXlvdXQuR3JpZERhdGEoR0QuRklMTF9CT1RIKSk7CisKKyAgICBhcHAub3V0cHV0cyA9IFtdOworICAgIHZhciB3ZWlnaHRzID0gW107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcHAuYXJncy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgb3V0cHV0ID0gbmV3IE91dHB1dChhcHAuYXJnc1tpXSk7CisgICAgICAgIGFwcC5vdXRwdXRzLnB1c2gob3V0cHV0KTsKKyAgICAgICAgd2VpZ2h0cy5wdXNoKDEpOworCisgICAgICAgIG91dHB1dC53X2NvbXAgPSAvKiBDb21wb3NpdGUgKi8KKyAgICAgICAgICAgICAgICBXSUQod2lkZ2V0cy5Db21wb3NpdGUoJHcsIFNXVC5CT1JERVIpKTsKKyAgICAgICAgICAgICAgICAgICAgJHcuc2V0TGF5b3V0RGF0YShsYXlvdXQuR3JpZERhdGEoR0QuRklMTF9CT1RIKSk7CisgICAgICAgICAgICAgICAgICAgICR3LnNldExheW91dChsYXlvdXQuR3JpZExheW91dCgyLCBmYWxzZSkpOworICAgICAgICAgICAgICAgICAgICAvKiBDTGFiZWwgKi8KKyAgICAgICAgICAgICAgICAgICAgV0lEKGN1c3RvbS5DTGFiZWwoJHcsIFNXVC5OVUxMKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAkdy5zZXRUZXh0KGFwcC5hcmdzW2ldICsgJyBvdXRwdXQnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICR3LnNldEZvbnQoRk9OX0xBQkVMKTsKKyAgICAgICAgICAgICAgICAgICAgRU5EKCk7CisgICAgICAgICAgICAgICAgICAgIC8qIFRvb2xCYXIgKi8KKyAgICAgICAgICAgICAgICAgICAgV0lEKG1rVG9vbEJhcigkdywgU1dULkhPUklaT05UQUwgfCBTV1QuRkxBVCkpOworICAgICAgICAgICAgICAgICAgICAgICAgJHcuc2V0TGF5b3V0RGF0YShsYXlvdXQuR3JpZERhdGEoR0QuSE9SSVpPTlRBTF9BTElHTl9FTkQpKTsKKyAgICAgICAgb3V0cHV0LndfYnRuV2luID0gLyogQnV0dG9uICovCisgICAgICAgICAgICAgICAgICAgICAgICBXSUQobWtUb29sQnV0KCR3LCBTV1QuUFVTSCwgSUNPX01BWElNSVpFLCAnTWF4aW1pemUnLCBFTkFCTEVEKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHcuc2V0RGF0YShvdXRwdXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3LmFkZExpc3RlbmVyKFNXVC5TZWxlY3Rpb24sIGZ1bmN0aW9uKGUpeyBlLndpZGdldC5nZXREYXRhKCkubWF4aW1pemUoKTsgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICBFTkQoKTsKKyAgICAgICAgICAgICAgICAgICAgRU5EKCk7CisgICAgICAgIG91dHB1dC53X3R4dE91dCA9IC8qIFRleHQgKi8KKyAgICAgICAgICAgICAgICAgICAgV0lEKGN1c3RvbS5TdHlsZWRUZXh0KCR3LCBTV1QuQk9SREVSIHwgU1dULk1VTFRJIHwgU1dULlJFQURfT05MWSB8IFNXVC5WX1NDUk9MTCkpOworICAgICAgICAgICAgICAgICAgICAgICAgdmFyICRnZCA9IGxheW91dC5HcmlkRGF0YShHRC5GSUxMX0JPVEgpOworICAgICAgICAgICAgICAgICAgICAgICAgJGdkLmhvcml6b250YWxTcGFuID0gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgICR3LnNldExheW91dERhdGEoJGdkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICR3LnNldEJhY2tncm91bmQoQ09MX0JFSUdFKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICR3LnNldEZvbnQoRk9OX09VVFBVVCk7CisgICAgICAgICAgICAgICAgICAgIEVORCgpOworICAgICAgICAgICAgICAgIEVORCgpOworICAgIH0KKyAgICAgICAgICAgICR3LnNldFdlaWdodHMod2VpZ2h0cyk7CisgICAgICAgICAgICBFTkQoKTsKKworCisgICAgICAgICAgICAvKiBDb21wb3NpdGUgKi8KKyAgICAgICAgICAgIFdJRCh3aWRnZXRzLkNvbXBvc2l0ZSgkdywgU1dULkJPUkRFUikpOworICAgICAgICAgICAgICAgICR3LnNldExheW91dERhdGEobGF5b3V0LkdyaWREYXRhKEdELkZJTExfSE9SSVpPTlRBTCkpOworICAgICAgICAgICAgICAgICR3LnNldExheW91dChsYXlvdXQuR3JpZExheW91dCgpKTsKKyAgICAgICAgICAgICAgICAvKiBDTGFiZWwgKi8KKyAgICAgICAgICAgICAgICBXSUQoY3VzdG9tLkNMYWJlbCgkdywgU1dULk5VTEwpKTsKKyAgICAgICAgICAgICAgICAgICAgJHcuc2V0VGV4dChhcHAuYXJnc1swXSArICcgaW5wdXQnKTsKKyAgICAgICAgICAgICAgICAgICAgJHcuc2V0Rm9udChGT05fTEFCRUwpOworICAgICAgICAgICAgICAgIEVORCgpOworICAgIGFwcC53X3R4dEluID0gLyogVGV4dCAqLworICAgICAgICAgICAgICAgIFdJRCh3aWRnZXRzLlRleHQoJHcsIFNXVC5CT1JERVIgfCBTV1QuU0lOR0xFKSk7CisgICAgICAgICAgICAgICAgICAgICR3LnNldExheW91dERhdGEobGF5b3V0LkdyaWREYXRhKEdELkZJTExfQk9USCkpOworICAgICAgICAgICAgICAgICAgICAkdy5hZGRMaXN0ZW5lcihTV1QuRGVmYXVsdFNlbGVjdGlvbiwgZnVuY3Rpb24oZSl7IGlucHV0U2VuZCgpOyB9KTsKKyAgICAgICAgICAgICAgICBFTkQoKTsKKyAgICAgICAgICAgIEVORCgpOworICAgICAgICBFTkQoKTsKK30KKworCisvKiAtLS0tLS0tLS0tLS0tLS0tIEZVTkNUSU9OUyAtLS0tLS0tLS0tLS0tLS0tICovCisKKy8qCisgKiAgPT09PT09PT0gYXBwUXVpdCA9PT09PT09PQorICovCitmdW5jdGlvbiBhcHBRdWl0KGV2ZW50LCBtZXRob2QpCit7CisgICAgaWYgKG1ldGhvZCA9PSAnc2hlbGxDbG9zZWQnKSB7CisgICAgICAgIGFwcC5ydW5zdGF0ZSA9ICdTVE9QUElORyc7CisgICAgICAgIGV2ZW50LmRvaXQgPSBmYWxzZTsKKyAgICB9Cit9CisKKy8qCisgKiAgPT09PT09PT0gZGVjb2RlclNldHVwID09PT09PT09CisgKi8KK2Z1bmN0aW9uIGRlY29kZXJTZXR1cCgpCit7CisgICAgYXBwLmRlY29kZXJzID0gW107CisgICAgYXBwLmV2dHJlY3MgPSBbXTsKKworICAgIGZvciBlYWNoICh2YXIgZXhlRmlsZSBpbiBhcHAuYXJncykgeworCisgICAgICAgIHhkYy5sb2FkUGFja2FnZSgneGRjLnJ0YScpOworICAgICAgICB4ZGMubG9hZFBhY2thZ2UoJ3hkYy5yb3YnKTsKKyAgICAgICAgeGRjLmxvYWRQYWNrYWdlKCd0aS50YXJnZXRzLm9tZi5jb2YnKTsKKworICAgICAgICB2YXIgRGVjb2RlciA9IHhkYy5qcmUueGRjLnJ0YS5EZWNvZGVyOworICAgICAgICB2YXIgVmVycyA9IHhkYy5qcmUueGRjLnNlcnZpY2VzLmdsb2JhbC5WZXJzOworCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2YXIgbSA9IFZlcnMuZ2V0V2hhdFN0cmluZyhleGVGaWxlKS5tYXRjaCgvX19BU01fXyA9ICguKykkL20pOworICAgICAgICB9CisgICAgICAgIGNhdGNoIChlKSB7CisgICAgICAgICAgICBhcHAuY21kci5lcnJvcigiY2FuJ3QgcmVhZCB0aGUgZXhlY3V0YWJsZSAnIiArIGV4ZUZpbGUgKyAiJyIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFtKSB7CisgICAgICAgICAgICBhcHAuY21kci5lcnJvcigiJyIgKyBleGVGaWxlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiJyBjb250YWlucyBubyBhc3NlbWJseSBpbmZvcm1hdGlvbiIpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIHJ0YUZpbGUgPSBtWzFdICsgIi5ydGEueG1sIjsKKyAgICAgICAgaWYgKCFqYXZhLmlvLkZpbGUocnRhRmlsZSkuZXhpc3RzKCkpIHsKKyAgICAgICAgICAgIGFwcC5jbWRyLmVycm9yKCInIiArIGV4ZUZpbGUgKyAiJyBjb250YWlucyBubyBSVEEgZGF0YSIpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGRlYyA9IG5ldyBEZWNvZGVyKCk7CisgICAgICAgIHZhciBlcnIgPSBTdHJpbmcoZGVjLnBhcnNlKHJ0YUZpbGUsIGV4ZUZpbGUpKTsKKyAgICAgICAgaWYgKGVycikgeworICAgICAgICAgICAgYXBwLmNtZHIuZXJyb3IoImNhbid0IGNyZWF0ZSBkZWNvZGVyIGZvciAnIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZXhlRmlsZSArICInOiAiICsgZXJyKTsKKyAgICAgICAgfQorCisgICAgICAgIGFwcC5kZWNvZGVycy5wdXNoKGRlYyk7CisKKyAgICAgICAgYXBwLmV2dHJlY3MucHVzaCgKKyAgICAgICAgICAgIGphdmEubGFuZy5yZWZsZWN0LkFycmF5Lm5ld0luc3RhbmNlKAorICAgICAgICAgICAgICAgIGphdmEubGFuZy5CeXRlLlRZUEUsIGRlYy5nZXRUYXJnZXRFdmVudFJlY1NpemUoKSkKKyAgICAgICAgKTsKKyAgICB9Cit9CisKKy8qCisgKiAgPT09PT09PT0gaW5wdXRTZW5kID09PT09PT09CisgKi8KK2Z1bmN0aW9uIGlucHV0U2VuZCgpCit7CisgICAgYXBwLmNtZExpbmUgPSBTdHJpbmcoYXBwLndfdHh0SW4uZ2V0VGV4dCgpKTsKKyAgICBpZiAoYXBwLmNtZExpbmUubGVuZ3RoID4gMCkgeworICAgICAgICBqYXZhLmxhbmcuVGhyZWFkKHVhcnRXcml0ZSkuc3RhcnQoKTsKKyAgICAgICAgYXBwLndfdHh0SW4uc2V0VGV4dCgiIik7CisgICAgfQorfQorCisvKgorICogID09PT09PT09IE91dHB1dC5kb1dyaXRlID09PT09PT09CisgKi8KK091dHB1dC5wcm90b3R5cGUuZG9Xcml0ZSA9IGZ1bmN0aW9uKCkKK3sKKyAgICBpZiAodGhpcy5mcmFncy5sZW5ndGggPT0gYXBwLmluc3Qub3V0SGlzdCAqIDIpIHsKKyAgICAgICAgdGhpcy50cmltKCk7CisgICAgfQorCisgICAgaWYgKCF0aGlzLmxvY2tlZCkgeworICAgICAgICB2YXIgc3IgPSBudWxsOworICAgICAgICBpZiAodGhpcy5zdHlsZSkgeworICAgICAgICAgICAgc3IgPSB0aGlzLnN0eWxlLmNsb25lKCk7CisgICAgICAgICAgICBzci5zdGFydCA9IHRoaXMud190eHRPdXQuZ2V0Q2hhckNvdW50KCk7CisgICAgICAgICAgICBzci5sZW5ndGggPSB0aGlzLnRleHQubGVuZ3RoOworICAgICAgICB9CisgICAgICAgIHRoaXMud190eHRPdXQuYXBwZW5kKHRoaXMudGV4dCk7CisgICAgICAgIHRoaXMuZnJhZ3MucHVzaCh0aGlzLnRleHQpOworICAgICAgICB0aGlzLnN0eWxlcy5wdXNoKHNyKTsKKyAgICAgICAgaWYgKHNyKSB7CisgICAgICAgICAgICB0aGlzLndfdHh0T3V0LnNldFN0eWxlUmFuZ2Uoc3IpOworICAgICAgICB9CisgICAgICAgIHRoaXMud190eHRPdXQuc2V0U2VsZWN0aW9uKHRoaXMud190eHRPdXQuZ2V0Q2hhckNvdW50KCkpOworICAgICAgICB0aGlzLndfdHh0T3V0LnNob3dTZWxlY3Rpb24oKTsKKyAgICB9CisgICAgdGhpcy50ZXh0ID0gIiI7CisgICAgdGhpcy5zdHlsZSA9IG51bGw7Cit9OworCisvKgorICogID09PT09PT09IE91dHB1dC5jbGVhciA9PT09PT09PQorICovCitPdXRwdXQucHJvdG90eXBlLmNsZWFyID0gZnVuY3Rpb24oKQoreworICAgIHRoaXMud190eHRPdXQuc2V0VGV4dCgiIik7CisKKyAgICB0aGlzLnN0eWxlID0gbnVsbDsKKyAgICB0aGlzLnRleHQgPSAiIjsKKworICAgIHRoaXMuZnJhZ3MgPSBbXTsKKyAgICB0aGlzLnN0eWxlcyA9IFtdOworfTsKKworLyoKKyAqICA9PT09PT09PSBPdXRwdXQubG9jayA9PT09PT09PQorICovCitPdXRwdXQucHJvdG90eXBlLmxvY2sgPSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5sb2NrZWQgPSBhcHAud19idG5Mb2NrLmdldFNlbGVjdGlvbigpOworICAgIGFwcC53X2J0bkxvY2suc2V0VG9vbFRpcFRleHQoCisgICAgICAgIHRoaXMubG9ja2VkID8gIlVubG9jayBvdXRwdXQiIDogIkxvY2sgb3V0cHV0Iik7Cit9OworCisvKgorICogID09PT09PT09IE91dHB1dC5tYXhpbWl6ZSA9PT09PT09PQorICovCitPdXRwdXQucHJvdG90eXBlLm1heGltaXplID0gZnVuY3Rpb24oKQoreworICAgIHRoaXMubWF4aW1pemVkIF49IHRydWU7CisKKyAgICBhcHAud19zYXNoLnNldE1heGltaXplZENvbnRyb2wodGhpcy5tYXhpbWl6ZWQgPyB0aGlzLndfY29tcCA6IG51bGwpOworCisgICAgdGhpcy53X2J0bldpbi5zZXRJbWFnZSh0aGlzLm1heGltaXplZCA/IElDT19SRVNUT1JFIDogSUNPX01BWElNSVpFKTsKKyAgICB0aGlzLndfYnRuV2luLnNldFRvb2xUaXBUZXh0KHRoaXMubWF4aW1pemVkID8gIlJlc3RvcmUiIDogIk1heGltaXplIik7Cit9OworCisKKy8qCisgKiAgPT09PT09PT0gT3V0cHV0Lm1ldGEgPT09PT09PT0KKyAqLworT3V0cHV0LnByb3RvdHlwZS5tZXRhID0gZnVuY3Rpb24oKQoreworICAgIHRoaXMubWV0YWZsZyA9IGFwcC53X2J0bk1ldGEuZ2V0U2VsZWN0aW9uKCk7CisgICAgYXBwLndfYnRuTWV0YS5zZXRUb29sVGlwVGV4dCgKKyAgICAgICAgdGhpcy5tZXRhZmxnID8gIkhpZGUgbWV0YS1kYXRhIiA6ICJTaG93IG1ldGEtZGF0YSIpOworfTsKKworLyoKKyAqICA9PT09PT09PSBPdXRwdXQudHJpbSA9PT09PT09PQorICovCitPdXRwdXQucHJvdG90eXBlLnRyaW0gPSBmdW5jdGlvbigpCit7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcHAuaW5zdC5vdXRIaXN0OyBpKyspIHsKKyAgICAgICAgdGhpcy5mcmFncy5zaGlmdCgpOworICAgICAgICB0aGlzLnN0eWxlcy5zaGlmdCgpOworICAgIH0KKworICAgIHRoaXMud190eHRPdXQuc2V0VGV4dCgiIik7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFwcC5pbnN0Lm91dEhpc3Q7IGkrKykgeworICAgICAgICB2YXIgc3IgPSB0aGlzLnN0eWxlc1tpXTsKKyAgICAgICAgaWYgKHNyKSB7CisgICAgICAgICAgICBzci5zdGFydCA9IHRoaXMud190eHRPdXQuZ2V0Q2hhckNvdW50KCk7CisgICAgICAgICAgICBzci5sZW5ndGggPSB0aGlzLmZyYWdzW2ldLmxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICB0aGlzLndfdHh0T3V0LmFwcGVuZCh0aGlzLmZyYWdzW2ldKTsKKyAgICAgICAgaWYgKHNyKSB7CisgICAgICAgICAgICB0aGlzLndfdHh0T3V0LnNldFN0eWxlUmFuZ2Uoc3IpOworICAgICAgICB9CisgICAgfQorfTsKKworLyoKKyAqICA9PT09PT09PSBPdXRwdXQud3JpdGUgPT09PT09PT0KKyAqLworT3V0cHV0LnByb3RvdHlwZS53cml0ZSA9IGZ1bmN0aW9uKHRleHQsIHN0eWxlKQoreworICAgIHRoaXMudGV4dCA9IHRleHQ7CisgICAgdGhpcy5zdHlsZSA9IHN0eWxlOworCisgICAgdmFyIG91dHB1dCA9IHRoaXM7CisgICAgd19kaXNwbGF5LnN5bmNFeGVjKGZ1bmN0aW9uKCl7IG91dHB1dC5kb1dyaXRlKCk7IH0pOworfTsKKworLyoKKyAqICA9PT09PT09PSByZWFkZXJTdGFydCA9PT09PT09PQorICovCitmdW5jdGlvbiByZWFkZXJTdGFydCgpCit7CisgICAgdmFyIGJ1ZiA9IGphdmEubGFuZy5yZWZsZWN0LkFycmF5Lm5ld0luc3RhbmNlKGphdmEubGFuZy5CeXRlLlRZUEUsIDEyOCk7CisgICAgdmFyIGlkeCA9IDA7CisgICAgdmFyIGxlbiA9IDA7CisKKyAgICB2YXIgbmV4dEJ5dGUgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoaWR4ID09IGxlbikgeworICAgICAgICAgICAgaWR4ID0gMDsKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBsZW4gPSBhcHAuaW5TdHIucmVhZChidWYpOworICAgICAgICAgICAgICAgIGlmIChhcHAucnVuc3RhdGUgPT0gJ1JVTk5JTkcnICYmIGxlbiA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChhcHAucnVuc3RhdGUgPT0gJ1NUT1BQSU5HJykgeworICAgICAgICAgICAgICAgICAgICBhcHAucnVuc3RhdGUgPSAnSEFMVEVEJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGxlbiA9PSAtMSA/IC0xIDogYnVmW2lkeCsrXTsKKyAgICB9OworCisgICAgdmFyIHNjYW5uZXIgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgZGVjb2RlcjsgICAgLyogdGhlIGN1cnJlbnQgZGVjb2RlciAqLworICAgICAgICB2YXIgcmVjb3JkOyAgICAgLyogdGhlIGN1cnJlbnQgZXZlbnQgYnVmZmVyICovCisgICAgICAgIHZhciBvdXRwdXQ7ICAgICAvKiB0aGUgY3VycmVudCBvdXRwdXQgd2luZG93ICovCisgICAgICAgIHZhciBlaWQgPSAwOworCisgICAgICAgIGNvbnN0IE5VTCA9IDA7CisgICAgICAgIGNvbnN0IFNPSCA9IDE7CisgICAgICAgIGNvbnN0IFNUWCA9IDI7CisgICAgICAgIGNvbnN0IEVUWCA9IDM7CisgICAgICAgIGNvbnN0IEVPVCA9IDQ7CisKKyAgICAgICAgY29uc3QgTkwgPSAxMDsKKworICAgICAgICB2YXIgdGV4dCA9ICIiOworCisgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgIHZhciBiID0gbmV4dEJ5dGUoKTsKKyAgICAgICAgICAgIGlmIChiID09IC0xKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7ICAgIC8qIGVuZC1vZi1zdHJlYW0gKi8KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGIgPT0gU09IKSB7CisgICAgICAgICAgICAgICAgdmFyIGRlY0lkID0gbmV4dEJ5dGUoKTsKKyAgICAgICAgICAgICAgICBkZWNvZGVyID0gYXBwLmRlY29kZXJzW2RlY0lkXTsKKyAgICAgICAgICAgICAgICByZWNvcmQgPSBhcHAuZXZ0cmVjc1tkZWNJZF07CisgICAgICAgICAgICAgICAgb3V0cHV0ID0gYXBwLm91dHB1dHNbZGVjSWRdOworCisgICAgICAgICAgICAgICAgLyogaWYgZGVjSWQgaXMgYm9ndXMgc2tpcCB0aGlzIGJ5dGUgKi8KKyAgICAgICAgICAgICAgICBpZiAoZGVjb2RlciA9PSBudWxsIHx8IHJlY29yZCA9PSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3JkLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIHJlY29yZFtpXSA9IG5leHRCeXRlKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBldmVudCA9IGRlY29kZXIuYXBwbHkocmVjb3JkKTsKKyAgICAgICAgICAgICAgICBvdXRwdXQud3JpdGUoZXZlbnQuZ2V0RXZlbnRNc2coKSArICJcbiIsIFNUWV9MT0dNU0cpOworICAgICAgICAgICAgICAgIGlmIChvdXRwdXQubWV0YWZsZykgeworICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gIlx0IjsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAiIGlkID0gIiArIGVpZCsrOworICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICIgbW9kdWxlID0gIiArIGV2ZW50LmdldE1vZHVsZU5hbWUoKTsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAiIGV2ZW50ID0gIiArIGV2ZW50LmdldEV2ZW50TmFtZSgpOworICAgICAgICAgICAgICAgICAgICB0ZXh0ICs9ICJcbiI7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dC53cml0ZSh0ZXh0LCBTVFlfTE9HRVZUKTsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA9ICIiOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogaWdub3JlIGNvbnRyb2wgY2hhcmFjdGVycyAqLworICAgICAgICAgICAgaWYgKGIgPD0gNCkgeworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvdXRwdXQgPSBhcHAub3V0cHV0c1swXTsKKyAgICAgICAgICAgIHRleHQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShiKTsKKyAgICAgICAgICAgIGlmIChiID09IE5MIHx8IHRleHQubGVuZ3RoID4gMTAyNCkgeworICAgICAgICAgICAgICAgIG91dHB1dC53cml0ZSh0ZXh0LCBudWxsKTsKKyAgICAgICAgICAgICAgICBpZiAob3V0cHV0Lm1ldGFmbGcgJiYgYiA9PSBOTCkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gIlx0IjsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAiIGlkID0gIiArIGVpZDsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCArPSAiXG4iOworICAgICAgICAgICAgICAgICAgICBvdXRwdXQud3JpdGUodGV4dCwgU1RZX0xPR0VWVCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChiID09IE5MKSBlaWQrKzsKKyAgICAgICAgICAgICAgICB0ZXh0ID0gIiI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9OworCisgICAgYXBwLnJ1bnN0YXRlID0gJ1JVTk5JTkcnOworICAgIGphdmEubGFuZy5UaHJlYWQoc2Nhbm5lcikuc3RhcnQoKTsKK30KKworLyoKKyAqICA9PT09PT09PSB1YXJ0V3JpdGUgPT09PT09PT0KKyAqLworZnVuY3Rpb24gdWFydFdyaXRlKCkKK3sKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFwcC5jbWRMaW5lLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGFwcC5vdXRTdHIud3JpdGUoYXBwLmNtZExpbmUuY2hhckNvZGVBdChpKSk7CisgICAgfQorICAgIGFwcC5vdXRTdHIud3JpdGUoMTApOworfQorCisvKgorICogID09PT09PT09IHVhcnRPcGVuID09PT09PT09CisgKi8KK2Z1bmN0aW9uIHVhcnRPcGVuKHVhcnQpCit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFyIFNlcmlhbFBvcnQgPSBQYWNrYWdlcy5nbnUuaW8uU2VyaWFsUG9ydDsKKworICAgICAgICB2YXIgcG9ydElkID0gUGFja2FnZXMuZ251LmlvLkNvbW1Qb3J0SWRlbnRpZmllci5nZXRQb3J0SWRlbnRpZmllcih1YXJ0KTsKKyAgICAgICAgdmFyIHBvcnQgPSBwb3J0SWQub3BlbigibG9jYWwuY29uc29sZSIsIDIwMDApOworCisgICAgICAgIHBvcnQuc2V0U2VyaWFsUG9ydFBhcmFtcyg5NjAwLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbFBvcnQuREFUQUJJVFNfOCwgU2VyaWFsUG9ydC5TVE9QQklUU18xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VyaWFsUG9ydC5QQVJJVFlfTk9ORSk7CisKKyAgICAgICAgYXBwLmluU3RyID0gcG9ydC5nZXRJbnB1dFN0cmVhbSgpOworICAgICAgICBhcHAub3V0U3RyID0gcG9ydC5nZXRPdXRwdXRTdHJlYW0oKTsKKyAgICB9CisgICAgY2F0Y2goZSkgeworICAgICAgICBhcHAuY21kci5lcnJvcigiY2FuJ3Qgb3BlbiAiICsgdWFydCk7CisgICAgfQorfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tIE1BSU4gLS0tLS0tLS0tLS0tLS0tLSAqLworCisvKgorICogID09PT09PT09IHJ1biA9PT09PT09PQorICovCitmdW5jdGlvbiBydW4oY21kciwgYXJncykKK3sKKyAgICBhcHAuY21kciA9IGNtZHI7CisgICAgYXBwLmFyZ3MgPSBhcmdzOworICAgIGFwcC5pbnN0ID0gdGhpczsKKworICAgIGlmIChhcmdzLmxlbmd0aCA9PSAwKSB7CisgICAgICAgIGFwcC5jbWRyLnVzYWdlKCk7CisgICAgfQorCisgICAgd2lkZ2V0c0luaXQoKTsKKyAgICBkZWNvZGVyU2V0dXAoKTsKKyAgICB1YXJ0T3Blbih0aGlzLmNvbW1Qb3J0KTsKKyAgICByZWFkZXJTdGFydCgpOworCisgICAgd19zaGVsbC5vcGVuKCk7CisgICAgYXBwLndfdHh0SW4uc2V0Rm9jdXMoKTsKKworICAgIHdoaWxlIChhcHAucnVuc3RhdGUgIT0gJ0hBTFRFRCcpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGlmICghd19kaXNwbGF5LnJlYWRBbmREaXNwYXRjaCgpKSB7CisgICAgICAgICAgICAgICAgd19kaXNwbGF5LnNsZWVwKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgY2F0Y2goZSkgeworICAgICAgICAgICAgcHJpbnQoZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB3X3NoZWxsLmNsb3NlKCk7CisgICAgd19kaXNwbGF5LmRpc3Bvc2UoKTsKKworICAgIGphdmEubGFuZy5TeXN0ZW0uZXhpdCgwKTsKK30KKworfSAgICAvKiB4ZGMub20uJG5hbWUgPT0gbnVsbCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvY29uZmlnLmJsZCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2NvbmZpZy5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y3MDQ3MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2NvbmZpZy5ibGQKQEAgLTAsMCArMSwyIEBACisvKiAgVGhpcyBmaWxlIG92ZXJyaWRlcyB0aGUgdXNlcidzIGNvbmZpZy5ibGQgc2luY2Ugbm8gdGFyZ2V0cyBhcmUgbmVlZGVkICovCitCdWlsZC51c2VUYXJnZXRzID0gbnVsbDsgICAgLyogZm9yY2UgdGhlIHNldCBvZiBidWlsZCB0YXJnZXRzIHRvIGJlIGVtcHR5ICovCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9kZWxldGVfb2JqLmdpZiBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2ZpbGVzL2RlbGV0ZV9vYmouZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2OTIyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9kZWxldGVfb2JqLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9pbmZvLnBuZyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2ZpbGVzL2luZm8ucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyY2QxYWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9pbmZvLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9sb2NrLnBuZyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2ZpbGVzL2xvY2sucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlYmM0ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9sb2NrLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9tYXhpbWl6ZS5naWYgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9tYXhpbWl6ZS5naWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVhZjI4ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2ZpbGVzL21heGltaXplLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9yZWZyZXNoLmdpZiBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2ZpbGVzL3JlZnJlc2guZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzODMxNDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9yZWZyZXNoLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9yZWxvYWQucG5nIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvZmlsZXMvcmVsb2FkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NmM3NWFhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvZmlsZXMvcmVsb2FkLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9yZWxvYWQucG5nLHNhdiBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2ZpbGVzL3JlbG9hZC5wbmcsc2F2Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0MzQ3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9yZWxvYWQucG5nLHNhdgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9yZXN0YXJ0LnBuZyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2ZpbGVzL3Jlc3RhcnQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ2Yzc1YWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9yZXN0YXJ0LnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9yZXN0b3JlLmdpZiBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2ZpbGVzL3Jlc3RvcmUuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1Y2MyNTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9yZXN0b3JlLmdpZgpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy9zaW5nbGUucG5nIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvZmlsZXMvc2luZ2xlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjI4NjBhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvZmlsZXMvc2luZ2xlLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy90aWxlLnBuZyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL2ZpbGVzL3RpbGUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkNDAzODMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9maWxlcy90aWxlLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9wYWNrYWdlLmJsZCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9jb25zb2xlL3BhY2thZ2UuYmxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNzlkZTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9wYWNrYWdlLmJsZApAQCAtMCwwICsxIEBACisvKiB0aGlzIGZpbGUgaXMgaW50ZW5zaW9uYWxseSAiZW1wdHkiICovClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvcGFja2FnZS54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvY29uc29sZS9wYWNrYWdlLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMmZhOWM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL2NvbnNvbGUvcGFja2FnZS54ZGMKQEAgLTAsMCArMSwzMiBAQAorcmVxdWlyZXMgeGRjLnRvb2xzLnNnOworCisvKiEKKyAqICA9PT09PT09PSBjb25zb2xlID09PT09PT09CisgKiAgSW50ZXJhY3RpdmUgR1VJIHhkYy5ydW50aW1lLkxvZyBldmVudCBkZWNvZGVyCisgKgorICogIEBiKFVzYWdlKQorICogIEBwKGNvZGUpCisgKiAgICAgIHhzIGxvY2FsLmNvbnNvbGUgWy1jIHNlcmlhbFBvcnROYW1lXSBbLW4gaGlzdG9yeUxlbl0gW3Byb2dJbWFnZSAuLi5dCisgKiAgQHAKKyAqCisgKiAgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgZ3JhcGhpY2FsIGV2ZW50IGRlY29kZXIgZm9yIHhkYy5ydW50aW1lLkxvZworICogIGV2ZW50cyB0aGF0IGFyZSBvdXRwdXQgdG8gYSBzZXJpYWwgcG9ydC4KKyAqCisgKiAgQGEoRXhhbXBsZXMpCisgKiAgVGhlIGZvbGxvd2luZyBleGFtcGxlIGRpc3BsYXlzIGV2ZW50cyBmcm9tIHRoZSBwcm9ncmFtIG5hbWVkCisgKiAgYGhlbGxvLng0MzBgIHRoYXQgYXJlIHJlY2VpdmVkIGZyb20gY29tcG9ydCBgQ09NM2AuCisgKiAgQHAoY29kZSkKKyAqICAgICAgeHMgbG9jYWwuY29uc29sZSAtYyBDT00zIGhlbGxvLng0MzAKKyAqICBAcAorICoKKyAqICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgZGlzcGxheXMgZXZlbnRzIGZyb20gdHdvIHByb2dyYW1zIChuYW1lZAorICogIGBtb25fQVAueDQzMGAgYW5kIGBtb25fRUQueDQzMGApIGluIHR3byBzZXBhcmF0ZSB3aW5kb3dzIHdoZXJlCisgKiAgZXZlbnQgZGF0YSBpcyBhZ2FpbiByZWNlaXZlZCBmcm9tIGNvbXBvcnQgYENPTTNgLgorICogIEBwKGNvZGUpCisgKiAgICAgIHhzIGxvY2FsLmNvbnNvbGUgLWMgQ09NMyBtb25fQVAueDQzMCBtb25fRUQueDQzMAorICogIEBwCisgKi8KK3BhY2thZ2UgbG9jYWwuY29uc29sZSB7CisgICAgbW9kdWxlIE1haW47Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi8uY2R0cHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi8uY2R0cHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWIyODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmLy5jZHRwcm9qZWN0CkBAIC0wLDAgKzEsMjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPD9lY2xpcHNlLWNkdCB2ZXJzaW9uPSIyLjAiPz4NCisNCis8Y2R0cHJvamVjdCBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlIj4NCis8ZXh0ZW5zaW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYmluYXJ5cGFyc2VyLkNvZmZQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5CaW5hcnlQYXJzZXIiLz4NCis8ZGF0YT4NCis8aXRlbSBpZD0ic2Nhbm5lckNvbmZpZ3VyYXRpb24iPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L2l0ZW0+DQorPGl0ZW0gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhdGhlbnRyeSI+DQorPHBhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0ib3V0IiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5ESVNDT1ZFUkVEX1NDQU5ORVJfSU5GTyIvPg0KKzwvaXRlbT4NCis8L2RhdGE+DQorPC9jZHRwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi8uY3Byb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvLmNwcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhYWJjYzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvLmNwcm9qZWN0CkBAIC0wLDAgKzEsMzMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/Pg0KKzw/ZmlsZVZlcnNpb24gNC4wLjA/Pg0KKw0KKzxjcHJvamVjdD4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiPg0KKzxjY29uZmlndXJhdGlvbiBpZD0iY29udmVydGVkLmNvbmZpZy4xNTAwMjEwMjE4Ij4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ic2Nhbm5lckNvbmZpZ3VyYXRpb24iPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhdGhlbnRyeSI+DQorPHBhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0ib3V0IiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5ESVNDT1ZFUkVEX1NDQU5ORVJfSU5GTyIvPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBidWlsZFN5c3RlbUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5kZWZhdWx0Q29uZmlnRGF0YVByb3ZpZGVyIiBpZD0iY29udmVydGVkLmNvbmZpZy4xNTAwMjEwMjE4IiBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiIG5hbWU9ImNvbnZlcnRlZENvbmZpZyI+DQorPGV4dGVybmFsU2V0dGluZ3MvPg0KKzxleHRlbnNpb25zPg0KKzxleHRlbnNpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5iaW5hcnlwYXJzZXIuQ29mZlBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkJpbmFyeVBhcnNlciIvPg0KKzwvZXh0ZW5zaW9ucz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jY29uZmlndXJhdGlvbj4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jcHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvLnByb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTUwYmY1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi8ucHJvamVjdApAQCAtMCwwICsxLDgyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPmxvY2FsLnJmPC9uYW1lPg0KKwk8Y29tbWVudD48L2NvbW1lbnQ+DQorCTxwcm9qZWN0cz4NCisJCTxwcm9qZWN0PnR4bi50YXJnZXRzPC9wcm9qZWN0Pg0KKwk8L3Byb2plY3RzPg0KKwk8YnVpbGRTcGVjPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2VCdWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQuYXJndW1lbnRzPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0LmNvcmUuZXJyb3JPdXRwdXRQYXJzZXI8L2tleT4NCisJCQkJCTx2YWx1ZT5jb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQ29mZkVycm9yUGFyc2VyO2NvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5Bc21FcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuTGlua0Vycm9yUGFyc2VyO29yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlcjs8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVBdXRvQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmluYzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlRnVsbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlZEluY3JlbWVudGFsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC5jb21tYW5kPC9rZXk+DQorCQkJCQk8dmFsdWU+JHtYRENST09UfS94ZGM8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5jbGVhbjwva2V5Pg0KKwkJCQkJPHZhbHVlPmNsZWFuPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVDbGVhbkJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUudXNlRGVmYXVsdEJ1aWxkQ21kPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5hdXRvPC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5zdG9wT25FcnJvcjwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuU2Nhbm5lckNvbmZpZ0J1aWxkZXI8L25hbWU+DQorCQkJPGFyZ3VtZW50cz4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwk8L2J1aWxkU3BlYz4NCisJPG5hdHVyZXM+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5jb3JlLmNuYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuU2Nhbm5lckNvbmZpZ05hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM0NmNhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKQEAgLTAsMCArMSw0IEBACisjVHVlIE1hciAxNyAxMDozMjowMyBQRFQgMjAwOQ0KK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQoraW5kZXhlci9pbmRleGVySWQ9b3JnLmVjbGlwc2UuY2R0LmNvcmUuZG9tc291cmNlaW5kZXhlcg0KK2luZGV4ZXJJZD1vcmcuZWNsaXBzZS5jZHQuY29yZS5kb21zb3VyY2VpbmRleGVyDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmLy54ZGNlbnYubWFrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmLy54ZGNlbnYubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjMWZhMzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAwCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSAKK292ZXJyaWRlIFhEQ1JPT1QgPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMworb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuLi8uLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzL3BhY2thZ2VzOy4uLy4uCitIT1NUT1MgPSBMaW51eAorZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9BdG9taWMuYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9BdG9taWMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjY2MDdmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL0F0b21pYy5jCkBAIC0wLDAgKzEsMTM5IEBACisvKgorICogID09PT09PT09IEF0b21pYy5jID09PT09PT09CisgKi8KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworI2luY2x1ZGUgImJzcC5oIgorI2luY2x1ZGUgIm1yZmkuaCIKKworI2luY2x1ZGUgInBhY2thZ2UvaW50ZXJuYWwvQXRvbWljLnhkYy5oIgorCisvKgorICogID09PT09PT09IEF0b21pY19zZXQgPT09PT09PT0KKyAqLworSW50IEF0b21pY19zZXQoSW50ICpwb2xkLCBJbnQgbnZhbCkKK3sKKyAgICBJbnQgc3RhdGU7CisgICAgSW50IG9sZDsKKyAgICAKKyAgICBCU1BfRU5URVJfQ1JJVElDQUxfU0VDVElPTihzdGF0ZSk7CisgICAgb2xkID0gKnBvbGQ7CisgICAgKnBvbGQgPSBudmFsOworICAgIEJTUF9FWElUX0NSSVRJQ0FMX1NFQ1RJT04oc3RhdGUpOworCisgICAgcmV0dXJuIChvbGQpOworfQorCisvKgorICogID09PT09PT09IEF0b21pY19pbmMgPT09PT09PT0KKyAqLworSW50IEF0b21pY19pbmMoSW50ICpwb2xkKQoreworICAgIEludCBzdGF0ZTsKKyAgICBJbnQgb2xkOworICAgIAorICAgIEJTUF9FTlRFUl9DUklUSUNBTF9TRUNUSU9OKHN0YXRlKTsKKyAgICBvbGQgPSAqcG9sZDsKKyAgICAqcG9sZCA9ICpwb2xkICsgMTsKKyAgICBCU1BfRVhJVF9DUklUSUNBTF9TRUNUSU9OKHN0YXRlKTsKKworICAgIHJldHVybiAob2xkKTsKK30KKworLyoKKyAqICA9PT09PT09PSBBdG9taWNfZGVjID09PT09PT09CisgKi8KK0ludCBBdG9taWNfZGVjKEludCAqcG9sZCkKK3sKKyAgICBJbnQgc3RhdGU7CisgICAgSW50IG9sZDsKKyAgICAKKyAgICBCU1BfRU5URVJfQ1JJVElDQUxfU0VDVElPTihzdGF0ZSk7CisgICAgb2xkID0gKnBvbGQ7CisgICAgKnBvbGQgPSAqcG9sZCAtIDE7CisgICAgQlNQX0VYSVRfQ1JJVElDQUxfU0VDVElPTihzdGF0ZSk7CisKKyAgICByZXR1cm4gKG9sZCk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gQXRvbWljX2NsZWFyID09PT09PT09CisgKi8KK0ludCBBdG9taWNfY2xlYXIoSW50ICpwb2xkKQoreworICAgIEludCBzdGF0ZTsKKyAgICBJbnQgb2xkOworICAgIAorICAgIEJTUF9FTlRFUl9DUklUSUNBTF9TRUNUSU9OKHN0YXRlKTsKKyAgICBvbGQgPSAqcG9sZDsKKyAgICAqcG9sZCA9IDA7CisgICAgQlNQX0VYSVRfQ1JJVElDQUxfU0VDVElPTihzdGF0ZSk7CisKKyAgICByZXR1cm4gKG9sZCk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gQXRvbWljX3NldDggPT09PT09PT0KKyAqLworSW50OCBBdG9taWNfc2V0OChJbnQ4ICpwb2xkLCBJbnQ4IG52YWwpCit7CisgICAgSW50IHN0YXRlOworICAgIEludDggb2xkOworICAgIAorICAgIEJTUF9FTlRFUl9DUklUSUNBTF9TRUNUSU9OKHN0YXRlKTsKKyAgICBvbGQgPSAqcG9sZDsKKyAgICAqcG9sZCA9IG52YWw7CisgICAgQlNQX0VYSVRfQ1JJVElDQUxfU0VDVElPTihzdGF0ZSk7CisKKyAgICByZXR1cm4gKG9sZCk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gQXRvbWljX2luYzggPT09PT09PT0KKyAqLworSW50OCBBdG9taWNfaW5jOChJbnQ4ICpwb2xkKQoreworICAgIEludCBzdGF0ZTsKKyAgICBJbnQ4IG9sZDsKKyAgICAKKyAgICBCU1BfRU5URVJfQ1JJVElDQUxfU0VDVElPTihzdGF0ZSk7CisgICAgb2xkID0gKnBvbGQ7CisgICAgKnBvbGQgPSAqcG9sZCArIDE7CisgICAgQlNQX0VYSVRfQ1JJVElDQUxfU0VDVElPTihzdGF0ZSk7CisKKyAgICByZXR1cm4gKG9sZCk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gQXRvbWljX2RlYzggPT09PT09PT0KKyAqLworSW50OCBBdG9taWNfZGVjOChJbnQ4ICpwb2xkKQoreworICAgIEludCBzdGF0ZTsKKyAgICBJbnQ4IG9sZDsKKyAgICAKKyAgICBCU1BfRU5URVJfQ1JJVElDQUxfU0VDVElPTihzdGF0ZSk7CisgICAgb2xkID0gKnBvbGQ7CisgICAgKnBvbGQgPSAqcG9sZCAtIDE7CisgICAgQlNQX0VYSVRfQ1JJVElDQUxfU0VDVElPTihzdGF0ZSk7CisKKyAgICByZXR1cm4gKG9sZCk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gQXRvbWljX2NsZWFyOCA9PT09PT09PQorICovCitJbnQ4IEF0b21pY19jbGVhcjgoSW50OCAqcG9sZCkKK3sKKyAgICBJbnQgc3RhdGU7CisgICAgSW50OCBvbGQ7CisgICAgCisgICAgQlNQX0VOVEVSX0NSSVRJQ0FMX1NFQ1RJT04oc3RhdGUpOworICAgIG9sZCA9ICpwb2xkOworICAgICpwb2xkID0gMDsKKyAgICBCU1BfRVhJVF9DUklUSUNBTF9TRUNUSU9OKHN0YXRlKTsKKworICAgIHJldHVybiAob2xkKTsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL0F0b21pYy54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvQXRvbWljLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42OTUyOGVmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL0F0b21pYy54ZGMKQEAgLTAsMCArMSw1NCBAQAorLyohCisgKiAgPT09PT09PT0gQXRvbWljID09PT09PT09CisgKiAgU2ltcGxlIGF0b21pYyBvcGVyYXRpb25zIG9uIGludGVncmFsIHZhbHVlcworICovCittb2R1bGUgQXRvbWljCit7CisgICAgLyohCisgICAgICogID09PT09PT09IHNldCA9PT09PT09PQorICAgICAqICBBdG9taWNhbGx5IHNldCBhbiBJbnQgYW5kIHJldHVybiBpdHMgcHJldmlvdXMgdmFsdWUKKyAgICAgKi8KKyAgICBJbnQgc2V0KEludCAqcG9sZCwgSW50IG52YWwpOworCisgICAgLyohCisgICAgICogID09PT09PT09IGluYyA9PT09PT09PQorICAgICAqICBBdG9taWNhbGx5IGluY3JlbWVudCBhbiBJbnQgYW5kIHJldHVybiBpdHMgcHJldmlvdXMgdmFsdWUKKyAgICAgKi8KKyAgICBJbnQgaW5jKEludCAqcG9sZCk7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gZGVjID09PT09PT09CisgICAgICogIEF0b21pY2FsbHkgZGVjcmVtZW50IGFuIEludCBhbmQgcmV0dXJuIGl0cyBwcmV2aW91cyB2YWx1ZQorICAgICAqLworICAgIEludCBkZWMoSW50ICpwb2xkKTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBjbGVhciA9PT09PT09PQorICAgICAqICBBdG9taWNhbGx5IGNsZWFyIGFuIEludCBhbmQgcmV0dXJuIGl0cyBwcmV2aW91cyB2YWx1ZQorICAgICAqLworICAgIEludCBjbGVhcihJbnQgKnBvbGQpOworCisgICAgLyohCisgICAgICogID09PT09PT09IHNldDggPT09PT09PT0KKyAgICAgKiAgQXRvbWljYWxseSBzZXQgYW4gSW50OCBhbmQgcmV0dXJuIGl0cyBwcmV2aW91cyB2YWx1ZQorICAgICAqLworICAgIEludDggc2V0OChJbnQ4ICpwb2xkLCBJbnQ4IG52YWwpOworCisgICAgLyohCisgICAgICogID09PT09PT09IGluYzggPT09PT09PT0KKyAgICAgKiAgQXRvbWljYWxseSBpbmNyZWFtZW50IGFuIEludDggYW5kIHJldHVybiBpdHMgcHJldmlvdXMgdmFsdWUKKyAgICAgKi8KKyAgICBJbnQ4IGluYzgoSW50OCAqcG9sZCk7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gZGVjOCA9PT09PT09PQorICAgICAqICBBdG9taWNhbGx5IGRlY3JlbWVudCBhbiBJbnQ4IGFuZCByZXR1cm4gaXRzIHByZXZpb3VzIHZhbHVlCisgICAgICovCisgICAgSW50OCBkZWM4KEludDggKnBvbGQpOworCisgICAgLyohCisgICAgICogID09PT09PT09IGNsZWFyOCA9PT09PT09PQorICAgICAqICBBdG9taWNhbGx5IGNsZWFyIGFuIEludDggYW5kIHJldHVybiBpdHMgcHJldmlvdXMgdmFsdWUKKyAgICAgKi8KKyAgICBJbnQ4IGNsZWFyOChJbnQ4ICpwb2xkKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9Cc3AuYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9Cc3AuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMTkxZDVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL0JzcC5jCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiAgPT09PT09PT0gQnNwLmMgPT09PT09PT0KKyAqLworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TdGFydHVwLmg+CisKKyNpbmNsdWRlICJic3AuaCIKKyNpbmNsdWRlICJtcmZpLmgiCisjaW5jbHVkZSAibndrX3R5cGVzLmgiCisjaW5jbHVkZSAibndrX2FwaS5oIgorI2luY2x1ZGUgImJzcF9sZWRzLmgiCisjaW5jbHVkZSAiYnNwX2J1dHRvbnMuaCIKKworI2luY2x1ZGUgInBhY2thZ2UvaW50ZXJuYWwvQnNwLnhkYy5oIgorCisvKgorICogID09PT09PT09IEJzcF9Nb2R1bGVfc3RhcnR1cCA9PT09PT09PQorICovCitJbnQgQnNwX01vZHVsZV9zdGFydHVwKEludCBzdGF0KQoreworICAgIEJTUF9Jbml0KCk7CisgICAgcmV0dXJuIChTdGFydHVwX0RPTkUpOworfQorCisvKgorICogID09PT09PT09IEJzcF9sZWQgPT09PT09PT0KKyAqLworQm9vbCBCc3BfbGVkKEludCBpZCkKK3sKKyAgICByZXR1cm4gKGlkID09IDEgPyBCU1BfTEVEMV9JU19PTigpIDogKGlkID09IDIgPyBCU1BfTEVEMl9JU19PTigpIDogRkFMU0UpKTsKK30KKworLyoKKyAqICA9PT09PT09PSBCc3BfdG9nZ2xlTGVkID09PT09PT09CisgKi8KK1ZvaWQgQnNwX3RvZ2dsZUxlZChJbnQgaWQpCit7CisgICAgaWYgKDEgPT0gaWQpIHsKKyAgICAgICAgQlNQX1RPR0dMRV9MRUQxKCk7CisgICAgfQorICAgIGVsc2UgaWYgKDIgPT0gaWQpIHsKKyAgICAgICAgQlNQX1RPR0dMRV9MRUQyKCk7CisgICAgfQorfQorCisvKgorICogID09PT09PT09IEJzcF90dXJuT25MZWQgPT09PT09PT0KKyAqLworVm9pZCBCc3BfdHVybk9uTGVkKEludCBpZCkKK3sKKyAgICBpZiAoMSA9PSBpZCkgeworICAgICAgICBCU1BfVFVSTl9PTl9MRUQxKCk7CisgICAgfQorICAgIGVsc2UgaWYgKDIgPT0gaWQpIHsKKyAgICAgICAgQlNQX1RVUk5fT05fTEVEMigpOworICAgIH0KK30KKworLyoKKyAqICA9PT09PT09PSBCc3BfdHVybk9mZkxlZCA9PT09PT09PQorICovCitWb2lkIEJzcF90dXJuT2ZmTGVkKEludCBpZCkKK3sKKyAgICBpZiAoMSA9PSBpZCkgeworICAgICAgICBCU1BfVFVSTl9PRkZfTEVEMSgpOworICAgIH0KKyAgICBlbHNlIGlmICgyID09IGlkKSB7CisgICAgICAgIEJTUF9UVVJOX09GRl9MRUQyKCk7CisgICAgfQorfQorCisvKgorICogID09PT09PT09IEJzcF9kZWxheSA9PT09PT09PQorICovCitWb2lkIEJzcF9kZWxheShJbnQgdGltZSkKK3sKKyAgICBOV0tfREVMQVkodGltZSk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gQnNwX2J1dHRvbiA9PT09PT09PQorICovCitCb29sIEJzcF9idXR0b24oSW50IGlkKQoreworICAgIHJldHVybiAoaWQgPT0gMSA/IEJTUF9CVVRUT04xKCkgOiAoaWQgPT0gMiA/IEJTUF9CVVRUT04yKCkgOiBGQUxTRSkpOworfQorCisvKgorICogID09PT09PT09IEJzcF9yZXNldCA9PT09PT09PQorICovCitWb2lkIEJzcF9yZXNldCh2b2lkKQoreworICAgIF9fZGlzYWJsZV9pbnRlcnJ1cHQoKTsKKyAgICBUQVIgPSAweDNGRkY7ICAgICAgICAgICAvLyBPcGNvZGUgZm9yICJqbXAgJCIKKyAgICAoKHZvaWQgKCopKCkpMHgxNzApKCk7ICAvLyBJbnZhbGlkIGZldGNoICgiY2FsbCAjMDE3MGgiKQorICAgIDsgICAgICAgICAgICAgICAgICAgICAgIC8vICoqIFNob3VsZCBuZXZlciBnZXQgaGVyZSAqKiAgICAgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvQnNwLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9Cc3AueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmNjMyNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvQnNwLnhkYwpAQCAtMCwwICsxLDQzIEBACisvKiEKKyAqICA9PT09PT09PSBCc3AgPT09PT09PT0KKyAqICBNaW5pbWFsIGJvYXJkIHN1cHBvcnQKKyAqLworQE1vZHVsZVN0YXJ0dXAKK21vZHVsZSBCc3AgeworCisgICAgLyohCisgICAgICogID09PT09PT09IGxlZCA9PT09PT09PQorICAgICAqLworICAgIEJvb2wgbGVkKEludCBpZCk7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gdG9nZ2xlTGVkID09PT09PT09CisgICAgICovCisgICAgVm9pZCB0b2dnbGVMZWQoSW50IGlkKTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSB0dXJuT2ZmTGVkID09PT09PT09CisgICAgICovCisgICAgVm9pZCB0dXJuT2ZmTGVkKEludCBpZCk7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gdHVybk9uTGVkID09PT09PT09CisgICAgICovCisgICAgVm9pZCB0dXJuT25MZWQoSW50IGlkKTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBkZWxheSA9PT09PT09PQorICAgICAqLworICAgIFZvaWQgZGVsYXkoSW50IHRpbWUpOworCisgICAgLyohCisgICAgICogID09PT09PT09IGJ1dHRvbklzUHVzaGVkID09PT09PT09CisgICAgICovCisgICAgQm9vbCBidXR0b24oSW50IGlkKTsKKworICAgIC8qCisgICAgICogID09PT09PT09IHJlc2V0ID09PT09PT09CisgICAgICogIFJlc2V0IHRoZSBkZXZpY2UKKyAgICAgKi8KKyAgICBWb2lkIHJlc2V0KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvQnVpbGRPcHRzLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9CdWlsZE9wdHMueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlMTRhYWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvQnVpbGRPcHRzLnhkYwpAQCAtMCwwICsxLDQwMyBAQAorLyohCisgKiAgPT09PT09PT0gQnVpbGRPcHRzID09PT09PT09CisgKiAgQ29tcGlsZSB0aW1lIG9wdGlvbnMgZm9yIHRoZSBTaW1wbGljaVRJIHN0YWNrCisgKgorICogIFRoZSBgQnVpbGRPcHRzYCBtb2R1bGUgaXMgdXNlZCB0byByZS1idWlsZCB0aGUgU2ltcGxpY2lUSSBzdGFjaworICogIHdpdGggb3B0aW9ucyB0aGF0IGNvbnRyb2wgdGhlIHNpemUgYW5kIG51bWJlciBvZiBuZXR3b3JrIGJ1ZmZlcnMsCisgKiAgZm9yIGV4YW1wbGUuICBCeSB1c2luZyB0aGlzIG1vZHVsZSwgaW4gbGlldSBvZiBzZXR0aW5nIGNvbXBpbGVyIG9wdGlvbnMKKyAqICBkaXJlY3RseSwgYWRkaXRpb25hbCBjaGVja3Mgb2YgdGhlIHNlbGVjdGVkIG9wdGlvbnMgd2lsbCBiZSBtYWRlLgorICovCittZXRhb25seSBtb2R1bGUgQnVpbGRPcHRzCit7CisgICAgLyohCisgICAgICogID09PT09PT09IFJhZGlvID09PT09PT09CisgICAgICogIFJhZGlvIGhhcmR3YXJlIHN1cHBvcnRlZAorICAgICAqLworICAgIGVudW0gUmFkaW8geworICAgICAgICBDQzExMDAsCisgICAgICAgIENDMTEwMSwgICAgICAgIAorICAgICAgICBDQzExMTAsCisgICAgICAgIENDMTExMSwKKyAgICAgICAgQ0MyNDIwLAorICAgICAgICBDQzI0MzAsCisgICAgICAgIENDMjQzMSwKKyAgICAgICAgQ0MyNTAwLAorICAgICAgICBDQzI1MTAsCisgICAgICAgIENDMjUxMSwKKyAgICAgICAgQ0MyNTIwCisgICAgfTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBNY3UgPT09PT09PT0KKyAgICAgKiAgU3VwcG9ydGVkIG1pY3JvLWNvbnRyb2xsZXJzCisgICAgICovCisgICAgZW51bSBNY3UgeworICAgICAgICBNU1A0MzBDMTExMSwKKyAgICAgICAgTVNQNDMwQzExMSwKKyAgICAgICAgTVNQNDMwQzExMjEsCisgICAgICAgIE1TUDQzMEMxMTIsCisgICAgICAgIE1TUDQzMEMxMzMxLAorICAgICAgICBNU1A0MzBDMTM1MSwKKyAgICAgICAgTVNQNDMwQzMxMiwKKyAgICAgICAgTVNQNDMwQzMxMywKKyAgICAgICAgTVNQNDMwQzMxNCwKKyAgICAgICAgTVNQNDMwQzMxNSwKKyAgICAgICAgTVNQNDMwQzMyMywKKyAgICAgICAgTVNQNDMwQzMyNSwKKyAgICAgICAgTVNQNDMwQzMzNiwKKyAgICAgICAgTVNQNDMwQzMzNywKKyAgICAgICAgTVNQNDMwQzQxMiwKKyAgICAgICAgTVNQNDMwQzQxMywKKyAgICAgICAgTVNQNDMwRTExMiwKKyAgICAgICAgTVNQNDMwRTMxMywKKyAgICAgICAgTVNQNDMwRTMxNSwKKyAgICAgICAgTVNQNDMwRTMyNSwKKyAgICAgICAgTVNQNDMwRTMzNywKKyAgICAgICAgTVNQNDMwRjExMDEsCisgICAgICAgIE1TUDQzMEYxMTAsCisgICAgICAgIE1TUDQzMEYxMTExLAorICAgICAgICBNU1A0MzBGMTEyMSwKKyAgICAgICAgTVNQNDMwRjExMjIsCisgICAgICAgIE1TUDQzMEYxMTIsCisgICAgICAgIE1TUDQzMEYxMTMyLAorICAgICAgICBNU1A0MzBGMTIyMiwKKyAgICAgICAgTVNQNDMwRjEyMiwKKyAgICAgICAgTVNQNDMwRjEyMzIsCisgICAgICAgIE1TUDQzMEYxMjMsCisgICAgICAgIE1TUDQzMEYxMzMsCisgICAgICAgIE1TUDQzMEYxMzUsCisgICAgICAgIE1TUDQzMEYxNDcxLAorICAgICAgICBNU1A0MzBGMTQ3LAorICAgICAgICBNU1A0MzBGMTQ4MSwKKyAgICAgICAgTVNQNDMwRjE0OCwKKyAgICAgICAgTVNQNDMwRjE0OTEsCisgICAgICAgIE1TUDQzMEYxNDksCisgICAgICAgIE1TUDQzMEYxNTUsCisgICAgICAgIE1TUDQzMEYxNTYsCisgICAgICAgIE1TUDQzMEYxNTcsCisgICAgICAgIE1TUDQzMEYxNjEwLAorICAgICAgICBNU1A0MzBGMTYxMSwKKyAgICAgICAgTVNQNDMwRjE2MTIsCisgICAgICAgIE1TUDQzMEYxNjcsCisgICAgICAgIE1TUDQzMEYxNjgsCisgICAgICAgIE1TUDQzMEYxNjksCisgICAgICAgIE1TUDQzMEYyMDAxLAorICAgICAgICBNU1A0MzBGMjAwMiwKKyAgICAgICAgTVNQNDMwRjIwMDMsCisgICAgICAgIE1TUDQzMEYyMDExLAorICAgICAgICBNU1A0MzBGMjAxMiwKKyAgICAgICAgTVNQNDMwRjIwMTMsCisgICAgICAgIE1TUDQzMEYyMDM1LAorICAgICAgICBNU1A0MzBGMjEwMSwKKyAgICAgICAgTVNQNDMwRjIxMTEsCisgICAgICAgIE1TUDQzMEYyMTEyLAorICAgICAgICBNU1A0MzBGMjEyMSwKKyAgICAgICAgTVNQNDMwRjIxMjIsCisgICAgICAgIE1TUDQzMEYyMTMxLAorICAgICAgICBNU1A0MzBGMjEzMiwKKyAgICAgICAgTVNQNDMwRjIyMzIsCisgICAgICAgIE1TUDQzMEYyMjM0LAorICAgICAgICBNU1A0MzBGMjI1MiwKKyAgICAgICAgTVNQNDMwRjIyNTQsCisgICAgICAgIE1TUDQzMEYyMjcyLAorICAgICAgICBNU1A0MzBGMjI3NCwKKyAgICAgICAgTVNQNDMwRjIzMzAsCisgICAgICAgIE1TUDQzMEYyMzMsCisgICAgICAgIE1TUDQzMEYyMzUwLAorICAgICAgICBNU1A0MzBGMjM1LAorICAgICAgICBNU1A0MzBGMjM3MCwKKyAgICAgICAgTVNQNDMwRjI0MTAsCisgICAgICAgIE1TUDQzMEYyNDE2LAorICAgICAgICBNU1A0MzBGMjQxNywKKyAgICAgICAgTVNQNDMwRjI0MTgsCisgICAgICAgIE1TUDQzMEYyNDE5LAorICAgICAgICBNU1A0MzBGMjQ3MSwKKyAgICAgICAgTVNQNDMwRjI0NywKKyAgICAgICAgTVNQNDMwRjI0ODEsCisgICAgICAgIE1TUDQzMEYyNDgsCisgICAgICAgIE1TUDQzMEYyNDkxLAorICAgICAgICBNU1A0MzBGMjQ5LAorICAgICAgICBNU1A0MzBGMjYxNiwKKyAgICAgICAgTVNQNDMwRjI2MTcsCisgICAgICAgIE1TUDQzMEYyNjE4LAorICAgICAgICBNU1A0MzBGMjYxOSwKKyAgICAgICAgTVNQNDMwRjQxMiwKKyAgICAgICAgTVNQNDMwRjQxMywKKyAgICAgICAgTVNQNDMwRjQxNSwKKyAgICAgICAgTVNQNDMwRjQxNywKKyAgICAgICAgTVNQNDMwRjQyMywKKyAgICAgICAgTVNQNDMwRjQyNTAsCisgICAgICAgIE1TUDQzMEY0MjUsCisgICAgICAgIE1TUDQzMEY0MjYwLAorICAgICAgICBNU1A0MzBGNDI3MCwKKyAgICAgICAgTVNQNDMwRjQyNywKKyAgICAgICAgTVNQNDMwRjQzNTEsCisgICAgICAgIE1TUDQzMEY0MzUsCisgICAgICAgIE1TUDQzMEY0MzYxLAorICAgICAgICBNU1A0MzBGNDM2LAorICAgICAgICBNU1A0MzBGNDM3MSwKKyAgICAgICAgTVNQNDMwRjQzNywKKyAgICAgICAgTVNQNDMwRjQ0NywKKyAgICAgICAgTVNQNDMwRjQ0OCwKKyAgICAgICAgTVNQNDMwRjQ0OSwKKyAgICAgICAgTVNQNDMwRjQ3ODMsCisgICAgICAgIE1TUDQzMEY0Nzg0LAorICAgICAgICBNU1A0MzBGNDc5MywKKyAgICAgICAgTVNQNDMwRjQ3OTQsCisgICAgICAgIE1TUDQzMEY1NDE4LAorICAgICAgICBNU1A0MzBGNTQxOSwKKyAgICAgICAgTVNQNDMwRjU0MzUsCisgICAgICAgIE1TUDQzMEY1NDM2LAorICAgICAgICBNU1A0MzBGNTQzNywKKyAgICAgICAgTVNQNDMwRjU0MzgsCisgICAgICAgIE1TUDQzMFAxMTIsCisgICAgICAgIE1TUDQzMFAzMTMsCisgICAgICAgIE1TUDQzMFAzMTUsCisgICAgICAgIE1TUDQzMFAzMjUsCisgICAgICAgIE1TUDQzMFAzMzcKKyAgICB9OworCisgICAgLyohCisgICAgICogID09PT09PT09IERldmljZVR5cGUgPT09PT09PT0KKyAgICAgKiAgVHlwZSBvZiB0aGUgZGV2aWNlCisgICAgICovCisgICAgZW51bSBEZXZpY2VUeXBlIHsKKyAgICAgICAgQUNDRVNTX1BPSU5ULCAgIC8vISBBY2Nlc3MgUG9pbnQgKC1EQUNDRVNTX1BPSU5UKQorICAgICAgICBFTkRfREVWSUNFLCAgICAgLy8hIEVuZCBEZXZpY2UgKC1ERU5EX0RFVklDRSkKKyAgICAgICAgUkFOR0VfRVhURU5ERVIgIC8vISBSYW5nZSBFeHRlbmRlciAoLURSQU5HRV9FWFRFTkRFUikKKyAgICB9OworCisgICAgLyohCisgICAgICogID09PT09PT09IFJ4TW9kZSA9PT09PT09PQorICAgICAqICBSZWNlaXZlIG1vZGUKKyAgICAgKgorICAgICAqICBGb3IgRW5kIERldmljZXMgd2UgbmVlZCB0byBzcGVjaWZ5IHRoZWllIFJ4IG1vZGUuIFRoaXMgZmllbGQgaXMgdXNlZAorICAgICAqICBieSB0aGUgQWNjZXNzIFBvaW50IChBUCkgaW4gbmV0d29ya3MgY29udGFpbmluZyBhbiBBUCB0byBrbm93IHdoZXRoZXIgCisgICAgICogIHRvIHJlc2VydmUgc3RvcmUtYW5kLWZvcndhcmQgc3VwcG9ydCBmb3IgdGhlIGpvaW5pbmcgRW5kIERldmljZS4KKyAgICAgKgorICAgICAqICBGb3Igc2xlZXBpbmcgZGV2aWNlcyB0aGF0IGRvIF9ub3RfIHBvbGwsIHVzZSBSWF9BTFdBWVMuCisgICAgICoKKyAgICAgKiAgRm9yIEVEcyB0aGF0IG9ubHkgc2VuZCB1c2UgUlhfQUxXQVlTIGFuZCBub3QgUlhfTkVWRVIuIFRoZSBSWF9ORVZFUgorICAgICAqICBzdXBwb3J0IGlzIGN1cnJlbnRseSBpbmNvbXBsZXRlLiBJdCBpcyBpbnRlbmVkZWQgdG8gc3VwcG9ydCBkZXZpY2VzCisgICAgICogIHRoYXQgY2FuIG5vdCBzZW5kIGFzIG9wcG9zZWQgdG8gZGV2aWNlcyB0aGF0IGNhbiBidXQgZG8gbm90IHNlbmQuCisgICAgICovCisgICAgZW51bSBSeE1vZGUgeworICAgICAgICBSWF9MSVNURU5TLCAgICAgLy8hIC1EUlhfTElTVEVOUworICAgICAgICBSWF9QT0xMUywgICAgICAgLy8hIC1EUlhfUE9MTFMKKyAgICAgICAgUlhfTkVWRVIsICAgICAgIC8vISAtRFJYX05FVkVSCisgICAgICAgIFJYX0FMV0FZUyAgICAgICAvLyEgLURSWF9BTFdBWVMKKyAgICB9CisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IHJhZGlvID09PT09PT09CisgICAgICogIFJhZGlvIGRldmljZSBuYW1lCisgICAgICovCisgICAgY29uZmlnIFJhZGlvIHJhZGlvID0gQ0MyNTAwOworCisgICAgLyohCisgICAgICogID09PT09PT09IG1jdSA9PT09PT09PQorICAgICAqICBNQ1UgZGV2aWNlIG5hbWUKKyAgICAgKi8KKyAgICBjb25maWcgTWN1IG1jdSA9IE1TUDQzMEYyMjc0OworICAgIAorICAgIC8qIQorICAgICAqICA9PT09PT09PSByb290RGlyID09PT09PT09CisgICAgICogIEluc3RhbGxhdGlvbiBkaXJlY3Rvcnkgb2YgdGhlIFNpbXBsaWNpVEkgc29mdHdhcmUKKyAgICAgKi8KKyAgICBjb25maWcgU3RyaW5nIHJvb3REaXI7CisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IFNSQ1MgPT09PT09PT0KKyAgICAgKiAgVGhpcyBwYWNrYWdlJ3Mgc291cmNlcworICAgICAqLworICAgIHJlYWRvbmx5IGNvbmZpZyBTdHJpbmcgU1JDU1tdID0gWworICAgICAgICAibG9jYWwvcmYvQXRvbWljLmMiLAorICAgICAgICAibG9jYWwvcmYvQnNwLmMiLAorICAgICAgICAibG9jYWwvcmYvUmFkaW8uYyIsCisgICAgICAgICJic3AvYnNwLmMiLAorICAgICAgICAibXJmaS9tcmZpLmMiLAorICAgICAgICAic2ltcGxpY2l0aS9ud2svbndrX2dsb2JhbHMuYyIsCisgICAgICAgICJzaW1wbGljaXRpL253ay9ud2suYyIsCisgICAgICAgICJzaW1wbGljaXRpL253ay9ud2tfYXBpLmMiLAorICAgICAgICAic2ltcGxpY2l0aS9ud2svbndrX2ZyYW1lLmMiLAorICAgICAgICAic2ltcGxpY2l0aS9ud2svbndrX1FNZ210LmMiLAorICAgICAgICAic2ltcGxpY2l0aS9ud2tfYXBwbGljYXRpb25zL253a19mcmVxLmMiLAorICAgICAgICAic2ltcGxpY2l0aS9ud2tfYXBwbGljYXRpb25zL253a19qb2luLmMiLAorICAgICAgICAic2ltcGxpY2l0aS9ud2tfYXBwbGljYXRpb25zL253a19tZ210LmMiLAorICAgICAgICAic2ltcGxpY2l0aS9ud2tfYXBwbGljYXRpb25zL253a19zZWN1cml0eS5jIiwKKyAgICAgICAgInNpbXBsaWNpdGkvbndrX2FwcGxpY2F0aW9ucy9ud2tfaW9jdGwuYyIsCisgICAgICAgICJzaW1wbGljaXRpL253a19hcHBsaWNhdGlvbnMvbndrX2xpbmsuYyIsCisgICAgICAgICJzaW1wbGljaXRpL253a19hcHBsaWNhdGlvbnMvbndrX3BpbmcuYyIKKyAgICBdOworCisgICAgLyohCisgICAgICogID09PT09PT09IGdldE1ha2VQcm9sb2d1ZSA9PT09PT09PQorICAgICAqICBHZXQgdGhlIG1ha2UgcmVxdWlyZWQgZmlsZSBwcm9sb2d1ZQorICAgICAqLworICAgIFN0cmluZyBnZXRNYWtlUHJvbG9ndWUoKTsKKyAgICAKK2luc3RhbmNlOgorICAgIC8qIQorICAgICAqICA9PT09PT09PSBnZXREZWZzID09PT09PT09CisgICAgICogIEdldCB0aGUgY29tcGlsZXIgLUQgb3B0aW9ucyBuZWNlc3NhcnkgdG8gYnVpbGQKKyAgICAgKgorICAgICAqICBUaGUgU2ltcGxpY2lUSSBzdGFjayBpcyBhIHNvdXJjZSBjb2RlIHByb2R1Y3QgdGhhdCBtdXN0IGJlIGNvbXBpbGVkCisgICAgICogIHdpdGggYSBzZXQgb2YgLUQgb3B0aW9ucyBzcGVjaWZpYyB0byB0aGUgYXBwbGljYXRpb24uICBUaGlzIGZ1bmN0aW9uCisgICAgICogIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIHNldCBvZiAtRCBvcHRpb25zIGJhc2VkIG9uIHRoZSBgQnVpbGRPYmpgCisgICAgICogIGluc3RhbmNlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4KKyAgICAgKi8KKyAgICBTdHJpbmcgZ2V0RGVmcygpOworICAgIAorICAgIC8qIQorICAgICAqICA9PT09PT09PSBnZXRJbmNzID09PT09PT09CisgICAgICogIEdldCB0aGUgY29tcGlsZXIgLUkgb3B0aW9ucyBuZWNlc3NhcnkgdG8gYnVpbGQKKyAgICAgKgorICAgICAqICBUaGUgU2ltcGxpY2lUSSBzdGFjayBpcyBhIHNvdXJjZSBjb2RlIHByb2R1Y3QgdGhhdCBtdXN0IGJlIGNvbXBpbGVkCisgICAgICogIHdpdGggYSBzZXQgb2YgLUkgb3B0aW9ucyB0aGF0IGlkZW50aWZ5IHZhcmlvdXMgc3ViLWRpcmVjdG9yaWVzIHdpdGhpbgorICAgICAqICB0aGUgIC4KKyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIHNldCBvZiAtSSBvcHRpb25zIGJhc2VkIG9uIHRoZQorICAgICAqICBgQnVpbGRPYmoucm9vdERpcmAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIuCisgICAgICovCisgICAgU3RyaW5nIGdldEluY3MoKTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBtYXhIb3BDb3VudCA9PT09PT09PQorICAgICAqICBNYXhpbXVtIG51bWJlciBvZiB0b3RhbCBob3BzIGFsbG93ZWQKKyAgICAgKgorICAgICAqICBNYXhpbXVtIG51bWJlciBvZiB0aW1lcyBhIGZyYW1lIGlzIHJlc2VudCBiZWZvcmUKKyAgICAgKiAgZnJhbWUgZHJvcHBlZC4gRWFjaCBSRSBhbmQgdGhlIEFQIGRlY3JlbWVudCB0aGUgaG9wCisgICAgICogIGNvdW50IGFuZCByZXNlbmQgdGhlIGZyYW1lLgorICAgICAqLworICAgIGNvbmZpZyBJbnQgbWF4SG9wQ291bnQgPSAzOyAgICAgLy8gLURNQVhfSE9QUz0zCisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gbWF4SG9wRnJvbUFQID09PT09PT09CisgICAgICogIE1heCBob3BzIGF3YXkgZnJvbSBhbiBBY2Nlc3MgUG9pbnQKKyAgICAgKgorICAgICAqICBNYXhpbXVtIGRpc3RhbmNlIGZyb20gYW4gQVAuIFVzZWQgYnkgcG9sbCBhbmQgcG9sbCByZXNwb25zZSB0bworICAgICAqICBsaW1pdCBuZXR3b3JrIHJlcGxheSB0cmFmZmljLgorICAgICAqCisgICAgICogIEtlZXBzIGhvcCBjb3VudCBhbmQgdGhlcmVmb3JlIHJlcGxheSBzdG9ybXMgZG93biBmb3Igc2VuZGluZyB0bworICAgICAqICBhbmQgZnJvbSBwb2xsaW5nIEVuZCBEZXZpY2VzLiBBbHNvIHVzZWQgd2hlbiBqb2luaW5nIHNpbmNlIHRoZSBFbmQKKyAgICAgKiAgRGV2aWNlcyBjYW4ndCBiZSBtb3JlIHRoYW4gMSBob3AgYXdheS4KKyAgICAgKi8KKyAgICBjb25maWcgSW50IG1heEhvcEZyb21BUCA9IDE7ICAgIC8vLURNQVhfSE9QU19GUk9NX0FQPTEKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBtYXhBcHBQYXlsb2FkID09PT09PT09CisgICAgICogIE1heGltdW0gc2l6ZSAoaW4gYnl0ZXMpIG9mIGFwcGxpY2F0aW9uIHBheWxvYWQKKyAgICAgKgorICAgICAqICBBYnNvbHV0ZSBtYXhpbXVtIGlzIGJhc2VkIG9uIHNpemUgb2YgUnggYW5kIFR4IEZJRk9zCisgICAgICogICg1MCBmb3IgQ0MyNTAwL0NDMTEwMCBjbGFzcyBpbmNsdWRpbmcgU29DcyBhbmQKKyAgICAgKiAgMTEzIGZvciBDQzI0MzApLgorICAgICAqLworICAgIGNvbmZpZyBJbnQgbWF4QXBwUGF5bG9hZCA9IDEwOyAgLy8tRE1BWF9BUFBfUEFZTE9BRD0xMAorCisgICAgLyohCisgICAgICogID09PT09PT09IGxpbmtUb2tlbiA9PT09PT09PQorICAgICAqICBVbmlxdWUgdG9rZW4gaWRlbnRpZnlpbmcgYSBsaW5rIHJlcXVlc3QKKyAgICAgKgorICAgICAqICBPYnRhaW5pbmcgbGluayBhY2Nlc3MgdG8gYSBuZXR3b3JrIGRldmljZSByZXF1aXJlcyB0aGlzCisgICAgICogIHZhbHVlIHRvIG1hdGNoIG9uIGFsbCBkZXZpY2VzLiBJdCBpcyBzZW50IGluIHRoZSBMaW5rCisgICAgICogIG1lc3NhZ2UgYW5kIG1hdGNoZWQgaW4gdGhlIHJlY2VpdmluZyBkZXZpY2UuCisgICAgICovCisgICAgY29uZmlnIEJpdHMzMiBsaW5rVG9rZW4gPSAweDAxMDIwMzA0OyAgIC8vLURERUZBVUxUX0xJTktfVE9LRU49MHgwMTAyMDMwNAorCisgICAgLyohCisgICAgICogID09PT09PT09IGpvaW5Ub2tlbiA9PT09PT09PQorICAgICAqICBVbmlxdWUgdG9rZW4gaWRlbnRpZnlpbmcgYSBqb2luIHJlcXVlc3QKKyAgICAgKgorICAgICAqICBKb2luaW5nIGEgbmV0d29yayByZXF1aXJlcyB0aGlzIHZhbHVlIHRvIG1hdGNoIG9uIGFsbAorICAgICAqICBkZXZpY2VzLiBJdCBpcyBzZW50IGluIHRoZSBKb2luIG1lc3NhZ2UgYW5kIG1hdGNoZWQgaW4KKyAgICAgKiAgdGhlIHJlY2VpdmluZyBBY2Nlc3MgUG9pbnQuQ2hhbmdlIHRoaXMgdG8gcHJvdmlkZSBzb21lCisgICAgICogIGFjY2VzcyBzZWN1cml0eS4KKyAgICAgKi8KKyAgICBjb25maWcgQml0czMyIGpvaW5Ub2tlbiA9IDB4MDUwNjA3MDg7ICAgLy8tRERFRkFVTFRfSk9JTl9UT0tFTj0weDA1MDYwNzA4CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gZnJlcXVlbmN5QWdpbGl0eSA9PT09PT09PQorICAgICAqICBFbmFibGUgKG9yIGRpc2FibGUpIGZyZXF1ZW5jeSBhZ2lsaXR5CisgICAgICoKKyAgICAgKiAgV2hlbiBkZWZpbmVkIGVuYWJsZWQgc3VwcG9ydCBmb3IgRnJlcXVlbmN5IEFnaWxpdHkuCisgICAgICogIE90aGVyd2lzZSBvbmx5IHRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgY2hhbm5lbCB0YWJsZSBpcyB1c2VkLgorICAgICAqLworICAgIGNvbmZpZyBCb29sIGZyZXF1ZW5jeUFnaWxpdHkgPSBmYWxzZTsgICAvLyAtREZSRVFVRU5DWV9BR0lMSVRZCisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gbnVtQ29ubmVjdGlvbnMgPT09PT09PT0KKyAgICAgKiAgTnVtYmVyIG9mIGNvbm5lY3Rpb25zIHN1cHBvcnRlZAorICAgICAqCisgICAgICogIEVhY2ggY29ubmVjdGlvbiBzdXBwb3J0cyBiaS1kaXJlY3Rpb25hbCBjb21tdW5pY2F0aW9uLiAgQWNjZXNzIFBvaW50cworICAgICAqICBhbmQgUmFuZ2UgRXh0ZW5kZXJzIGNhbiBzZXQgdGhpcyB0byAwIGlmIHRoZXkgZG8gbm90IGhvc3QgRW5kIERldmljZXMuCisgICAgICovCisgICAgY29uZmlnIEludCBudW1Db25uZWN0aW9ucyA9IDI7ICAvLyAgLUROVU1fQ09OTkVDVElPTlM9MgorCisgICAgLyohCisgICAgICogID09PT09PT09IGluRnJhbWVRU2l6ZSA9PT09PT09PQorICAgICAqICBTaXplIG9mIGxvdyBsZXZlbCBxdWV1ZXMgZm9yIHNlbnQgYW5kIHJlY2VpdmVkIGZyYW1lcworICAgICAqCisgICAgICogIFRoaXMgYWZmZWN0cyBSQU0gdXNhZ2UuICBBY2Nlc3MgcG9pbnRzIG5lZWQgbGFyZ2VyIGlucHV0IGZyYW1lIHF1ZXVlCisgICAgICogIGlmIHRoZXkgYXJlIHN1cHBvcnRpbmcgc3RvcmUtYW5kLWZvcndhcmQgY2xpZW50cyBiZWNhdXNlIHRoZQorICAgICAqICBmb3J3YXJkZWQgbWVzc2FnZXMgYXJlIGhlbGQgaGVyZS4gVHdvIGlzIHByb2JhYmx5IGVub3VnaCBmb3IgYW4KKyAgICAgKiAgRW5kIERldmljZS4KKyAgICAgKi8KKyAgICBjb25maWcgSW50IGluRnJhbWVRU2l6ZSA9IDI7ICAgIC8vIC1EU0laRV9JTkZSQU1FX1E9MgorCisgICAgLyohCisgICAgICogID09PT09PT09IG91dEZyYW1lUVNpemUgPT09PT09PT0KKyAgICAgKiAgU2l6ZSBvZiB0aGUgb3V0cHV0IGZyYW1lIHF1ZXVlCisgICAgICoKKyAgICAgKiAgVGhlIG91dHB1dCBmcmFtZSBxdWV1ZSBjYW4gYmUgc21hbGwgc2luY2UgVHggaXMgZG9uZSBzeW5jaHJvbm91c2x5LiBJZgorICAgICAqICBhbiBBY2Nlc3MgUG9pbnQgZGV2aWNlIGlzIGFsc28gaG9zdGluZyBhbiBFbmQgRGV2aWNlIHRoYXQgc2VuZHMgdG8gYQorICAgICAqICBzbGVlcGluZyBwZWVyIHRoZSBvdXRwdXQgcXVldWUgc2hvdWxkIGJlIGxhcmdlciAtLSB0aGUgd2FpdGluZyBmcmFtZXMKKyAgICAgKiAgaW4gdGhpcyBjYXNlIGFyZSBoZWxkIGhlcmUuIEluIHRoYXQgY2FzZSB0aGUgb3V0cHV0IGZyYW1lIHF1ZXVlIHNob3VsZAorICAgICAqICBiZSBiaWdnZXIuIE9uZSBpcyBwcm9iYWJseSBlbm91Z2guCisgICAgICovCisgICAgY29uZmlnIEludCBvdXRGcmFtZVFTaXplID0gMjsgICAvLyAtRFNJWkVfT1VURlJBTUVfUT0yCisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IGRldmljZUFkZHJlc3MgPT09PT09PT0KKyAgICAgKiAgVGhpcyBkZXZpY2UncyBhZGRyZXNzCisgICAgICoKKyAgICAgKiAgVGhlIGZpcnN0IGJ5dGUgaXMgdXNlZCBhcyBhIGZpbHRlciBvbiB0aGUgQ0MxMTAwL0NDMjUwMAorICAgICAqICByYWRpb3Mgc28gVEhFIEZJUlNUIEJZVEUgTVVTVCBOT1QgQkUgZWl0aGVyIDB4MDAgb3IgMHhGRi4gQWxzbywgZm9yCisgICAgICogIHRoZXNlIHJhZGlvcyBvbiBFbmQgRGV2aWNlcyB0aGUgZmlyc3QgYnl0ZSBzaG91bGQgYmUgdGhlIGxlYXN0CisgICAgICogIHNpZ25pZmljYW50IGJ5dGUgc28gdGhlIGZpbHRlcmluZyBpcyBtYXhpbWFsbHkgZWZmZWN0aXZlLiBPdGhlcndpc2UKKyAgICAgKiAgdGhlIGZyYW1lIGhhcyB0byBiZSBwcm9jZXNzZWQgYnkgdGhlIE1DVSBiZWZvcmUgaXQgaXMgcmVjb2duaXplZCBhcworICAgICAqICBub3QgaW50ZW5kZWQgZm9yIHRoZSBkZXZpY2UuIEFQcyBhbmQgUkVzIHJ1biBpbiBwcm9taXNjdW91cyBtb2RlIHNvCisgICAgICogIHRoZSBmaWx0ZXJpbmcgaXMgbm90IGRvbmUuIFRoaXMgc2V0dGluZyBpbnRpYWxpemVzIGEgc3RhdGljIGNvbnN0IGFycmF5CisgICAgICogIG9mIHVuc2lnbmVkIGNoYXJhY3RlcnMgb2YgbGVuZ3RoIE5FVF9BRERSX1NJWkUgKGZvdW5kIGluIG53a190eXBlcy5oKS4KKyAgICAgKi8KKyAgICBjb25maWcgU3RyaW5nIGRldmljZUFkZHJlc3MgPSAiezB4NzcsIDB4NTYsIDB4MzQsIDB4MTJ9IjsgICAvLy1EVEhJU19ERVZJQ0VfQUREUkVTUz0iezB4NzcsIDB4NTYsIDB4MzQsIDB4MTJ9IgorCisgICAgLyohCisgICAgICogID09PT09PT09IGRldmljZVR5cGUgPT09PT09PT0KKyAgICAgKiAgU3BlY2lmeSBBY2Nlc3MgUG9pbnQgb3IgRW5kIERldmljZQorICAgICAqLworICAgIGNvbmZpZyBEZXZpY2VUeXBlIGRldmljZVR5cGU7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gcnhNb2RlID09PT09PT09CisgICAgICogIFJlY2VpdmUgbW9kZQorICAgICAqLworICAgIGNvbmZpZyBSeE1vZGUgcnhNb2RlOworCisgICAgLyohCisgICAgICogID09PT09PT09IGlzRGF0YUh1YiA9PT09PT09PQorICAgICAqICBJcyB0aGlzIGRldmljZSBhIGRhdGEgaHViCisgICAgICoKKyAgICAgKiAgSW4gdGhlIHNwY2lhbCBjYXNlIGluIHdoaWNoIHRoZSBBY2Nlc3MgUG9pbnQgaXMgYSBkYXRhIGh1YiwgdGhlIEFQIAorICAgICAqICB3aWxsIGF1dG9tYXRpY2FsbHkgbGlzdGVuIGZvciBhIGxpbmsgZWFjaCB0aW1lIGEgbmV3IGRldmljZSBqb2lucworICAgICAqICB0aGUgbmV0d29yay4gdGhpcyBpcyBhIHNwZWNpYWwgY2FzZSBzY2VuYXJpbyBpbiB3aGljaCBhbGwgRW5kIERldmljZQorICAgICAqICBwZWVycyBhcmUgdGhlIEFQIGFuZCBldmVyeSBFRCBsaW5rcyB0byB0aGUgQVAuIGluIHRoaXMgc2NlbmFyaW8gdGhlCisgICAgICogIEVEIG11c3QgYXV0b21hdGljYWxseSB0cnkgYW5kIGxpbmsgYWZ0ZXIgdGhlIGpvaW4gcmVwbHkuCisgICAgICovCisgICAgY29uZmlnIEJvb2wgaXNEYXRhSHViID0gZmFsc2U7ICAvLyAtREFQX0lTX0RBVEFfSFVCCisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gbnVtU3RvcmVBbmRGd2RDbGllbnRzID09PT09PT09CisgICAgICogIFN0b3JlIGFuZCBmb3J3YXJkIHN1cHBvcnQ6IG51bWJlciBvZiBjbGllbnRzCisgICAgICovCisgICAgY29uZmlnIEludCBudW1TdG9yZUFuZEZ3ZENsaWVudHMgPSAzOyAvLyAtRE5VTV9TVE9SRV9BTkRfRldEX0NMSUVOVFM9MworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL0J1aWxkT3B0cy54cyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9CdWlsZE9wdHMueHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMxMTQwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9CdWlsZE9wdHMueHMKQEAgLTAsMCArMSwxMjYgQEAKKy8qCisgKiAgPT09PT09PT0gZ2V0RGVmcyA9PT09PT09PQorICovCitmdW5jdGlvbiBnZXREZWZzKCkKK3sKKyAgICBjaGVjayh0aGlzKTsKKworICAgIHZhciBtY3VEZWYgPSAiLURfXyIgKyBTdHJpbmcodGhpcy4kbW9kdWxlLm1jdSkucmVwbGFjZSgvXi4qXC4vLCAiIikgKyAiX18iOworICAgIHZhciByYWRpb0RlZiA9ICIgLURNUkZJXyIgKyBTdHJpbmcodGhpcy4kbW9kdWxlLnJhZGlvKS5yZXBsYWNlKC9eLipcLi8sIiIpOworCisgICAgdmFyIGRldmljZVR5cGUgPSAiIC1EIiArIFN0cmluZyh0aGlzLmRldmljZVR5cGUpLnJlcGxhY2UoL14uKlwuLywgIiIpOworCisgICAgdmFyIHJ4TW9kZSA9ICIiOworICAgIGlmICh0aGlzLnJ4TW9kZSAhPSBudWxsKSB7CisgICAgICAgIHJ4TW9kZSA9ICIgLUQiICsgU3RyaW5nKHRoaXMucnhNb2RlKS5yZXBsYWNlKC9eLipcLi8sICIiKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIC8vIFRPRE86IGlzIHJ4TW9kZSBvbmx5IG5lY2Vzc2FyeSBmb3IgZW5kLWRldmljZXM/CisvLyAgICAgIHByaW50KCJ3YXJuaW5nOiByeE1vZGUgbm90IGRlZmluZWQiKTsKKyAgICB9CisKKyAgICB2YXIgZGVmcyA9IG1jdURlZiArIHJhZGlvRGVmCisgICAgICAgICAgICAgICAgICAgKyAiIC1ETUFYX0hPUFM9IiArIHRoaXMubWF4SG9wQ291bnQKKyAgICAgICAgICAgICAgICAgICArICIgLURNQVhfSE9QU19GUk9NX0FQPSIgKyB0aGlzLm1heEhvcEZyb21BUAorICAgICAgICAgICAgICAgICAgICsgIiAtRE1BWF9BUFBfUEFZTE9BRD0iICsgdGhpcy5tYXhBcHBQYXlsb2FkCisgICAgICAgICAgICAgICAgICAgKyAiIC1EREVGQVVMVF9MSU5LX1RPS0VOPSIgKyB0aGlzLmxpbmtUb2tlbgorICAgICAgICAgICAgICAgICAgICsgIiAtRERFRkFVTFRfSk9JTl9UT0tFTj0iICsgdGhpcy5qb2luVG9rZW4KKyAgICAgICAgICAgICAgICAgICArICIgLUROVU1fQ09OTkVDVElPTlM9IiArIHRoaXMubnVtQ29ubmVjdGlvbnMKKyAgICAgICAgICAgICAgICAgICArICIgLURTSVpFX0lORlJBTUVfUT0iICsgdGhpcy5pbkZyYW1lUVNpemUKKyAgICAgICAgICAgICAgICAgICArICIgLURTSVpFX09VVEZSQU1FX1E9IiArIHRoaXMub3V0RnJhbWVRU2l6ZQorICAgICAgICAgICAgICAgICAgICsgJyAtRFRISVNfREVWSUNFX0FERFJFU1M9IicgKyB0aGlzLmRldmljZUFkZHJlc3MgKyAnIicKKyAgICAgICAgICAgICAgICAgICArIGRldmljZVR5cGUKKyAgICAgICAgICAgICAgICAgICArIHJ4TW9kZTsKKworICAgIGlmICh0aGlzLmlzRGF0YUh1YikgeworICAgICAgICBkZWZzICs9ICIgLURBUF9JU19EQVRBX0hVQiIKKyAgICAgICAgICAgICsgIiAtRE5VTV9TVE9SRV9BTkRfRldEX0NMSUVOVFM9IiArIHRoaXMubnVtU3RvcmVBbmRGd2RDbGllbnRzOworICAgIH0KKworICAgIGlmICh0aGlzLmZyZXF1ZW5jeUFnaWxpdHkpIHsKKyAgICAgICAgZGVmcyArPSAiIC1ERlJFUVVFTkNZX0FHSUxJVFkiOworICAgIH0KKworICAgIHJldHVybiAoZGVmcyk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gZ2V0SW5jcyA9PT09PT09PQorICovCitmdW5jdGlvbiBnZXRJbmNzKCkKK3sKKyAgICBjaGVjayh0aGlzKTsKKworICAgIC8qIGxvY2F0aW9uIG9mIGhlYWRlciBmaWxlIGRpcmVjdG9yaWVzIG5lY2Vzc2FyeSB0byB1c2UgU2ltcGxpY2l0eSAqLworICAgIHZhciBESVJTID0gWworICAgICAgICAiYnNwIiwKKyAgICAgICAgImJzcC9tY3VzIiwKKyAgICAgICAgImJzcC9kcml2ZXJzIiwKKyAgICAgICAgImJzcC9ib2FyZHMvRVo0MzBSRiIsCisgICAgICAgICJtcmZpIiwKKyAgICAgICAgInNpbXBsaWNpdGkvbndrIiwKKyAgICAgICAgInNpbXBsaWNpdGkvbndrX2FwcGxpY2F0aW9ucyIKKyAgICBdOworCisgICAgLyogY3JlYXRlIHRoZSAtSSBvcHRpb25zIHRvIHRlbGwgdGhlIGNvbXBpbGVyIHdoZXJlIHRvIGZpbmQgaW5jbHVkZXMgKi8KKyAgICB2YXIgcHJlZml4ID0gIiAtSSAiICsgdGhpcy4kbW9kdWxlLnJvb3REaXIgKyAiLyI7CisgICAgdmFyIGluY3MgPSBwcmVmaXggKyBESVJTLmpvaW4ocHJlZml4KTsKKyAgICByZXR1cm4gKGluY3MpOworfQorCisvKgorICogID09PT09PT09IGNoZWNrID09PT09PT09CisgKi8KK2Z1bmN0aW9uIGNoZWNrKGluc3QpCit7CisgICAgY2hlY2tNb2QoaW5zdC4kbW9kdWxlKTsKKworICAgIHZhciBtc2cgPSBudWxsOworICAgIGlmIChpbnN0LmRldmljZVR5cGUgPT0gbnVsbCkgeworICAgICAgICBtc2cgPSAieW91IG11c3Qgc3BlY2lmeSAiICsgaW5zdC4kbmFtZSArICIuZGV2aWNlVHlwZSI7CisgICAgfQorCisgICAgaWYgKGluc3QuJG1vZHVsZS5yb290RGlyID09IG51bGwpIHsKKyAgICAgICAgbXNnID0gInlvdSBtdXN0IHNwZWNpZnkgIiArIGluc3QuJG1vZHVsZS4kbmFtZSArICIucm9vdERpciI7CisgICAgfQorCisgICAgaWYgKGluc3QubWF4QXBwUGF5bG9hZCA+IDUwIHx8IGluc3QubWF4QXBwUGF5bG9hZCA8IDApIHsKKyAgICAgICAgbXNnID0gaW5zdC4kbmFtZQorICAgICAgICAgICAgKyAiLm1heEFwcFBheWxvYWQgbXVzdCBiZSBsZXNzIHRoYW4gNTAgYW5kIG5vbi1uZWdhdGl2ZSI7CisgICAgfQorICAgIGlmIChtc2cgIT0gbnVsbCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTsKKyAgICB9Cit9CisKKy8qCisgKiAgPT09PT09PT0gY2hlY2tNb2QgPT09PT09PT0KKyAqLworZnVuY3Rpb24gY2hlY2tNb2QobW9kKQoreworICAgIHZhciBtc2cgPSBudWxsOworCisgICAgaWYgKG1vZC5yb290RGlyID09IG51bGwpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1vZAorICAgICAgICAgICAgKyAiLnJvb3REaXIgbXVzdCBiZSBzZXQgYmVmb3JlIGNhbGxpbmcgYW55IG1ldGhvZHMgb2YgIiArIG1vZCk7CisgICAgfQorCisgICAgLyogVE9ETzogY2hlY2sgZXhpc3RhbmNlIG9mIHJvb3REaXIgYW5kIHJlcXVpcmVkIGluY2x1ZGUgc3ViLWRpcmVjdG9yaWVzICovCisKKyAgICBpZiAobXNnICE9IG51bGwpIHsKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7CisgICAgfQorfQorCisvKgorICogID09PT09PT09IGdldE1ha2VQcm9sb2d1ZSA9PT09PT09PQorICovCitmdW5jdGlvbiBnZXRNYWtlUHJvbG9ndWUoKQoreworICAgIGNoZWNrTW9kKHRoaXMpOworCisgICAgcmV0dXJuICgiIyB2cGF0aCBmb3IgU2ltcGxpY2lUSSBzb3VyY2VzXG4iCisJICAgICsgInZwYXRoICUuYyAiICsgdGhpcy5yb290RGlyICsgIlxuXG4iCisJICAgICsgIiMgdnBhdGggZm9yIGxvY2FsLnJmIHNvdXJjZXNcbiIKKyAgICAgICAgICAgICsgInZwYXRoICUuYyAiICsgdGhpcy4kcGFja2FnZS5wYWNrYWdlUmVwb3NpdG9yeSArICJcblxuIik7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvUmFkaW8uYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9SYWRpby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNDBiOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvUmFkaW8uYwpAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqICA9PT09PT09PSBSYWRpby5jID09PT09PT09CisgKi8KKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvRGlhZ3MuaD4KKworI2luY2x1ZGUgImJzcC5oIgorI2luY2x1ZGUgIm1yZmkuaCIKKyNpbmNsdWRlICJud2tfdHlwZXMuaCIKKyNpbmNsdWRlICJud2tfYXBpLmgiCisjaW5jbHVkZSAiYnNwX2xlZHMuaCIKKyNpbmNsdWRlICJic3BfYnV0dG9ucy5oIgorCisjaW5jbHVkZSAicGFja2FnZS9pbnRlcm5hbC9SYWRpby54ZGMuaCIKKworLyoKKyAqICA9PT09PT09PSBSYWRpb19zZXRSeE9uID09PT09PT09CisgKi8KK1JhZGlvX1N0YXR1cyBSYWRpb19zZXRSeE9uKHZvaWQpCit7CisgICAgcmV0dXJuICgoUmFkaW9fU3RhdHVzKVNNUExfSW9jdGwoSU9DVExfT0JKX1JBRElPLCBJT0NUTF9BQ1RfUkFESU9fUlhPTiwwKSk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gUmFkaW9fc2V0Q2hhbm5lbCA9PT09PT09PQorICovCitCb29sIFJhZGlvX3NldENoYW5uZWwoSW50IGNoYW4pCit7CisgICAgZnJlcUVudHJ5X3QgZnJlcTsKKyAgICBCb29sIHN0YXR1cyA9IFRSVUU7CisgICAgaWYgKGNoYW4gPCAwIHx8IGNoYW4gPj0gTldLX0ZSRVFfVEJMX1NJWkUpIHsKKyAgICAgICAgY2hhbiA9IDA7CisgICAgICAgIHN0YXR1cyA9IEZBTFNFOworICAgIH0KKworICAgIGZyZXEubG9naWNhbENoYW4gPSBjaGFuOworICAgIGlmIChTTVBMX0lvY3RsKElPQ1RMX09CSl9GUkVRLCBJT0NUTF9BQ1RfU0VULCAmZnJlcSkgIT0gU01QTF9TVUNDRVNTKSB7CisgICAgICAgIHN0YXR1cyA9IEZBTFNFOworICAgIH0KKworICAgIHJldHVybiAoc3RhdHVzKTsKK30KKworLyoKKyAqICA9PT09PT09PSBSYWRpb19zbGVlcCA9PT09PT09PQorICovCitSYWRpb19TdGF0dXMgUmFkaW9fc2xlZXAodm9pZCkKK3sKKyAgICByZXR1cm4gKChSYWRpb19TdGF0dXMpU01QTF9Jb2N0bChJT0NUTF9PQkpfUkFESU8sIElPQ1RMX0FDVF9SQURJT19TTEVFUCwgIiIpKTsKK30KKworLyoKKyAqICA9PT09PT09PSBSYWRpb19hd2FrZSA9PT09PT09PQorICovCitSYWRpb19TdGF0dXMgUmFkaW9fYXdha2Uodm9pZCkKK3sKKyAgICByZXR1cm4gKChSYWRpb19TdGF0dXMpU01QTF9Jb2N0bChJT0NUTF9PQkpfUkFESU8sIElPQ1RMX0FDVF9SQURJT19BV0FLRSwgIiIpKTsKK30KKworLyoKKyAqICA9PT09PT09PSBSYWRpb19zZW5kID09PT09PT09CisgKi8KK1JhZGlvX1N0YXR1cyBSYWRpb19zZW5kKFJhZGlvX0xpbmtJZCBpZCwgVUludDggKm1zZywgU2l6ZVQgbGVuKQoreworICAgIHJldHVybiAoKFJhZGlvX1N0YXR1cylTTVBMX1NlbmQoaWQsIG1zZywgbGVuKSk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gUmFkaW9fcmVjZWl2ZSA9PT09PT09PQorICovCitSYWRpb19TdGF0dXMgUmFkaW9fcmVjZWl2ZShSYWRpb19MaW5rSWQgaWQsIFVJbnQ4ICptc2csIFVJbnQ4ICpsZW4pCit7CisgICAgcmV0dXJuICgoUmFkaW9fU3RhdHVzKVNNUExfUmVjZWl2ZShpZCwgbXNnLCBsZW4pKTsKK30KKworLyoKKyAqICA9PT09PT09PSBSYWRpb19nZXRNZXRyaWNzID09PT09PT09CisgKi8KK1JhZGlvX1N0YXR1cyBSYWRpb19nZXRNZXRyaWNzKFJhZGlvX0xpbmtJZCBpZCwgUmFkaW9fUnhNZXRyaWNzICptZXRyaWNzKQoreworICAgIGlvY3RsUmFkaW9TaWdpbmZvX3Qgc2lnSW5mbzsKKyAgICBSYWRpb19TdGF0dXMgc3RhdHVzOworICAgIAorICAgIHNpZ0luZm8ubGlkID0gaWQ7CisgICAgc3RhdHVzID0gKFJhZGlvX1N0YXR1cylTTVBMX0lvY3RsKElPQ1RMX09CSl9SQURJTywgSU9DVExfQUNUX1JBRElPX1NJR0lORk8sCisgICAgICAgICh2b2lkICopJnNpZ0luZm8pOworCisgICAgbWV0cmljcy0+cnNzaSA9IHNpZ0luZm8uc2lnSW5mby5yc3NpOworICAgIG1ldHJpY3MtPmxxaSA9IHNpZ0luZm8uc2lnSW5mby5scWk7CisKKyAgICByZXR1cm4gKHN0YXR1cyk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gUmFkaW9fc3RhcnQgPT09PT09PT0KKyAqLworUmFkaW9fU3RhdHVzIFJhZGlvX3N0YXJ0KFJhZGlvX0NhbGxCYWNrIGNiLCBSYWRpb19BZGRyICphZGRyKQoreworICAgIGlmIChhZGRyICE9IE5VTEwpIHsKKyAgICAgICAgLyogYWRkcmVzcyBtdXN0IGJlIHNldCBfYmVmb3JlXyBjYWxsaW5nIFNNUExfSW5pdCgpICovCisgICAgICAgIFNNUExfSW9jdGwoSU9DVExfT0JKX0FERFIsIElPQ1RMX0FDVF9TRVQsIGFkZHIpOworICAgIH0KKyAgCisgICAgcmV0dXJuICgoUmFkaW9fU3RhdHVzKVNNUExfSW5pdChjYikpOworfQorCisvKgorICogID09PT09PT09IFJhZGlvX2xpbmsgPT09PT09PT0KKyAqLworUmFkaW9fU3RhdHVzIFJhZGlvX2xpbmsoUmFkaW9fTGlua0lkICppZCkKK3sKKyAgICByZXR1cm4gKChSYWRpb19TdGF0dXMpU01QTF9MaW5rKGlkKSk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gUmFkaW9fbGlzdGVuID09PT09PT09CisgKi8KK1JhZGlvX1N0YXR1cyBSYWRpb19saXN0ZW4oUmFkaW9fTGlua0lkICppZCkKK3sKKyAgICByZXR1cm4gKChSYWRpb19TdGF0dXMpU01QTF9MaW5rTGlzdGVuKGlkKSk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gUmFkaW9fdHJhY2UgPT09PT09PT0KKyAqLworQm9vbCBSYWRpb190cmFjZSh2b2lkKQoreworICAgIHJldHVybiAoRGlhZ3NfcXVlcnkoRGlhZ3NfVVNFUjEpKTsKK30KKworLyoKKyAqICA9PT09PT09PSBSYWRpb19nZXRSc3NpID09PT09PT09CisgKi8KK1JhZGlvX1Jzc2kgUmFkaW9fZ2V0UnNzaSh2b2lkKQoreworICAgIFJhZGlvX1Jzc2kgZGJtOworICAgIFNNUExfSW9jdGwoSU9DVExfT0JKX1JBRElPLCBJT0NUTF9BQ1RfUkFESU9fUlNTSSwgKHZvaWQgKikmZGJtKTsKKyAgICByZXR1cm4gKGRibSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvUmFkaW8ueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL1JhZGlvLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jM2Q5YTZlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL1JhZGlvLnhkYwpAQCAtMCwwICsxLDE3NiBAQAoraW1wb3J0IHhkYy5ydW50aW1lLkxvZzsKK2ltcG9ydCB4ZGMucnVudGltZS5EaWFnczsKKworLyohCisgKiAgPT09PT09PT0gUmFkaW8gPT09PT09PT0KKyAqICBXYXBwZXIgZm9yIHRoZSBTaW1wbGljaVRJIHJhZGlvIHN0YWNrCisgKgorICogIFRoaXMgbW9kdWxlIGlzIHVzZWQgYXQgcnVudGltZSBieSBhcHBsaWNhdGlvbnMgdXNpbmcgdGhlCisgKiAgU2ltcGxpY2l0eSBzdGFjayB0byBjb21tdW5pY2F0ZSBiZXR3ZWVuIGRldmljZXMuICBCeSB1c2luZyB0aGlzIG1vZHVsZSwgaW4KKyAqICBsaWV1IG9mIGRpcmVjdGx5IGNhbGxpbmcgdGhlIFNpbXBsaWNpVEkgZnVuY3Rpb25zLCBjbGllbnRzIGNhbiBlYXNpbHkKKyAqICBtb25pdG9yIGFsbCB1c2Ugb2YgdGhlIHJhZGlvIGFuZCBhdm9pZCBoYXZpbmcgdG8gaW5jbHVkZSBtdWx0aXBsZSBoZWFkZXJzCisgKiAgZnJvbSB2YXJpb3VzIGRpcmVjdG9yaWVzLgorICovCittb2R1bGUgUmFkaW8geworCisgICAgLyohCisgICAgICogID09PT09PT09IFN0YXR1cyA9PT09PT09PQorICAgICAqICBTdGF0dXMgY29kZXMgcmV0dXJuZWQgZnJvbSB0aGlzIG1vZHVsZSdzIG1ldGhvZHMKKyAgICAgKi8KKyAgICBlbnVtIFN0YXR1cyB7CisgICAgICAgIFNVQ0NFU1MsCisgICAgICAgIFRJTUVPVVQsCisgICAgICAgIEJBRF9QQVJBTSwKKyAgICAgICAgTk9NRU0sCisgICAgICAgIE5PX0ZSQU1FLAorICAgICAgICBOT19MSU5LLAorICAgICAgICBOT19KT0lOLAorICAgICAgICBOT19DSEFOTkVMLAorICAgICAgICBOT19QRUVSX1VOTElOSywKKyAgICAgICAgVFhfQ0NBX0ZBSUwsICAgICAgICAvKiEgY2FuJ3Qgc2VuZDsgY2hhbiB0b28gbm9pc3kgZXZlbiBhZnRlciBtdWx0aXBsZSB0aXJlcyAqLworICAgICAgICBOT19QQVlMT0FELAorICAgICAgICBOT19BUF9BRERSRVNTCisgICAgfTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBSc3NpID09PT09PT09CisgICAgICogIFJhZGlvIHNpZ25hbCBzdHJlbmd0aAorICAgICAqLworICAgIHR5cGVkZWYgSW50OCBSc3NpOworCisgICAgLyohCisgICAgICogID09PT09PT09IFJ4TWV0cmljcyA9PT09PT09PQorICAgICAqICBSZWNlaXZlIHNpZ25hbCBtZXRyaWNzCisgICAgICovCisgICAgc3RydWN0IFJ4TWV0cmljcyB7CisgICAgICAgIFJzc2kgIHJzc2k7CisgICAgICAgIFVJbnQ4IGxxaTsKKyAgICB9OworCisgICAgLyohCisgICAgICogID09PT09PT09IExpbmtJZCA9PT09PT09PQorICAgICAqICBMaW5rIElECisgICAgICoKKyAgICAgKiAgVmFsaWQgbGluayBJRCdzIGFyZSBhbHdheXMgbm9uLXplcm8uCisgICAgICovCisgICAgdHlwZWRlZiBVSW50OCBMaW5rSWQ7CisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IEFERFJfTEVOID09PT09PT09CisgICAgICogIE51bWJlciBvZiBieXRlcyBpbiBhIG5vZGUncyBhZGRyZXNzCisgICAgICovCisgICAgY29uc3QgSW50IEFERFJfTEVOID0gNDsKKyAgICAKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gQWRkciA9PT09PT09PQorICAgICAqICBEZXZpY2UgYWRkcmVzcworICAgICAqLworICAgIHN0cnVjdCBBZGRyIHsKKyAgICAgICAgQml0czggIGFkZHJbQUREUl9MRU5dOworICAgIH07CisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IEFERFJFU1MgPT09PT09PT0KKyAgICAgKiAgTG9nIGEgZGV2aWNlIGFkZHJlc3MKKyAgICAgKi8KKyAgICBjb25maWcgTG9nLkV2ZW50IEFERFJFU1MgPSB7CisgICAgICAgIG1hc2s6IERpYWdzLkVOVFJZLAorICAgICAgICBtc2c6ICJkZXZpY2UgYWRkcmVzczogJXg6JXg6JXg6JXgiCisgICAgfTsKKyAgICAKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gQ2FsbEJhY2sgPT09PT09PT0KKyAgICAgKiAgQ2FsbGJhY2sgZnVuY3Rpb24gd2hlbiBhIG1lc3NhZ2UgaXMgcmVjaWV2ZWQKKyAgICAgKi8KKyAgICB0eXBlZGVmIFVJbnQ4ICgqQ2FsbEJhY2spKExpbmtJZCk7CisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IHNldFJ4T24gPT09PT09PT0KKyAgICAgKiAgVHVybiBvbiByYWRpbyByZWNlaXZlCisgICAgICovCisgICAgU3RhdHVzIHNldFJ4T24oKTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBzbGVlcCA9PT09PT09PQorICAgICAqICBJZGxlIHRoZSByYWRpbyB0byBsb3dlciBwb3dlciBjb25zdW1wdGlvbgorICAgICAqCisgICAgICogIFRoZSBmaXJzdCBtZXRob2QgY2FsbGFibGUgYWZ0ZXIgYSBjYWxsIHRvIGBzbGVlcGAgc2hvdWxkIGFsd2F5cyBiZQorICAgICAqICBge0BsaW5rICNhd2FrZSgpfWAuCisgICAgICoKKyAgICAgKiAgQHNlZSAjYXdha2UKKyAgICAgKi8KKyAgICBTdGF0dXMgc2xlZXAoKTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBhd2FrZSA9PT09PT09PQorICAgICAqICBBd2FrZW4gdGhlIHJhZGlvIGZyb20gc2xlZXAKKyAgICAgKgorICAgICAqICBUaGlzIGVudHJ5IHBvaW50IGlzIGEgZGlyZWN0IGNhbGwgdG8gZWxpbWluYXRlIHRoZSBwb3NzaWJpbGl0eQorICAgICAqICBvZiBpbmFkdmVydGVudGx5IHRyYWNpbmcgdGhpcyBtb2R1bGUgdXNpbmcgdGhlIHJhZGlvOyB0aGUgcmFkaW8KKyAgICAgKiAgbXVzdCBub3QgYmUgdXNlZCB1bnRpbCBpdCBpcyAiYXdha2UiLCBidXQgY2FsbGluZyB0aGlzIG1ldGhvZAorICAgICAqICB3aXRoIGVudHJ5IHRyYWNlIHdpbGwgbG9nIGFuIGV2ZW50IF9iZWZvcmVfIHRoZSByYWRpbyBpcyBhd2FrZSEKKyAgICAgKgorICAgICAqICBAc2VlICNzbGVlcAorICAgICAqLworIEBEaXJlY3RDYWxsCisgICAgU3RhdHVzIGF3YWtlKCk7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gc2VuZCA9PT09PT09PQorICAgICAqICBTZW5kIGEgbWVzc2FnZQorICAgICAqLworICAgIFN0YXR1cyBzZW5kKExpbmtJZCBpZCwgVUludDggKm1zZywgU2l6ZVQgbGVuKTsKKyAgICAKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gc2V0Q2hhbm5lbCA9PT09PT09PQorICAgICAqICBDaGFuZ2UgY2hhbm5lbCB0byBzcGVjaWZpZWQgbG9naWNhbCBjaGFubmVsIG51bWJlcgorICAgICAqCisgICAgICogIENoYW5uZWwgbnVtYmVycyBiZWdpbiBhdCAwIGFuZCBncm93IHRvIGEgYnVpbGQgdGltZQorICAgICAqICBtYXhpbXVtICh0eXBpY2FsbHkgMywgZm9yIGEgdG90YWwgb2YgNCBjaGFubmVscykuCisgICAgICovCisgICAgQm9vbCBzZXRDaGFubmVsKEludCBjaGFuKTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBnZXRNZXRyaWNzID09PT09PT09CisgICAgICogIEdldCByYWRpbyBtZXRyaWNzIGZvciBsYXN0IHJlY2VpdmVkIGZyYW1lCisgICAgICovCisgICAgU3RhdHVzIGdldE1ldHJpY3MoTGlua0lkIGlkLCBSeE1ldHJpY3MgKm1ldHJpY3MpOworICAgIAorICAgIC8qIQorICAgICAqICA9PT09PT09PSBnZXRSc3NpID09PT09PT09CisgICAgICogIEdldCBSU1NJIHZhbHVlIGZvciB0aGUgY3VycmVudCBjaGFubmVsCisgICAgICovCitARGlyZWN0Q2FsbAorICAgIFJzc2kgZ2V0UnNzaSgpOworCisgICAgLyohCisgICAgICogID09PT09PT09IHJlY2VpdmUgPT09PT09PT0KKyAgICAgKiAgUmVjZWl2ZSBtZXNzYWdlCisgICAgICovCisgICAgU3RhdHVzIHJlY2VpdmUoTGlua0lkIGlkLCBVSW50OCAqbXNnLCBVSW50OCAqbGVuKTsKKyAgICAKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gc3RhcnQgPT09PT09PT0KKyAgICAgKiAgSW5pdGlhbGl6ZSB0aGUgcmFkaW8gc3RhY2sKKyAgICAgKi8KKyAgICBTdGF0dXMgc3RhcnQoQ2FsbEJhY2sgY2IsIEFkZHIgKmFkZHIpOworICAgIAorICAgIC8qIQorICAgICAqICA9PT09PT09PSBsaW5rID09PT09PT09CisgICAgICogIEFzayB0byBsaW5rIGludG8gYSBuZXR3b3JrCisgICAgICovCisgICAgU3RhdHVzIGxpbmsoTGlua0lkICppZCk7CisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IGxpc3RlbiA9PT09PT09PQorICAgICAqICBMaXN0ZW4gZm9yIGEgbGluayByZXF1ZXN0CisgICAgICovCisgICAgU3RhdHVzIGxpc3RlbihMaW5rSWQgKmlkKTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSB0cmFjZSA9PT09PT09PQorICAgICAqICBSZXR1cm4gdHJ1ZSBpZiBpbnRlcm5hbCB0cmFjZSBpcyBlbmFibGVkCisgICAgICovCitARGlyZWN0Q2FsbAorICAgIEJvb2wgdHJhY2UoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9TZXR0aW5ncy54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvU2V0dGluZ3MueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyY2FhMjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvU2V0dGluZ3MueGRjCkBAIC0wLDAgKzEsMjMgQEAKKy8qIQorICogID09PT09PT09IFNldHRpbmdzID09PT09PT09CisgKiAgQ29uZmlndXJhdGlvbiB0aW1lIG9wdGlvbnMKKyAqLworbWV0YW9ubHkgbW9kdWxlIFNldHRpbmdzCit7CisgICAgZW51bSBEZXZpY2VUeXBlIHsKKyAgICAgICAgQUNDRVNTX1BPSU5ULCAgIC8vISBwcm9ncmFtIGlzIGFuIEFjY2VzcyBQb2ludAorICAgICAgICBFTkRfREVWSUNFICAgICAgLy8hIHByb2dyYW0gaXMgYW4gRW5kIERldmljZQorICAgIH07CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gdHlwZSA9PT09PT09PQorICAgICAqICBBcHBsaWNhdGlvbiB0eXBlCisgICAgICoKKyAgICAgKiAgU2ltcGxpY2l0eSBwcm9ncmFtcyBhcmUgZWl0aGVyIGFuIEFjY2VzcyBQb2ludCBvciBhbiBFbmQgRGV2aWNlLgorICAgICAqICBBcHBsaWNhdGlvbnMgYXJlIGNvbXBvc2VkIG9mIG11bHRpcGxlIHByb2dyYW1zIHRoYXQgaW5jbHVkZSBhIG1peAorICAgICAqICBvZiBib3RoIEFjY2VzcyBQb2ludHMgYW5kIEVuZCBEZXZpY2VzLgorICAgICAqCisgICAgICogIFRoaXMgb3B0aW9uIHNlbGVjdHMgd2hpY2ggdHlwZSBvZiBkZXZpY2UgYSBwcm9ncmFtIHdpbGwgYmUuCisgICAgICovCisgICAgY29uZmlnIERldmljZVR5cGUgdHlwZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9pc3IuYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9pc3IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDI1YTUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL2lzci5jCkBAIC0wLDAgKzEsMTggQEAKK2V4dGVybiB2b2lkIE1SRklfR3Bpb0lzcih2b2lkKTsKKworLyoKKyAqICA9PT09PT09PSBJT1BPUlQyX0lTUiA9PT09PT09PQorICovCitfX2ludGVycnVwdCB2b2lkIElPUE9SVDJfSVNSKHZvaWQpCit7CisgICAgLyoKKyAgICAgKiAgVGhpcyBJU1IgaXMgZWFzaWx5IHJlcGxhY2VkLiAgVGhlIG5ldyBJU1IgbXVzdCBzaW1wbHkKKyAgICAgKiAgaW5jbHVkZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGNhbGwuCisgICAgICovCisgICAgTVJGSV9HcGlvSXNyKCk7Cit9CisKK19fYXNtKCJcdC5nbG9iYWwgSU9QT1JUMl9JU1IiKTsKK19fYXNtKCJcdC5zZWN0ICAgXCIuaW9wb3J0MlwiIik7CitfX2FzbSgiXHQuYWxpZ24gIDIiKTsKK19fYXNtKCJfSU9QT1JUMl92ZWN0b3I6XG5cdC5maWVsZCBJT1BPUlQyX0lTUiwgMTYiKTsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9saWJzLy54ZGNlbnYubWFrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL2xpYnMvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBkMTAxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9saWJzLy54ZGNlbnYubWFrCkBAIC0wLDAgKzEsMTYgQEAKKyMKK19YRENCVUlMRENPVU5UID0gMAoraWZuZXEgKCwkKGZpbmRzdHJpbmcgcGF0aCwkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENQQVRIID0gCitvdmVycmlkZSBYRENST09UID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMKK292ZXJyaWRlIFhEQ0JVSUxEQ0ZHID0gLi4vLi4vLi4vY29uZmlnLmJsZAorZW5kaWYKK2lmbmVxICgsJChmaW5kc3RyaW5nIGFyZ3MsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDQVJHUyA9IAorb3ZlcnJpZGUgWERDVEFSR0VUUyA9IAorZW5kaWYKKyMKK2lmZXEgKDAsMSkKK1BLR1BBVEggPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMy9wYWNrYWdlczsuLi8uLi8uLgorSE9TVE9TID0gTGludXgKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvbGlicy9TZXR0aW5ncy54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvbGlicy9TZXR0aW5ncy54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFjN2Y4OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9saWJzL1NldHRpbmdzLnhkYwpAQCAtMCwwICsxLDkgQEAKK21ldGFvbmx5IG1vZHVsZSBTZXR0aW5ncworeworICAgIGVudW0gRGV2aWNlVHlwZSB7CisgICAgICAgIEFDQ0VTU19QT0lOVCwKKyAgICAgICAgRU5EX0RFVklDRQorICAgIH07CisKKyAgICBjb25maWcgRGV2aWNlVHlwZSB0eXBlOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL2xpYnMvcGFja2FnZS5ibGQgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvbGlicy9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ODgxOTlkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL2xpYnMvcGFja2FnZS5ibGQKQEAgLTAsMCArMSw2NSBAQAorUGtnLnVzZXMgPSBbInRpL2FwcHMvbXNwNDMwIl07CisKKy8qIGdldCBTaW1wbGljaVRJIGJ1aWxkIG9wdGlvbnMgc3VwcG9ydCAqLworQnVpbGRPcHRzID0geGRjLm1vZHVsZSgnbG9jYWwucmYuQnVpbGRPcHRzJyk7CisKKy8qIFNpbXBsaWNpVEkgaXMgaW5zdGFsbGVkIHJlbGF0aXZlIHRvIGxvY2FsLnJmJ3MgcmVwb3NpdG9yeSAqLworQnVpbGRPcHRzLnJvb3REaXIgPSBCdWlsZE9wdHMuJHBhY2thZ2UucGFja2FnZVJlcG9zaXRvcnkKKyAgICArICIuLi9TaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHMiOworCisvKiB0ZWxsIG1ha2UgaG93IHRvIGZpbmQgdGhlIFNpbXBsaWNpVEkgc291cmNlcyAqLworUGtnLm1ha2VQcm9sb2d1ZSA9IEJ1aWxkT3B0cy5nZXRNYWtlUHJvbG9ndWUoKTsKKworLyogc2VsZWN0IHJhZGlvIGFuZCBtY3UgZGV2aWNlICovCitCdWlsZE9wdHMubWN1ID0gQnVpbGRPcHRzLk1TUDQzMEYyMjc0OworQnVpbGRPcHRzLnJhZGlvID0gQnVpbGRPcHRzLkNDMjUwMDsKKworLyogY3JlYXRlIGJ1aWxkIG9wdGlvbnMgZm9yIGFuIEVuZCBEZXZpY2UgKi8KK3ZhciBlZCA9IEJ1aWxkT3B0cy5jcmVhdGUoeworICAgIG1heEhvcENvdW50OiAzLAorICAgIG1heEhvcEZyb21BUDogMSwKKyAgICBtYXhBcHBQYXlsb2FkOiAxMCwKKyAgICBsaW5rVG9rZW46IDB4MDEwMjAzMDQsCisgICAgam9pblRva2VuOiAweDA1MDYwNzA4LAorCisgICAgZGV2aWNlVHlwZTogQnVpbGRPcHRzLkVORF9ERVZJQ0UsCisgICAgbnVtQ29ubmVjdGlvbnM6IDIsCisgICAgaW5GcmFtZVFTaXplOiAyLAorICAgIG91dEZyYW1lUVNpemU6IDIsCisgICAgZGV2aWNlQWRkcmVzczogInsweDc3LCAweDU2LCAweDM0LCAweDEyfSIsCisgICAgcnhNb2RlOiBCdWlsZE9wdHMuUlhfQUxXQVlTCit9KTsKKworLyogY3JlYXRlIGJ1aWxkIG9wdGlvbnMgZm9yIGFuIEFjY2VzcyBQb2ludCAqLwordmFyIGFwID0gQnVpbGRPcHRzLmNyZWF0ZSh7CisgICAgbWF4SG9wQ291bnQ6IDMsCisgICAgbWF4SG9wRnJvbUFQOiAxLAorICAgIG1heEFwcFBheWxvYWQ6IDEwLAorICAgIGxpbmtUb2tlbjogMHgwMTAyMDMwNCwKKyAgICBqb2luVG9rZW46IDB4MDUwNjA3MDgsCisKKyAgICBkZXZpY2VUeXBlOiBCdWlsZE9wdHMuQUNDRVNTX1BPSU5ULAorICAgIG51bUNvbm5lY3Rpb25zOiA3LAorICAgIGluRnJhbWVRU2l6ZTogNiwKKyAgICBvdXRGcmFtZVFTaXplOiAyLAorICAgIGRldmljZUFkZHJlc3M6ICJ7MHg3OCwgMHg1NiwgMHgzNCwgMHgxMn0iLAorICAgIGlzRGF0YUh1YjogdHJ1ZSwKKyAgICBudW1TdG9yZUFuZEZ3ZENsaWVudHM6IDMKK30pOworCisvKiBidWlsZCBib3RoIHRoZSBhY2Nlc3MgcG9pbnQgYW5kIGVuZCBkZXZpY2UgbGlicmFyaWVzICovCitmb3IgKHZhciBpID0gMDsgaSA8IEJ1aWxkLnRhcmdldHMubGVuZ3RoOyBpKyspIHsKKyAgICB2YXIgdGFyZyA9IEJ1aWxkLnRhcmdldHNbaV07CisKKyAgICBpZiAodGFyZy5pc2EubWF0Y2goLzQzMC8pKSB7CisgICAgICAgIHZhciBhcExpYiA9IFBrZy5hZGRMaWJyYXJ5KCJsaWIvYXAiLCB0YXJnLCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNzOiBhcC5nZXRJbmNzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZzOiBhcC5nZXREZWZzKCl9KTsKKyAgICAgICAgYXBMaWIuYWRkT2JqZWN0cyhCdWlsZE9wdHMuU1JDUyk7CisKKyAgICAgICAgdmFyIGVkTGliID0gUGtnLmFkZExpYnJhcnkoImxpYi9lZCIsIHRhcmcsIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY3M6IGVkLmdldEluY3MoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZnM6IGVkLmdldERlZnMoKX0pOworICAgICAgICBlZExpYi5hZGRPYmplY3RzKEJ1aWxkT3B0cy5TUkNTKTsKKyAgICB9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL2xpYnMvcGFja2FnZS54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvbGlicy9wYWNrYWdlLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOGRkNDMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL2xpYnMvcGFja2FnZS54ZGMKQEAgLTAsMCArMSw4IEBACisvKiEKKyAqICA9PT09PT09PSByZi5saWJzID09PT09PT09CisgKiAgUHJlLWJ1aWx0IHJhZGlvIGxpYnJhcmllcworICovCitwYWNrYWdlIGxvY2FsLnJmLmxpYnMKK3sKKyAgICBtb2R1bGUgU2V0dGluZ3M7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvbGlicy9wYWNrYWdlLnhzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL2xpYnMvcGFja2FnZS54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTY5NDlmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL2xpYnMvcGFja2FnZS54cwpAQCAtMCwwICsxLDI4IEBACisvKgorICogID09PT09PT09IGdldExpYnMgPT09PT09PT0KKyAqLworZnVuY3Rpb24gZ2V0TGlicyhwcm9nKQoreworICAgIGlmICh4ZGMub20uJG5hbWUgPT0gImNmZyIgJiYgdGhpcy5TZXR0aW5ncy50eXBlID09IG51bGwpIHsKKyAgICAgICAgcHJpbnQoIndhcm5pbmc6ICIgKyB0aGlzICsgIiBpcyBub3Qgc3VwcGxpbmcgYSBsaWJyYXJ5Iik7CisgICAgICAgIHJldHVybiAobnVsbCk7CisgICAgfQorCisgICAgdmFyIGxpYiA9ICJsaWIvZWQiOworICAgIGlmICh0aGlzLlNldHRpbmdzLnR5cGUgPT0gdGhpcy5TZXR0aW5ncy5BQ0NFU1NfUE9JTlQpIHsKKyAgICAgICAgbGliID0gImxpYi9hcCI7CisgICAgfQorCisgICAgcmV0dXJuIChsaWIgKyAiLmEiICsgcHJvZy5idWlsZC50YXJnZXQuc3VmZml4KTsKKyAgICByZXR1cm4gKG51bGwpOworfQorCisvKgorICogID09PT09PT09IHZhbGlkYXRlID09PT09PT09CisgKi8KK2Z1bmN0aW9uIHZhbGlkYXRlKCkKK3sKKyAgICBpZiAoeGRjLm9tLiRuYW1lID09ICJjZmciICYmIHRoaXMuU2V0dGluZ3MudHlwZSA9PSBudWxsKSB7CisgICAgICAgIHRocm93IG5ldyBFcnJvcigieW91IG11c3QgY29uZmlndXJlICIgKyB0aGlzLiRuYW1lICsgIi5TZXR0aW5ncy50eXBlIik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3BhY2thZ2UuYmxkIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3BhY2thZ2UuYmxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNWQ5MjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvcGFja2FnZS5ibGQKQEAgLTAsMCArMSw0IEBACisvKiB0aGlzIGZpbGUgaXMgaW50ZW5zaW9uYWxseSAiZW1wdHkiOyBpdCBtdXN0IGV4aXN0IHRvIGluZGljYXRlIAorICogdGhhdCB0aGlzIHBhY2thZ2UgaXMgYnVpbGFibGUgYnV0IHRoZSBvbmx5IHRoaW5ncyB0byBidWlsZAorICogYXJlIGFscmVhZHkgc3BlY2lmaWVkIGluIHRoZSBwYWNrYWdlLnhkYyBmaWxlCisgKi8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvcGFja2FnZS54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvcGFja2FnZS54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWIzZTYyYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9wYWNrYWdlLnhkYwpAQCAtMCwwICsxLDI1IEBACisvKiEKKyAqICA9PT09PT09PSByZiA9PT09PT09PQorICogIFdpcmVsZXNzIG5ldHdvcmsgc3VwcG9ydAorICoKKyAqICBUaGlzIHBhY2thZ2UgIndyYXBzIiB0aGUgU2ltcGxpY2lUSSB3aXJlbGVzcyBuZXR3b3JrIHN1cHBvcnQgd2l0aAorICogIG1vZHVsZXMgdGhhdCBzaW1wbGlmeSBib3RoIHRoZSBidWlsZGluZyBhbmQgdXNlIG9mIFNpbXBsaWNpVEkuCisgKgorICogIFRoZSBgQnVpbGRPcHRzYCBtb2R1bGUgaXMgdXNlZCB0byByZS1idWlsZCB0aGUgU2ltcGxpY2lUSSBzdGFjaworICogIHdpdGggb3B0aW9ucyB0aGF0IGNvbnRyb2wgdGhlIHNpemUgYW5kIG51bWJlciBvZiBuZXR3b3JrIGJ1ZmZlcnMsCisgKiAgZm9yIGV4YW1wbGUuCisgKgorICogIFRoZSBgUmFkaW9gIG1vZHVsZSBpcyB1c2VkIGF0IHJ1bnRpbWUgYnkgYXBwbGljYXRpb25zIHVzaW5nIHRoZQorICogIFNpbXBsaWNpdHkgc3RhY2sgdG8gY29tbXVuaWNhdGUgYmV0d2VlbiBkZXZpY2VzLiAgQnkgdXNpbmcgdGhpcyBtb2R1bGUsIGluCisgKiAgbGlldSBvZiBkaXJlY3RseSBjYWxsaW5nIHRoZSBTaW1wbGljaVRJIGZ1bmN0aW9ucywgY2xpZW50cyBjYW4gZWFzaWx5CisgKiAgbW9uaXRvciBhbGwgdXNlIG9mIHRoZSByYWRpbyBhbmQgYXZvaWQgaGF2aW5nIHRvIGluY2x1ZGUgbXVsdGlwbGUgaGVhZGVycworICogIGZyb20gdmFyaW91cyBkaXJlY3Rvcmllcy4KKyAqLworcGFja2FnZSBsb2NhbC5yZgoreworICAgIG1vZHVsZSBTZXR0aW5nczsKKyAgICBtb2R1bGUgQnVpbGRPcHRzOworICAgIG1vZHVsZSBSYWRpbzsKKyAgICBtb2R1bGUgQnNwOworICAgIG1vZHVsZSBBdG9taWM7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvcGFja2FnZS54cyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi9wYWNrYWdlLnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwYzczZjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvcGFja2FnZS54cwpAQCAtMCwwICsxLDIzIEBACisvKgorICogID09PT09PT09IGNsb3NlID09PT09PT09CisgKi8KK2Z1bmN0aW9uIGNsb3NlKCkKK3sKKyAgICBpZiAoeGRjLm9tLiRuYW1lID09ICJibGQiKSB7CisgICAgICAgIHZhciBQa2cgPSB4ZGMubW9kdWxlKCJ4ZGMuYmxkLlBhY2thZ2VDb250ZW50cyIpOworICAgICAgICAvKiB3ZSBjb3VsZCBzZXQgdGhlIHByb2xvZ3VlIGhlcmUgcmF0aGVyIHRoYW4gcmVxdWlyZSB0aGUgdXNlcgorICAgICAgICAgKiB0byBzZXQgaXQsIGJ1dCB0aGlzIG1pZ2h0IGJlIHRvbyBtdWNoIG1hZ2ljLgorICAgICAgICAgKi8KKy8vICAgICAgcHJpbnQoIm1ha2UgcHJvbG9ndWU6IiArIFBrZy5tYWtlUHJvbG9ndWUpOworICAgIH0KK30KKworLyoKKyAqICA9PT09PT09PSB2YWxpZGF0ZSA9PT09PT09PQorICovCitmdW5jdGlvbiB2YWxpZGF0ZSgpCit7CisgICAgaWYgKHhkYy5vbS4kbmFtZSA9PSAiY2ZnIiAmJiB0aGlzLlNldHRpbmdzLnR5cGUgPT0gbnVsbCkgeworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInlvdSBtdXN0IGNvbmZpZ3VyZSAiICsgdGhpcy4kbmFtZSArICIuU2V0dGluZ3MudHlwZSIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy8ueGRjZW52Lm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGQxMDEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzLy54ZGNlbnYubWFrCkBAIC0wLDAgKzEsMTYgQEAKKyMKK19YRENCVUlMRENPVU5UID0gMAoraWZuZXEgKCwkKGZpbmRzdHJpbmcgcGF0aCwkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENQQVRIID0gCitvdmVycmlkZSBYRENST09UID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMKK292ZXJyaWRlIFhEQ0JVSUxEQ0ZHID0gLi4vLi4vLi4vY29uZmlnLmJsZAorZW5kaWYKK2lmbmVxICgsJChmaW5kc3RyaW5nIGFyZ3MsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDQVJHUyA9IAorb3ZlcnJpZGUgWERDVEFSR0VUUyA9IAorZW5kaWYKKyMKK2lmZXEgKDAsMSkKK1BLR1BBVEggPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMy9wYWNrYWdlczsuLi8uLi8uLgorSE9TVE9TID0gTGludXgKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvaXNyLmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvaXNyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQyNWE1MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy9pc3IuYwpAQCAtMCwwICsxLDE4IEBACitleHRlcm4gdm9pZCBNUkZJX0dwaW9Jc3Iodm9pZCk7CisKKy8qCisgKiAgPT09PT09PT0gSU9QT1JUMl9JU1IgPT09PT09PT0KKyAqLworX19pbnRlcnJ1cHQgdm9pZCBJT1BPUlQyX0lTUih2b2lkKQoreworICAgIC8qCisgICAgICogIFRoaXMgSVNSIGlzIGVhc2lseSByZXBsYWNlZC4gIFRoZSBuZXcgSVNSIG11c3Qgc2ltcGx5CisgICAgICogIGluY2x1ZGUgdGhlIGZvbGxvd2luZyBmdW5jdGlvbiBjYWxsLgorICAgICAqLworICAgIE1SRklfR3Bpb0lzcigpOworfQorCitfX2FzbSgiXHQuZ2xvYmFsIElPUE9SVDJfSVNSIik7CitfX2FzbSgiXHQuc2VjdCAgIFwiLmlvcG9ydDJcIiIpOworX19hc20oIlx0LmFsaWduICAyIik7CitfX2FzbSgiX0lPUE9SVDJfdmVjdG9yOlxuXHQuZmllbGQgSU9QT1JUMl9JU1IsIDE2Iik7CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvbGlzdGVuLmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvbGlzdGVuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRlZjM2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy9saXN0ZW4uYwpAQCAtMCwwICsxLDE0NyBAQAorLyoKKyAqICA9PT09PT09PSBsaXN0ZW4uYyA9PT09PT09PQorICovCisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzdGVtLmg+CisjaW5jbHVkZSA8bG9jYWwvcmYvUmFkaW8uaD4KKyNpbmNsdWRlIDxsb2NhbC9yZi9Cc3AuaD4KKyNpbmNsdWRlIDxsb2NhbC9yZi9BdG9taWMuaD4KKworc3RhdGljICAgICAgICAgIHVpbnQ4X3QgIHNSeFRpZCA9IDA7CitzdGF0aWMgICAgICAgICAgUmFkaW9fTGlua0lkIHNMaW5rSUQyOworc3RhdGljIHZvbGF0aWxlIHVpbnQ4X3QgIHNTZW1hcGhvcmUgPSAwOworCitzdGF0aWMgdm9pZCAgICAgbGlua0Zyb20odm9pZCk7CitzdGF0aWMgdWludDhfdCAgc1J4Q2FsbGJhY2soUmFkaW9fTGlua0lkKTsgIC8qIFVBUlQgUnggY2FsbGJhY2sgaGFuZGxlciAqLworCisvKgorICogID09PT09PT09IG1haW4gPT09PT09PT0KKyAqLwordm9pZCBtYWluKHZvaWQpCit7CisgICAgUmFkaW9fQWRkciBsQWRkciA9IHsweDc4LCAweDU2LCAweDM0LCAweDEyfTsKKworICAgIC8qIElmIGFuIG9uLXRoZS1mbHkgZGV2aWNlIGFkZHJlc3MgaXMgZ2VuZXJhdGVkIGl0IG11c3QgYmUgZG9uZSBiZWZvcmUgdGhlCisgICAgICogY2FsbCB0byBSYWRpb19zdGFydCgpLiBJZiB0aGUgYWRkcmVzcyBpcyBzZXQgaGVyZSB0aGUgUk9NIHZhbHVlIHdpbGwgbm90CisgICAgICogYmUgdXNlZC4gCisgICAgICoKKyAgICAgKiBUaGlzIGNhbGwgd2lsbCBmYWlsIGJlY2F1c2UgdGhlIGpvaW4gd2lsbCBmYWlsIHNpbmNlIHRoZXJlIGlzIG5vCisgICAgICogQWNjZXNzIFBvaW50IGluIHRoaXMgc2NlbmFyaW8uIEJ1dCB3ZSBkb24ndCBjYXJlIC0tIGp1c3QgdXNlIHRoZQorICAgICAqIGRlZmF1bHQgbGluayB0b2tlbiBsYXRlci4KKyAgICAgKgorICAgICAqIFdlIHN1cHBseSBhIGNhbGxiYWNrIHBvaW50ZXIgdG8gaGFuZGxlIHRoZSBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZSBwZWVyLgorICAgICAqLworICAgIFJhZGlvX3N0YXJ0KHNSeENhbGxiYWNrLCAmbEFkZHIpOworICAgIAorICAgIC8qIHR1cm4gb24gTEVEcy4gKi8KKyAgICBpZiAoIUJzcF9sZWQoMikpIHsKKyAgICAgICAgQnNwX3RvZ2dsZUxlZCgyKTsKKyAgICB9CisgICAgaWYgKCFCc3BfbGVkKDEpKSB7CisgICAgICAgIEJzcF90b2dnbGVMZWQoMSk7CisgICAgfQorICAgIAorICAgIC8qIHdhaXQgZm9yIGEgYnV0dG9uIHByZXNzLi4uICovCisgICAgZm9yICg7OykgeworICAgICAgICBBdG9taWNfY2xlYXI4KChJbnQ4ICopJnNTZW1hcGhvcmUpOworICAgICAgICBpZiAoQnNwX2J1dHRvbigxKSB8fCBCc3BfYnV0dG9uKDIpKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICAvKiBuZXZlciBjb21pbmcgYmFjay4uLiAqLworICAgIGxpbmtGcm9tKCk7CisgICAgCisgICAgLyogYnV0IGluIGNhc2Ugd2UgZG8uLi4gKi8KKyAgICBTeXN0ZW1fYWJvcnQoInJldHVybmVkIGZyb20gbGlua0Zyb20oKSFcbiIpOworfQorCisvKgorICogID09PT09PT09IGxpbmtGcm9tID09PT09PT09CisgKi8KK3N0YXRpYyB2b2lkIGxpbmtGcm9tKCkKK3sKKyAgICB1aW50OF90IG1zZ1syXSwgdGlkID0gMDsKKyAgICAKKyAgICAvKiBUdXJuIG9mZiBvbmUgTEVEIHNvIHdlIGNhbiB0ZWxsIHRoZSBkZXZpY2UgaXMgbm93IGxpc3RlbmluZy4KKyAgICAgKiBSZWNlaXZlZCBtZXNzYWdlcyB3aWxsIHRvZ2dsZSB0aGUgb3RoZXIgTEVELgorICAgICAqLworICAgIEJzcF90b2dnbGVMZWQoMSk7CisgICAgCisgICAgLyogbGlzdGVuIGZvciBsaW5rIGZvcmV2ZXIuLi4gKi8KKyAgICB3aGlsZSAoMSkgeworICAgICAgICBpZiAoUmFkaW9fU1VDQ0VTUyA9PSBSYWRpb19saXN0ZW4oJnNMaW5rSUQyKSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgLyogSW1wbGVtZW50IGZhaWwtdG8tbGluayBwb2xpY3kgaGVyZS4gb3RoZXJ3aXNlLCBsaXN0ZW4gYWdhaW4uICovCisgICAgfQorICAgIAorICAgIC8qIHR1cm4gb24gTEVEMSBvbiB0aGUgcGVlciBpbiByZXNwb25zZSB0byByZWNlaXZpbmcgYSBmcmFtZS4gKi8KKyAgICBtc2dbMF0gPSAweDAxOworICAgIAorICAgIC8qIHR1cm4gb24gUlguIGRlZmF1bHQgaXMgUlggb2ZmLiAqLworICAgIFJhZGlvX3NldFJ4T24oKTsKKyAgICAKKyAgICB3aGlsZSAoMSkgeworICAgICAgICAvKiBXYWl0IGZvciBhIGZyYW1lIHRvIGJlIHJlY2VpdmVkLiBUaGUgUnggaGFuZGxlciwgd2hpY2ggaXMgcnVubmluZworICAgICAgICAgKiBpbiBJU1IgdGhyZWFkLCBwb3N0cyB0aGlzIHNlbWFwaG9yZSBhbGxvd2luZyB0aGUgYXBwbGljYXRpb24gdG8KKyAgICAgICAgICogc2VuZCB0aGUgcmVwbHkgbWVzc2FnZSBpbiB0aGUgdXNlciB0aHJlYWQuCisgICAgICAgICAqLworICAgICAgICBpZiAoc1NlbWFwaG9yZSkgeworICAgICAgICAgICAgbXNnWzFdID0gKyt0aWQ7CisgICAgICAgICAgICBSYWRpb19zZW5kKHNMaW5rSUQyLCBtc2csIHNpemVvZihtc2cpKTsKKyAgICAgICAgCisgICAgICAgICAgICAvKiBSZXNldCBzZW1hcGhvcmUuIFRoaXMgaXMgbm90IHByb3Blcmx5IHByb3RlY3RlZCBhbmQgdGhlcmUgaXMgYQorICAgICAgICAgICAgICogcmFjZSBoZXJlLiBJbiB0aGVvcnkgd2UgY291bGQgbWlzcyBhIG1lc3NhZ2UuIEdvb2QgZW5vdWdoIGZvcgorICAgICAgICAgICAgICogYSBkZW1vLCB0aG91Z2guCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIEF0b21pY19jbGVhcjgoKEludDggKikmc1NlbWFwaG9yZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiAgPT09PT09PT0gc1J4Q2FsbGJhY2sgPT09PT09PT0KKyAqICBoYW5kbGUgcmVjZWl2ZWQgbWVzc2FnZXMKKyAqLworc3RhdGljIHVpbnQ4X3Qgc1J4Q2FsbGJhY2soUmFkaW9fTGlua0lkIHBvcnQpCit7CisgICAgdWludDhfdCBtc2dbMl0sIGxlbiwgdGlkOworICAgIAorICAgIC8qIGlzIHRoZSBjYWxsYmFjayBmb3IgdGhlIGxpbmsgSUQgd2Ugd2FudCB0byBoYW5kbGU/ICovCisgICAgaWYgKHBvcnQgPT0gc0xpbmtJRDIpIHsKKyAgICAgICAgLyogeWVzLiBnbyBnZXQgdGhlIGZyYW1lLiB3ZSBrbm93IHRoaXMgY2FsbCB3aWxsIHN1Y2NlZWQuICovCisgICAgICAgIGlmICgoUmFkaW9fU1VDQ0VTUyA9PSBSYWRpb19yZWNlaXZlKHNMaW5rSUQyLCBtc2csICZsZW4pKSAmJiBsZW4pIHsKKyAgICAgICAgICAgIC8qIENoZWNrIHRoZSBhcHBsaWNhdGlvbiBzZXF1ZW5jZSBudW1iZXIgdG8gZGV0ZWN0CisgICAgICAgICAgICAgKiBsYXRlIG9yIG1pc3NpbmcgZnJhbWVzLi4uCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHRpZCA9IG1zZ1sxXTsKKyAgICAgICAgICAgIGlmICh0aWQpIHsKKyAgICAgICAgICAgICAgICBpZiAodGlkID4gc1J4VGlkKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHdlJ3JlIGdvb2QuIHRvZ2dsZSBMRUQgKi8KKyAgICAgICAgICAgICAgICAgICAgQnNwX3RvZ2dsZUxlZChtc2dbMF0pOworICAgICAgICAgICAgICAgICAgICBzUnhUaWQgPSB0aWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLyogd3JhcCBjYXNlLi4uICovCisgICAgICAgICAgICAgICAgaWYgKHNSeFRpZCkgeworICAgICAgICAgICAgICAgICAgICAvKiB3ZSdyZSBnb29kLiB0b2dnbGUgTEVEICovCisgICAgICAgICAgICAgICAgICAgIEJzcF90b2dnbGVMZWQobXNnWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgc1J4VGlkID0gdGlkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogUG9zdCB0byB0aGUgc2VtYXBob3JlIHRvIGxldCBhcHBsaWNhdGlvbiBrbm93IHNvIGl0IHNlbmRzCisgICAgICAgICAgICAgKiB0aGUgcmVwbHkKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgc1NlbWFwaG9yZSA9IDE7CisKKyAgICAgICAgICAgIC8qIGRyb3AgZnJhbWUuIHdlJ3JlIGRvbmUgd2l0aCBpdC4gKi8KKyAgICAgICAgICAgIHJldHVybiAoMSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBrZWVwIGZyYW1lIGZvciBsYXRlciBoYW5kbGluZyAqLworICAgIHJldHVybiAoMCk7Cit9CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy9saXN0ZW4uY2ZnIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzL2xpc3Rlbi5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY3ZmIyMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy9saXN0ZW4uY2ZnCkBAIC0wLDAgKzEsNDIgQEAKK3ZhciBSYWRpbyA9IHhkYy51c2VNb2R1bGUoImxvY2FsLnJmLlJhZGlvIik7Cit2YXIgQnNwID0geGRjLnVzZU1vZHVsZSgibG9jYWwucmYuQnNwIik7Cit2YXIgQXRvbWljID0geGRjLnVzZU1vZHVsZSgibG9jYWwucmYuQXRvbWljIik7Cit2YXIgU2V0dGluZ3MgPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5yZi5TZXR0aW5ncyIpOworU2V0dGluZ3MudHlwZSA9IFNldHRpbmdzLkVORF9ERVZJQ0U7CisKK3ZhciBNYWluID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuTWFpbiIpOwordmFyIERpYWdzID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRGlhZ3MiKTsKKworLyogdXNlIHRoZSBMb2dnZXJTeXMgSUxvZ2dlciBzZXJ2aWNlIHByb3ZpZGVyICovCisvL3ZhciBMb2dnZXIgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5Mb2dnZXJTeXMiKTsKK3ZhciBMb2dnZXIgPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5ydW50aW1lLkxvZ2dlclVhcnQiKTsKKworLyogY3JlYXRlIGFuZCBiaW5kIGEgbG9nZ2VyIGZvciBhbGwgbm9uLW1vZHVsZSBjb2RlICovCitNYWluLmNvbW1vbiQubG9nZ2VyID0gTG9nZ2VyLmNyZWF0ZSgpOworTWFpbi5jb21tb24kLmRpYWdzX0VOVFJZID0gRGlhZ3MuQUxXQVlTX09OOworCisvKiBtaW5pbWl6ZSBmb290cHJpbnQgKi8KK1Byb2dyYW0uYXJnU2l6ZSA9IDA7CitQcm9ncmFtLmhlYXAgPSAwOworUHJvZ3JhbS5zdGFjayA9IDB4MTAwOworCit2YXIgRXJyID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRXJyb3IiKTsKK0Vyci5yYWlzZUhvb2sgPSBudWxsOworCit2YXIgRGVmYXVsdHMgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5EZWZhdWx0cyIpOworRGVmYXVsdHMuY29tbW9uJC5kaWFnc19BU1NFUlQgPSBEaWFncy5BTFdBWVNfT0ZGOworLy9EZWZhdWx0cy5jb21tb24kLmZ4bnRhYiA9IGZhbHNlOworRGVmYXVsdHMuY29tbW9uJC5tZW1vcnlQb2xpY3kgPSB4ZGMubW9kdWxlKCd4ZGMucnVudGltZS5UeXBlcycpLlNUQVRJQ19QT0xJQ1k7CitEZWZhdWx0cy5jb21tb24kLm5hbWVkTW9kdWxlID0gZmFsc2U7CisKK01haW4uY29tbW9uJC5kaWFnc19VU0VSMSA9IERpYWdzLkFMV0FZU19PTjsKKwordmFyIFN5c1VhcnQgPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5ydW50aW1lLlN5c1VhcnQiKTsKKwordmFyIFN5c3RlbSA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLlN5c3RlbSIpOworU3lzdGVtLlN1cHBvcnRQcm94eSA9IFN5c1VhcnQ7CitTeXN0ZW0ubWF4QXRleGl0SGFuZGxlcnMgPSAwOworCit2YXIgVGV4dCA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLlRleHQiKTsKK1RleHQuaXNMb2FkZWQgPSBmYWxzZTsKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzL2xpc3RlbjAuYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy9saXN0ZW4wLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjU4NjQzNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy9saXN0ZW4wLmMKQEAgLTAsMCArMSwxNjggQEAKKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4KKworI2luY2x1ZGUgImJzcC5oIgorI2luY2x1ZGUgIm1yZmkuaCIKKyNpbmNsdWRlICJud2tfdHlwZXMuaCIKKyNpbmNsdWRlICJud2tfYXBpLmgiCisjaW5jbHVkZSAiYnNwX2xlZHMuaCIKKyNpbmNsdWRlICJic3BfYnV0dG9ucy5oIgorCitzdGF0aWMgdm9pZCBsaW5rRnJvbSh2b2lkKTsKK3N0YXRpYyB2b2lkIHRvZ2dsZUxFRCh1aW50OF90IHdoaWNoKTsKKworc3RhdGljICAgICAgICAgIHVpbnQ4X3QgIHNSeFRpZCA9IDA7CitzdGF0aWMgICAgICAgICAgbGlua0lEX3Qgc0xpbmtJRDI7CitzdGF0aWMgdm9sYXRpbGUgdWludDhfdCAgc1NlbWFwaG9yZSA9IDA7CisKKy8qIFJ4IGNhbGxiYWNrIGhhbmRsZXIgKi8KK3N0YXRpYyB1aW50OF90IHNSeENhbGxiYWNrKGxpbmtJRF90KTsKKworLyoKKyAqICA9PT09PT09PSBtYWluID09PT09PT09CisgKi8KK3ZvaWQgbWFpbih2b2lkKQoreworICAgIGFkZHJfdCBsQWRkciA9IHsweDc4LCAweDU2LCAweDM0LCAweDEyfTsKKworICAgIEJTUF9Jbml0KCk7CisgICAgCisgICAgLyogSWYgYW4gb24tdGhlLWZseSBkZXZpY2UgYWRkcmVzcyBpcyBnZW5lcmF0ZWQgaXQgbXVzdCBiZSBkb25lIGJlZm9yZSB0aGUKKyAgICAgKiBjYWxsIHRvIFNNUExfSW5pdCgpLiBJZiB0aGUgYWRkcmVzcyBpcyBzZXQgaGVyZSB0aGUgUk9NIHZhbHVlIHdpbGwgbm90CisgICAgICogYmUgdXNlZC4gSWYgU01QTF9Jbml0KCkgcnVucyBiZWZvcmUgdGhpcyBJT0NUTCBpcyB1c2VkIHRoZSBJT0NUTCBjYWxsCisgICAgICogd2lsbCBub3QgdGFrZSBlZmZlY3QuIE9uZSBzaG90IG9ubHkuIFRoZSBJT0NUTCBjYWxsIGJlbG93IGlzIGNvbmZvcm1hbC4KKyAgICAgKi8KKyAgICBTTVBMX0lvY3RsKElPQ1RMX09CSl9BRERSLCBJT0NUTF9BQ1RfU0VULCAmbEFkZHIpOworICAgIAorICAgIC8qIFRoaXMgY2FsbCB3aWxsIGZhaWwgYmVjYXVzZSB0aGUgam9pbiB3aWxsIGZhaWwgc2luY2UgdGhlcmUgaXMgbm8KKyAgICAgKiBBY2Nlc3MgUG9pbnQgaW4gdGhpcyBzY2VuYXJpby4gQnV0IHdlIGRvbid0IGNhcmUgLS0ganVzdCB1c2UgdGhlCisgICAgICogZGVmYXVsdCBsaW5rIHRva2VuIGxhdGVyLgorICAgICAqCisgICAgICogV2Ugc3VwcGx5IGEgY2FsbGJhY2sgcG9pbnRlciB0byBoYW5kbGUgdGhlIG1lc3NhZ2UgcmV0dXJuZWQgYnkgdGhlIHBlZXIuCisgICAgICovCisgICAgU01QTF9Jbml0KHNSeENhbGxiYWNrKTsKKyAgICAKKyAgICAvKiB0dXJuIG9uIExFRHMuICovCisgICAgaWYgKCFCU1BfTEVEMl9JU19PTigpKSB7CisgICAgICAgIHRvZ2dsZUxFRCgyKTsKKyAgICB9CisgICAgaWYgKCFCU1BfTEVEMV9JU19PTigpKSB7CisgICAgICAgIHRvZ2dsZUxFRCgxKTsKKyAgICB9CisgICAgCisgICAgLyogd2FpdCBmb3IgYSBidXR0b24gcHJlc3MuLi4gKi8KKyAgICBmb3IgKDs7KSB7CisgICAgICAgIGlmIChCU1BfQlVUVE9OMSgpIHx8IEJTUF9CVVRUT04yKCkpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qIG5ldmVyIGNvbWluZyBiYWNrLi4uICovCisgICAgbGlua0Zyb20oKTsKKyAgICAKKyAgICAvKiBidXQgaW4gY2FzZSB3ZSBkby4uLiAqLworICAgIFN5c3RlbV9hYm9ydCgicmV0dXJuZWQgZnJvbSBsaW5rRnJvbVxuIik7Cit9CisKKy8qCisgKiAgPT09PT09PT0gbGlua0Zyb20gPT09PT09PT0KKyAqLworc3RhdGljIHZvaWQgbGlua0Zyb20oKQoreworICAgIHVpbnQ4X3QgbXNnWzJdLCB0aWQgPSAwOworICAgIAorICAgIC8qIFR1cm4gb2ZmIG9uZSBMRUQgc28gd2UgY2FuIHRlbGwgdGhlIGRldmljZSBpcyBub3cgbGlzdGVuaW5nLgorICAgICAqIFJlY2VpdmVkIG1lc3NhZ2VzIHdpbGwgdG9nZ2xlIHRoZSBvdGhlciBMRUQuCisgICAgICovCisgICAgdG9nZ2xlTEVEKDEpOworICAgIAorICAgIC8qIGxpc3RlbiBmb3IgbGluayBmb3JldmVyLi4uICovCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgaWYgKFNNUExfU1VDQ0VTUyA9PSBTTVBMX0xpbmtMaXN0ZW4oJnNMaW5rSUQyKSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgLyogSW1wbGVtZW50IGZhaWwtdG8tbGluayBwb2xpY3kgaGVyZS4gb3RoZXJ3aXNlLCBsaXN0ZW4gYWdhaW4uICovCisgICAgfQorICAgIAorICAgIC8qIHR1cm4gb24gTEVEMSBvbiB0aGUgcGVlciBpbiByZXNwb25zZSB0byByZWNlaXZpbmcgYSBmcmFtZS4gKi8KKyAgICBtc2dbMF0gPSAweDAxOworICAgIAorICAgIC8qIHR1cm4gb24gUlguIGRlZmF1bHQgaXMgUlggb2ZmLiAqLworICAgIFNNUExfSW9jdGwoSU9DVExfT0JKX1JBRElPLCBJT0NUTF9BQ1RfUkFESU9fUlhPTiwgMCk7CisgICAgCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgLyogV2FpdCBmb3IgYSBmcmFtZSB0byBiZSByZWNlaXZlZC4gVGhlIFJ4IGhhbmRsZXIsIHdoaWNoIGlzIHJ1bm5pbmcKKyAgICAgICAgICogaW4gSVNSIHRocmVhZCwgcG9zdHMgdGhpcyBzZW1hcGhvcmUgYWxsb3dpbmcgdGhlIGFwcGxpY2F0aW9uIHRvCisgICAgICAgICAqIHNlbmQgdGhlIHJlcGx5IG1lc3NhZ2UgaW4gdGhlIHVzZXIgdGhyZWFkLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKHNTZW1hcGhvcmUpIHsKKyAgICAgICAgICAgIG1zZ1sxXSA9ICsrdGlkOworICAgICAgICAgICAgU01QTF9TZW5kKHNMaW5rSUQyLCBtc2csIHNpemVvZihtc2cpKTsKKyAgICAgICAgCisgICAgICAgICAgICAvKiBSZXNldCBzZW1hcGhvcmUuIFRoaXMgaXMgbm90IHByb3Blcmx5IHByb3RlY3RlZCBhbmQgdGhlcmUgaXMgYQorICAgICAgICAgICAgICogcmFjZSBoZXJlLiBJbiB0aGVvcnkgd2UgY291bGQgbWlzcyBhIG1lc3NhZ2UuIEdvb2QgZW5vdWdoIGZvcgorICAgICAgICAgICAgICogYSBkZW1vLCB0aG91Z2guCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHNTZW1hcGhvcmUgPSAwOworICAgICAgICB9CisgICAgfQorfQorCisvKgorICogID09PT09PT09IHRvZ2dsZUxFRCA9PT09PT09PQorICovCitzdGF0aWMgdm9pZCB0b2dnbGVMRUQodWludDhfdCB3aGljaCkKK3sKKyAgICBpZiAoMSA9PSB3aGljaCkgIHsKKyAgICAgICAgQlNQX1RPR0dMRV9MRUQxKCk7CisgICAgfQorICAgIGVsc2UgaWYgKDIgPT0gd2hpY2gpIHsKKyAgICAgICAgQlNQX1RPR0dMRV9MRUQyKCk7CisgICAgfQorfQorCisvKgorICogID09PT09PT09IHNSeENhbGxiYWNrID09PT09PT09CisgKiAgaGFuZGxlIHJlY2VpdmVkIG1lc3NhZ2VzCisgKi8KK3N0YXRpYyB1aW50OF90IHNSeENhbGxiYWNrKGxpbmtJRF90IHBvcnQpCit7CisgICAgdWludDhfdCBtc2dbMl0sIGxlbiwgdGlkOworICAgIAorICAgIC8qIGlzIHRoZSBjYWxsYmFjayBmb3IgdGhlIGxpbmsgSUQgd2Ugd2FudCB0byBoYW5kbGU/ICovCisgICAgaWYgKHBvcnQgPT0gc0xpbmtJRDIpIHsKKyAgICAgICAgLyogeWVzLiBnbyBnZXQgdGhlIGZyYW1lLiB3ZSBrbm93IHRoaXMgY2FsbCB3aWxsIHN1Y2NlZWQuICovCisgICAgICAgIGlmICgoU01QTF9TVUNDRVNTID09IFNNUExfUmVjZWl2ZShzTGlua0lEMiwgbXNnLCAmbGVuKSkgJiYgbGVuKSB7CisgICAgICAgICAgICAvKiBDaGVjayB0aGUgYXBwbGljYXRpb24gc2VxdWVuY2UgbnVtYmVyIHRvIGRldGVjdAorICAgICAgICAgICAgICogbGF0ZSBvciBtaXNzaW5nIGZyYW1lcy4uLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB0aWQgPSBtc2dbMV07CisgICAgICAgICAgICBpZiAodGlkKSB7CisgICAgICAgICAgICAgICAgaWYgKHRpZCA+IHNSeFRpZCkgeworICAgICAgICAgICAgICAgICAgICAvKiB3ZSdyZSBnb29kLiB0b2dnbGUgTEVEICovCisgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUxFRChtc2dbMF0pOworICAgICAgICAgICAgICAgICAgICBzUnhUaWQgPSB0aWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLyogd3JhcCBjYXNlLi4uICovCisgICAgICAgICAgICAgICAgaWYgKHNSeFRpZCkgeworICAgICAgICAgICAgICAgICAgICAvKiB3ZSdyZSBnb29kLiB0b2dnbGUgTEVEICovCisgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUxFRChtc2dbMF0pOworICAgICAgICAgICAgICAgICAgICBzUnhUaWQgPSB0aWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBQb3N0IHRvIHRoZSBzZW1hcGhvcmUgdG8gbGV0IGFwcGxpY2F0aW9uIGtub3cgc28gaXQgc2VuZHMKKyAgICAgICAgICAgICAqIHRoZSByZXBseQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBzU2VtYXBob3JlID0gMTsKKworICAgICAgICAgICAgLyogZHJvcCBmcmFtZS4gd2UncmUgZG9uZSB3aXRoIGl0LiAqLworICAgICAgICAgICAgcmV0dXJuICgxKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIGtlZXAgZnJhbWUgZm9yIGxhdGVyIGhhbmRsaW5nICovCisgICAgcmV0dXJuICgwKTsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzL2xpc3RlbjAuY2ZnIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzL2xpc3RlbjAuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhhYWQyZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvbGlzdGVuMC5jZmcKQEAgLTAsMCArMSwzOSBAQAordmFyIFNldHRpbmdzID0geGRjLnVzZU1vZHVsZSgibG9jYWwucmYuU2V0dGluZ3MiKTsKK1NldHRpbmdzLnR5cGUgPSBTZXR0aW5ncy5FTkRfREVWSUNFOworCit2YXIgTWFpbiA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLk1haW4iKTsKK3ZhciBEaWFncyA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkRpYWdzIik7CisKKy8qIHVzZSB0aGUgTG9nZ2VyU3lzIElMb2dnZXIgc2VydmljZSBwcm92aWRlciAqLworLy92YXIgTG9nZ2VyID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuTG9nZ2VyU3lzIik7Cit2YXIgTG9nZ2VyID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5Mb2dnZXJVYXJ0Iik7CisKKy8qIGNyZWF0ZSBhbmQgYmluZCBhIGxvZ2dlciBmb3IgYWxsIG5vbi1tb2R1bGUgY29kZSAqLworTWFpbi5jb21tb24kLmxvZ2dlciA9IExvZ2dlci5jcmVhdGUoKTsKK01haW4uY29tbW9uJC5kaWFnc19FTlRSWSA9IERpYWdzLkFMV0FZU19PTjsKKworLyogbWluaW1pemUgZm9vdHByaW50ICovCitQcm9ncmFtLmFyZ1NpemUgPSAwOworUHJvZ3JhbS5oZWFwID0gMDsKK1Byb2dyYW0uc3RhY2sgPSAweDEwMDsKKwordmFyIEVyciA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkVycm9yIik7CitFcnIucmFpc2VIb29rID0gbnVsbDsKKwordmFyIERlZmF1bHRzID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRGVmYXVsdHMiKTsKK0RlZmF1bHRzLmNvbW1vbiQuZGlhZ3NfQVNTRVJUID0gRGlhZ3MuQUxXQVlTX09GRjsKKy8vRGVmYXVsdHMuY29tbW9uJC5meG50YWIgPSBmYWxzZTsKK0RlZmF1bHRzLmNvbW1vbiQubWVtb3J5UG9saWN5ID0geGRjLm1vZHVsZSgneGRjLnJ1bnRpbWUuVHlwZXMnKS5TVEFUSUNfUE9MSUNZOworRGVmYXVsdHMuY29tbW9uJC5uYW1lZE1vZHVsZSA9IGZhbHNlOworCitNYWluLmNvbW1vbiQuZGlhZ3NfVVNFUjEgPSBEaWFncy5BTFdBWVNfT047CisKK3ZhciBTeXNVYXJ0ID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5TeXNVYXJ0Iik7CisKK3ZhciBTeXN0ZW0gPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5TeXN0ZW0iKTsKK1N5c3RlbS5TdXBwb3J0UHJveHkgPSBTeXNVYXJ0OworU3lzdGVtLm1heEF0ZXhpdEhhbmRsZXJzID0gMDsKKwordmFyIFRleHQgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5UZXh0Iik7CitUZXh0LmlzTG9hZGVkID0gZmFsc2U7CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy9wYWNrYWdlLmJsZCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2YxOGYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzL3BhY2thZ2UuYmxkCkBAIC0wLDAgKzEsNDkgQEAKK1BrZy51c2VzID0gWyJ0aS9hcHBzL21zcDQzMCJdOworCisvKiBnZXQgU2ltcGxpY2lUSSBidWlsZCBvcHRpb25zIHN1cHBvcnQgKi8KK0J1aWxkT3B0cyA9IHhkYy5tb2R1bGUoJ2xvY2FsLnJmLkJ1aWxkT3B0cycpOworCisvKiBTaW1wbGljaVRJIGlzIGluc3RhbGxlZCByZWxhdGl2ZSB0byBsb2NhbC5ydW50aW1lLnJmJ3MgcmVwb3NpdG9yeSAqLworQnVpbGRPcHRzLnJvb3REaXIgPSBCdWlsZE9wdHMuJHBhY2thZ2UucGFja2FnZVJlcG9zaXRvcnkKKyAgICArICIuLi9TaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHMiOworCisvKiB0ZWxsIG1ha2UgaG93IHRvIGZpbmQgdGhlIFNpbXBsaWNpVEkgc291cmNlcyAqLworUGtnLm1ha2VQcm9sb2d1ZSA9IEJ1aWxkT3B0cy5nZXRNYWtlUHJvbG9ndWUoKTsKKworLyogc2VsZWN0IHJhZGlvIGFuZCBtY3UgZGV2aWNlICovCitCdWlsZE9wdHMubWN1ID0gQnVpbGRPcHRzLk1TUDQzMEYyMjc0OworQnVpbGRPcHRzLnJhZGlvID0gQnVpbGRPcHRzLkNDMjUwMDsKKworLyogY3JlYXRlIGJ1aWxkIG9wdGlvbnMgZm9yIGFuIEVuZCBEZXZpY2UgKi8KK3ZhciBlZCA9IEJ1aWxkT3B0cy5jcmVhdGUoeworICAgIG1heEhvcENvdW50OiAzLAorICAgIG1heEhvcEZyb21BUDogMSwKKyAgICBtYXhBcHBQYXlsb2FkOiAxMCwKKyAgICBsaW5rVG9rZW46IDB4MDEwMjAzMDQsCisgICAgam9pblRva2VuOiAweDA1MDYwNzA4LAorCisgICAgZGV2aWNlVHlwZTogQnVpbGRPcHRzLkVORF9ERVZJQ0UsCisgICAgbnVtQ29ubmVjdGlvbnM6IDIsCisgICAgaW5GcmFtZVFTaXplOiAyLAorICAgIG91dEZyYW1lUVNpemU6IDIsCisgICAgZGV2aWNlQWRkcmVzczogInsweDc3LCAweDU2LCAweDM0LCAweDEyfSIsCisgICAgcnhNb2RlOiBCdWlsZE9wdHMuUlhfQUxXQVlTCit9KTsKKworLyogYnVpbGQgRW5kIERldmljZSBsaWJyYXJ5IGFuZCB0d28gcGVlciBFbmQgRGV2aWNlIGFwcHMgKi8KK2ZvciAodmFyIGkgPSAwOyBpIDwgQnVpbGQudGFyZ2V0cy5sZW5ndGg7IGkrKykgeworICAgIHZhciB0YXJnID0gQnVpbGQudGFyZ2V0c1tpXTsKKworICAgIGlmICh0YXJnLmlzYS5tYXRjaCgvNDMwLykpIHsKKyAgICAgICAgdmFyIGxpYiA9IFBrZy5hZGRMaWJyYXJ5KCJsaWIvZWQiLCB0YXJnLCB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNzOiBlZC5nZXRJbmNzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZzOiBlZC5nZXREZWZzKCl9KTsKKyAgICAgICAgbGliLmFkZE9iamVjdHMoQnVpbGRPcHRzLlNSQ1MpOworCisgICAgICAgIHZhciB0YWxrID0gUGtnLmFkZEV4ZWN1dGFibGUoInRhbGsiLCB0YXJnLCB0YXJnLnBsYXRmb3JtKTsKKyAgICAgICAgdGFsay5hZGRPYmplY3RzKFsidGFsay5jIiwgImlzci5jIl0pOworCisgICAgICAgIHZhciBsaXN0ZW4gPSBQa2cuYWRkRXhlY3V0YWJsZSgibGlzdGVuIiwgdGFyZywgdGFyZy5wbGF0Zm9ybSk7CisgICAgICAgIGxpc3Rlbi5hZGRPYmplY3RzKFsibGlzdGVuLmMiLCAiaXNyLmMiXSk7CisgICAgfQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy9wYWNrYWdlLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy9wYWNrYWdlLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZmVmZDY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzL3BhY2thZ2UueGRjCkBAIC0wLDAgKzEsNyBAQAorLyohCisgKiAgPT09PT09PT0gcmYudGVzdHMgPT09PT09PT0KKyAqICBTaW1wbGUgdGVzdHMgb2YgbG9jYWwucmYgcGFja2FnZQorICovCitwYWNrYWdlIGxvY2FsLnJmLnRlc3RzCit7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvdGFsay5jIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzL3RhbGsuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODc3N2E2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzL3RhbGsuYwpAQCAtMCwwICsxLDE4MCBAQAorLyoKKyAqICA9PT09PT09PSB0YWxrLmMgPT09PT09PT0KKyAqLworI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c3RlbS5oPgorI2luY2x1ZGUgPGxvY2FsL3JmL1JhZGlvLmg+CisjaW5jbHVkZSA8bG9jYWwvcmYvQnNwLmg+CisKKyNkZWZpbmUgTUlOUEVSSU9EICAgMQorI2RlZmluZSBNQVhQRVJJT0QgICAxMDAwCisKK3VpbnQxNl90ICAgICAgICAgICAgc01zZ1BlcmlvZCA9IDEwMDsKK3N0YXRpYyB1aW50OF90ICAgICAgc1R4VGlkID0gMCwgc1J4VGlkID0gMDsKK3N0YXRpYyBSYWRpb19MaW5rSWQgc0xpbmtJRDE7CisKK3N0YXRpYyB2b2lkICAgICBsaW5rVG8odm9pZCk7CitzdGF0aWMgdWludDhfdCAgc1J4Q2FsbGJhY2soUmFkaW9fTGlua0lkKTsgIC8qIFVBUlQgUnggZnJhbWUgaGFuZGxlci4gKi8KKworLyoKKyAqICA9PT09PT09PSBtYWluID09PT09PT09CisgKi8KK3ZvaWQgbWFpbih2b2lkKQoreworICAgIFJhZGlvX0FkZHIgbEFkZHIgPSB7MHg3NywgMHg1NiwgMHgzNCwgMHgxMn07CisKKyAgICAvKiBUaGlzIGNhbGwgd2lsbCBmYWlsIGJlY2F1c2UgdGhlIGpvaW4gd2lsbCBmYWlsIHNpbmNlIHRoZXJlIGlzIG5vIEFjY2VzcworICAgICAqIFBvaW50IGluIHRoaXMgc2NlbmFyaW8uIEJ1dCB3ZSBkb24ndCBjYXJlIC0tIGp1c3QgdXNlIHRoZSBkZWZhdWx0IGxpbmsKKyAgICAgKiB0b2tlbiBsYXRlci4KKyAgICAgKgorICAgICAqIFdlIHN1cHBseSBhIGNhbGxiYWNrIHBvaW50ZXIgdG8gaGFuZGxlIHRoZSBtZXNzYWdlIHJldHVybmVkIGJ5IHRoZQorICAgICAqIHBlZXIuIAorICAgICAqLworICAgIFJhZGlvX3N0YXJ0KHNSeENhbGxiYWNrLCAmbEFkZHIpOworICAgIAorICAgIC8qIHR1cm4gb24gTEVEcy4gKi8KKyAgICBpZiAoIUJzcF9sZWQoMikpIHsKKyAgICAgICAgQnNwX3RvZ2dsZUxlZCgyKTsKKyAgICB9CisgICAgaWYgKCFCc3BfbGVkKDEpKSB7CisgICAgICAgIEJzcF90b2dnbGVMZWQoMSk7CisgICAgfQorICAgIAorICAgIC8qIHdhaXQgZm9yIGEgYnV0dG9uIHByZXNzLi4uICovCisgICAgU3lzdGVtX3ByaW50Zigid2FpdGluZyBmb3IgYW55IGJ1dHRvbiAuLi5cbiIpOworICAgIGZvciAoOzspIHsKKyAgICAgICAgaWYgKEJzcF9idXR0b24oMSkgfHwgQnNwX2J1dHRvbigyKSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogbmV2ZXIgY29taW5nIGJhY2suLi4gKi8KKyAgICBsaW5rVG8oKTsKKyAgICAKKyAgICAvKiBidXQgaW4gY2FzZSB3ZSBkby4uLiAqLworICAgIFN5c3RlbV9wcmludGYoIm9vcHMhXG4iKTsKKyAgICBTeXN0ZW1fZXhpdCgxKTsKK30KKworLyoKKyAqICA9PT09PT09PSBsaW5rVG8gPT09PT09PT0KKyAqLworc3RhdGljIHZvaWQgbGlua1RvKCkKK3sKKyAgICB1aW50OF90ICBtc2dbMl0sIGRlbGF5ID0gMDsKKyAgICAKKyAgICAvKiB3YWl0IGZvciBwZWVyIHRvIGxpbmsgdG8gdXMgKi8KKyAgICBTeXN0ZW1fcHJpbnRmKCJsaW5raW5nIC4uLlxuIik7CisgICAgd2hpbGUgKFJhZGlvX1NVQ0NFU1MgIT0gUmFkaW9fbGluaygmc0xpbmtJRDEpKSB7CisgICAgICAgIC8qIGJsaW5rIExFRHMgdW50aWwgd2UgbGluayBzdWNjZXNzZnVsbHkgKi8KKyAgICAgICAgQnNwX3RvZ2dsZUxlZCgxKTsKKyAgICAgICAgQnNwX3RvZ2dsZUxlZCgyKTsKKyAgICAgICAgQnNwX2RlbGF5KDEwMDApOworICAgIH0KKyAgICAKKyAgICAvKiB3ZSdyZSBsaW5rZWQuIHR1cm4gb2ZmIHJlZCBMRUQuIHJlY2VpdmVkIG1lc3NhZ2VzIHdpbGwgdG9nZ2xlIHRoZQorICAgICAqIGdyZWVuIExFRC4KKyAgICAgKi8KKyAgICBTeXN0ZW1fcHJpbnRmKCJsaW5rZWQgdG8gJWQuXG4iLCBzTGlua0lEMSk7CisgICAgaWYgKEJzcF9sZWQoMikpIHsKKyAgICAgICAgQnNwX3RvZ2dsZUxlZCgyKTsKKyAgICB9CisgICAgCisgICAgLyogdHVybiBvbiBSWC4gZGVmYXVsdCBpcyBSWCBvZmYuICovCisgICAgUmFkaW9fc2V0UnhPbigpOworICAgIAorICAgIC8qIHB1dCBMRUQgdG8gdG9nZ2xlIGluIHRoZSBtZXNzYWdlICovCisgICAgbXNnWzBdID0gMjsgIC8qIHRvZ2dsZSByZWQgKi8KKyAgICB3aGlsZSAoMSkgeworICAgICAgICBCc3BfZGVsYXkoc01zZ1BlcmlvZCArIChkZWxheSAqIHNNc2dQZXJpb2QpKTsKKyAgICAgICAgCisgICAgICAgIC8qIGRlbGF5IGxvbmdlciBhbmQgbG9uZ2VyIC0tIHRoZW4gc3RhcnQgb3ZlciAqLworICAgICAgICBkZWxheSA9IChkZWxheSArIDEpICYgMHgwNzsKKyAgICAgICAgCisgICAgICAgIC8qIHB1dCB0aGUgc2VxdWVuY2UgSUQgaW4gdGhlIG1lc3NhZ2UgKi8KKyAgICAgICAgbXNnWzFdID0gKytzVHhUaWQ7CisgICAgICAgIFJhZGlvX3NlbmQoc0xpbmtJRDEsIG1zZywgc2l6ZW9mKG1zZykpOworICAgIH0KK30KKworLyoKKyAqICA9PT09PT09PSBzUnhDYWxsYmFjayA9PT09PT09PQorICogIGhhbmRsZSByZWNlaXZlZCBmcmFtZXMuCisgKi8KK3N0YXRpYyB1aW50OF90IHNSeENhbGxiYWNrKFJhZGlvX0xpbmtJZCBwb3J0KQoreworICAgIHVpbnQ4X3QgbXNnWzJdLCBsZW4sIHRpZCwgZGVsdGE7CisgICAgCisgICAgLyogaXMgdGhlIGNhbGxiYWNrIGZvciB0aGUgbGluayBJRCB3ZSB3YW50IHRvIGhhbmRsZT8gKi8KKyAgICBpZiAocG9ydCA9PSBzTGlua0lEMSkgeworICAgICAgICAvKiB5ZXMuIGdvIGdldCB0aGUgZnJhbWUuIHdlIGtub3cgdGhpcyBjYWxsIHdpbGwgc3VjY2VlZC4gKi8KKyAgICAgICAgaWYgKChSYWRpb19TVUNDRVNTID09IFJhZGlvX3JlY2VpdmUoc0xpbmtJRDEsIG1zZywgJmxlbikpICYmIGxlbikgeworICAgICAgICAgICAgLyogQ2hlY2sgdGhlIGFwcGxpY2F0aW9uIHNlcXVlbmNlIG51bWJlciB0byBkZXRlY3QKKyAgICAgICAgICAgICAqIGxhdGUgb3IgbWlzc2luZyBmcmFtZXMuLi4gCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHRpZCA9IG1zZ1sxXTsKKyAgICAgICAgICAgIGRlbHRhID0gdGlkIC0gc1J4VGlkOworICAgICAgICAgICAgaWYgKGRlbHRhICE9IDEpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW1fcHJpbnRmKAorICAgICAgICAgICAgICAgICAgICAiZnJhbWUgZXJyb3I6IHByZXYgPSAweCV4LCByZWNlaXZlZCA9IDB4JXgsIHNlbnQgPSAweCV4XG4iLAorICAgICAgICAgICAgICAgICAgICBzUnhUaWQsIHRpZCwgc1R4VGlkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0aWQpIHsKKyAgICAgICAgICAgICAgICBpZiAodGlkID4gc1J4VGlkKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHdlJ3JlIGdvb2QuIHRvZ2dsZSB0aGUgTEVEIHNwZWNpZmllZCBpbiB0aGUgbWVzc2FnZSAqLworICAgICAgICAgICAgICAgICAgICBCc3BfdG9nZ2xlTGVkKG1zZ1swXSk7CisgICAgICAgICAgICAgICAgICAgIHNSeFRpZCA9IHRpZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiB0aGUgd3JhcCBjYXNlLi4uICovCisgICAgICAgICAgICAgICAgaWYgKHNSeFRpZCkgeworICAgICAgICAgICAgICAgICAgICAvKiB3ZSdyZSBnb29kLiB0b2dnbGUgTEVEIGluIHRoZSBtZXNzYWdlICovCisgICAgICAgICAgICAgICAgICAgIEJzcF90b2dnbGVMZWQobXNnWzBdKTsKKyAgICAgICAgICAgICAgICAgICAgc1J4VGlkID0gdGlkOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogZHJvcCBmcmFtZS4gd2UncmUgZG9uZSB3aXRoIGl0LiAqLworICAgICAgICAgICAgcmV0dXJuICgxKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFN5c3RlbV9wcmludGYoInJlY2VpdmUgZnJvbSAlZCAobGVuID0gJWQpIGZhaWxlZC5cbiIsCisgICAgICAgICAgICAgICAgc0xpbmtJRDEsIGxlbik7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyoga2VlcCBmcmFtZSBmb3IgbGF0ZXIgaGFuZGxpbmcuICovCisgICAgcmV0dXJuICgwKTsKK30KKworLyoKKyAqICA9PT09PT09PSB1YXJ0UnhDYWxsYmFjayA9PT09PT09PQorICogIFN5c1VhcnQgY2FsbGFjayBmdW5jdGlvbiBzcGVjaWZpZWQgaW4gY29uZmlnIGZpbGUKKyAqLwordm9pZCB1YXJ0UnhDYWxsYmFjayhjaGFyICpidWYsIGludCBsZW4pCit7CisgICAgc3dpdGNoIChidWZbMF0pIHsKKyAgICAgICAgY2FzZSAnLSc6IHsKKyAgICAgICAgICAgIHNNc2dQZXJpb2QgLT0gMTA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlICcrJzogeworICAgICAgICAgICAgc01zZ1BlcmlvZCArPSAxMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgJzAnOiB7CisgICAgICAgICAgICBzTXNnUGVyaW9kID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHNNc2dQZXJpb2QgPCBNSU5QRVJJT0QpIHsKKyAgICAgICAgc01zZ1BlcmlvZCA9IE1JTlBFUklPRDsKKyAgICB9CisgICAgaWYgKHNNc2dQZXJpb2QgPiBNQVhQRVJJT0QpIHsKKyAgICAgICAgc01zZ1BlcmlvZCA9IE1BWFBFUklPRDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvdGFsay5jZmcgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvdGFsay5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E0N2Q0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy90YWxrLmNmZwpAQCAtMCwwICsxLDQyIEBACit2YXIgUmFkaW8gPSB4ZGMudXNlTW9kdWxlKCJsb2NhbC5yZi5SYWRpbyIpOwordmFyIEJzcCA9IHhkYy51c2VNb2R1bGUoImxvY2FsLnJmLkJzcCIpOwordmFyIFNldHRpbmdzID0geGRjLnVzZU1vZHVsZSgibG9jYWwucmYuU2V0dGluZ3MiKTsKK1NldHRpbmdzLnR5cGUgPSBTZXR0aW5ncy5FTkRfREVWSUNFOworCit2YXIgTWFpbiA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLk1haW4iKTsKK3ZhciBEaWFncyA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkRpYWdzIik7CisKKy8qIHVzZSB0aGUgTG9nZ2VyU3lzIElMb2dnZXIgc2VydmljZSBwcm92aWRlciAqLworLy92YXIgTG9nZ2VyID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuTG9nZ2VyU3lzIik7Cit2YXIgTG9nZ2VyID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5Mb2dnZXJVYXJ0Iik7CisKKy8qIGNyZWF0ZSBhbmQgYmluZCBhIGxvZ2dlciBmb3IgYWxsIG5vbi1tb2R1bGUgY29kZSAqLworTWFpbi5jb21tb24kLmxvZ2dlciA9IExvZ2dlci5jcmVhdGUoKTsKK01haW4uY29tbW9uJC5kaWFnc19FTlRSWSA9IERpYWdzLkFMV0FZU19PTjsKKworLyogbWluaW1pemUgZm9vdHByaW50ICovCitQcm9ncmFtLmFyZ1NpemUgPSAwOworUHJvZ3JhbS5oZWFwID0gMDsKK1Byb2dyYW0uc3RhY2sgPSAweDEwMDsKKwordmFyIEVyciA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkVycm9yIik7CitFcnIucmFpc2VIb29rID0gbnVsbDsKKwordmFyIERlZmF1bHRzID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuRGVmYXVsdHMiKTsKK0RlZmF1bHRzLmNvbW1vbiQuZGlhZ3NfQVNTRVJUID0gRGlhZ3MuQUxXQVlTX09GRjsKKy8vRGVmYXVsdHMuY29tbW9uJC5meG50YWIgPSBmYWxzZTsKK0RlZmF1bHRzLmNvbW1vbiQubWVtb3J5UG9saWN5ID0geGRjLm1vZHVsZSgneGRjLnJ1bnRpbWUuVHlwZXMnKS5TVEFUSUNfUE9MSUNZOworRGVmYXVsdHMuY29tbW9uJC5uYW1lZE1vZHVsZSA9IGZhbHNlOworCitNYWluLmNvbW1vbiQuZGlhZ3NfVVNFUjEgPSBEaWFncy5BTFdBWVNfT047CisKK3ZhciBTeXNVYXJ0ID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5TeXNVYXJ0Iik7CitTeXNVYXJ0LmdldExpbmVGeG4gPSAiJnVhcnRSeENhbGxiYWNrIjsKKwordmFyIFN5c3RlbSA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLlN5c3RlbSIpOworU3lzdGVtLlN1cHBvcnRQcm94eSA9IFN5c1VhcnQ7CitTeXN0ZW0ubWF4QXRleGl0SGFuZGxlcnMgPSAwOworCit2YXIgVGV4dCA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLlRleHQiKTsKK1RleHQuaXNMb2FkZWQgPSBmYWxzZTsKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzL3RhbGswLmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvdGFsazAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYTM1ZTEwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3JmL3Rlc3RzL3RhbGswLmMKQEAgLTAsMCArMSwyMDYgQEAKKy8qCisgKiAgPT09PT09PT0gdGFsay5jID09PT09PT09CisgKi8KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TeXN0ZW0uaD4KKworI2luY2x1ZGUgImJzcC5oIgorI2luY2x1ZGUgIm1yZmkuaCIKKyNpbmNsdWRlICJud2tfdHlwZXMuaCIKKyNpbmNsdWRlICJud2tfYXBpLmgiCisjaW5jbHVkZSAiYnNwX2xlZHMuaCIKKyNpbmNsdWRlICJic3BfYnV0dG9ucy5oIgorCitzdGF0aWMgdm9pZCBsaW5rVG8odm9pZCk7CitzdGF0aWMgdm9pZCB0b2dnbGVMRUQodWludDhfdCk7CisKK3N0YXRpYyB1aW50OF90ICBzVHhUaWQgPSAwLCBzUnhUaWQgPSAwOworc3RhdGljIGxpbmtJRF90IHNMaW5rSUQxOworCisvKiBhcHBsaWNhdGlvbiBSeCBmcmFtZSBoYW5kbGVyLiAqLworc3RhdGljIHVpbnQ4X3Qgc1J4Q2FsbGJhY2sobGlua0lEX3QpOworCisjZGVmaW5lIE1JTlBFUklPRCAgIDEKKyNkZWZpbmUgTUFYUEVSSU9EICAgMTAwMAorCit1aW50MTZfdCBtc2dQZXJpb2QgPSAxMDA7CisKKy8qCisgKiAgPT09PT09PT0gbWFpbiA9PT09PT09PQorICovCit2b2lkIG1haW4odm9pZCkKK3sKKyAgICBhZGRyX3QgbEFkZHIgPSB7MHg3NywgMHg1NiwgMHgzNCwgMHgxMn07CisgICAgCisgICAgU3lzdGVtX3ByaW50ZigiYmVmb3JlIEJTUF9pbml0IC4uLlxuIik7CisgICAgQlNQX0luaXQoKTsKKyAgICBTeXN0ZW1fcHJpbnRmKCJhZnRlciBCU1BfaW5pdC5cbiIpOworICAgIAorICAgIFNNUExfSW9jdGwoSU9DVExfT0JKX0FERFIsIElPQ1RMX0FDVF9TRVQsICZsQWRkcik7CisgICAgCisgICAgLyogVGhpcyBjYWxsIHdpbGwgZmFpbCBiZWNhdXNlIHRoZSBqb2luIHdpbGwgZmFpbCBzaW5jZSB0aGVyZSBpcyBubyBBY2Nlc3MKKyAgICAgKiBQb2ludCBpbiB0aGlzIHNjZW5hcmlvLiBCdXQgd2UgZG9uJ3QgY2FyZSAtLSBqdXN0IHVzZSB0aGUgZGVmYXVsdCBsaW5rCisgICAgICogdG9rZW4gbGF0ZXIuCisgICAgICoKKyAgICAgKiBXZSBzdXBwbHkgYSBjYWxsYmFjayBwb2ludGVyIHRvIGhhbmRsZSB0aGUgbWVzc2FnZSByZXR1cm5lZCBieSB0aGUgcGVlci4gCisgICAgICovCisgICAgU01QTF9Jbml0KHNSeENhbGxiYWNrKTsKKyAgICAKKyAgICAvKiB0dXJuIG9uIExFRHMuICovCisgICAgaWYgKCFCU1BfTEVEMl9JU19PTigpKSB7CisgICAgICAgIHRvZ2dsZUxFRCgyKTsKKyAgICB9CisgICAgaWYgKCFCU1BfTEVEMV9JU19PTigpKSB7CisgICAgICAgIHRvZ2dsZUxFRCgxKTsKKyAgICB9CisgICAgCisgICAgLyogd2FpdCBmb3IgYSBidXR0b24gcHJlc3MuLi4gKi8KKyAgICBTeXN0ZW1fcHJpbnRmKCJ3YWl0aW5nIGZvciBhIGJ1dHRvbiAuLi5cbiIpOworICAgIGZvciAoOzspIHsKKyAgICAgICAgaWYgKEJTUF9CVVRUT04xKCkgfHwgQlNQX0JVVFRPTjIoKSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgLyogbmV2ZXIgY29taW5nIGJhY2suLi4gKi8KKyAgICBsaW5rVG8oKTsKKyAgICAKKyAgICAvKiBidXQgaW4gY2FzZSB3ZSBkby4uLiAqLworICAgIFN5c3RlbV9wcmludGYoIm9vcHMhXG4iKTsKKyAgICBTeXN0ZW1fZXhpdCgxKTsKK30KKworLyoKKyAqICA9PT09PT09PSBsaW5rVG8gPT09PT09PT0KKyAqLworc3RhdGljIHZvaWQgbGlua1RvKCkKK3sKKyAgICB1aW50OF90ICBtc2dbMl0sIGRlbGF5ID0gMDsKKyAgICAKKyAgICBTeXN0ZW1fcHJpbnRmKCJsaW5raW5nIC4uLlxuIik7CisgICAgd2hpbGUgKFNNUExfU1VDQ0VTUyAhPSBTTVBMX0xpbmsoJnNMaW5rSUQxKSkgeworICAgICAgICAvKiBibGluayBMRURzIHVudGlsIHdlIGxpbmsgc3VjY2Vzc2Z1bGx5ICovCisgICAgICAgIHRvZ2dsZUxFRCgxKTsKKyAgICAgICAgdG9nZ2xlTEVEKDIpOworICAgICAgICBOV0tfREVMQVkoMTAwMCk7CisgICAgfQorICAgIAorICAgIC8qIHdlJ3JlIGxpbmtlZC4gdHVybiBvZmYgcmVkIExFRC4gcmVjZWl2ZWQgbWVzc2FnZXMgd2lsbCB0b2dnbGUgdGhlCisgICAgICogZ3JlZW4gTEVELgorICAgICAqLworICAgIFN5c3RlbV9wcmludGYoImxpbmtlZCB0byAlZC5cbiIsIHNMaW5rSUQxKTsKKyAgICBpZiAoQlNQX0xFRDJfSVNfT04oKSkgeworICAgICAgICB0b2dnbGVMRUQoMik7CisgICAgfQorICAgIAorICAgIC8qIHR1cm4gb24gUlguIGRlZmF1bHQgaXMgUlggb2ZmLiAqLworICAgIFNNUExfSW9jdGwoSU9DVExfT0JKX1JBRElPLCBJT0NUTF9BQ1RfUkFESU9fUlhPTiwgMCk7CisgICAgCisgICAgLyogcHV0IExFRCB0byB0b2dnbGUgaW4gdGhlIG1lc3NhZ2UgKi8KKyAgICBtc2dbMF0gPSAyOyAgLyogdG9nZ2xlIHJlZCAqLworICAgIHdoaWxlICgxKSB7CisgICAgICAgIE5XS19ERUxBWShtc2dQZXJpb2QgKyAoZGVsYXkgKiBtc2dQZXJpb2QpKTsKKyAgICAgICAgCisgICAgICAgIC8qIGRlbGF5IGxvbmdlciBhbmQgbG9uZ2VyIC0tIHRoZW4gc3RhcnQgb3ZlciAqLworICAgICAgICBkZWxheSA9IChkZWxheSArIDEpICYgMHgwNzsKKyAgICAgICAgCisgICAgICAgIC8qIHB1dCB0aGUgc2VxdWVuY2UgSUQgaW4gdGhlIG1lc3NhZ2UgKi8KKyAgICAgICAgbXNnWzFdID0gKytzVHhUaWQ7CisgICAgICAgIFNNUExfU2VuZChzTGlua0lEMSwgbXNnLCBzaXplb2YobXNnKSk7CisgICAgfQorfQorCisKKy8qCisgKiAgPT09PT09PT0gdG9nZ2xlTEVEID09PT09PT09CisgKi8KK3N0YXRpYyB2b2lkIHRvZ2dsZUxFRCh1aW50OF90IHdoaWNoKQoreworICAgIGlmICgxID09IHdoaWNoKSB7CisgICAgICAgIEJTUF9UT0dHTEVfTEVEMSgpOworICAgIH0KKyAgICBlbHNlIGlmICgyID09IHdoaWNoKSB7CisgICAgICAgIEJTUF9UT0dHTEVfTEVEMigpOworICAgIH0KK30KKworLyoKKyAqICA9PT09PT09PSBzUnhDYWxsYmFjayA9PT09PT09PQorICogIGhhbmRsZSByZWNlaXZlZCBmcmFtZXMuCisgKi8KK3N0YXRpYyB1aW50OF90IHNSeENhbGxiYWNrKGxpbmtJRF90IHBvcnQpCit7CisgICAgdWludDhfdCBtc2dbMl0sIGxlbiwgdGlkLCBkZWx0YTsKKyAgICAKKyAgICAvKiBpcyB0aGUgY2FsbGJhY2sgZm9yIHRoZSBsaW5rIElEIHdlIHdhbnQgdG8gaGFuZGxlPyAqLworICAgIGlmIChwb3J0ID09IHNMaW5rSUQxKSB7CisgICAgICAgIC8qIHllcy4gZ28gZ2V0IHRoZSBmcmFtZS4gd2Uga25vdyB0aGlzIGNhbGwgd2lsbCBzdWNjZWVkLiAqLworICAgICAgICBpZiAoKFNNUExfU1VDQ0VTUyA9PSBTTVBMX1JlY2VpdmUoc0xpbmtJRDEsIG1zZywgJmxlbikpICYmIGxlbikgeworICAgICAgICAgICAgLyogQ2hlY2sgdGhlIGFwcGxpY2F0aW9uIHNlcXVlbmNlIG51bWJlciB0byBkZXRlY3QKKyAgICAgICAgICAgICAqIGxhdGUgb3IgbWlzc2luZyBmcmFtZXMuLi4gCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHRpZCA9IG1zZ1sxXTsKKyAgICAgICAgICAgIGRlbHRhID0gdGlkIC0gc1J4VGlkOworICAgICAgICAgICAgaWYgKGRlbHRhICE9IDEpIHsKKyAgICAgICAgICAgICAgICBTeXN0ZW1fcHJpbnRmKAorICAgICAgICAgICAgICAgICAgICAiZnJhbWUgZXJyb3I6IHByZXYgPSAweCV4LCByZWNlaXZlZCA9IDB4JXgsIHNlbnQgPSAweCV4XG4iLAorICAgICAgICAgICAgICAgICAgICBzUnhUaWQsIHRpZCwgc1R4VGlkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0aWQpIHsKKyAgICAgICAgICAgICAgICBpZiAodGlkID4gc1J4VGlkKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHdlJ3JlIGdvb2QuIHRvZ2dsZSBMRUQgaW4gdGhlIG1lc3NhZ2UgKi8KKyAgICAgICAgICAgICAgICAgICAgdG9nZ2xlTEVEKCptc2cpOworICAgICAgICAgICAgICAgICAgICBzUnhUaWQgPSB0aWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLyogdGhlIHdyYXAgY2FzZS4uLiAqLworICAgICAgICAgICAgICAgIGlmIChzUnhUaWQpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogd2UncmUgZ29vZC4gdG9nZ2xlIExFRCBpbiB0aGUgbWVzc2FnZSAqLworICAgICAgICAgICAgICAgICAgICB0b2dnbGVMRUQoKm1zZyk7CisgICAgICAgICAgICAgICAgICAgIHNSeFRpZCA9IHRpZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIGRyb3AgZnJhbWUuIHdlJ3JlIGRvbmUgd2l0aCBpdC4gKi8KKyAgICAgICAgICAgIHJldHVybiAoMSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBTeXN0ZW1fcHJpbnRmKCJyZWNlaXZlIGZyb20gJWQgKGxlbiA9ICVkKSBmYWlsZWQuXG4iLAorICAgICAgICAgICAgICAgIHNMaW5rSUQxLCBsZW4pOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8qIGtlZXAgZnJhbWUgZm9yIGxhdGVyIGhhbmRsaW5nLiAqLworICAgIHJldHVybiAoMCk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gdWFydFJ4Q2FsbGJhY2sgPT09PT09PT0KKyAqLwordm9pZCB1YXJ0UnhDYWxsYmFjayhjaGFyICpidWYpCit7CisgICAgc3dpdGNoIChidWZbMF0pIHsKKyAgICAgICAgY2FzZSAnLSc6IHsKKyAgICAgICAgICAgIG1zZ1BlcmlvZCAtPSAxMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGNhc2UgJysnOiB7CisgICAgICAgICAgICBtc2dQZXJpb2QgKz0gMTA7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlICcwJzogeworICAgICAgICAgICAgbXNnUGVyaW9kID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG1zZ1BlcmlvZCA8IE1JTlBFUklPRCkgeworICAgICAgICBtc2dQZXJpb2QgPSBNSU5QRVJJT0Q7CisgICAgfQorICAgIGlmIChtc2dQZXJpb2QgPiBNQVhQRVJJT0QpIHsKKyAgICAgICAgbXNnUGVyaW9kID0gTUFYUEVSSU9EOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9yZi90ZXN0cy90YWxrMC5jZmcgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvdGFsazAuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxYmM4ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcmYvdGVzdHMvdGFsazAuY2ZnCkBAIC0wLDAgKzEsNDAgQEAKK3ZhciBTZXR0aW5ncyA9IHhkYy51c2VNb2R1bGUoImxvY2FsLnJmLlNldHRpbmdzIik7CitTZXR0aW5ncy50eXBlID0gU2V0dGluZ3MuRU5EX0RFVklDRTsKKwordmFyIE1haW4gPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5NYWluIik7Cit2YXIgRGlhZ3MgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5EaWFncyIpOworCisvKiB1c2UgdGhlIExvZ2dlclN5cyBJTG9nZ2VyIHNlcnZpY2UgcHJvdmlkZXIgKi8KKy8vdmFyIExvZ2dlciA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkxvZ2dlclN5cyIpOwordmFyIExvZ2dlciA9IHhkYy51c2VNb2R1bGUoImxvY2FsLnJ1bnRpbWUuTG9nZ2VyVWFydCIpOworCisvKiBjcmVhdGUgYW5kIGJpbmQgYSBsb2dnZXIgZm9yIGFsbCBub24tbW9kdWxlIGNvZGUgKi8KK01haW4uY29tbW9uJC5sb2dnZXIgPSBMb2dnZXIuY3JlYXRlKCk7CitNYWluLmNvbW1vbiQuZGlhZ3NfRU5UUlkgPSBEaWFncy5BTFdBWVNfT047CisKKy8qIG1pbmltaXplIGZvb3RwcmludCAqLworUHJvZ3JhbS5hcmdTaXplID0gMDsKK1Byb2dyYW0uaGVhcCA9IDA7CitQcm9ncmFtLnN0YWNrID0gMHgxMDA7CisKK3ZhciBFcnIgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5FcnJvciIpOworRXJyLnJhaXNlSG9vayA9IG51bGw7CisKK3ZhciBEZWZhdWx0cyA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkRlZmF1bHRzIik7CitEZWZhdWx0cy5jb21tb24kLmRpYWdzX0FTU0VSVCA9IERpYWdzLkFMV0FZU19PRkY7CisvL0RlZmF1bHRzLmNvbW1vbiQuZnhudGFiID0gZmFsc2U7CitEZWZhdWx0cy5jb21tb24kLm1lbW9yeVBvbGljeSA9IHhkYy5tb2R1bGUoJ3hkYy5ydW50aW1lLlR5cGVzJykuU1RBVElDX1BPTElDWTsKK0RlZmF1bHRzLmNvbW1vbiQubmFtZWRNb2R1bGUgPSBmYWxzZTsKKworTWFpbi5jb21tb24kLmRpYWdzX1VTRVIxID0gRGlhZ3MuQUxXQVlTX09OOworCit2YXIgU3lzVWFydCA9IHhkYy51c2VNb2R1bGUoImxvY2FsLnJ1bnRpbWUuU3lzVWFydCIpOworU3lzVWFydC5pbnB1dEZ4biA9ICImdWFydFJ4Q2FsbGJhY2siOworCit2YXIgU3lzdGVtID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuU3lzdGVtIik7CitTeXN0ZW0uU3VwcG9ydFByb3h5ID0gU3lzVWFydDsKK1N5c3RlbS5tYXhBdGV4aXRIYW5kbGVycyA9IDA7CisKK3ZhciBUZXh0ID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuVGV4dCIpOworVGV4dC5pc0xvYWRlZCA9IGZhbHNlOworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS8uY2R0cHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lLy5jZHRwcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExYjI4NDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS8uY2R0cHJvamVjdApAQCAtMCwwICsxLDI2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZWNsaXBzZS1jZHQgdmVyc2lvbj0iMi4wIj8+DQorDQorPGNkdHByb2plY3QgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZSI+DQorPGV4dGVuc2lvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJpbmFyeXBhcnNlci5Db2ZmUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuQmluYXJ5UGFyc2VyIi8+DQorPGRhdGE+DQorPGl0ZW0gaWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9pdGVtPg0KKzxpdGVtIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L2l0ZW0+DQorPC9kYXRhPg0KKzwvY2R0cHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS8uY3Byb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS8uY3Byb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGI4YjI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lLy5jcHJvamVjdApAQCAtMCwwICsxLDMzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8P2ZpbGVWZXJzaW9uIDQuMC4wPz4NCisNCis8Y3Byb2plY3Q+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnNldHRpbmdzIj4NCis8Y2NvbmZpZ3VyYXRpb24gaWQ9ImNvbnZlcnRlZC5jb25maWcuMTgyOTkwNTg1NiI+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgYnVpbGRTeXN0ZW1JZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZGVmYXVsdENvbmZpZ0RhdGFQcm92aWRlciIgaWQ9ImNvbnZlcnRlZC5jb25maWcuMTgyOTkwNTg1NiIgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnNldHRpbmdzIiBuYW1lPSJjb252ZXJ0ZWRDb25maWciPg0KKzxleHRlcm5hbFNldHRpbmdzLz4NCis8ZXh0ZW5zaW9ucz4NCis8ZXh0ZW5zaW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYmluYXJ5cGFyc2VyLkNvZmZQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5CaW5hcnlQYXJzZXIiLz4NCis8L2V4dGVuc2lvbnM+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvLnByb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTAwN2EwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvLnByb2plY3QKQEAgLTAsMCArMSw4MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8cHJvamVjdERlc2NyaXB0aW9uPg0KKwk8bmFtZT5sb2NhbC5ydW50aW1lPC9uYW1lPg0KKwk8Y29tbWVudD48L2NvbW1lbnQ+DQorCTxwcm9qZWN0cz4NCisJCTxwcm9qZWN0PnR4bi50YXJnZXRzPC9wcm9qZWN0Pg0KKwk8L3Byb2plY3RzPg0KKwk8YnVpbGRTcGVjPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2VCdWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQuYXJndW1lbnRzPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0LmNvcmUuZXJyb3JPdXRwdXRQYXJzZXI8L2tleT4NCisJCQkJCTx2YWx1ZT5jb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQ29mZkVycm9yUGFyc2VyO2NvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5Bc21FcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuTGlua0Vycm9yUGFyc2VyO29yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlcjs8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVBdXRvQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmluYzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlRnVsbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlZEluY3JlbWVudGFsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC5jb21tYW5kPC9rZXk+DQorCQkJCQk8dmFsdWU+JHtYRENST09UfS94ZGM8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5jbGVhbjwva2V5Pg0KKwkJCQkJPHZhbHVlPmNsZWFuPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVDbGVhbkJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYXBwZW5kX2Vudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUudXNlRGVmYXVsdEJ1aWxkQ21kPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5hdXRvPC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5zdG9wT25FcnJvcjwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuU2Nhbm5lckNvbmZpZ0J1aWxkZXI8L25hbWU+DQorCQkJPGFyZ3VtZW50cz4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwk8L2J1aWxkU3BlYz4NCisJPG5hdHVyZXM+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5jb3JlLmNuYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuU2Nhbm5lckNvbmZpZ05hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQuY29yZS5jY25hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzNDZjYWQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKQEAgLTAsMCArMSw0IEBACisjVHVlIE1hciAxNyAxMDozMjowMyBQRFQgMjAwOQ0KK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQoraW5kZXhlci9pbmRleGVySWQ9b3JnLmVjbGlwc2UuY2R0LmNvcmUuZG9tc291cmNlaW5kZXhlcg0KK2luZGV4ZXJJZD1vcmcuZWNsaXBzZS5jZHQuY29yZS5kb21zb3VyY2VpbmRleGVyDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS8ueGRjZW52Lm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzFmYTM0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAwCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSAKK292ZXJyaWRlIFhEQ1JPT1QgPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMworb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuLi8uLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzL3BhY2thZ2VzOy4uLy4uCitIT1NUT1MgPSBMaW51eAorZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0dhdGVHSUUuYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0dhdGVHSUUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWZjYjZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvR2F0ZUdJRS5jCkBAIC0wLDAgKzEsNDcgQEAKKy8qIAorICogIENvcHlyaWdodCAoYykgMjAwOCBUZXhhcyBJbnN0cnVtZW50cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gCisgKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIAorICogIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgYW5kIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UKKyAqICB2LiAxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uIFRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIGlzCisgKiAgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIGFuZCB0aGUgRWNsaXBzZQorICogIERpc3RyaWJ1dGlvbiBMaWNlbnNlIGlzIGF2YWlsYWJsZSBhdCAKKyAqICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHAuCisgKgorICogIENvbnRyaWJ1dG9yczoKKyAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisgKiAqLworLyoKKyAqICA9PT09PT09PSBHYXRlR0lFLmMgPT09PT09PT0KKyAqLworI2luY2x1ZGUgIDx0aS9hcHBzL21zcDQzMC9tc3A0MzB4MjJ4NC5oPgorCisjaW5jbHVkZSAicGFja2FnZS9pbnRlcm5hbC9HYXRlR0lFLnhkYy5oIgorCisvKgorICogID09PT09PT09IGVudGVyID09PT09PT09CisgKi8KK0lBcmcgR2F0ZUdJRV9lbnRlcihHYXRlR0lFX09iamVjdCAqb2JqKQoreworICAgIElBcmcga2V5ID0gX2dldF9TUl9yZWdpc3RlcigpOyAgLyogZ2V0IGN1cnJlbnQgaW50ZXJydXB0IHN0YXRlICovCisgICAgX2Rpc2FibGVfaW50ZXJydXB0cygpOyAgICAgICAgICAvKiBkaXNhYmxlIGludGVycnVwdHMgKi8KKyAgICByZXR1cm4gKGtleSk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gbGVhdmUgPT09PT09PT0KKyAqLworVm9pZCBHYXRlR0lFX2xlYXZlKEdhdGVHSUVfT2JqZWN0ICpvYmosIElBcmcga2V5KQoreworICAgIGlmIChrZXkgJiBHSUUpIHsKKyAgICAgICAgLyogcmUtZW5hYmxlIGludGVycnVwdHMgX29ubHlfIGlmIHdlIGRpc2FibGVkIHRoZW0gKi8KKyAgICAgICAgX2VuYWJsZV9pbnRlcnJ1cHRzKCk7CisgICAgfQorfQorCisvKgorICogID09PT09PT09IHF1ZXJ5ID09PT09PT09CisgKi8KK0Jvb2wgR2F0ZUdJRV9xdWVyeShJbnQgcXVhbCkKK3sKKyAgICByZXR1cm4gKEZBTFNFKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0dhdGVHSUUueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvR2F0ZUdJRS54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2E3NjIyZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0dhdGVHSUUueGRjCkBAIC0wLDAgKzEsMzIgQEAKKy8qIAorICogIENvcHlyaWdodCAoYykgMjAwOCBUZXhhcyBJbnN0cnVtZW50cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gCisgKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIAorICogIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgYW5kIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UKKyAqICB2LiAxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uIFRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIGlzCisgKiAgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIGFuZCB0aGUgRWNsaXBzZQorICogIERpc3RyaWJ1dGlvbiBMaWNlbnNlIGlzIGF2YWlsYWJsZSBhdCAKKyAqICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHAuCisgKgorICogIENvbnRyaWJ1dG9yczoKKyAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisgKiAqLworCitpbXBvcnQgeGRjLnJ1bnRpbWUuSUdhdGVQcm92aWRlcjsKKworLyohIAorICogID09PT09PT09IEdhdGVHSUUgPT09PT09PT0KKyAqICBHbG9iYWwgaW50ZXJydXB0IGRpc2FibGUvZW5hYmxlIGltcGxlbWVudGF0aW9uIG9mIGB7QGxpbmsgSUdhdGVQcm92aWRlcn1gCisgKgorICogIEluc3RhbmNlcyBvZiB0aGlzIGdhdGUgaW1wbGVtZW50YXRpb24gZGlzYWJsZSBhbGwgaW50ZXJydXB0cyBhbmQgc2hvdWxkIG9ubHkKKyAqICBiZSB1c2VkIGZvciBtb2R1bGVzIGluIHdoaWNoIHRoZSBkYXRhIHN0cnVjdHVyZXMgcHJvdGVjdGVkIGJ5IG1vZHVsZS1sZXZlbAorICogIGdhdGVzIGFyZSBoZWxkIGZvciBmaXhlZCBzaG9ydCBkdXJhdGlvbnMuCisgKi8KK21vZHVsZSBHYXRlR0lFIGluaGVyaXRzIElHYXRlUHJvdmlkZXIgeworCitpbnN0YW5jZToKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gY3JlYXRlID09PT09PT09CisgICAgICogIENyZWF0ZSBhIGBHYXRlR0lFYCBnYXRlCisgICAgICovCisgICAgY3JlYXRlKCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9HYXRlR0lFLnhzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvR2F0ZUdJRS54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yY2ZkOWUwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvR2F0ZUdJRS54cwpAQCAtMCwwICsxLDMyIEBACisvKiAKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAorICogIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSAKKyAqICB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIGFuZCBFY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlCisgKiAgdi4gMS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBpcworICogIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCBhbmQgdGhlIEVjbGlwc2UKKyAqICBEaXN0cmlidXRpb24gTGljZW5zZSBpcyBhdmFpbGFibGUgYXQgCisgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VkbC12MTAucGhwLgorICoKKyAqICBDb250cmlidXRvcnM6CisgKiAgICAgIFRleGFzIEluc3RydW1lbnRzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgorICogKi8KKy8qCisgKiAgPT09PT09PT0gR2F0ZUdJRS54cyA9PT09PT09PQorICoKKyAqIAorICovCisKKy8qCisgKiAgPT09PT09PT0gaW5zdGFuY2Ukc3RhdGljJGluaXQgPT09PT09PT0KKyAqLworZnVuY3Rpb24gaW5zdGFuY2Ukc3RhdGljJGluaXQob2JqLCBwYXJhbXMpCit7Cit9CisKKy8qCisgKiAgPT09PT09PT0gcXVlcnlNZXRhID09PT09PT09CisgKi8KK2Z1bmN0aW9uIHF1ZXJ5TWV0YShxdWFsKQoreworICAgIHJldHVybiAoZmFsc2UpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvSGVhcE51bGwuYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0hlYXBOdWxsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZThkMTY1YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0hlYXBOdWxsLmMKQEAgLTAsMCArMSw3MCBAQAorLyogLS1DT1BZUklHSFQtLSxFU0QKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAorICogIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSAKKyAqICB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIGFuZCBFY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlCisgKiAgdi4gMS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBpcworICogIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCBhbmQgdGhlIEVjbGlwc2UKKyAqICBEaXN0cmlidXRpb24gTGljZW5zZSBpcyBhdmFpbGFibGUgYXQgCisgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VkbC12MTAucGhwLgorICoKKyAqICBDb250cmlidXRvcnM6CisgKiAgICAgIFRleGFzIEluc3RydW1lbnRzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgorICogLS0vQ09QWVJJR0hULS0qLworLyoKKyAqICA9PT09PT09PSBIZWFwTnVsbC5jID09PT09PT09CisgKi8KKworI2luY2x1ZGUgPHhkYy9zdGQuaD4KKworI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Fzc2VydC5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL0Vycm9yLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvR2F0ZS5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL01lbW9yeS5oPgorCisjaW5jbHVkZSAicGFja2FnZS9pbnRlcm5hbC9IZWFwTnVsbC54ZGMuaCIKKworLyoKKyAqICA9PT09PT09PSBIZWFwTnVsbF9JbnN0YW5jZV9pbml0ID09PT09PT09CisgKiAgU2V0LXVwIHRoZSBvYmplY3QncyBmaWVsZHMuCisgKi8KK1ZvaWQgSGVhcE51bGxfSW5zdGFuY2VfaW5pdChIZWFwTnVsbF9PYmplY3QgKm9iaiwgY29uc3QgSGVhcE51bGxfUGFyYW1zICpwYXJhbXMpCit7Cit9CisKKy8qCisgKiAgPT09PT09PT0gSGVhcE51bGxfYWxsb2MgPT09PT09PT0KKyAqICBUaGlzIGlzIGEgc2ltcGxlIGdyb3d0aC1vbmx5IGhlYXAuIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgY3VycmVudAorICogIGxvY2F0aW9uIG9mIHRoZSB0b3Agb2YgdW51c2VkIGJ1ZmZlci4KKyAqLworUHRyIEhlYXBOdWxsX2FsbG9jKEhlYXBOdWxsX09iamVjdCAqb2JqLCBTaXplVCBzaXplLCBTaXplVCBhbGlnbiwKKyAgICBFcnJvcl9CbG9jayAqZWIpCit7CisgICAgcmV0dXJuIChOVUxMKTsKK30KKworLyoKKyAqICA9PT09PT09PSBIZWFwTnVsbF9mcmVlID09PT09PT09CisgKiAgVGhpcyBpcyBhIGdyb3d0aC1vbmx5IGhlYXAsIHNvIGZyZWUgZG9lcyBub3RoaW5nLgorICovCitWb2lkIEhlYXBOdWxsX2ZyZWUoSGVhcE51bGxfT2JqZWN0ICpvYmosIFB0ciBibG9jaywgU2l6ZVQgc2l6ZSkKK3sKK30KKworLyoKKyAqICA9PT09PT09PSBIZWFwTnVsbF9pc0Jsb2NraW5nID09PT09PT09IAorICovCitCb29sIEhlYXBOdWxsX2lzQmxvY2tpbmcoSGVhcE51bGxfT2JqZWN0ICpvYmopCit7CisgICAgcmV0dXJuIChGQUxTRSk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gSGVhcE51bGxfZ2V0U3RhdHMgPT09PT09PT0gCisgKiAgUmV0dXJuIHRoZSBzdGF0cy4KKyAqLworVm9pZCBIZWFwTnVsbF9nZXRTdGF0cyhIZWFwTnVsbF9PYmplY3QgKm9iaiwgTWVtb3J5X1N0YXRzICpzdGF0cykKK3sKKyAgICBzdGF0cy0+dG90YWxTaXplICAgICAgICAgPSAwOworICAgIHN0YXRzLT50b3RhbEZyZWVTaXplICAgICA9IDA7CisgICAgc3RhdHMtPmxhcmdlc3RGcmVlU2l6ZSAgID0gMDsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0hlYXBOdWxsLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0hlYXBOdWxsLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGM0NTU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvSGVhcE51bGwueGRjCkBAIC0wLDAgKzEsODAgQEAKKy8qIC0tQ09QWVJJR0hULS0sRVNECisgKiAgQ29weXJpZ2h0IChjKSAyMDA4IFRleGFzIEluc3RydW1lbnRzLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAKKyAqICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgCisgKiAgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCBhbmQgRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZQorICogIHYuIDEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgaXMKKyAqICBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwgYW5kIHRoZSBFY2xpcHNlCisgKiAgRGlzdHJpYnV0aW9uIExpY2Vuc2UgaXMgYXZhaWxhYmxlIGF0IAorICogIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lZGwtdjEwLnBocC4KKyAqCisgKiAgQ29udHJpYnV0b3JzOgorICogICAgICBUZXhhcyBJbnN0cnVtZW50cyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24KKyAqIC0tL0NPUFlSSUdIVC0tKi8KKy8qCisgKiAgPT09PT09PT0gSGVhcE51bGwueGRjID09PT09PT09CisgKi8KKworaW1wb3J0IHhkYy5ydW50aW1lLkFzc2VydDsKK2ltcG9ydCB4ZGMucnVudGltZS5FcnJvcjsKKworLyohCisgKiAgPT09PT09PT0gSGVhcE51bGwgPT09PT09PT0KKyAqICBFbXB0eSBoZWFwCisgKi8KK21vZHVsZSBIZWFwTnVsbCBpbmhlcml0cyB4ZGMucnVudGltZS5JSGVhcCB7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gQV96ZXJvU2l6ZSA9PT09PT09PQorICAgICAqICBBc3NlcnQgdGhhdCB0aGUgYHtAbGluayAjc2l6ZX1gIGlzIG5vbi16ZXJvIG9uIHRoZSBjcmVhdGUKKyAgICAgKi8gICAgIAorICAgIGNvbmZpZyBBc3NlcnQuSWQgQV96ZXJvU2l6ZSAgPQorICAgICAgICAgICAge21zZzogIkhlYXBOdWxsX2NyZWF0ZSBjYW5ub3QgaGF2ZSBhIHplcm8gc2l6ZSB2YWx1ZSJ9OworICAgICAgICAKK2luc3RhbmNlOgorCisgICAgLyohCisgICAgICogID09PT09PT09IGNyZWF0ZSA9PT09PT09PQorICAgICAqICBDcmVhdGUgYSBgSGVhcE51bGxgIGhlYXAKKyAgICAgKgorICAgICAqICBUaGlzIGhlYXAgaXMgYSBncm93dGgtb25seSBoZWFwIHRoYXQgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCBieQorICAgICAqICBzeXN0ZW1zIHRoYXQgbmV2ZXIgZGVsZXRlIG9iamVjdHMgb3IgZnJlZSBtZW1vcnkuICBPYmplY3RzIGNhbiBiZQorICAgICAqICBjcmVhdGVkIGF0IHJ1bnRpbWUgYmFzZWQgb24gdmFsdWVzIGRldGVybWluZWQgYXQgcnVudGltZSwgYnV0CisgICAgICogIG9iamVjdHMgY2FuIG5vdCBiZSBkZWxldGVkLgorICAgICAqCisgICAgICogIEBzZWUgSGVhcE51bGwjUGFyYW1zCisgICAgICovCisgICAgY3JlYXRlKCk7CisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IGFsbG9jID09PT09PT09CisgICAgICogIEFsbG9jYXRlIGEgYmxvY2sgb2YgbWVtb3J5IGZyb20gdGhlIGhlYXAuCisgICAgICoKKyAgICAgKiAgQGEoQ29uc3RyYWludHMpCisgICAgICogIFRoZSBhbGlnbm1lbnQgbXVzdCBiZSBhIHBvd2VyIG9mIDIuCisgICAgICoKKyAgICAgKiAgQHNlZSBJSGVhcCNhbGxvYworICAgICAqLworICAgIG92ZXJyaWRlIFB0ciBhbGxvYyhTaXplVCBzaXplLCBTaXplVCBhbGlnbiwgRXJyb3IuQmxvY2sgKmViKTsgICAgCisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gZnJlZSA9PT09PT09PQorICAgICAqICBGcmVlIGEgYmxvY2sgb2YgbWVtb3J5IGJhY2sgdG8gdGhlIGhlYXAuCisgICAgICoKKyAgICAgKiAgVGhpcyBpcyBhIGdyb3d0aCBvbmx5IGhlYXAuIENhbGxpbmcgdGhlIGBIZWFwTnVsbF9mcmVlYCBmdW5jdGlvbgorICAgICAqICB3aWxsIHJlc3VsdCBpbiBhIGB7QGxpbmsgI0VfZnJlZUVycm9yfWAgZXJyb3IgdW5sZXNzCisgICAgICogIGB7QGxpbmsgI2ZyZWVFcnJvcn1gIGlzIHNldCB0byBgZmFsc2VgLgorICAgICAqCisgICAgICogIEBzZWUgSUhlYXAjZnJlZQorICAgICAqLworICAgIG92ZXJyaWRlIFZvaWQgZnJlZShQdHIgYmxvY2ssIFNpemVUIHNpemUpOworICAgIAorICAgIC8qIQorICAgICAqICA9PT09PT09PSBpc0Jsb2NraW5nID09PT09PT09CisgICAgICogIENhbiB0aGlzIGhlYXAgYmxvY2sgdGhlIGNhbGxlcgorICAgICAqCisgICAgICogIEBhKHJldHVybnMpCisgICAgICogIGBIZWFwTnVsbGAgYWx3YXlzIHJldHVybnMgYEZBTFNFYCBzaW5jZSBpdCBuZXZlciBibG9ja3Mgb24gYQorICAgICAqICByZXNvdXJjZS4KKyAgICAgKi8KKyAgICBvdmVycmlkZSBCb29sIGlzQmxvY2tpbmcoKTsgICAgCit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9IZWFwTnVsbC54cyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0hlYXBOdWxsLnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhNzIyZGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9IZWFwTnVsbC54cwpAQCAtMCwwICsxLDI5IEBACisvKiAtLUNPUFlSSUdIVC0tLEVTRAorICogIENvcHlyaWdodCAoYykgMjAwOCBUZXhhcyBJbnN0cnVtZW50cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gCisgKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIAorICogIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgYW5kIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UKKyAqICB2LiAxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uIFRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIGlzCisgKiAgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIGFuZCB0aGUgRWNsaXBzZQorICogIERpc3RyaWJ1dGlvbiBMaWNlbnNlIGlzIGF2YWlsYWJsZSBhdCAKKyAqICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHAuCisgKgorICogIENvbnRyaWJ1dG9yczoKKyAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisgKiAtLS9DT1BZUklHSFQtLSovCisvKgorICogID09PT09PT09IEhlYXBOdWxsLnhzID09PT09PT09CisgKi8KKworLyoKKyAqICA9PT09PT09PSBpbnN0YW5jZSRzdGF0aWMkaW5pdCA9PT09PT09PQorICovCitmdW5jdGlvbiBpbnN0YW5jZSRzdGF0aWMkaW5pdChvYmosIHBhcmFtcykKK3sKK30KKworLyoKKyAqICA9PT09PT09PSBtb2R1bGUkdXNlID09PT09PT09CisgKi8KK2Z1bmN0aW9uIG1vZHVsZSR1c2UoKQoreworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvTG9nZ2VyQ2FsbGJhY2suYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0xvZ2dlckNhbGxiYWNrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFmN2QwYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0xvZ2dlckNhbGxiYWNrLmMKQEAgLTAsMCArMSw2MSBAQAorLyogLS1DT1BZUklHSFQtLSxFU0QKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAorICogIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSAKKyAqICB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIGFuZCBFY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlCisgKiAgdi4gMS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBpcworICogIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCBhbmQgdGhlIEVjbGlwc2UKKyAqICBEaXN0cmlidXRpb24gTGljZW5zZSBpcyBhdmFpbGFibGUgYXQgCisgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VkbC12MTAucGhwLgorICoKKyAqICBDb250cmlidXRvcnM6CisgKiAgICAgIFRleGFzIEluc3RydW1lbnRzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgorICogLS0vQ09QWVJJR0hULS0qLworLyoKKyAqICA9PT09PT09PSBMb2dnZXJDYWxsYmFjay5jID09PT09PT09CisgKi8KKyNpbmNsdWRlIDx4ZGMvc3RkLmg+CisKKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9Mb2cuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9UeXBlcy5oPgorI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c3RlbS5oPgorCisjaW5jbHVkZSAicGFja2FnZS9pbnRlcm5hbC9Mb2dnZXJDYWxsYmFjay54ZGMuaCIKKworLyoKKyAqICA9PT09PT09PSBJbnN0YW5jZV9pbml0ID09PT09PT09PQorICovCitWb2lkIExvZ2dlckNhbGxiYWNrX0luc3RhbmNlX2luaXQoTG9nZ2VyQ2FsbGJhY2tfT2JqZWN0ICpvYmosCisgICAgY29uc3QgTG9nZ2VyQ2FsbGJhY2tfUGFyYW1zICpwcm1zKQoreworfQorCisvKgorICogID09PT09PT09IHdyaXRlNCA9PT09PT09PT0KKyAqLworVm9pZCBMb2dnZXJDYWxsYmFja193cml0ZTQoTG9nZ2VyQ2FsbGJhY2tfT2JqZWN0ICpvYmosIFR5cGVzX0V2ZW50IGV2dCwKKyAgICBJQXJnIGExLCBJQXJnIGEyLCBJQXJnIGEzLCBJQXJnIGE0KQoreworICAgIExvZ19FdmVudFJlYyBldnJlYzsKKyAgICAKKyAgICBMb2dnZXJDYWxsYmFja19UaW1lc3RhbXBQcm94eV9nZXQ2NCgmZXZyZWMudHN0YW1wKTsKKworICAgIGV2cmVjLnNlcmlhbCA9IDA7CisgICAgZXZyZWMuZXZ0ID0gZXZ0OworICAgIGV2cmVjLmFyZ1swXSA9IGExOworICAgIGV2cmVjLmFyZ1sxXSA9IGEyOworICAgIGV2cmVjLmFyZ1syXSA9IGEzOworICAgIGV2cmVjLmFyZ1szXSA9IGE0OworCisgICAgaWYgKExvZ2dlckNhbGxiYWNrX2NhbGxiYWNrRnhuICE9IE5VTEwpIHsKKyAgICAgICAgTG9nZ2VyQ2FsbGJhY2tfY2FsbGJhY2tGeG4oJmV2cmVjKTsKKyAgICB9Cit9CisKKy8qCisgKiAgPT09PT09PT0gd3JpdGU4ID09PT09PT09PQorICovCitWb2lkIExvZ2dlckNhbGxiYWNrX3dyaXRlOChMb2dnZXJDYWxsYmFja19PYmplY3QgKm9iaiwgVHlwZXNfRXZlbnQgZXZ0LAorICAgIElBcmcgYTEsIElBcmcgYTIsIElBcmcgYTMsIElBcmcgYTQsIElBcmcgYTUsIElBcmcgYTYsIElBcmcgYTcsIElBcmcgYTgpCit7CisgICAgU3lzdGVtX2Fib3J0KCJvbmx5IDQgYXJndW1lbnRzIGFyZSBzdXBwb3J0ZWRcbiIpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvTG9nZ2VyQ2FsbGJhY2sueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvTG9nZ2VyQ2FsbGJhY2sueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1YjFiY2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9Mb2dnZXJDYWxsYmFjay54ZGMKQEAgLTAsMCArMSw5NSBAQAorLyogLS1DT1BZUklHSFQtLSxFU0QKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIAorICogIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSAKKyAqICB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIGFuZCBFY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlCisgKiAgdi4gMS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBpcworICogIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCBhbmQgdGhlIEVjbGlwc2UKKyAqICBEaXN0cmlidXRpb24gTGljZW5zZSBpcyBhdmFpbGFibGUgYXQgCisgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VkbC12MTAucGhwLgorICoKKyAqICBDb250cmlidXRvcnM6CisgKiAgICAgIFRleGFzIEluc3RydW1lbnRzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgorICogLS0vQ09QWVJJR0hULS0qLworLyoKKyAqICA9PT09PT09PSBMb2dnZXJDYWxsYmFjay54ZGMgPT09PT09PT0KKyAqLworCisvKiEKKyAqICA9PT09PT09PSBMb2dnZXJDYWxsYmFjayA9PT09PT09PQorICogIEEgbG9nZ2VyIHRoYXQgcGFzc2VzIGV2ZW50cyB0byBhIHVzZXIgc3VwcGxpZWQgY2FsbCBiYWNrIGZ1bmN0aW9uCisgKgorICogIEBhKEV4YW1wbGVzKQorICogIENvbmZpZ3VyYXRpb24gZXhhbXBsZTogVGhlIGZvbGxvd2luZyBYREMgY29uZmlndXJhdGlvbiBzdGF0ZW1lbnRzCisgKiAgY3JlYXRlIGEgbG9nZ2VyIGluc3RhbmNlLCBhc3NpZ24gaXQgYXMgdGhlIGRlZmF1bHQgbG9nZ2VyIGZvciBhbGwKKyAqICBtb2R1bGVzLCBhbmQgZW5hYmxlIGBVU0VSMWAgbG9nZ2luZyBpbiBhbGwgbW9kdWxlcyBvZiB0aGUgcGFja2FnZQorICogIGBteS5wa2dgLiBTZWUgdGhlIGB7QGxpbmsgRGlhZ3Mjc2V0TWFza01ldGEgRGlhZ3Muc2V0TWFza01ldGEoKX1gIGZ1bmN0aW9uCisgKiAgZm9yIGRldGFpbHMgb24gc3BlY2lmeWluZyB0aGUgbW9kdWxlIG5hbWVzLgorICoKKyAqICBAcChjb2RlKQorICogIHZhciBEZWZhdWx0cyA9IHhkYy51c2VNb2R1bGUoJ3hkYy5ydW50aW1lLkRlZmF1bHRzJyk7CisgKiAgdmFyIERpYWdzID0geGRjLnVzZU1vZHVsZSgneGRjLnJ1bnRpbWUuRGlhZ3MnKTsKKyAqICB2YXIgTG9nZ2VyQ2FsbGJhY2sgPSB4ZGMudXNlTW9kdWxlKCd4ZGMucnVudGltZS5Mb2dnZXJDYWxsYmFjaycpOworICoKKyAqICB2YXIgTG9nZ2VyQ2FsbGJhY2tQYXJhbXMgPSBuZXcgTG9nZ2VyQ2FsbGJhY2suUGFyYW1zKCk7CisgKiAgTG9nZ2VyQ2FsbGJhY2tQYXJhbXMuY2FsbGJhY2tGeG4gPSAiJm15Q2FsbGJhY2tGeG4iOworICoKKyAqICBEZWZhdWx0cy5jb21tb24kLmxvZ2dlciA9IExvZ2dlckNhbGxiYWNrLmNyZWF0ZShMb2dnZXJDYWxsYmFja1BhcmFtcyk7CisgKiAgRGlhZ3Muc2V0TWFza01ldGEoIm15LnBrZy4lIiwgRGlhZ3MuVVNFUjEsIERpYWdzLlJVTlRJTUVfT04pOworICogIEBwCisgKi8KKworbW9kdWxlIExvZ2dlckNhbGxiYWNrIGluaGVyaXRzIHhkYy5ydW50aW1lLklMb2dnZXIgeworCisgICAgLyohCisgICAgICogID09PT09PT09IElUaW1lc3RhbXBQcm94eSA9PT09PT09PQorICAgICAqICBVc2VyIHN1cHBsaWVkIHRpbWUtc3RhbXAgcHJveHkKKyAgICAgKgorICAgICAqICBUaGlzIHByb3h5IGFsbG93cyBgTG9nZ2VyQ2FsbGJhY2tgIHRvIHVzZSBhIHRpbWVzdGFtcCBzZXJ2ZXIgZGlmZmVyZW50CisgICAgICogIGZyb20gdGhlIHNlcnZlciB1c2VkIGJ5IGB7QGxpbmsgeGRjLnJ1bnRpbWUuVGltZXN0YW1wfWAuIEhvd2V2ZXIsIGlmCisgICAgICogIG5vdCBzdXBwbGllZCBieSBhIHVzZXIsIHRoaXMgcHJveHkgZGVmYXVsdHMgdG8gd2hpY2hldmVyIHRpbWVzdGFtcAorICAgICAqICBzZXJ2ZXIgaXMgdXNlZCBieSBgVGltZXN0YW1wYC4KKyAgICAgKi8KKyAgICBwcm94eSBUaW1lc3RhbXBQcm94eSBpbmhlcml0cyB4ZGMucnVudGltZS5JVGltZXN0YW1wQ2xpZW50OworCisgICAgLyohCisgICAgICogID09PT09PT09IENhbGxiYWNrRnhuID09PT09PT09CisgICAgICogIENhbGxiYWNrIGNoYXJhY3RlciBjYWxsYmFjayBmdW5jdGlvbgorICAgICAqCisgICAgICogIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGVhY2ggdGltZSBhIExvZyBldmVudCBpcyBnZW5lcmF0ZWQgYnkgdGhlIAorICAgICAqICBhcHBsaWNhdGlvbi4KKyAgICAgKi8KKyAgICB0eXBlZGVmIFZvaWQgKCpDYWxsYmFja0Z4bikoeGRjLnJ1bnRpbWUuTG9nLkV2ZW50UmVjICopOworCisgICAgLyohCisgICAgICogID09PT09PT09IGNhbGxiYWNrRnhuID09PT09PT09CisgICAgICogIFVzZXIgc3VwbGllZCBjaGFyYWN0ZXIgY2FsbGJhY2sgZnVuY3Rpb24KKyAgICAgKgorICAgICAqICBJZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gYSBub24tYG51bGxgIHZhbHVlLCB0aGUgc3BlY2lmaWVkCisgICAgICogIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIGZvciBlYWNoIGNoYXJhY3RlciByZWNlaXZlZC4KKyAgICAgKgorICAgICAqICBGb3IgZXhhbXBsZSwgaWYgeW91IGRlZmluZSBhIGZ1bmN0aW9uIG5hbWVkIGBteUNhbGxiYWNrRnhuYCwgdGhlCisgICAgICogIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIGZyYWdtZW50IHdpbGwgY2F1c2UgYExvZ2dlckNhbGxiYWNrYCB0byBjYWxsCisgICAgICogIGBteUNhbGxiYWNrRnhuYCB3aGVuZXZlciBhIGNoYXJhY3RlciBpcyByZWNlaXZlZC4KKyAgICAgKiAgQHAoY29kZSkKKyAgICAgKiAgICAgIHZhciBMb2dnZXJDYWxsYmFjayA9IHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLkxvZ2dlckNhbGxiYWNrIik7CisgICAgICogICAgICBMb2dnZXJDYWxsYmFjay5jYWxsYmFja0Z4biA9ICImbXlDYWxsYmFja0Z4biI7CisgICAgICogIEBwCisgICAgICoKKyAgICAgKiAgSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNldCwgYSBkZWZhdWx0IGZ1bmN0aW9uIHdpbGwgYmUgdXNlZCB3aGljaAorICAgICAqICBzaW1wbHkgZHJvcHMgdGhlIGNhbGxiYWNrIGNoYXJhY3RlcnMuCisgICAgICoKKyAgICAgKiAgQHNlZSAjQ2FsbGJhY2tGeG4KKyAgICAgKi8KKyAgICBjb25maWcgQ2FsbGJhY2tGeG4gY2FsbGJhY2tGeG4gPSBudWxsOworCitpbnN0YW5jZToKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBjcmVhdGUgPT09PT09PT0KKyAgICAgKiAgQ3JlYXRlIGEgYExvZ2dlckNhbGxiYWNrYCBsb2dnZXIKKyAgICAgKiAgICAgCisgICAgICogIFRoZSBsb2dnZXIgaW5zdGFuY2Ugd2lsbCByb3V0ZSBhbGwgbG9nIGV2ZW50cyBpdCByZWNlaXZlcyB0bworICAgICAqICB0aGUge0BsaW5rIFN5c3RlbSNwcmludGZ9IGZ1bmN0aW9uLgorICAgICAqLworICAgIGNyZWF0ZSgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvTG9nZ2VyQ2FsbGJhY2sueHMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9Mb2dnZXJDYWxsYmFjay54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YTE1ZWM3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvTG9nZ2VyQ2FsbGJhY2sueHMKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlCisgKiAgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCBhbmQgRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZQorICogIHYuIDEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgaXMKKyAqICBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwgYW5kIHRoZSBFY2xpcHNlCisgKiAgRGlzdHJpYnV0aW9uIExpY2Vuc2UgaXMgYXZhaWxhYmxlIGF0CisgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VkbC12MTAucGhwLgorICoKKyAqICBDb250cmlidXRvcnM6CisgKiAgICAgIFRleGFzIEluc3RydW1lbnRzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgorICogKi8KKy8qCisgKiAgPT09PT09PT0gTG9nZ2VyQ2FsbGJhY2sueHMgPT09PT09PT0KKyAqLworCit2YXIgTG9nZ2VyOworCisvKgorICogID09PT09PT09IG1vZHVsZSR1c2UgPT09PT09PT0KKyAqLworZnVuY3Rpb24gbW9kdWxlJHVzZSgpCit7CisgICAgdmFyIFRpbWVzdGFtcCA9IHhkYy5tb2R1bGUoJ3hkYy5ydW50aW1lLlRpbWVzdGFtcCcpOworCisgICAgTG9nZ2VyID0gdGhpczsKKworICAgIC8qIGJpbmQgTG9nZ2VyLlRpbWVzdGFtcFByb3h5IHRvIHdoYXRldmVyIFRpbWVzdGFtcCBpcyB1c2luZywKKyAgICAqICB1bmxlc3MgTG9nZ2VyLlRpbWVzdGFtcFByb3h5IHdhcyBzZXQgYWxyZWFkeS4KKyAgICAgKi8KKyAgICBpZiAoTG9nZ2VyLlRpbWVzdGFtcFByb3h5ID09IG51bGwpIHsKKyAgICAgICAgTG9nZ2VyLlRpbWVzdGFtcFByb3h5ID0gVGltZXN0YW1wLlN1cHBvcnRQcm94eS5kZWxlZ2F0ZSQ7CisgICAgfQorCisgICAgLyogZGlzYWJsZSB0cmFjZSBvbiB0aW1lc3RhbXAgcHJveHkgdG8gcHJldmVudCByZWN1cnNpdmUgY2FsbGJhY2tzICovCisgICAgdmFyIERpYWdzID0geGRjLm1vZHVsZSgieGRjLnJ1bnRpbWUuRGlhZ3MiKTsKKyAgICB2YXIgbW9kTmFtZSA9IExvZ2dlci5UaW1lc3RhbXBQcm94eS5kZWxlZ2F0ZSQuJG5hbWU7CisgICAgRGlhZ3Muc2V0TWFza01ldGEobW9kTmFtZSwgRGlhZ3MuQUxMICYgKH5EaWFncy5BU1NFUlQpLCBEaWFncy5BTFdBWVNfT0ZGKTsKK30KKworLyoKKyAqICA9PT09PT09PSBpbnN0YW5jZSRzdGF0aWMkaW5pdCA9PT09PT09PQorICovCitmdW5jdGlvbiBpbnN0YW5jZSRzdGF0aWMkaW5pdCgpCit7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9Mb2dnZXJVYXJ0LmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9Mb2dnZXJVYXJ0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgyZmQxMgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0xvZ2dlclVhcnQuYwpAQCAtMCwwICsxLDczIEBACisvKiAtLUNPUFlSSUdIVC0tLEVTRAorICogIENvcHlyaWdodCAoYykgMjAwOCBUZXhhcyBJbnN0cnVtZW50cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gCisgKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIAorICogIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgYW5kIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UKKyAqICB2LiAxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uIFRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIGlzCisgKiAgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIGFuZCB0aGUgRWNsaXBzZQorICogIERpc3RyaWJ1dGlvbiBMaWNlbnNlIGlzIGF2YWlsYWJsZSBhdCAKKyAqICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHAuCisgKgorICogIENvbnRyaWJ1dG9yczoKKyAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisgKiAtLS9DT1BZUklHSFQtLSovCisvKgorICogID09PT09PT09IExvZ2dlclVhcnQuYyA9PT09PT09PQorICovCisjaW5jbHVkZSA8eGRjL3N0ZC5oPgorCisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvTG9nLmg+CisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvVHlwZXMuaD4KKworI2luY2x1ZGUgIlN5c1VhcnQuaCIKKworI2luY2x1ZGUgInBhY2thZ2UvaW50ZXJuYWwvTG9nZ2VyVWFydC54ZGMuaCIKKworLyoKKyAqICA9PT09PT09PSBJbnN0YW5jZV9pbml0ID09PT09PT09PQorICovCitWb2lkIExvZ2dlclVhcnRfSW5zdGFuY2VfaW5pdChMb2dnZXJVYXJ0X09iamVjdCAqb2JqLAorICAgIGNvbnN0IExvZ2dlclVhcnRfUGFyYW1zICpwcm1zKQoreworfQorCisvKgorICogID09PT09PT09IHdyaXRlNCA9PT09PT09PT0KKyAqLworVm9pZCBMb2dnZXJVYXJ0X3dyaXRlNChMb2dnZXJVYXJ0X09iamVjdCAqb2JqLCBUeXBlc19FdmVudCBldnQsCisgICAgSUFyZyBhMSwgSUFyZyBhMiwgSUFyZyBhMywgSUFyZyBhNCkKK3sKKyAgICBMb2dnZXJVYXJ0X3dyaXRlOChvYmosIGV2dCwgYTEsIGEyLCBhMywgYTQsIDAsIDAsIDAsIDApOworfQorCisvKgorICogID09PT09PT09IHdyaXRlOCA9PT09PT09PT0KKyAqLworVm9pZCBMb2dnZXJVYXJ0X3dyaXRlOChMb2dnZXJVYXJ0X09iamVjdCAqb2JqLCBUeXBlc19FdmVudCBldnQsCisgICAgSUFyZyBhMSwgSUFyZyBhMiwgSUFyZyBhMywgSUFyZyBhNCwgSUFyZyBhNSwgSUFyZyBhNiwgSUFyZyBhNywgSUFyZyBhOCkKK3sKKyAgICBMb2dfRXZlbnRSZWMgZXZyZWM7CisgICAgSW50IGk7CisgICAgQ2hhciAqY3A7CisgICAgCisgICAgTG9nZ2VyVWFydF9UaW1lc3RhbXBQcm94eV9nZXQ2NCgmZXZyZWMudHN0YW1wKTsKKworICAgIGV2cmVjLnNlcmlhbCA9IDA7CisgICAgZXZyZWMuZXZ0ID0gZXZ0OworICAgIGV2cmVjLmFyZ1swXSA9IGExOworICAgIGV2cmVjLmFyZ1sxXSA9IGEyOworICAgIGV2cmVjLmFyZ1syXSA9IGEzOworICAgIGV2cmVjLmFyZ1szXSA9IGE0OworICAgIGV2cmVjLmFyZ1s0XSA9IGE1OworICAgIGV2cmVjLmFyZ1s1XSA9IGE2OworICAgIGV2cmVjLmFyZ1s2XSA9IGE3OworICAgIGV2cmVjLmFyZ1s3XSA9IGE4OworCisgICAgLyogc2VuZCBoZWFkZXIgKi8KKyAgICBTeXNVYXJ0X3B1dGNoKCdcMDEnKTsgICAvKiBzd2l0Y2ggdG8gYmluYXJ5IG1vZGUgKi8KKyAgICBTeXNVYXJ0X3B1dGNoKCdcMDAnKTsgICAvKiBzZW5kIFBJRCAqLworCisgICAgLyogc2VuZCBwYXlsb2FkICovCisgICAgZm9yIChjcCA9IChDaGFyICopJmV2cmVjLCBpID0gMDsgaSA8IHNpemVvZihldnJlYyk7IGkrKykgeworICAgICAgICBTeXNVYXJ0X3B1dGNoKCpjcCsrKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9Mb2dnZXJVYXJ0LnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0xvZ2dlclVhcnQueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4NTYxODYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9Mb2dnZXJVYXJ0LnhkYwpAQCAtMCwwICsxLDYyIEBACisvKiAtLUNPUFlSSUdIVC0tLEVTRAorICogIENvcHlyaWdodCAoYykgMjAwOCBUZXhhcyBJbnN0cnVtZW50cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gCisgKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIAorICogIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgYW5kIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UKKyAqICB2LiAxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uIFRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIGlzCisgKiAgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIGFuZCB0aGUgRWNsaXBzZQorICogIERpc3RyaWJ1dGlvbiBMaWNlbnNlIGlzIGF2YWlsYWJsZSBhdCAKKyAqICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZWRsLXYxMC5waHAuCisgKgorICogIENvbnRyaWJ1dG9yczoKKyAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisgKiAtLS9DT1BZUklHSFQtLSovCisvKgorICogID09PT09PT09IExvZ2dlclVhcnQueGRjID09PT09PT09CisgKi8KKworLyohCisgKiAgPT09PT09PT0gTG9nZ2VyVWFydCA9PT09PT09PQorICogIEEgbG9nZ2VyIHRoYXQgd3JpdGVzIGV2ZW50cyB0byBhIFVBUlQKKyAqCisgKiAgQGEoRXhhbXBsZXMpCisgKiAgQ29uZmlndXJhdGlvbiBleGFtcGxlOiBUaGUgZm9sbG93aW5nIFhEQyBjb25maWd1cmF0aW9uIHN0YXRlbWVudHMKKyAqICBjcmVhdGUgYSBsb2dnZXIgaW5zdGFuY2UsIGFzc2lnbiBpdCBhcyB0aGUgZGVmYXVsdCBsb2dnZXIgZm9yIGFsbAorICogIG1vZHVsZXMsIGFuZCBlbmFibGUgYFVTRVIxYCBsb2dnaW5nIGluIGFsbCBtb2R1bGVzIG9mIHRoZSBwYWNrYWdlCisgKiAgYG15LnBrZ2AuIFNlZSB0aGUgYHtAbGluayBEaWFncyNzZXRNYXNrTWV0YSBEaWFncy5zZXRNYXNrTWV0YSgpfWAgZnVuY3Rpb24KKyAqICBmb3IgZGV0YWlscyBvbiBzcGVjaWZ5aW5nIHRoZSBtb2R1bGUgbmFtZXMuCisgKgorICogIEBwKGNvZGUpCisgKiAgdmFyIERlZmF1bHRzID0geGRjLnVzZU1vZHVsZSgneGRjLnJ1bnRpbWUuRGVmYXVsdHMnKTsKKyAqICB2YXIgRGlhZ3MgPSB4ZGMudXNlTW9kdWxlKCd4ZGMucnVudGltZS5EaWFncycpOworICogIHZhciBMb2dnZXJVYXJ0ID0geGRjLnVzZU1vZHVsZSgneGRjLnJ1bnRpbWUuTG9nZ2VyVWFydCcpOworICoKKyAqICB2YXIgTG9nZ2VyVWFydFBhcmFtcyA9IG5ldyBMb2dnZXJVYXJ0LlBhcmFtcygpOworICogIERlZmF1bHRzLmNvbW1vbiQubG9nZ2VyID0gTG9nZ2VyVWFydC5jcmVhdGUoTG9nZ2VyVWFydFBhcmFtcyk7CisgKiAgRGlhZ3Muc2V0TWFza01ldGEoIm15LnBrZy4lIiwgRGlhZ3MuVVNFUjEsIERpYWdzLlJVTlRJTUVfT04pOworICogIEBwCisgKi8KKworbW9kdWxlIExvZ2dlclVhcnQgaW5oZXJpdHMgeGRjLnJ1bnRpbWUuSUxvZ2dlciB7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gSVRpbWVzdGFtcFByb3h5ID09PT09PT09CisgICAgICogIFVzZXIgc3VwcGxpZWQgdGltZS1zdGFtcCBwcm94eQorICAgICAqCisgICAgICogIFRoaXMgcHJveHkgYWxsb3dzIGBMb2dnZXJVYXJ0YCB0byB1c2UgYSB0aW1lc3RhbXAgc2VydmVyIGRpZmZlcmVudAorICAgICAqICBmcm9tIHRoZSBzZXJ2ZXIgdXNlZCBieSBge0BsaW5rIHhkYy5ydW50aW1lLlRpbWVzdGFtcH1gLiBIb3dldmVyLCBpZgorICAgICAqICBub3Qgc3VwcGxpZWQgYnkgYSB1c2VyLCB0aGlzIHByb3h5IGRlZmF1bHRzIHRvIHdoaWNoZXZlciB0aW1lc3RhbXAKKyAgICAgKiAgc2VydmVyIGlzIHVzZWQgYnkgYFRpbWVzdGFtcGAuCisgICAgICovCisgICAgcHJveHkgVGltZXN0YW1wUHJveHkgaW5oZXJpdHMgeGRjLnJ1bnRpbWUuSVRpbWVzdGFtcENsaWVudDsKKworaW5zdGFuY2U6CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gY3JlYXRlID09PT09PT09CisgICAgICogIENyZWF0ZSBhIGBMb2dnZXJVYXJ0YCBsb2dnZXIKKyAgICAgKiAgICAgCisgICAgICogIFRoZSBsb2dnZXIgaW5zdGFuY2Ugd2lsbCByb3V0ZSBhbGwgbG9nIGV2ZW50cyBpdCByZWNlaXZlcyB0bworICAgICAqICB0aGUge0BsaW5rIFN5c3RlbSNwcmludGZ9IGZ1bmN0aW9uLgorICAgICAqLworICAgIGNyZWF0ZSgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvTG9nZ2VyVWFydC54cyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0xvZ2dlclVhcnQueHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTdmMmIxZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL0xvZ2dlclVhcnQueHMKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlCisgKiAgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCBhbmQgRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZQorICogIHYuIDEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgaXMKKyAqICBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwgYW5kIHRoZSBFY2xpcHNlCisgKiAgRGlzdHJpYnV0aW9uIExpY2Vuc2UgaXMgYXZhaWxhYmxlIGF0CisgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VkbC12MTAucGhwLgorICoKKyAqICBDb250cmlidXRvcnM6CisgKiAgICAgIFRleGFzIEluc3RydW1lbnRzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgorICogKi8KKy8qCisgKiAgPT09PT09PT0gTG9nZ2VyVWFydC54cyA9PT09PT09PQorICovCisKK3ZhciBMb2dnZXI7CisKKy8qCisgKiAgPT09PT09PT0gbW9kdWxlJHVzZSA9PT09PT09PQorICovCitmdW5jdGlvbiBtb2R1bGUkdXNlKCkKK3sKKyAgICBMb2dnZXIgPSB0aGlzOworCisgICAgdmFyIFRpbWVzdGFtcCA9IHhkYy5tb2R1bGUoJ3hkYy5ydW50aW1lLlRpbWVzdGFtcCcpOworCisgICAgeGRjLnVzZU1vZHVsZShMb2dnZXIuJHBhY2thZ2UuJG5hbWUgKyAiLlN5c1VhcnQiKTsKKworICAgIC8qIGJpbmQgTG9nZ2VyLlRpbWVzdGFtcFByb3h5IHRvIHdoYXRldmVyIFRpbWVzdGFtcCBpcyB1c2luZywKKyAgICAqICB1bmxlc3MgTG9nZ2VyLlRpbWVzdGFtcFByb3h5IHdhcyBzZXQgYWxyZWFkeS4KKyAgICAgKi8KKyAgICBpZiAoTG9nZ2VyLlRpbWVzdGFtcFByb3h5ID09IG51bGwpIHsKKyAgICAgICAgTG9nZ2VyLlRpbWVzdGFtcFByb3h5ID0gVGltZXN0YW1wLlN1cHBvcnRQcm94eS5kZWxlZ2F0ZSQ7CisgICAgfQorCisgICAgLyogZGlzYWJsZSB0cmFjZSBvbiB0aW1lc3RhbXAgcHJveHkgdG8gcHJldmVudCByZWN1cnNpdmUgY2FsbGJhY2tzICovCisgICAgdmFyIERpYWdzID0geGRjLm1vZHVsZSgieGRjLnJ1bnRpbWUuRGlhZ3MiKTsKKyAgICB2YXIgbW9kTmFtZSA9IExvZ2dlci5UaW1lc3RhbXBQcm94eS5kZWxlZ2F0ZSQuJG5hbWU7CisgICAgRGlhZ3Muc2V0TWFza01ldGEobW9kTmFtZSwgRGlhZ3MuQUxMICYgKH5EaWFncy5BU1NFUlQpLCBEaWFncy5BTFdBWVNfT0ZGKTsKK30KKworLyoKKyAqICA9PT09PT09PSBpbnN0YW5jZSRzdGF0aWMkaW5pdCA9PT09PT09PQorICovCitmdW5jdGlvbiBpbnN0YW5jZSRzdGF0aWMkaW5pdCgpCit7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9TeXNCdWYuYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL1N5c0J1Zi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3MmZmZjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9TeXNCdWYuYwpAQCAtMCwwICsxLDgwIEBACisvKgorICogID09PT09PT09IFN5c0J1Zi5jID09PT09PT09CisgKi8KKworI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N0YXJ0dXAuaD4KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9HYXRlLmg+CisKKyNpbmNsdWRlICJwYWNrYWdlL2ludGVybmFsL1N5c0J1Zi54ZGMuaCIKKworLyoKKyAqICA9PT09PT09PSBTeXNCdWZfYWJvcnQgPT09PT09PT0KKyAqLworVm9pZCBTeXNCdWZfYWJvcnQoU3RyaW5nIHN0cikKK3sKKyAgICBDaGFyIGNoOyAgICAKKyAgICAKKyAgICBpZiAoU3lzQnVmX2J1ZlNpemUgIT0gMCAmJiBzdHIgIT0gTlVMTCkgeworICAgICAgICB3aGlsZSAoKGNoID0gKnN0cisrKSAhPSAnXDAnKSB7CisgICAgICAgICAgICBTeXNCdWZfcHV0Y2goY2gpOworICAgICAgICB9CisgICAgfQorfQorCisvKgorICogID09PT09PT09IFN5c0J1Zl9leGl0ID09PT09PT09CisgKi8KK1ZvaWQgU3lzQnVmX2V4aXQoSW50IHN0YXQpCit7CisgICAgU3lzQnVmX2ZsdXNoKCk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gU3lzQnVmX2ZsdXNoID09PT09PT09CisgKi8KK1ZvaWQgU3lzQnVmX2ZsdXNoKCkKK3sKKyAgICBJbnQgaTsKKyAgICAKKyAgICBmb3IgKGkgPSAwOyBpIDwgU3lzQnVmX2J1ZlNpemU7IGkrKykgeworICAgICAgICBDaGFyIGM7CisgICAgICAgIGlmIChtb2R1bGUtPm91dGlkeCA+PSBTeXNCdWZfYnVmU2l6ZSkgeworICAgICAgICAgICAgbW9kdWxlLT5vdXRpZHggPSAwOworICAgICAgICB9CisgICAgICAgIGMgPSBtb2R1bGUtPm91dGJ1Zlttb2R1bGUtPm91dGlkeCsrXTsKKyAgICAgICAgaWYgKGMgIT0gJ1wwJykgeworICAgICAgICAgICAgZXh0ZXJuIGludCBwdXRjaGFyKGludCBjKTsKKyAgICAgICAgICAgIHB1dGNoYXIoYyk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiAgPT09PT09PT0gU3lzQnVmX3B1dGNoID09PT09PT09CisgKi8KK1ZvaWQgU3lzQnVmX3B1dGNoKENoYXIgY2gpCit7CisgICAgSUFyZyBrZXk7CisgICAgCisgICAgaWYgKFN5c0J1Zl9idWZTaXplICE9IDApIHsKKworICAgICAgICBrZXkgPSBHYXRlX2VudGVyU3lzdGVtKCk7CisKKyAgICAgICAgaWYgKG1vZHVsZS0+b3V0aWR4ID49IFN5c0J1Zl9idWZTaXplKSB7CisgICAgICAgICAgICBtb2R1bGUtPm91dGlkeCA9IDA7CisgICAgICAgIH0KKworICAgICAgICBtb2R1bGUtPm91dGJ1Zlttb2R1bGUtPm91dGlkeCsrXSA9IGNoOworCisgICAgICAgIEdhdGVfbGVhdmVTeXN0ZW0oa2V5KTsKKyAgICB9ICAgIAorfQorCisvKgorICogID09PT09PT09IFN5c0J1Zl9yZWFkeSA9PT09PT09PQorICovCitCb29sIFN5c0J1Zl9yZWFkeSgpCit7CisgICAgcmV0dXJuIChTeXNCdWZfYnVmU2l6ZSAhPSAwID8gVFJVRSA6IEZBTFNFKTsKK30KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvU3lzQnVmLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL1N5c0J1Zi54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBmMzYzZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL1N5c0J1Zi54ZGMKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqICA9PT09PT09PSBTeXNCdWYueGRjID09PT09PT09CisgKi8KK2ltcG9ydCB4ZGMucnVudGltZS5UeXBlczsKKworLyohCisgKiAgPT09PT09PT0gU3lzQnVmID09PT09PT09CisgKiAgTWluaW1hbCBpbXBsZW1lbnRhdGlvbiBvZiBJU3lzdGVtU3VwcG9ydAorICoKKyAqICBUaGlzIG1vZHVsZSBwcm92aWRlcyBhIHNpbXBsZSBidXQgMTAwJSBwb3J0YWJsZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAqICBge0BsaW5rIElTeXN0ZW1TdXBwb3J0fWAgaW50ZXJmYWNlLgorICovCittb2R1bGUgU3lzQnVmIGluaGVyaXRzIHhkYy5ydW50aW1lLklTeXN0ZW1TdXBwb3J0IHsKKyAKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gYnVmU2l6ZSA9PT09PT09PQorICAgICAqICBTaXplIChpbiBNQVVzKSBvZiB0aGUgb3V0cHV0LgorICAgICAqCisgICAgICogIEFuIGludGVybmFsIGJ1ZmZlciBvZiB0aGlzIHNpemUgaXMgYWxsb2NhdGVkLiBBbGwgb3V0cHV0IGlzIHN0b3JlZCAKKyAgICAgKiAgaW4gdGhpcyBpbnRlcm5hbCBidWZmZXIuIAorICAgICAqCisgICAgICogIElmIDAgaXMgc3BlY2lmaWVkIGZvciB0aGUgc2l6ZSwgbm8gYnVmZmVyIGlzIGNyZWF0ZWQgYW5kIGFsbCBvdXRwdXQKKyAgICAgKiAgaXMgc2ltcGx5IGRyb3BwZWQuCisgICAgICovCisgICAgY29uZmlnIFNpemVUIGJ1ZlNpemUgPSAxMDI0OworCisgICAgLyohCisgICAgICogID09PT09PT09IGJ1Zk5hbWUgPT09PT09PT0KKyAgICAgKiAgR2xvYmFsIHZhcmlhYmxlIG5hbWUgY29udGFpbmluZyBwb2ludGVyIHRvIG91dHB1dCBidWZmZXIKKyAgICAgKgorICAgICAqICBUaGlzIHZhcmlhYmxlIHdpbGwgYmUgY3JlYXRlZCBzbyB0aGF0IGl0IGlzIGVhc3kgdG8gdmlldyB0aGUKKyAgICAgKiAgY29udGVudHMgb2YgdGhlIG91dHB1dCBidWZmZXIgd2l0aGluIGEgZGVidWdnZXIuICBJZiBgYnVmTmFtZWAgaXMKKyAgICAgKiAgc2V0IHRvIGBudWxsYCBvciBgdW5kZWZpbmVkYCwgdGhlIHZhcmlhYmxlIHdpbGwgbm90IGJlIGNyZWF0ZWQuCisgICAgICovCisgICAgbWV0YW9ubHkgY29uZmlnIFN0cmluZyBidWZOYW1lID0gIlNZU0JVRiI7CisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IHNlY3Rpb25OYW1lID09PT09PT09CisgICAgICogIFNlY3Rpb24gd2hlcmUgdGhlIGludGVybmFsIGJ1ZmZlciBtYW5hZ2VkIGJ5IGBTeXNCdWZgIGlzIHBsYWNlZC4KKyAgICAgKgorICAgICAqICBUaGUgZGVmYXVsdCBpcyB0byBoYXZlIG5vIGV4cGxpY2l0IHBsYWNlbWVudC4KKyAgICAgKi8KKyAgICBtZXRhb25seSBjb25maWcgU3RyaW5nIHNlY3Rpb25OYW1lID0gbnVsbDsKKyAgIAoraW50ZXJuYWw6CisgICAgCisgICAgc3RydWN0IE1vZHVsZV9TdGF0ZSB7CisgICAgICAgIENoYXIgb3V0YnVmW107ICAvKiBvdXRwdXQgYnVmZmVyICovCisgICAgICAgIFVJbnQgb3V0aWR4OyAgICAvKiBpbmRleCBvZiBuZXh0IGF2YWlsYWJsZSBvdXRwdXQgY2hhcmFjdGVyICovCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvU3lzQnVmLnhzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvU3lzQnVmLnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjljYWYzMDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9TeXNCdWYueHMKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqICA9PT09PT09PSBTeXNCdWYueHMgPT09PT09PT0KKyAqLworCit2YXIgTWVtb3J5ID0gbnVsbDsKKyAKKy8qCisgKiAgPT09PT09PT0gbW9kdWxlJHN0YXRpYyRpbml0ID09PT09PT09CisgKi8KK2Z1bmN0aW9uIG1vZHVsZSRzdGF0aWMkaW5pdChvYmosIHBhcmFtcykKK3sKKyAgICAvKiBzZXQgc2l6ZSBhbmQgcGxhY2VtZW50IG9mIFN5c0J1ZidzIG91dHB1dCBidWZmZXIsIG91dGJ1ZiAqLworICAgIG9iai5vdXRidWYubGVuZ3RoID0gcGFyYW1zLmJ1ZlNpemU7CisgICAgTWVtb3J5LnN0YXRpY1BsYWNlKG9iai5vdXRidWYsIDAsIHBhcmFtcy5zZWN0aW9uTmFtZSk7CisKKyAgICAvKiBjbGVhciB0aGUgb3V0cHV0IGJ1ZmZlciAqLworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqLm91dGJ1Zi5sZW5ndGg7IGkrKykgeworICAgICAgICBvYmoub3V0YnVmW2ldID0gMDsKKyAgICB9CisKKyAgICAvKiBkZWZpbmUgYSBjb252ZW5pZW50IGFsaWFzIGZvciB0aGUgYnVmZmVyICovCisgICAgaWYgKHRoaXMuYnVmTmFtZSAhPSBudWxsKSB7CisgICAgICAgIFByb2dyYW0uZ2xvYmFsW3RoaXMuYnVmTmFtZV0gPSBvYmoub3V0YnVmOworICAgIH0KKworICAgIC8qIGluaXRpYWxpemUgb3V0cHV0IGluZGV4IHN0YXRlICovCisgICAgb2JqLm91dGlkeCA9IDA7Cit9CisKKy8qCisgKiAgPT09PT09PT0gbW9kdWxlJHVzZSA9PT09PT09PQorICovCitmdW5jdGlvbiBtb2R1bGUkdXNlKG9iaiwgcGFyYW1zKQoreworICAgIE1lbW9yeSA9IHhkYy5tb2R1bGUoJ3hkYy5ydW50aW1lLk1lbW9yeScpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvU3lzVWFydC5jIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvU3lzVWFydC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZWE1NTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9TeXNVYXJ0LmMKQEAgLTAsMCArMSwyODAgQEAKKy8qCisgKiAgPT09PT09PT0gU3lzVWFydC5jID09PT09PT09CisgKi8KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TdGFydHVwLmg+CisKKyNpbmNsdWRlICJwYWNrYWdlL2ludGVybmFsL1N5c1VhcnQueGRjLmgiCisKKyNkZWZpbmUgVVNFXzhNSFogICAgMQorCisjZGVmaW5lIFJFRCAgICAgICAgIDB4MDEKKyNkZWZpbmUgR1JFRU4gICAgICAgMHgwMgorCisjZGVmaW5lIEZPUkVWRVIgICAgIC0xCisKK3N0YXRpYyB2b2lkIGV0eCgpOworc3RhdGljIHZvaWQgZmxhc2goSW50IGNvbG9yLCBJbnQgcGVyaW9kLCBJbnQgY291bnQpOworc3RhdGljIHZvaWQgaW5pdCh2b2lkKTsKK3N0YXRpYyB2b2lkIG15UHV0YyhDaGFyIGNoKTsKKworLyoKKyAqICA9PT09PT09PSBTeXNVYXJ0X01vZHVsZV9zdGFydHVwID09PT09PT09CisgKi8KK0ludCBTeXNVYXJ0X01vZHVsZV9zdGFydHVwKEludCBzdGF0ZSkKK3sKKyAgICBpbml0KCk7ICAgIAorICAgIHJldHVybiAoU3RhcnR1cF9ET05FKTsKK30KKworLyoKKyAqICA9PT09PT09PSBTeXNVYXJ0X2Fib3J0ID09PT09PT09CisgKi8KK1ZvaWQgU3lzVWFydF9hYm9ydChTdHJpbmcgc3RyKQoreworICAgIGlmIChzdHIgIT0gTlVMTCkgeworICAgICAgICBDaGFyIGNoOworICAgICAgICAKKyAgICAgICAgd2hpbGUgKChjaCA9ICpzdHIrKykgIT0gJ1wwJykgeworICAgICAgICAgICAgU3lzVWFydF9wdXRjaChjaCk7CisgICAgICAgIH0KKyAgICB9CisgICAgZmxhc2goUkVELCBGT1JFVkVSLCBGT1JFVkVSKTsKKyAgICBldHgoKTsKK30KKworLyoKKyAqICA9PT09PT09PSBTeXNVYXJ0X2V4aXQgPT09PT09PT0KKyAqLworVm9pZCBTeXNVYXJ0X2V4aXQoSW50IHN0YXQpCit7CisgICAgZmxhc2goR1JFRU4sIEZPUkVWRVIsIEZPUkVWRVIpOworICAgIGV0eCgpOworfQorCisvKgorICogID09PT09PT09IFN5c1VhcnRfZmx1c2ggPT09PT09PT0KKyAqLworVm9pZCBTeXNVYXJ0X2ZsdXNoKCkKK3sKK30KKworLyoKKyAqICA9PT09PT09PSBTeXNVYXJ0X3B1dGNoID09PT09PT09CisgKi8KK1ZvaWQgU3lzVWFydF9wdXRjaChDaGFyIGNoKQoreworICAgIG15UHV0YyhjaCk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gU3lzVWFydF9yZWFkeSA9PT09PT09PQorICovCitCb29sIFN5c1VhcnRfcmVhZHkoKQoreworICAgIHJldHVybiAoVFJVRSk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gYXRleGl0ID09PT09PT09CisgKiAgVGhlIFRJIFJUUyBsaWJyYXJ5J3MgYXRleGl0KCkgaW1wbGVtZW50YXRpb24gcmVxdWlyZXMgYSBfaHVnZV8gYW1vdW50IG9mCisgKiAgZGF0YS4gIFdlIHN0dWIgaXQgb3V0IGhlcmUgYW5kIHJlcGxhY2UgZXhpdCgpIGFuZCBhYm9ydCgpIHdpdGggZnVuY3Rpb25zCisgKiAgdGhhdCBhcmUgc3VmZmljaWVudCBmb3IgdGhlIHByb3BlciBvcGVyYXRpb24gb2YgeGRjLnJ1bnRpbWUuU3lzdGVtLgorICovCitpbnQgYXRleGl0KHZvaWQgKCpmeG4pKHZvaWQpKQoreworICAgIHJldHVybiAoMCk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gYWJvcnQgPT09PT09PT0KKyAqICBTZWUgYXRleGl0KCkgYWJvdmUKKyAqLwordm9pZCBhYm9ydCh2b2lkKQoreworICAgLyogIERlZmluZSBDJCRFWElUIGxhYmVsIGJlY2F1c2UgVEkgZGVidWdnZXIgdXNlcyB0aGlzIHRvIGtub3cgd2hlbgorICAgICogIHByb2dyYW1zIHRlcm1pbmF0ZS4gIFRoaXMgY2FuIGJlIHJlbW92ZWQgaWYgdGhlIGRlYnVnZ2VyIGlzIG5vdAorICAgICogIHVzZWQuCisgICAgKi8KKyAgIF9fYXNtKCIgICAgICAgIC5nbG9iYWwgQyQkRVhJVCIpOworICAgX19hc20oIkMkJEVYSVQ6IG5vcCIpOworCisgICBmb3IgKDs7KTsgICAvKiBzcGluIGZvcmV2ZXIgKi8KK30KKworLyoKKyAqICA9PT09PT09PSBleGl0ID09PT09PT09CisgKiAgU2VlIGF0ZXhpdCgpIGFib3ZlCisgKi8KK3ZvaWQgZXhpdChpbnQgc3RhdHVzKQoreworICAgIFN5c1VhcnRfZXhpdChzdGF0dXMpOworfQorCisvKgorICogID09PT09PT09IGV0eCA9PT09PT09PQorICogIEZsdXNoIEhXIFRYIGJ1ZmZlcnMKKyAqLworc3RhdGljIHZvaWQgZXR4KCkKK3sKKyAgICBteVB1dGMoNCk7ICAvKiBhc2NpaSBFT1QgKi8KKyAgICBteVB1dGMoMCk7CisgICAgbXlQdXRjKDApOworICAgIGFib3J0KCk7Cit9CisgCisjaWYgMAorLyogc3RhbmRhcmQgaGVhZGVyIGFzc3VtZXMgbGlua2VyIGNvbW1hbmQgZmlsZSBkZWZpbml0aW9ucyAqLworI2luY2x1ZGUgIDx0aS9hcHBzL21zcDQzMC9tc3A0MzB4MjJ4NC5oPgorI2Vsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisvKiAicHVyZS1DIiBkZWZpbml0aW9ucyBiZWxvdyBhcmUgc3VmZmljaWVudCBmb3IgdGhpcyBtb2R1bGUgKi8KKyNkZWZpbmUgSUUyICAgICAgICAoKih2b2xhdGlsZSBpbnQ4X3QgKikweDAwMDEpICAgLyogOC1iaXQgKi8KKyNkZWZpbmUgSUZHMiAgICAgICAoKih2b2xhdGlsZSBpbnQ4X3QgKikweDAwMDMpICAgLyogOC1iaXQgKi8KKworI2RlZmluZSBEQ09DVEwgICAgICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MDA1NikgICAvKiA4LWJpdCAqLworI2RlZmluZSBCQ1NDVEwxICAgICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MDA1NykgICAvKiA4LWJpdCAqLworI2RlZmluZSBCQ1NDVEwzICAgICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MDA1MykgICAvKiA4LWJpdCAqLworCisjZGVmaW5lIENBTERDT184TUhaICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MTBGQykgIC8qIDgtYml0ICovCisjZGVmaW5lIENBTEJDMV84TUhaICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MTBGRCkgIC8qIDgtYml0ICovCisKKyNkZWZpbmUgUDFPVVQgICAgICAoKih2b2xhdGlsZSBpbnQ4X3QgKikweDAwMjEpICAgLyogOC1iaXQgKi8KKyNkZWZpbmUgUDFESVIgICAgICAoKih2b2xhdGlsZSBpbnQ4X3QgKikweDAwMjIpICAgLyogOC1iaXQgKi8KKyNkZWZpbmUgUDNTRUwgICAgICAoKih2b2xhdGlsZSBpbnQ4X3QgKikweDAwMUIpICAgLyogOC1iaXQgKi8KKworI2RlZmluZSBVQ0EwQ1RMMSAgICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MDA2MSkgICAvKiA4LWJpdCAqLworI2RlZmluZSBVQ0EwQlIwICAgICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MDA2MikgICAvKiA4LWJpdCAqLworI2RlZmluZSBVQ0EwQlIxICAgICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MDA2MykgICAvKiA4LWJpdCAqLworI2RlZmluZSBVQ0EwTUNUTCAgICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MDA2NCkgICAvKiA4LWJpdCAqLworI2RlZmluZSBVQ0EwUlhCVUYgICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MDA2NikgICAvKiA4LWJpdCAqLworI2RlZmluZSBVQ0EwVFhCVUYgICgqKHZvbGF0aWxlIGludDhfdCAqKTB4MDA2NykgICAvKiA4LWJpdCAqLworCisjZGVmaW5lIFdEVENUTCAgICAgKCoodm9sYXRpbGUgaW50MTZfdCAqKTB4MTIwKSAgIC8qIDE2LWJpdCAqLworCisvKiBzdGF0dXMgcmVnaXN0ZXIgYml0cyAqLworI2RlZmluZSBHSUUgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgKDB4MDAxMCkKKworI2RlZmluZSBMUE0wX2JpdHMgIChDUFVPRkYpCisKKy8qIHdhdGNoIGRvZyB0aW1lciBjb250cm9sIHJlZ2lzdGVyIGJpdCBuYW1lcyAqLworI2RlZmluZSBXRFRQVyAgICAgICAoMHg1QTAwKQorI2RlZmluZSBXRFRIT0xEICAgICAoMHgwMDgwKQorCisjZGVmaW5lIExGWFQxU18yICAgICgweDIwKSAgICAgIC8qIE1vZGUgMiBmb3IgTEZYVDEgOiBWTE8gKi8KKworI2RlZmluZSBVQ1NTRUxfMiAgICAoMHg4MCkgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAyICovCisjZGVmaW5lIFVDQlJTXzIgICAgICAoMHgwNCkgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDU1dSU1QgICAgICgweDAxKSAgICAgIC8qIFVTQ0kgU29mdHdhcmUgUmVzZXQgKi8KKyNkZWZpbmUgVUNBMFJYSUUgICAgKDB4MDEpICAgICAgLyogVVNDSSByeCBpbnRlcnJ1cHQgZW5hYmxlICovCisKKy8qIElGRzIgYml0cyAqLworI2RlZmluZSBVQ0EwVFhJRkcgICAoMHgwMikgICAgICAvKiBVU0NJIHR4IGZsYWcgYml0ICovCisjZW5kaWYKKworLyoKKyAqICA9PT09PT09PSBpbml0ID09PT09PT09CisgKi8KK3N0YXRpYyB2b2lkIGluaXQodm9pZCkKK3sKKyAgICBXRFRDVEwgPSBXRFRQVyArIFdEVEhPTEQ7ICAgICAgIC8qIFN0b3Agd2F0Y2hkb2cgdGltZXIgKi8KKworICAgIFAxRElSIHw9IDB4MDM7ICAgICAgICAgICAgICAgICAgLyogU2V0IFAxLjAsMSB0byBvdXRwdXQgZGlyZWN0aW9uICovCisgICAgUDFPVVQgPSAwOyAgICAgICAgICAgICAgICAgICAgICAvKiB0dXJuIG9mZiBMRURzICovCisKKyNpZiBVU0VfOE1IWgorICAgIEJDU0NUTDEgPSBDQUxCQzFfOE1IWjsgICAgICAgICAgLyogU2V0IERDTyB0byB0aGUgZGVmYXVsdCBvZiBTaW1wbGljaXRpICovCisgICAgRENPQ1RMID0gQ0FMRENPXzhNSFo7CisgICAgQkNTQ1RMMyB8PSBMRlhUMVNfMjsgICAgICAgICAgICAvKiBMRlhUMSA9IFZMTyAqLworI2Vsc2UKKyAgICBCQ1NDVEwxID0gQ0FMQkMxXzFNSFo7ICAgICAgICAgIC8qIFNldCBEQ08gdG8gMU1IeiAqLworICAgIERDT0NUTCA9IENBTERDT18xTUhaOworI2VuZGlmCisKKyAgICAvKiBpbml0IHRoZSBVQVJUIChzZWUgVGFibGUgMTUtNCwgU2VjdGlvbiAxNS4zLjEzIE1TUDQzMCBVc2VyJ3MgZ3VpZGUpICovCisgICAgUDNTRUwgPSAweDMwOyAgICAgICAgICAgLyogUDMuNCw1ID0gVVNDSV9BMCBUWEQvUlhEICovCisgICAgVUNBMENUTDEgPSBVQ1NTRUxfMjsgICAgLyogU01DTEsgKi8KKyNpZiBVU0VfOE1IWgorICAgIFVDQTBCUjAgPSAweDQxOyAgICAgICAgIC8qIDhNSHogRENPIDk2MDAgKFVDQlJ4ID0gODMzKSAqLworICAgIFVDQTBCUjEgPSAweDAzOyAgICAgICAgIC8qIDhNSHogREMwIDk2MDAgKi8KKyAgICBVQ0EwTUNUTCA9IFVDQlJTXzI7ICAgICAvKiA4TUh6IERDMCBNb2R1bGF0aW9uIChVQ0JSU3ggPSAyOiBVQ09TMTYgPSAwLCBVQ0JSRnggPSAwKSAqLworI2Vsc2UKKyAgICBVQ0EwQlIwID0gMTA0OyAgICAgICAgICAvKiAxTUh6IERDMCA5NjAwIChAOE1IeiA5NjAwLCB1c2UgMHg0MSkgKi8KKyAgICBVQ0EwQlIxID0gMDsgICAgICAgICAgICAvKiAxTUh6IERDMCA5NjAwIChAOE1IeiA5NjAwLCB1c2UgMHgwMykgKi8KKyAgICBVQ0EwTUNUTCA9IFVDQlJTMDsgICAgICAvKiAxTUh6IERDMCBNb2R1bGF0aW9uIChVQ0JSU3ggPSAxOiBVQ09TMTYgPSAwLCBVQ0JSRnggPSAwKSAqLworI2VuZGlmCisKKyAgICBVQ0EwQ1RMMSAmPSB+VUNTV1JTVDsgICAvKiBJbml0aWFsaXplIFVTQ0kgc3RhdGUgbWFjaGluZSAqLworICAgIElFMiB8PSBVQ0EwUlhJRTsgICAgICAgIC8qIEVuYWJsZSBVU0NJX0EwIFJYIGludGVycnVwdCAqLworCisgICAgZmxhc2goR1JFRU4sIDUwLCA0KTsgICAgLyogaW5kaWNhdGUgdGhlIGluaXQgaXMgZG9uZSAqLworfQorCisvKgorICogID09PT09PT09IGZsYXNoID09PT09PT09CisgKi8KK3N0YXRpYyB2b2lkIGZsYXNoKEludCBjb2xvciwgSW50IHBlcmlvZCwgSW50IGNvdW50KQoreworICAgIGlmIChwZXJpb2QgPT0gRk9SRVZFUikgeworICAgICAgICBQMU9VVCB8PSBjb2xvcjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAKKyAgICB3aGlsZSAoY291bnQpIHsKKyAgICAgICAgdm9sYXRpbGUgdW5zaWduZWQgaW50IGk7ICAgIC8qIHZvbGF0aWxlIHRvIHByZXZlbnQgb3B0aW1pemF0aW9uICovCisgICAgICAgIAorICAgICAgICBQMU9VVCBePSBjb2xvcjsgICAgICAgICAgICAgLyogdG9nZ2xlIFAxLjEsMCB1c2luZyBleGNsdXNpdmUtT1IgKi8KKyAgICAgICAgCisgICAgICAgIGZvciAoaSA9IHBlcmlvZCAqIDEwMDA7IGkgIT0gMDsgaS0tKSB7ICAvKiBkZWxheSBwZXJpb2QgKi8KKyAgICAgICAgICAgIDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb3VudCA+IDApIHsgICAgICAgICAgICAvKiBpZiBjb3VudCBzdGFydHMgPCAwLCBnbyBmb3JldmVyICovCisgICAgICAgICAgICBjb3VudC0tOworICAgICAgICB9CisgICAgfQorfQorCisvKgorICogID09PT09PT09IG15UHV0YyA9PT09PT09PQorICovCitzdGF0aWMgdm9pZCBteVB1dGMoQ2hhciBjaCkKK3sKKyAgICB3aGlsZSAoIShJRkcyICYgVUNBMFRYSUZHKSkgeyAgIC8qIFVTQ0lfQTAgVFggYnVmZmVyIHJlYWR5PyAqLworICAgICAgICA7CisgICAgfQorCisgICAgVUNBMFRYQlVGID0gY2g7ICAgICAgICAgICAgICAgICAvKiBUWCAtPiBjaCAqLworfQorCisvKgorICogID09PT09PT09IFVTQ0kwUlhfSVNSID09PT09PT09CisgKi8KK19faW50ZXJydXB0IHZvaWQgVVNDSTBSWF9JU1Iodm9pZCkKK3sKKyAgICBjaGFyIGM7CisgICAgICAgIAorICAgIGMgPSBVQ0EwUlhCVUY7ICAgICAgICAgICAgICAgICAgLyogcmVhZCB0aGUgY2hhcmFjdGVyICovCisKKyAgICBpZiAoU3lzVWFydF9nZXRMaW5lRnhuID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChTeXNVYXJ0X2xpbmVCdWYgPT0gTlVMTCkgeworICAgICAgICBTeXNVYXJ0X2dldExpbmVGeG4oJmMsIDEpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGMgPT0gJ1xuJykgeworICAgICAgICBTeXNVYXJ0X2xpbmVCdWZbbW9kdWxlLT5saW5lSWR4XSA9IDA7CisgICAgICAgIFN5c1VhcnRfZ2V0TGluZUZ4bihTeXNVYXJ0X2xpbmVCdWYsIG1vZHVsZS0+bGluZUlkeCk7CisgICAgICAgIG1vZHVsZS0+bGluZUlkeCA9IDA7CisgICAgfQorICAgIGVsc2UgaWYgKG1vZHVsZS0+bGluZUlkeCA8IFN5c1VhcnRfbGluZVNpemUpIHsKKyAgICAgICAgU3lzVWFydF9saW5lQnVmW21vZHVsZS0+bGluZUlkeCsrXSA9IGM7CisgICAgfQorfQorCitfX2FzbSgiXHQuZ2xvYmFsIFVTQ0kwUlhfSVNSIik7CitfX2FzbSgiXHQuc2VjdCAgIFwiLnVzY2lfcnhcIiIpOworX19hc20oIlx0LmFsaWduICAyIik7CitfX2FzbSgiX1VTQ0kwX3J4X3ZlY3Rvcjpcblx0LmZpZWxkIFVTQ0kwUlhfSVNSLCAxNiIpOwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvU3lzVWFydC54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9TeXNVYXJ0LnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NmExOTYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvU3lzVWFydC54ZGMKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqICA9PT09PT09PSBTeXNVYXJ0LnhkYyA9PT09PT09PQorICovCitpbXBvcnQgeGRjLnJ1bnRpbWUuVHlwZXM7CisKKy8qIQorICogID09PT09PT09IFN5c1VhcnQgPT09PT09PT0KKyAqICBJbXBsZW1lbnRhdGlvbiBvZiBJU3lzdGVtU3VwcG9ydCB0aGF0IHNlbmRzIG91dHB1dCB0byBhIFVBUlQKKyAqCisgKiAgVGhpcyBtb2R1bGUgcHJvdmlkZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIGB7QGxpbmsgSVN5c3RlbVN1cHBvcnR9YAorICogIGludGVyZmFjZSB0aGF0IHNpbXBseSB3cml0ZXMgZWFjaCBjaGFyYWN0ZXIgdG8gdGhlIE1TUDQzMCdzIFVBUlQuCisgKi8KK0BNb2R1bGVTdGFydHVwCittb2R1bGUgU3lzVWFydCBpbmhlcml0cyB4ZGMucnVudGltZS5JU3lzdGVtU3VwcG9ydCB7CisgCisgICAgLyohCisgICAgICogID09PT09PT09IEdldExpbmVGeG4gPT09PT09PT0KKyAgICAgKiAgSW5wdXQgYSBzaW5nbGUgbGluZQorICAgICAqLworICAgICB0eXBlZGVmIFZvaWQgKCpHZXRMaW5lRnhuKShDaGFyW10sIEludCk7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gZ2V0TGluZUZ4biA9PT09PT09PQorICAgICAqICBVc2VyIHN1cGxpZWQgY2hhcmFjdGVyIGlucHV0IGZ1bmN0aW9uCisgICAgICoKKyAgICAgKiAgSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIGEgbm9uLWBudWxsYCB2YWx1ZSwgdGhlIHNwZWNpZmllZAorICAgICAqICBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB0byBpbnB1dCBhIGxpbmUgb2YgY2hhcnMgcmVjZWl2ZWQgYnkKKyAgICAgKiAgYFN5c1VhcnRgLgorICAgICAqCisgICAgICogIEZvciBleGFtcGxlLCBpZiB5b3UgZGVmaW5lIGEgZnVuY3Rpb24gbmFtZWQgYG15R2V0TGluZUZ4bmAsIHRoZQorICAgICAqICBmb2xsb3dpbmcgY29uZmlndXJhdGlvbiBmcmFnbWVudCB3aWxsIGNhdXNlIGBTeXNVYXJ0YCB0byBjYWxsCisgICAgICogIGBteUdldExpbmVGeG5gIHdoZW5ldmVyIGEgbGluZSBpcyByZWNlaXZlZC4KKyAgICAgKiAgQHAoY29kZSkKKyAgICAgKiAgICAgIHZhciBTeXNVYXJ0ID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuU3lzVWFydCIpOworICAgICAqICAgICAgU3lzVWFydC5nZXRMaW5lRnhuID0gIiZteUdldExpbmVGeG4iOworICAgICAqICBAcAorICAgICAqCisgICAgICogIElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzZXQsIGEgZGVmYXVsdCBmdW5jdGlvbiB3aWxsIGJlIHVzZWQgd2hpY2gKKyAgICAgKiAgc2ltcGx5IGRyb3BzIHRoZSBpbnB1dC4KKyAgICAgKgorICAgICAqICBAc2VlICNHZXRMaW5lRnhuCisgICAgICovCisgICAgY29uZmlnIEdldExpbmVGeG4gZ2V0TGluZUZ4biA9IG51bGw7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gbGluZVNpemUgPT09PT09PT0KKyAgICAgKiAgVGhlIG1heGltdW0gbGluZSBidWZmZXIgc2l6ZQorICAgICAqCisgICAgICogIFRoZSBtYXhpbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGJ1ZmZlciBiZWZvcmUgY2FsbGluZyAKKyAgICAgKiAgYGdldExpbmVGeG5gLiAgSWYgc2V0IHRvIHplcm8sIG5vIGJ1ZmZlcmluZyBvY2N1cnMgYW5kIGVhY2gKKyAgICAgKiAgY2hhcmFjdGVyIHJlY2VpdmVkIHRyaWdnZXJzIGBnZXRMaW5lRnhuYCAoaWYgaXQncyBkZWZpbmVkKS4KKyAgICAgKi8KKyAgICBjb25maWcgSW50IGxpbmVTaXplID0gMDsKKworaW50ZXJuYWw6CisgICAgCisgICAgY29uZmlnIENoYXIgbGluZUJ1ZltdOworCisgICAgc3RydWN0IE1vZHVsZV9TdGF0ZSB7CisgICAgICAgIFVJbnQgbGluZUlkeDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9TeXNVYXJ0LnhzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvU3lzVWFydC54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNmUzYjE5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvU3lzVWFydC54cwpAQCAtMCwwICsxLDI3IEBACisvKgorICogID09PT09PT09IFN5c1VhcnQueHMgPT09PT09PT0KKyAqLworCisvKgorICogID09PT09PT09IG1vZHVsZSRzdGF0aWMkaW5pdCA9PT09PT09PQorICovCitmdW5jdGlvbiBtb2R1bGUkc3RhdGljJGluaXQob2JqLCBwYXJhbXMpCit7CisgICAgLyogaW5pdGlhbGl6ZSBtb2R1bGUncyBpbnRlcm5hbCBzdGF0ZSAqLworICAgIG9iai5saW5lSWR4ID0gMDsKKyAgICBpZiAocGFyYW1zLmxpbmVTaXplID4gMCkgeworICAgICAgICBwYXJhbXMubGluZUJ1Zi5sZW5ndGggPSBwYXJhbXMubGluZVNpemUgKyAxOworICAgIH0KK30KKworLyoKKyAqICA9PT09PT09PSBtb2R1bGUkdXNlID09PT09PT09CisgKi8KK2Z1bmN0aW9uIG1vZHVsZSR1c2UoKQoreworICAgIHhkYy51c2VNb2R1bGUoInhkYy5ydW50aW1lLlN0YXJ0dXAiKTsKKyAgICAKKyAgICAvKiBuZWVkIHRvIGluaXRpYWxpemUgdGhlIFVBUlQncyBSeCBpbnRlcnJ1cHQgdmVjdG9yICovCisgICAgUHJvZ3JhbS5zZWN0TWFwWyIudXNjaV9yeCJdID0ge2xvYWRTZWdtZW50OiAiVVNDSV9SWCJ9OworICAgIFByb2dyYW0uc2VjdE1hcFsiLnJlc2V0Il0gPSB7bG9hZFNlZ21lbnQ6ICJSRVNFVCJ9OworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvaWRsZS5jIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvaWRsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZGI0ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9pZGxlLmMKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqICA9PT09PT09PSBpZGxlID09PT09PT09CisgKi8KK3ZvaWQgaWRsZSh2b2lkKQoreworICAgIF9fYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cyArIEdJRSk7IC8qIEVudGVyIExQTTAsIGludGVycnVwdHMgZW5hYmxlZCAqLworfQorCisvKgorICogID09PT09PT09IFVTQ0kwUlhfSVNSID09PT09PT09CisgKi8KK19faW50ZXJydXB0IHZvaWQgVVNDSTBSWF9JU1Iodm9pZCkKK3sKKyAgICBjaGFyIGM7CisgICAgICAgIAorICAgIHdoaWxlICghKElGRzIgJiBVQ0EwVFhJRkcpKSB7ICAgLyogVVNDSV9BMCBUWCBidWZmZXIgcmVhZHk/ICovCisgICAgICAgIDsKKyAgICB9CisKKyAgICBjID0gVUNBMFJYQlVGOworCisgICAgaWYgKGMgPT0gJ1cnKSB7CisgICAgICAgIF9fYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKTsgICAvKiBDbGVhciBMUE0wIGJpdHMgZnJvbSAwKFNSKSAqLworICAgIH0KKyAgICBpZiAoU3lzVWFydF9pbnB1dEZ4biAhPSBOVUxMKSB7CisgICAgICAgIFN5c1VhcnRfaW5wdXRGeG4oJmMpOworICAgIH0KK30KKworX19hc20oIlx0Lmdsb2JhbCBVU0NJMFJYX0lTUiIpOworX19hc20oIlx0LnNlY3QgICBcIi51c2NpX3J4XCIiKTsKK19fYXNtKCJcdC5hbGlnbiAgMiIpOworX19hc20oIl9VU0NJMF9yeF92ZWN0b3I6XG5cdC5maWVsZCBVU0NJMFJYX0lTUiwgMTYiKTsKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvcGFja2FnZS5ibGQgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MTFhNjliCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvcGFja2FnZS5ibGQKQEAgLTAsMCArMSwxNSBAQAorLyogd2UgbmVlZCB0byBhZGQgdGhlIFBrZy51c2VzIGhlcmUgdG8gd29yayBhcm91bmQgYSBidWcgaW4gdGhlIG1zcDQzMCBoZWFkZXIKKyAqIGZpbGVzOiB0aGV5IGVtYmVkIGEgJyNpbmNsdWRlIDxJbjQzMC5oPicgd2hlbiB0aGV5IHNob3VsZCBoYXZlIHVzZWQKKyAqICcjaW5jbHVkZSAiSW40MzAuaCInLgorICovCitQa2cudXNlcyA9IFsidGkvYXBwcy9tc3A0MzAiXTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCBCdWlsZC50YXJnZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIHRhcmcgPSBCdWlsZC50YXJnZXRzW2ldOworCisgICAgaWYgKHRhcmcuaXNhLm1hdGNoKC80MzAvKSkgeworICAgICAgICB2YXIgbGliID0gUGtnLmFkZExpYnJhcnkoImxpYi8iICsgUGtnLm5hbWUsIHRhcmcpOworICAgICAgICBsaWIuYWRkT2JqZWN0cyhQa2cubW9kdWxlcyk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9wYWNrYWdlLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzODk4YTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9wYWNrYWdlLnhkYwpAQCAtMCwwICsxLDIwIEBACisvKiEKKyAqICA9PT09PT09PSBsb2NhbC5ydW50aW1lID09PT09PT09CisgKiAgTG9jYWwgZXh0ZW5zaW9ucyB0byB0aGUgeGRjLnJ1bnRpbWUgbW9kdWxlcworICoKKyAqICBUaGlzIHBhY2thZ2UgaWxsdXN0cmF0ZXMgaG93IHRvIGV4dGVuZCB0aGUgeGRjLnJ1bnRpbWUgcnVudGltZQorICogIGZvciBhIHBhcnRpY3VsYXIgcGxhdGZvcm0uICBJbiB0aGlzIGNhc2UsIHRoZSBtb2R1bGVzIGluIHRoaXMgcGFja2FnZQorICogIGVuYWJsZSBmdWxsIHVzZSBvZiB0aGUgeGRjLnJ1bnRpbWUgZm9yIHRoZSBFWjQzMC1SRjI1MDAgaGFyZGFyZS4KKyAqCisgKiAgQWx0aG91Z2ggdGhlIG1vZHVsZXMgaW4gdGhpcyBwYWNrYWdlIGFyZSBkZXNpZ25lZCB0byBzdXBwb3J0IHRoZQorICogIEVaNDMwLVJGMjUwMCwgbGFyZ2UgcGFydHMgb2YgdGhlIGltcGxlbWVudGF0aW9ucyBhcmUgcG9ydGFibGUgdG8KKyAqICBtYW55IHNpbWlsYXIgcGxhdGZvcm1zLgorICovCitwYWNrYWdlIGxvY2FsLnJ1bnRpbWUgeworICAgIG1vZHVsZSBTeXNCdWY7CisgICAgbW9kdWxlIFN5c1VhcnQ7CisgICAgbW9kdWxlIExvZ2dlclVhcnQ7CisgICAgbW9kdWxlIExvZ2dlckNhbGxiYWNrOworICAgIG1vZHVsZSBHYXRlR0lFOworICAgIG1vZHVsZSBIZWFwTnVsbDsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3BhY2thZ2UueHMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9wYWNrYWdlLnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcyNDU5NGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS9wYWNrYWdlLnhzCkBAIC0wLDAgKzEsMjAgQEAKKy8qCisgKiAgPT09PT09PT0gY2xvc2UgPT09PT09PT0KKyAqLworZnVuY3Rpb24gY2xvc2UoKQoreworICAgIHZhciBTeXN0ZW0gPSB4ZGMubW9kdWxlKCJ4ZGMucnVudGltZS5TeXN0ZW0iKTsKKworICAgIC8qIGlmIG5vIG9uZSBkZWZpbmVkIHRoZSBTeXN0ZW0gZ2F0ZSwgZGVmaW5lIGl0IGhlcmUgKi8KKyAgICBpZiAoU3lzdGVtLmNvbW1vbiQuZ2F0ZSA9PSBudWxsICYmIFByb2dyYW0uYnVpbGQudGFyZ2V0LmlzYSA9PSAiNDMwIikgeworICAgICAgICBwcmludCgidXNpbmcgIiArIHRoaXMuJG5hbWUgKyAiLkdhdGVHSUUgdG8gcHJvdGVjdCBTeXN0ZW0iKTsKKyAgICAgICAgdmFyIEdhdGVHSUUgPSB4ZGMudXNlTW9kdWxlKHRoaXMuJG5hbWUgKyAiLkdhdGVHSUUiKTsKKyAgICAgICAgU3lzdGVtLmNvbW1vbiQuZ2F0ZSA9IEdhdGVHSUUuY3JlYXRlKCk7CisgICAgfQorICAgIAorICAgIHZhciBNZW1vcnkgPSB4ZGMubW9kdWxlKCJ4ZGMucnVudGltZS5NZW1vcnkiKTsKKyAgICBpZiAoTWVtb3J5LiR1c2VkICYmIE1lbW9yeS5IZWFwUHJveHkgPT0gbnVsbCkgeworICAgICAgICBwcmludCgidXNpbmcgIiArIHRoaXMuJG5hbWUgKyAiLkhlYXBOdWxsIHRvIHByb3h5IE1lbW9yeSIpOworICAgICAgICBNZW1vcnkuSGVhcFByb3h5ID0geGRjLnVzZU1vZHVsZSh0aGlzLiRuYW1lICsgIi5IZWFwTnVsbCIpOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzLy5jZHRwcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvLmNkdHByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFiMjg0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzLy5jZHRwcm9qZWN0CkBAIC0wLDAgKzEsMjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPD9lY2xpcHNlLWNkdCB2ZXJzaW9uPSIyLjAiPz4NCisNCis8Y2R0cHJvamVjdCBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlIj4NCis8ZXh0ZW5zaW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYmluYXJ5cGFyc2VyLkNvZmZQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5CaW5hcnlQYXJzZXIiLz4NCis8ZGF0YT4NCis8aXRlbSBpZD0ic2Nhbm5lckNvbmZpZ3VyYXRpb24iPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L2l0ZW0+DQorPGl0ZW0gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhdGhlbnRyeSI+DQorPHBhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0ib3V0IiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5ESVNDT1ZFUkVEX1NDQU5ORVJfSU5GTyIvPg0KKzwvaXRlbT4NCis8L2RhdGE+DQorPC9jZHRwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzLy5wcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE4YzQyNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzLy5wcm9qZWN0CkBAIC0wLDAgKzEsODIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+bG9jYWwucnVudGltZS51dGlsczwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCQk8cHJvamVjdD50eG4udGFyZ2V0czwvcHJvamVjdD4NCisJPC9wcm9qZWN0cz4NCisJPGJ1aWxkU3BlYz4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlQnVpbGRlcjwvbmFtZT4NCisJCQk8dHJpZ2dlcnM+Y2xlYW4sZnVsbCxpbmNyZW1lbnRhbCw8L3RyaWdnZXJzPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLmFyZ3VtZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5jb3JlLmVycm9yT3V0cHV0UGFyc2VyPC9rZXk+DQorCQkJCQk8dmFsdWU+Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkNvZmZFcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQXNtRXJyb3JQYXJzZXI7Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkxpbmtFcnJvclBhcnNlcjtvcmcuZWNsaXBzZS5jZHQuY29yZS5NYWtlRXJyb3JQYXJzZXI7PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQXV0b0J1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5pbmM8L2tleT4NCisJCQkJCTx2YWx1ZT5hbGw8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUZ1bGxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZWRJbmNyZW1lbnRhbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQuY29tbWFuZDwva2V5Pg0KKwkJCQkJPHZhbHVlPiR7WERDUk9PVH0veGRjPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuY2xlYW48L2tleT4NCisJCQkJCTx2YWx1ZT5jbGVhbjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFwcGVuZF9lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnVzZURlZmF1bHRCdWlsZENtZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuYXV0bzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQuY29yZS5jbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZU5hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdOYXR1cmU8L25hdHVyZT4NCisJPC9uYXR1cmVzPg0KKzwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZWI4ODcwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzCkBAIC0wLDAgKzEsMyBAQAorI1RodSBNYXIgMDUgMjM6MzE6MjAgUFNUIDIwMDkNCitlY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQ0KK2luZGV4ZXJJZD1vcmcuZWNsaXBzZS5jZHQuY29yZS5kb21zb3VyY2VpbmRleGVyDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy8ueGRjZW52Lm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGQxMDEzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAwCitpZm5lcSAoLCQoZmluZHN0cmluZyBwYXRoLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ1BBVEggPSAKK292ZXJyaWRlIFhEQ1JPT1QgPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMworb3ZlcnJpZGUgWERDQlVJTERDRkcgPSAuLi8uLi8uLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzL3BhY2thZ2VzOy4uLy4uLy4uCitIT1NUT1MgPSBMaW51eAorZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL0Nsb2NrLmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy9DbG9jay5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2MmUwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy9DbG9jay5jCkBAIC0wLDAgKzEsOTkgQEAKKy8qCisgKiAgPT09PT09PT0gQ2xvY2suYyA9PT09PT09PQorICovCisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3RhcnR1cC5oPgorCisjaW5jbHVkZSAicGFja2FnZS9pbnRlcm5hbC9DbG9jay54ZGMuaCIKKworCisjaWYgMAorI2luY2x1ZGUgPHRpL2FwcHMvbXNwNDMwLmg+CisjZWxzZQorI2RlZmluZSBDQ0lGRyAgICAgICAoMHgwMDAxKSAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgKDEqMHgxMHUpICAgLyogVGltZXIgQS9CIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgKDEqMHgxMDB1KSAgLyogVGltZXIgQS9CIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIFRBSVYgICAgKCoodm9sYXRpbGUgVUludDE2ICopMHgwMTJFKQorI2RlZmluZSBUQUNUTCAgICgqKHZvbGF0aWxlIFVJbnQxNiAqKTB4MDE2MCkKKyNkZWZpbmUgVEFDQ1RMMCAoKih2b2xhdGlsZSBVSW50MTYgKikweDAxNjIpCisjZGVmaW5lIFRBQ0NUTDEgKCoodm9sYXRpbGUgVUludDE2ICopMHgwMTY0KQorI2RlZmluZSBUQUNDVEwyICgqKHZvbGF0aWxlIFVJbnQxNiAqKTB4MDE2NikKKyNkZWZpbmUgVEFSICAgICAoKih2b2xhdGlsZSBVSW50MTYgKikweDAxNzApCisjZGVmaW5lIFRBQ0NSMCAgKCoodm9sYXRpbGUgVUludDE2ICopMHgwMTcyKQorI2RlZmluZSBUQUNDUjEgICgqKHZvbGF0aWxlIFVJbnQxNiAqKTB4MDE3NCkKKyNkZWZpbmUgVEFDQ1IyICAoKih2b2xhdGlsZSBVSW50MTYgKikweDAxNzYpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQjMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgVEJJViAgICAoKih2b2xhdGlsZSBVSW50MTYgKikweDAxMUUpCisjZGVmaW5lIFRCQ1RMICAgKCoodm9sYXRpbGUgVUludDE2ICopMHgwMTgwKQorI2RlZmluZSBUQkNDVEwwICgqKHZvbGF0aWxlIFVJbnQxNiAqKTB4MDE4MikKKyNkZWZpbmUgVEJDQ1RMMSAoKih2b2xhdGlsZSBVSW50MTYgKikweDAxODQpCisjZGVmaW5lIFRCQ0NUTDIgKCoodm9sYXRpbGUgVUludDE2ICopMHgwMTg2KQorI2RlZmluZSBUQlIgICAgICgqKHZvbGF0aWxlIFVJbnQxNiAqKTB4MDE5MCkKKyNkZWZpbmUgVEJDQ1IwICAoKih2b2xhdGlsZSBVSW50MTYgKikweDAxOTIpCisjZGVmaW5lIFRCQ0NSMSAgKCoodm9sYXRpbGUgVUludDE2ICopMHgwMTk0KQorI2RlZmluZSBUQkNDUjIgICgqKHZvbGF0aWxlIFVJbnQxNiAqKTB4MDE5NikKKyNlbmRpZgorCisjZGVmaW5lIEJTUF9USU1FUl9DTEtfTUhaICAgOAorI2RlZmluZSBQRVJJT0RfMVNFQyAgICAgICAgIDEyMDAwdQorCitzdGF0aWMgSW50IHRpY2tzID0gMDsKKworLyoKKyAqICA9PT09PT09PSBDbG9ja19Nb2R1bGVfc3RhcnR1cCA9PT09PT09PQorICovCitJbnQgQ2xvY2tfTW9kdWxlX3N0YXJ0dXAoSW50IFN0YXRlKQoreworICAgIC8qIAorICAgICAqIFdlIHVzZSBUaW1lcl9CIHNpbmNlIEJTUCB1c2VzIFRpbWVyX0EKKyAgICAgKi8KKy8vICAgIFRCQ0NSMCA9IFBFUklPRF8xU0VDOyAgICAgICAvKiB+MSBzZWNvbmQgKi8KKyAgICBUQkNDUjAgPSAweGZmZmY7CisgICAgVEJDVEwgPSBUQVNTRUxfMSArIE1DXzE7ICAgIC8qIEFDTEssIHVwbW9kZSAqLworICAgIFRCUiA9IDA7ICAgICAgICAgICAgICAgICAgICAvKiBpbml0aWFsIGNvdW50ICovCisgICAgCisgICAgcmV0dXJuIChTdGFydHVwX0RPTkUpOworfQorCisvKgorICogID09PT09PT09IENsb2NrX2dldFRpbWUgPT09PT09PT0KKyAqLworQ2xvY2tfVGltZVZhbHVlIENsb2NrX2dldFRpbWUoKQoreworICAgIHJldHVybiAoKChVSW50MTYpdGlja3MgKiBQRVJJT0RfMVNFQykgKyBUQlIpOworfQorCisvKgorICogID09PT09PT09IENsb2NrX3RpY2sgPT09PT09PT0KKyAqLworVm9pZCBDbG9ja190aWNrKHZvaWQpCit7CisgICAgdGlja3MrKzsKK30KKworLyoKKyAqICA9PT09PT09PSBDbG9ja19kZWxheSA9PT09PT09PQorICovCitWb2lkIENsb2NrX2RlbGF5KFVJbnQxNiB1c2VjKQoreworICAgIFRCUiA9IDA7IC8qIGluaXRpYWwgY291bnQgKi8KKyAgICBUQkNDUjAgPSBCU1BfVElNRVJfQ0xLX01IWiAqIHVzZWM7IC8qIGNvbXBhcmUgY291bnQuIChkZWxheSBpbiB0aWNrcykgKi8KKyAgICAKKyAgICAvKiBTdGFydCB0aGUgdGltZXIgaW4gVVAgbW9kZSAqLworICAgIFRCQ1RMIHw9IE1DXzE7CisgICAgCisgICAgLyogTG9vcCB0aWxsIGNvbXBhcmUgaW50ZXJydXB0IGZsYWcgaXMgc2V0ICovCisgICAgd2hpbGUoIShUQkNDVEwwICYgQ0NJRkcpKTsKKyAgICAKKyAgICAvKiBTdG9wIHRoZSB0aW1lciAqLworICAgIFRCQ1RMICY9IH4oTUNfMSk7CisgICAgCisgICAgLyogQ2xlYXIgdGhlIGludGVycnVwdCBmbGFnICovCisgICAgVEJDQ1RMMCAmPSB+Q0NJRkc7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy9DbG9jay54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy9DbG9jay54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQ0MjA3MwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL0Nsb2NrLnhkYwpAQCAtMCwwICsxLDMyIEBACisvKgorICogID09PT09PT09IENsb2NrLnhkYyA9PT09PT09PQorICovCisKKy8qIQorICogID09PT09PT09IENsb2NrID09PT09PT09CisgKiAgQmFzaWMgIndhbGwgY2xvY2siIGZ1bmN0aW9ucworICovCitATW9kdWxlU3RhcnR1cAorCittb2R1bGUgQ2xvY2sgeworICAgIC8qISAKKyAgICAgKiAgPT09PT09PT0gVGltZVZhbHVlID09PT09PT09CisgICAgICogIFRpbWUgdmFsdWUgdHlwZQorICAgICAqLworICAgIHR5cGVkZWYgVUludDE2IFRpbWVWYWx1ZTsKKyAKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gZ2V0VGltZSA9PT09PT09PQorICAgICAqICBHZXQgdGhlIGN1cnJlbnQgdGltZQorICAgICAqLworICAgIFRpbWVWYWx1ZSBnZXRUaW1lKCk7CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gdGljayA9PT09PT09PQorICAgICAqICBBZHZhbmNlIHRpbWUgYnkgb25lICJ0aWNrIgorICAgICAqCisgICAgICogIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiB0byBhZHZhbmNlIHRpbWUKKyAgICAgKiAgYnkgb25lIHRpbWVyIHBlcmlvZAorICAgICAqLworICAgIFZvaWQgdGljaygpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvU3RhY2suYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL1N0YWNrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdhNWY1NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL1N0YWNrLmMKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqICA9PT09PT09PSBTdGFjay5jID09PT09PT09CisgKi8KKyNpbmNsdWRlIDx4ZGMvcnVudGltZS9TdGFydHVwLmg+CisKKyNpbmNsdWRlICJwYWNrYWdlL2ludGVybmFsL1N0YWNrLnhkYy5oIgorCisvKgorICogIFRoZSBmb2xsb3dpbmcgc3ltYm9scyBhcmUgZGVmaW5lZCBieSB0aGUgbGlua2VyIGFuZCBkZWxpbWl0IHRoZSBzdGFjay4KKyAqICBGb3IgZXhhbXBsZToKKyAqICAgICAgJl9zdGFjayAgICAgICA9IDB4NTA4LAorICogICAgICAmX19TVEFDS19TSVpFID0gMHhmMAorICogICAgICAmX19TVEFDS19FTkQgID0gMHg1ZjgsCisgKiAgd2hlcmUgdGhlIC5zdGFjayBzZWN0aW9uIHN0YXJ0cyBhdCAweDUwOCBhbmQgaGFzIGxlbmd0aCAweGYwLgorICoKKyAqLworZXh0ZXJuIEludCBfc3RhY2s7ICAgIAorZXh0ZXJuIEludCBfX1NUQUNLX0VORDsKK2V4dGVybiBJbnQgX19TVEFDS19TSVpFOworCisvKgorICogID09PT09PT09IEZJTEwgPT09PT09PT0KKyAqICBUaGUgZGlzdGluZ3Vpc2hlZCBmaWxsIHZhbHVlIGZvciB0aGUgc3RhY2sKKyAqLworI2RlZmluZSBGSUxMIDB4Q0FGRQorCisvKgorICogID09PT09PT09IFN0YWNrX01vZHVsZV9zdGFydHVwID09PT09PT09CisgKiAgQ2FsbGVkIGVhcmx5IGluIHRoZSBzdGFydHVwIChiZWZvcmUgbWFpbikKKyAqLworSW50IFN0YWNrX01vZHVsZV9zdGFydHVwKEludCBzdGF0ZSkKK3sKKyAgICBTdGFja19maWxsKCk7CisgICAgcmV0dXJuIChTdGFydHVwX0RPTkUpOworfQorCisvKgorICogID09PT09PT09IFN0YWNrX2ZpbGwgPT09PT09PT0KKyAqLworVm9pZCBTdGFja19maWxsKHZvaWQpCit7CisgICAgaW50ICpzcDsKKworICAgIC8qIGZpbGwgc3RhY2sgZG93biB0byB0aGUgYWRkcmVzcyBvZiBvdXIgYXV0b21hdGljIHZhcmlhYmxlIHNwCisgICAgICogd2l0aCBhbiBpbml0aWFsIHZhbHVlIChGSUxMKS4gIFdlIHN1YnRyYWN0IDQgYXMgYSBwcmVjYXV0aW9uIHRvCisgICAgICogYXZvaWQgY29ycnVwdGluZyBhIHBvcnRpb24gb2Ygc3RhY2sgdGhhdCBhIGNvbXBpbGVyIG1pZ2h0IHVzZS4KKyAgICAgKi8KKyAgICBmb3IgKHNwID0gJl9zdGFjazsgc3AgPCAoKGludCAqKSZzcCAtIDQpOyBzcCsrKSB7CisgICAgICAgICpzcCA9IEZJTEw7CisgICAgfQorfQorCisvKgorICogID09PT09PT09IFN0YWNrX2dldFVudXNlZCA9PT09PT09PQorICovCitJbnQgU3RhY2tfZ2V0VW51c2VkKFZvaWQpCit7CisgICAgSW50ICpzcDsKKworICAgIC8qIGZvciBtYW55IENQVXMgKGluY2x1ZGluZyBNU1A0MzApIHRoZSBzdGFjayBncm93cyB0byBsb3dlciBhZGRyZXNzZXMuCisgICAgICogY2hlY2sgZnJvbSB0aGUgdG9wIGRvd24gdW50aWwgdGhlIGluaXRpYWwgdmFsdWUgKEZJTEwpIGhhcyBiZWVuCisgICAgICogb3ZlcndyaXR0ZW4uCisgICAgICovCisgICAgZm9yIChzcCA9ICZfc3RhY2s7IHNwIDwgJl9fU1RBQ0tfRU5EOyBzcCsrKSB7CisgICAgICAgIGlmICgqc3AgIT0gRklMTCkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gKHNwIC0gJl9zdGFjayk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gU3RhY2tfZ2V0U3RhdHVzID09PT09PT09CisgKi8KK1ZvaWQgU3RhY2tfZ2V0U3RhdHVzKFN0YWNrX1N0YXR1cyAqc3RhdCkKK3sKKyAgICB2b2xhdGlsZSBJbnQgaTsKKyAgICAKKyAgICBzdGF0LT51bnVzZWQgPSBTdGFja19nZXRVbnVzZWQoKTsKKyAgICBzdGF0LT51c2VkID0gKChJbnQpJl9fU1RBQ0tfU0laRSAvIHNpemVvZiAoSW50KSkgLSBzdGF0LT51bnVzZWQ7CisgICAgc3RhdC0+Y3VyRGVwdGggPSAmaSAtICZfc3RhY2s7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy9TdGFjay54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy9TdGFjay54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzg2NTUzYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL1N0YWNrLnhkYwpAQCAtMCwwICsxLDUxIEBACitpbXBvcnQgeGRjLnJ1bnRpbWUuTG9nOworaW1wb3J0IHhkYy5ydW50aW1lLkRpYWdzOworCisvKiEKKyAqICA9PT09PT09PSBTdGFjayA9PT09PT09PQorICogIFN0YWNrIG1vbml0b3JpbmcgZnVuY3Rpb25zCisgKi8KK0BNb2R1bGVTdGFydHVwCittb2R1bGUgU3RhY2sKK3sKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gU3RhdHVzID09PT09PT09CisgICAgICogIFN0YWNrIHN0YXR1cyBpbmZvcm1hdGlvbiBidWZmZXIKKyAgICAgKi8KKyAgICBzdHJ1Y3QgU3RhdHVzIHsKKyAgICAgICAgSW50IHVudXNlZDsgICAgIC8qISBudW1iZXIgb2Ygd29yZHMgbmV2ZXIgdXNlZCAoc28gZmFyKSAqLworICAgICAgICBJbnQgdXNlZDsgICAgICAgLyohIHdvcnN0LWNhc2UgbnVtYmVyIG9mIHdvcmRzIHVzZWQgKHNvIGZhcikgKi8KKyAgICAgICAgSW50IGN1ckRlcHRoOyAgIC8qISBjdXJyZW50IG51bWJlciBvZiB3b3JkcyBvbiB0aGUgc3RhY2sgKi8KKyAgICB9CisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IFVOVVNFRCA9PT09PT09PQorICAgICAqICBVbnVzZWQgc3RhY2sgc3BhY2UgZXZlbnQKKyAgICAgKi8KKyAgICBjb25maWcgTG9nLkV2ZW50IFVOVVNFRCA9IHsKKyAgICAgICAgbWFzazogRGlhZ3MuVVNFUjEsCisgICAgICAgIG1zZzogInVudXNlZCBzdGFjayBzcGFjZSA9ICVkIHdvcmRzIgorICAgIH07CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gZmlsbCA9PT09PT09PQorICAgICAqICBGaWxsIHVudXNlZCBzdGFjayB3aXRoIGluaXRpYWwgdmFsdWUKKyAgICAgKgorICAgICAqICBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhdCBzdGFydHVwIGFuZCBtYXkgYmUgY2FsbGVkIGF0IHJ1bnRpbWUKKyAgICAgKiAgdG8gcmUtaW5pdGlhbGl6ZSB0aGUgc3RhY2suICBIb3dldmVyLCBpbnRlcnJ1cHRzIG11c3QgYmUgZGlzYWJsZWQKKyAgICAgKiAgZHVyaW5nIHRoaXMgcHJvY2VzcyAodG8gcHJldmVudCBjb3JydXB0aW9uIG9mIElTUiBzdGF0ZSkuCisgICAgICovCisgICAgVm9pZCBmaWxsKCk7CisgICAgCisgICAgLyohCisgICAgICogID09PT09PT09IGdldFVudXNlZCA9PT09PT09PQorICAgICAqICBHZXQgbnVtYmVyIG9mIHdvcmRzIG9mIHVudXNlZCBzdGFjayBzcGFjZQorICAgICAqLworICAgIEludCBnZXRVbnVzZWQoKTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBnZXRTdGF0dXMgPT09PT09PT0KKyAgICAgKiAgR2V0IG51bWJlciBvZiB3b3JkcyBvZiB1bnVzZWQgc3RhY2sgc3BhY2UKKyAgICAgKi8KKyAgICBWb2lkIGdldFN0YXR1cyhTdGF0dXMgKnN0YXQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvcGFja2FnZS5ibGQgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODQ2ZDBhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvcGFja2FnZS5ibGQKQEAgLTAsMCArMSw1IEBACitmb3IgKHZhciBpID0gMDsgaSA8IEJ1aWxkLnRhcmdldHMubGVuZ3RoOyBpKyspIHsKKyAgICB2YXIgdGFyZyA9IEJ1aWxkLnRhcmdldHNbaV07CisgICAgdmFyIGxpYiA9IFBrZy5hZGRMaWJyYXJ5KCJsaWIvIiArIFBrZy5uYW1lLCB0YXJnKTsKKyAgICBsaWIuYWRkT2JqZWN0cyhQa2cubW9kdWxlcyk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy9wYWNrYWdlLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkNzM2NTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy9wYWNrYWdlLnhkYwpAQCAtMCwwICsxLDkgQEAKKy8qIQorICogID09PT09PT09IHV0aWxzID09PT09PT09CisgKiAgTWlzYyB1dGlsaXRpZXMKKyAqLworcGFja2FnZSBsb2NhbC5ydW50aW1lLnV0aWxzCit7CisgICAgbW9kdWxlIENsb2NrOworICAgIG1vZHVsZSBTdGFjazsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL3Rlc3RzLy54ZGNlbnYubWFrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvdGVzdHMvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZjNDkxMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL3Rlc3RzLy54ZGNlbnYubWFrCkBAIC0wLDAgKzEsMTYgQEAKKyMKK19YRENCVUlMRENPVU5UID0gMAoraWZuZXEgKCwkKGZpbmRzdHJpbmcgcGF0aCwkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENQQVRIID0gCitvdmVycmlkZSBYRENST09UID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMKK292ZXJyaWRlIFhEQ0JVSUxEQ0ZHID0gLi4vLi4vLi4vLi4vY29uZmlnLmJsZAorZW5kaWYKK2lmbmVxICgsJChmaW5kc3RyaW5nIGFyZ3MsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDQVJHUyA9IAorb3ZlcnJpZGUgWERDVEFSR0VUUyA9IAorZW5kaWYKKyMKK2lmZXEgKDAsMSkKK1BLR1BBVEggPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMy9wYWNrYWdlczsuLi8uLi8uLi8uLgorSE9TVE9TID0gTGludXgKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy90ZXN0cy9oZWxsby5jIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvdGVzdHMvaGVsbG8uYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjIyZGIyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvdGVzdHMvaGVsbG8uYwpAQCAtMCwwICsxLDI3IEBACisjaW5jbHVkZSA8eGRjL3J1bnRpbWUvU3lzdGVtLmg+CisjaW5jbHVkZSA8bG9jYWwvcnVudGltZS91dGlscy9DbG9jay5oPgorCisjZGVmaW5lIExPT1BDT1VOVCAgIDEwCisKKy8qCisgKiAgPT09PT09PT0gbWFpbiA9PT09PT09PQorICovCitJbnQgbWFpbihJbnQgYXJnYywgU3RyaW5nIGFyZ3ZbXSkKK3sKKyAgICBpbnQgbG9vcHMgPSBMT09QQ09VTlQ7CisgICAgdm9sYXRpbGUgaW50IGo7CisgICAgQ2xvY2tfVGltZVZhbHVlIHRpbWUgPSBDbG9ja19nZXRUaW1lKCk7CisgICAgQ2xvY2tfVGltZVZhbHVlIGRlbHRhOworICAgIAorICAgIFN5c3RlbV9wcmludGYoImhlbGxvIHdvcmxkXG4iKTsKKworICAgIGZvciAoOzspIHsKKyAgICAgICAgdGltZSA9IENsb2NrX2dldFRpbWUoKTsKKyAgICAgICAgZm9yIChqID0gbG9vcHM7IGogPiAwOyBqLS0pOworICAgICAgICBkZWx0YSA9IENsb2NrX2dldFRpbWUoKSAtIHRpbWU7CisgICAgICAgIAorICAgICAgICBTeXN0ZW1fcHJpbnRmKCJsb29wIGNvdW50ID0gJWQsIGVsYXBzZWQgdGltZTogJWQsIGwvdDogJWRcbiIsIAorICAgICAgICAgICAgbG9vcHMsIGRlbHRhLCBsb29wcy9kZWx0YSk7CisgICAgICAgIGxvb3BzID0gKGxvb3BzICsgMTApICYgMHgxZmZmOworICAgIH0KK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL3Rlc3RzL2hlbGxvLmNmZyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL3Rlc3RzL2hlbGxvLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTM5YTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvdGVzdHMvaGVsbG8uY2ZnCkBAIC0wLDAgKzEsMjUgQEAKK3ZhciBTeXN0ZW0gPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5TeXN0ZW0iKTsKK3ZhciBDbG9jayA9IHhkYy51c2VNb2R1bGUoImxvY2FsLnJ1bnRpbWUudXRpbHMuQ2xvY2siKTsKKworLyogbWluaW1pemUgZm9vdHByaW50IGZvciBNU1A0MzAgdGFyZ2V0cyAqLworaWYgKFByb2dyYW0uYnVpbGQudGFyZ2V0LmlzYS5tYXRjaCgvNDMwLykpIHsKKyAgICBwcmludCgib3B0aW1pemluZyBmb290cHJpbnQgZm9yIHRoZSBNU1A0MzAgLi4uIik7CisgICAgUHJvZ3JhbS5hcmdTaXplID0gMDsgICAgLyogZG9uJ3QgbmVlZCBhcmMvYXJndiBzdXBwb3J0ICovCisgICAgUHJvZ3JhbS5zdGFjayA9IDB4MTAwOyAgLyogZG9uJ3QgbmVlZCBtdWNoIHN0YWNrIGZvciB0aGlzIGFwcCAqLworICAgIFByb2dyYW0uaGVhcCA9IDA7ICAgICAgIC8qIGRvbid0IG5lZWQgYW55IGhlYXAgZnJvbSB0aGUgcnVudGltZSAqLworCisgICAgLyogc2V0IFNUQVRJQ19QT0xJQ1ksIHJ1bnRpbWUgY3JlYXRpb24gc3VwcG9ydC9vdmVyaGVhZCBpcyBlbGltaW5hdGVkICovCisgICAgdmFyIFR5cGVzID0geGRjLm1vZHVsZSgneGRjLnJ1bnRpbWUuVHlwZXMnKTsKKyAgICB2YXIgRGVmYXVsdHMgPSB4ZGMudXNlTW9kdWxlKCJ4ZGMucnVudGltZS5EZWZhdWx0cyIpOworICAgIERlZmF1bHRzLmNvbW1vbiQubWVtb3J5UG9saWN5ID0gVHlwZXMuU1RBVElDX1BPTElDWTsKKworICAgIC8qIHVzZSBTeXNVYXJ0IHRvIGVsaW1pbmF0ZSBidWZmZXJzIHVzZWQgYnkgU3lzTWluL1N5c1N0ZCAqLworICAgIHZhciBTeXNVYXJ0ID0geGRjLnVzZU1vZHVsZSgibG9jYWwucnVudGltZS5TeXNVYXJ0Iik7CisKKyAgICBTeXN0ZW0uU3VwcG9ydFByb3h5ID0gU3lzVWFydDsKKyAgICBTeXN0ZW0ubWF4QXRleGl0SGFuZGxlcnMgPSAwOyAgIC8qIHNhdmUgMjBCIFJBTTsgZG9uJ3QgbmVlZCBhdGV4aXQoKSAqLworCisgICAgLyogdGhlIGZvbGxvd2luZyBzYXZlcyBhbG1vc3QgMUtCIG9mIEZMQVNIIChzdHJpbmdzIGFyZSBlbGltaW5hdGVkKSAqLworICAgIHZhciBUZXh0ID0geGRjLnVzZU1vZHVsZSgieGRjLnJ1bnRpbWUuVGV4dCIpOworICAgIFRleHQuaXNMb2FkZWQgPSBmYWxzZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL3Rlc3RzL3BhY2thZ2UuYmxkIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvdGVzdHMvcGFja2FnZS5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDE5ZmUwZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy9sb2NhbC9ydW50aW1lL3V0aWxzL3Rlc3RzL3BhY2thZ2UuYmxkCkBAIC0wLDAgKzEsNyBAQAorZm9yICh2YXIgaSA9IDA7IGkgPCBCdWlsZC50YXJnZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIHRhcmcgPSBCdWlsZC50YXJnZXRzW2ldOworICAgIHZhciBleGUgPSBQa2cuYWRkRXhlY3V0YWJsZSgiaGVsbG8iLCB0YXJnLCB0YXJnLnBsYXRmb3JtLCB7CisgICAgICAgIHByb2ZpbGU6Indob2xlX3Byb2dyYW0iCisgICAgfSk7CisgICAgZXhlLmFkZE9iamVjdHMoWyJoZWxsby5jIl0pOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvdGVzdHMvcGFja2FnZS54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvbG9jYWwvcnVudGltZS91dGlscy90ZXN0cy9wYWNrYWdlLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWVlZmMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL2xvY2FsL3J1bnRpbWUvdXRpbHMvdGVzdHMvcGFja2FnZS54ZGMKQEAgLTAsMCArMSw3IEBACisvKiEKKyAqICA9PT09PT09PSB1dGlscy50ZXN0cyA9PT09PT09PQorICogIFNpbXBsZSB0ZXN0cyBvZiB0aGUgdXRpbHMKKyAqLworcGFja2FnZSBsb2NhbC5ydW50aW1lLnV0aWxzLnRlc3RzCit7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGhpcmRwYXJ0eS9yeHR4Ly5jZHRwcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC8uY2R0cHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2E4MjFiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC8uY2R0cHJvamVjdApAQCAtMCwwICsxLDM3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZWNsaXBzZS1jZHQgdmVyc2lvbj0iMi4wIj8+DQorDQorPGNkdHByb2plY3QgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZSI+DQorPGV4dGVuc2lvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJpbmFyeXBhcnNlci5Db2ZmUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuQmluYXJ5UGFyc2VyIi8+DQorPGRhdGE+DQorPGl0ZW0gaWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9pdGVtPg0KKzxpdGVtIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L2l0ZW0+DQorPGl0ZW0gaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGR0YXJnZXRzIj4NCis8YnVpbGRUYXJnZXRzPg0KKzx0YXJnZXQgbmFtZT0iYWxsIiBwYXRoPSIiIHRhcmdldElEPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5NYWtlVGFyZ2V0QnVpbGRlciI+DQorPGJ1aWxkQ29tbWFuZD5jOi91c2Vycy9kci9pbGlhZC94ZGM8L2J1aWxkQ29tbWFuZD4NCis8YnVpbGRBcmd1bWVudHM+PC9idWlsZEFyZ3VtZW50cz4NCis8YnVpbGRUYXJnZXQ+YWxsPC9idWlsZFRhcmdldD4NCis8c3RvcE9uRXJyb3I+ZmFsc2U8L3N0b3BPbkVycm9yPg0KKzx1c2VEZWZhdWx0Q29tbWFuZD5mYWxzZTwvdXNlRGVmYXVsdENvbW1hbmQ+DQorPC90YXJnZXQ+DQorPC9idWlsZFRhcmdldHM+DQorPC9pdGVtPg0KKzwvZGF0YT4NCis8L2NkdHByb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC8uY3Byb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGhpcmRwYXJ0eS9yeHR4Ly5jcHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWYwZWJiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC8uY3Byb2plY3QKQEAgLTAsMCArMSw0NCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQorPD9maWxlVmVyc2lvbiA0LjAuMD8+DQorDQorPGNwcm9qZWN0Pg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyI+DQorPGNjb25maWd1cmF0aW9uIGlkPSJjb252ZXJ0ZWQuY29uZmlnLjk2NDc2OTc2MiI+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGR0YXJnZXRzIj4NCis8YnVpbGRUYXJnZXRzPg0KKzx0YXJnZXQgbmFtZT0iYWxsIiBwYXRoPSIiIHRhcmdldElEPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5NYWtlVGFyZ2V0QnVpbGRlciI+DQorPGJ1aWxkQ29tbWFuZD5jOi91c2Vycy9kci9pbGlhZC94ZGM8L2J1aWxkQ29tbWFuZD4NCis8YnVpbGRBcmd1bWVudHMvPg0KKzxidWlsZFRhcmdldD5hbGw8L2J1aWxkVGFyZ2V0Pg0KKzxzdG9wT25FcnJvcj5mYWxzZTwvc3RvcE9uRXJyb3I+DQorPHVzZURlZmF1bHRDb21tYW5kPmZhbHNlPC91c2VEZWZhdWx0Q29tbWFuZD4NCis8L3RhcmdldD4NCis8L2J1aWxkVGFyZ2V0cz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgYnVpbGRTeXN0ZW1JZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZGVmYXVsdENvbmZpZ0RhdGFQcm92aWRlciIgaWQ9ImNvbnZlcnRlZC5jb25maWcuOTY0NzY5NzYyIiBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiIG5hbWU9ImNvbnZlcnRlZENvbmZpZyI+DQorPGV4dGVybmFsU2V0dGluZ3MvPg0KKzxleHRlbnNpb25zPg0KKzxleHRlbnNpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5iaW5hcnlwYXJzZXIuQ29mZlBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkJpbmFyeVBhcnNlciIvPg0KKzwvZXh0ZW5zaW9ucz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jY29uZmlndXJhdGlvbj4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jcHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGhpcmRwYXJ0eS9yeHR4Ly5pbnN0YWxsIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC8uaW5zdGFsbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjlkZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC8uaW5zdGFsbApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC8ucHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aGlyZHBhcnR5L3J4dHgvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTc5YTczZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aGlyZHBhcnR5L3J4dHgvLnByb2plY3QKQEAgLTAsMCArMSw4NSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8cHJvamVjdERlc2NyaXB0aW9uPg0KKwk8bmFtZT50aGlyZHBhcnR5LnJ4dHg8L25hbWU+DQorCTxjb21tZW50PjwvY29tbWVudD4NCisJPHByb2plY3RzPg0KKwk8L3Byb2plY3RzPg0KKwk8YnVpbGRTcGVjPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2VCdWlsZGVyPC9uYW1lPg0KKwkJCTx0cmlnZ2Vycz5jbGVhbixmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQorCQkJPGFyZ3VtZW50cz4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQuYXJndW1lbnRzPC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0LmNvcmUuZXJyb3JPdXRwdXRQYXJzZXI8L2tleT4NCisJCQkJCTx2YWx1ZT5jb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQ29mZkVycm9yUGFyc2VyO2NvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5Bc21FcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuTGlua0Vycm9yUGFyc2VyO29yZy5lY2xpcHNlLmNkdC5jb3JlLk1ha2VFcnJvclBhcnNlcjtvcmcuZWNsaXBzZS5jZHQuY29yZS5HQ0NFcnJvclBhcnNlcjtvcmcuZWNsaXBzZS5jZHQuY29yZS5HQVNFcnJvclBhcnNlcjtvcmcuZWNsaXBzZS5jZHQuY29yZS5HTERFcnJvclBhcnNlcjs8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUF1dG9CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlRnVsbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmluYzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlZEluY3JlbWVudGFsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC5sb2NhdGlvbjwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmNsZWFuPC9rZXk+DQorCQkJCQk8dmFsdWU+Y2xlYW48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLmNvbW1hbmQ8L2tleT4NCisJCQkJCTx2YWx1ZT4ke1hEQ1JPT1R9L3hkYzwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFwcGVuZF9lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnVzZURlZmF1bHRCdWlsZENtZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuYXV0bzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQuY29yZS5jbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZU5hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdOYXR1cmU8L25hdHVyZT4NCisJPC9uYXR1cmVzPg0KKzwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aGlyZHBhcnR5L3J4dHgvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM0NmNhZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aGlyZHBhcnR5L3J4dHgvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzCkBAIC0wLDAgKzEsNCBAQAorI1R1ZSBNYXIgMTcgMTA6MzI6MDMgUERUIDIwMDkNCitlY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQ0KK2luZGV4ZXIvaW5kZXhlcklkPW9yZy5lY2xpcHNlLmNkdC5jb3JlLmRvbXNvdXJjZWluZGV4ZXINCitpbmRleGVySWQ9b3JnLmVjbGlwc2UuY2R0LmNvcmUuZG9tc291cmNlaW5kZXhlcg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aGlyZHBhcnR5L3J4dHgvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGhpcmRwYXJ0eS9yeHR4Ly54ZGNlbnYubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2YmRkZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGhpcmRwYXJ0eS9yeHR4Ly54ZGNlbnYubWFrCkBAIC0wLDAgKzEsMTYgQEAKKyMKK19YRENCVUlMRENPVU5UID0gMAoraWZuZXEgKCwkKGZpbmRzdHJpbmcgcGF0aCwkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENQQVRIID0gCitvdmVycmlkZSBYRENST09UID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMKK292ZXJyaWRlIFhEQ0JVSUxEQ0ZHID0gLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzL3BhY2thZ2VzOy4uLy4uCitIT1NUT1MgPSBMaW51eAorZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aGlyZHBhcnR5L3J4dHgvY29uZmlnLmJsZCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aGlyZHBhcnR5L3J4dHgvY29uZmlnLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjcwNDcwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC9jb25maWcuYmxkCkBAIC0wLDAgKzEsMiBAQAorLyogIFRoaXMgZmlsZSBvdmVycmlkZXMgdGhlIHVzZXIncyBjb25maWcuYmxkIHNpbmNlIG5vIHRhcmdldHMgYXJlIG5lZWRlZCAqLworQnVpbGQudXNlVGFyZ2V0cyA9IG51bGw7ICAgIC8qIGZvcmNlIHRoZSBzZXQgb2YgYnVpbGQgdGFyZ2V0cyB0byBiZSBlbXB0eSAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC9jdXN0b20ubWFrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RoaXJkcGFydHkvcnh0eC9jdXN0b20ubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczYzRiN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGhpcmRwYXJ0eS9yeHR4L2N1c3RvbS5tYWsKQEAgLTAsMCArMSwzNiBAQAorIyBHZXQgUlhUWCB6aXAgZmlsZSBuYW1lCitET1dOTE9BRFMgPSAkKFBLR1JPT1QpLy4uLy4uLy4uL2ltcG9ydHMvZG93bmxvYWRzCitSWFRYX1pJUCA6PSAkKGZpcnN0d29yZCAkKHdpbGRjYXJkIHJ4dHgqLnppcCAkKERPV05MT0FEUykvcnh0eCouemlwKSkKK1JYVFggICAgIDo9ICQocGF0c3Vic3QgJS56aXAsJSwkKG5vdGRpciAkKFJYVFhfWklQKSkpCisKK2lmZXEgKCwkKFJYVFgpKQorJChlcnJvciB5b3UgbXVzdCBkb3dubG9hZCBhIGNvcHkgb2YgdGhlIFJYVFggYmluYXJ5IGRpc3RyaWJ1dGlvbiB0byAkKENVUkRJUikpCitlbmRpZgorCitSWFRYX0RMTCA9ICQoUlhUWCkvV2luZG93cy9pMzY4LW1pbmd3MzIvcnh0eFNlcmlhbC5kbGwKK1JYVFhfSkFSID0gJChSWFRYKS9SWFRYY29tbS5qYXIKKworYWxsOiAuaW5zdGFsbAorCisuaW5zdGFsbDokKFJYVFhfRExMKSAkKFJYVFhfSkFSKQorCUAkKE1TRykgImluc3RhbGxpbmcgJChSWFRYKSBpbnRvICQoWERDUk9PVCkvanJlIC4uLiIKKwkkKFJNKSAkKFhEQ1JPT1QpL2pyZS9iaW4vJChSWFRYX0RMTCkKKwkkKENQKSAkKFJYVFhfRExMKSAkKFhEQ1JPT1QpL2pyZS9iaW4KKwkkKFJNKSAkKFhEQ1JPT1QpL2pyZS9saWIvZXh0LyQoUlhUWF9KQVIpCisJJChDUCkgJChSWFRYX0pBUikgJChYRENST09UKS9qcmUvbGliL2V4dAorCSQoUk0pICRAOyAkKFRPVUNIKSAkQAorCiskKFJYVFhfSkFSKTogJChSWFRYX1pJUCkKKwlAJChNU0cpICJleHRyYWN0aW5nICRAIGZyb20gJDwgLi4uIgorCSQoVU5aSVApIC1xIC1vICQ8ICRACisJJChUT1VDSCkgJEAKKworJChSWFRYX0RMTCk6ICQoUlhUWF9aSVApCisJQCQoTVNHKSAiZXh0cmFjdGluZyAkQCBmcm9tICQ8IC4uLiIKKwkkKFVOWklQKSAtcSAtbyAkPCAkQAorCSQoVE9VQ0gpICRACisKK2NsZWFuOjoKKwkkKFJNRElSKSAkKFJYVFgpCisJIyByZW1vdmUgbm9uLUVQTCBJUCBfb25seV8gZnJvbSB0aGUgY3VycmVudCBwYWNrYWdlCisJJChSTSkgICAgJChSWFRYKS56aXAKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aGlyZHBhcnR5L3J4dHgvcGFja2FnZS5ibGQgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGhpcmRwYXJ0eS9yeHR4L3BhY2thZ2UuYmxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlNTNkMjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGhpcmRwYXJ0eS9yeHR4L3BhY2thZ2UuYmxkCkBAIC0wLDAgKzEgQEAKK1BrZy5tYWtlRXBpbG9ndWUgPSAiaW5jbHVkZSBjdXN0b20ubWFrIjsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aGlyZHBhcnR5L3J4dHgvcGFja2FnZS54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGhpcmRwYXJ0eS9yeHR4L3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyMTZlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGhpcmRwYXJ0eS9yeHR4L3BhY2thZ2UueGRjCkBAIC0wLDAgKzEsMjAgQEAKKy8qIQorICogID09PT09PT09IHRoaXJkcGFydHkucnh0eCA9PT09PT09PQorICogIEluc3RhbGwgTEdQTCB2IDIuMSBsaWNlbmNlZCBSWFRYIHN1cHBvcnQgaW50byBYREN0b29scyBKUkUKKyAqCisgKiAgVGhpcyBwYWNrYWdlIGV4aXN0cyB0byBpbnN0YWxsIFdpbmRvd3MgSmF2YSBDT01NIHBvcnQgc3VwcG9ydCBpbnRvCisgKiAgdGhlIEpSRSBzdXBwbGllZCB3aXRoIFhEQ3Rvb2xzLiAgU1VOJ3MgSlJFIGRvZXMgbm90IHN1cHBvcnQgV2luZG93cworICogIENPTSBwb3J0cyBidXQgdGhlIFJYVFggcHJvamVjdCAoaHR0cDovL3d3dy5yeHR4Lm9yZy8pIHByb3ZpZGVzIHRoZQorICogIG5lY2Vzc2FyeSBzdXBwb3J0LgorICoKKyAqICBUbyBhZGQgV2luZG93cyBDT00gcG9ydCBzdXBwb3J0IHNpbXBseSBjb3B5IHRoZSBiaW5hcnkgZG93bmxvYWQgZnJvbQorICogIHRoZSBSWFRYIHByb2plY3QgKGUuZy4sIHJ4dHgtMi4xLTctYmlucy1yMi56aXApIGludG8gdGhpcyBwYWNrYWdlJ3MKKyAqICBiYXNlIGRpcmVjdG9yeSBhbmQgcmVidWlsZC4KKyAqICBAcChjb2RlKQorICogICAgICBjcCByeHR4LTIuMS03LWJpbnMtcjIuemlwIC4uLi9zcmMvdGhpcmRwYXJ0eS9yeHR4CisgKiAgICAgIHhkYyAtUCAuLi4vc3JjL3RoaXJkcGFydHkvcnh0eAorICogIEBwCisgKi8KK3BhY2thZ2UgdGhpcmRwYXJ0eS5yeHR4Cit7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvSW40MzAuaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9JbjQzMC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxYmNlOWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvSW40MzAuaApAQCAtMCwwICsxLDU5IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogaW40MzAuaCAgICAgIC0gSW50cmluc2ljIGZ1bmN0aW9uIHByb3RvdHlwZXMgYW5kIGNvbnZlbmllbmNlIG1hcHBpbmcgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgIG1hY3JvcyBmb3IgbWlncmF0aW5nIGNvZGUgZnJvbSB0aGUgSUFSIHBsYXRmb3JtLiAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogIFZlciB8IGRkIG1tbSB5eXl5IHwgV2hvICB8IERlc2NyaXB0aW9uIG9mIGNoYW5nZXMgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qID09PT09fD09PT09PT09PT09PT18PT09PT09fD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgICovCisvKiAgMC4wMXwgMDYgQXByIDIwMDQgfCBBLkQuIHwgRmlyc3QgUHJvdG90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogIDAuMDJ8IDIyIEp1biAyMDA0IHwgQS5ELiB8IEZpbGUgcmVmb3JtYXR0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjaWZuZGVmIF9fSU40MzBfSAorI2RlZmluZSBfX0lONDMwX0gKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIENPTVBJTEVSIElOVFJJTlNJQyBGVU5DVElPTlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCit2b2lkIF9lbmFibGVfaW50ZXJydXB0cyh2b2lkKTsgCit2b2lkIF9kaXNhYmxlX2ludGVycnVwdHModm9pZCk7IAordW5zaWduZWQgc2hvcnQgX2JpY19TUl9yZWdpc3Rlcih1bnNpZ25lZCBzaG9ydCBtYXNrKTsKK3Vuc2lnbmVkIHNob3J0IF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdCh1bnNpZ25lZCBzaG9ydCBtYXNrKTsgCit1bnNpZ25lZCBzaG9ydCBfYmlzX1NSX3JlZ2lzdGVyKHVuc2lnbmVkIHNob3J0IG1hc2spOyAKK3Vuc2lnbmVkIHNob3J0IF9iaXNfU1JfcmVnaXN0ZXJfb25fZXhpdCh1bnNpZ25lZCBzaG9ydCBtYXNrKTsKK3Vuc2lnbmVkIHNob3J0IF9nZXRfU1JfcmVnaXN0ZXIodm9pZCk7IAordW5zaWduZWQgc2hvcnQgX2dldF9TUl9yZWdpc3Rlcl9vbl9leGl0KHZvaWQpOyAKK3Vuc2lnbmVkIHNob3J0IF9zd2FwX2J5dGVzKHVuc2lnbmVkIHNob3J0IHNyYyk7IAordm9pZCBfbm9wKHZvaWQpOyAKK3ZvaWQgX25ldmVyX2V4ZWN1dGVkKHZvaWQpOworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogSU5UUklOU0lDIE1BUFBJTkcgRk9SIElBUiBWMS5YWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKyNkZWZpbmUgX0VJTlQoKSAgICAgICAgICAgICAgICAgICAgICAgICBfZW5hYmxlX2ludGVycnVwdHMoKQorI2RlZmluZSBfRElOVCgpICAgICAgICAgICAgICAgICAgICAgICAgIF9kaXNhYmxlX2ludGVycnVwdHMoKQorI2RlZmluZSBfQklDX1NSKHgpICAgICAgICAgICAgICAgICAgICAgIF9iaWNfU1JfcmVnaXN0ZXIoeCkKKyNkZWZpbmUgX0JJQ19TUl9JUlEoeCkgICAgICAgICAgICAgICAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoeCkKKyNkZWZpbmUgX0JJU19TUih4KSAgICAgICAgICAgICAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKHgpCisjZGVmaW5lIF9CSVNfU1JfSVJRKHgpICAgICAgICAgICAgICAgICAgX2Jpc19TUl9yZWdpc3Rlcl9vbl9leGl0KHgpCisjZGVmaW5lIF9TV0FQX0JZVEVTKHgpICAgICAgICAgICAgICAgICAgX3N3YXBfYnl0ZXMoeCkKKyNkZWZpbmUgX05PUCgpICAgICAgICAgICAgICAgICAgICAgICAgICBfbm9wKCkKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIElOVFJJTlNJQyBNQVBQSU5HIEZPUiBJQVIgVjIuWFgvVjMuWFggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisjZGVmaW5lIF9fZW5hYmxlX2ludGVycnVwdCgpICAgICAgICAgICAgX2VuYWJsZV9pbnRlcnJ1cHRzKCkKKyNkZWZpbmUgX19kaXNhYmxlX2ludGVycnVwdCgpICAgICAgICAgICBfZGlzYWJsZV9pbnRlcnJ1cHRzKCkKKyNkZWZpbmUgX19iaWNfU1JfcmVnaXN0ZXIoeCkgICAgICAgICAgICBfYmljX1NSX3JlZ2lzdGVyKHgpCisjZGVmaW5lIF9fYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoeCkgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KHgpCisjZGVmaW5lIF9fYmlzX1NSX3JlZ2lzdGVyKHgpICAgICAgICAgICAgX2Jpc19TUl9yZWdpc3Rlcih4KQorI2RlZmluZSBfX2Jpc19TUl9yZWdpc3Rlcl9vbl9leGl0KHgpICAgIF9iaXNfU1JfcmVnaXN0ZXJfb25fZXhpdCh4KQorI2RlZmluZSBfX2dldF9TUl9yZWdpc3RlcigpICAgICAgICAgICAgIF9nZXRfU1JfcmVnaXN0ZXIoKQorI2RlZmluZSBfX2dldF9TUl9yZWdpc3Rlcl9vbl9leGl0KCkgICAgIF9nZXRfU1JfcmVnaXN0ZXJfb25fZXhpdCgpCisjZGVmaW5lIF9fc3dhcF9ieXRlcyh4KSAgICAgICAgICAgICAgICAgX3N3YXBfYnl0ZXMoeCkKKyNkZWZpbmUgX19ub19vcGVyYXRpb24oKSAgICAgICAgICAgICAgICBfbm9wKCkKKworI2VuZGlmIC8qIF9fSU40MzBfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMC5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyZGY1MDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMwLmgKQEAgLTAsMCArMSwyMTYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKiBUaGlzIGZpbGUgaXMgYSBnZW5lcmljIGluY2x1ZGUgZmlsZSBjb250cm9sbGVkIGJ5ICAgICAgICAgICAgICAgICoKKyogY29tcGlsZXIvYXNzZW1ibGVyIElERSBnZW5lcmF0ZWQgZGVmaW5lcyAgICAgICAgICAgICAgICAgICAgICAgICAqCisqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmIGRlZmluZWQgKF9fTVNQNDMwQzExMV9fKQorI2luY2x1ZGUgIm1zcDQzMHgxMXguaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBDMTExMV9fKQorI2luY2x1ZGUgIm1zcDQzMHgxMXgxLmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwQzExMl9fKQorI2luY2x1ZGUgIm1zcDQzMHgxMXguaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBDMTEyMV9fKQorI2luY2x1ZGUgIm1zcDQzMHgxMXgxLmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwQzEzMzFfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBDMTM1MV9fKQorI2luY2x1ZGUgIm1zcDQzMHgxM3gxLmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwQzMxMVNfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBDMzEyX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwQzMxM19fKSB8fCBkZWZpbmVkIChfX01TUDQzMEMzMTRfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBDMzE1X18pCisjaW5jbHVkZSAibXNwNDMweDMxeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEMzMjNfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBDMzI1X18pCisjaW5jbHVkZSAibXNwNDMweDMyeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEMzMzZfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBDMzM3X18pCisjaW5jbHVkZSAibXNwNDMweDMzeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEM0MTJfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBDNDEzX18pCisjaW5jbHVkZSAibXNwNDMweDQxeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMENHNDYxOV9fKQorI2luY2x1ZGUgIm1zcDQzMHhHNDZ4LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRTExMl9fKQorI2luY2x1ZGUgIm1zcDQzMHgxMXguaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBFMzEzX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRTMxNV9fKQorI2luY2x1ZGUgIm1zcDQzMHgzMXguaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBFMzI1X18pCisjaW5jbHVkZSAibXNwNDMweDMyeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEUzMzdfXykKKyNpbmNsdWRlICJtc3A0MzB4MzN4LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjExMF9fKQorI2luY2x1ZGUgIm1zcDQzMHgxMXguaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMTEwMV9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYxMTAxQV9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYxMTExX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjExMTFBX18pCisjaW5jbHVkZSAibXNwNDMweDExeDEuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMTEyX18pCisjaW5jbHVkZSAibXNwNDMweDExeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEYxMTIxX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjExMjFBX18pCisjaW5jbHVkZSAibXNwNDMweDExeDEuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMTEyMl9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYxMTMyX18pCisjaW5jbHVkZSAibXNwNDMweDExeDIuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMTIyX18pCisjaW5jbHVkZSAibXNwNDMweDEyeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEYxMjIyX18pCisjaW5jbHVkZSAibXNwNDMweDEyeDIuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMTIzX18pCisjaW5jbHVkZSAibXNwNDMweDEyeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEYxMjMyX18pCisjaW5jbHVkZSAibXNwNDMweDEyeDIuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMTMzX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjEzNV9fKQorI2luY2x1ZGUgIm1zcDQzMHgxM3guaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMTQ3X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjE0OF9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYxNDlfXykKKyNpbmNsdWRlICJtc3A0MzB4MTR4LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjE0NzFfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGMTQ4MV9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYxNDkxX18pCisjaW5jbHVkZSAibXNwNDMweDE0eDEuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMTU1X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjE1Nl9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYxNTdfXykKKyNpbmNsdWRlICJtc3A0MzB4MTV4LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjE2N19fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYxNjhfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGMTY5X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjE2MTBfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGMTYxMV9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYxNjEyX18pCisjaW5jbHVkZSAibXNwNDMweDE2eC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEYyMDAxX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjIwMTFfXykKKyNpbmNsdWRlICJtc3A0MzB4MjB4MS5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEYyMDAyX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjIwMTJfXykKKyNpbmNsdWRlICJtc3A0MzB4MjB4Mi5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEYyMDAzX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjIwMTNfXykKKyNpbmNsdWRlICJtc3A0MzB4MjB4My5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEYyMDM1X18pCisjaW5jbHVkZSAibXNwNDMweDIweDUuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMjEwMV9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYyMTExX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjIxMjFfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGMjEzMV9fKQorI2luY2x1ZGUgIm1zcDQzMHgyMXgxLmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjIxMTJfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGMjEyMl9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYyMTMyX18pCisjaW5jbHVkZSAibXNwNDMweDIxeDIuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMjIzMl9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYyMjUyX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjIyNzJfXykKKyNpbmNsdWRlICJtc3A0MzB4MjJ4Mi5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEYyMjM0X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjIyNTRfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGMjI3NF9fKQorI2luY2x1ZGUgIm1zcDQzMHgyMng0LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjIzMzBfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGMjM1MF9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYyMzcwX18pCisjaW5jbHVkZSAibXNwNDMweDIzeDAuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMjMzX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjIzNV9fKQorI2luY2x1ZGUgIm1zcDQzMHgyM3guaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMjQ3X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjI0OF9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYyNDlfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGMjQxMF9fKQorI2luY2x1ZGUgIm1zcDQzMHgyNHguaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGMjQ3MV9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYyNDgxX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjI0OTFfXykKKyNpbmNsdWRlICJtc3A0MzB4MjR4MS5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEYyNDE2X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjI0MTdfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGMjQxOF9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYyNDE5X18pCisjaW5jbHVkZSAibXNwNDMweDI0eC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEYyNjE2X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjI2MTdfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGMjYxOF9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEYyNjE5X18pCisjaW5jbHVkZSAibXNwNDMweDI2eC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEY0MTJfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGNDEzX18pCisjaW5jbHVkZSAibXNwNDMweDQxeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEY0MTVfXykKKyNpbmNsdWRlICJtc3A0MzB4NDE1LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjQxN19fKQorI2luY2x1ZGUgIm1zcDQzMHg0MTcuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGNDIzX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjQyNV9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEY0MjdfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGNDIzQV9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEY0MjVBX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjQyN0FfXykKKyNpbmNsdWRlICJtc3A0MzB4NDJ4LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjQzNV9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEY0MzZfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGNDM3X18pCisjaW5jbHVkZSAibXNwNDMweDQzeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEY0MzUxX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjQzNjFfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGNDM3MV9fKQorI2luY2x1ZGUgIm1zcDQzMHg0M3gxLmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjQ0N19fKSB8fCBkZWZpbmVkIChfX01TUDQzMEY0NDhfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGNDQ5X18pCisjaW5jbHVkZSAibXNwNDMweDQ0eC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEZFNDIzX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRkU0MjVfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGRTQyN19fKQorI2luY2x1ZGUgIm1zcDQzMHhFNDJ4LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRkU0MjNBX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRkU0MjVBX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRkU0MjdBX18pCisjaW5jbHVkZSAibXNwNDMweEU0MnhBLmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRkU0MjMyX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRkU0MjQyX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRkU0MjUyX18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRkU0MjcyX18pCisjaW5jbHVkZSAibXNwNDMweEU0MngyLmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjQ3ODNfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGNDc5M19fKQorI2luY2x1ZGUgIm1zcDQzMHg0N3gzLmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjQ3ODRfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGNDc5NF9fKQorI2luY2x1ZGUgIm1zcDQzMHg0N3g0LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRjQyNTBfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGNDI2MF9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEY0MjcwX18pCisjaW5jbHVkZSAibXNwNDMweDQyeDAuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGRzQyNTBfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGRzQyNjBfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGRzQyNzBfXykKKyNpbmNsdWRlICJtc3A0MzB4RzQyeDAuaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBGVzQyM19fKSB8fCBkZWZpbmVkIChfX01TUDQzMEZXNDI1X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRlc0MjdfXykKKyNpbmNsdWRlICJtc3A0MzB4VzQyeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMEZHNDM3X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRkc0MzhfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGRzQzOV9fKQorI2luY2x1ZGUgIm1zcDQzMHhHNDN4LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwRkc0NjE2X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRkc0NjE3X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRkc0NjE4X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRkc0NjE5X18pCisjaW5jbHVkZSAibXNwNDMweEc0NnguaCIKKworI2VsaWYgZGVmaW5lZCAoX19YTVM0MzBGNTQzOF9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEY1NDE4X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjU0MTlfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGNTQzNV9fKSB8fCBkZWZpbmVkIChfX01TUDQzMEY1NDM2X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwRjU0MzdfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBGNTQzOF9fKQorI2luY2x1ZGUgIm1zcDQzMHg1NHguaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBQMTEyX18pCisjaW5jbHVkZSAibXNwNDMweDExeC5oIgorCisjZWxpZiBkZWZpbmVkIChfX01TUDQzMFAzMTNfXykgfHwgZGVmaW5lZCAoX19NU1A0MzBQMzE1X18pIHx8IGRlZmluZWQgKF9fTVNQNDMwUDMxNVNfXykKKyNpbmNsdWRlICJtc3A0MzB4MzF4LmgiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwUDMyNV9fKQorI2luY2x1ZGUgIm1zcDQzMHgzMnguaCIKKworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBQMzM3X18pCisjaW5jbHVkZSAibXNwNDMweDMzeC5oIgorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICBtc3A0MzAgZ2VuZXJpYworICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2VsaWYgZGVmaW5lZCAoX19NU1A0MzBHRU5FUklDX18pCisjZXJyb3IgIm1zcDQzMCBnZW5lcmljIGRldmljZSBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCBpbmNsdWRlIGZpbGUiCisKKyNlbGlmIGRlZmluZWQgKF9fTVNQNDMwWEdFTkVSSUNfXykKKyNlcnJvciAibXNwNDMwWCBnZW5lcmljIGRldmljZSBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCBpbmNsdWRlIGZpbGUiCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZWxzZQorI2Vycm9yICJGYWlsZWQgdG8gbWF0Y2ggYSBkZWZhdWx0IGluY2x1ZGUgZmlsZSIKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDExeC5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxMXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTdiNmM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxMXguaApAQCAtMCwwICsxLDQzNCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIFN0YW5kYXJkIHJlZ2lzdGVyIGFuZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cworKiBNU1A0MzAgbWljcm9jb250cm9sbGVyLgorKgorKiBUaGlzIGZpbGUgc3VwcG9ydHMgYXNzZW1ibGVyIGFuZCBDIGRldmVsb3BtZW50IGZvcgorKiBNU1A0MzB4MTF4IGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDIuMworKgorKiBSZXYuIDEuMiwgQWRkaXRpb25hbCBUaW1lciBCIGJpdCBkZWZpbml0aW9ucy4KKyogICAgICAgICAgIFJlbmFtZWQgWFRPRkYgdG8gWFQyT0ZGLgorKiBSZXYuIDEuMywgUmVtb3ZlZCBsZWFkaW5nIDAgdG8gYXZpb2QgaW50ZXJwcmV0YXRpb24gYXMgb2N0YWwKKyogICAgICAgICAgICB2YWx1ZXMgdW5kZXIgQworKiAgICAgICAgICAgSW5jbHVkZWQgPEluNDMwLmg+IHJhdGhlciB0aGFuICJJbjQzMC5oIgorKiBSZXYuIDEuNCwgQ29ycmVjdGVkIExQTXhfRVhJVCB0byByZWZlcmVuY2UgbmV3IGludHJpbnNpYyAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQKKyogICAgICAgICAgIENoYW5nZWQgVEFJViB0byBiZSByZWFkLW9ubHkKKyogUmV2LiAxLjUsIEVuY2xvc2UgYWxsICNkZWZpbmUgc3RhdGVtZW50cyB3aXRoIHBhcmVudGhlc2VzCisqIFJldi4gMi4xLCBBbGlnbm1lbnQgb2YgZGVmaW50aW9ucyBpbiBVc2VycyBHdWlkZSBhbmQgb2YgdmVyc2lvbiBudW1iZXJzCisqIFJldi4gMi4yLCBSZW1vdmVkIHVudXNlZCBkZWYgb2YgVEFTU0VMMgorKiBSZXYuIDIuMywgYWRkZWQgZGVmaW5pdGlvbnMgZm9yIEludGVycnVwdCBWZWN0b3JzIHh4SVYKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDExeAorI2RlZmluZSBfX21zcDQzMHgxMXgKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkKKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQMklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIElucHV0ICovCitTRlJfOEJJVChQMk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIE91dHB1dCAqLworU0ZSXzhCSVQoUDJESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAySUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAyU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCYXNpYyBDbG9jayBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0JBU0lDX0NMT0NLX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChEQ09DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCitTRlJfOEJJVChCQ1NDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQkNTQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDIgKi8KKworI2RlZmluZSBNT0QwICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDAgKi8KKyNkZWZpbmUgTU9EMSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAxICovCisjZGVmaW5lIE1PRDIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMiAqLworI2RlZmluZSBNT0QzICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDMgKi8KKyNkZWZpbmUgTU9ENCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCA0ICovCisjZGVmaW5lIERDTzAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBEQ08xICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgRENPMiAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAyICovCisKKyNkZWZpbmUgUlNFTDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgUlNFTDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgUlNFTDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDIgKi8KKyNkZWZpbmUgWFQ1ViAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBYVDVWIHNob3VsZCBhbHdheXMgYmUgcmVzZXQgKi8KKyNkZWZpbmUgRElWQTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZBMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFhUUyAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTEZYVENMSyAwOkxvdyBGcmVxLiAvIDE6IEhpZ2ggRnJlcS4gKi8KKyNkZWZpbmUgWFQyT0ZGICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBFbmFibGUgWFQyQ0xLICovCisKKyNkZWZpbmUgRElWQV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWQV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWQV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWQV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBEQ09SICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEVuYWJsZSBFeHRlcm5hbCBSZXNpc3RvciA6IDEgKi8KKyNkZWZpbmUgRElWUzAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWUzEgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgU0VMUyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDA6RENPQ0xLIC8gMTpYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBESVZNMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVk0xICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgU0VMTTAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxNMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxICovCisKKyNkZWZpbmUgRElWU18wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVlNfMSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZTXzIgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWU18zICAgICAgICAgICAgICAgICAoMHgwNikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRElWTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWTV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWTV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWTV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBTRUxNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMTogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDI6IFhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIFNFTE1fMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDM6IExGWFRDTEsgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0hfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVQUk9NIENPTlRST0wKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0VQUk9NX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKEVQQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFUFJPTSBDb250cm9sICovCisjZGVmaW5lIEVQRVhFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEVQVlBQUyAgICAgICAgICAgICAgICAgKDB4MDIpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMiIpICAqLyAvKiAweEZGRTQgUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFNiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDMiKSAgKi8gLyogMHhGRkU2IFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDggKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MTF4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTF4MS5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxMXgxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FhZjY1MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTF4MS5oCkBAIC0wLDAgKzEsNDY4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgxMXgxIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDIuMworKgorKiBSZXYuIDEuMiwgQWRkaXRpb25hbCBUaW1lciBCIGJpdCBkZWZpbml0aW9ucy4KKyogICAgICAgICAgIFJlbmFtZWQgWFRPRkYgdG8gWFQyT0ZGLgorKiBSZXYuIDEuMywgUmVtb3ZlZCBsZWFkaW5nIDAgdG8gYXZpb2QgaW50ZXJwcmV0YXRpb24gYXMgb2N0YWwKKyogICAgICAgICAgICB2YWx1ZXMgdW5kZXIgQworKiAgICAgICAgICAgSW5jbHVkZWQgPEluNDMwLmg+IHJhdGhlciB0aGFuICJJbjQzMC5oIgorKiBSZXYuIDEuNCwgQ29ycmVjdGVkIExQTXhfRVhJVCB0byByZWZlcmVuY2UgbmV3IGludHJpbnNpYyAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQKKyogICAgICAgICAgIENoYW5nZWQgVEFJViB0byBiZSByZWFkLW9ubHkKKyogUmV2LiAxLjUsIEVuY2xvc2UgYWxsICNkZWZpbmUgc3RhdGVtZW50cyB3aXRoIHBhcmVudGhlc2VzCisqIFJldi4gMi4xLCBBbGlnbm1lbnQgb2YgZGVmaW50aW9ucyBpbiBVc2VycyBHdWlkZSBhbmQgb2YgdmVyc2lvbiBudW1iZXJzCisqIFJldi4gMi4yLCBSZW1vdmVkIHVudXNlZCBkZWYgb2YgVEFTU0VMMgorKiBSZXYuIDIuMywgYWRkZWQgZGVmaW5pdGlvbnMgZm9yIEludGVycnVwdCBWZWN0b3JzIHh4SVYKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDExeDEKKyNkZWZpbmUgX19tc3A0MzB4MTF4MQorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFBFUklQSEVSQUwgRklMRSBNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBFeHRlcm5hbCByZWZlcmVuY2VzIHJlc29sdmVkIGJ5IGEgZGV2aWNlLXNwZWNpZmljIGxpbmtlciBjb21tYW5kIGZpbGUgKi8KKyNkZWZpbmUgU0ZSXzhCSVQoYWRkcmVzcykgICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgY2hhciBhZGRyZXNzCisjZGVmaW5lIFNGUl8xNkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFOREFSRCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQklUMCAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBCSVQxICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIEJJVDIgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgQklUMyAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBCSVQ0ICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIEJJVDUgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgQklUNiAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBCSVQ3ICAgICAgICAgICAgICAgICAgICgweDAwODApCisjZGVmaW5lIEJJVDggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgQklUOSAgICAgICAgICAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBCSVRBICAgICAgICAgICAgICAgICAgICgweDA0MDApCisjZGVmaW5lIEJJVEIgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkKKyNkZWZpbmUgQklUQyAgICAgICAgICAgICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBCSVREICAgICAgICAgICAgICAgICAgICgweDIwMDApCisjZGVmaW5lIEJJVEUgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkKKyNkZWZpbmUgQklURiAgICAgICAgICAgICAgICAgICAoMHg4MDAwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQVRVUyBSRUdJU1RFUiBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQyAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBaICAgICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIE4gICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgViAgICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBHSUUgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgT1NDT0ZGICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBTQ0cwICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFNDRzEgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworLyogTG93IFBvd2VyIE1vZGVzIGNvZGVkIHdpdGggQml0cyA0LTcgaW4gU1IgKi8KKworI2lmZGVmIF9fQVNNX0hFQURFUl9fIC8qIEJlZ2luICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKyNkZWZpbmUgTFBNMCAgICAgICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xICAgICAgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMiAgICAgICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTMgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTQgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorLyogRW5kICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKworI2Vsc2UgLyogQmVnaW4gI2RlZmluZXMgZm9yIEMgKi8KKyNkZWZpbmUgTFBNMF9iaXRzICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xX2JpdHMgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMl9iaXRzICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTNfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTRfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorCisjaW5jbHVkZSA8SW40MzAuaD4KKworI2RlZmluZSBMUE0wICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0wX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0wX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTBfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTEgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTFfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTFfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMV9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMiAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMl9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMl9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0yX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0zICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0zX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE0zX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTQgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTRfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSA0ICovCisjZGVmaW5lIExQTTRfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNNF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDQgKi8KKyNlbmRpZiAvKiBFbmQgI2RlZmluZXMgZm9yIEMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1BFQ0lBTCBGVU5DVElPTiBSRUdJU1RFUiBBRERSRVNTRVMgKyBDT05UUk9MIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworU0ZSXzhCSVQoSUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMSAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKQorCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRkcgICAgICAgICAgICAgICAgICgweDEwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJhc2ljIENsb2NrIE1vZHVsZQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQkFTSUNfQ0xPQ0tfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKERDT0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ08gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KK1NGUl84QklUKEJDU0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAxICovCitTRlJfOEJJVChCQ1NDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMiAqLworCisjZGVmaW5lIE1PRDAgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMCAqLworI2RlZmluZSBNT0QxICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDEgKi8KKyNkZWZpbmUgTU9EMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAyICovCisjZGVmaW5lIE1PRDMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMyAqLworI2RlZmluZSBNT0Q0ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDQgKi8KKyNkZWZpbmUgRENPMCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIERDTzEgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBEQ08yICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDIgKi8KKworI2RlZmluZSBSU0VMMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBSU0VMMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBSU0VMMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMiAqLworI2RlZmluZSBYVDVWICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhUNVYgc2hvdWxkIGFsd2F5cyBiZSByZXNldCAqLworI2RlZmluZSBESVZBMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVkExICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgWFRTICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMRlhUQ0xLIDA6TG93IEZyZXEuIC8gMTogSGlnaCBGcmVxLiAqLworI2RlZmluZSBYVDJPRkYgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEVuYWJsZSBYVDJDTEsgKi8KKworI2RlZmluZSBESVZBXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZBXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZBXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZBXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERDT1IgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRW5hYmxlIEV4dGVybmFsIFJlc2lzdG9yIDogMSAqLworI2RlZmluZSBESVZTMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgMDpEQ09DTEsgLyAxOlhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIERJVk0wICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZNXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZNXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZNXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIFNFTE1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDA6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMjogWFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgU0VMTV8zICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMzogTEZYVENMSyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29tcGFyYXRvciBBCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19DT01QQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChDQUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQ0FDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDIgKi8KK1NGUl84QklUKENBUEQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgUG9ydCBEaXNhYmxlICovCisKKyNkZWZpbmUgQ0FJRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIENBSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIENBSUVTICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBJbnQuIEVkZ2UgU2VsZWN0OiAwOnJpc2luZyAvIDE6ZmFsbGluZyAqLworI2RlZmluZSBDQU9OICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgZW5hYmxlICovCisjZGVmaW5lIENBUkVGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ0FSRUYxICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBDQVJTRUwgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIEVuYWJsZSAqLworI2RlZmluZSBDQUVYICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRXhjaGFuZ2UgSW5wdXRzICovCisKKyNkZWZpbmUgQ0FSRUZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMCA6IE9mZiAqLworI2RlZmluZSBDQVJFRl8xICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAxIDogMC4yNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMiA6IDAuNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMyA6IFZ0Ki8KKworI2RlZmluZSBDQU9VVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgT3V0cHV0ICovCisjZGVmaW5lIENBRiAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBFbmFibGUgT3V0cHV0IEZpbHRlciAqLworI2RlZmluZSBQMkNBMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0EwIDogMSAqLworI2RlZmluZSBQMkNBMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0ExIDogMSAqLworI2RlZmluZSBDQUNUTDI0ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBDQUNUTDI1ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBDQUNUTDI2ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBDQUNUTDI3ICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIENBUEQwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4wICovCisjZGVmaW5lIENBUEQxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4xICovCisjZGVmaW5lIENBUEQyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4yICovCisjZGVmaW5lIENBUEQzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4zICovCisjZGVmaW5lIENBUEQ0ICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC40ICovCisjZGVmaW5lIENBUEQ1ICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC41ICovCisjZGVmaW5lIENBUEQ2ICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC42ICovCisjZGVmaW5lIENBUEQ3ICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC43ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMiIpICAqLyAvKiAweEZGRTQgUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFNiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDMiKSAgKi8gLyogMHhGRkU2IFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDggKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQ09NUEFSQVRPUkFfVkVDVE9SICAgICAgKDExICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovCisvKiNkZWZpbmUgQ09NUEFSQVRPUkFfSVNSKGZ1bmMpICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDExIikgICovIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDExeDEgKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxMXgyLmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDExeDIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTc1MzliCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxMXgyLmgKQEAgLTAsMCArMSw1NDEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDExeDIgZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMi4zCisqCisqIFJldi4gMS4xLCBFbmNsb3NlIGFsbCAjZGVmaW5lIHN0YXRlbWVudHMgd2l0aCBwYXJlbnRoZXNlcworKiBSZXYuIDIuMSwgQWxpZ25tZW50IG9mIGRlZmludGlvbnMgaW4gVXNlcnMgR3VpZGUgYW5kIG9mIHZlcnNpb24gbnVtYmVycworKiBSZXYuIDIuMiwgUmVtb3ZlZCB1bnVzZWQgZGVmIG9mIFRBU1NFTDIKKyogUmV2LiAyLjMsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHgxMXgyCisjZGVmaW5lIF9fbXNwNDMweDExeDIKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkKKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQMklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIElucHV0ICovCitTRlJfOEJJVChQMk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIE91dHB1dCAqLworU0ZSXzhCSVQoUDJESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAySUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAyU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCYXNpYyBDbG9jayBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0JBU0lDX0NMT0NLX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChEQ09DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCitTRlJfOEJJVChCQ1NDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQkNTQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDIgKi8KKworI2RlZmluZSBNT0QwICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDAgKi8KKyNkZWZpbmUgTU9EMSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAxICovCisjZGVmaW5lIE1PRDIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMiAqLworI2RlZmluZSBNT0QzICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDMgKi8KKyNkZWZpbmUgTU9ENCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCA0ICovCisjZGVmaW5lIERDTzAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBEQ08xICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgRENPMiAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAyICovCisKKyNkZWZpbmUgUlNFTDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgUlNFTDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgUlNFTDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDIgKi8KKyNkZWZpbmUgWFQ1ViAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBYVDVWIHNob3VsZCBhbHdheXMgYmUgcmVzZXQgKi8KKyNkZWZpbmUgRElWQTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZBMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFhUUyAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTEZYVENMSyAwOkxvdyBGcmVxLiAvIDE6IEhpZ2ggRnJlcS4gKi8KKyNkZWZpbmUgWFQyT0ZGICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBFbmFibGUgWFQyQ0xLICovCisKKyNkZWZpbmUgRElWQV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWQV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWQV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWQV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBEQ09SICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEVuYWJsZSBFeHRlcm5hbCBSZXNpc3RvciA6IDEgKi8KKyNkZWZpbmUgRElWUzAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWUzEgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgU0VMUyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDA6RENPQ0xLIC8gMTpYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBESVZNMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVk0xICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgU0VMTTAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxNMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxICovCisKKyNkZWZpbmUgRElWU18wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVlNfMSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZTXzIgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWU18zICAgICAgICAgICAgICAgICAoMHgwNikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRElWTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWTV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWTV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWTV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBTRUxNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMTogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDI6IFhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIFNFTE1fMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDM6IExGWFRDTEsgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0hfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEFEQzEwCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19BREMxMF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChBREMxMERUQzApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgRGF0YSBUcmFuc2ZlciBDb250cm9sIDAgKi8KK1NGUl84QklUKEFEQzEwRFRDMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBEYXRhIFRyYW5zZmVyIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQURDMTBBRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIEFuYWxvZyBFbmFibGUgKi8KKworU0ZSXzE2QklUKEFEQzEwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKEFEQzEwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEFEQzEwTUVNKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIE1lbW9yeSAqLworU0ZSXzE2QklUKEFEQzEwU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIERhdGEgVHJhbnNmZXIgU3RhcnQgQWRkcmVzcyAqLworCisvKiBBREMxMENUTDAgKi8KKyNkZWZpbmUgQURDMTBTQyAgICAgICAgICAgICAgICAoMHgwMDEpICAgICAgICAvKiBBREMxMCBTdGFydCBDb252ZXJzaW9uICovCisjZGVmaW5lIEVOQyAgICAgICAgICAgICAgICAgICAgKDB4MDAyKSAgICAgICAgLyogQURDMTAgRW5hYmxlIENvbnZlcnNpb24gKi8KKyNkZWZpbmUgQURDMTBJRkcgICAgICAgICAgICAgICAoMHgwMDQpICAgICAgICAvKiBBREMxMCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBBREMxMElFICAgICAgICAgICAgICAgICgweDAwOCkgICAgICAgIC8qIEFEQzEwIEludGVycnVwdCBFbmFsYmUgKi8KKyNkZWZpbmUgQURDMTBPTiAgICAgICAgICAgICAgICAoMHgwMTApICAgICAgICAvKiBBREMxMCBPbi9FbmFibGUgKi8KKyNkZWZpbmUgUkVGT04gICAgICAgICAgICAgICAgICAoMHgwMjApICAgICAgICAvKiBBREMxMCBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgUkVGMl81ViAgICAgICAgICAgICAgICAoMHgwNDApICAgICAgICAvKiBBREMxMCBSZWYgMDoxLjVWIC8gMToyLjVWICovCisjZGVmaW5lIE1TQyAgICAgICAgICAgICAgICAgICAgKDB4MDgwKSAgICAgICAgLyogQURDMTAgTXVsdGlwbGUgU2FtcGxlQ29udmVyc2lvbiAqLworI2RlZmluZSBSRUZCVVJTVCAgICAgICAgICAgICAgICgweDEwMCkgICAgICAgIC8qIEFEQzEwIFJlZmVyZW5jZSBCdXJzdCBNb2RlICovCisjZGVmaW5lIFJFRk9VVCAgICAgICAgICAgICAgICAgKDB4MjAwKSAgICAgICAgLyogQURDMTAgRW5hbGJlIG91dHB1dCBvZiBSZWYuICovCisjZGVmaW5lIEFEQzEwU1IgICAgICAgICAgICAgICAgKDB4NDAwKSAgICAgICAgLyogQURDMTAgU2FtcGxpbmcgUmF0ZSAwOjIwMGtzcHMgLyAxOjUwa3NwcyAqLworI2RlZmluZSBBREMxMFNIVDAgICAgICAgICAgICAgICgweDgwMCkgICAgICAgIC8qIEFEQzEwIFNhbXBsZSBIb2xkIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEwU0hUMSAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTAgU2FtcGxlIEhvbGQgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1JFRjAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU1JFRjEgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1JFRjMgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgU2VsZWN0IDIgKi8KKyNkZWZpbmUgQURDMTBTSFRfMCAgICAgICAgICAgICAoMCoweDgwMHUpICAgICAvKiA0IHggQURDMTBDTEtzICovCisjZGVmaW5lIEFEQzEwU0hUXzEgICAgICAgICAgICAgKDEqMHg4MDB1KSAgICAgLyogOCB4IEFEQzEwQ0xLcyAqLworI2RlZmluZSBBREMxMFNIVF8yICAgICAgICAgICAgICgyKjB4ODAwdSkgICAgIC8qIDE2IHggQURDMTBDTEtzICovCisjZGVmaW5lIEFEQzEwU0hUXzMgICAgICAgICAgICAgKDMqMHg4MDB1KSAgICAgLyogNjQgeCBBREMxMENMS3MgKi8KKworI2RlZmluZSBTUkVGXzAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFZSKyA9IEFWQ0MgYW5kIFZSLSA9IEFWU1MgKi8KKyNkZWZpbmUgU1JFRl8xICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBWUisgPSBWUkVGKyBhbmQgVlItID0gQVZTUyAqLworI2RlZmluZSBTUkVGXzIgICAgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFZSKyA9IFZFUkVGKyBhbmQgVlItID0gQVZTUyAqLworI2RlZmluZSBTUkVGXzMgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFZSKyA9IFZFUkVGKyBhbmQgVlItID0gQVZTUyAqLworI2RlZmluZSBTUkVGXzQgICAgICAgICAgICAgICAgICg0KjB4MjAwMHUpICAgIC8qIFZSKyA9IEFWQ0MgYW5kIFZSLSA9IFZSRUYtL1ZFUkVGLSAqLworI2RlZmluZSBTUkVGXzUgICAgICAgICAgICAgICAgICg1KjB4MjAwMHUpICAgIC8qIFZSKyA9IFZSRUYrIGFuZCBWUi0gPSBWUkVGLS9WRVJFRi0gKi8KKyNkZWZpbmUgU1JFRl82ICAgICAgICAgICAgICAgICAoNioweDIwMDB1KSAgICAvKiBWUisgPSBWRVJFRisgYW5kIFZSLSA9IFZSRUYtL1ZFUkVGLSAqLworI2RlZmluZSBTUkVGXzcgICAgICAgICAgICAgICAgICg3KjB4MjAwMHUpICAgIC8qIFZSKyA9IFZFUkVGKyBhbmQgVlItID0gVlJFRi0vVkVSRUYtICovCisKKy8qIEFEQzEwQ1RMMSAqLworI2RlZmluZSBBREMxMEJVU1kgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEwQ1RMMSAqLworI2RlZmluZSBDT05TRVEwICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEwIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ09OU0VRMSAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMCBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEwU1NFTDAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTAgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEwU1NFTDEgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTAgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEwRElWMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTAgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMERJVjEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEwIENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTBESVYyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMCBDbG9jayBEaXZpZGVyIFNlbGVjdCAyICovCisjZGVmaW5lIElTU0ggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTAgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBBREMxMERGICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEwIERhdGEgRm9ybWF0IDA6YmluYXJ5IDE6MidzIGNvbXBsZW1lbnQgKi8KKyNkZWZpbmUgU0hTMCAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMCBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBTSFMxICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEwIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIElOQ0gwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTAgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgMCAqLworI2RlZmluZSBJTkNIMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIEFEQzEwIElucHV0IENoYW5uZWwgU2VsZWN0IDEgKi8KKyNkZWZpbmUgSU5DSDIgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMCBJbnB1dCBDaGFubmVsIFNlbGVjdCAyICovCisjZGVmaW5lIElOQ0gzICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTAgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgMyAqLworCisjZGVmaW5lIENPTlNFUV8wICAgICAgICAgICAgICAgKDAqMnUpICAgICAgICAgLyogU2luZ2xlIGNoYW5uZWwgc2luZ2xlIGNvbnZlcnNpb24gKi8KKyNkZWZpbmUgQ09OU0VRXzEgICAgICAgICAgICAgICAoMSoydSkgICAgICAgICAvKiBTZXF1ZW5jZSBvZiBjaGFubmVscyAqLworI2RlZmluZSBDT05TRVFfMiAgICAgICAgICAgICAgICgyKjJ1KSAgICAgICAgIC8qIFJlcGVhdCBzaW5nbGUgY2hhbm5lbCAqLworI2RlZmluZSBDT05TRVFfMyAgICAgICAgICAgICAgICgzKjJ1KSAgICAgICAgIC8qIFJlcGVhdCBzZXF1ZW5jZSBvZiBjaGFubmVscyAqLworCisjZGVmaW5lIEFEQzEwU1NFTF8wICAgICAgICAgICAgKDAqOHUpICAgICAgICAgLyogQURDMTBPU0MgKi8KKyNkZWZpbmUgQURDMTBTU0VMXzEgICAgICAgICAgICAoMSo4dSkgICAgICAgICAvKiBBQ0xLICovCisjZGVmaW5lIEFEQzEwU1NFTF8yICAgICAgICAgICAgKDIqOHUpICAgICAgICAgLyogTUNMSyAqLworI2RlZmluZSBBREMxMFNTRUxfMyAgICAgICAgICAgICgzKjh1KSAgICAgICAgIC8qIFNNQ0xLICovCisKKyNkZWZpbmUgQURDMTBESVZfMCAgICAgICAgICAgICAoMCoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfMSAgICAgICAgICAgICAoMSoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfMiAgICAgICAgICAgICAoMioweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfMyAgICAgICAgICAgICAoMyoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNCAgICAgICAgICAgICAoNCoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNSAgICAgICAgICAgICAoNSoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNiAgICAgICAgICAgICAoNioweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNyAgICAgICAgICAgICAoNyoweDIwdSkKKworI2RlZmluZSBTSFNfMCAgICAgICAgICAgICAgICAgICgwKjB4NDAwdSkgICAgIC8qIEFEQzEwU0MgKi8KKyNkZWZpbmUgU0hTXzEgICAgICAgICAgICAgICAgICAoMSoweDQwMHUpICAgICAvKiBUQTMgT1VUMSAqLworI2RlZmluZSBTSFNfMiAgICAgICAgICAgICAgICAgICgyKjB4NDAwdSkgICAgIC8qIFRBMyBPVVQwICovCisjZGVmaW5lIFNIU18zICAgICAgICAgICAgICAgICAgKDMqMHg0MDB1KSAgICAgLyogVEEzIE9VVDIgKi8KKworI2RlZmluZSBJTkNIXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF8yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KQorI2RlZmluZSBJTkNIXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfNCAgICAgICAgICAgICAgICAgKDQqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF81ICAgICAgICAgICAgICAgICAoNSoweDEwMDB1KQorI2RlZmluZSBJTkNIXzYgICAgICAgICAgICAgICAgICg2KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfNyAgICAgICAgICAgICAgICAgKDcqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF84ICAgICAgICAgICAgICAgICAoOCoweDEwMDB1KQorI2RlZmluZSBJTkNIXzkgICAgICAgICAgICAgICAgICg5KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMTAgICAgICAgICAgICAgICAgKDEwKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMTIgICAgICAgICAgICAgICAgKDEyKjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisjZGVmaW5lIElOQ0hfMTMgICAgICAgICAgICAgICAgKDEzKjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisjZGVmaW5lIElOQ0hfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisjZGVmaW5lIElOQ0hfMTUgICAgICAgICAgICAgICAgKDE1KjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisKKy8qIEFEQzEwRFRDMCAqLworI2RlZmluZSBBREMxMEZFVENIICAgICAgICAgICAgICgweDAwMSkKKyNkZWZpbmUgQURDMTBCMSAgICAgICAgICAgICAgICAoMHgwMDIpCisjZGVmaW5lIEFEQzEwQ1QgICAgICAgICAgICAgICAgKDB4MDA0KQorI2RlZmluZSBBREMxMFRCICAgICAgICAgICAgICAgICgweDAwOCkKKyNkZWZpbmUgQURDMTBESVNBQkxFICAgICAgICAgICAoMHgwMDApICAgICAgICAvKiBBREMxMERUQzEgKi8KKworLyogQURDMTBBRSAqLworI2RlZmluZSBBREMxMEFFMCAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEwIEV4dGVybmFsIElucHV0IEVuYWJsZSAwICovCisjZGVmaW5lIEFEQzEwQUUxICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTAgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgQURDMTBBRTIgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMCBFeHRlcm5hbCBJbnB1dCBFbmFibGUgMiAqLworI2RlZmluZSBBREMxMEFFMyAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEwIEV4dGVybmFsIElucHV0IEVuYWJsZSAzICovCisjZGVmaW5lIEFEQzEwQUU0ICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTAgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDQgKi8KKyNkZWZpbmUgQURDMTBBRTUgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMCBFeHRlcm5hbCBJbnB1dCBFbmFibGUgNSAqLworI2RlZmluZSBBREMxMEFFNiAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEwIEV4dGVybmFsIElucHV0IEVuYWJsZSA2ICovCisjZGVmaW5lIEFEQzEwQUU3ICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTAgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDIgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAyIikgICovIC8qIDB4RkZFNCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBBREMxMF9WRUNUT1IgICAgICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQSBBREMxMCAqLworLyojZGVmaW5lIEFEQzEwX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNSIpICAqLyAvKiAweEZGRUEgQURDMTAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTFfVkVDVE9SICAgICAgICAgICg4ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovCisvKiNkZWZpbmUgVElNRVJBMV9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBUaW1lciBBIENDMS0yLCBUQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMF9WRUNUT1IgICAgICAgICAgKDkgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUkEwX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFRpbWVyIEEgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDExeDIgKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxMnguaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTJ4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDcwM2MxMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTJ4LmgKQEAgLTAsMCArMSw1NzkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDEyeCBkZXZpY2VzLgorKgorKiBUZXhhcyBJbnN0cnVtZW50cywgVmVyc2lvbiAyLjMKKyoKKyogUmV2LiAxLjEsIENvcnJlY3RlZCBMUE14X0VYSVQgdG8gcmVmZXJlbmNlIG5ldyBpbnRyaW5zaWMgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0CisqICAgICAgICAgICBDaGFuZ2VkIFRBSVYgdG8gYmUgcmVhZC1vbmx5CisqIFJldi4gMS4yLCBFbmNsb3NlIGFsbCAjZGVmaW5lIHN0YXRlbWVudHMgd2l0aCBwYXJlbnRoZXNlcworKiBSZXYuIDEuMywgRGVmaW5lZCB2ZWN0b3JzIGZvciBVU0FSVCAoaW4gYWRkaXRpb24gdG8gVUFSVCkKKyogUmV2LiAxLjQsIEFkZGVkIFVTQVJUIHNwZWNpYWwgZnVuY3Rpb24gbGFiZWxzIChVeE1FLCBVeElFLCBVeElGRykKKyogUmV2LiAyLjEsIEFsaWdubWVudCBvZiBkZWZpbnRpb25zIGluIFVzZXJzIEd1aWRlIGFuZCBvZiB2ZXJzaW9uIG51bWJlcnMKKyogUmV2LiAyLjIsIFJlbW92ZWQgdW51c2VkIGRlZiBvZiBUQVNTRUwyCisqIFJldi4gMi4zLCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4MTJ4CisjZGVmaW5lIF9fbXNwNDMweDEyeAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFBFUklQSEVSQUwgRklMRSBNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBFeHRlcm5hbCByZWZlcmVuY2VzIHJlc29sdmVkIGJ5IGEgZGV2aWNlLXNwZWNpZmljIGxpbmtlciBjb21tYW5kIGZpbGUgKi8KKyNkZWZpbmUgU0ZSXzhCSVQoYWRkcmVzcykgICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgY2hhciBhZGRyZXNzCisjZGVmaW5lIFNGUl8xNkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFOREFSRCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQklUMCAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBCSVQxICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIEJJVDIgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgQklUMyAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBCSVQ0ICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIEJJVDUgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgQklUNiAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBCSVQ3ICAgICAgICAgICAgICAgICAgICgweDAwODApCisjZGVmaW5lIEJJVDggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgQklUOSAgICAgICAgICAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBCSVRBICAgICAgICAgICAgICAgICAgICgweDA0MDApCisjZGVmaW5lIEJJVEIgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkKKyNkZWZpbmUgQklUQyAgICAgICAgICAgICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBCSVREICAgICAgICAgICAgICAgICAgICgweDIwMDApCisjZGVmaW5lIEJJVEUgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkKKyNkZWZpbmUgQklURiAgICAgICAgICAgICAgICAgICAoMHg4MDAwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQVRVUyBSRUdJU1RFUiBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQyAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBaICAgICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIE4gICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgViAgICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBHSUUgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgT1NDT0ZGICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBTQ0cwICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFNDRzEgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworLyogTG93IFBvd2VyIE1vZGVzIGNvZGVkIHdpdGggQml0cyA0LTcgaW4gU1IgKi8KKworI2lmZGVmIF9fQVNNX0hFQURFUl9fIC8qIEJlZ2luICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKyNkZWZpbmUgTFBNMCAgICAgICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xICAgICAgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMiAgICAgICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTMgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTQgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorLyogRW5kICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKworI2Vsc2UgLyogQmVnaW4gI2RlZmluZXMgZm9yIEMgKi8KKyNkZWZpbmUgTFBNMF9iaXRzICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xX2JpdHMgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMl9iaXRzICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTNfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTRfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorCisjaW5jbHVkZSA8SW40MzAuaD4KKworI2RlZmluZSBMUE0wICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0wX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0wX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTBfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTEgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTFfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTFfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMV9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMiAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMl9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMl9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0yX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0zICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0zX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE0zX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTQgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTRfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSA0ICovCisjZGVmaW5lIExQTTRfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNNF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDQgKi8KKyNlbmRpZiAvKiBFbmQgI2RlZmluZXMgZm9yIEMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1BFQ0lBTCBGVU5DVElPTiBSRUdJU1RFUiBBRERSRVNTRVMgKyBDT05UUk9MIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworU0ZSXzhCSVQoSUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMSAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKQorCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRkcgICAgICAgICAgICAgICAgICgweDEwKQorCitTRlJfOEJJVChJRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAyICovCisjZGVmaW5lIFUwSUUgICAgICAgICAgICAgICAgICAgSUUyICAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBVUlhJRTAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVVFhJRTAgICAgICAgICAgICAgICAgICgweDAyKQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBVMElGRyAgICAgICAgICAgICAgICAgIElGRzIgICAgICAgICAgIC8qIFVBUlQwIEludGVycnVwdCBGbGFnIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWElGRzAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVUWElGRzAgICAgICAgICAgICAgICAgKDB4MDIpCisKK1NGUl84QklUKE1FMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNb2R1bGUgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVTBNRSAgICAgICAgICAgICAgICAgICBNRTIgICAgICAgICAgICAvKiBVQVJUMCBNb2R1bGUgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWEUwICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVUWEUwICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVTUElFMCAgICAgICAgICAgICAgICAgKDB4MDEpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogV0FUQ0hET0cgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1dEVF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChXRFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBXRFRTU0VMICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBXRFROTUkgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFdEVE5NSUVTICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgV0RUSE9MRCAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisjZGVmaW5lIFdEVFBXICAgICAgICAgICAgICAgICAgKDB4NUEwMCkKKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01ETFlfOCAgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzUgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQURMWV8xMDAwICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BRExZXzI1MCAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xXzkgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgLyogMS45bXMgICAiICovCisvKiBXYXRjaGRvZyBtb2RlIC0+IHJlc2V0IGFmdGVyIGV4cGlyZWQgdGltZSAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NUlNUXzMyICAgICAgICAgKFdEVFBXK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfNSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF8wNjQgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMjUwICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xNiAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAvKiAxLjltcyAgICIgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAweDAxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDEvMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAxSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW5wdXQgKi8KK1NGUl84QklUKFAxT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgT3V0cHV0ICovCitTRlJfOEJJVChQMURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDFJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQM0lOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIElucHV0ICovCitTRlJfOEJJVChQM09VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIE91dHB1dCAqLworU0ZSXzhCSVQoUDNESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAzU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVXhDVEwgKi8KKyNkZWZpbmUgUEVOQSAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBQYXJpdHkgZW5hYmxlICovCisjZGVmaW5lIFBFViAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IDA6b2RkIC8gMTpldmVuICovCisjZGVmaW5lIFNQQiAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogU3RvcCBCaXRzIDA6b25lIC8gMTogdHdvICovCisjZGVmaW5lIENIQVIgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogRGF0YSAwOjctYml0cyAvIDE6OC1iaXRzICovCisjZGVmaW5lIExJU1RFTiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTGlzdGVuIG1vZGUgKi8KKyNkZWZpbmUgU1lOQyAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVQVJUIC8gU1BJIG1vZGUgKi8KKyNkZWZpbmUgTU0gICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNYXN0ZXIgTW9kZSBvZmYvb24gKi8KKyNkZWZpbmUgU1dSU1QgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0FSVCBTb2Z0d2FyZSBSZXNldCAqLworCisvKiBVeFRDVEwgKi8KKyNkZWZpbmUgQ0tQSCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTUEk6IENsb2NrIFBoYXNlICovCisjZGVmaW5lIENLUEwgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ2xvY2sgUG9sYXJpdHkgKi8KKyNkZWZpbmUgU1NFTDEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1NFTDAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVVJYU0UgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSZWNlaXZlIFN0YXJ0IGVkZ2Ugc2VsZWN0ICovCisjZGVmaW5lIFRYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVFggV2FrZSB1cCBtb2RlICovCisjZGVmaW5lIFNUQyAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1BJOiBTVEMgZW5hYmxlIDA6b24gLyAxOm9mZiAqLworI2RlZmluZSBUWEVQVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRYIEJ1ZmZlciBlbXB0eSAqLworCisvKiBVeFJDVEwgKi8KKyNkZWZpbmUgRkUgICAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBGcmFtZSBFcnJvciAqLworI2RlZmluZSBQRSAgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSBFcnJvciAqLworI2RlZmluZSBPRSAgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE92ZXJydW4gRXJyb3IgKi8KKyNkZWZpbmUgQlJLICAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBkZXRlY3RlZCAqLworI2RlZmluZSBVUlhFSUUgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJYIEVycm9yIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVVJYV0lFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSWCBXYWtlIHVwIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgUlhXQUtFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSWCBXYWtlIHVwIGRldGVjdCAqLworI2RlZmluZSBSWEVSUiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJYIEVycm9yIEVycm9yICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQgMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVUFSVDBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCitTRlJfOEJJVChVME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFUwQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVMEJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFUwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKworI2RlZmluZSBVQ1RMMCAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDAgICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDAgICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMCAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDAgICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwICAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjAgICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwICAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMMF8gICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDBfICAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDBfICAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMF8gICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDBfICAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwXyAgICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjBfICAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwXyAgICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMCAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMCAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzBfICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wXyAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wXyAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzBfICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wXyAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMF8gICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wXyAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMF8gICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQUNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQUNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl84ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWX1RBSUZHICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQmFzaWMgQ2xvY2sgTW9kdWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CQVNJQ19DTE9DS19fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoRENPQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDTyBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworU0ZSXzhCSVQoQkNTQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDEgKi8KK1NGUl84QklUKEJDU0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAyICovCisKKyNkZWZpbmUgTU9EMCAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAwICovCisjZGVmaW5lIE1PRDEgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMSAqLworI2RlZmluZSBNT0QyICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDIgKi8KKyNkZWZpbmUgTU9EMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAzICovCisjZGVmaW5lIE1PRDQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgNCAqLworI2RlZmluZSBEQ08wICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgRENPMSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIERDTzIgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMiAqLworCisjZGVmaW5lIFJTRUwwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIFJTRUwxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIFJTRUwyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIFhUNVYgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWFQ1ViBzaG91bGQgYWx3YXlzIGJlIHJlc2V0ICovCisjZGVmaW5lIERJVkEwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWQTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBYVFMgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExGWFRDTEsgMDpMb3cgRnJlcS4gLyAxOiBIaWdoIEZyZXEuICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRW5hYmxlIFhUMkNMSyAqLworCisjZGVmaW5lIERJVkFfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVkFfMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVkFfMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVkFfMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRENPUiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBFbmFibGUgRXh0ZXJuYWwgUmVzaXN0b3IgOiAxICovCisjZGVmaW5lIERJVlMwICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVlMxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCAwOkRDT0NMSyAvIDE6WFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgRElWTTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZNMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTE0wICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0VMTTEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMSAqLworCisjZGVmaW5lIERJVlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZTXzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWU18yICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVlNfMyAgICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERJVk1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVk1fMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVk1fMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVk1fMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgU0VMTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMDogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMSAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDE6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAyOiBYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBTRUxNXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAzOiBMRlhUQ0xLICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NPTVBBX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTAgOiAxICovCisjZGVmaW5lIFAyQ0ExICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTEgOiAxICovCisjZGVmaW5lIENBQ1RMMjQgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIENBQ1RMMjUgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIENBQ1RMMjYgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIENBQ1RMMjcgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgQ0FQRDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjAgKi8KKyNkZWZpbmUgQ0FQRDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjEgKi8KKyNkZWZpbmUgQ0FQRDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjIgKi8KKyNkZWZpbmUgQ0FQRDMgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjMgKi8KKyNkZWZpbmUgQ0FQRDQgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjQgKi8KKyNkZWZpbmUgQ0FQRDUgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjUgKi8KKyNkZWZpbmUgQ0FQRDYgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjYgKi8KKyNkZWZpbmUgQ0FQRDcgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDIgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAyIikgICovIC8qIDB4RkZFNCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBUWF9WRUNUT1IgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBVU0FSVCAwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNBUlQwVFhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBVU0FSVCAwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBSWF9WRUNUT1IgICAgICAgICAoNyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFRSBVU0FSVCAwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0FSVDBSWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDciKSAgKi8gLyogMHhGRkVFIFVTQVJUIDAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDggKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQ09NUEFSQVRPUkFfVkVDVE9SICAgICAgKDExICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovCisvKiNkZWZpbmUgQ09NUEFSQVRPUkFfSVNSKGZ1bmMpICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDExIikgICovIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MTJ4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTJ4Mi5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxMngyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjM0YzNiZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTJ4Mi5oCkBAIC0wLDAgKzEsNjU2IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgxMngyIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDIuMworKgorKiBSZXYuIDEuMSwgRGVmaW5lZCB2ZWN0b3JzIGZvciBVU0FSVCAoaW4gYWRkaXRpb24gdG8gVUFSVCkKKyogUmV2LiAxLjIsIEFkZGVkIFVTQVJUIHNwZWNpYWwgZnVuY3Rpb24gbGFiZWxzIChVeE1FLCBVeElFLCBVeElGRykKKyogUmV2LiAyLjEsIEFsaWdubWVudCBvZiBkZWZpbnRpb25zIGluIFVzZXJzIEd1aWRlIGFuZCBvZiB2ZXJzaW9uIG51bWJlcnMKKyogUmV2LiAyLjIsIFJlbW92ZWQgdW51c2VkIGRlZiBvZiBUQVNTRUwyCisqIFJldi4gMi4zLCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4MTJ4MgorI2RlZmluZSBfX21zcDQzMHgxMngyCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVTBJRSAgICAgICAgICAgICAgICAgICBJRTIgICAgICAgICAgICAvKiBVQVJUMCBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWElFMCAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVUWElFMCAgICAgICAgICAgICAgICAgKDB4MDIpCisKK1NGUl84QklUKElGRzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAyICovCisjZGVmaW5lIFUwSUZHICAgICAgICAgICAgICAgICAgSUZHMiAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEZsYWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYSUZHMCAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVVRYSUZHMCAgICAgICAgICAgICAgICAoMHgwMikKKworU0ZSXzhCSVQoTUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1vZHVsZSBFbmFibGUgMiAqLworI2RlZmluZSBVME1FICAgICAgICAgICAgICAgICAgIE1FMiAgICAgICAgICAgIC8qIFVBUlQwIE1vZHVsZSBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYRTAgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVVRYRTAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVVNQSUUwICAgICAgICAgICAgICAgICAoMHgwMSkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQMklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIElucHV0ICovCitTRlJfOEJJVChQMk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIE91dHB1dCAqLworU0ZSXzhCSVQoUDJESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAySUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAyU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQzX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAzSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgSW5wdXQgKi8KK1NGUl84QklUKFAzT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgT3V0cHV0ICovCitTRlJfOEJJVChQM0RJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDNTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBVeENUTCAqLworI2RlZmluZSBQRU5BICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgUEVWICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQYXJpdHkgMDpvZGQgLyAxOmV2ZW4gKi8KKyNkZWZpbmUgU1BCICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBTdG9wIEJpdHMgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgQ0hBUiAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBEYXRhIDA6Ny1iaXRzIC8gMTo4LWJpdHMgKi8KKyNkZWZpbmUgTElTVEVOICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBMaXN0ZW4gbW9kZSAqLworI2RlZmluZSBTWU5DICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVBUlQgLyBTUEkgbW9kZSAqLworI2RlZmluZSBNTSAgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1hc3RlciBNb2RlIG9mZi9vbiAqLworI2RlZmluZSBTV1JTVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTQVJUIFNvZnR3YXJlIFJlc2V0ICovCisKKy8qIFV4VENUTCAqLworI2RlZmluZSBDS1BIICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFNQSTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgQ0tQTCAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBTU0VMMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBTU0VMMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBVUlhTRSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlY2VpdmUgU3RhcnQgZWRnZSBzZWxlY3QgKi8KKyNkZWZpbmUgVFhXQUtFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBUWCBXYWtlIHVwIG1vZGUgKi8KKyNkZWZpbmUgU1RDICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTUEk6IFNUQyBlbmFibGUgMDpvbiAvIDE6b2ZmICovCisjZGVmaW5lIFRYRVBUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVFggQnVmZmVyIGVtcHR5ICovCisKKy8qIFV4UkNUTCAqLworI2RlZmluZSBGRSAgICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEZyYW1lIEVycm9yICovCisjZGVmaW5lIFBFICAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IEVycm9yICovCisjZGVmaW5lIE9FICAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogT3ZlcnJ1biBFcnJvciAqLworI2RlZmluZSBCUksgICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJyZWFrIGRldGVjdGVkICovCisjZGVmaW5lIFVSWEVJRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUlggRXJyb3IgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVUlhXSUUgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJYIFdha2UgdXAgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBSWFdBS0UgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJYIFdha2UgdXAgZGV0ZWN0ICovCisjZGVmaW5lIFJYRVJSICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUlggRXJyb3IgRXJyb3IgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVCAwCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VQVJUMF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCitTRlJfOEJJVChVMFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVMFJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KK1NGUl84QklUKFUwTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFUwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVMFJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVTBUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworCisjZGVmaW5lIFVDVEwwICAgICAgICAgICAgICAgICAgVTBDVEwgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMCAgICAgICAgICAgICAgICAgVTBUQ1RMICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMCAgICAgICAgICAgICAgICAgVTBSQ1RMICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwwICAgICAgICAgICAgICAgICBVME1DVEwgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMCAgICAgICAgICAgICAgICAgIFUwQlIwICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTAgICAgICAgICAgICAgICAgICBVMEJSMSAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMCAgICAgICAgICAgICAgICAgVTBSWEJVRiAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjAgICAgICAgICAgICAgICAgIFUwVFhCVUYgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVEwwXyAgICAgICAgICAgICAgICAgVTBDVExfICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMF8gICAgICAgICAgICAgICAgVTBUQ1RMXyAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMF8gICAgICAgICAgICAgICAgVTBSQ1RMXyAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwwXyAgICAgICAgICAgICAgICBVME1DVExfICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMF8gICAgICAgICAgICAgICAgIFUwQlIwXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTBfICAgICAgICAgICAgICAgICBVMEJSMV8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMF8gICAgICAgICAgICAgICAgVTBSWEJVRl8gICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjBfICAgICAgICAgICAgICAgIFUwVFhCVUZfICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMCAgICAgICAgICAgICAgICAgVTBDVEwgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzAgICAgICAgICAgICAgICAgVTBUQ1RMICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzAgICAgICAgICAgICAgICAgVTBSQ1RMICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMCAgICAgICAgICAgICAgICBVME1DVEwgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzAgICAgICAgICAgICAgICAgIFUwQlIwICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8wICAgICAgICAgICAgICAgICBVMEJSMSAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzAgICAgICAgICAgICAgICAgVTBSWEJVRiAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8wICAgICAgICAgICAgICAgIFUwVFhCVUYgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMF8gICAgICAgICAgICAgICAgVTBDVExfICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzBfICAgICAgICAgICAgICAgVTBUQ1RMXyAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzBfICAgICAgICAgICAgICAgVTBSQ1RMXyAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMF8gICAgICAgICAgICAgICBVME1DVExfICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzBfICAgICAgICAgICAgICAgIFUwQlIwXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8wXyAgICAgICAgICAgICAgICBVMEJSMV8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzBfICAgICAgICAgICAgICAgVTBSWEJVRl8gICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8wXyAgICAgICAgICAgICAgIFUwVFhCVUZfICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCYXNpYyBDbG9jayBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0JBU0lDX0NMT0NLX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChEQ09DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCitTRlJfOEJJVChCQ1NDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQkNTQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDIgKi8KKworI2RlZmluZSBNT0QwICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDAgKi8KKyNkZWZpbmUgTU9EMSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAxICovCisjZGVmaW5lIE1PRDIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMiAqLworI2RlZmluZSBNT0QzICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDMgKi8KKyNkZWZpbmUgTU9ENCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCA0ICovCisjZGVmaW5lIERDTzAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBEQ08xICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgRENPMiAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAyICovCisKKyNkZWZpbmUgUlNFTDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgUlNFTDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgUlNFTDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDIgKi8KKyNkZWZpbmUgWFQ1ViAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBYVDVWIHNob3VsZCBhbHdheXMgYmUgcmVzZXQgKi8KKyNkZWZpbmUgRElWQTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZBMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFhUUyAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTEZYVENMSyAwOkxvdyBGcmVxLiAvIDE6IEhpZ2ggRnJlcS4gKi8KKyNkZWZpbmUgWFQyT0ZGICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBFbmFibGUgWFQyQ0xLICovCisKKyNkZWZpbmUgRElWQV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWQV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWQV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWQV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBEQ09SICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEVuYWJsZSBFeHRlcm5hbCBSZXNpc3RvciA6IDEgKi8KKyNkZWZpbmUgRElWUzAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWUzEgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgU0VMUyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDA6RENPQ0xLIC8gMTpYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBESVZNMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVk0xICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgU0VMTTAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxNMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxICovCisKKyNkZWZpbmUgRElWU18wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVlNfMSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZTXzIgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWU18zICAgICAgICAgICAgICAgICAoMHgwNikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRElWTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWTV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWTV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWTV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBTRUxNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMTogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDI6IFhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIFNFTE1fMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDM6IExGWFRDTEsgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0hfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEFEQzEwCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19BREMxMF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChBREMxMERUQzApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgRGF0YSBUcmFuc2ZlciBDb250cm9sIDAgKi8KK1NGUl84QklUKEFEQzEwRFRDMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBEYXRhIFRyYW5zZmVyIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQURDMTBBRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIEFuYWxvZyBFbmFibGUgKi8KKworU0ZSXzE2QklUKEFEQzEwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKEFEQzEwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEFEQzEwTUVNKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIE1lbW9yeSAqLworU0ZSXzE2QklUKEFEQzEwU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIERhdGEgVHJhbnNmZXIgU3RhcnQgQWRkcmVzcyAqLworCisvKiBBREMxMENUTDAgKi8KKyNkZWZpbmUgQURDMTBTQyAgICAgICAgICAgICAgICAoMHgwMDEpICAgICAgICAvKiBBREMxMCBTdGFydCBDb252ZXJzaW9uICovCisjZGVmaW5lIEVOQyAgICAgICAgICAgICAgICAgICAgKDB4MDAyKSAgICAgICAgLyogQURDMTAgRW5hYmxlIENvbnZlcnNpb24gKi8KKyNkZWZpbmUgQURDMTBJRkcgICAgICAgICAgICAgICAoMHgwMDQpICAgICAgICAvKiBBREMxMCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBBREMxMElFICAgICAgICAgICAgICAgICgweDAwOCkgICAgICAgIC8qIEFEQzEwIEludGVycnVwdCBFbmFsYmUgKi8KKyNkZWZpbmUgQURDMTBPTiAgICAgICAgICAgICAgICAoMHgwMTApICAgICAgICAvKiBBREMxMCBPbi9FbmFibGUgKi8KKyNkZWZpbmUgUkVGT04gICAgICAgICAgICAgICAgICAoMHgwMjApICAgICAgICAvKiBBREMxMCBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgUkVGMl81ViAgICAgICAgICAgICAgICAoMHgwNDApICAgICAgICAvKiBBREMxMCBSZWYgMDoxLjVWIC8gMToyLjVWICovCisjZGVmaW5lIE1TQyAgICAgICAgICAgICAgICAgICAgKDB4MDgwKSAgICAgICAgLyogQURDMTAgTXVsdGlwbGUgU2FtcGxlQ29udmVyc2lvbiAqLworI2RlZmluZSBSRUZCVVJTVCAgICAgICAgICAgICAgICgweDEwMCkgICAgICAgIC8qIEFEQzEwIFJlZmVyZW5jZSBCdXJzdCBNb2RlICovCisjZGVmaW5lIFJFRk9VVCAgICAgICAgICAgICAgICAgKDB4MjAwKSAgICAgICAgLyogQURDMTAgRW5hbGJlIG91dHB1dCBvZiBSZWYuICovCisjZGVmaW5lIEFEQzEwU1IgICAgICAgICAgICAgICAgKDB4NDAwKSAgICAgICAgLyogQURDMTAgU2FtcGxpbmcgUmF0ZSAwOjIwMGtzcHMgLyAxOjUwa3NwcyAqLworI2RlZmluZSBBREMxMFNIVDAgICAgICAgICAgICAgICgweDgwMCkgICAgICAgIC8qIEFEQzEwIFNhbXBsZSBIb2xkIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEwU0hUMSAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTAgU2FtcGxlIEhvbGQgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1JFRjAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU1JFRjEgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1JFRjMgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgU2VsZWN0IDIgKi8KKyNkZWZpbmUgQURDMTBTSFRfMCAgICAgICAgICAgICAoMCoweDgwMHUpICAgICAvKiA0IHggQURDMTBDTEtzICovCisjZGVmaW5lIEFEQzEwU0hUXzEgICAgICAgICAgICAgKDEqMHg4MDB1KSAgICAgLyogOCB4IEFEQzEwQ0xLcyAqLworI2RlZmluZSBBREMxMFNIVF8yICAgICAgICAgICAgICgyKjB4ODAwdSkgICAgIC8qIDE2IHggQURDMTBDTEtzICovCisjZGVmaW5lIEFEQzEwU0hUXzMgICAgICAgICAgICAgKDMqMHg4MDB1KSAgICAgLyogNjQgeCBBREMxMENMS3MgKi8KKworI2RlZmluZSBTUkVGXzAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFZSKyA9IEFWQ0MgYW5kIFZSLSA9IEFWU1MgKi8KKyNkZWZpbmUgU1JFRl8xICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBWUisgPSBWUkVGKyBhbmQgVlItID0gQVZTUyAqLworI2RlZmluZSBTUkVGXzIgICAgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFZSKyA9IFZFUkVGKyBhbmQgVlItID0gQVZTUyAqLworI2RlZmluZSBTUkVGXzMgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFZSKyA9IFZFUkVGKyBhbmQgVlItID0gQVZTUyAqLworI2RlZmluZSBTUkVGXzQgICAgICAgICAgICAgICAgICg0KjB4MjAwMHUpICAgIC8qIFZSKyA9IEFWQ0MgYW5kIFZSLSA9IFZSRUYtL1ZFUkVGLSAqLworI2RlZmluZSBTUkVGXzUgICAgICAgICAgICAgICAgICg1KjB4MjAwMHUpICAgIC8qIFZSKyA9IFZSRUYrIGFuZCBWUi0gPSBWUkVGLS9WRVJFRi0gKi8KKyNkZWZpbmUgU1JFRl82ICAgICAgICAgICAgICAgICAoNioweDIwMDB1KSAgICAvKiBWUisgPSBWRVJFRisgYW5kIFZSLSA9IFZSRUYtL1ZFUkVGLSAqLworI2RlZmluZSBTUkVGXzcgICAgICAgICAgICAgICAgICg3KjB4MjAwMHUpICAgIC8qIFZSKyA9IFZFUkVGKyBhbmQgVlItID0gVlJFRi0vVkVSRUYtICovCisKKy8qIEFEQzEwQ1RMMSAqLworI2RlZmluZSBBREMxMEJVU1kgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEwQ1RMMSAqLworI2RlZmluZSBDT05TRVEwICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEwIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ09OU0VRMSAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMCBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEwU1NFTDAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTAgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEwU1NFTDEgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTAgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEwRElWMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTAgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMERJVjEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEwIENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTBESVYyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMCBDbG9jayBEaXZpZGVyIFNlbGVjdCAyICovCisjZGVmaW5lIElTU0ggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTAgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBBREMxMERGICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEwIERhdGEgRm9ybWF0IDA6YmluYXJ5IDE6MidzIGNvbXBsZW1lbnQgKi8KKyNkZWZpbmUgU0hTMCAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMCBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBTSFMxICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEwIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIElOQ0gwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTAgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgMCAqLworI2RlZmluZSBJTkNIMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIEFEQzEwIElucHV0IENoYW5uZWwgU2VsZWN0IDEgKi8KKyNkZWZpbmUgSU5DSDIgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMCBJbnB1dCBDaGFubmVsIFNlbGVjdCAyICovCisjZGVmaW5lIElOQ0gzICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTAgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgMyAqLworCisjZGVmaW5lIENPTlNFUV8wICAgICAgICAgICAgICAgKDAqMnUpICAgICAgICAgLyogU2luZ2xlIGNoYW5uZWwgc2luZ2xlIGNvbnZlcnNpb24gKi8KKyNkZWZpbmUgQ09OU0VRXzEgICAgICAgICAgICAgICAoMSoydSkgICAgICAgICAvKiBTZXF1ZW5jZSBvZiBjaGFubmVscyAqLworI2RlZmluZSBDT05TRVFfMiAgICAgICAgICAgICAgICgyKjJ1KSAgICAgICAgIC8qIFJlcGVhdCBzaW5nbGUgY2hhbm5lbCAqLworI2RlZmluZSBDT05TRVFfMyAgICAgICAgICAgICAgICgzKjJ1KSAgICAgICAgIC8qIFJlcGVhdCBzZXF1ZW5jZSBvZiBjaGFubmVscyAqLworCisjZGVmaW5lIEFEQzEwU1NFTF8wICAgICAgICAgICAgKDAqOHUpICAgICAgICAgLyogQURDMTBPU0MgKi8KKyNkZWZpbmUgQURDMTBTU0VMXzEgICAgICAgICAgICAoMSo4dSkgICAgICAgICAvKiBBQ0xLICovCisjZGVmaW5lIEFEQzEwU1NFTF8yICAgICAgICAgICAgKDIqOHUpICAgICAgICAgLyogTUNMSyAqLworI2RlZmluZSBBREMxMFNTRUxfMyAgICAgICAgICAgICgzKjh1KSAgICAgICAgIC8qIFNNQ0xLICovCisKKyNkZWZpbmUgQURDMTBESVZfMCAgICAgICAgICAgICAoMCoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfMSAgICAgICAgICAgICAoMSoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfMiAgICAgICAgICAgICAoMioweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfMyAgICAgICAgICAgICAoMyoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNCAgICAgICAgICAgICAoNCoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNSAgICAgICAgICAgICAoNSoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNiAgICAgICAgICAgICAoNioweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNyAgICAgICAgICAgICAoNyoweDIwdSkKKworI2RlZmluZSBTSFNfMCAgICAgICAgICAgICAgICAgICgwKjB4NDAwdSkgICAgIC8qIEFEQzEwU0MgKi8KKyNkZWZpbmUgU0hTXzEgICAgICAgICAgICAgICAgICAoMSoweDQwMHUpICAgICAvKiBUQTMgT1VUMSAqLworI2RlZmluZSBTSFNfMiAgICAgICAgICAgICAgICAgICgyKjB4NDAwdSkgICAgIC8qIFRBMyBPVVQwICovCisjZGVmaW5lIFNIU18zICAgICAgICAgICAgICAgICAgKDMqMHg0MDB1KSAgICAgLyogVEEzIE9VVDIgKi8KKworI2RlZmluZSBJTkNIXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF8yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KQorI2RlZmluZSBJTkNIXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfNCAgICAgICAgICAgICAgICAgKDQqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF81ICAgICAgICAgICAgICAgICAoNSoweDEwMDB1KQorI2RlZmluZSBJTkNIXzYgICAgICAgICAgICAgICAgICg2KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfNyAgICAgICAgICAgICAgICAgKDcqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF84ICAgICAgICAgICAgICAgICAoOCoweDEwMDB1KQorI2RlZmluZSBJTkNIXzkgICAgICAgICAgICAgICAgICg5KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMTAgICAgICAgICAgICAgICAgKDEwKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMTIgICAgICAgICAgICAgICAgKDEyKjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisjZGVmaW5lIElOQ0hfMTMgICAgICAgICAgICAgICAgKDEzKjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisjZGVmaW5lIElOQ0hfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisjZGVmaW5lIElOQ0hfMTUgICAgICAgICAgICAgICAgKDE1KjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisKKy8qIEFEQzEwRFRDMCAqLworI2RlZmluZSBBREMxMEZFVENIICAgICAgICAgICAgICgweDAwMSkKKyNkZWZpbmUgQURDMTBCMSAgICAgICAgICAgICAgICAoMHgwMDIpCisjZGVmaW5lIEFEQzEwQ1QgICAgICAgICAgICAgICAgKDB4MDA0KQorI2RlZmluZSBBREMxMFRCICAgICAgICAgICAgICAgICgweDAwOCkKKyNkZWZpbmUgQURDMTBESVNBQkxFICAgICAgICAgICAoMHgwMDApICAgICAgICAvKiBBREMxMERUQzEgKi8KKworLyogQURDMTBBRSAqLworI2RlZmluZSBBREMxMEFFMCAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEwIEV4dGVybmFsIElucHV0IEVuYWJsZSAwICovCisjZGVmaW5lIEFEQzEwQUUxICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTAgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgQURDMTBBRTIgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMCBFeHRlcm5hbCBJbnB1dCBFbmFibGUgMiAqLworI2RlZmluZSBBREMxMEFFMyAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEwIEV4dGVybmFsIElucHV0IEVuYWJsZSAzICovCisjZGVmaW5lIEFEQzEwQUU0ICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTAgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDQgKi8KKyNkZWZpbmUgQURDMTBBRTUgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMCBFeHRlcm5hbCBJbnB1dCBFbmFibGUgNSAqLworI2RlZmluZSBBREMxMEFFNiAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEwIEV4dGVybmFsIElucHV0IEVuYWJsZSA2ICovCisjZGVmaW5lIEFEQzEwQUU3ICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTAgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDIgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAyIikgICovIC8qIDB4RkZFNCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBBREMxMF9WRUNUT1IgICAgICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQSBBREMxMCAqLworLyojZGVmaW5lIEFEQzEwX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNSIpICAqLyAvKiAweEZGRUEgQURDMTAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFRYX1ZFQ1RPUiAgICAgICAgICg2ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFVTQVJUIDAgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0FSVDBUWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDYiKSAgKi8gLyogMHhGRkVDIFVTQVJUIDAgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFJYX1ZFQ1RPUiAgICAgICAgICg3ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIFVTQVJUIDAgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQVJUMFJYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNyIpICAqLyAvKiAweEZGRUUgVVNBUlQgMCBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkExX1ZFQ1RPUiAgICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBUaW1lciBBIENDMS0yLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOCIpICAqLyAvKiAweEZGRjAgVGltZXIgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICg5ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA5IikgICovIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBOTUlfVkVDVE9SICAgICAgICAgICAgICAoMTQgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8KKy8qI2RlZmluZSBOTUlfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTQiKSAgKi8gLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVRfVkVDVE9SICAgICAgICAgICAgKDE1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovCisvKiNkZWZpbmUgUkVTRVRfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE1IikgICovIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDEyeDIgKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxM3guaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTN4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMThkZDhjZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTN4LmgKQEAgLTAsMCArMSw5MDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDEzeCBkZXZpY2VzLgorKgorKiBUZXhhcyBJbnN0cnVtZW50cywgVmVyc2lvbiAyLjQKKyoKKyogUmV2LiAxLjIsIEFkZGl0aW9uYWwgVGltZXIgQiBiaXQgZGVmaW5pdGlvbnMuCisqICAgICAgICAgICBSZW5hbWVkIFhUT0ZGIHRvIFhUMk9GRi4KKyogUmV2LiAxLjMsIFJlbW92ZWQgbGVhZGluZyAwIHRvIGF2aW9kIGludGVycHJldGF0aW9uIGFzIG9jdGFsCisqICAgICAgICAgICAgdmFsdWVzIHVuZGVyIEMKKyogICAgICAgICAgIEluY2x1ZGVkIDxJbjQzMC5oPiByYXRoZXIgdGhhbiAiSW40MzAuaCIKKyogUmV2LiAxLjQsIENvcnJlY3RlZCBMUE14X0VYSVQgdG8gcmVmZXJlbmNlIG5ldyBpbnRyaW5zaWMgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0CisqICAgICAgICAgICBDaGFuZ2VkIFRBSVYgYW5kIFRCSVYgdG8gYmUgcmVhZC1vbmx5CisqIFJldi4gMS41LCBFbmNsb3NlIGFsbCAjZGVmaW5lIHN0YXRlbWVudHMgd2l0aCBwYXJlbnRoZXNlcworKiBSZXYuIDEuNiwgRGVmaW5lZCB2ZWN0b3JzIGZvciBVU0FSVCAoaW4gYWRkaXRpb24gdG8gVUFSVCkKKyogUmV2LiAxLjcsIEFkZGVkIFVTQVJUIHNwZWNpYWwgZnVuY3Rpb24gbGFiZWxzIChVeE1FLCBVeElFLCBVeElGRykKKyogUmV2LiAyLjEsIEFsaWdubWVudCBvZiBkZWZpbnRpb25zIGluIFVzZXJzIEd1aWRlIGFuZCBvZiB2ZXJzaW9uIG51bWJlcnMKKyogUmV2LiAyLjIsIEZpeGVkIHR5cGUgaW4gQURDMTIgYml0IGRlZmluaXRpb25zIChyZXBsYWNlZCBBREMxMCB3aXRoIEFEQzEyKQorKiBSZXYuIDIuMywgUmVtb3ZlZCB1bnVzZWQgZGVmIG9mIFRBU1NFTDIgLyBUQlNTRUwyCisqIFJldi4gMi40LCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4MTN4CisjZGVmaW5lIF9fbXNwNDMweDEzeAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFBFUklQSEVSQUwgRklMRSBNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBFeHRlcm5hbCByZWZlcmVuY2VzIHJlc29sdmVkIGJ5IGEgZGV2aWNlLXNwZWNpZmljIGxpbmtlciBjb21tYW5kIGZpbGUgKi8KKyNkZWZpbmUgU0ZSXzhCSVQoYWRkcmVzcykgICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgY2hhciBhZGRyZXNzCisjZGVmaW5lIFNGUl8xNkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFOREFSRCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQklUMCAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBCSVQxICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIEJJVDIgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgQklUMyAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBCSVQ0ICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIEJJVDUgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgQklUNiAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBCSVQ3ICAgICAgICAgICAgICAgICAgICgweDAwODApCisjZGVmaW5lIEJJVDggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgQklUOSAgICAgICAgICAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBCSVRBICAgICAgICAgICAgICAgICAgICgweDA0MDApCisjZGVmaW5lIEJJVEIgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkKKyNkZWZpbmUgQklUQyAgICAgICAgICAgICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBCSVREICAgICAgICAgICAgICAgICAgICgweDIwMDApCisjZGVmaW5lIEJJVEUgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkKKyNkZWZpbmUgQklURiAgICAgICAgICAgICAgICAgICAoMHg4MDAwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQVRVUyBSRUdJU1RFUiBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQyAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBaICAgICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIE4gICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgViAgICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBHSUUgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgT1NDT0ZGICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBTQ0cwICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFNDRzEgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworLyogTG93IFBvd2VyIE1vZGVzIGNvZGVkIHdpdGggQml0cyA0LTcgaW4gU1IgKi8KKworI2lmZGVmIF9fQVNNX0hFQURFUl9fIC8qIEJlZ2luICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKyNkZWZpbmUgTFBNMCAgICAgICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xICAgICAgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMiAgICAgICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTMgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTQgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorLyogRW5kICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKworI2Vsc2UgLyogQmVnaW4gI2RlZmluZXMgZm9yIEMgKi8KKyNkZWZpbmUgTFBNMF9iaXRzICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xX2JpdHMgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMl9iaXRzICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTNfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTRfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorCisjaW5jbHVkZSA8SW40MzAuaD4KKworI2RlZmluZSBMUE0wICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0wX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0wX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTBfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTEgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTFfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTFfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMV9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMiAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMl9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMl9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0yX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0zICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0zX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE0zX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTQgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTRfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSA0ICovCisjZGVmaW5lIExQTTRfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNNF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDQgKi8KKyNlbmRpZiAvKiBFbmQgI2RlZmluZXMgZm9yIEMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1BFQ0lBTCBGVU5DVElPTiBSRUdJU1RFUiBBRERSRVNTRVMgKyBDT05UUk9MIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworU0ZSXzhCSVQoSUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMSAqLworI2RlZmluZSBVMElFICAgICAgICAgICAgICAgICAgIElFMSAgICAgICAgICAgIC8qIFVBUlQwIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVVJYSUUwICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYSUUwICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgVTBJRkcgICAgICAgICAgICAgICAgICBJRkcxICAgICAgICAgICAvKiBVQVJUMCBJbnRlcnJ1cHQgRmxhZyBSZWdpc3RlciAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRkcgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBVUlhJRkcwICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhJRkcwICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChNRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTW9kdWxlIEVuYWJsZSAxICovCisjZGVmaW5lIFUwTUUgICAgICAgICAgICAgICAgICAgTUUxICAgICAgICAgICAgLyogVUFSVDAgTW9kdWxlIEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBVUlhFMCAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhFMCAgICAgICAgICAgICAgICAgICgweDgwKQorI2RlZmluZSBVU1BJRTAgICAgICAgICAgICAgICAgICgweDQwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDUvNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ2X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA1SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgSW5wdXQgKi8KK1NGUl84QklUKFA1T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgT3V0cHV0ICovCitTRlJfOEJJVChQNURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDVTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQVJUCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFV4Q1RMICovCisjZGVmaW5lIFBFTkEgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogUGFyaXR5IGVuYWJsZSAqLworI2RlZmluZSBQRVYgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBTUEIgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFN0b3AgQml0cyAwOm9uZSAvIDE6IHR3byAqLworI2RlZmluZSBDSEFSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIERhdGEgMDo3LWJpdHMgLyAxOjgtYml0cyAqLworI2RlZmluZSBMSVNURU4gICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFNZTkMgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVUFSVCAvIFNQSSBtb2RlICovCisjZGVmaW5lIE1NICAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTWFzdGVyIE1vZGUgb2ZmL29uICovCisjZGVmaW5lIFNXUlNUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNBUlQgU29mdHdhcmUgUmVzZXQgKi8KKworLyogVXhUQ1RMICovCisjZGVmaW5lIENLUEggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU1BJOiBDbG9jayBQaGFzZSAqLworI2RlZmluZSBDS1BMICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENsb2NrIFBvbGFyaXR5ICovCisjZGVmaW5lIFNTRUwxICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFNTRUwwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFVSWFNFICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVjZWl2ZSBTdGFydCBlZGdlIHNlbGVjdCAqLworI2RlZmluZSBUWFdBS0UgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFRYIFdha2UgdXAgbW9kZSAqLworI2RlZmluZSBTVEMgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNQSTogU1RDIGVuYWJsZSAwOm9uIC8gMTpvZmYgKi8KKyNkZWZpbmUgVFhFUFQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBUWCBCdWZmZXIgZW1wdHkgKi8KKworLyogVXhSQ1RMICovCisjZGVmaW5lIEZFICAgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRnJhbWUgRXJyb3IgKi8KKyNkZWZpbmUgUEUgICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQYXJpdHkgRXJyb3IgKi8KKyNkZWZpbmUgT0UgICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPdmVycnVuIEVycm9yICovCisjZGVmaW5lIEJSSyAgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgZGV0ZWN0ZWQgKi8KKyNkZWZpbmUgVVJYRUlFICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVSWFdJRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUlggV2FrZSB1cCBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFJYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUlggV2FrZSB1cCBkZXRlY3QgKi8KKyNkZWZpbmUgUlhFUlIgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSWCBFcnJvciBFcnJvciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQVJUIDAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VBUlQwX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFUwQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KK1NGUl84QklUKFUwVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFUwUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBNQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVTBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFUwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisKKyNkZWZpbmUgVUNUTDAgICAgICAgICAgICAgICAgICBVMENUTCAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVEwwICAgICAgICAgICAgICAgICBVMFRDVEwgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVEwwICAgICAgICAgICAgICAgICBVMFJDVEwgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTDAgICAgICAgICAgICAgICAgIFUwTUNUTCAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjAwICAgICAgICAgICAgICAgICAgVTBCUjAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxMCAgICAgICAgICAgICAgICAgIFUwQlIxICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUYwICAgICAgICAgICAgICAgICBVMFJYQlVGICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGMCAgICAgICAgICAgICAgICAgVTBUWEJVRiAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTDBfICAgICAgICAgICAgICAgICBVMENUTF8gICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVEwwXyAgICAgICAgICAgICAgICBVMFRDVExfICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVEwwXyAgICAgICAgICAgICAgICBVMFJDVExfICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTDBfICAgICAgICAgICAgICAgIFUwTUNUTF8gICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjAwXyAgICAgICAgICAgICAgICAgVTBCUjBfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxMF8gICAgICAgICAgICAgICAgIFUwQlIxXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUYwXyAgICAgICAgICAgICAgICBVMFJYQlVGXyAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGMF8gICAgICAgICAgICAgICAgVTBUWEJVRl8gICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTF8wICAgICAgICAgICAgICAgICBVMENUTCAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVExfMCAgICAgICAgICAgICAgICBVMFRDVEwgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVExfMCAgICAgICAgICAgICAgICBVMFJDVEwgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTF8wICAgICAgICAgICAgICAgIFUwTUNUTCAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjBfMCAgICAgICAgICAgICAgICAgVTBCUjAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxXzAgICAgICAgICAgICAgICAgIFUwQlIxICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUZfMCAgICAgICAgICAgICAgICBVMFJYQlVGICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGXzAgICAgICAgICAgICAgICAgVTBUWEJVRiAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTF8wXyAgICAgICAgICAgICAgICBVMENUTF8gICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVExfMF8gICAgICAgICAgICAgICBVMFRDVExfICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVExfMF8gICAgICAgICAgICAgICBVMFJDVExfICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTF8wXyAgICAgICAgICAgICAgIFUwTUNUTF8gICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjBfMF8gICAgICAgICAgICAgICAgVTBCUjBfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxXzBfICAgICAgICAgICAgICAgIFUwQlIxXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUZfMF8gICAgICAgICAgICAgICBVMFJYQlVGXyAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGXzBfICAgICAgICAgICAgICAgVTBUWEJVRl8gICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEIzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQjNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQlIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCICovCitTRlJfMTZCSVQoVEJDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRCQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQkNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEJDTEdSUDEgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFRCQ0xHUlAwICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworI2RlZmluZSBDTlRMMSAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDEgKi8KKyNkZWZpbmUgQ05UTDAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAwICovCisjZGVmaW5lIFRCU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDEgKi8KKyNkZWZpbmUgVEJTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMCAqLworI2RlZmluZSBUQkNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEIgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQklFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQklGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBTSFIxICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgU0hSMCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisKKyNkZWZpbmUgVEJTU0VMXzAgICAgICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFRCQ0xLICovCisjZGVmaW5lIFRCU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBBQ0xLICAqLworI2RlZmluZSBUQlNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogU01DTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzMgICAgICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IElOQ0xLICovCisjZGVmaW5lIENOVExfMCAgICAgICAgICAgICAgICAgKDAqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDE2IGJpdCAqLworI2RlZmluZSBDTlRMXzEgICAgICAgICAgICAgICAgICgxKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8yICAgICAgICAgICAgICAgICAoMioweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTAgYml0ICovCisjZGVmaW5lIENOVExfMyAgICAgICAgICAgICAgICAgKDMqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6ICA4IGJpdCAqLworI2RlZmluZSBTSFJfMCAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgU0hSXzEgICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFNIUl8yICAgICAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBTSFJfMyAgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisjZGVmaW5lIFRCQ0xHUlBfMCAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBUQkNMR1JQXzEgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgVEJDTEdSUF8yICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFRCQ0xHUlBfMyAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKworLyogQWRkaXRpb25hbCBUaW1lciBCIENvbnRyb2wgUmVnaXN0ZXIgYml0cyBhcmUgZGVmaW5lZCBpbiBUaW1lciBBICovCisKKyNkZWZpbmUgQ0xMRDEgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgQ0xMRDAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUjEgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBTTFNIUjAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSXzAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgU0xTSFJfMSAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBTTFNIUl8yICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBTTFNIUl8zICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworI2RlZmluZSBDTExEXzAgICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIENMTERfMSAgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgQ0xMRF8yICAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgQ0xMRF8zICAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKy8qIFRCM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRCSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQkNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQkNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl8zICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzQgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNSAgICAgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl82ICAgICAgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWX1RCSUZHICAgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFRCSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQmFzaWMgQ2xvY2sgTW9kdWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CQVNJQ19DTE9DS19fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoRENPQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDTyBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworU0ZSXzhCSVQoQkNTQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDEgKi8KK1NGUl84QklUKEJDU0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAyICovCisKKyNkZWZpbmUgTU9EMCAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAwICovCisjZGVmaW5lIE1PRDEgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMSAqLworI2RlZmluZSBNT0QyICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDIgKi8KKyNkZWZpbmUgTU9EMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAzICovCisjZGVmaW5lIE1PRDQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgNCAqLworI2RlZmluZSBEQ08wICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgRENPMSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIERDTzIgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMiAqLworCisjZGVmaW5lIFJTRUwwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIFJTRUwxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIFJTRUwyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIFhUNVYgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWFQ1ViBzaG91bGQgYWx3YXlzIGJlIHJlc2V0ICovCisjZGVmaW5lIERJVkEwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWQTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBYVFMgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExGWFRDTEsgMDpMb3cgRnJlcS4gLyAxOiBIaWdoIEZyZXEuICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRW5hYmxlIFhUMkNMSyAqLworCisjZGVmaW5lIERJVkFfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVkFfMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVkFfMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVkFfMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRENPUiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBFbmFibGUgRXh0ZXJuYWwgUmVzaXN0b3IgOiAxICovCisjZGVmaW5lIERJVlMwICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVlMxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCAwOkRDT0NMSyAvIDE6WFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgRElWTTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZNMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTE0wICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0VMTTEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMSAqLworCisjZGVmaW5lIERJVlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZTXzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWU18yICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVlNfMyAgICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERJVk1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVk1fMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVk1fMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVk1fMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgU0VMTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMDogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMSAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDE6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAyOiBYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBTRUxNXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAzOiBMRlhUQ0xLICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NPTVBBX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTAgOiAxICovCisjZGVmaW5lIFAyQ0ExICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTEgOiAxICovCisjZGVmaW5lIENBQ1RMMjQgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIENBQ1RMMjUgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIENBQ1RMMjYgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIENBQ1RMMjcgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgQ0FQRDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjAgKi8KKyNkZWZpbmUgQ0FQRDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjEgKi8KKyNkZWZpbmUgQ0FQRDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjIgKi8KKyNkZWZpbmUgQ0FQRDMgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjMgKi8KKyNkZWZpbmUgQ0FQRDQgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjQgKi8KKyNkZWZpbmUgQ0FQRDUgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjUgKi8KKyNkZWZpbmUgQ0FQRDYgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjYgKi8KKyNkZWZpbmUgQ0FQRDcgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBREMxMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQURDMTJfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEFEQzEyQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKEFEQzEyQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEFEQzEySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIEludGVycnVwdCBGbGFnICovCitTRlJfMTZCSVQoQURDMTJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzE2QklUKEFEQzEySVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworCisjZGVmaW5lIEFEQzEyTUVNXyAgICAgICAgICAgICAgKDB4MDE0MCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgKi8KKyNpZmRlZiBfX0FTTV9IRUFERVJfXworI2RlZmluZSBBREMxMk1FTSAgICAgICAgICAgICAgIChBREMxMk1FTV8pICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgQURDMTJNRU0gICAgICAgICAgICAgICAoKGludCopICAgICAgICBBREMxMk1FTV8pIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzE2QklUKEFEQzEyTUVNMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDAgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxICovCitTRlJfMTZCSVQoQURDMTJNRU0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMiAqLworU0ZSXzE2QklUKEFEQzEyTUVNMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDMgKi8KK1NGUl8xNkJJVChBREMxMk1FTTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA0ICovCitTRlJfMTZCSVQoQURDMTJNRU01KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNSAqLworU0ZSXzE2QklUKEFEQzEyTUVNNik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDYgKi8KK1NGUl8xNkJJVChBREMxMk1FTTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA3ICovCitTRlJfMTZCSVQoQURDMTJNRU04KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgOCAqLworU0ZSXzE2QklUKEFEQzEyTUVNOSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDkgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTEpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDExICovCitTRlJfMTZCSVQoQURDMTJNRU0xMik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTIgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMyAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDE0ICovCitTRlJfMTZCSVQoQURDMTJNRU0xNSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTUgKi8KKworI2RlZmluZSBBREMxMk1DVExfICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgQURDMTJNQ1RMICAgICAgICAgICAgICAoQURDMTJNQ1RMXykgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIEFEQzEyTUNUTCAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgQURDMTJNQ1RMXykgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKGZvciBDKSAqLworI2VuZGlmCitTRlJfOEJJVChBREMxMk1DVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEgKi8KK1NGUl84QklUKEFEQzEyTUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAyICovCitTRlJfOEJJVChBREMxMk1DVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDQgKi8KK1NGUl84QklUKEFEQzEyTUNUTDUpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA1ICovCitTRlJfOEJJVChBREMxMk1DVEw2KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDcgKi8KK1NGUl84QklUKEFEQzEyTUNUTDgpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA4ICovCitTRlJfOEJJVChBREMxMk1DVEw5KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgOSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTApOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEwICovCitTRlJfOEJJVChBREMxMk1DVEwxMSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTEgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEyKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTMpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEzICovCitTRlJfOEJJVChBREMxMk1DVEwxNCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTQgKi8KK1NGUl84QklUKEFEQzEyTUNUTDE1KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxNSAqLworCisvKiBBREMxMkNUTDAgKi8KKyNkZWZpbmUgQURDMTJTQyAgICAgICAgICAgICAgICAoMHgwMDEpICAgICAgICAvKiBBREMxMiBTdGFydCBDb252ZXJzaW9uICovCisjZGVmaW5lIEVOQyAgICAgICAgICAgICAgICAgICAgKDB4MDAyKSAgICAgICAgLyogQURDMTIgRW5hYmxlIENvbnZlcnNpb24gKi8KKyNkZWZpbmUgQURDMTJUT1ZJRSAgICAgICAgICAgICAoMHgwMDQpICAgICAgICAvKiBBREMxMiBUaW1lciBPdmVyZmxvdyBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIEFEQzEyT1ZJRSAgICAgICAgICAgICAgKDB4MDA4KSAgICAgICAgLyogQURDMTIgT3ZlcmZsb3cgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBBREMxMk9OICAgICAgICAgICAgICAgICgweDAxMCkgICAgICAgIC8qIEFEQzEyIE9uL2VuYWJsZSAqLworI2RlZmluZSBSRUZPTiAgICAgICAgICAgICAgICAgICgweDAyMCkgICAgICAgIC8qIEFEQzEyIFJlZmVyZW5jZSBvbiAqLworI2RlZmluZSBSRUYyXzVWICAgICAgICAgICAgICAgICgweDA0MCkgICAgICAgIC8qIEFEQzEyIFJlZiAwOjEuNVYgLyAxOjIuNVYgKi8KKyNkZWZpbmUgTVNDICAgICAgICAgICAgICAgICAgICAoMHgwODApICAgICAgICAvKiBBREMxMiBNdWx0aXBsZSBTYW1wbGVDb252ZXJzaW9uICovCisjZGVmaW5lIFNIVDAwICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMCAqLworI2RlZmluZSBTSFQwMSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0hUMDIgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAyICovCisjZGVmaW5lIFNIVDAzICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMyAqLworI2RlZmluZSBTSFQxMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0hUMTEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAxIFNlbGVjdCAxICovCisjZGVmaW5lIFNIVDEyICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMiBTZWxlY3QgMiAqLworI2RlZmluZSBTSFQxMyAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDMgU2VsZWN0IDMgKi8KKyNkZWZpbmUgTVNIICAgICAgICAgICAgICAgICAgICAoMHgwODApCisKKyNkZWZpbmUgU0hUMF8wICAgICAgICAgICAgICAgICAoMCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDB1KQorI2RlZmluZSBTSFQwXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8zICAgICAgICAgICAgICAgICAoMyoweDEwMHUpCisjZGVmaW5lIFNIVDBfNCAgICAgICAgICAgICAgICAgKDQqMHgxMDB1KQorI2RlZmluZSBTSFQwXzUgICAgICAgICAgICAgICAgICg1KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF82ICAgICAgICAgICAgICAgICAoNioweDEwMHUpCisjZGVmaW5lIFNIVDBfNyAgICAgICAgICAgICAgICAgKDcqMHgxMDB1KQorI2RlZmluZSBTSFQwXzggICAgICAgICAgICAgICAgICg4KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF85ICAgICAgICAgICAgICAgICAoOSoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTAgICAgICAgICAgICAgICAgKDEwKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMSAgICAgICAgICAgICAgICAoMTEqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEyICAgICAgICAgICAgICAgICgxMioweDEwMHUpCisjZGVmaW5lIFNIVDBfMTMgICAgICAgICAgICAgICAgKDEzKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xNCAgICAgICAgICAgICAgICAoMTQqMHgxMDB1KQorI2RlZmluZSBTSFQwXzE1ICAgICAgICAgICAgICAgICgxNSoweDEwMHUpCisKKyNkZWZpbmUgU0hUMV8wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBTSFQxXzQgICAgICAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNSAgICAgICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV82ICAgICAgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBTSFQxXzcgICAgICAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfOCAgICAgICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV85ICAgICAgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzEwICAgICAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzExICAgICAgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzEyICAgICAgICAgICAgICAgICgxMioweDEwMDB1KQorI2RlZmluZSBTSFQxXzEzICAgICAgICAgICAgICAgICgxMyoweDEwMDB1KQorI2RlZmluZSBTSFQxXzE0ICAgICAgICAgICAgICAgICgxNCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzE1ICAgICAgICAgICAgICAgICgxNSoweDEwMDB1KQorCisvKiBBREMxMkNUTDEgKi8KKyNkZWZpbmUgQURDMTJCVVNZICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBBREMxMiBCdXN5ICovCisjZGVmaW5lIENPTlNFUTAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTZXF1ZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDT05TRVExICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJTU0VMMCAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMiBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTJTU0VMMSAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJESVYwICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyRElWMSAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMkRJVjIgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDIgKi8KKyNkZWZpbmUgSVNTSCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBBREMxMiBJbnZlcnQgU2FtcGxlIEhvbGQgU2lnbmFsICovCisjZGVmaW5lIFNIUCAgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQURDMTIgU2FtcGxlL0hvbGQgUHVsc2UgTW9kZSAqLworI2RlZmluZSBTSFMwICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFNvdXJjZSAwICovCisjZGVmaW5lIFNIUzEgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQURDMTIgU2FtcGxlL0hvbGQgU291cmNlIDEgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMCAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMCAqLworI2RlZmluZSBDU1RBUlRBREQxICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAxICovCisjZGVmaW5lIENTVEFSVEFERDIgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDIgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMyAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMyAqLworCisjZGVmaW5lIENPTlNFUV8wICAgICAgICAgICAgICAgKDAqMnUpCisjZGVmaW5lIENPTlNFUV8xICAgICAgICAgICAgICAgKDEqMnUpCisjZGVmaW5lIENPTlNFUV8yICAgICAgICAgICAgICAgKDIqMnUpCisjZGVmaW5lIENPTlNFUV8zICAgICAgICAgICAgICAgKDMqMnUpCisjZGVmaW5lIEFEQzEyU1NFTF8wICAgICAgICAgICAgKDAqOHUpCisjZGVmaW5lIEFEQzEyU1NFTF8xICAgICAgICAgICAgKDEqOHUpCisjZGVmaW5lIEFEQzEyU1NFTF8yICAgICAgICAgICAgKDIqOHUpCisjZGVmaW5lIEFEQzEyU1NFTF8zICAgICAgICAgICAgKDMqOHUpCisjZGVmaW5lIEFEQzEyRElWXzAgICAgICAgICAgICAgKDAqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzEgICAgICAgICAgICAgKDEqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzIgICAgICAgICAgICAgKDIqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzMgICAgICAgICAgICAgKDMqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzQgICAgICAgICAgICAgKDQqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzUgICAgICAgICAgICAgKDUqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzYgICAgICAgICAgICAgKDYqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzcgICAgICAgICAgICAgKDcqMHgyMHUpCisjZGVmaW5lIFNIU18wICAgICAgICAgICAgICAgICAgKDAqMHg0MDB1KQorI2RlZmluZSBTSFNfMSAgICAgICAgICAgICAgICAgICgxKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzIgICAgICAgICAgICAgICAgICAoMioweDQwMHUpCisjZGVmaW5lIFNIU18zICAgICAgICAgICAgICAgICAgKDMqMHg0MDB1KQorI2RlZmluZSBDU1RBUlRBRERfMCAgICAgICAgICAgICgwKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xICAgICAgICAgICAgKDEqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzIgICAgICAgICAgICAoMioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMyAgICAgICAgICAgICgzKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF80ICAgICAgICAgICAgKDQqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzUgICAgICAgICAgICAoNSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNiAgICAgICAgICAgICg2KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF83ICAgICAgICAgICAgKDcqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzggICAgICAgICAgICAoOCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfOSAgICAgICAgICAgICg5KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xMCAgICAgICAgICAgKDEwKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xMSAgICAgICAgICAgKDExKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xMiAgICAgICAgICAgKDEyKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xMyAgICAgICAgICAgKDEzKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xNCAgICAgICAgICAgKDE0KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xNSAgICAgICAgICAgKDE1KjB4MTAwMHUpCisKKy8qIEFEQzEyTUNUTHggKi8KKyNkZWZpbmUgSU5DSDAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBJTkNIMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIElOQ0gyICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDIgKi8KKyNkZWZpbmUgSU5DSDMgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMyAqLworI2RlZmluZSBTUkVGMCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDAgKi8KKyNkZWZpbmUgU1JFRjEgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAxICovCisjZGVmaW5lIFNSRUYyICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMiAqLworI2RlZmluZSBFT1MgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEFEQzEyIEVuZCBvZiBTZXF1ZW5jZSAqLworCisjZGVmaW5lIElOQ0hfMCAgICAgICAgICAgICAgICAgKDApCisjZGVmaW5lIElOQ0hfMSAgICAgICAgICAgICAgICAgKDEpCisjZGVmaW5lIElOQ0hfMiAgICAgICAgICAgICAgICAgKDIpCisjZGVmaW5lIElOQ0hfMyAgICAgICAgICAgICAgICAgKDMpCisjZGVmaW5lIElOQ0hfNCAgICAgICAgICAgICAgICAgKDQpCisjZGVmaW5lIElOQ0hfNSAgICAgICAgICAgICAgICAgKDUpCisjZGVmaW5lIElOQ0hfNiAgICAgICAgICAgICAgICAgKDYpCisjZGVmaW5lIElOQ0hfNyAgICAgICAgICAgICAgICAgKDcpCisjZGVmaW5lIElOQ0hfOCAgICAgICAgICAgICAgICAgKDgpCisjZGVmaW5lIElOQ0hfOSAgICAgICAgICAgICAgICAgKDkpCisjZGVmaW5lIElOQ0hfMTAgICAgICAgICAgICAgICAgKDEwKQorI2RlZmluZSBJTkNIXzExICAgICAgICAgICAgICAgICgxMSkKKyNkZWZpbmUgSU5DSF8xMiAgICAgICAgICAgICAgICAoMTIpCisjZGVmaW5lIElOQ0hfMTMgICAgICAgICAgICAgICAgKDEzKQorI2RlZmluZSBJTkNIXzE0ICAgICAgICAgICAgICAgICgxNCkKKyNkZWZpbmUgSU5DSF8xNSAgICAgICAgICAgICAgICAoMTUpCisKKyNkZWZpbmUgU1JFRl8wICAgICAgICAgICAgICAgICAoMCoweDEwdSkKKyNkZWZpbmUgU1JFRl8xICAgICAgICAgICAgICAgICAoMSoweDEwdSkKKyNkZWZpbmUgU1JFRl8yICAgICAgICAgICAgICAgICAoMioweDEwdSkKKyNkZWZpbmUgU1JFRl8zICAgICAgICAgICAgICAgICAoMyoweDEwdSkKKyNkZWZpbmUgU1JFRl80ICAgICAgICAgICAgICAgICAoNCoweDEwdSkKKyNkZWZpbmUgU1JFRl81ICAgICAgICAgICAgICAgICAoNSoweDEwdSkKKyNkZWZpbmUgU1JFRl82ICAgICAgICAgICAgICAgICAoNioweDEwdSkKKyNkZWZpbmUgU1JFRl83ICAgICAgICAgICAgICAgICAoNyoweDEwdSkKKworLyogQURDMTJJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBBREMxMklWX05PTkUgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJPVklGRyAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTJPVklGRyAqLworI2RlZmluZSBBREMxMklWX0FEQzEyVE9WSUZHICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyVE9WSUZHICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcwICAgICAgKDB4MDAwNikgICAgICAgLyogQURDMTJJRkcwICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTJJRkcxICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcyICAgICAgKDB4MDAwQSkgICAgICAgLyogQURDMTJJRkcyICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkczICAgICAgKDB4MDAwQykgICAgICAgLyogQURDMTJJRkczICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc0ICAgICAgKDB4MDAwRSkgICAgICAgLyogQURDMTJJRkc0ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc1ICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTJJRkc1ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc2ICAgICAgKDB4MDAxMikgICAgICAgLyogQURDMTJJRkc2ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc3ICAgICAgKDB4MDAxNCkgICAgICAgLyogQURDMTJJRkc3ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc4ICAgICAgKDB4MDAxNikgICAgICAgLyogQURDMTJJRkc4ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc5ICAgICAgKDB4MDAxOCkgICAgICAgLyogQURDMTJJRkc5ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMCAgICAgKDB4MDAxQSkgICAgICAgLyogQURDMTJJRkcxMCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTEgICAgICgweDAwMUMpICAgICAgIC8qIEFEQzEySUZHMTEgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEyICAgICAoMHgwMDFFKSAgICAgICAvKiBBREMxMklGRzEyICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMyAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTJJRkcxMyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTQgICAgICgweDAwMjIpICAgICAgIC8qIEFEQzEySUZHMTQgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzE1ICAgICAoMHgwMDI0KSAgICAgICAvKiBBREMxMklGRzE1ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgxICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUyIFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMSIpICAqLyAvKiAweEZGRTIgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIEFEQzEyX1ZFQ1RPUiAgICAgICAgICAgICg3ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIEFEQyAqLworLyojZGVmaW5lIEFEQzEyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNyIpICAqLyAvKiAweEZGRUUgQURDICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBUWF9WRUNUT1IgICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNBUlQwVFhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBSWF9WRUNUT1IgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBVU0FSVCAwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0FSVDBSWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtMiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTIsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MTN4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTN4MS5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxM3gxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTE5ZDQ3MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTN4MS5oCkBAIC0wLDAgKzEsNjcyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgxM3gxIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDIuMworKgorKiBSZXYuIDEuMSwgRW5jbG9zZSBhbGwgI2RlZmluZSBzdGF0ZW1lbnRzIHdpdGggcGFyZW50aGVzZXMKKyogUmV2LiAxLjIsIERlZmluZWQgdmVjdG9ycyBmb3IgVVNBUlQgKGluIGFkZGl0aW9uIHRvIFVBUlQpCisqIFJldi4gMS4zLCBBZGRlZCBVU0FSVCBzcGVjaWFsIGZ1bmN0aW9uIGxhYmVscyAoVXhNRSwgVXhJRSwgVXhJRkcpCisqIFJldi4gMi4xLCBBbGlnbm1lbnQgb2YgZGVmaW50aW9ucyBpbiBVc2VycyBHdWlkZSBhbmQgb2YgdmVyc2lvbiBudW1iZXJzCisqIFJldi4gMi4yLCBSZW1vdmVkIHVudXNlZCBkZWYgb2YgVEFTU0VMMiAvIFRCU1NFTDIKKyogUmV2LiAyLjMsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4MTN4MQorI2RlZmluZSBfX21zcDQzMHgxM3gxCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFUwSUUgICAgICAgICAgICAgICAgICAgSUUxICAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBVUlhJRTAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhJRTAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBVMElGRyAgICAgICAgICAgICAgICAgIElGRzEgICAgICAgICAgIC8qIFVBUlQwIEludGVycnVwdCBGbGFnIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVSWElGRzAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElGRzAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKE1FMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNb2R1bGUgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBNRSAgICAgICAgICAgICAgICAgICBNRTEgICAgICAgICAgICAvKiBVQVJUMCBNb2R1bGUgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWEUwICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWEUwICAgICAgICAgICAgICAgICAgKDB4ODApCisjZGVmaW5lIFVTUElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogV0FUQ0hET0cgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1dEVF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChXRFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBXRFRTU0VMICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBXRFROTUkgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFdEVE5NSUVTICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgV0RUSE9MRCAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisjZGVmaW5lIFdEVFBXICAgICAgICAgICAgICAgICAgKDB4NUEwMCkKKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01ETFlfOCAgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzUgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQURMWV8xMDAwICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BRExZXzI1MCAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xXzkgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgLyogMS45bXMgICAiICovCisvKiBXYXRjaGRvZyBtb2RlIC0+IHJlc2V0IGFmdGVyIGV4cGlyZWQgdGltZSAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NUlNUXzMyICAgICAgICAgKFdEVFBXK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfNSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF8wNjQgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMjUwICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xNiAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAvKiAxLjltcyAgICIgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAweDAxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDEvMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAxSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW5wdXQgKi8KK1NGUl84QklUKFAxT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgT3V0cHV0ICovCitTRlJfOEJJVChQMURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDFJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQzLzQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQzX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQM0lOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIElucHV0ICovCitTRlJfOEJJVChQM09VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIE91dHB1dCAqLworU0ZSXzhCSVQoUDNESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAzU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFA0SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgSW5wdXQgKi8KK1NGUl84QklUKFA0T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgT3V0cHV0ICovCitTRlJfOEJJVChQNERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDRTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0NS82CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDZfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDVJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBJbnB1dCAqLworU0ZSXzhCSVQoUDVPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBPdXRwdXQgKi8KK1NGUl84QklUKFA1RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IElucHV0ICovCitTRlJfOEJJVChQNk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IE91dHB1dCAqLworU0ZSXzhCSVQoUDZESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA2U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVXhDVEwgKi8KKyNkZWZpbmUgUEVOQSAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBQYXJpdHkgZW5hYmxlICovCisjZGVmaW5lIFBFViAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IDA6b2RkIC8gMTpldmVuICovCisjZGVmaW5lIFNQQiAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogU3RvcCBCaXRzIDA6b25lIC8gMTogdHdvICovCisjZGVmaW5lIENIQVIgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogRGF0YSAwOjctYml0cyAvIDE6OC1iaXRzICovCisjZGVmaW5lIExJU1RFTiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTGlzdGVuIG1vZGUgKi8KKyNkZWZpbmUgU1lOQyAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVQVJUIC8gU1BJIG1vZGUgKi8KKyNkZWZpbmUgTU0gICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNYXN0ZXIgTW9kZSBvZmYvb24gKi8KKyNkZWZpbmUgU1dSU1QgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0FSVCBTb2Z0d2FyZSBSZXNldCAqLworCisvKiBVeFRDVEwgKi8KKyNkZWZpbmUgQ0tQSCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTUEk6IENsb2NrIFBoYXNlICovCisjZGVmaW5lIENLUEwgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ2xvY2sgUG9sYXJpdHkgKi8KKyNkZWZpbmUgU1NFTDEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1NFTDAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVVJYU0UgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSZWNlaXZlIFN0YXJ0IGVkZ2Ugc2VsZWN0ICovCisjZGVmaW5lIFRYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVFggV2FrZSB1cCBtb2RlICovCisjZGVmaW5lIFNUQyAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1BJOiBTVEMgZW5hYmxlIDA6b24gLyAxOm9mZiAqLworI2RlZmluZSBUWEVQVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRYIEJ1ZmZlciBlbXB0eSAqLworCisvKiBVeFJDVEwgKi8KKyNkZWZpbmUgRkUgICAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBGcmFtZSBFcnJvciAqLworI2RlZmluZSBQRSAgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSBFcnJvciAqLworI2RlZmluZSBPRSAgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE92ZXJydW4gRXJyb3IgKi8KKyNkZWZpbmUgQlJLICAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBkZXRlY3RlZCAqLworI2RlZmluZSBVUlhFSUUgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJYIEVycm9yIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVVJYV0lFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSWCBXYWtlIHVwIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgUlhXQUtFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSWCBXYWtlIHVwIGRldGVjdCAqLworI2RlZmluZSBSWEVSUiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJYIEVycm9yIEVycm9yICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQgMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVUFSVDBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCitTRlJfOEJJVChVME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFUwQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVMEJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFUwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKworI2RlZmluZSBVQ1RMMCAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDAgICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDAgICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMCAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDAgICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwICAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjAgICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwICAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMMF8gICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDBfICAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDBfICAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMF8gICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDBfICAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwXyAgICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjBfICAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwXyAgICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMCAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMCAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzBfICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wXyAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wXyAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzBfICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wXyAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMF8gICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wXyAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMF8gICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQUNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQUNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl84ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWX1RBSUZHICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQjMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RCM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ29udHJvbCAqLworU0ZSXzE2QklUKFRCQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRCQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRCQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRCUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgKi8KK1NGUl8xNkJJVChUQkNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEJDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRCQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQkNMR1JQMSAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgVEJDTEdSUDAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisjZGVmaW5lIENOVEwxICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMSAqLworI2RlZmluZSBDTlRMMCAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDAgKi8KKyNkZWZpbmUgVEJTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMSAqLworI2RlZmluZSBUQlNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAwICovCisjZGVmaW5lIFRCQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQiBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRCSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRCSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIFNIUjEgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBTSFIwICAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKworI2RlZmluZSBUQlNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogVEJDTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzEgICAgICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IEFDTEsgICovCisjZGVmaW5lIFRCU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBTTUNMSyAqLworI2RlZmluZSBUQlNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogSU5DTEsgKi8KKyNkZWZpbmUgQ05UTF8wICAgICAgICAgICAgICAgICAoMCoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTYgYml0ICovCisjZGVmaW5lIENOVExfMSAgICAgICAgICAgICAgICAgKDEqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEyIGJpdCAqLworI2RlZmluZSBDTlRMXzIgICAgICAgICAgICAgICAgICgyKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMCBiaXQgKi8KKyNkZWZpbmUgQ05UTF8zICAgICAgICAgICAgICAgICAoMyoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogIDggYml0ICovCisjZGVmaW5lIFNIUl8wICAgICAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBTSFJfMSAgICAgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgU0hSXzIgICAgICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFNIUl8zICAgICAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKyNkZWZpbmUgVEJDTEdSUF8wICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFRCQ0xHUlBfMSAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBUQkNMR1JQXzIgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgVEJDTEdSUF8zICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworCisvKiBBZGRpdGlvbmFsIFRpbWVyIEIgQ29udHJvbCBSZWdpc3RlciBiaXRzIGFyZSBkZWZpbmVkIGluIFRpbWVyIEEgKi8KKworI2RlZmluZSBDTExEMSAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBDTExEMCAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSMSAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIFNMU0hSMCAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFJfMCAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBTTFNIUl8xICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIFNMU0hSXzIgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIFNMU0hSXzMgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisjZGVmaW5lIENMTERfMCAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgQ0xMRF8xICAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBDTExEXzIgICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBDTExEXzMgICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworLyogVEIzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEJJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQklWX1RCQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRCQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRCQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQklWXzMgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl81ICAgICAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzYgICAgICAgICAgICAgICAgICgweDAwMEMpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfVEJJRkcgICAgICAgICAgICAgKDB4MDAwRSkgICAgICAgLyogVEJJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCYXNpYyBDbG9jayBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0JBU0lDX0NMT0NLX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChEQ09DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCitTRlJfOEJJVChCQ1NDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQkNTQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDIgKi8KKworI2RlZmluZSBNT0QwICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDAgKi8KKyNkZWZpbmUgTU9EMSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAxICovCisjZGVmaW5lIE1PRDIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMiAqLworI2RlZmluZSBNT0QzICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDMgKi8KKyNkZWZpbmUgTU9ENCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCA0ICovCisjZGVmaW5lIERDTzAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBEQ08xICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgRENPMiAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAyICovCisKKyNkZWZpbmUgUlNFTDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgUlNFTDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgUlNFTDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDIgKi8KKyNkZWZpbmUgWFQ1ViAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBYVDVWIHNob3VsZCBhbHdheXMgYmUgcmVzZXQgKi8KKyNkZWZpbmUgRElWQTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZBMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFhUUyAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTEZYVENMSyAwOkxvdyBGcmVxLiAvIDE6IEhpZ2ggRnJlcS4gKi8KKyNkZWZpbmUgWFQyT0ZGICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBFbmFibGUgWFQyQ0xLICovCisKKyNkZWZpbmUgRElWQV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWQV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWQV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWQV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBEQ09SICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEVuYWJsZSBFeHRlcm5hbCBSZXNpc3RvciA6IDEgKi8KKyNkZWZpbmUgRElWUzAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWUzEgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgU0VMUyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDA6RENPQ0xLIC8gMTpYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBESVZNMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVk0xICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgU0VMTTAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxNMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxICovCisKKyNkZWZpbmUgRElWU18wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVlNfMSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZTXzIgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWU18zICAgICAgICAgICAgICAgICAoMHgwNikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRElWTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWTV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWTV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWTV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBTRUxNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMTogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDI6IFhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIFNFTE1fMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDM6IExGWFRDTEsgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0hfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvbXBhcmF0b3IgQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQ09NUEFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQ0FDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDEgKi8KK1NGUl84QklUKENBQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAyICovCitTRlJfOEJJVChDQVBEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIFBvcnQgRGlzYWJsZSAqLworCisjZGVmaW5lIENBSUZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBDQUlFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBDQUlFUyAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBFZGdlIFNlbGVjdDogMDpyaXNpbmcgLyAxOmZhbGxpbmcgKi8KKyNkZWZpbmUgQ0FPTiAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIGVuYWJsZSAqLworI2RlZmluZSBDQVJFRjAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENBUkVGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0FSU0VMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBFbmFibGUgKi8KKyNkZWZpbmUgQ0FFWCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIEV4Y2hhbmdlIElucHV0cyAqLworCisjZGVmaW5lIENBUkVGXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDAgOiBPZmYgKi8KKyNkZWZpbmUgQ0FSRUZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMSA6IDAuMjUqVmNjICovCisjZGVmaW5lIENBUkVGXzIgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDIgOiAwLjUqVmNjICovCisjZGVmaW5lIENBUkVGXzMgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDMgOiBWdCovCisKKyNkZWZpbmUgQ0FPVVQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIE91dHB1dCAqLworI2RlZmluZSBDQUYgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRW5hYmxlIE91dHB1dCBGaWx0ZXIgKi8KKyNkZWZpbmUgUDJDQTAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIENvbm5lY3QgRXh0ZXJuYWwgU2lnbmFsIHRvIENBMCA6IDEgKi8KKyNkZWZpbmUgUDJDQTEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIENvbm5lY3QgRXh0ZXJuYWwgU2lnbmFsIHRvIENBMSA6IDEgKi8KKyNkZWZpbmUgQ0FDVEwyNCAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQ0FDVEwyNSAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgQ0FDVEwyNiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgQ0FDVEwyNyAgICAgICAgICAgICAgICAoMHg4MCkKKworI2RlZmluZSBDQVBEMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMCAqLworI2RlZmluZSBDQVBEMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMSAqLworI2RlZmluZSBDQVBEMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMiAqLworI2RlZmluZSBDQVBEMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMyAqLworI2RlZmluZSBDQVBENCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNCAqLworI2RlZmluZSBDQVBENSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNSAqLworI2RlZmluZSBDQVBENiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNiAqLworI2RlZmluZSBDQVBENyAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGRTApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDEiKSAgKi8gLyogMHhGRkUyIFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDQgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTggUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA0IikgICovIC8qIDB4RkZFOCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTFfVkVDVE9SICAgICAgICAgICg1ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovCisvKiNkZWZpbmUgVElNRVJBMV9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA1IikgICovIC8qIDB4RkZFQSBUaW1lciBBIENDMS0yLCBUQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMF9WRUNUT1IgICAgICAgICAgKDYgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUkEwX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDYiKSAgKi8gLyogMHhGRkVDIFRpbWVyIEEgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBUWF9WRUNUT1IgICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNBUlQwVFhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBSWF9WRUNUT1IgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBVU0FSVCAwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0FSVDBSWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtMiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTIsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MTN4MSAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDE0eC5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxNHguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWM1YzMyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxNHguaApAQCAtMCwwICsxLDk5NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIFN0YW5kYXJkIHJlZ2lzdGVyIGFuZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cworKiBNU1A0MzAgbWljcm9jb250cm9sbGVyLgorKgorKiBUaGlzIGZpbGUgc3VwcG9ydHMgYXNzZW1ibGVyIGFuZCBDIGRldmVsb3BtZW50IGZvcgorKiBNU1A0MzB4MTR4IGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDIuNAorKgorKiBSZXYuIDEuMiwgQWRkaXRpb25hbCBUaW1lciBCIGJpdCBkZWZpbml0aW9ucy4KKyogICAgICAgICAgIFJlbmFtZWQgWFRPRkYgdG8gWFQyT0ZGLgorKiBSZXYuIDEuMywgUmVtb3ZlZCBsZWFkaW5nIDAgdG8gYXZpb2QgaW50ZXJwcmV0YXRpb24gYXMgb2N0YWwKKyogICAgICAgICAgICB2YWx1ZXMgdW5kZXIgQworKiAgICAgICAgICAgSW5jbHVkZWQgPEluNDMwLmg+IHJhdGhlciB0aGFuICJJbjQzMC5oIgorKiBSZXYuIDEuNCwgQ29ycmVjdGVkIExQTXhfRVhJVCB0byByZWZlcmVuY2UgbmV3IGludHJpbnNpYyAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQKKyogICAgICAgICAgIENoYW5nZWQgVEFJViBhbmQgVEJJViB0byBiZSByZWFkLW9ubHkKKyogUmV2LiAxLjUsIEVuY2xvc2UgYWxsICNkZWZpbmUgc3RhdGVtZW50cyB3aXRoIHBhcmVudGhlc2VzCisqIFJldi4gMS42LCBEZWZpbmVkIHZlY3RvcnMgZm9yIFVTQVJUIChpbiBhZGRpdGlvbiB0byBVQVJUKQorKiBSZXYuIDEuNywgQWRkZWQgVVNBUlQgc3BlY2lhbCBmdW5jdGlvbiBsYWJlbHMgKFV4TUUsIFV4SUUsIFV4SUZHKQorKiBSZXYuIDIuMSwgQWxpZ25tZW50IG9mIGRlZmludGlvbnMgaW4gVXNlcnMgR3VpZGUgYW5kIG9mIHZlcnNpb24gbnVtYmVycworKiBSZXYuIDIuMiwgRml4ZWQgdHlwZSBpbiBBREMxMiBiaXQgZGVmaW5pdGlvbnMgKHJlcGxhY2VkIEFEQzEwIHdpdGggQURDMTIpCisqIFJldi4gMi4zLCBSZW1vdmVkIHVudXNlZCBkZWYgb2YgVEFTU0VMMiAvIFRCU1NFTDIKKyogUmV2LiAyLjQsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHgxNHgKKyNkZWZpbmUgX19tc3A0MzB4MTR4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFUwSUUgICAgICAgICAgICAgICAgICAgSUUxICAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBVUlhJRTAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhJRTAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBVMElGRyAgICAgICAgICAgICAgICAgIElGRzEgICAgICAgICAgIC8qIFVBUlQwIEludGVycnVwdCBGbGFnIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVSWElGRzAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElGRzAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKE1FMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNb2R1bGUgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBNRSAgICAgICAgICAgICAgICAgICBNRTEgICAgICAgICAgICAvKiBVQVJUMCBNb2R1bGUgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWEUwICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWEUwICAgICAgICAgICAgICAgICAgKDB4ODApCisjZGVmaW5lIFVTUElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVTFJRSAgICAgICAgICAgICAgICAgICBJRTIgICAgICAgICAgICAvKiBVQVJUMSBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWElFMSAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVUWElFMSAgICAgICAgICAgICAgICAgKDB4MjApCisKK1NGUl84QklUKElGRzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAyICovCisjZGVmaW5lIFUxSUZHICAgICAgICAgICAgICAgICAgSUZHMiAgICAgICAgICAgLyogVUFSVDEgSW50ZXJydXB0IEZsYWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYSUZHMSAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVRYSUZHMSAgICAgICAgICAgICAgICAoMHgyMCkKKworU0ZSXzhCSVQoTUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1vZHVsZSBFbmFibGUgMiAqLworI2RlZmluZSBVMU1FICAgICAgICAgICAgICAgICAgIE1FMiAgICAgICAgICAgIC8qIFVBUlQxIE1vZHVsZSBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYRTEgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVRYRTEgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVVNQSUUxICAgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBIQVJEV0FSRSBNVUxUSVBMSUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19NUFlfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoTVBZKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTVBZUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQ1MpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChPUDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl8xNkJJVChSRVNMTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl8xNkJJVChSRVNISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgSGlnaCBXb3JkICovCitTRlJfMTZCSVQoU1VNRVhUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VtIEV4dGVuZCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDUvNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ2X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA1SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgSW5wdXQgKi8KK1NGUl84QklUKFA1T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgT3V0cHV0ICovCitTRlJfOEJJVChQNURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDVTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQVJUCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFV4Q1RMICovCisjZGVmaW5lIFBFTkEgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogUGFyaXR5IGVuYWJsZSAqLworI2RlZmluZSBQRVYgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBTUEIgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFN0b3AgQml0cyAwOm9uZSAvIDE6IHR3byAqLworI2RlZmluZSBDSEFSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIERhdGEgMDo3LWJpdHMgLyAxOjgtYml0cyAqLworI2RlZmluZSBMSVNURU4gICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFNZTkMgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVUFSVCAvIFNQSSBtb2RlICovCisjZGVmaW5lIE1NICAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTWFzdGVyIE1vZGUgb2ZmL29uICovCisjZGVmaW5lIFNXUlNUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNBUlQgU29mdHdhcmUgUmVzZXQgKi8KKworLyogVXhUQ1RMICovCisjZGVmaW5lIENLUEggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU1BJOiBDbG9jayBQaGFzZSAqLworI2RlZmluZSBDS1BMICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENsb2NrIFBvbGFyaXR5ICovCisjZGVmaW5lIFNTRUwxICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFNTRUwwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFVSWFNFICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVjZWl2ZSBTdGFydCBlZGdlIHNlbGVjdCAqLworI2RlZmluZSBUWFdBS0UgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFRYIFdha2UgdXAgbW9kZSAqLworI2RlZmluZSBTVEMgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNQSTogU1RDIGVuYWJsZSAwOm9uIC8gMTpvZmYgKi8KKyNkZWZpbmUgVFhFUFQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBUWCBCdWZmZXIgZW1wdHkgKi8KKworLyogVXhSQ1RMICovCisjZGVmaW5lIEZFICAgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRnJhbWUgRXJyb3IgKi8KKyNkZWZpbmUgUEUgICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQYXJpdHkgRXJyb3IgKi8KKyNkZWZpbmUgT0UgICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPdmVycnVuIEVycm9yICovCisjZGVmaW5lIEJSSyAgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgZGV0ZWN0ZWQgKi8KKyNkZWZpbmUgVVJYRUlFICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVSWFdJRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUlggV2FrZSB1cCBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFJYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUlggV2FrZSB1cCBkZXRlY3QgKi8KKyNkZWZpbmUgUlhFUlIgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSWCBFcnJvciBFcnJvciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQVJUIDAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VBUlQwX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFUwQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KK1NGUl84QklUKFUwVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFUwUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBNQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVTBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFUwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisKKyNkZWZpbmUgVUNUTDAgICAgICAgICAgICAgICAgICBVMENUTCAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVEwwICAgICAgICAgICAgICAgICBVMFRDVEwgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVEwwICAgICAgICAgICAgICAgICBVMFJDVEwgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTDAgICAgICAgICAgICAgICAgIFUwTUNUTCAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjAwICAgICAgICAgICAgICAgICAgVTBCUjAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxMCAgICAgICAgICAgICAgICAgIFUwQlIxICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUYwICAgICAgICAgICAgICAgICBVMFJYQlVGICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGMCAgICAgICAgICAgICAgICAgVTBUWEJVRiAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTDBfICAgICAgICAgICAgICAgICBVMENUTF8gICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVEwwXyAgICAgICAgICAgICAgICBVMFRDVExfICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVEwwXyAgICAgICAgICAgICAgICBVMFJDVExfICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTDBfICAgICAgICAgICAgICAgIFUwTUNUTF8gICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjAwXyAgICAgICAgICAgICAgICAgVTBCUjBfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxMF8gICAgICAgICAgICAgICAgIFUwQlIxXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUYwXyAgICAgICAgICAgICAgICBVMFJYQlVGXyAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGMF8gICAgICAgICAgICAgICAgVTBUWEJVRl8gICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTF8wICAgICAgICAgICAgICAgICBVMENUTCAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVExfMCAgICAgICAgICAgICAgICBVMFRDVEwgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVExfMCAgICAgICAgICAgICAgICBVMFJDVEwgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTF8wICAgICAgICAgICAgICAgIFUwTUNUTCAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjBfMCAgICAgICAgICAgICAgICAgVTBCUjAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxXzAgICAgICAgICAgICAgICAgIFUwQlIxICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUZfMCAgICAgICAgICAgICAgICBVMFJYQlVGICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGXzAgICAgICAgICAgICAgICAgVTBUWEJVRiAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTF8wXyAgICAgICAgICAgICAgICBVMENUTF8gICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVExfMF8gICAgICAgICAgICAgICBVMFRDVExfICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVExfMF8gICAgICAgICAgICAgICBVMFJDVExfICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTF8wXyAgICAgICAgICAgICAgIFUwTUNUTF8gICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjBfMF8gICAgICAgICAgICAgICAgVTBCUjBfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxXzBfICAgICAgICAgICAgICAgIFUwQlIxXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUZfMF8gICAgICAgICAgICAgICBVMFJYQlVGXyAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGXzBfICAgICAgICAgICAgICAgVTBUWEJVRl8gICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVCAxCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VQVJUMV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVMUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCitTRlJfOEJJVChVMVRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVMVJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KK1NGUl84QklUKFUxTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVTFCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFUxQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVMVJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVTFUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworCisjZGVmaW5lIFVDVEwxICAgICAgICAgICAgICAgICAgVTFDVEwgICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMSAgICAgICAgICAgICAgICAgVTFUQ1RMICAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMSAgICAgICAgICAgICAgICAgVTFSQ1RMICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwxICAgICAgICAgICAgICAgICBVMU1DVEwgICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMSAgICAgICAgICAgICAgICAgIFUxQlIwICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTEgICAgICAgICAgICAgICAgICBVMUJSMSAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMSAgICAgICAgICAgICAgICAgVTFSWEJVRiAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjEgICAgICAgICAgICAgICAgIFUxVFhCVUYgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVEwxXyAgICAgICAgICAgICAgICAgVTFDVExfICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMV8gICAgICAgICAgICAgICAgVTFUQ1RMXyAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMV8gICAgICAgICAgICAgICAgVTFSQ1RMXyAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwxXyAgICAgICAgICAgICAgICBVMU1DVExfICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMV8gICAgICAgICAgICAgICAgIFUxQlIwXyAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTFfICAgICAgICAgICAgICAgICBVMUJSMV8gICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMV8gICAgICAgICAgICAgICAgVTFSWEJVRl8gICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjFfICAgICAgICAgICAgICAgIFUxVFhCVUZfICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMSAgICAgICAgICAgICAgICAgVTFDVEwgICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzEgICAgICAgICAgICAgICAgVTFUQ1RMICAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzEgICAgICAgICAgICAgICAgVTFSQ1RMICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMSAgICAgICAgICAgICAgICBVMU1DVEwgICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzEgICAgICAgICAgICAgICAgIFUxQlIwICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8xICAgICAgICAgICAgICAgICBVMUJSMSAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzEgICAgICAgICAgICAgICAgVTFSWEJVRiAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8xICAgICAgICAgICAgICAgIFUxVFhCVUYgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMV8gICAgICAgICAgICAgICAgVTFDVExfICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzFfICAgICAgICAgICAgICAgVTFUQ1RMXyAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzFfICAgICAgICAgICAgICAgVTFSQ1RMXyAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMV8gICAgICAgICAgICAgICBVMU1DVExfICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzFfICAgICAgICAgICAgICAgIFUxQlIwXyAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8xXyAgICAgICAgICAgICAgICBVMUJSMV8gICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzFfICAgICAgICAgICAgICAgVTFSWEJVRl8gICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8xXyAgICAgICAgICAgICAgIFUxVFhCVUZfICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBCNworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEI3X18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRCSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDb250cm9sICovCitTRlJfMTZCSVQoVEJDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEJDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEJDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEJDQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAzICovCitTRlJfMTZCSVQoVEJDQ1RMNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA0ICovCitTRlJfMTZCSVQoVEJDQ1RMNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA1ICovCitTRlJfMTZCSVQoVEJDQ1RMNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA2ICovCitTRlJfMTZCSVQoVEJSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiAqLworU0ZSXzE2QklUKFRCQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQkNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEJDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMiAqLworU0ZSXzE2QklUKFRCQ0NSMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDMgKi8KK1NGUl8xNkJJVChUQkNDUjQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSA0ICovCitTRlJfMTZCSVQoVEJDQ1I1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgNSAqLworU0ZSXzE2QklUKFRCQ0NSNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDYgKi8KKworI2RlZmluZSBUQkNMR1JQMSAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgVEJDTEdSUDAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisjZGVmaW5lIENOVEwxICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMSAqLworI2RlZmluZSBDTlRMMCAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDAgKi8KKyNkZWZpbmUgVEJTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMSAqLworI2RlZmluZSBUQlNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAwICovCisjZGVmaW5lIFRCQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQiBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRCSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRCSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIFNIUjEgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBTSFIwICAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKworI2RlZmluZSBUQlNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogVEJDTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzEgICAgICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IEFDTEsgICovCisjZGVmaW5lIFRCU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBTTUNMSyAqLworI2RlZmluZSBUQlNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogSU5DTEsgKi8KKyNkZWZpbmUgQ05UTF8wICAgICAgICAgICAgICAgICAoMCoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTYgYml0ICovCisjZGVmaW5lIENOVExfMSAgICAgICAgICAgICAgICAgKDEqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEyIGJpdCAqLworI2RlZmluZSBDTlRMXzIgICAgICAgICAgICAgICAgICgyKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMCBiaXQgKi8KKyNkZWZpbmUgQ05UTF8zICAgICAgICAgICAgICAgICAoMyoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogIDggYml0ICovCisjZGVmaW5lIFNIUl8wICAgICAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBTSFJfMSAgICAgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgU0hSXzIgICAgICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFNIUl8zICAgICAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKyNkZWZpbmUgVEJDTEdSUF8wICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFRCQ0xHUlBfMSAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBUQkNMR1JQXzIgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgVEJDTEdSUF8zICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworCisvKiBBZGRpdGlvbmFsIFRpbWVyIEIgQ29udHJvbCBSZWdpc3RlciBiaXRzIGFyZSBkZWZpbmVkIGluIFRpbWVyIEEgKi8KKyNkZWZpbmUgQ0xMRDEgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgQ0xMRDAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUjEgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBTTFNIUjAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSXzAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgU0xTSFJfMSAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBTTFNIUl8yICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBTTFNIUl8zICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworI2RlZmluZSBDTExEXzAgICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIENMTERfMSAgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgQ0xMRF8yICAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgQ0xMRF8zICAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKy8qIFRCN0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRCSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQkNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQkNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjMgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBUQkNDUjNfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjQgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBUQkNDUjRfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjUgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQkNDUjNfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjYgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBUQkNDUjRfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQklGRyAgICAgICAgICAgICAoMHgwMDBFKSAgICAgICAvKiBUQklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJhc2ljIENsb2NrIE1vZHVsZQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQkFTSUNfQ0xPQ0tfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKERDT0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ08gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KK1NGUl84QklUKEJDU0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAxICovCitTRlJfOEJJVChCQ1NDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMiAqLworCisjZGVmaW5lIE1PRDAgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMCAqLworI2RlZmluZSBNT0QxICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDEgKi8KKyNkZWZpbmUgTU9EMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAyICovCisjZGVmaW5lIE1PRDMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMyAqLworI2RlZmluZSBNT0Q0ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDQgKi8KKyNkZWZpbmUgRENPMCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIERDTzEgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBEQ08yICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDIgKi8KKworI2RlZmluZSBSU0VMMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBSU0VMMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBSU0VMMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMiAqLworI2RlZmluZSBYVDVWICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhUNVYgc2hvdWxkIGFsd2F5cyBiZSByZXNldCAqLworI2RlZmluZSBESVZBMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVkExICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgWFRTICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMRlhUQ0xLIDA6TG93IEZyZXEuIC8gMTogSGlnaCBGcmVxLiAqLworI2RlZmluZSBYVDJPRkYgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEVuYWJsZSBYVDJDTEsgKi8KKworI2RlZmluZSBESVZBXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZBXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZBXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZBXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERDT1IgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRW5hYmxlIEV4dGVybmFsIFJlc2lzdG9yIDogMSAqLworI2RlZmluZSBESVZTMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgMDpEQ09DTEsgLyAxOlhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIERJVk0wICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZNXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZNXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZNXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIFNFTE1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDA6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMjogWFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgU0VMTV8zICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMzogTEZYVENMSyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29tcGFyYXRvciBBCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19DT01QQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChDQUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQ0FDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDIgKi8KK1NGUl84QklUKENBUEQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgUG9ydCBEaXNhYmxlICovCisKKyNkZWZpbmUgQ0FJRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIENBSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIENBSUVTICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBJbnQuIEVkZ2UgU2VsZWN0OiAwOnJpc2luZyAvIDE6ZmFsbGluZyAqLworI2RlZmluZSBDQU9OICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgZW5hYmxlICovCisjZGVmaW5lIENBUkVGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ0FSRUYxICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBDQVJTRUwgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIEVuYWJsZSAqLworI2RlZmluZSBDQUVYICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRXhjaGFuZ2UgSW5wdXRzICovCisKKyNkZWZpbmUgQ0FSRUZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMCA6IE9mZiAqLworI2RlZmluZSBDQVJFRl8xICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAxIDogMC4yNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMiA6IDAuNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMyA6IFZ0Ki8KKworI2RlZmluZSBDQU9VVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgT3V0cHV0ICovCisjZGVmaW5lIENBRiAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBFbmFibGUgT3V0cHV0IEZpbHRlciAqLworI2RlZmluZSBQMkNBMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0EwIDogMSAqLworI2RlZmluZSBQMkNBMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0ExIDogMSAqLworI2RlZmluZSBDQUNUTDI0ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBDQUNUTDI1ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBDQUNUTDI2ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBDQUNUTDI3ICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIENBUEQwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4wICovCisjZGVmaW5lIENBUEQxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4xICovCisjZGVmaW5lIENBUEQyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4yICovCisjZGVmaW5lIENBUEQzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4zICovCisjZGVmaW5lIENBUEQ0ICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC40ICovCisjZGVmaW5lIENBUEQ1ICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC41ICovCisjZGVmaW5lIENBUEQ2ICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC42ICovCisjZGVmaW5lIENBUEQ3ICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC43ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQURDMTIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0FEQzEyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChBREMxMkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChBREMxMkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChBREMxMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzE2QklUKEFEQzEySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl8xNkJJVChBREMxMklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KKworI2RlZmluZSBBREMxMk1FTV8gICAgICAgICAgICAgICgweDAxNDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgQURDMTJNRU0gICAgICAgICAgICAgICAoQURDMTJNRU1fKSAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIEFEQzEyTUVNICAgICAgICAgICAgICAgKChpbnQqKSAgICAgICAgQURDMTJNRU1fKSAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl8xNkJJVChBREMxMk1FTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAwICovCitTRlJfMTZCSVQoQURDMTJNRU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDIgKi8KK1NGUl8xNkJJVChBREMxMk1FTTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAzICovCitTRlJfMTZCSVQoQURDMTJNRU00KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNNSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDUgKi8KK1NGUl8xNkJJVChBREMxMk1FTTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA2ICovCitTRlJfMTZCSVQoQURDMTJNRU03KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNyAqLworU0ZSXzE2QklUKEFEQzEyTUVNOCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDggKi8KK1NGUl8xNkJJVChBREMxMk1FTTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA5ICovCitTRlJfMTZCSVQoQURDMTJNRU0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTAgKi8KK1NGUl8xNkJJVChBREMxMk1FTTExKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEyICovCitTRlJfMTZCSVQoQURDMTJNRU0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTMgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE0KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDE1ICovCisKKyNkZWZpbmUgQURDMTJNQ1RMXyAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIEFEQzEyTUNUTCAgICAgICAgICAgICAgKEFEQzEyTUNUTF8pICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBBREMxMk1DVEwgICAgICAgICAgICAgICgoY2hhciopICAgICAgIEFEQzEyTUNUTF8pIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoQURDMTJNQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDAgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxICovCitTRlJfOEJJVChBREMxMk1DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDMgKi8KK1NGUl84QklUKEFEQzEyTUNUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA0ICovCitTRlJfOEJJVChBREMxMk1DVEw1KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDYgKi8KK1NGUl84QklUKEFEQzEyTUNUTDcpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA3ICovCitTRlJfOEJJVChBREMxMk1DVEw4KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgOCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMOSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDkgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTEpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDExICovCitTRlJfOEJJVChBREMxMk1DVEwxMik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTIgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEzKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDE0ICovCitTRlJfOEJJVChBREMxMk1DVEwxNSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTUgKi8KKworLyogQURDMTJDVEwwICovCisjZGVmaW5lIEFEQzEyU0MgICAgICAgICAgICAgICAgKDB4MDAxKSAgICAgICAgLyogQURDMTIgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBFTkMgICAgICAgICAgICAgICAgICAgICgweDAwMikgICAgICAgIC8qIEFEQzEyIEVuYWJsZSBDb252ZXJzaW9uICovCisjZGVmaW5lIEFEQzEyVE9WSUUgICAgICAgICAgICAgKDB4MDA0KSAgICAgICAgLyogQURDMTIgVGltZXIgT3ZlcmZsb3cgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBBREMxMk9WSUUgICAgICAgICAgICAgICgweDAwOCkgICAgICAgIC8qIEFEQzEyIE92ZXJmbG93IGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQURDMTJPTiAgICAgICAgICAgICAgICAoMHgwMTApICAgICAgICAvKiBBREMxMiBPbi9lbmFibGUgKi8KKyNkZWZpbmUgUkVGT04gICAgICAgICAgICAgICAgICAoMHgwMjApICAgICAgICAvKiBBREMxMiBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgUkVGMl81ViAgICAgICAgICAgICAgICAoMHgwNDApICAgICAgICAvKiBBREMxMiBSZWYgMDoxLjVWIC8gMToyLjVWICovCisjZGVmaW5lIE1TQyAgICAgICAgICAgICAgICAgICAgKDB4MDgwKSAgICAgICAgLyogQURDMTIgTXVsdGlwbGUgU2FtcGxlQ29udmVyc2lvbiAqLworI2RlZmluZSBTSFQwMCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0hUMDEgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAxICovCisjZGVmaW5lIFNIVDAyICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMiAqLworI2RlZmluZSBTSFQwMyAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDMgKi8KKyNkZWZpbmUgU0hUMTAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAwICovCisjZGVmaW5lIFNIVDExICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMSBTZWxlY3QgMSAqLworI2RlZmluZSBTSFQxMiAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDIgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0hUMTMgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAzIFNlbGVjdCAzICovCisjZGVmaW5lIE1TSCAgICAgICAgICAgICAgICAgICAgKDB4MDgwKQorCisjZGVmaW5lIFNIVDBfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8yICAgICAgICAgICAgICAgICAoMioweDEwMHUpCisjZGVmaW5lIFNIVDBfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDB1KQorI2RlZmluZSBTSFQwXzQgICAgICAgICAgICAgICAgICg0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF81ICAgICAgICAgICAgICAgICAoNSoweDEwMHUpCisjZGVmaW5lIFNIVDBfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDB1KQorI2RlZmluZSBTSFQwXzcgICAgICAgICAgICAgICAgICg3KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF84ICAgICAgICAgICAgICAgICAoOCoweDEwMHUpCisjZGVmaW5lIFNIVDBfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEwICAgICAgICAgICAgICAgICgxMCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEzICAgICAgICAgICAgICAgICgxMyoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDB1KQorCisjZGVmaW5lIFNIVDFfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV80ICAgICAgICAgICAgICAgICAoNCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzUgICAgICAgICAgICAgICAgICg1KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV83ICAgICAgICAgICAgICAgICAoNyoweDEwMDB1KQorI2RlZmluZSBTSFQxXzggICAgICAgICAgICAgICAgICg4KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMCAgICAgICAgICAgICAgICAoMTAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMSAgICAgICAgICAgICAgICAoMTEqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMyAgICAgICAgICAgICAgICAoMTMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNCAgICAgICAgICAgICAgICAoMTQqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDAwdSkKKworLyogQURDMTJDVEwxICovCisjZGVmaW5lIEFEQzEyQlVTWSAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgQnVzeSAqLworI2RlZmluZSBDT05TRVEwICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ09OU0VRMSAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyU1NFTDAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyU1NFTDEgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMkRJVjEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJESVYyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAyICovCisjZGVmaW5lIElTU0ggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTIgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBTSFAgICAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFB1bHNlIE1vZGUgKi8KKyNkZWZpbmUgU0hTMCAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBTSFMxICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIENTVEFSVEFERDAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDAgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMSAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMSAqLworI2RlZmluZSBDU1RBUlRBREQyICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAyICovCisjZGVmaW5lIENTVEFSVEFERDMgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDMgKi8KKworI2RlZmluZSBDT05TRVFfMCAgICAgICAgICAgICAgICgwKjJ1KQorI2RlZmluZSBDT05TRVFfMSAgICAgICAgICAgICAgICgxKjJ1KQorI2RlZmluZSBDT05TRVFfMiAgICAgICAgICAgICAgICgyKjJ1KQorI2RlZmluZSBDT05TRVFfMyAgICAgICAgICAgICAgICgzKjJ1KQorI2RlZmluZSBBREMxMlNTRUxfMCAgICAgICAgICAgICgwKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMSAgICAgICAgICAgICgxKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMiAgICAgICAgICAgICgyKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMyAgICAgICAgICAgICgzKjh1KQorI2RlZmluZSBBREMxMkRJVl8wICAgICAgICAgICAgICgwKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8xICAgICAgICAgICAgICgxKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8yICAgICAgICAgICAgICgyKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8zICAgICAgICAgICAgICgzKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl80ICAgICAgICAgICAgICg0KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl81ICAgICAgICAgICAgICg1KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl82ICAgICAgICAgICAgICg2KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl83ICAgICAgICAgICAgICg3KjB4MjB1KQorI2RlZmluZSBTSFNfMCAgICAgICAgICAgICAgICAgICgwKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzEgICAgICAgICAgICAgICAgICAoMSoweDQwMHUpCisjZGVmaW5lIFNIU18yICAgICAgICAgICAgICAgICAgKDIqMHg0MDB1KQorI2RlZmluZSBTSFNfMyAgICAgICAgICAgICAgICAgICgzKjB4NDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMSAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8yICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzMgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNCAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF81ICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzYgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNyAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF84ICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzkgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTEgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTIgICAgICAgICAgICgxMioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTMgICAgICAgICAgICgxMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTQgICAgICAgICAgICgxNCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTUgICAgICAgICAgICgxNSoweDEwMDB1KQorCisvKiBBREMxMk1DVEx4ICovCisjZGVmaW5lIElOQ0gwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgSU5DSDEgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBJTkNIMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIElOQ0gzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDMgKi8KKyNkZWZpbmUgU1JFRjAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAwICovCisjZGVmaW5lIFNSRUYxICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMSAqLworI2RlZmluZSBTUkVGMiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDIgKi8KKyNkZWZpbmUgRU9TICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBFbmQgb2YgU2VxdWVuY2UgKi8KKworI2RlZmluZSBJTkNIXzAgICAgICAgICAgICAgICAgICgwKQorI2RlZmluZSBJTkNIXzEgICAgICAgICAgICAgICAgICgxKQorI2RlZmluZSBJTkNIXzIgICAgICAgICAgICAgICAgICgyKQorI2RlZmluZSBJTkNIXzMgICAgICAgICAgICAgICAgICgzKQorI2RlZmluZSBJTkNIXzQgICAgICAgICAgICAgICAgICg0KQorI2RlZmluZSBJTkNIXzUgICAgICAgICAgICAgICAgICg1KQorI2RlZmluZSBJTkNIXzYgICAgICAgICAgICAgICAgICg2KQorI2RlZmluZSBJTkNIXzcgICAgICAgICAgICAgICAgICg3KQorI2RlZmluZSBJTkNIXzggICAgICAgICAgICAgICAgICg4KQorI2RlZmluZSBJTkNIXzkgICAgICAgICAgICAgICAgICg5KQorI2RlZmluZSBJTkNIXzEwICAgICAgICAgICAgICAgICgxMCkKKyNkZWZpbmUgSU5DSF8xMSAgICAgICAgICAgICAgICAoMTEpCisjZGVmaW5lIElOQ0hfMTIgICAgICAgICAgICAgICAgKDEyKQorI2RlZmluZSBJTkNIXzEzICAgICAgICAgICAgICAgICgxMykKKyNkZWZpbmUgSU5DSF8xNCAgICAgICAgICAgICAgICAoMTQpCisjZGVmaW5lIElOQ0hfMTUgICAgICAgICAgICAgICAgKDE1KQorCisjZGVmaW5lIFNSRUZfMCAgICAgICAgICAgICAgICAgKDAqMHgxMHUpCisjZGVmaW5lIFNSRUZfMSAgICAgICAgICAgICAgICAgKDEqMHgxMHUpCisjZGVmaW5lIFNSRUZfMiAgICAgICAgICAgICAgICAgKDIqMHgxMHUpCisjZGVmaW5lIFNSRUZfMyAgICAgICAgICAgICAgICAgKDMqMHgxMHUpCisjZGVmaW5lIFNSRUZfNCAgICAgICAgICAgICAgICAgKDQqMHgxMHUpCisjZGVmaW5lIFNSRUZfNSAgICAgICAgICAgICAgICAgKDUqMHgxMHUpCisjZGVmaW5lIFNSRUZfNiAgICAgICAgICAgICAgICAgKDYqMHgxMHUpCisjZGVmaW5lIFNSRUZfNyAgICAgICAgICAgICAgICAgKDcqMHgxMHUpCisKKy8qIEFEQzEySVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgQURDMTJJVl9OT05FICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBBREMxMklWX0FEQzEyT1ZJRkcgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyT1ZJRkcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMlRPVklGRyAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMlRPVklGRyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMCAgICAgICgweDAwMDYpICAgICAgIC8qIEFEQzEySUZHMCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMSAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEySUZHMSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMiAgICAgICgweDAwMEEpICAgICAgIC8qIEFEQzEySUZHMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMyAgICAgICgweDAwMEMpICAgICAgIC8qIEFEQzEySUZHMyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNCAgICAgICgweDAwMEUpICAgICAgIC8qIEFEQzEySUZHNCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNSAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEySUZHNSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNiAgICAgICgweDAwMTIpICAgICAgIC8qIEFEQzEySUZHNiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNyAgICAgICgweDAwMTQpICAgICAgIC8qIEFEQzEySUZHNyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOCAgICAgICgweDAwMTYpICAgICAgIC8qIEFEQzEySUZHOCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOSAgICAgICgweDAwMTgpICAgICAgIC8qIEFEQzEySUZHOSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTAgICAgICgweDAwMUEpICAgICAgIC8qIEFEQzEySUZHMTAgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzExICAgICAoMHgwMDFDKSAgICAgICAvKiBBREMxMklGRzExICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMiAgICAgKDB4MDAxRSkgICAgICAgLyogQURDMTJJRkcxMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTMgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEySUZHMTMgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzE0ICAgICAoMHgwMDIyKSAgICAgICAvKiBBREMxMklGRzE0ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxNSAgICAgKDB4MDAyNCkgICAgICAgLyogQURDMTJJRkcxNSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGRTApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDEiKSAgKi8gLyogMHhGRkUyIFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNBUlQxVFhfVkVDVE9SICAgICAgICAgKDIgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgVVNBUlQgMSBUcmFuc21pdCAqLworLyojZGVmaW5lIFVTQVJUMVRYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMiIpICAqLyAvKiAweEZGRTQgVVNBUlQgMSBUcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNBUlQxUlhfVkVDVE9SICAgICAgICAgKDMgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTYgVVNBUlQgMSBSZWNlaXZlICovCisvKiNkZWZpbmUgVVNBUlQxUlhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAzIikgICovIC8qIDB4RkZFNiBVU0FSVCAxIFJlY2VpdmUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICg0ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU4IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNCIpICAqLyAvKiAweEZGRTggUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkExX1ZFQ1RPUiAgICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQSBUaW1lciBBIENDMS0yLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNSIpICAqLyAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICg2ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQURDMTJfVkVDVE9SICAgICAgICAgICAgKDcgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUUgQURDICovCisvKiNkZWZpbmUgQURDMTJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA3IikgICovIC8qIDB4RkZFRSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFRYX1ZFQ1RPUiAgICAgICAgICg4ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFVTQVJUIDAgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0FSVDBUWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFVTQVJUIDAgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFJYX1ZFQ1RPUiAgICAgICAgICg5ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQVJUMFJYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVVNBUlQgMCBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIENPTVBBUkFUT1JBX1ZFQ1RPUiAgICAgICgxMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLworLyojZGVmaW5lIENPTVBBUkFUT1JBX0lTUihmdW5jKSAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMSIpICAqLyAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIxX1ZFQ1RPUiAgICAgICAgICAoMTIgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGOCBUaW1lciBCIENDMS02LCBUQiAqLworLyojZGVmaW5lIFRJTUVSQjFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMiIpICAqLyAvKiAweEZGRjggVGltZXIgQiBDQzEtNiwgVEIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQjBfVkVDVE9SICAgICAgICAgICgxMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZBIFRpbWVyIEIgQ0MwICovCisvKiNkZWZpbmUgVElNRVJCMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEzIikgICovIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRW5kIG9mIE1vZHVsZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogZXh0ZXJuICJDIiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX21zcDQzMHgxNHggKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxNHgxLmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDE0eDEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWM5ZWUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgxNHgxLmgKQEAgLTAsMCArMSw3NjkgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDE0eDEgZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMi4zCisqCisqIFJldi4gMS4yLCBBZGRpdGlvbmFsIFRpbWVyIEIgYml0IGRlZmluaXRpb25zLgorKiAgICAgICAgICAgUmVuYW1lZCBYVE9GRiB0byBYVDJPRkYuCisqIFJldi4gMS4zLCBSZW1vdmVkIGxlYWRpbmcgMCB0byBhdmlvZCBpbnRlcnByZXRhdGlvbiBhcyBvY3RhbAorKiAgICAgICAgICAgIHZhbHVlcyB1bmRlciBDCisqICAgICAgICAgICBJbmNsdWRlZCA8SW40MzAuaD4gcmF0aGVyIHRoYW4gIkluNDMwLmgiCisqIFJldi4gMS40LCBDb3JyZWN0ZWQgTFBNeF9FWElUIHRvIHJlZmVyZW5jZSBuZXcgaW50cmluc2ljICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdAorKiAgICAgICAgICAgQ2hhbmdlZCBUQUlWIGFuZCBUQklWIHRvIGJlIHJlYWQtb25seQorKiBSZXYuIDEuNSwgRW5jbG9zZSBhbGwgI2RlZmluZSBzdGF0ZW1lbnRzIHdpdGggcGFyZW50aGVzZXMKKyogUmV2LiAxLjYsIERlZmluZWQgdmVjdG9ycyBmb3IgVVNBUlQgKGluIGFkZGl0aW9uIHRvIFVBUlQpCisqIFJldi4gMS43LCBBZGRlZCBVU0FSVCBzcGVjaWFsIGZ1bmN0aW9uIGxhYmVscyAoVXhNRSwgVXhJRSwgVXhJRkcpCisqIFJldi4gMi4xLCBBbGlnbm1lbnQgb2YgZGVmaW50aW9ucyBpbiBVc2VycyBHdWlkZSBhbmQgb2YgdmVyc2lvbiBudW1iZXJzCisqIFJldi4gMi4yLCBSZW1vdmVkIHVudXNlZCBkZWYgb2YgVEFTU0VMMiAvIFRCU1NFTDIKKyogUmV2LiAyLjMsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHgxNHgxCisjZGVmaW5lIF9fbXNwNDMweDE0eDEKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBJRSAgICAgICAgICAgICAgICAgICBJRTEgICAgICAgICAgICAvKiBVQVJUMCBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFVSWElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElFMCAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFUwSUZHICAgICAgICAgICAgICAgICAgSUZHMSAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEZsYWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVJYSUZHMCAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYSUZHMCAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoTUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1vZHVsZSBFbmFibGUgMSAqLworI2RlZmluZSBVME1FICAgICAgICAgICAgICAgICAgIE1FMSAgICAgICAgICAgIC8qIFVBUlQwIE1vZHVsZSBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYRTAgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYRTAgICAgICAgICAgICAgICAgICAoMHg4MCkKKyNkZWZpbmUgVVNQSUUwICAgICAgICAgICAgICAgICAoMHg0MCkKKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBVMUlFICAgICAgICAgICAgICAgICAgIElFMiAgICAgICAgICAgIC8qIFVBUlQxIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYSUUxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVRYSUUxICAgICAgICAgICAgICAgICAoMHgyMCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgVTFJRkcgICAgICAgICAgICAgICAgICBJRkcyICAgICAgICAgICAvKiBVQVJUMSBJbnRlcnJ1cHQgRmxhZyBSZWdpc3RlciAqLworI2RlZmluZSBVUlhJRkcxICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBVVFhJRkcxICAgICAgICAgICAgICAgICgweDIwKQorCitTRlJfOEJJVChNRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTW9kdWxlIEVuYWJsZSAyICovCisjZGVmaW5lIFUxTUUgICAgICAgICAgICAgICAgICAgTUUyICAgICAgICAgICAgLyogVUFSVDEgTW9kdWxlIEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBVUlhFMSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBVVFhFMSAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBVU1BJRTEgICAgICAgICAgICAgICAgICgweDEwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEhBUkRXQVJFIE1VTFRJUExJRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX01QWV9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChNUFkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNUFlTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTUFDKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQgYW5kIEFjY3VtdWxhdGUvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTUFDUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE9QMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9wZXJhbmQgMiAqLworU0ZSXzE2QklUKFJFU0xPKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlc3VsdCBMb3cgV29yZCAqLworU0ZSXzE2QklUKFJFU0hJKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlc3VsdCBIaWdoIFdvcmQgKi8KK1NGUl8xNkJJVChTVU1FWFQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTdW0gRXh0ZW5kICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDEvMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAxSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW5wdXQgKi8KK1NGUl84QklUKFAxT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgT3V0cHV0ICovCitTRlJfOEJJVChQMURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDFJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQzLzQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQzX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQM0lOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIElucHV0ICovCitTRlJfOEJJVChQM09VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIE91dHB1dCAqLworU0ZSXzhCSVQoUDNESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAzU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFA0SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgSW5wdXQgKi8KK1NGUl84QklUKFA0T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgT3V0cHV0ICovCitTRlJfOEJJVChQNERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDRTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0NS82CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDZfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDVJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBJbnB1dCAqLworU0ZSXzhCSVQoUDVPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBPdXRwdXQgKi8KK1NGUl84QklUKFA1RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IElucHV0ICovCitTRlJfOEJJVChQNk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IE91dHB1dCAqLworU0ZSXzhCSVQoUDZESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA2U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVXhDVEwgKi8KKyNkZWZpbmUgUEVOQSAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBQYXJpdHkgZW5hYmxlICovCisjZGVmaW5lIFBFViAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IDA6b2RkIC8gMTpldmVuICovCisjZGVmaW5lIFNQQiAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogU3RvcCBCaXRzIDA6b25lIC8gMTogdHdvICovCisjZGVmaW5lIENIQVIgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogRGF0YSAwOjctYml0cyAvIDE6OC1iaXRzICovCisjZGVmaW5lIExJU1RFTiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTGlzdGVuIG1vZGUgKi8KKyNkZWZpbmUgU1lOQyAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVQVJUIC8gU1BJIG1vZGUgKi8KKyNkZWZpbmUgTU0gICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNYXN0ZXIgTW9kZSBvZmYvb24gKi8KKyNkZWZpbmUgU1dSU1QgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0FSVCBTb2Z0d2FyZSBSZXNldCAqLworCisvKiBVeFRDVEwgKi8KKyNkZWZpbmUgQ0tQSCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTUEk6IENsb2NrIFBoYXNlICovCisjZGVmaW5lIENLUEwgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ2xvY2sgUG9sYXJpdHkgKi8KKyNkZWZpbmUgU1NFTDEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1NFTDAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVVJYU0UgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSZWNlaXZlIFN0YXJ0IGVkZ2Ugc2VsZWN0ICovCisjZGVmaW5lIFRYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVFggV2FrZSB1cCBtb2RlICovCisjZGVmaW5lIFNUQyAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1BJOiBTVEMgZW5hYmxlIDA6b24gLyAxOm9mZiAqLworI2RlZmluZSBUWEVQVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRYIEJ1ZmZlciBlbXB0eSAqLworCisvKiBVeFJDVEwgKi8KKyNkZWZpbmUgRkUgICAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBGcmFtZSBFcnJvciAqLworI2RlZmluZSBQRSAgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSBFcnJvciAqLworI2RlZmluZSBPRSAgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE92ZXJydW4gRXJyb3IgKi8KKyNkZWZpbmUgQlJLICAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBkZXRlY3RlZCAqLworI2RlZmluZSBVUlhFSUUgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJYIEVycm9yIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVVJYV0lFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSWCBXYWtlIHVwIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgUlhXQUtFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSWCBXYWtlIHVwIGRldGVjdCAqLworI2RlZmluZSBSWEVSUiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJYIEVycm9yIEVycm9yICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQgMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVUFSVDBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCitTRlJfOEJJVChVME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFUwQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVMEJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFUwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKworI2RlZmluZSBVQ1RMMCAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDAgICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDAgICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMCAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDAgICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwICAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjAgICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwICAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMMF8gICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDBfICAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDBfICAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMF8gICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDBfICAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwXyAgICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjBfICAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwXyAgICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMCAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMCAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzBfICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wXyAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wXyAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzBfICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wXyAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMF8gICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wXyAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMF8gICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQVJUIDEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VBUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFUxQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIENvbnRyb2wgKi8KK1NGUl84QklUKFUxVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFUxUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIFJlY2VpdmUgQ29udHJvbCAqLworU0ZSXzhCSVQoVTFNQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVMUJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVTFCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFUxUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVMVRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBCdWZmZXIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisKKyNkZWZpbmUgVUNUTDEgICAgICAgICAgICAgICAgICBVMUNUTCAgICAgICAgICAvKiBVU0FSVCAxIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVEwxICAgICAgICAgICAgICAgICBVMVRDVEwgICAgICAgICAvKiBVU0FSVCAxIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVEwxICAgICAgICAgICAgICAgICBVMVJDVEwgICAgICAgICAvKiBVU0FSVCAxIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTDEgICAgICAgICAgICAgICAgIFUxTUNUTCAgICAgICAgIC8qIFVTQVJUIDEgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjAxICAgICAgICAgICAgICAgICAgVTFCUjAgICAgICAgICAgLyogVVNBUlQgMSBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxMSAgICAgICAgICAgICAgICAgIFUxQlIxICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUYxICAgICAgICAgICAgICAgICBVMVJYQlVGICAgICAgICAvKiBVU0FSVCAxIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGMSAgICAgICAgICAgICAgICAgVTFUWEJVRiAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTDFfICAgICAgICAgICAgICAgICBVMUNUTF8gICAgICAgICAvKiBVU0FSVCAxIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVEwxXyAgICAgICAgICAgICAgICBVMVRDVExfICAgICAgICAvKiBVU0FSVCAxIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVEwxXyAgICAgICAgICAgICAgICBVMVJDVExfICAgICAgICAvKiBVU0FSVCAxIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTDFfICAgICAgICAgICAgICAgIFUxTUNUTF8gICAgICAgIC8qIFVTQVJUIDEgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjAxXyAgICAgICAgICAgICAgICAgVTFCUjBfICAgICAgICAgLyogVVNBUlQgMSBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxMV8gICAgICAgICAgICAgICAgIFUxQlIxXyAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUYxXyAgICAgICAgICAgICAgICBVMVJYQlVGXyAgICAgICAvKiBVU0FSVCAxIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGMV8gICAgICAgICAgICAgICAgVTFUWEJVRl8gICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTF8xICAgICAgICAgICAgICAgICBVMUNUTCAgICAgICAgICAvKiBVU0FSVCAxIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVExfMSAgICAgICAgICAgICAgICBVMVRDVEwgICAgICAgICAvKiBVU0FSVCAxIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVExfMSAgICAgICAgICAgICAgICBVMVJDVEwgICAgICAgICAvKiBVU0FSVCAxIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTF8xICAgICAgICAgICAgICAgIFUxTUNUTCAgICAgICAgIC8qIFVTQVJUIDEgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjBfMSAgICAgICAgICAgICAgICAgVTFCUjAgICAgICAgICAgLyogVVNBUlQgMSBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxXzEgICAgICAgICAgICAgICAgIFUxQlIxICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUZfMSAgICAgICAgICAgICAgICBVMVJYQlVGICAgICAgICAvKiBVU0FSVCAxIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGXzEgICAgICAgICAgICAgICAgVTFUWEJVRiAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTF8xXyAgICAgICAgICAgICAgICBVMUNUTF8gICAgICAgICAvKiBVU0FSVCAxIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVExfMV8gICAgICAgICAgICAgICBVMVRDVExfICAgICAgICAvKiBVU0FSVCAxIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVExfMV8gICAgICAgICAgICAgICBVMVJDVExfICAgICAgICAvKiBVU0FSVCAxIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTF8xXyAgICAgICAgICAgICAgIFUxTUNUTF8gICAgICAgIC8qIFVTQVJUIDEgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjBfMV8gICAgICAgICAgICAgICAgVTFCUjBfICAgICAgICAgLyogVVNBUlQgMSBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxXzFfICAgICAgICAgICAgICAgIFUxQlIxXyAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUZfMV8gICAgICAgICAgICAgICBVMVJYQlVGXyAgICAgICAvKiBVU0FSVCAxIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGXzFfICAgICAgICAgICAgICAgVTFUWEJVRl8gICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBCdWZmZXIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEI3CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQjdfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQkNDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDMgKi8KK1NGUl8xNkJJVChUQkNDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDQgKi8KK1NGUl8xNkJJVChUQkNDVEw1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDUgKi8KK1NGUl8xNkJJVChUQkNDVEw2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDYgKi8KK1NGUl8xNkJJVChUQlIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCICovCitTRlJfMTZCSVQoVEJDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRCQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQkNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAyICovCitTRlJfMTZCSVQoVEJDQ1IzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMyAqLworU0ZSXzE2QklUKFRCQ0NSNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDQgKi8KK1NGUl8xNkJJVChUQkNDUjUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSA1ICovCitTRlJfMTZCSVQoVEJDQ1I2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgNiAqLworCisjZGVmaW5lIFRCQ0xHUlAxICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBUQkNMR1JQMCAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKyNkZWZpbmUgQ05UTDEgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAxICovCisjZGVmaW5lIENOVEwwICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMCAqLworI2RlZmluZSBUQlNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAxICovCisjZGVmaW5lIFRCU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDAgKi8KKyNkZWZpbmUgVEJDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBCIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEJJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEJJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgU0hSMSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFNIUjAgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworCisjZGVmaW5lIFRCU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBUQkNMSyAqLworI2RlZmluZSBUQlNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogQUNMSyAgKi8KKyNkZWZpbmUgVEJTU0VMXzIgICAgICAgICAgICAgICAoMioweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFNNQ0xLICovCisjZGVmaW5lIFRCU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBJTkNMSyAqLworI2RlZmluZSBDTlRMXzAgICAgICAgICAgICAgICAgICgwKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxNiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8xICAgICAgICAgICAgICAgICAoMSoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTIgYml0ICovCisjZGVmaW5lIENOVExfMiAgICAgICAgICAgICAgICAgKDIqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEwIGJpdCAqLworI2RlZmluZSBDTlRMXzMgICAgICAgICAgICAgICAgICgzKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAgOCBiaXQgKi8KKyNkZWZpbmUgU0hSXzAgICAgICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFNIUl8xICAgICAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBTSFJfMiAgICAgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgU0hSXzMgICAgICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworI2RlZmluZSBUQkNMR1JQXzAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgVEJDTEdSUF8xICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFRCQ0xHUlBfMiAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBUQkNMR1JQXzMgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisKKy8qIEFkZGl0aW9uYWwgVGltZXIgQiBDb250cm9sIFJlZ2lzdGVyIGJpdHMgYXJlIGRlZmluZWQgaW4gVGltZXIgQSAqLworI2RlZmluZSBDTExEMSAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBDTExEMCAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSMSAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIFNMU0hSMCAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFJfMCAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBTTFNIUl8xICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIFNMU0hSXzIgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIFNMU0hSXzMgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisjZGVmaW5lIENMTERfMCAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgQ0xMRF8xICAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBDTExEXzIgICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBDTExEXzMgICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworLyogVEI3SVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEJJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQklWX1RCQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRCQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRCQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSMyAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFRCQ0NSM19DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSNCAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFRCQ0NSNF9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSNSAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRCQ0NSM19DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSNiAgICAgICAgICAgICgweDAwMEMpICAgICAgIC8qIFRCQ0NSNF9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCSUZHICAgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFRCSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQmFzaWMgQ2xvY2sgTW9kdWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CQVNJQ19DTE9DS19fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoRENPQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDTyBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworU0ZSXzhCSVQoQkNTQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDEgKi8KK1NGUl84QklUKEJDU0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAyICovCisKKyNkZWZpbmUgTU9EMCAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAwICovCisjZGVmaW5lIE1PRDEgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMSAqLworI2RlZmluZSBNT0QyICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDIgKi8KKyNkZWZpbmUgTU9EMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAzICovCisjZGVmaW5lIE1PRDQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgNCAqLworI2RlZmluZSBEQ08wICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgRENPMSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIERDTzIgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMiAqLworCisjZGVmaW5lIFJTRUwwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIFJTRUwxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIFJTRUwyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIFhUNVYgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWFQ1ViBzaG91bGQgYWx3YXlzIGJlIHJlc2V0ICovCisjZGVmaW5lIERJVkEwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWQTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBYVFMgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExGWFRDTEsgMDpMb3cgRnJlcS4gLyAxOiBIaWdoIEZyZXEuICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRW5hYmxlIFhUMkNMSyAqLworCisjZGVmaW5lIERJVkFfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVkFfMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVkFfMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVkFfMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRENPUiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBFbmFibGUgRXh0ZXJuYWwgUmVzaXN0b3IgOiAxICovCisjZGVmaW5lIERJVlMwICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVlMxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCAwOkRDT0NMSyAvIDE6WFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgRElWTTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZNMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTE0wICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0VMTTEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMSAqLworCisjZGVmaW5lIERJVlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZTXzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWU18yICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVlNfMyAgICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERJVk1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVk1fMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVk1fMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVk1fMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgU0VMTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMDogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMSAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDE6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAyOiBYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBTRUxNXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAzOiBMRlhUQ0xLICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NPTVBBX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTAgOiAxICovCisjZGVmaW5lIFAyQ0ExICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTEgOiAxICovCisjZGVmaW5lIENBQ1RMMjQgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIENBQ1RMMjUgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIENBQ1RMMjYgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIENBQ1RMMjcgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgQ0FQRDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjAgKi8KKyNkZWZpbmUgQ0FQRDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjEgKi8KKyNkZWZpbmUgQ0FQRDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjIgKi8KKyNkZWZpbmUgQ0FQRDMgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjMgKi8KKyNkZWZpbmUgQ0FQRDQgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjQgKi8KKyNkZWZpbmUgQ0FQRDUgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjUgKi8KKyNkZWZpbmUgQ0FQRDYgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjYgKi8KKyNkZWZpbmUgQ0FQRDcgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDEgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMVRYX1ZFQ1RPUiAgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFVTQVJUIDEgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0FSVDFUWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDIiKSAgKi8gLyogMHhGRkU0IFVTQVJUIDEgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMVJYX1ZFQ1RPUiAgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFVTQVJUIDEgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQVJUMVJYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgVVNBUlQgMSBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFRYX1ZFQ1RPUiAgICAgICAgICg4ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFVTQVJUIDAgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0FSVDBUWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFVTQVJUIDAgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFJYX1ZFQ1RPUiAgICAgICAgICg5ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQVJUMFJYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVVNBUlQgMCBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIENPTVBBUkFUT1JBX1ZFQ1RPUiAgICAgICgxMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLworLyojZGVmaW5lIENPTVBBUkFUT1JBX0lTUihmdW5jKSAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMSIpICAqLyAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIxX1ZFQ1RPUiAgICAgICAgICAoMTIgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGOCBUaW1lciBCIENDMS02LCBUQiAqLworLyojZGVmaW5lIFRJTUVSQjFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMiIpICAqLyAvKiAweEZGRjggVGltZXIgQiBDQzEtNiwgVEIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQjBfVkVDVE9SICAgICAgICAgICgxMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZBIFRpbWVyIEIgQ0MwICovCisvKiNkZWZpbmUgVElNRVJCMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEzIikgICovIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRW5kIG9mIE1vZHVsZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogZXh0ZXJuICJDIiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX21zcDQzMHgxNHgxICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTV4LmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDE1eC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjYzA2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDE1eC5oCkBAIC0wLDAgKzEsMTE3NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIFN0YW5kYXJkIHJlZ2lzdGVyIGFuZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cworKiBNU1A0MzAgbWljcm9jb250cm9sbGVyLgorKgorKiBUaGlzIGZpbGUgc3VwcG9ydHMgYXNzZW1ibGVyIGFuZCBDIGRldmVsb3BtZW50IGZvcgorKiBNU1A0MzB4MTV4IGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDIuNworKgorKiBSZXYuIDIuMCwgRml4ZWQgZGVmaW5pdGlvbnMgZm9yIERNQQorKiBSZXYuIDIuMSwgQWxpZ25tZW50IG9mIGRlZmludGlvbnMgaW4gVXNlcnMgR3VpZGUgYW5kIG9mIHZlcnNpb24gbnVtYmVycworKiBSZXYuIDIuMiwgRml4ZWQgZGVmaW5pdGlvbnMgZm9yIEkyQworKiBSZXYuIDIuMjEsRml4ZWQgZGVmaW5pdGlvbnMgZm9yIEkyQyBmb3IgYXNzZW1ibGVyCisqIFJldi4gMi4zLCBGaXhlZCB0eXBlIGluIEFEQzEyIGJpdCBkZWZpbml0aW9ucyAocmVwbGFjZWQgQURDMTAgd2l0aCBBREMxMikKKyogICAgICAgICAgIEFkZGVkIFNWUworKiAgICAgICAgICAgQWRkZWQgRE1BIHJlcXVlc3QgZGVmaW5pdGlvbnMKKyogUmV2LiAyLjQsIFJlbW92ZWQgdW51c2VkIGRlZiBvZiBUQVNTRUwyIC8gVEJTU0VMMgorKiBSZXYuIDIuNSwgQWRkZWQgVkxEIGJpdHMgaW4gU1ZTIG1vZHVsZQorKiBSZXYuIDIuNiwgRml4ZWQgaW5jb3JyZWN0IGJpdHMgaW4gSTJDIFNUVCAod3Jvbmc6U1NUKSBhbmQgSTJDIHByZWZpeCB3YXMgbWlzc2luZyBhdCBzb21lIGJpdHMKKyogUmV2LiAyLjcsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHgxNXgKKyNkZWZpbmUgX19tc3A0MzB4MTV4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFUwSUUgICAgICAgICAgICAgICAgICAgSUUxICAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBVUlhJRTAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhJRTAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBVMElGRyAgICAgICAgICAgICAgICAgIElGRzEgICAgICAgICAgIC8qIFVBUlQwIEludGVycnVwdCBGbGFnIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVSWElGRzAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElGRzAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKE1FMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNb2R1bGUgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBNRSAgICAgICAgICAgICAgICAgICBNRTEgICAgICAgICAgICAvKiBVQVJUMCBNb2R1bGUgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWEUwICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWEUwICAgICAgICAgICAgICAgICAgKDB4ODApCisjZGVmaW5lIFVTUElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogV0FUQ0hET0cgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1dEVF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChXRFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBXRFRTU0VMICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBXRFROTUkgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFdEVE5NSUVTICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgV0RUSE9MRCAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisjZGVmaW5lIFdEVFBXICAgICAgICAgICAgICAgICAgKDB4NUEwMCkKKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01ETFlfOCAgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzUgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQURMWV8xMDAwICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BRExZXzI1MCAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xXzkgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgLyogMS45bXMgICAiICovCisvKiBXYXRjaGRvZyBtb2RlIC0+IHJlc2V0IGFmdGVyIGV4cGlyZWQgdGltZSAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NUlNUXzMyICAgICAgICAgKFdEVFBXK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfNSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF8wNjQgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMjUwICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xNiAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAvKiAxLjltcyAgICIgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAweDAxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDEvMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAxSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW5wdXQgKi8KK1NGUl84QklUKFAxT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgT3V0cHV0ICovCitTRlJfOEJJVChQMURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDFJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQzLzQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQzX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQM0lOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIElucHV0ICovCitTRlJfOEJJVChQM09VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIE91dHB1dCAqLworU0ZSXzhCSVQoUDNESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAzU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFA0SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgSW5wdXQgKi8KK1NGUl84QklUKFA0T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgT3V0cHV0ICovCitTRlJfOEJJVChQNERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDRTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0NS82CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDZfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDVJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBJbnB1dCAqLworU0ZSXzhCSVQoUDVPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBPdXRwdXQgKi8KK1NGUl84QklUKFA1RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IElucHV0ICovCitTRlJfOEJJVChQNk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IE91dHB1dCAqLworU0ZSXzhCSVQoUDZESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA2U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVXhDVEwgKi8KKyNkZWZpbmUgUEVOQSAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBQYXJpdHkgZW5hYmxlICovCisjZGVmaW5lIFBFViAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IDA6b2RkIC8gMTpldmVuICovCisjZGVmaW5lIFNQQiAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogU3RvcCBCaXRzIDA6b25lIC8gMTogdHdvICovCisjZGVmaW5lIENIQVIgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogRGF0YSAwOjctYml0cyAvIDE6OC1iaXRzICovCisjZGVmaW5lIExJU1RFTiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTGlzdGVuIG1vZGUgKi8KKyNkZWZpbmUgU1lOQyAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVQVJUIC8gU1BJIG1vZGUgKi8KKyNkZWZpbmUgTU0gICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNYXN0ZXIgTW9kZSBvZmYvb24gKi8KKyNkZWZpbmUgU1dSU1QgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0FSVCBTb2Z0d2FyZSBSZXNldCAqLworCisvKiBVeFRDVEwgKi8KKyNkZWZpbmUgQ0tQSCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTUEk6IENsb2NrIFBoYXNlICovCisjZGVmaW5lIENLUEwgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ2xvY2sgUG9sYXJpdHkgKi8KKyNkZWZpbmUgU1NFTDEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1NFTDAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVVJYU0UgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSZWNlaXZlIFN0YXJ0IGVkZ2Ugc2VsZWN0ICovCisjZGVmaW5lIFRYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVFggV2FrZSB1cCBtb2RlICovCisjZGVmaW5lIFNUQyAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1BJOiBTVEMgZW5hYmxlIDA6b24gLyAxOm9mZiAqLworI2RlZmluZSBUWEVQVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRYIEJ1ZmZlciBlbXB0eSAqLworCisvKiBVeFJDVEwgKi8KKyNkZWZpbmUgRkUgICAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBGcmFtZSBFcnJvciAqLworI2RlZmluZSBQRSAgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSBFcnJvciAqLworI2RlZmluZSBPRSAgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE92ZXJydW4gRXJyb3IgKi8KKyNkZWZpbmUgQlJLICAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBkZXRlY3RlZCAqLworI2RlZmluZSBVUlhFSUUgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJYIEVycm9yIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVVJYV0lFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSWCBXYWtlIHVwIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgUlhXQUtFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSWCBXYWtlIHVwIGRldGVjdCAqLworI2RlZmluZSBSWEVSUiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJYIEVycm9yIEVycm9yICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQgMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVUFSVDBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCitTRlJfOEJJVChVME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFUwQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVMEJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFUwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKworI2RlZmluZSBVQ1RMMCAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDAgICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDAgICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMCAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDAgICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwICAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjAgICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwICAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMMF8gICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDBfICAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDBfICAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMF8gICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDBfICAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwXyAgICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjBfICAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwXyAgICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMCAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMCAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzBfICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wXyAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wXyAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzBfICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wXyAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMF8gICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wXyAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMF8gICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQVJUMCAgSTJDCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19JMkNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChJMkNJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSTJDIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQUxJRSAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBsb3N0ICovCisjZGVmaW5lIE5BQ0tJRSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTm8gYWNrbm93bGVkZ2UgKi8KKyNkZWZpbmUgT0FJRSAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBPd24gYWRkcmVzcyAqLworI2RlZmluZSBBUkRZSUUgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEFjY2VzcyByZWFkeSAob3BlYXRpb24gY29tcGxldGUpICovCisjZGVmaW5lIFJYUkRZSUUgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogUmVjZWl2ZSByZWFkeSAoZGF0YSByZWNlaXZlZCkgKi8KKyNkZWZpbmUgVFhSRFlJRSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBUcmFuc21pdCByZWFkeSAodHJhbnNtaXQgcmVnaXN0ZXIgZW1wdHkpICovCisjZGVmaW5lIEdDSUUgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogR2VuZXJhbCBjYWxsICovCisjZGVmaW5lIFNUVElFICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU3RhcnQgY29uZGl0aW9uICovCisKK1NGUl84QklUKEkyQ0lGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQUxJRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBsb3N0ICovCisjZGVmaW5lIE5BQ0tJRkcgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTm8gYWNrbm93bGVkZ2UgKi8KKyNkZWZpbmUgT0FJRkcgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBPd24gYWRkcmVzcyAqLworI2RlZmluZSBBUkRZSUZHICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEFjY2VzcyByZWFkeSAob3BlYXRpb24gY29tcGxldGUpICovCisjZGVmaW5lIFJYUkRZSUZHICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogUmVjZWl2ZSByZWFkeSAoZGF0YSByZWNlaXZlZCkgKi8KKyNkZWZpbmUgVFhSRFlJRkcgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBUcmFuc21pdCByZWFkeSAodHJhbnNtaXQgcmVnaXN0ZXIgZW1wdHkpICovCisjZGVmaW5lIEdDSUZHICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogR2VuZXJhbCBjYWxsICovCisjZGVmaW5lIFNUVElGRyAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU3RhcnQgY29uZGl0aW9uICovCisKK1NGUl84QklUKEkyQ05EQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgRGF0YSBDb3VudCAqLworCisvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgSTJDRU4gICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBJMkMgZW5hYmxlICovCisjZGVmaW5lIE1TVCAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSTJDIG1hc3RlciAqLworI2RlZmluZSBYQSAgICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEkyQyBleHRlbmRlZCBhZGRyZXNzaW5nICovCisjZGVmaW5lIEkyQyAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNBUlQgSTJDICovCisjZGVmaW5lIFRYRE1BRU4gICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVHJhbnNtaXQgRE1BIGVuYWJsZSAqLworI2RlZmluZSBSWERNQUVOICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFJlY2VpdmUgRE1BIGVuYWJsZSAqLworCitTRlJfOEJJVChJMkNUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSTJDIFRyYW5zZmVyIENvbnRyb2wgKi8KKyNkZWZpbmUgSTJDU1RUICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTdGFydCBiaXQgKi8KKyNkZWZpbmUgSTJDU1RQICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTdG9wIGJpdCAqLworI2RlZmluZSBJMkNTVEIgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN0YXJ0IGJ5dGUgbW9kZSAqLworI2RlZmluZSBJMkNUUlggICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFRyYW5zbWl0ICovCisjZGVmaW5lIEkyQ1NTRUwwICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ2xvY2sgc2VsZWN0IGJpdCAwICovCisjZGVmaW5lIEkyQ1NTRUwxICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ2xvY2sgc2VsZWN0IGJpdCAxICovCisjZGVmaW5lIEkyQ1JNICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUmVwZWF0IG1vZGUgKi8KKyNkZWZpbmUgSTJDV09SRCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBXb3JkIGRhdGEgbW9kZSAqLworCisjZGVmaW5lIEkyQ1NTRUxfMCAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogSTJDIGNsb2NrIHNlbGVjdCAwOiBVQ0xLICovCisjZGVmaW5lIEkyQ1NTRUxfMSAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogSTJDIGNsb2NrIHNlbGVjdCAxOiBBQ0xLICovCisjZGVmaW5lIEkyQ1NTRUxfMiAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogSTJDIGNsb2NrIHNlbGVjdCAyOiBTTUNMSyAqLworI2RlZmluZSBJMkNTU0VMXzMgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIEkyQyBjbG9jayBzZWxlY3QgMzogU01DTEsgKi8KKworI2RlZmluZSBJMkNNTV8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1hc3RlciBtb2RlIDAgKi8KKyNkZWZpbmUgSTJDTU1fMSAgICAgICAgICAgICAgICAoSTJDU1RUKSAgICAgICAvKiBNYXN0ZXIgbW9kZSAxICovCisjZGVmaW5lIEkyQ01NXzIgICAgICAgICAgICAgKEkyQ1NUUCtJMkNTVFQpIC8qIE1hc3RlciBtb2RlIDIgKi8KKyNkZWZpbmUgSTJDTU1fMyAgICAgICAgICAgICAgICAoSTJDUk0rSTJDU1RUKSAvKiBNYXN0ZXIgbW9kZSAzICovCisjZGVmaW5lIEkyQ01NXzQgICAgICAgICAgICAgICAgKEkyQ1NUUCkgICAgICAgLyogTWFzdGVyIG1vZGUgNCAqLworCitTRlJfOEJJVChJMkNEQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSTJDIERhdGEgQ29udHJvbCAqLworI2RlZmluZSBJMkNCQiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEJ1cyBidXN5ICovCisjZGVmaW5lIEkyQ1JYT1ZSICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUmVjZWl2ZXIgb3ZlcnJ1biAqLworI2RlZmluZSBJMkNUWFVERiAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFRyYW5zbWl0IHVuZGVyZmxvdyAqLworI2RlZmluZSBJMkNTQkQgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlY2VpdmVkIGJ5dGUgKi8KKyNkZWZpbmUgSTJDU0NMTE9XICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBTQ0wgYmVpbmcgaGVsZCBsb3cgKi8KKyNkZWZpbmUgSTJDQlVTWSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJMkMgQnVzeSBGbGFnICovCisKK1NGUl84QklUKEkyQ1BTQyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgUHJlLXNjYWxlciAqLworU0ZSXzhCSVQoSTJDU0NMSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEkyQyBTQ0wgSGlnaCAqLworU0ZSXzhCSVQoSTJDU0NMTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEkyQyBTQ0wgTG93ICovCitTRlJfOEJJVChJMkNEUkIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSTJDIERhdGEgZm9yIEJ5dGUgYWNjZXNzICovCitTRlJfMTZCSVQoSTJDRFJXKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSTJDIERhdGEgZm9yIFdvcmQgYWNjZXNzICovCisKK1NGUl8xNkJJVChJMkNPQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChJMkNTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAqLworCitTRlJfMTZCSVQoSTJDSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSTJDIEludGVycnVwdCBWZWN0b3IgKi8KKyNkZWZpbmUgSTJDSVZfTk9ORSAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBJMkMgaW50ZXJydXB0IHZlY3RvcjogTm8gaW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgSTJDSVZfQUwgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBJMkMgaW50ZXJydXB0IHZlY3RvcjogQXJiaXRyYXRpb24gbG9zdCAoQUxJRkcpICovCisjZGVmaW5lIEkyQ0lWX05BQ0sgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogSTJDIGludGVycnVwdCB2ZWN0b3I6IE5vIGFja25vd2xlZGdlIChOQUNLSUZHKSAqLworI2RlZmluZSBJMkNJVl9PQSAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIEkyQyBpbnRlcnJ1cHQgdmVjdG9yOiBPd24gYWRkcmVzcyAoT0FJRkcpICovCisjZGVmaW5lIEkyQ0lWX0FSRFkgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIGludGVycnVwdCB2ZWN0b3I6IEFjY2VzcyByZWFkeSAoQVJEWUlGRykgKi8KKyNkZWZpbmUgSTJDSVZfUlhSRFkgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBJMkMgaW50ZXJydXB0IHZlY3RvcjogUmVjZWl2ZSByZWFkeSAoUlhSRFlJRkcpICovCisjZGVmaW5lIEkyQ0lWX1RYUkRZICAgICAgICAgICAgKDB4MDAwQykgICAgICAgLyogSTJDIGludGVycnVwdCB2ZWN0b3I6IFRyYW5zbWl0IHJlYWR5IChUWFJEWUlGRykgKi8KKyNkZWZpbmUgSTJDSVZfR0MgICAgICAgICAgICAgICAoMHgwMDBFKSAgICAgICAvKiBJMkMgaW50ZXJydXB0IHZlY3RvcjogR2VuZXJhbCBjYWxsIChHQ0lGRykgKi8KKyNkZWZpbmUgSTJDSVZfU1RUICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBJMkMgaW50ZXJydXB0IHZlY3RvcjogU3RhcnQgY29uZGl0aW9uIChTVFRJRkcpICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBCMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEIzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRCSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDb250cm9sICovCitTRlJfMTZCSVQoVEJDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEJDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEJDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEJSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiAqLworU0ZSXzE2QklUKFRCQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQkNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEJDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRCQ0xHUlAxICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBUQkNMR1JQMCAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKyNkZWZpbmUgQ05UTDEgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAxICovCisjZGVmaW5lIENOVEwwICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMCAqLworI2RlZmluZSBUQlNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAxICovCisjZGVmaW5lIFRCU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDAgKi8KKyNkZWZpbmUgVEJDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBCIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEJJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEJJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgU0hSMSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFNIUjAgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworCisjZGVmaW5lIFRCU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBUQkNMSyAqLworI2RlZmluZSBUQlNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogQUNMSyAgKi8KKyNkZWZpbmUgVEJTU0VMXzIgICAgICAgICAgICAgICAoMioweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFNNQ0xLICovCisjZGVmaW5lIFRCU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBJTkNMSyAqLworI2RlZmluZSBDTlRMXzAgICAgICAgICAgICAgICAgICgwKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxNiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8xICAgICAgICAgICAgICAgICAoMSoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTIgYml0ICovCisjZGVmaW5lIENOVExfMiAgICAgICAgICAgICAgICAgKDIqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEwIGJpdCAqLworI2RlZmluZSBDTlRMXzMgICAgICAgICAgICAgICAgICgzKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAgOCBiaXQgKi8KKyNkZWZpbmUgU0hSXzAgICAgICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFNIUl8xICAgICAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBTSFJfMiAgICAgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgU0hSXzMgICAgICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworI2RlZmluZSBUQkNMR1JQXzAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgVEJDTEdSUF8xICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFRCQ0xHUlBfMiAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBUQkNMR1JQXzMgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisKKy8qIEFkZGl0aW9uYWwgVGltZXIgQiBDb250cm9sIFJlZ2lzdGVyIGJpdHMgYXJlIGRlZmluZWQgaW4gVGltZXIgQSAqLworCisjZGVmaW5lIENMTEQxICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIENMTEQwICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFIxICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgU0xTSFIwICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUl8wICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIFNMU0hSXzEgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgU0xTSFJfMiAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgU0xTSFJfMyAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKyNkZWZpbmUgQ0xMRF8wICAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBDTExEXzEgICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIENMTERfMiAgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIENMTERfMyAgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisvKiBUQjNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQklWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRCSVZfVEJDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEJDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEJDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRCSVZfMyAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl80ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzUgICAgICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwQykgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl9UQklGRyAgICAgICAgICAgICAoMHgwMDBFKSAgICAgICAvKiBUQklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJhc2ljIENsb2NrIE1vZHVsZQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQkFTSUNfQ0xPQ0tfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKERDT0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ08gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KK1NGUl84QklUKEJDU0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAxICovCitTRlJfOEJJVChCQ1NDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMiAqLworCisjZGVmaW5lIE1PRDAgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMCAqLworI2RlZmluZSBNT0QxICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDEgKi8KKyNkZWZpbmUgTU9EMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAyICovCisjZGVmaW5lIE1PRDMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMyAqLworI2RlZmluZSBNT0Q0ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDQgKi8KKyNkZWZpbmUgRENPMCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIERDTzEgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBEQ08yICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDIgKi8KKworI2RlZmluZSBSU0VMMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBSU0VMMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBSU0VMMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMiAqLworI2RlZmluZSBYVDVWICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhUNVYgc2hvdWxkIGFsd2F5cyBiZSByZXNldCAqLworI2RlZmluZSBESVZBMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVkExICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgWFRTICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMRlhUQ0xLIDA6TG93IEZyZXEuIC8gMTogSGlnaCBGcmVxLiAqLworI2RlZmluZSBYVDJPRkYgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEVuYWJsZSBYVDJDTEsgKi8KKworI2RlZmluZSBESVZBXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZBXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZBXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZBXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERDT1IgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRW5hYmxlIEV4dGVybmFsIFJlc2lzdG9yIDogMSAqLworI2RlZmluZSBESVZTMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgMDpEQ09DTEsgLyAxOlhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIERJVk0wICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZNXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZNXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZNXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIFNFTE1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDA6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMjogWFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgU0VMTV8zICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMzogTEZYVENMSyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJyb3duLU91dCwgU3VwcGx5IFZvbHRhZ2UgU3VwZXJ2aXNpb24gKFNWUykKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NWU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNWU0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgQ29udHJvbCAqLworI2RlZmluZSBTVlNGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNWUyBGbGFnICovCisjZGVmaW5lIFNWU09QICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1ZTIG91dHB1dCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBTVlNPTiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN3aXRjaGVzIHRoZSBTVlMgb24vb2ZmICovCisjZGVmaW5lIFBPUk9OICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRW5hYmxlIFBPUiBHZW5lcmF0aW9uIGlmIExvdyBWb2x0YWdlICovCisjZGVmaW5lIFZMRDAgICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRDEgICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFZMRDIgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFZMRDMgICAgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgVkxET04gICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxET0ZGICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgVkxEXzFfOFYgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0hfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvbXBhcmF0b3IgQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQ09NUEFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQ0FDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDEgKi8KK1NGUl84QklUKENBQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAyICovCitTRlJfOEJJVChDQVBEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIFBvcnQgRGlzYWJsZSAqLworCisjZGVmaW5lIENBSUZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBDQUlFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBDQUlFUyAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBFZGdlIFNlbGVjdDogMDpyaXNpbmcgLyAxOmZhbGxpbmcgKi8KKyNkZWZpbmUgQ0FPTiAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIGVuYWJsZSAqLworI2RlZmluZSBDQVJFRjAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENBUkVGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0FSU0VMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBFbmFibGUgKi8KKyNkZWZpbmUgQ0FFWCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIEV4Y2hhbmdlIElucHV0cyAqLworCisjZGVmaW5lIENBUkVGXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDAgOiBPZmYgKi8KKyNkZWZpbmUgQ0FSRUZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMSA6IDAuMjUqVmNjICovCisjZGVmaW5lIENBUkVGXzIgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDIgOiAwLjUqVmNjICovCisjZGVmaW5lIENBUkVGXzMgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDMgOiBWdCovCisKKyNkZWZpbmUgQ0FPVVQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIE91dHB1dCAqLworI2RlZmluZSBDQUYgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRW5hYmxlIE91dHB1dCBGaWx0ZXIgKi8KKyNkZWZpbmUgUDJDQTAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIENvbm5lY3QgRXh0ZXJuYWwgU2lnbmFsIHRvIENBMCA6IDEgKi8KKyNkZWZpbmUgUDJDQTEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIENvbm5lY3QgRXh0ZXJuYWwgU2lnbmFsIHRvIENBMSA6IDEgKi8KKyNkZWZpbmUgQ0FDVEwyNCAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQ0FDVEwyNSAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgQ0FDVEwyNiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgQ0FDVEwyNyAgICAgICAgICAgICAgICAoMHg4MCkKKworI2RlZmluZSBDQVBEMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMCAqLworI2RlZmluZSBDQVBEMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMSAqLworI2RlZmluZSBDQVBEMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMiAqLworI2RlZmluZSBDQVBEMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMyAqLworI2RlZmluZSBDQVBENCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNCAqLworI2RlZmluZSBDQVBENSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNSAqLworI2RlZmluZSBDQVBENiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNiAqLworI2RlZmluZSBDQVBENyAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEFEQzEyCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19BREMxMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoQURDMTJDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udHJvbCAwICovCitTRlJfMTZCSVQoQURDMTJDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udHJvbCAxICovCitTRlJfMTZCSVQoQURDMTJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl8xNkJJVChBREMxMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfMTZCSVQoQURDMTJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisKKyNkZWZpbmUgQURDMTJNRU1fICAgICAgICAgICAgICAoMHgwMTQwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIEFEQzEyTUVNICAgICAgICAgICAgICAgKEFEQzEyTUVNXykgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBBREMxMk1FTSAgICAgICAgICAgICAgICgoaW50KikgICAgICAgIEFEQzEyTUVNXykgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgKGZvciBDKSAqLworI2VuZGlmCitTRlJfMTZCSVQoQURDMTJNRU0wKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEgKi8KK1NGUl8xNkJJVChBREMxMk1FTTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAyICovCitTRlJfMTZCSVQoQURDMTJNRU0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMyAqLworU0ZSXzE2QklUKEFEQzEyTUVNNCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDQgKi8KK1NGUl8xNkJJVChBREMxMk1FTTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA1ICovCitTRlJfMTZCSVQoQURDMTJNRU02KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNiAqLworU0ZSXzE2QklUKEFEQzEyTUVNNyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDcgKi8KK1NGUl8xNkJJVChBREMxMk1FTTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA4ICovCitTRlJfMTZCSVQoQURDMTJNRU05KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgOSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTApOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEwICovCitTRlJfMTZCSVQoQURDMTJNRU0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTEgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMiAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTMpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEzICovCitTRlJfMTZCSVQoQURDMTJNRU0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTQgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNSAqLworCisjZGVmaW5lIEFEQzEyTUNUTF8gICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKi8KKyNpZmRlZiBfX0FTTV9IRUFERVJfXworI2RlZmluZSBBREMxMk1DVEwgICAgICAgICAgICAgIChBREMxMk1DVExfKSAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgQURDMTJNQ1RMICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBBREMxMk1DVExfKSAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKEFEQzEyTUNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAwICovCitTRlJfOEJJVChBREMxMk1DVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDIgKi8KK1NGUl84QklUKEFEQzEyTUNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAzICovCitTRlJfOEJJVChBREMxMk1DVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDUgKi8KK1NGUl84QklUKEFEQzEyTUNUTDYpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA2ICovCitTRlJfOEJJVChBREMxMk1DVEw3KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMOCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDggKi8KK1NGUl84QklUKEFEQzEyTUNUTDkpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA5ICovCitTRlJfOEJJVChBREMxMk1DVEwxMCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTAgKi8KK1NGUl84QklUKEFEQzEyTUNUTDExKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTIpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEyICovCitTRlJfOEJJVChBREMxMk1DVEwxMyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTMgKi8KK1NGUl84QklUKEFEQzEyTUNUTDE0KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxNCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTUpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDE1ICovCisKKy8qIEFEQzEyQ1RMMCAqLworI2RlZmluZSBBREMxMlNDICAgICAgICAgICAgICAgICgweDAwMSkgICAgICAgIC8qIEFEQzEyIFN0YXJ0IENvbnZlcnNpb24gKi8KKyNkZWZpbmUgRU5DICAgICAgICAgICAgICAgICAgICAoMHgwMDIpICAgICAgICAvKiBBREMxMiBFbmFibGUgQ29udmVyc2lvbiAqLworI2RlZmluZSBBREMxMlRPVklFICAgICAgICAgICAgICgweDAwNCkgICAgICAgIC8qIEFEQzEyIFRpbWVyIE92ZXJmbG93IGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQURDMTJPVklFICAgICAgICAgICAgICAoMHgwMDgpICAgICAgICAvKiBBREMxMiBPdmVyZmxvdyBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIEFEQzEyT04gICAgICAgICAgICAgICAgKDB4MDEwKSAgICAgICAgLyogQURDMTIgT24vZW5hYmxlICovCisjZGVmaW5lIFJFRk9OICAgICAgICAgICAgICAgICAgKDB4MDIwKSAgICAgICAgLyogQURDMTIgUmVmZXJlbmNlIG9uICovCisjZGVmaW5lIFJFRjJfNVYgICAgICAgICAgICAgICAgKDB4MDQwKSAgICAgICAgLyogQURDMTIgUmVmIDA6MS41ViAvIDE6Mi41ViAqLworI2RlZmluZSBNU0MgICAgICAgICAgICAgICAgICAgICgweDA4MCkgICAgICAgIC8qIEFEQzEyIE11bHRpcGxlIFNhbXBsZUNvbnZlcnNpb24gKi8KKyNkZWZpbmUgU0hUMDAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAwICovCisjZGVmaW5lIFNIVDAxICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMSAqLworI2RlZmluZSBTSFQwMiAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0hUMDMgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAzICovCisjZGVmaW5lIFNIVDEwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMCAqLworI2RlZmluZSBTSFQxMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDEgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0hUMTIgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAyIFNlbGVjdCAyICovCisjZGVmaW5lIFNIVDEzICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMyBTZWxlY3QgMyAqLworI2RlZmluZSBNU0ggICAgICAgICAgICAgICAgICAgICgweDA4MCkKKworI2RlZmluZSBTSFQwXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xICAgICAgICAgICAgICAgICAoMSoweDEwMHUpCisjZGVmaW5lIFNIVDBfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDB1KQorI2RlZmluZSBTSFQwXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF80ICAgICAgICAgICAgICAgICAoNCoweDEwMHUpCisjZGVmaW5lIFNIVDBfNSAgICAgICAgICAgICAgICAgKDUqMHgxMDB1KQorI2RlZmluZSBTSFQwXzYgICAgICAgICAgICAgICAgICg2KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF83ICAgICAgICAgICAgICAgICAoNyoweDEwMHUpCisjZGVmaW5lIFNIVDBfOCAgICAgICAgICAgICAgICAgKDgqMHgxMDB1KQorI2RlZmluZSBTSFQwXzkgICAgICAgICAgICAgICAgICg5KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMCAgICAgICAgICAgICAgICAoMTAqMHgxMDB1KQorI2RlZmluZSBTSFQwXzExICAgICAgICAgICAgICAgICgxMSoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTIgICAgICAgICAgICAgICAgKDEyKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMyAgICAgICAgICAgICAgICAoMTMqMHgxMDB1KQorI2RlZmluZSBTSFQwXzE0ICAgICAgICAgICAgICAgICgxNCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTUgICAgICAgICAgICAgICAgKDE1KjB4MTAwdSkKKworI2RlZmluZSBTSFQxXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KQorI2RlZmluZSBTSFQxXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNCAgICAgICAgICAgICAgICAgKDQqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV81ICAgICAgICAgICAgICAgICAoNSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzYgICAgICAgICAgICAgICAgICg2KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNyAgICAgICAgICAgICAgICAgKDcqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV84ICAgICAgICAgICAgICAgICAoOCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzkgICAgICAgICAgICAgICAgICg5KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTAgICAgICAgICAgICAgICAgKDEwKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTIgICAgICAgICAgICAgICAgKDEyKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTMgICAgICAgICAgICAgICAgKDEzKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTUgICAgICAgICAgICAgICAgKDE1KjB4MTAwMHUpCisKKy8qIEFEQzEyQ1RMMSAqLworI2RlZmluZSBBREMxMkJVU1kgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEyIEJ1c3kgKi8KKyNkZWZpbmUgQ09OU0VRMCAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENPTlNFUTEgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTZXF1ZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMlNTRUwwICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEyIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMlNTRUwxICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEyIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMkRJVjAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTJESVYxICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMiAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMiAqLworI2RlZmluZSBJU1NIICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEyIEludmVydCBTYW1wbGUgSG9sZCBTaWduYWwgKi8KKyNkZWZpbmUgU0hQICAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBQdWxzZSBNb2RlICovCisjZGVmaW5lIFNIUzAgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTIgU2FtcGxlL0hvbGQgU291cmNlIDAgKi8KKyNkZWZpbmUgU0hTMSAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMSAqLworI2RlZmluZSBDU1RBUlRBREQwICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAwICovCisjZGVmaW5lIENTVEFSVEFERDEgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDEgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMiAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMiAqLworI2RlZmluZSBDU1RBUlRBREQzICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAzICovCisKKyNkZWZpbmUgQ09OU0VRXzAgICAgICAgICAgICAgICAoMCoydSkKKyNkZWZpbmUgQ09OU0VRXzEgICAgICAgICAgICAgICAoMSoydSkKKyNkZWZpbmUgQ09OU0VRXzIgICAgICAgICAgICAgICAoMioydSkKKyNkZWZpbmUgQ09OU0VRXzMgICAgICAgICAgICAgICAoMyoydSkKKyNkZWZpbmUgQURDMTJTU0VMXzAgICAgICAgICAgICAoMCo4dSkKKyNkZWZpbmUgQURDMTJTU0VMXzEgICAgICAgICAgICAoMSo4dSkKKyNkZWZpbmUgQURDMTJTU0VMXzIgICAgICAgICAgICAoMio4dSkKKyNkZWZpbmUgQURDMTJTU0VMXzMgICAgICAgICAgICAoMyo4dSkKKyNkZWZpbmUgQURDMTJESVZfMCAgICAgICAgICAgICAoMCoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfMSAgICAgICAgICAgICAoMSoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfMiAgICAgICAgICAgICAoMioweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfMyAgICAgICAgICAgICAoMyoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNCAgICAgICAgICAgICAoNCoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNSAgICAgICAgICAgICAoNSoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNiAgICAgICAgICAgICAoNioweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNyAgICAgICAgICAgICAoNyoweDIwdSkKKyNkZWZpbmUgU0hTXzAgICAgICAgICAgICAgICAgICAoMCoweDQwMHUpCisjZGVmaW5lIFNIU18xICAgICAgICAgICAgICAgICAgKDEqMHg0MDB1KQorI2RlZmluZSBTSFNfMiAgICAgICAgICAgICAgICAgICgyKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzMgICAgICAgICAgICAgICAgICAoMyoweDQwMHUpCisjZGVmaW5lIENTVEFSVEFERF8wICAgICAgICAgICAgKDAqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEgICAgICAgICAgICAoMSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMiAgICAgICAgICAgICgyKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8zICAgICAgICAgICAgKDMqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzQgICAgICAgICAgICAoNCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNSAgICAgICAgICAgICg1KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF82ICAgICAgICAgICAgKDYqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzcgICAgICAgICAgICAoNyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfOCAgICAgICAgICAgICg4KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF85ICAgICAgICAgICAgKDkqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEwICAgICAgICAgICAoMTAqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzExICAgICAgICAgICAoMTEqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEyICAgICAgICAgICAoMTIqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEzICAgICAgICAgICAoMTMqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzE0ICAgICAgICAgICAoMTQqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzE1ICAgICAgICAgICAoMTUqMHgxMDAwdSkKKworLyogQURDMTJNQ1RMeCAqLworI2RlZmluZSBJTkNIMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIElOQ0gxICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgSU5DSDIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMiAqLworI2RlZmluZSBJTkNIMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAzICovCisjZGVmaW5lIFNSRUYwICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMCAqLworI2RlZmluZSBTUkVGMSAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDEgKi8KKyNkZWZpbmUgU1JFRjIgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAyICovCisjZGVmaW5lIEVPUyAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgRW5kIG9mIFNlcXVlbmNlICovCisKKyNkZWZpbmUgSU5DSF8wICAgICAgICAgICAgICAgICAoMCkKKyNkZWZpbmUgSU5DSF8xICAgICAgICAgICAgICAgICAoMSkKKyNkZWZpbmUgSU5DSF8yICAgICAgICAgICAgICAgICAoMikKKyNkZWZpbmUgSU5DSF8zICAgICAgICAgICAgICAgICAoMykKKyNkZWZpbmUgSU5DSF80ICAgICAgICAgICAgICAgICAoNCkKKyNkZWZpbmUgSU5DSF81ICAgICAgICAgICAgICAgICAoNSkKKyNkZWZpbmUgSU5DSF82ICAgICAgICAgICAgICAgICAoNikKKyNkZWZpbmUgSU5DSF83ICAgICAgICAgICAgICAgICAoNykKKyNkZWZpbmUgSU5DSF84ICAgICAgICAgICAgICAgICAoOCkKKyNkZWZpbmUgSU5DSF85ICAgICAgICAgICAgICAgICAoOSkKKyNkZWZpbmUgSU5DSF8xMCAgICAgICAgICAgICAgICAoMTApCisjZGVmaW5lIElOQ0hfMTEgICAgICAgICAgICAgICAgKDExKQorI2RlZmluZSBJTkNIXzEyICAgICAgICAgICAgICAgICgxMikKKyNkZWZpbmUgSU5DSF8xMyAgICAgICAgICAgICAgICAoMTMpCisjZGVmaW5lIElOQ0hfMTQgICAgICAgICAgICAgICAgKDE0KQorI2RlZmluZSBJTkNIXzE1ICAgICAgICAgICAgICAgICgxNSkKKworI2RlZmluZSBTUkVGXzAgICAgICAgICAgICAgICAgICgwKjB4MTB1KQorI2RlZmluZSBTUkVGXzEgICAgICAgICAgICAgICAgICgxKjB4MTB1KQorI2RlZmluZSBTUkVGXzIgICAgICAgICAgICAgICAgICgyKjB4MTB1KQorI2RlZmluZSBTUkVGXzMgICAgICAgICAgICAgICAgICgzKjB4MTB1KQorI2RlZmluZSBTUkVGXzQgICAgICAgICAgICAgICAgICg0KjB4MTB1KQorI2RlZmluZSBTUkVGXzUgICAgICAgICAgICAgICAgICg1KjB4MTB1KQorI2RlZmluZSBTUkVGXzYgICAgICAgICAgICAgICAgICg2KjB4MTB1KQorI2RlZmluZSBTUkVGXzcgICAgICAgICAgICAgICAgICg3KjB4MTB1KQorCisvKiBBREMxMklWIERlZmluaXRpb25zICovCisjZGVmaW5lIEFEQzEySVZfTk9ORSAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMk9WSUZHICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMk9WSUZHICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJUT1ZJRkcgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTJUT1ZJRkcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzAgICAgICAoMHgwMDA2KSAgICAgICAvKiBBREMxMklGRzAgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMklGRzEgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzIgICAgICAoMHgwMDBBKSAgICAgICAvKiBBREMxMklGRzIgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzMgICAgICAoMHgwMDBDKSAgICAgICAvKiBBREMxMklGRzMgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzQgICAgICAoMHgwMDBFKSAgICAgICAvKiBBREMxMklGRzQgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzUgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMklGRzUgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzYgICAgICAoMHgwMDEyKSAgICAgICAvKiBBREMxMklGRzYgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzcgICAgICAoMHgwMDE0KSAgICAgICAvKiBBREMxMklGRzcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzggICAgICAoMHgwMDE2KSAgICAgICAvKiBBREMxMklGRzggKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzkgICAgICAoMHgwMDE4KSAgICAgICAvKiBBREMxMklGRzkgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEwICAgICAoMHgwMDFBKSAgICAgICAvKiBBREMxMklGRzEwICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMSAgICAgKDB4MDAxQykgICAgICAgLyogQURDMTJJRkcxMSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTIgICAgICgweDAwMUUpICAgICAgIC8qIEFEQzEySUZHMTIgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEzICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMklGRzEzICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxNCAgICAgKDB4MDAyMikgICAgICAgLyogQURDMTJJRkcxNCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTUgICAgICgweDAwMjQpICAgICAgIC8qIEFEQzEySUZHMTUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBEQUMxMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfREFDMTJfMl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKERBQzEyXzBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERBQzEyXzAgQ29udHJvbCAqLworU0ZSXzE2QklUKERBQzEyXzFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERBQzEyXzEgQ29udHJvbCAqLworCisjZGVmaW5lIERBQzEyR1JQICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogREFDMTIgZ3JvdXAgKi8KKyNkZWZpbmUgREFDMTJFTkMgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBEQUMxMiBlbmFibGUgY29udmVyc2lvbiAqLworI2RlZmluZSBEQUMxMklGRyAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERBQzEyIGludGVycnVwdCBmbGFnICovCisjZGVmaW5lIERBQzEySUUgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogREFDMTIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBEQUMxMkRGICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERBQzEyIGRhdGEgZm9ybWF0ICovCisjZGVmaW5lIERBQzEyQU1QMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogREFDMTIgYW1wbGlmaWVyIGJpdCAwICovCisjZGVmaW5lIERBQzEyQU1QMSAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogREFDMTIgYW1wbGlmaWVyIGJpdCAxICovCisjZGVmaW5lIERBQzEyQU1QMiAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogREFDMTIgYW1wbGlmaWVyIGJpdCAyICovCisjZGVmaW5lIERBQzEySVIgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogREFDMTIgaW5wdXQgcmVmZXJlbmNlIGFuZCBvdXRwdXQgcmFuZ2UgKi8KKyNkZWZpbmUgREFDMTJDQUxPTiAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBEQUMxMiBjYWxpYnJhdGlvbiAqLworI2RlZmluZSBEQUMxMkxTRUwwICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIERBQzEyIGxvYWQgc2VsZWN0IGJpdCAwICovCisjZGVmaW5lIERBQzEyTFNFTDEgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgYml0IDEgKi8KKyNkZWZpbmUgREFDMTJSRVMgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBEQUMxMiByZXNvbHV0aW9uICovCisjZGVmaW5lIERBQzEyU1JFRjAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogREFDMTIgcmVmZXJlbmNlIGJpdCAwICovCisjZGVmaW5lIERBQzEyU1JFRjEgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogREFDMTIgcmVmZXJlbmNlIGJpdCAxICovCisKKyNkZWZpbmUgREFDMTJBTVBfMCAgICAgICAgICAgICAoMCoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgMDogb2ZmLCAgICAzLXN0YXRlICovCisjZGVmaW5lIERBQzEyQU1QXzEgICAgICAgICAgICAgKDEqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDE6IG9mZiwgICAgb2ZmICovCisjZGVmaW5lIERBQzEyQU1QXzIgICAgICAgICAgICAgKDIqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDI6IGxvdywgICAgbG93ICovCisjZGVmaW5lIERBQzEyQU1QXzMgICAgICAgICAgICAgKDMqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDM6IGxvdywgICAgbWVkaXVtICovCisjZGVmaW5lIERBQzEyQU1QXzQgICAgICAgICAgICAgKDQqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDQ6IGxvdywgICAgaGlnaCAqLworI2RlZmluZSBEQUMxMkFNUF81ICAgICAgICAgICAgICg1KjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciA1OiBtZWRpdW0sIG1lZGl1bSAqLworI2RlZmluZSBEQUMxMkFNUF82ICAgICAgICAgICAgICg2KjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciA2OiBtZWRpdW0sIGhpZ2ggKi8KKyNkZWZpbmUgREFDMTJBTVBfNyAgICAgICAgICAgICAoNyoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNzogaGlnaCwgICBoaWdoICovCisKKyNkZWZpbmUgREFDMTJMU0VMXzAgICAgICAgICAgICAoMCoweDA0MDB1KSAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCAwOiBkaXJlY3QgKi8KKyNkZWZpbmUgREFDMTJMU0VMXzEgICAgICAgICAgICAoMSoweDA0MDB1KSAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCAxOiBsYXRjaGVkIHdpdGggREFUICovCisjZGVmaW5lIERBQzEyTFNFTF8yICAgICAgICAgICAgKDIqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMjogbGF0Y2hlZCB3aXRoIHBvcy4gVGltZXJfQTMuT1VUMSAqLworI2RlZmluZSBEQUMxMkxTRUxfMyAgICAgICAgICAgICgzKjB4MDQwMHUpICAgIC8qIERBQzEyIGxvYWQgc2VsZWN0IDM6IGxhdGNoZWQgd2l0aCBwb3MuIFRpbWVyX0I3Lk9VVDEgKi8KKworI2RlZmluZSBEQUMxMlNSRUZfMCAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIERBQzEyIHJlZmVyZW5jZSAwOiBWcmVmKyAqLworI2RlZmluZSBEQUMxMlNSRUZfMSAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIERBQzEyIHJlZmVyZW5jZSAxOiBWcmVmKyAqLworI2RlZmluZSBEQUMxMlNSRUZfMiAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIERBQzEyIHJlZmVyZW5jZSAyOiBWZXJlZisgKi8KKyNkZWZpbmUgREFDMTJTUkVGXzMgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMzogVmVyZWYrICovCisKK1NGUl8xNkJJVChEQUMxMl8wREFUKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQUMxMl8wIERhdGEgKi8KK1NGUl8xNkJJVChEQUMxMl8xREFUKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQUMxMl8xIERhdGEgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRE1BCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19ETUFfM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRE1BQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIE1vZHVsZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgRE1BMFRTRUwwICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMCAqLworI2RlZmluZSBETUEwVFNFTDEgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IGJpdCAxICovCisjZGVmaW5lIERNQTBUU0VMMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgYml0IDIgKi8KKyNkZWZpbmUgRE1BMFRTRUwzICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMyAqLworI2RlZmluZSBETUExVFNFTDAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IGJpdCAwICovCisjZGVmaW5lIERNQTFUU0VMMSAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgYml0IDEgKi8KKyNkZWZpbmUgRE1BMVRTRUwyICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCBiaXQgMiAqLworI2RlZmluZSBETUExVFNFTDMgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IGJpdCAzICovCisjZGVmaW5lIERNQTJUU0VMMCAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgRE1BMlRTRUwxICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBETUEyVFNFTDIgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IGJpdCAyICovCisjZGVmaW5lIERNQTJUU0VMMyAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDMgKi8KKworI2RlZmluZSBETUEwVFNFTF8wICAgICAgICAgICAgICgwKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDA6ICBETUFfUkVRIChzdykqLworI2RlZmluZSBETUEwVFNFTF8xICAgICAgICAgICAgICgxKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcl9BIChUQUNDUjIuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF8yICAgICAgICAgICAgICgyKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDI6ICBUaW1lcl9CIChUQkNDUjIuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF8zICAgICAgICAgICAgICgzKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDM6ICBVQVJUMC9JMkMgcmVjZWl2ZSAqLworI2RlZmluZSBETUEwVFNFTF80ICAgICAgICAgICAgICg0KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDQ6ICBVQVJUMC9JMkMgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMFRTRUxfNSAgICAgICAgICAgICAoNSoweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCA1OiAgREFDMTJfMENUTC5EQUMxMklGRyAqLworI2RlZmluZSBETUEwVFNFTF82ICAgICAgICAgICAgICg2KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDY6ICBBREMxMiAoQURDMTJJRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzcgICAgICAgICAgICAgKDcqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgNzogIFRpbWVyX0EgKFRBQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzggICAgICAgICAgICAgKDgqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgODogIFRpbWVyX0IgKFRCQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzkgICAgICAgICAgICAgKDkqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgOTogIFVBUlQxIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMTAgICAgICAgICAgICAoMTAqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAxMDogVUFSVDEgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMTEgICAgICAgICAgICAoMTEqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAxMTogTXVsdGlwbGllciByZWFkeSAqLworI2RlZmluZSBETUEwVFNFTF8xNCAgICAgICAgICAgICgxNCoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE0OiBwcmV2aW91cyBETUEgY2hhbm5lbCBETUEySUZHICovCisjZGVmaW5lIERNQTBUU0VMXzE1ICAgICAgICAgICAgKDE1KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTU6IGV4dC4gVHJpZ2dlciAoRE1BRTApICovCisKKyNkZWZpbmUgRE1BMVRTRUxfMCAgICAgICAgICAgICAoMCoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAwOiAgRE1BX1JFUSAqLworI2RlZmluZSBETUExVFNFTF8xICAgICAgICAgICAgICgxKjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcl9BIENDUklGRy4yICovCisjZGVmaW5lIERNQTFUU0VMXzIgICAgICAgICAgICAgKDIqMHgwMDEwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjogIFRpbWVyX0IgQ0NSSUZHLjIgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMyAgICAgICAgICAgICAoMyoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAzOiAgVUFSVDAvSTJDIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMVRTRUxfNCAgICAgICAgICAgICAoNCoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCA0OiAgVUFSVDAvSTJDIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTFUU0VMXzUgICAgICAgICAgICAgKDUqMHgwMDEwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgNTogIERBQzEyLjBJRkcgKi8KKyNkZWZpbmUgRE1BMVRTRUxfNiAgICAgICAgICAgICAoNioweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCA2OiAgQURDMTIgKEFEQzEySUZHKSAqLworI2RlZmluZSBETUExVFNFTF83ICAgICAgICAgICAgICg3KjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDc6ICBUaW1lcl9BIChUQUNDUjAuSUZHKSAqLworI2RlZmluZSBETUExVFNFTF84ICAgICAgICAgICAgICg4KjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDg6ICBUaW1lcl9CIChUQkNDUjAuSUZHKSAqLworI2RlZmluZSBETUExVFNFTF85ICAgICAgICAgICAgICg5KjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDk6ICBVQVJUMSByZWNlaXZlICovCisjZGVmaW5lIERNQTFUU0VMXzEwICAgICAgICAgICAgKDEwKjB4MDAxMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMTA6IFVBUlQxIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTFUU0VMXzExICAgICAgICAgICAgKDExKjB4MDAxMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMTE6IE11bHRpcGxpZXIgcmVhZHkgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMTQgICAgICAgICAgICAoMTQqMHgwMDEwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAxNDogcHJldmlvdXMgRE1BIGNoYW5uZWwgRE1BMElGRyAqLworI2RlZmluZSBETUExVFNFTF8xNSAgICAgICAgICAgICgxNSoweDAwMTB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE1OiBleHQuIFRyaWdnZXIgKERNQUUwKSAqLworCisjZGVmaW5lIERNQTJUU0VMXzAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMDogIERNQV9SRVEgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMSAgICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxOiAgVGltZXJfQSBDQ1JJRkcuMiAqLworI2RlZmluZSBETUEyVFNFTF8yICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDI6ICBUaW1lcl9CIENDUklGRy4yICovCisjZGVmaW5lIERNQTJUU0VMXzMgICAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMzogIFVBUlQwL0kyQyByZWNlaXZlICovCisjZGVmaW5lIERNQTJUU0VMXzQgICAgICAgICAgICAgKDQqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgNDogIFVBUlQwL0kyQyB0cmFuc21pdCAqLworI2RlZmluZSBETUEyVFNFTF81ICAgICAgICAgICAgICg1KjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDU6ICBEQUMxMi4wSUZHICovCisjZGVmaW5lIERNQTJUU0VMXzYgICAgICAgICAgICAgKDYqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgNjogIEFEQzEyIChBREMxMklGRykgKi8KKyNkZWZpbmUgRE1BMlRTRUxfNyAgICAgICAgICAgICAoNyoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA3OiAgVGltZXJfQSAoVEFDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMlRTRUxfOCAgICAgICAgICAgICAoOCoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA4OiAgVGltZXJfQiAoVEJDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMlRTRUxfOSAgICAgICAgICAgICAoOSoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA5OiAgVUFSVDEgcmVjZWl2ZSAqLworI2RlZmluZSBETUEyVFNFTF8xMCAgICAgICAgICAgICgxMCoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDEwOiBVQVJUMSB0cmFuc21pdCAqLworI2RlZmluZSBETUEyVFNFTF8xMSAgICAgICAgICAgICgxMSoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDExOiBNdWx0aXBsaWVyIHJlYWR5ICovCisjZGVmaW5lIERNQTJUU0VMXzE0ICAgICAgICAgICAgKDE0KjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMTQ6IHByZXZpb3VzIERNQSBjaGFubmVsIERNQTFJRkcgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTUgICAgICAgICAgICAoMTUqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxNTogZXh0LiBUcmlnZ2VyIChETUFFMCkgKi8KKworU0ZSXzE2QklUKERNQUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBNb2R1bGUgQ29udHJvbCAxICovCisjZGVmaW5lIEVOTk1JICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRW5hYmxlIE5NSSBpbnRlcnJ1cHRpb24gb2YgRE1BICovCisjZGVmaW5lIFJPVU5EUk9CSU4gICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogUm91bmQtUm9iaW4gRE1BIGNoYW5uZWwgcHJpb3JpdGllcyAqLworI2RlZmluZSBETUFPTkZFVENIICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQSB0cmFuc2ZlciBvbiBpbnN0cnVjdGlvbiBmZXRjaCAqLworCitTRlJfMTZCSVQoRE1BMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMCBDb250cm9sICovCitTRlJfMTZCSVQoRE1BMUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMSBDb250cm9sICovCitTRlJfMTZCSVQoRE1BMkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMiBDb250cm9sICovCisKKyNkZWZpbmUgRE1BUkVRICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJbml0aWF0ZSBETUEgdHJhbnNmZXIgd2l0aCBETUFUU0VMICovCisjZGVmaW5lIERNQUFCT1JUICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRE1BIHRyYW5zZmVyIGFib3J0ZWQgYnkgTk1JICovCisjZGVmaW5lIERNQUlFICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRE1BIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgRE1BSUZHICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBETUEgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgRE1BRU4gICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBETUEgZW5hYmxlICovCisjZGVmaW5lIERNQUxFVkVMICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRE1BIGxldmVsIHNlbnNpdGl2ZSB0cmlnZ2VyIHNlbGVjdCAqLworI2RlZmluZSBETUFTUkNCWVRFICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIERNQSBzb3VyY2UgYnl0ZSAqLworI2RlZmluZSBETUFEU1RCWVRFICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIERNQSBkZXN0aW5hdGlvbiBieXRlICovCisjZGVmaW5lIERNQVNSQ0lOQ1IwICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogRE1BIHNvdXJjZSBpbmNyZW1lbnQgYml0IDAgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUjEgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCBiaXQgMSAqLworI2RlZmluZSBETUFEU1RJTkNSMCAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgYml0IDAgKi8KKyNkZWZpbmUgRE1BRFNUSU5DUjEgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IGJpdCAxICovCisjZGVmaW5lIERNQURUMCAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgYml0IDAgKi8KKyNkZWZpbmUgRE1BRFQxICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSBiaXQgMSAqLworI2RlZmluZSBETUFEVDIgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIGJpdCAyICovCisKKyNkZWZpbmUgRE1BU1dEVyAgICAgICAgICAgICAgICAoMCoweDAwNDB1KSAgICAvKiBETUEgdHJhbnNmZXI6IHNvdXJjZSB3b3JkIHRvIGRlc3RpbmF0aW9uIHdvcmQgKi8KKyNkZWZpbmUgRE1BU0JEVyAgICAgICAgICAgICAgICAoMSoweDAwNDB1KSAgICAvKiBETUEgdHJhbnNmZXI6IHNvdXJjZSBieXRlIHRvIGRlc3RpbmF0aW9uIHdvcmQgKi8KKyNkZWZpbmUgRE1BU1dEQiAgICAgICAgICAgICAgICAoMioweDAwNDB1KSAgICAvKiBETUEgdHJhbnNmZXI6IHNvdXJjZSB3b3JkIHRvIGRlc3RpbmF0aW9uIGJ5dGUgKi8KKyNkZWZpbmUgRE1BU0JEQiAgICAgICAgICAgICAgICAoMyoweDAwNDB1KSAgICAvKiBETUEgdHJhbnNmZXI6IHNvdXJjZSBieXRlIHRvIGRlc3RpbmF0aW9uIGJ5dGUgKi8KKworI2RlZmluZSBETUFTUkNJTkNSXzAgICAgICAgICAgICgwKjB4MDEwMHUpICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IDA6IHNvdXJjZSBhZGRyZXNzIHVuY2hhbmdlZCAqLworI2RlZmluZSBETUFTUkNJTkNSXzEgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IDE6IHNvdXJjZSBhZGRyZXNzIHVuY2hhbmdlZCAqLworI2RlZmluZSBETUFTUkNJTkNSXzIgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IDI6IHNvdXJjZSBhZGRyZXNzIGRlY3JlbWVudGVkICovCisjZGVmaW5lIERNQVNSQ0lOQ1JfMyAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogRE1BIHNvdXJjZSBpbmNyZW1lbnQgMzogc291cmNlIGFkZHJlc3MgaW5jcmVtZW50ZWQgKi8KKworI2RlZmluZSBETUFEU1RJTkNSXzAgICAgICAgICAgICgwKjB4MDQwMHUpICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgMDogZGVzdGluYXRpb24gYWRkcmVzcyB1bmNoYW5nZWQgKi8KKyNkZWZpbmUgRE1BRFNUSU5DUl8xICAgICAgICAgICAoMSoweDA0MDB1KSAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IDE6IGRlc3RpbmF0aW9uIGFkZHJlc3MgdW5jaGFuZ2VkICovCisjZGVmaW5lIERNQURTVElOQ1JfMiAgICAgICAgICAgKDIqMHgwNDAwdSkgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCAyOiBkZXN0aW5hdGlvbiBhZGRyZXNzIGRlY3JlbWVudGVkICovCisjZGVmaW5lIERNQURTVElOQ1JfMyAgICAgICAgICAgKDMqMHgwNDAwdSkgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCAzOiBkZXN0aW5hdGlvbiBhZGRyZXNzIGluY3JlbWVudGVkICovCisKKyNkZWZpbmUgRE1BRFRfMCAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSAwOiBzaW5nbGUgKi8KKyNkZWZpbmUgRE1BRFRfMSAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSAxOiBibG9jayAqLworI2RlZmluZSBETUFEVF8yICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDI6IGludGVybGVhdmVkICovCisjZGVmaW5lIERNQURUXzMgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgMzogaW50ZXJsZWF2ZWQgKi8KKyNkZWZpbmUgRE1BRFRfNCAgICAgICAgICAgICAgICAoNCoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSA0OiBzaW5nbGUsIHJlcGVhdCAqLworI2RlZmluZSBETUFEVF81ICAgICAgICAgICAgICAgICg1KjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDU6IGJsb2NrLCByZXBlYXQgKi8KKyNkZWZpbmUgRE1BRFRfNiAgICAgICAgICAgICAgICAoNioweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSA2OiBpbnRlcmxlYXZlZCwgcmVwZWF0ICovCisjZGVmaW5lIERNQURUXzcgICAgICAgICAgICAgICAgKDcqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgNzogaW50ZXJsZWF2ZWQsIHJlcGVhdCAqLworCitTRlJfMTZCSVQoRE1BMFNBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMCBTb3VyY2UgQWRkcmVzcyAqLworU0ZSXzE2QklUKERNQTBEQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgRGVzdGluYXRpb24gQWRkcmVzcyAqLworU0ZSXzE2QklUKERNQTBTWik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgVHJhbnNmZXIgU2l6ZSAqLworU0ZSXzE2QklUKERNQTFTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgU291cmNlIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUExREEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUExU1opOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIFRyYW5zZmVyIFNpemUgKi8KK1NGUl8xNkJJVChETUEyU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAyIFNvdXJjZSBBZGRyZXNzICovCitTRlJfMTZCSVQoRE1BMkRBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMiBEZXN0aW5hdGlvbiBBZGRyZXNzICovCitTRlJfMTZCSVQoRE1BMlNaKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMiBUcmFuc2ZlciBTaXplICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIERBQ0RNQV9WRUNUT1IgICAgICAgICAgICgwICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIERBQy9ETUEgKi8KKy8qI2RlZmluZSBEQUNETUFfSVNSKGZ1bmMpICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDAiKSAgKi8gLyogMHhGRkUwIERBQy9ETUEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgxICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUyIFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMSIpICAqLyAvKiAweEZGRTIgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIEFEQzEyX1ZFQ1RPUiAgICAgICAgICAgICg3ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIEFEQyAqLworLyojZGVmaW5lIEFEQzEyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNyIpICAqLyAvKiAweEZGRUUgQURDICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBUWF9WRUNUT1IgICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNBUlQwVFhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBSWF9WRUNUT1IgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBVU0FSVCAwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0FSVDBSWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtMiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTIsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MTV4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MTZ4LmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDE2eC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExOTg0ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDE2eC5oCkBAIC0wLDAgKzEsMTI2NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIFN0YW5kYXJkIHJlZ2lzdGVyIGFuZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cworKiBNU1A0MzAgbWljcm9jb250cm9sbGVyLgorKgorKiBUaGlzIGZpbGUgc3VwcG9ydHMgYXNzZW1ibGVyIGFuZCBDIGRldmVsb3BtZW50IGZvcgorKiBNU1A0MzB4MTZ4IGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDIuNworKgorKiBSZXYuIDIuMCwgRml4ZWQgZGVmaW5pdGlvbnMgZm9yIERNQQorKiBSZXYuIDIuMSwgQWxpZ25tZW50IG9mIGRlZmludGlvbnMgaW4gVXNlcnMgR3VpZGUgYW5kIG9mIHZlcnNpb24gbnVtYmVycworKiBSZXYuIDIuMiwgRml4ZWQgZGVmaW5pdGlvbnMgZm9yIEkyQworKiBSZXYuIDIuMjEsRml4ZWQgZGVmaW5pdGlvbnMgZm9yIEkyQyBmb3IgYXNzZW1ibGVyCisqIFJldi4gMi4zLCBGaXhlZCB0eXBlIGluIEFEQzEyIGJpdCBkZWZpbml0aW9ucyAocmVwbGFjZWQgQURDMTAgd2l0aCBBREMxMikKKyogICAgICAgICAgIEFkZGVkIFNWUworKiAgICAgICAgICAgQWRkZWQgRE1BIHJlcXVlc3QgZGVmaW5pdGlvbnMKKyogUmV2LiAyLjQsIFJlbW92ZWQgdW51c2VkIGRlZiBvZiBUQVNTRUwyIC8gVEJTU0VMMgorKiBSZXYuIDIuNSwgQWRkZWQgVkxEIGJpdHMgaW4gU1ZTIG1vZHVsZQorKiBSZXYuIDIuNiwgRml4ZWQgaW5jb3JyZWN0IGJpdHMgaW4gSTJDIFNUVCAod3Jvbmc6U1NUKSBhbmQgSTJDIHByZWZpeCB3YXMgbWlzc2luZyBhdCBzb21lIGJpdHMKKyogUmV2LiAyLjcsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHgxNngKKyNkZWZpbmUgX19tc3A0MzB4MTZ4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFUwSUUgICAgICAgICAgICAgICAgICAgSUUxICAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBVUlhJRTAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhJRTAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBVMElGRyAgICAgICAgICAgICAgICAgIElGRzEgICAgICAgICAgIC8qIFVBUlQwIEludGVycnVwdCBGbGFnIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVSWElGRzAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElGRzAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKE1FMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNb2R1bGUgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBNRSAgICAgICAgICAgICAgICAgICBNRTEgICAgICAgICAgICAvKiBVQVJUMCBNb2R1bGUgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWEUwICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWEUwICAgICAgICAgICAgICAgICAgKDB4ODApCisjZGVmaW5lIFVTUElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVTFJRSAgICAgICAgICAgICAgICAgICBJRTIgICAgICAgICAgICAvKiBVQVJUMSBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWElFMSAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVUWElFMSAgICAgICAgICAgICAgICAgKDB4MjApCisKK1NGUl84QklUKElGRzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAyICovCisjZGVmaW5lIFUxSUZHICAgICAgICAgICAgICAgICAgSUZHMiAgICAgICAgICAgLyogVUFSVDEgSW50ZXJydXB0IEZsYWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYSUZHMSAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVRYSUZHMSAgICAgICAgICAgICAgICAoMHgyMCkKKworU0ZSXzhCSVQoTUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1vZHVsZSBFbmFibGUgMiAqLworI2RlZmluZSBVMU1FICAgICAgICAgICAgICAgICAgIE1FMiAgICAgICAgICAgIC8qIFVBUlQxIE1vZHVsZSBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYRTEgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVRYRTEgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVVNQSUUxICAgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBIQVJEV0FSRSBNVUxUSVBMSUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19NUFlfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoTVBZKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTVBZUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQ1MpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChPUDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl8xNkJJVChSRVNMTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl8xNkJJVChSRVNISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgSGlnaCBXb3JkICovCitTRlJfMTZCSVQoU1VNRVhUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VtIEV4dGVuZCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDUvNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ2X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA1SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgSW5wdXQgKi8KK1NGUl84QklUKFA1T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgT3V0cHV0ICovCitTRlJfOEJJVChQNURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDVTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQVJUCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFV4Q1RMICovCisjZGVmaW5lIFBFTkEgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogUGFyaXR5IGVuYWJsZSAqLworI2RlZmluZSBQRVYgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBTUEIgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFN0b3AgQml0cyAwOm9uZSAvIDE6IHR3byAqLworI2RlZmluZSBDSEFSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIERhdGEgMDo3LWJpdHMgLyAxOjgtYml0cyAqLworI2RlZmluZSBMSVNURU4gICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFNZTkMgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVUFSVCAvIFNQSSBtb2RlICovCisjZGVmaW5lIE1NICAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTWFzdGVyIE1vZGUgb2ZmL29uICovCisjZGVmaW5lIFNXUlNUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNBUlQgU29mdHdhcmUgUmVzZXQgKi8KKworLyogVXhUQ1RMICovCisjZGVmaW5lIENLUEggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU1BJOiBDbG9jayBQaGFzZSAqLworI2RlZmluZSBDS1BMICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENsb2NrIFBvbGFyaXR5ICovCisjZGVmaW5lIFNTRUwxICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFNTRUwwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFVSWFNFICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVjZWl2ZSBTdGFydCBlZGdlIHNlbGVjdCAqLworI2RlZmluZSBUWFdBS0UgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFRYIFdha2UgdXAgbW9kZSAqLworI2RlZmluZSBTVEMgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNQSTogU1RDIGVuYWJsZSAwOm9uIC8gMTpvZmYgKi8KKyNkZWZpbmUgVFhFUFQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBUWCBCdWZmZXIgZW1wdHkgKi8KKworLyogVXhSQ1RMICovCisjZGVmaW5lIEZFICAgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRnJhbWUgRXJyb3IgKi8KKyNkZWZpbmUgUEUgICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQYXJpdHkgRXJyb3IgKi8KKyNkZWZpbmUgT0UgICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPdmVycnVuIEVycm9yICovCisjZGVmaW5lIEJSSyAgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgZGV0ZWN0ZWQgKi8KKyNkZWZpbmUgVVJYRUlFICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVSWFdJRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUlggV2FrZSB1cCBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFJYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUlggV2FrZSB1cCBkZXRlY3QgKi8KKyNkZWZpbmUgUlhFUlIgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSWCBFcnJvciBFcnJvciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQVJUIDAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VBUlQwX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFUwQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KK1NGUl84QklUKFUwVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFUwUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBNQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVTBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFUwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisKKyNkZWZpbmUgVUNUTDAgICAgICAgICAgICAgICAgICBVMENUTCAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVEwwICAgICAgICAgICAgICAgICBVMFRDVEwgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVEwwICAgICAgICAgICAgICAgICBVMFJDVEwgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTDAgICAgICAgICAgICAgICAgIFUwTUNUTCAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjAwICAgICAgICAgICAgICAgICAgVTBCUjAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxMCAgICAgICAgICAgICAgICAgIFUwQlIxICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUYwICAgICAgICAgICAgICAgICBVMFJYQlVGICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGMCAgICAgICAgICAgICAgICAgVTBUWEJVRiAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTDBfICAgICAgICAgICAgICAgICBVMENUTF8gICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVEwwXyAgICAgICAgICAgICAgICBVMFRDVExfICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVEwwXyAgICAgICAgICAgICAgICBVMFJDVExfICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTDBfICAgICAgICAgICAgICAgIFUwTUNUTF8gICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjAwXyAgICAgICAgICAgICAgICAgVTBCUjBfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxMF8gICAgICAgICAgICAgICAgIFUwQlIxXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUYwXyAgICAgICAgICAgICAgICBVMFJYQlVGXyAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGMF8gICAgICAgICAgICAgICAgVTBUWEJVRl8gICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTF8wICAgICAgICAgICAgICAgICBVMENUTCAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVExfMCAgICAgICAgICAgICAgICBVMFRDVEwgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVExfMCAgICAgICAgICAgICAgICBVMFJDVEwgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTF8wICAgICAgICAgICAgICAgIFUwTUNUTCAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjBfMCAgICAgICAgICAgICAgICAgVTBCUjAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxXzAgICAgICAgICAgICAgICAgIFUwQlIxICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUZfMCAgICAgICAgICAgICAgICBVMFJYQlVGICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGXzAgICAgICAgICAgICAgICAgVTBUWEJVRiAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTF8wXyAgICAgICAgICAgICAgICBVMENUTF8gICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVExfMF8gICAgICAgICAgICAgICBVMFRDVExfICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVExfMF8gICAgICAgICAgICAgICBVMFJDVExfICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTF8wXyAgICAgICAgICAgICAgIFUwTUNUTF8gICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjBfMF8gICAgICAgICAgICAgICAgVTBCUjBfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxXzBfICAgICAgICAgICAgICAgIFUwQlIxXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUZfMF8gICAgICAgICAgICAgICBVMFJYQlVGXyAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGXzBfICAgICAgICAgICAgICAgVTBUWEJVRl8gICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVCAxCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VQVJUMV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVMUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCitTRlJfOEJJVChVMVRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVMVJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KK1NGUl84QklUKFUxTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVTFCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFUxQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVMVJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVTFUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworCisjZGVmaW5lIFVDVEwxICAgICAgICAgICAgICAgICAgVTFDVEwgICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMSAgICAgICAgICAgICAgICAgVTFUQ1RMICAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMSAgICAgICAgICAgICAgICAgVTFSQ1RMICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwxICAgICAgICAgICAgICAgICBVMU1DVEwgICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMSAgICAgICAgICAgICAgICAgIFUxQlIwICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTEgICAgICAgICAgICAgICAgICBVMUJSMSAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMSAgICAgICAgICAgICAgICAgVTFSWEJVRiAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjEgICAgICAgICAgICAgICAgIFUxVFhCVUYgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVEwxXyAgICAgICAgICAgICAgICAgVTFDVExfICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMV8gICAgICAgICAgICAgICAgVTFUQ1RMXyAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMV8gICAgICAgICAgICAgICAgVTFSQ1RMXyAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwxXyAgICAgICAgICAgICAgICBVMU1DVExfICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMV8gICAgICAgICAgICAgICAgIFUxQlIwXyAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTFfICAgICAgICAgICAgICAgICBVMUJSMV8gICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMV8gICAgICAgICAgICAgICAgVTFSWEJVRl8gICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjFfICAgICAgICAgICAgICAgIFUxVFhCVUZfICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMSAgICAgICAgICAgICAgICAgVTFDVEwgICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzEgICAgICAgICAgICAgICAgVTFUQ1RMICAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzEgICAgICAgICAgICAgICAgVTFSQ1RMICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMSAgICAgICAgICAgICAgICBVMU1DVEwgICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzEgICAgICAgICAgICAgICAgIFUxQlIwICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8xICAgICAgICAgICAgICAgICBVMUJSMSAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzEgICAgICAgICAgICAgICAgVTFSWEJVRiAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8xICAgICAgICAgICAgICAgIFUxVFhCVUYgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMV8gICAgICAgICAgICAgICAgVTFDVExfICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzFfICAgICAgICAgICAgICAgVTFUQ1RMXyAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzFfICAgICAgICAgICAgICAgVTFSQ1RMXyAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMV8gICAgICAgICAgICAgICBVMU1DVExfICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzFfICAgICAgICAgICAgICAgIFUxQlIwXyAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8xXyAgICAgICAgICAgICAgICBVMUJSMV8gICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzFfICAgICAgICAgICAgICAgVTFSWEJVRl8gICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8xXyAgICAgICAgICAgICAgIFUxVFhCVUZfICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQwICBJMkMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0kyQ19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKEkyQ0lFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBBTElFICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEFyYml0cmF0aW9uIGxvc3QgKi8KKyNkZWZpbmUgTkFDS0lFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBObyBhY2tub3dsZWRnZSAqLworI2RlZmluZSBPQUlFICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE93biBhZGRyZXNzICovCisjZGVmaW5lIEFSRFlJRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQWNjZXNzIHJlYWR5IChvcGVhdGlvbiBjb21wbGV0ZSkgKi8KKyNkZWZpbmUgUlhSRFlJRSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBSZWNlaXZlIHJlYWR5IChkYXRhIHJlY2VpdmVkKSAqLworI2RlZmluZSBUWFJEWUlFICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFRyYW5zbWl0IHJlYWR5ICh0cmFuc21pdCByZWdpc3RlciBlbXB0eSkgKi8KKyNkZWZpbmUgR0NJRSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBHZW5lcmFsIGNhbGwgKi8KKyNkZWZpbmUgU1RUSUUgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTdGFydCBjb25kaXRpb24gKi8KKworU0ZSXzhCSVQoSTJDSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEkyQyBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBBTElGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEFyYml0cmF0aW9uIGxvc3QgKi8KKyNkZWZpbmUgTkFDS0lGRyAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBObyBhY2tub3dsZWRnZSAqLworI2RlZmluZSBPQUlGRyAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE93biBhZGRyZXNzICovCisjZGVmaW5lIEFSRFlJRkcgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQWNjZXNzIHJlYWR5IChvcGVhdGlvbiBjb21wbGV0ZSkgKi8KKyNkZWZpbmUgUlhSRFlJRkcgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBSZWNlaXZlIHJlYWR5IChkYXRhIHJlY2VpdmVkKSAqLworI2RlZmluZSBUWFJEWUlGRyAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFRyYW5zbWl0IHJlYWR5ICh0cmFuc21pdCByZWdpc3RlciBlbXB0eSkgKi8KKyNkZWZpbmUgR0NJRkcgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBHZW5lcmFsIGNhbGwgKi8KKyNkZWZpbmUgU1RUSUZHICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTdGFydCBjb25kaXRpb24gKi8KKworU0ZSXzhCSVQoSTJDTkRBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEkyQyBEYXRhIENvdW50ICovCisKKy8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBJMkNFTiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEkyQyBlbmFibGUgKi8KKyNkZWZpbmUgTVNUICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJMkMgbWFzdGVyICovCisjZGVmaW5lIFhBICAgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSTJDIGV4dGVuZGVkIGFkZHJlc3NpbmcgKi8KKyNkZWZpbmUgSTJDICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0FSVCBJMkMgKi8KKyNkZWZpbmUgVFhETUFFTiAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBUcmFuc21pdCBETUEgZW5hYmxlICovCisjZGVmaW5lIFJYRE1BRU4gICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogUmVjZWl2ZSBETUEgZW5hYmxlICovCisKK1NGUl84QklUKEkyQ1RDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgVHJhbnNmZXIgQ29udHJvbCAqLworI2RlZmluZSBJMkNTVFQgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFN0YXJ0IGJpdCAqLworI2RlZmluZSBJMkNTVFAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFN0b3AgYml0ICovCisjZGVmaW5lIEkyQ1NUQiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3RhcnQgYnl0ZSBtb2RlICovCisjZGVmaW5lIEkyQ1RSWCAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVHJhbnNtaXQgKi8KKyNkZWZpbmUgSTJDU1NFTDAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDbG9jayBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgSTJDU1NFTDEgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDbG9jayBzZWxlY3QgYml0IDEgKi8KKyNkZWZpbmUgSTJDUk0gICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBSZXBlYXQgbW9kZSAqLworI2RlZmluZSBJMkNXT1JEICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFdvcmQgZGF0YSBtb2RlICovCisKKyNkZWZpbmUgSTJDU1NFTF8wICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBJMkMgY2xvY2sgc2VsZWN0IDA6IFVDTEsgKi8KKyNkZWZpbmUgSTJDU1NFTF8xICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBJMkMgY2xvY2sgc2VsZWN0IDE6IEFDTEsgKi8KKyNkZWZpbmUgSTJDU1NFTF8yICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBJMkMgY2xvY2sgc2VsZWN0IDI6IFNNQ0xLICovCisjZGVmaW5lIEkyQ1NTRUxfMyAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogSTJDIGNsb2NrIHNlbGVjdCAzOiBTTUNMSyAqLworCisjZGVmaW5lIEkyQ01NXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTWFzdGVyIG1vZGUgMCAqLworI2RlZmluZSBJMkNNTV8xICAgICAgICAgICAgICAgIChJMkNTVFQpICAgICAgIC8qIE1hc3RlciBtb2RlIDEgKi8KKyNkZWZpbmUgSTJDTU1fMiAgICAgICAgICAgICAoSTJDU1RQK0kyQ1NUVCkgLyogTWFzdGVyIG1vZGUgMiAqLworI2RlZmluZSBJMkNNTV8zICAgICAgICAgICAgICAgIChJMkNSTStJMkNTVFQpIC8qIE1hc3RlciBtb2RlIDMgKi8KKyNkZWZpbmUgSTJDTU1fNCAgICAgICAgICAgICAgICAoSTJDU1RQKSAgICAgICAvKiBNYXN0ZXIgbW9kZSA0ICovCisKK1NGUl84QklUKEkyQ0RDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgRGF0YSBDb250cm9sICovCisjZGVmaW5lIEkyQ0JCICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQnVzIGJ1c3kgKi8KKyNkZWZpbmUgSTJDUlhPVlIgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSZWNlaXZlciBvdmVycnVuICovCisjZGVmaW5lIEkyQ1RYVURGICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVHJhbnNtaXQgdW5kZXJmbG93ICovCisjZGVmaW5lIEkyQ1NCRCAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVjZWl2ZWQgYnl0ZSAqLworI2RlZmluZSBJMkNTQ0xMT1cgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFNDTCBiZWluZyBoZWxkIGxvdyAqLworI2RlZmluZSBJMkNCVVNZICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEkyQyBCdXN5IEZsYWcgKi8KKworU0ZSXzhCSVQoSTJDUFNDKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEkyQyBQcmUtc2NhbGVyICovCitTRlJfOEJJVChJMkNTQ0xIKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSTJDIFNDTCBIaWdoICovCitTRlJfOEJJVChJMkNTQ0xMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSTJDIFNDTCBMb3cgKi8KK1NGUl84QklUKEkyQ0RSQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgRGF0YSBmb3IgQnl0ZSBhY2Nlc3MgKi8KK1NGUl8xNkJJVChJMkNEUlcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgRGF0YSBmb3IgV29yZCBhY2Nlc3MgKi8KKworU0ZSXzE2QklUKEkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAqLworU0ZSXzE2QklUKEkyQ1NBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzICovCisKK1NGUl8xNkJJVChJMkNJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJMkMgSW50ZXJydXB0IFZlY3RvciAqLworI2RlZmluZSBJMkNJVl9OT05FICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEkyQyBpbnRlcnJ1cHQgdmVjdG9yOiBObyBpbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBJMkNJVl9BTCAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBpbnRlcnJ1cHQgdmVjdG9yOiBBcmJpdHJhdGlvbiBsb3N0IChBTElGRykgKi8KKyNkZWZpbmUgSTJDSVZfTkFDSyAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgaW50ZXJydXB0IHZlY3RvcjogTm8gYWNrbm93bGVkZ2UgKE5BQ0tJRkcpICovCisjZGVmaW5lIEkyQ0lWX09BICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogSTJDIGludGVycnVwdCB2ZWN0b3I6IE93biBhZGRyZXNzIChPQUlGRykgKi8KKyNkZWZpbmUgSTJDSVZfQVJEWSAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBJMkMgaW50ZXJydXB0IHZlY3RvcjogQWNjZXNzIHJlYWR5IChBUkRZSUZHKSAqLworI2RlZmluZSBJMkNJVl9SWFJEWSAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIEkyQyBpbnRlcnJ1cHQgdmVjdG9yOiBSZWNlaXZlIHJlYWR5IChSWFJEWUlGRykgKi8KKyNkZWZpbmUgSTJDSVZfVFhSRFkgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBJMkMgaW50ZXJydXB0IHZlY3RvcjogVHJhbnNtaXQgcmVhZHkgKFRYUkRZSUZHKSAqLworI2RlZmluZSBJMkNJVl9HQyAgICAgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIEkyQyBpbnRlcnJ1cHQgdmVjdG9yOiBHZW5lcmFsIGNhbGwgKEdDSUZHKSAqLworI2RlZmluZSBJMkNJVl9TVFQgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBpbnRlcnJ1cHQgdmVjdG9yOiBTdGFydCBjb25kaXRpb24gKFNUVElGRykgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEI3CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQjdfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQkNDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDMgKi8KK1NGUl8xNkJJVChUQkNDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDQgKi8KK1NGUl8xNkJJVChUQkNDVEw1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDUgKi8KK1NGUl8xNkJJVChUQkNDVEw2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDYgKi8KK1NGUl8xNkJJVChUQlIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCICovCitTRlJfMTZCSVQoVEJDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRCQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQkNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAyICovCitTRlJfMTZCSVQoVEJDQ1IzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMyAqLworU0ZSXzE2QklUKFRCQ0NSNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDQgKi8KK1NGUl8xNkJJVChUQkNDUjUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSA1ICovCitTRlJfMTZCSVQoVEJDQ1I2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgNiAqLworCisjZGVmaW5lIFRCQ0xHUlAxICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBUQkNMR1JQMCAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKyNkZWZpbmUgQ05UTDEgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAxICovCisjZGVmaW5lIENOVEwwICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMCAqLworI2RlZmluZSBUQlNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAxICovCisjZGVmaW5lIFRCU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDAgKi8KKyNkZWZpbmUgVEJDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBCIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEJJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEJJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgU0hSMSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFNIUjAgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworCisjZGVmaW5lIFRCU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBUQkNMSyAqLworI2RlZmluZSBUQlNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogQUNMSyAgKi8KKyNkZWZpbmUgVEJTU0VMXzIgICAgICAgICAgICAgICAoMioweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFNNQ0xLICovCisjZGVmaW5lIFRCU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBJTkNMSyAqLworI2RlZmluZSBDTlRMXzAgICAgICAgICAgICAgICAgICgwKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxNiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8xICAgICAgICAgICAgICAgICAoMSoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTIgYml0ICovCisjZGVmaW5lIENOVExfMiAgICAgICAgICAgICAgICAgKDIqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEwIGJpdCAqLworI2RlZmluZSBDTlRMXzMgICAgICAgICAgICAgICAgICgzKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAgOCBiaXQgKi8KKyNkZWZpbmUgU0hSXzAgICAgICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFNIUl8xICAgICAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBTSFJfMiAgICAgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgU0hSXzMgICAgICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworI2RlZmluZSBUQkNMR1JQXzAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgVEJDTEdSUF8xICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFRCQ0xHUlBfMiAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBUQkNMR1JQXzMgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisKKy8qIEFkZGl0aW9uYWwgVGltZXIgQiBDb250cm9sIFJlZ2lzdGVyIGJpdHMgYXJlIGRlZmluZWQgaW4gVGltZXIgQSAqLworI2RlZmluZSBDTExEMSAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBDTExEMCAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSMSAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIFNMU0hSMCAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFJfMCAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBTTFNIUl8xICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIFNMU0hSXzIgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIFNMU0hSXzMgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisjZGVmaW5lIENMTERfMCAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgQ0xMRF8xICAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBDTExEXzIgICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBDTExEXzMgICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworLyogVEI3SVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEJJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQklWX1RCQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRCQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRCQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSMyAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFRCQ0NSM19DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSNCAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFRCQ0NSNF9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSNSAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRCQ0NSM19DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSNiAgICAgICAgICAgICgweDAwMEMpICAgICAgIC8qIFRCQ0NSNF9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCSUZHICAgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFRCSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQmFzaWMgQ2xvY2sgTW9kdWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CQVNJQ19DTE9DS19fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoRENPQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDTyBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworU0ZSXzhCSVQoQkNTQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDEgKi8KK1NGUl84QklUKEJDU0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAyICovCisKKyNkZWZpbmUgTU9EMCAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAwICovCisjZGVmaW5lIE1PRDEgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMSAqLworI2RlZmluZSBNT0QyICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDIgKi8KKyNkZWZpbmUgTU9EMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAzICovCisjZGVmaW5lIE1PRDQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgNCAqLworI2RlZmluZSBEQ08wICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgRENPMSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIERDTzIgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMiAqLworCisjZGVmaW5lIFJTRUwwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIFJTRUwxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIFJTRUwyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIFhUNVYgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWFQ1ViBzaG91bGQgYWx3YXlzIGJlIHJlc2V0ICovCisjZGVmaW5lIERJVkEwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWQTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBYVFMgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExGWFRDTEsgMDpMb3cgRnJlcS4gLyAxOiBIaWdoIEZyZXEuICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRW5hYmxlIFhUMkNMSyAqLworCisjZGVmaW5lIERJVkFfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVkFfMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVkFfMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVkFfMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRENPUiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBFbmFibGUgRXh0ZXJuYWwgUmVzaXN0b3IgOiAxICovCisjZGVmaW5lIERJVlMwICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVlMxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCAwOkRDT0NMSyAvIDE6WFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgRElWTTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZNMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTE0wICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0VMTTEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMSAqLworCisjZGVmaW5lIERJVlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZTXzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWU18yICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVlNfMyAgICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERJVk1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVk1fMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVk1fMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVk1fMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgU0VMTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMDogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMSAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDE6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAyOiBYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBTRUxNXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAzOiBMRlhUQ0xLICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQnJvd24tT3V0LCBTdXBwbHkgVm9sdGFnZSBTdXBlcnZpc2lvbiAoU1ZTKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfU1ZTX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU1ZTQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNWUyBDb250cm9sICovCisjZGVmaW5lIFNWU0ZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogU1ZTIEZsYWcgKi8KKyNkZWZpbmUgU1ZTT1AgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVlMgb3V0cHV0IChyZWFkIG9ubHkpICovCisjZGVmaW5lIFNWU09OICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3dpdGNoZXMgdGhlIFNWUyBvbi9vZmYgKi8KKyNkZWZpbmUgUE9ST04gICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBFbmFibGUgUE9SIEdlbmVyYXRpb24gaWYgTG93IFZvbHRhZ2UgKi8KKyNkZWZpbmUgVkxEMCAgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxEMSAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVkxEMiAgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVkxEMyAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworI2RlZmluZSBWTERPTiAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTERPRkYgICAgICAgICAgICAgICAgICgweDAwKQorI2RlZmluZSBWTERfMV84ViAgICAgICAgICAgICAgICgweDEwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29tcGFyYXRvciBBCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19DT01QQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChDQUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQ0FDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDIgKi8KK1NGUl84QklUKENBUEQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgUG9ydCBEaXNhYmxlICovCisKKyNkZWZpbmUgQ0FJRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIENBSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIENBSUVTICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBJbnQuIEVkZ2UgU2VsZWN0OiAwOnJpc2luZyAvIDE6ZmFsbGluZyAqLworI2RlZmluZSBDQU9OICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgZW5hYmxlICovCisjZGVmaW5lIENBUkVGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ0FSRUYxICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBDQVJTRUwgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIEVuYWJsZSAqLworI2RlZmluZSBDQUVYICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRXhjaGFuZ2UgSW5wdXRzICovCisKKyNkZWZpbmUgQ0FSRUZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMCA6IE9mZiAqLworI2RlZmluZSBDQVJFRl8xICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAxIDogMC4yNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMiA6IDAuNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMyA6IFZ0Ki8KKworI2RlZmluZSBDQU9VVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgT3V0cHV0ICovCisjZGVmaW5lIENBRiAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBFbmFibGUgT3V0cHV0IEZpbHRlciAqLworI2RlZmluZSBQMkNBMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0EwIDogMSAqLworI2RlZmluZSBQMkNBMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0ExIDogMSAqLworI2RlZmluZSBDQUNUTDI0ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBDQUNUTDI1ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBDQUNUTDI2ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBDQUNUTDI3ICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIENBUEQwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4wICovCisjZGVmaW5lIENBUEQxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4xICovCisjZGVmaW5lIENBUEQyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4yICovCisjZGVmaW5lIENBUEQzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4zICovCisjZGVmaW5lIENBUEQ0ICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC40ICovCisjZGVmaW5lIENBUEQ1ICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC41ICovCisjZGVmaW5lIENBUEQ2ICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC42ICovCisjZGVmaW5lIENBUEQ3ICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC43ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQURDMTIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0FEQzEyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChBREMxMkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChBREMxMkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChBREMxMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzE2QklUKEFEQzEySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl8xNkJJVChBREMxMklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KKworI2RlZmluZSBBREMxMk1FTV8gICAgICAgICAgICAgICgweDAxNDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgQURDMTJNRU0gICAgICAgICAgICAgICAoQURDMTJNRU1fKSAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIEFEQzEyTUVNICAgICAgICAgICAgICAgKChpbnQqKSAgICAgICAgQURDMTJNRU1fKSAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl8xNkJJVChBREMxMk1FTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAwICovCitTRlJfMTZCSVQoQURDMTJNRU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDIgKi8KK1NGUl8xNkJJVChBREMxMk1FTTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAzICovCitTRlJfMTZCSVQoQURDMTJNRU00KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNNSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDUgKi8KK1NGUl8xNkJJVChBREMxMk1FTTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA2ICovCitTRlJfMTZCSVQoQURDMTJNRU03KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNyAqLworU0ZSXzE2QklUKEFEQzEyTUVNOCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDggKi8KK1NGUl8xNkJJVChBREMxMk1FTTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA5ICovCitTRlJfMTZCSVQoQURDMTJNRU0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTAgKi8KK1NGUl8xNkJJVChBREMxMk1FTTExKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEyICovCitTRlJfMTZCSVQoQURDMTJNRU0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTMgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE0KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDE1ICovCisKKyNkZWZpbmUgQURDMTJNQ1RMXyAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIEFEQzEyTUNUTCAgICAgICAgICAgICAgKEFEQzEyTUNUTF8pICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBBREMxMk1DVEwgICAgICAgICAgICAgICgoY2hhciopICAgICAgIEFEQzEyTUNUTF8pIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoQURDMTJNQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDAgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxICovCitTRlJfOEJJVChBREMxMk1DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDMgKi8KK1NGUl84QklUKEFEQzEyTUNUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA0ICovCitTRlJfOEJJVChBREMxMk1DVEw1KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDYgKi8KK1NGUl84QklUKEFEQzEyTUNUTDcpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA3ICovCitTRlJfOEJJVChBREMxMk1DVEw4KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgOCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMOSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDkgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTEpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDExICovCitTRlJfOEJJVChBREMxMk1DVEwxMik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTIgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEzKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDE0ICovCitTRlJfOEJJVChBREMxMk1DVEwxNSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTUgKi8KKworLyogQURDMTJDVEwwICovCisjZGVmaW5lIEFEQzEyU0MgICAgICAgICAgICAgICAgKDB4MDAxKSAgICAgICAgLyogQURDMTIgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBFTkMgICAgICAgICAgICAgICAgICAgICgweDAwMikgICAgICAgIC8qIEFEQzEyIEVuYWJsZSBDb252ZXJzaW9uICovCisjZGVmaW5lIEFEQzEyVE9WSUUgICAgICAgICAgICAgKDB4MDA0KSAgICAgICAgLyogQURDMTIgVGltZXIgT3ZlcmZsb3cgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBBREMxMk9WSUUgICAgICAgICAgICAgICgweDAwOCkgICAgICAgIC8qIEFEQzEyIE92ZXJmbG93IGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQURDMTJPTiAgICAgICAgICAgICAgICAoMHgwMTApICAgICAgICAvKiBBREMxMiBPbi9lbmFibGUgKi8KKyNkZWZpbmUgUkVGT04gICAgICAgICAgICAgICAgICAoMHgwMjApICAgICAgICAvKiBBREMxMiBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgUkVGMl81ViAgICAgICAgICAgICAgICAoMHgwNDApICAgICAgICAvKiBBREMxMiBSZWYgMDoxLjVWIC8gMToyLjVWICovCisjZGVmaW5lIE1TQyAgICAgICAgICAgICAgICAgICAgKDB4MDgwKSAgICAgICAgLyogQURDMTIgTXVsdGlwbGUgU2FtcGxlQ29udmVyc2lvbiAqLworI2RlZmluZSBTSFQwMCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0hUMDEgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAxICovCisjZGVmaW5lIFNIVDAyICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMiAqLworI2RlZmluZSBTSFQwMyAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDMgKi8KKyNkZWZpbmUgU0hUMTAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAwICovCisjZGVmaW5lIFNIVDExICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMSBTZWxlY3QgMSAqLworI2RlZmluZSBTSFQxMiAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDIgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0hUMTMgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAzIFNlbGVjdCAzICovCisjZGVmaW5lIE1TSCAgICAgICAgICAgICAgICAgICAgKDB4MDgwKQorCisjZGVmaW5lIFNIVDBfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8yICAgICAgICAgICAgICAgICAoMioweDEwMHUpCisjZGVmaW5lIFNIVDBfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDB1KQorI2RlZmluZSBTSFQwXzQgICAgICAgICAgICAgICAgICg0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF81ICAgICAgICAgICAgICAgICAoNSoweDEwMHUpCisjZGVmaW5lIFNIVDBfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDB1KQorI2RlZmluZSBTSFQwXzcgICAgICAgICAgICAgICAgICg3KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF84ICAgICAgICAgICAgICAgICAoOCoweDEwMHUpCisjZGVmaW5lIFNIVDBfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEwICAgICAgICAgICAgICAgICgxMCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEzICAgICAgICAgICAgICAgICgxMyoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDB1KQorCisjZGVmaW5lIFNIVDFfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV80ICAgICAgICAgICAgICAgICAoNCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzUgICAgICAgICAgICAgICAgICg1KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV83ICAgICAgICAgICAgICAgICAoNyoweDEwMDB1KQorI2RlZmluZSBTSFQxXzggICAgICAgICAgICAgICAgICg4KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMCAgICAgICAgICAgICAgICAoMTAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMSAgICAgICAgICAgICAgICAoMTEqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMyAgICAgICAgICAgICAgICAoMTMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNCAgICAgICAgICAgICAgICAoMTQqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDAwdSkKKworLyogQURDMTJDVEwxICovCisjZGVmaW5lIEFEQzEyQlVTWSAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgQnVzeSAqLworI2RlZmluZSBDT05TRVEwICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ09OU0VRMSAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyU1NFTDAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyU1NFTDEgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMkRJVjEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJESVYyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAyICovCisjZGVmaW5lIElTU0ggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTIgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBTSFAgICAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFB1bHNlIE1vZGUgKi8KKyNkZWZpbmUgU0hTMCAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBTSFMxICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIENTVEFSVEFERDAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDAgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMSAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMSAqLworI2RlZmluZSBDU1RBUlRBREQyICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAyICovCisjZGVmaW5lIENTVEFSVEFERDMgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDMgKi8KKworI2RlZmluZSBDT05TRVFfMCAgICAgICAgICAgICAgICgwKjJ1KQorI2RlZmluZSBDT05TRVFfMSAgICAgICAgICAgICAgICgxKjJ1KQorI2RlZmluZSBDT05TRVFfMiAgICAgICAgICAgICAgICgyKjJ1KQorI2RlZmluZSBDT05TRVFfMyAgICAgICAgICAgICAgICgzKjJ1KQorI2RlZmluZSBBREMxMlNTRUxfMCAgICAgICAgICAgICgwKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMSAgICAgICAgICAgICgxKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMiAgICAgICAgICAgICgyKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMyAgICAgICAgICAgICgzKjh1KQorI2RlZmluZSBBREMxMkRJVl8wICAgICAgICAgICAgICgwKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8xICAgICAgICAgICAgICgxKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8yICAgICAgICAgICAgICgyKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8zICAgICAgICAgICAgICgzKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl80ICAgICAgICAgICAgICg0KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl81ICAgICAgICAgICAgICg1KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl82ICAgICAgICAgICAgICg2KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl83ICAgICAgICAgICAgICg3KjB4MjB1KQorI2RlZmluZSBTSFNfMCAgICAgICAgICAgICAgICAgICgwKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzEgICAgICAgICAgICAgICAgICAoMSoweDQwMHUpCisjZGVmaW5lIFNIU18yICAgICAgICAgICAgICAgICAgKDIqMHg0MDB1KQorI2RlZmluZSBTSFNfMyAgICAgICAgICAgICAgICAgICgzKjB4NDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMSAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8yICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzMgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNCAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF81ICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzYgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNyAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF84ICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzkgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTEgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTIgICAgICAgICAgICgxMioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTMgICAgICAgICAgICgxMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTQgICAgICAgICAgICgxNCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTUgICAgICAgICAgICgxNSoweDEwMDB1KQorCisvKiBBREMxMk1DVEx4ICovCisjZGVmaW5lIElOQ0gwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgSU5DSDEgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBJTkNIMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIElOQ0gzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDMgKi8KKyNkZWZpbmUgU1JFRjAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAwICovCisjZGVmaW5lIFNSRUYxICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMSAqLworI2RlZmluZSBTUkVGMiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDIgKi8KKyNkZWZpbmUgRU9TICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBFbmQgb2YgU2VxdWVuY2UgKi8KKworI2RlZmluZSBJTkNIXzAgICAgICAgICAgICAgICAgICgwKQorI2RlZmluZSBJTkNIXzEgICAgICAgICAgICAgICAgICgxKQorI2RlZmluZSBJTkNIXzIgICAgICAgICAgICAgICAgICgyKQorI2RlZmluZSBJTkNIXzMgICAgICAgICAgICAgICAgICgzKQorI2RlZmluZSBJTkNIXzQgICAgICAgICAgICAgICAgICg0KQorI2RlZmluZSBJTkNIXzUgICAgICAgICAgICAgICAgICg1KQorI2RlZmluZSBJTkNIXzYgICAgICAgICAgICAgICAgICg2KQorI2RlZmluZSBJTkNIXzcgICAgICAgICAgICAgICAgICg3KQorI2RlZmluZSBJTkNIXzggICAgICAgICAgICAgICAgICg4KQorI2RlZmluZSBJTkNIXzkgICAgICAgICAgICAgICAgICg5KQorI2RlZmluZSBJTkNIXzEwICAgICAgICAgICAgICAgICgxMCkKKyNkZWZpbmUgSU5DSF8xMSAgICAgICAgICAgICAgICAoMTEpCisjZGVmaW5lIElOQ0hfMTIgICAgICAgICAgICAgICAgKDEyKQorI2RlZmluZSBJTkNIXzEzICAgICAgICAgICAgICAgICgxMykKKyNkZWZpbmUgSU5DSF8xNCAgICAgICAgICAgICAgICAoMTQpCisjZGVmaW5lIElOQ0hfMTUgICAgICAgICAgICAgICAgKDE1KQorCisjZGVmaW5lIFNSRUZfMCAgICAgICAgICAgICAgICAgKDAqMHgxMHUpCisjZGVmaW5lIFNSRUZfMSAgICAgICAgICAgICAgICAgKDEqMHgxMHUpCisjZGVmaW5lIFNSRUZfMiAgICAgICAgICAgICAgICAgKDIqMHgxMHUpCisjZGVmaW5lIFNSRUZfMyAgICAgICAgICAgICAgICAgKDMqMHgxMHUpCisjZGVmaW5lIFNSRUZfNCAgICAgICAgICAgICAgICAgKDQqMHgxMHUpCisjZGVmaW5lIFNSRUZfNSAgICAgICAgICAgICAgICAgKDUqMHgxMHUpCisjZGVmaW5lIFNSRUZfNiAgICAgICAgICAgICAgICAgKDYqMHgxMHUpCisjZGVmaW5lIFNSRUZfNyAgICAgICAgICAgICAgICAgKDcqMHgxMHUpCisKKy8qIEFEQzEySVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgQURDMTJJVl9OT05FICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBBREMxMklWX0FEQzEyT1ZJRkcgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyT1ZJRkcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMlRPVklGRyAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMlRPVklGRyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMCAgICAgICgweDAwMDYpICAgICAgIC8qIEFEQzEySUZHMCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMSAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEySUZHMSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMiAgICAgICgweDAwMEEpICAgICAgIC8qIEFEQzEySUZHMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMyAgICAgICgweDAwMEMpICAgICAgIC8qIEFEQzEySUZHMyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNCAgICAgICgweDAwMEUpICAgICAgIC8qIEFEQzEySUZHNCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNSAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEySUZHNSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNiAgICAgICgweDAwMTIpICAgICAgIC8qIEFEQzEySUZHNiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNyAgICAgICgweDAwMTQpICAgICAgIC8qIEFEQzEySUZHNyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOCAgICAgICgweDAwMTYpICAgICAgIC8qIEFEQzEySUZHOCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOSAgICAgICgweDAwMTgpICAgICAgIC8qIEFEQzEySUZHOSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTAgICAgICgweDAwMUEpICAgICAgIC8qIEFEQzEySUZHMTAgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzExICAgICAoMHgwMDFDKSAgICAgICAvKiBBREMxMklGRzExICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMiAgICAgKDB4MDAxRSkgICAgICAgLyogQURDMTJJRkcxMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTMgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEySUZHMTMgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzE0ICAgICAoMHgwMDIyKSAgICAgICAvKiBBREMxMklGRzE0ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxNSAgICAgKDB4MDAyNCkgICAgICAgLyogQURDMTJJRkcxNSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERBQzEyCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19EQUMxMl8yX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoREFDMTJfMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMCBDb250cm9sICovCitTRlJfMTZCSVQoREFDMTJfMUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMSBDb250cm9sICovCisKKyNkZWZpbmUgREFDMTJHUlAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEQUMxMiBncm91cCAqLworI2RlZmluZSBEQUMxMkVOQyAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERBQzEyIGVuYWJsZSBjb252ZXJzaW9uICovCisjZGVmaW5lIERBQzEySUZHICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogREFDMTIgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgREFDMTJJRSAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBEQUMxMiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIERBQzEyREYgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogREFDMTIgZGF0YSBmb3JtYXQgKi8KKyNkZWZpbmUgREFDMTJBTVAwICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJBTVAxICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDEgKi8KKyNkZWZpbmUgREFDMTJBTVAyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDIgKi8KKyNkZWZpbmUgREFDMTJJUiAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBEQUMxMiBpbnB1dCByZWZlcmVuY2UgYW5kIG91dHB1dCByYW5nZSAqLworI2RlZmluZSBEQUMxMkNBTE9OICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERBQzEyIGNhbGlicmF0aW9uICovCisjZGVmaW5lIERBQzEyTFNFTDAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJMU0VMMSAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBEQUMxMlJFUyAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIERBQzEyIHJlc29sdXRpb24gKi8KKyNkZWZpbmUgREFDMTJTUkVGMCAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBEQUMxMiByZWZlcmVuY2UgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJTUkVGMSAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBEQUMxMiByZWZlcmVuY2UgYml0IDEgKi8KKworI2RlZmluZSBEQUMxMkFNUF8wICAgICAgICAgICAgICgwKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAwOiBvZmYsICAgIDMtc3RhdGUgKi8KKyNkZWZpbmUgREFDMTJBTVBfMSAgICAgICAgICAgICAoMSoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgMTogb2ZmLCAgICBvZmYgKi8KKyNkZWZpbmUgREFDMTJBTVBfMiAgICAgICAgICAgICAoMioweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgMjogbG93LCAgICBsb3cgKi8KKyNkZWZpbmUgREFDMTJBTVBfMyAgICAgICAgICAgICAoMyoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgMzogbG93LCAgICBtZWRpdW0gKi8KKyNkZWZpbmUgREFDMTJBTVBfNCAgICAgICAgICAgICAoNCoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNDogbG93LCAgICBoaWdoICovCisjZGVmaW5lIERBQzEyQU1QXzUgICAgICAgICAgICAgKDUqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDU6IG1lZGl1bSwgbWVkaXVtICovCisjZGVmaW5lIERBQzEyQU1QXzYgICAgICAgICAgICAgKDYqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDY6IG1lZGl1bSwgaGlnaCAqLworI2RlZmluZSBEQUMxMkFNUF83ICAgICAgICAgICAgICg3KjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciA3OiBoaWdoLCAgIGhpZ2ggKi8KKworI2RlZmluZSBEQUMxMkxTRUxfMCAgICAgICAgICAgICgwKjB4MDQwMHUpICAgIC8qIERBQzEyIGxvYWQgc2VsZWN0IDA6IGRpcmVjdCAqLworI2RlZmluZSBEQUMxMkxTRUxfMSAgICAgICAgICAgICgxKjB4MDQwMHUpICAgIC8qIERBQzEyIGxvYWQgc2VsZWN0IDE6IGxhdGNoZWQgd2l0aCBEQVQgKi8KKyNkZWZpbmUgREFDMTJMU0VMXzIgICAgICAgICAgICAoMioweDA0MDB1KSAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCAyOiBsYXRjaGVkIHdpdGggcG9zLiBUaW1lcl9BMy5PVVQxICovCisjZGVmaW5lIERBQzEyTFNFTF8zICAgICAgICAgICAgKDMqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMzogbGF0Y2hlZCB3aXRoIHBvcy4gVGltZXJfQjcuT1VUMSAqLworCisjZGVmaW5lIERBQzEyU1JFRl8wICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogREFDMTIgcmVmZXJlbmNlIDA6IFZyZWYrICovCisjZGVmaW5lIERBQzEyU1JFRl8xICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogREFDMTIgcmVmZXJlbmNlIDE6IFZyZWYrICovCisjZGVmaW5lIERBQzEyU1JFRl8yICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogREFDMTIgcmVmZXJlbmNlIDI6IFZlcmVmKyAqLworI2RlZmluZSBEQUMxMlNSRUZfMyAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIERBQzEyIHJlZmVyZW5jZSAzOiBWZXJlZisgKi8KKworU0ZSXzE2QklUKERBQzEyXzBEQVQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERBQzEyXzAgRGF0YSAqLworU0ZSXzE2QklUKERBQzEyXzFEQVQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERBQzEyXzEgRGF0YSAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBETUEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0RNQV8zX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChETUFDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgTW9kdWxlIENvbnRyb2wgMCAqLworI2RlZmluZSBETUEwVFNFTDAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IGJpdCAwICovCisjZGVmaW5lIERNQTBUU0VMMSAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgYml0IDEgKi8KKyNkZWZpbmUgRE1BMFRTRUwyICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMiAqLworI2RlZmluZSBETUEwVFNFTDMgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IGJpdCAzICovCisjZGVmaW5lIERNQTFUU0VMMCAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgRE1BMVRTRUwxICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBETUExVFNFTDIgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IGJpdCAyICovCisjZGVmaW5lIERNQTFUU0VMMyAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgYml0IDMgKi8KKyNkZWZpbmUgRE1BMlRTRUwwICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCBiaXQgMCAqLworI2RlZmluZSBETUEyVFNFTDEgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IGJpdCAxICovCisjZGVmaW5lIERNQTJUU0VMMiAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDIgKi8KKyNkZWZpbmUgRE1BMlRTRUwzICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCBiaXQgMyAqLworCisjZGVmaW5lIERNQTBUU0VMXzAgICAgICAgICAgICAgKDAqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMDogIERNQV9SRVEgKHN3KSovCisjZGVmaW5lIERNQTBUU0VMXzEgICAgICAgICAgICAgKDEqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTogIFRpbWVyX0EgKFRBQ0NSMi5JRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzIgICAgICAgICAgICAgKDIqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMjogIFRpbWVyX0IgKFRCQ0NSMi5JRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzMgICAgICAgICAgICAgKDMqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMzogIFVBUlQwL0kyQyByZWNlaXZlICovCisjZGVmaW5lIERNQTBUU0VMXzQgICAgICAgICAgICAgKDQqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgNDogIFVBUlQwL0kyQyB0cmFuc21pdCAqLworI2RlZmluZSBETUEwVFNFTF81ICAgICAgICAgICAgICg1KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDU6ICBEQUMxMl8wQ1RMLkRBQzEySUZHICovCisjZGVmaW5lIERNQTBUU0VMXzYgICAgICAgICAgICAgKDYqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgNjogIEFEQzEyIChBREMxMklGRykgKi8KKyNkZWZpbmUgRE1BMFRTRUxfNyAgICAgICAgICAgICAoNyoweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCA3OiAgVGltZXJfQSAoVEFDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMFRTRUxfOCAgICAgICAgICAgICAoOCoweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCA4OiAgVGltZXJfQiAoVEJDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMFRTRUxfOSAgICAgICAgICAgICAoOSoweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCA5OiAgVUFSVDEgcmVjZWl2ZSAqLworI2RlZmluZSBETUEwVFNFTF8xMCAgICAgICAgICAgICgxMCoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDEwOiBVQVJUMSB0cmFuc21pdCAqLworI2RlZmluZSBETUEwVFNFTF8xMSAgICAgICAgICAgICgxMSoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDExOiBNdWx0aXBsaWVyIHJlYWR5ICovCisjZGVmaW5lIERNQTBUU0VMXzE0ICAgICAgICAgICAgKDE0KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTQ6IHByZXZpb3VzIERNQSBjaGFubmVsIERNQTJJRkcgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMTUgICAgICAgICAgICAoMTUqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAxNTogZXh0LiBUcmlnZ2VyIChETUFFMCkgKi8KKworI2RlZmluZSBETUExVFNFTF8wICAgICAgICAgICAgICgwKjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDA6ICBETUFfUkVRICovCisjZGVmaW5lIERNQTFUU0VMXzEgICAgICAgICAgICAgKDEqMHgwMDEwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMTogIFRpbWVyX0EgQ0NSSUZHLjIgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMiAgICAgICAgICAgICAoMioweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAyOiAgVGltZXJfQiBDQ1JJRkcuMiAqLworI2RlZmluZSBETUExVFNFTF8zICAgICAgICAgICAgICgzKjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDM6ICBVQVJUMC9JMkMgcmVjZWl2ZSAqLworI2RlZmluZSBETUExVFNFTF80ICAgICAgICAgICAgICg0KjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDQ6ICBVQVJUMC9JMkMgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMVRTRUxfNSAgICAgICAgICAgICAoNSoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCA1OiAgREFDMTIuMElGRyAqLworI2RlZmluZSBETUExVFNFTF82ICAgICAgICAgICAgICg2KjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDY6ICBBREMxMiAoQURDMTJJRkcpICovCisjZGVmaW5lIERNQTFUU0VMXzcgICAgICAgICAgICAgKDcqMHgwMDEwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgNzogIFRpbWVyX0EgKFRBQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTFUU0VMXzggICAgICAgICAgICAgKDgqMHgwMDEwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgODogIFRpbWVyX0IgKFRCQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTFUU0VMXzkgICAgICAgICAgICAgKDkqMHgwMDEwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgOTogIFVBUlQxIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMTAgICAgICAgICAgICAoMTAqMHgwMDEwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAxMDogVUFSVDEgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMTEgICAgICAgICAgICAoMTEqMHgwMDEwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAxMTogTXVsdGlwbGllciByZWFkeSAqLworI2RlZmluZSBETUExVFNFTF8xNCAgICAgICAgICAgICgxNCoweDAwMTB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE0OiBwcmV2aW91cyBETUEgY2hhbm5lbCBETUEwSUZHICovCisjZGVmaW5lIERNQTFUU0VMXzE1ICAgICAgICAgICAgKDE1KjB4MDAxMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMTU6IGV4dC4gVHJpZ2dlciAoRE1BRTApICovCisKKyNkZWZpbmUgRE1BMlRTRUxfMCAgICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAwOiAgRE1BX1JFUSAqLworI2RlZmluZSBETUEyVFNFTF8xICAgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcl9BIENDUklGRy4yICovCisjZGVmaW5lIERNQTJUU0VMXzIgICAgICAgICAgICAgKDIqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMjogIFRpbWVyX0IgQ0NSSUZHLjIgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMyAgICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAzOiAgVUFSVDAvSTJDIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMlRTRUxfNCAgICAgICAgICAgICAoNCoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA0OiAgVUFSVDAvSTJDIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTJUU0VMXzUgICAgICAgICAgICAgKDUqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgNTogIERBQzEyLjBJRkcgKi8KKyNkZWZpbmUgRE1BMlRTRUxfNiAgICAgICAgICAgICAoNioweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA2OiAgQURDMTIgKEFEQzEySUZHKSAqLworI2RlZmluZSBETUEyVFNFTF83ICAgICAgICAgICAgICg3KjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDc6ICBUaW1lcl9BIChUQUNDUjAuSUZHKSAqLworI2RlZmluZSBETUEyVFNFTF84ICAgICAgICAgICAgICg4KjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDg6ICBUaW1lcl9CIChUQkNDUjAuSUZHKSAqLworI2RlZmluZSBETUEyVFNFTF85ICAgICAgICAgICAgICg5KjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDk6ICBVQVJUMSByZWNlaXZlICovCisjZGVmaW5lIERNQTJUU0VMXzEwICAgICAgICAgICAgKDEwKjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMTA6IFVBUlQxIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTJUU0VMXzExICAgICAgICAgICAgKDExKjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMTE6IE11bHRpcGxpZXIgcmVhZHkgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTQgICAgICAgICAgICAoMTQqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxNDogcHJldmlvdXMgRE1BIGNoYW5uZWwgRE1BMUlGRyAqLworI2RlZmluZSBETUEyVFNFTF8xNSAgICAgICAgICAgICgxNSoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDE1OiBleHQuIFRyaWdnZXIgKERNQUUwKSAqLworCitTRlJfMTZCSVQoRE1BQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIE1vZHVsZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgRU5OTUkgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBFbmFibGUgTk1JIGludGVycnVwdGlvbiBvZiBETUEgKi8KKyNkZWZpbmUgUk9VTkRST0JJTiAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBSb3VuZC1Sb2JpbiBETUEgY2hhbm5lbCBwcmlvcml0aWVzICovCisjZGVmaW5lIERNQU9ORkVUQ0ggICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRE1BIHRyYW5zZmVyIG9uIGluc3RydWN0aW9uIGZldGNoICovCisKK1NGUl8xNkJJVChETUEwQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAwIENvbnRyb2wgKi8KK1NGUl8xNkJJVChETUExQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIENvbnRyb2wgKi8KK1NGUl8xNkJJVChETUEyQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAyIENvbnRyb2wgKi8KKworI2RlZmluZSBETUFSRVEgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEluaXRpYXRlIERNQSB0cmFuc2ZlciB3aXRoIERNQVRTRUwgKi8KKyNkZWZpbmUgRE1BQUJPUlQgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBETUEgdHJhbnNmZXIgYWJvcnRlZCBieSBOTUkgKi8KKyNkZWZpbmUgRE1BSUUgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBETUEgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBETUFJRkcgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIERNQSBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBETUFFTiAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERNQSBlbmFibGUgKi8KKyNkZWZpbmUgRE1BTEVWRUwgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBETUEgbGV2ZWwgc2Vuc2l0aXZlIHRyaWdnZXIgc2VsZWN0ICovCisjZGVmaW5lIERNQVNSQ0JZVEUgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRE1BIHNvdXJjZSBieXRlICovCisjZGVmaW5lIERNQURTVEJZVEUgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRE1BIGRlc3RpbmF0aW9uIGJ5dGUgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUjAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCBiaXQgMCAqLworI2RlZmluZSBETUFTUkNJTkNSMSAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IGJpdCAxICovCisjZGVmaW5lIERNQURTVElOQ1IwICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCBiaXQgMCAqLworI2RlZmluZSBETUFEU1RJTkNSMSAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgYml0IDEgKi8KKyNkZWZpbmUgRE1BRFQwICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSBiaXQgMCAqLworI2RlZmluZSBETUFEVDEgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIGJpdCAxICovCisjZGVmaW5lIERNQURUMiAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgYml0IDIgKi8KKworI2RlZmluZSBETUFTV0RXICAgICAgICAgICAgICAgICgwKjB4MDA0MHUpICAgIC8qIERNQSB0cmFuc2Zlcjogc291cmNlIHdvcmQgdG8gZGVzdGluYXRpb24gd29yZCAqLworI2RlZmluZSBETUFTQkRXICAgICAgICAgICAgICAgICgxKjB4MDA0MHUpICAgIC8qIERNQSB0cmFuc2Zlcjogc291cmNlIGJ5dGUgdG8gZGVzdGluYXRpb24gd29yZCAqLworI2RlZmluZSBETUFTV0RCICAgICAgICAgICAgICAgICgyKjB4MDA0MHUpICAgIC8qIERNQSB0cmFuc2Zlcjogc291cmNlIHdvcmQgdG8gZGVzdGluYXRpb24gYnl0ZSAqLworI2RlZmluZSBETUFTQkRCICAgICAgICAgICAgICAgICgzKjB4MDA0MHUpICAgIC8qIERNQSB0cmFuc2Zlcjogc291cmNlIGJ5dGUgdG8gZGVzdGluYXRpb24gYnl0ZSAqLworCisjZGVmaW5lIERNQVNSQ0lOQ1JfMCAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogRE1BIHNvdXJjZSBpbmNyZW1lbnQgMDogc291cmNlIGFkZHJlc3MgdW5jaGFuZ2VkICovCisjZGVmaW5lIERNQVNSQ0lOQ1JfMSAgICAgICAgICAgKDEqMHgwMTAwdSkgICAgLyogRE1BIHNvdXJjZSBpbmNyZW1lbnQgMTogc291cmNlIGFkZHJlc3MgdW5jaGFuZ2VkICovCisjZGVmaW5lIERNQVNSQ0lOQ1JfMiAgICAgICAgICAgKDIqMHgwMTAwdSkgICAgLyogRE1BIHNvdXJjZSBpbmNyZW1lbnQgMjogc291cmNlIGFkZHJlc3MgZGVjcmVtZW50ZWQgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUl8zICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCAzOiBzb3VyY2UgYWRkcmVzcyBpbmNyZW1lbnRlZCAqLworCisjZGVmaW5lIERNQURTVElOQ1JfMCAgICAgICAgICAgKDAqMHgwNDAwdSkgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCAwOiBkZXN0aW5hdGlvbiBhZGRyZXNzIHVuY2hhbmdlZCAqLworI2RlZmluZSBETUFEU1RJTkNSXzEgICAgICAgICAgICgxKjB4MDQwMHUpICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgMTogZGVzdGluYXRpb24gYWRkcmVzcyB1bmNoYW5nZWQgKi8KKyNkZWZpbmUgRE1BRFNUSU5DUl8yICAgICAgICAgICAoMioweDA0MDB1KSAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IDI6IGRlc3RpbmF0aW9uIGFkZHJlc3MgZGVjcmVtZW50ZWQgKi8KKyNkZWZpbmUgRE1BRFNUSU5DUl8zICAgICAgICAgICAoMyoweDA0MDB1KSAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IDM6IGRlc3RpbmF0aW9uIGFkZHJlc3MgaW5jcmVtZW50ZWQgKi8KKworI2RlZmluZSBETUFEVF8wICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDA6IHNpbmdsZSAqLworI2RlZmluZSBETUFEVF8xICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDE6IGJsb2NrICovCisjZGVmaW5lIERNQURUXzIgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgMjogaW50ZXJsZWF2ZWQgKi8KKyNkZWZpbmUgRE1BRFRfMyAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSAzOiBpbnRlcmxlYXZlZCAqLworI2RlZmluZSBETUFEVF80ICAgICAgICAgICAgICAgICg0KjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDQ6IHNpbmdsZSwgcmVwZWF0ICovCisjZGVmaW5lIERNQURUXzUgICAgICAgICAgICAgICAgKDUqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgNTogYmxvY2ssIHJlcGVhdCAqLworI2RlZmluZSBETUFEVF82ICAgICAgICAgICAgICAgICg2KjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDY6IGludGVybGVhdmVkLCByZXBlYXQgKi8KKyNkZWZpbmUgRE1BRFRfNyAgICAgICAgICAgICAgICAoNyoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSA3OiBpbnRlcmxlYXZlZCwgcmVwZWF0ICovCisKK1NGUl8xNkJJVChETUEwU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAwIFNvdXJjZSBBZGRyZXNzICovCitTRlJfMTZCSVQoRE1BMERBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMCBEZXN0aW5hdGlvbiBBZGRyZXNzICovCitTRlJfMTZCSVQoRE1BMFNaKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMCBUcmFuc2ZlciBTaXplICovCitTRlJfMTZCSVQoRE1BMVNBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMSBTb3VyY2UgQWRkcmVzcyAqLworU0ZSXzE2QklUKERNQTFEQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgRGVzdGluYXRpb24gQWRkcmVzcyAqLworU0ZSXzE2QklUKERNQTFTWik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgVHJhbnNmZXIgU2l6ZSAqLworU0ZSXzE2QklUKERNQTJTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgU291cmNlIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUEyREEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAyIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUEyU1opOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAyIFRyYW5zZmVyIFNpemUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgREFDRE1BX1ZFQ1RPUiAgICAgICAgICAgKDAgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTAgREFDL0RNQSAqLworLyojZGVmaW5lIERBQ0RNQV9JU1IoZnVuYykgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMCIpICAqLyAvKiAweEZGRTAgREFDL0RNQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDEgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMVRYX1ZFQ1RPUiAgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFVTQVJUIDEgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0FSVDFUWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDIiKSAgKi8gLyogMHhGRkU0IFVTQVJUIDEgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMVJYX1ZFQ1RPUiAgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFVTQVJUIDEgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQVJUMVJYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgVVNBUlQgMSBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIEFEQzEyX1ZFQ1RPUiAgICAgICAgICAgICg3ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIEFEQyAqLworLyojZGVmaW5lIEFEQzEyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNyIpICAqLyAvKiAweEZGRUUgQURDICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBUWF9WRUNUT1IgICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNBUlQwVFhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBSWF9WRUNUT1IgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBVU0FSVCAwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0FSVDBSWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtNiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTYsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MTZ4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjB4MS5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyMHgxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDIwNTVmYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjB4MS5oCkBAIC0wLDAgKzEsNTAxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgyMHgxIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuMgorKgorKiBSZXYuIDEuMCwgU2V0dXAKKyogUmV2LiAxLjEsIFJlbW92ZWQgc29tZSBUQUNDeDIgZGVmaW5pdGlvbiBvbiBUQTIgbW9kdWxlCisqIFJldi4gMS4yLCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4MjB4MQorI2RlZmluZSBfX21zcDQzMHgyMHgxCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEZsYXNoIEFjY2VzcyBWaW9sYXRpb24gSW50ZXJydXB0IEVuYWJsZSAqLworCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogT3NjLiBGYXVsdCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBQT1JJRkcgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFBvd2VyIE9uIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFJTVElGRyAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVzZXQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEZsYWcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCYXNpYyBDbG9jayBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0JDMl9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKERDT0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ08gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KK1NGUl84QklUKEJDU0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAxICovCitTRlJfOEJJVChCQ1NDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQkNTQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDMgKi8KKworI2RlZmluZSBNT0QwICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDAgKi8KKyNkZWZpbmUgTU9EMSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAxICovCisjZGVmaW5lIE1PRDIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMiAqLworI2RlZmluZSBNT0QzICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDMgKi8KKyNkZWZpbmUgTU9ENCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCA0ICovCisjZGVmaW5lIERDTzAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBEQ08xICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgRENPMiAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAyICovCisKKyNkZWZpbmUgUlNFTDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgUlNFTDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgUlNFTDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDIgKi8KKyNkZWZpbmUgUlNFTDMgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDMgKi8KKyNkZWZpbmUgRElWQTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZBMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFhUUyAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTEZYVENMSyAwOkxvdyBGcmVxLiAvIDE6IEhpZ2ggRnJlcS4gKi8KKyNkZWZpbmUgWFQyT0ZGICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBFbmFibGUgWFQyQ0xLICovCisKKyNkZWZpbmUgRElWQV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWQV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWQV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWQV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZTMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgMDpEQ09DTEsgLyAxOlhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIERJVk0wICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZNXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZNXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZNXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIFNFTE1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDA6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMjogWFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgU0VMTV8zICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMzogTEZYVENMSyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgTEZYVDFPRiAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBMb3cvaGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMk9GICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSGlnaCBmcmVxdWVuY3kgb3NjaWxsYXRvciAyIGZhdWx0IGZsYWcgKi8KKyNkZWZpbmUgWENBUDAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBYQ0FQMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIExGWFQxUzAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAwIGZvciBMRlhUMSAoWFRTID0gMCkgKi8KKyNkZWZpbmUgTEZYVDFTMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNb2RlIDEgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBYVDJTMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyICovCisjZGVmaW5lIFhUMlMxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAxIGZvciBYVDIgKi8KKworI2RlZmluZSBYQ0FQXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDAgcEYgKi8KKyNkZWZpbmUgWENBUF8xICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiA2IHBGICovCisjZGVmaW5lIFhDQVBfMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMTAgcEYgKi8KKyNkZWZpbmUgWENBUF8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMi41IHBGICovCisKKyNkZWZpbmUgTEZYVDFTXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIDogTm9ybWFsIG9wZXJhdGlvbiAqLworI2RlZmluZSBMRlhUMVNfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgOiBSZXNlcnZlZCAqLworI2RlZmluZSBMRlhUMVNfMiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgTEZYVDEgOiBWTE8gKi8KKyNkZWZpbmUgTEZYVDFTXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNb2RlIDMgZm9yIExGWFQxIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworI2RlZmluZSBYVDJTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyIDogMC40IC0gMSBNSHogKi8KKyNkZWZpbmUgWFQyU18xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiA6IDEgLSA0IE1IeiAqLworI2RlZmluZSBYVDJTXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgWFQyIDogMiAtIDE2IE1IeiAqLworI2RlZmluZSBYVDJTXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgWFQyIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NBUExVU19fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSArVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIC1UZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBMiAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgLVRlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIFAyQ0EzICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSAtVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTQgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBICtUZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBDQVNIT1JUICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgU2hvcnQgKyBhbmQgLSBUZXJtaW5hbHMgKi8KKworI2RlZmluZSBDQVBEMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMCAqLworI2RlZmluZSBDQVBEMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMSAqLworI2RlZmluZSBDQVBEMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMiAqLworI2RlZmluZSBDQVBEMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMyAqLworI2RlZmluZSBDQVBENCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNCAqLworI2RlZmluZSBDQVBENSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNSAqLworI2RlZmluZSBDQVBENiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNiAqLworI2RlZmluZSBDQVBENyAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSDJfXyAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisjZGVmaW5lIExPQ0tBICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU2VnbWVudCBBIExvY2sgYml0OiByZWFkID0gMSAtIFNlZ21lbnQgaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEZBSUwgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogTGFzdCBQcm9ncmFtIG9yIEVyYXNlIGZhaWxlZCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCitTRlJfOEJJVChQMVJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFJlc2lzdG9yIEVuYWJsZSAqLworCitTRlJfOEJJVChQMklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIElucHV0ICovCitTRlJfOEJJVChQMk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIE91dHB1dCAqLworU0ZSXzhCSVQoUDJESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAySUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAyU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uICovCitTRlJfOEJJVChQMlJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFJlc2lzdG9yIEVuYWJsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEyCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTJfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTJJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfMiAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorCitTRlJfOEJJVChDQUxEQ09fMTZNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTERDT18xMk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCitTRlJfOEJJVChDQUxCQzFfMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX0Rpc2FibGVDYWxEYXRhICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMiIpICAqLyAvKiAweEZGRTQgUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFNiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDMiKSAgKi8gLyogMHhGRkU2IFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDggKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQ09NUEFSQVRPUkFfVkVDVE9SICAgICAgKDExICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovCisvKiNkZWZpbmUgQ09NUEFSQVRPUkFfSVNSKGZ1bmMpICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDExIikgICovIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDIweDEgKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyMHgyLmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDIweDIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZjRjMTNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyMHgyLmgKQEAgLTAsMCArMSw2NDMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDIweDIgZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMS40CisqCisqIFJldi4gMS4wLCBTZXR1cAorKiBSZXYuIDEuMSwgUmVtb3ZlZCBzb21lIFRBQ0N4MiBkZWZpbml0aW9uIG9uIFRBMiBtb2R1bGUKKyogUmV2LiAxLjIsIFJlcGxhY2VkIFVTSUlGR0RDIHdpdGggVVNJSUZHQ0MKKyogUmV2LiAxLjMgIFJlcGxhY2VkIEFEQzEwQUUgd2l0aCBBREMxMEFFMCBhY2NvcmRpbmcgdG8gdGhlIFVzZXJzIEd1aWRlCisqIFJldi4gMS40LCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4MjB4MgorI2RlZmluZSBfX21zcDQzMHgyMHgyCisgICAgICAgICAgICAgICAKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEZsYXNoIEFjY2VzcyBWaW9sYXRpb24gSW50ZXJydXB0IEVuYWJsZSAqLworCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogT3NjLiBGYXVsdCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBQT1JJRkcgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFBvd2VyIE9uIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFJTVElGRyAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVzZXQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEZsYWcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBREMxMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQURDMTBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQURDMTBEVEMwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIERhdGEgVHJhbnNmZXIgQ29udHJvbCAwICovCitTRlJfOEJJVChBREMxMERUQzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgRGF0YSBUcmFuc2ZlciBDb250cm9sIDEgKi8KK1NGUl84QklUKEFEQzEwQUUwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBBbmFsb2cgRW5hYmxlIDAgKi8KKworU0ZSXzE2QklUKEFEQzEwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKEFEQzEwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEFEQzEwTUVNKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIE1lbW9yeSAqLworU0ZSXzE2QklUKEFEQzEwU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIERhdGEgVHJhbnNmZXIgU3RhcnQgQWRkcmVzcyAqLworCisvKiBBREMxMENUTDAgKi8KKyNkZWZpbmUgQURDMTBTQyAgICAgICAgICAgICAgICAoMHgwMDEpICAgICAgICAvKiBBREMxMCBTdGFydCBDb252ZXJzaW9uICovCisjZGVmaW5lIEVOQyAgICAgICAgICAgICAgICAgICAgKDB4MDAyKSAgICAgICAgLyogQURDMTAgRW5hYmxlIENvbnZlcnNpb24gKi8KKyNkZWZpbmUgQURDMTBJRkcgICAgICAgICAgICAgICAoMHgwMDQpICAgICAgICAvKiBBREMxMCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBBREMxMElFICAgICAgICAgICAgICAgICgweDAwOCkgICAgICAgIC8qIEFEQzEwIEludGVycnVwdCBFbmFsYmUgKi8KKyNkZWZpbmUgQURDMTBPTiAgICAgICAgICAgICAgICAoMHgwMTApICAgICAgICAvKiBBREMxMCBPbi9FbmFibGUgKi8KKyNkZWZpbmUgUkVGT04gICAgICAgICAgICAgICAgICAoMHgwMjApICAgICAgICAvKiBBREMxMCBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgUkVGMl81ViAgICAgICAgICAgICAgICAoMHgwNDApICAgICAgICAvKiBBREMxMCBSZWYgMDoxLjVWIC8gMToyLjVWICovCisjZGVmaW5lIE1TQyAgICAgICAgICAgICAgICAgICAgKDB4MDgwKSAgICAgICAgLyogQURDMTAgTXVsdGlwbGUgU2FtcGxlQ29udmVyc2lvbiAqLworI2RlZmluZSBSRUZCVVJTVCAgICAgICAgICAgICAgICgweDEwMCkgICAgICAgIC8qIEFEQzEwIFJlZmVyZW5jZSBCdXJzdCBNb2RlICovCisjZGVmaW5lIFJFRk9VVCAgICAgICAgICAgICAgICAgKDB4MjAwKSAgICAgICAgLyogQURDMTAgRW5hbGJlIG91dHB1dCBvZiBSZWYuICovCisjZGVmaW5lIEFEQzEwU1IgICAgICAgICAgICAgICAgKDB4NDAwKSAgICAgICAgLyogQURDMTAgU2FtcGxpbmcgUmF0ZSAwOjIwMGtzcHMgLyAxOjUwa3NwcyAqLworI2RlZmluZSBBREMxMFNIVDAgICAgICAgICAgICAgICgweDgwMCkgICAgICAgIC8qIEFEQzEwIFNhbXBsZSBIb2xkIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEwU0hUMSAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTAgU2FtcGxlIEhvbGQgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1JFRjAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU1JFRjEgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1JFRjMgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgU2VsZWN0IDIgKi8KKyNkZWZpbmUgQURDMTBTSFRfMCAgICAgICAgICAgICAoMCoweDgwMHUpICAgICAvKiA0IHggQURDMTBDTEtzICovCisjZGVmaW5lIEFEQzEwU0hUXzEgICAgICAgICAgICAgKDEqMHg4MDB1KSAgICAgLyogOCB4IEFEQzEwQ0xLcyAqLworI2RlZmluZSBBREMxMFNIVF8yICAgICAgICAgICAgICgyKjB4ODAwdSkgICAgIC8qIDE2IHggQURDMTBDTEtzICovCisjZGVmaW5lIEFEQzEwU0hUXzMgICAgICAgICAgICAgKDMqMHg4MDB1KSAgICAgLyogNjQgeCBBREMxMENMS3MgKi8KKworI2RlZmluZSBTUkVGXzAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFZSKyA9IEFWQ0MgYW5kIFZSLSA9IEFWU1MgKi8KKyNkZWZpbmUgU1JFRl8xICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBWUisgPSBWUkVGKyBhbmQgVlItID0gQVZTUyAqLworI2RlZmluZSBTUkVGXzIgICAgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFZSKyA9IFZFUkVGKyBhbmQgVlItID0gQVZTUyAqLworI2RlZmluZSBTUkVGXzMgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFZSKyA9IFZFUkVGKyBhbmQgVlItID0gQVZTUyAqLworI2RlZmluZSBTUkVGXzQgICAgICAgICAgICAgICAgICg0KjB4MjAwMHUpICAgIC8qIFZSKyA9IEFWQ0MgYW5kIFZSLSA9IFZSRUYtL1ZFUkVGLSAqLworI2RlZmluZSBTUkVGXzUgICAgICAgICAgICAgICAgICg1KjB4MjAwMHUpICAgIC8qIFZSKyA9IFZSRUYrIGFuZCBWUi0gPSBWUkVGLS9WRVJFRi0gKi8KKyNkZWZpbmUgU1JFRl82ICAgICAgICAgICAgICAgICAoNioweDIwMDB1KSAgICAvKiBWUisgPSBWRVJFRisgYW5kIFZSLSA9IFZSRUYtL1ZFUkVGLSAqLworI2RlZmluZSBTUkVGXzcgICAgICAgICAgICAgICAgICg3KjB4MjAwMHUpICAgIC8qIFZSKyA9IFZFUkVGKyBhbmQgVlItID0gVlJFRi0vVkVSRUYtICovCisKKy8qIEFEQzEwQ1RMMSAqLworI2RlZmluZSBBREMxMEJVU1kgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEwQ1RMMSAqLworI2RlZmluZSBDT05TRVEwICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEwIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ09OU0VRMSAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMCBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEwU1NFTDAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTAgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEwU1NFTDEgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTAgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEwRElWMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTAgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMERJVjEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEwIENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTBESVYyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMCBDbG9jayBEaXZpZGVyIFNlbGVjdCAyICovCisjZGVmaW5lIElTU0ggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTAgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBBREMxMERGICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEwIERhdGEgRm9ybWF0IDA6YmluYXJ5IDE6MidzIGNvbXBsZW1lbnQgKi8KKyNkZWZpbmUgU0hTMCAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMCBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBTSFMxICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEwIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIElOQ0gwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTAgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgMCAqLworI2RlZmluZSBJTkNIMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIEFEQzEwIElucHV0IENoYW5uZWwgU2VsZWN0IDEgKi8KKyNkZWZpbmUgSU5DSDIgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMCBJbnB1dCBDaGFubmVsIFNlbGVjdCAyICovCisjZGVmaW5lIElOQ0gzICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTAgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgMyAqLworCisjZGVmaW5lIENPTlNFUV8wICAgICAgICAgICAgICAgKDAqMnUpICAgICAgICAgLyogU2luZ2xlIGNoYW5uZWwgc2luZ2xlIGNvbnZlcnNpb24gKi8KKyNkZWZpbmUgQ09OU0VRXzEgICAgICAgICAgICAgICAoMSoydSkgICAgICAgICAvKiBTZXF1ZW5jZSBvZiBjaGFubmVscyAqLworI2RlZmluZSBDT05TRVFfMiAgICAgICAgICAgICAgICgyKjJ1KSAgICAgICAgIC8qIFJlcGVhdCBzaW5nbGUgY2hhbm5lbCAqLworI2RlZmluZSBDT05TRVFfMyAgICAgICAgICAgICAgICgzKjJ1KSAgICAgICAgIC8qIFJlcGVhdCBzZXF1ZW5jZSBvZiBjaGFubmVscyAqLworCisjZGVmaW5lIEFEQzEwU1NFTF8wICAgICAgICAgICAgKDAqOHUpICAgICAgICAgLyogQURDMTBPU0MgKi8KKyNkZWZpbmUgQURDMTBTU0VMXzEgICAgICAgICAgICAoMSo4dSkgICAgICAgICAvKiBBQ0xLICovCisjZGVmaW5lIEFEQzEwU1NFTF8yICAgICAgICAgICAgKDIqOHUpICAgICAgICAgLyogTUNMSyAqLworI2RlZmluZSBBREMxMFNTRUxfMyAgICAgICAgICAgICgzKjh1KSAgICAgICAgIC8qIFNNQ0xLICovCisKKyNkZWZpbmUgQURDMTBESVZfMCAgICAgICAgICAgICAoMCoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfMSAgICAgICAgICAgICAoMSoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfMiAgICAgICAgICAgICAoMioweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfMyAgICAgICAgICAgICAoMyoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNCAgICAgICAgICAgICAoNCoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNSAgICAgICAgICAgICAoNSoweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNiAgICAgICAgICAgICAoNioweDIwdSkKKyNkZWZpbmUgQURDMTBESVZfNyAgICAgICAgICAgICAoNyoweDIwdSkKKworI2RlZmluZSBTSFNfMCAgICAgICAgICAgICAgICAgICgwKjB4NDAwdSkgICAgIC8qIEFEQzEwU0MgKi8KKyNkZWZpbmUgU0hTXzEgICAgICAgICAgICAgICAgICAoMSoweDQwMHUpICAgICAvKiBUQTMgT1VUMSAqLworI2RlZmluZSBTSFNfMiAgICAgICAgICAgICAgICAgICgyKjB4NDAwdSkgICAgIC8qIFRBMyBPVVQwICovCisjZGVmaW5lIFNIU18zICAgICAgICAgICAgICAgICAgKDMqMHg0MDB1KSAgICAgLyogVEEzIE9VVDIgKi8KKworI2RlZmluZSBJTkNIXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF8yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KQorI2RlZmluZSBJTkNIXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfNCAgICAgICAgICAgICAgICAgKDQqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF81ICAgICAgICAgICAgICAgICAoNSoweDEwMDB1KQorI2RlZmluZSBJTkNIXzYgICAgICAgICAgICAgICAgICg2KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfNyAgICAgICAgICAgICAgICAgKDcqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF84ICAgICAgICAgICAgICAgICAoOCoweDEwMDB1KQorI2RlZmluZSBJTkNIXzkgICAgICAgICAgICAgICAgICg5KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMTAgICAgICAgICAgICAgICAgKDEwKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMTIgICAgICAgICAgICAgICAgKDEyKjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisjZGVmaW5lIElOQ0hfMTMgICAgICAgICAgICAgICAgKDEzKjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisjZGVmaW5lIElOQ0hfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisjZGVmaW5lIElOQ0hfMTUgICAgICAgICAgICAgICAgKDE1KjB4MTAwMHUpICAgLyogU2VsZWN0cyBDaGFubmVsIDExICovCisKKy8qIEFEQzEwRFRDMCAqLworI2RlZmluZSBBREMxMEZFVENIICAgICAgICAgICAgICgweDAwMSkKKyNkZWZpbmUgQURDMTBCMSAgICAgICAgICAgICAgICAoMHgwMDIpCisjZGVmaW5lIEFEQzEwQ1QgICAgICAgICAgICAgICAgKDB4MDA0KQorI2RlZmluZSBBREMxMFRCICAgICAgICAgICAgICAgICgweDAwOCkKKyNkZWZpbmUgQURDMTBESVNBQkxFICAgICAgICAgICAoMHgwMDApICAgICAgICAvKiBBREMxMERUQzEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCYXNpYyBDbG9jayBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0JDMl9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKERDT0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ08gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KK1NGUl84QklUKEJDU0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAxICovCitTRlJfOEJJVChCQ1NDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQkNTQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDMgKi8KKworI2RlZmluZSBNT0QwICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDAgKi8KKyNkZWZpbmUgTU9EMSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAxICovCisjZGVmaW5lIE1PRDIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMiAqLworI2RlZmluZSBNT0QzICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDMgKi8KKyNkZWZpbmUgTU9ENCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCA0ICovCisjZGVmaW5lIERDTzAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBEQ08xICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgRENPMiAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAyICovCisKKyNkZWZpbmUgUlNFTDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgUlNFTDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgUlNFTDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDIgKi8KKyNkZWZpbmUgUlNFTDMgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDMgKi8KKyNkZWZpbmUgRElWQTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZBMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFhUUyAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTEZYVENMSyAwOkxvdyBGcmVxLiAvIDE6IEhpZ2ggRnJlcS4gKi8KKyNkZWZpbmUgWFQyT0ZGICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBFbmFibGUgWFQyQ0xLICovCisKKyNkZWZpbmUgRElWQV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWQV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWQV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWQV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZTMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgMDpEQ09DTEsgLyAxOlhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIERJVk0wICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZNXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZNXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZNXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIFNFTE1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDA6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMjogWFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgU0VMTV8zICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMzogTEZYVENMSyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgTEZYVDFPRiAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBMb3cvaGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMk9GICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSGlnaCBmcmVxdWVuY3kgb3NjaWxsYXRvciAyIGZhdWx0IGZsYWcgKi8KKyNkZWZpbmUgWENBUDAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBYQ0FQMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIExGWFQxUzAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAwIGZvciBMRlhUMSAoWFRTID0gMCkgKi8KKyNkZWZpbmUgTEZYVDFTMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNb2RlIDEgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBYVDJTMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyICovCisjZGVmaW5lIFhUMlMxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAxIGZvciBYVDIgKi8KKworI2RlZmluZSBYQ0FQXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDAgcEYgKi8KKyNkZWZpbmUgWENBUF8xICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiA2IHBGICovCisjZGVmaW5lIFhDQVBfMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMTAgcEYgKi8KKyNkZWZpbmUgWENBUF8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMi41IHBGICovCisKKyNkZWZpbmUgTEZYVDFTXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIDogTm9ybWFsIG9wZXJhdGlvbiAqLworI2RlZmluZSBMRlhUMVNfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgOiBSZXNlcnZlZCAqLworI2RlZmluZSBMRlhUMVNfMiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgTEZYVDEgOiBWTE8gKi8KKyNkZWZpbmUgTEZYVDFTXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNb2RlIDMgZm9yIExGWFQxIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworI2RlZmluZSBYVDJTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyIDogMC40IC0gMSBNSHogKi8KKyNkZWZpbmUgWFQyU18xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiA6IDEgLSA0IE1IeiAqLworI2RlZmluZSBYVDJTXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgWFQyIDogMiAtIDE2IE1IeiAqLworI2RlZmluZSBYVDJTXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgWFQyIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0gyX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworI2RlZmluZSBMT0NLQSAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNlZ21lbnQgQSBMb2NrIGJpdDogcmVhZCA9IDEgLSBTZWdtZW50IGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBGQUlMICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIExhc3QgUHJvZ3JhbSBvciBFcmFzZSBmYWlsZWQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yIFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDFSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDJSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEyX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEySVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzIgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl84ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWX1RBSUZHICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNJCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0lfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVU0lDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNJICBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVTSUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0kgIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVVNJQ0tDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTSSAgQ2xvY2sgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzhCSVQoVVNJQ05UKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTSSAgQml0IENvdW50ZXIgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVTSVNSTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0kgIExvdyBCeXRlIFNoaWZ0IFJlZ2lzdGVyICovCitTRlJfOEJJVChVU0lTUkgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNJICBIaWdoIEJ5dGUgU2hpZnQgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChVU0lDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0kgIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChVU0lDQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0kgIENsb2NrIGFuZCBDb3VudGVyIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChVU0lTUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0kgIFNoaWZ0IFJlZ2lzdGVyICovCisKKyNkZWZpbmUgVVNJUEU3ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0kgIFBvcnQgRW5hYmxlIFB4LjcgKi8KKyNkZWZpbmUgVVNJUEU2ICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0kgIFBvcnQgRW5hYmxlIFB4LjYgKi8KKyNkZWZpbmUgVVNJUEU1ICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0kgIFBvcnQgRW5hYmxlIFB4LjUgKi8KKyNkZWZpbmUgVVNJTFNCICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0kgIExTQiBmaXJzdCAgMTpMU0IgLyAwOk1TQiAqLworI2RlZmluZSBVU0lNU1QgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFVTSSAgTWFzdGVyIFNlbGVjdCAgMDpTbGF2ZSAvIDE6TWFzdGVyICovCisjZGVmaW5lIFVTSUdFICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNJICBHZW5lcmFsIE91dHB1dCBFbmFibGUgTGF0Y2ggKi8KKyNkZWZpbmUgVVNJT0UgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0kgIE91dHB1dCBFbmFibGUgKi8KKyNkZWZpbmUgVVNJU1dSU1QgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0kgIFNvZnR3YXJlIFJlc2V0ICovCisKKyNkZWZpbmUgVVNJQ0tQSCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0kgIFN5bmMuIE1vZGU6IENsb2NrIFBoYXNlICovCisjZGVmaW5lIFVTSUkyQyAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNJICBJMkMgTW9kZSAqLworI2RlZmluZSBVU0lTVFRJRSAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFVTSSAgU1RBUlQgQ29uZGl0aW9uIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVVNJSUUgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0kgIENvdW50ZXIgSW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVU0lBTCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFVTSSAgQXJiaXRyYXRpb24gTG9zdCAqLworI2RlZmluZSBVU0lTVFAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTSSAgU1RPUCBDb25kaXRpb24gcmVjZWl2ZWQgKi8KKyNkZWZpbmUgVVNJU1RUSUZHICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0kgIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBVU0lJRkcgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTSSAgQ291bnRlciBJbnRlcnJ1cHQgRmxhZyAqLworCisjZGVmaW5lIFVTSURJVjIgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNJICBDbG9jayBEaXZpZGVyIDIgKi8KKyNkZWZpbmUgVVNJRElWMSAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0kgIENsb2NrIERpdmlkZXIgMSAqLworI2RlZmluZSBVU0lESVYwICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgRGl2aWRlciAwICovCisjZGVmaW5lIFVTSVNTRUwyICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNJICBDbG9jayBTb3VyY2UgU2VsZWN0IDIgKi8KKyNkZWZpbmUgVVNJU1NFTDEgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0kgIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBVU0lTU0VMMCAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFVTSUNLUEwgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVVNJICBDbG9jayBQb2xhcml0eSAwOkluYWN0aXZlPUxvdyAvIDE6SW5hY3RpdmU9SGlnaCAqLworI2RlZmluZSBVU0lTV0NMSyAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTSSAgU29mdHdhcmUgQ2xvY2sgKi8KKworI2RlZmluZSBVU0lESVZfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgRGl2aWRlcjogMCAqLworI2RlZmluZSBVU0lESVZfMSAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgRGl2aWRlcjogMSAqLworI2RlZmluZSBVU0lESVZfMiAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgRGl2aWRlcjogMiAqLworI2RlZmluZSBVU0lESVZfMyAgICAgICAgICAgICAgICgweDYwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgRGl2aWRlcjogMyAqLworI2RlZmluZSBVU0lESVZfNCAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgRGl2aWRlcjogNCAqLworI2RlZmluZSBVU0lESVZfNSAgICAgICAgICAgICAgICgweEEwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgRGl2aWRlcjogNSAqLworI2RlZmluZSBVU0lESVZfNiAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgRGl2aWRlcjogNiAqLworI2RlZmluZSBVU0lESVZfNyAgICAgICAgICAgICAgICgweEUwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgRGl2aWRlcjogNyAqLworCisjZGVmaW5lIFVTSVNTRUxfMCAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNJICBDbG9jayBTb3VyY2U6IDAgKi8KKyNkZWZpbmUgVVNJU1NFTF8xICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVU0kgIENsb2NrIFNvdXJjZTogMSAqLworI2RlZmluZSBVU0lTU0VMXzIgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgU291cmNlOiAyICovCisjZGVmaW5lIFVTSVNTRUxfMyAgICAgICAgICAgICAgKDB4MEMpICAgICAgICAgLyogVVNJICBDbG9jayBTb3VyY2U6IDMgKi8KKyNkZWZpbmUgVVNJU1NFTF80ICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0kgIENsb2NrIFNvdXJjZTogNCAqLworI2RlZmluZSBVU0lTU0VMXzUgICAgICAgICAgICAgICgweDE0KSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgU291cmNlOiA1ICovCisjZGVmaW5lIFVTSVNTRUxfNiAgICAgICAgICAgICAgKDB4MTgpICAgICAgICAgLyogVVNJICBDbG9jayBTb3VyY2U6IDYgKi8KKyNkZWZpbmUgVVNJU1NFTF83ICAgICAgICAgICAgICAoMHgxQykgICAgICAgICAvKiBVU0kgIENsb2NrIFNvdXJjZTogNyAqLworCisjZGVmaW5lIFVTSVNDTFJFTCAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNJICBTQ0wgUmVsZWFzZWQgKi8KKyNkZWZpbmUgVVNJMTZCICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0kgIDE2IEJpdCBTaGlmdCBSZWdpc3RlciBFbmFibGUgKi8KKyNkZWZpbmUgVVNJSUZHQ0MgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0kgIEludGVycnVwdCBGbGFnIENsZWFyIENvbnRyb2wgKi8KKyNkZWZpbmUgVVNJQ05UNCAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0kgIEJpdCBDb3VudCA0ICovCisjZGVmaW5lIFVTSUNOVDMgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNJICBCaXQgQ291bnQgMyAqLworI2RlZmluZSBVU0lDTlQyICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTSSAgQml0IENvdW50IDIgKi8KKyNkZWZpbmUgVVNJQ05UMSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0kgIEJpdCBDb3VudCAxICovCisjZGVmaW5lIFVTSUNOVDAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNJICBCaXQgQ291bnQgMCAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorCitTRlJfOEJJVChDQUxEQ09fMTZNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTERDT18xMk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCitTRlJfOEJJVChDQUxCQzFfMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX0Rpc2FibGVDYWxEYXRhICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMiIpICAqLyAvKiAweEZGRTQgUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFNiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDMiKSAgKi8gLyogMHhGRkU2IFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNJX1ZFQ1RPUiAgICAgICAgICAgICAgKDQgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTggVVNJICovCisvKiNkZWZpbmUgVVNJX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA0IikgICovIC8qIDB4RkZFOCBVU0kgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIEFEQzEwX1ZFQ1RPUiAgICAgICAgICAgICg1ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVBIEFEQzEwICovCisvKiNkZWZpbmUgQURDMTBfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA1IikgICovIC8qIDB4RkZFQSBBREMxMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDggKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVGltZXIgQSBDQzEsIFRBICovCisvKiNkZWZpbmUgVElNRVJBMV9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBUaW1lciBBIENDMSwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICg5ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA5IikgICovIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBOTUlfVkVDVE9SICAgICAgICAgICAgICAoMTQgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8KKy8qI2RlZmluZSBOTUlfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTQiKSAgKi8gLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVRfVkVDVE9SICAgICAgICAgICAgKDE1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovCisvKiNkZWZpbmUgUkVTRVRfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE1IikgICovIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRW5kIG9mIE1vZHVsZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogZXh0ZXJuICJDIiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX21zcDQzMHgyMHgyICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjB4My5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyMHgzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjZhMWI3OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjB4My5oCkBAIC0wLDAgKzEsNjQzIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgyMHgzIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuMworKgorKiBSZXYuIDEuMCwgU2V0dXAKKyogUmV2LiAxLjEsIFJlbW92ZWQgc29tZSBUQUNDeDIgZGVmaW5pdGlvbiBvbiBUQTIgbW9kdWxlCisqIFJldi4gMS4yLCBSZXBsYWNlZCBVU0lJRkdEQyB3aXRoIFVTSUlGR0NDCisqIFJldi4gMS4zLCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4MjB4MworI2RlZmluZSBfX21zcDQzMHgyMHgzCisgICAgICAgICAgICAgICAKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEZsYXNoIEFjY2VzcyBWaW9sYXRpb24gSW50ZXJydXB0IEVuYWJsZSAqLworCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogT3NjLiBGYXVsdCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBQT1JJRkcgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFBvd2VyIE9uIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFJTVElGRyAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVzZXQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEZsYWcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCYXNpYyBDbG9jayBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0JDMl9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKERDT0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ08gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KK1NGUl84QklUKEJDU0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAxICovCitTRlJfOEJJVChCQ1NDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQkNTQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDMgKi8KKworI2RlZmluZSBNT0QwICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDAgKi8KKyNkZWZpbmUgTU9EMSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAxICovCisjZGVmaW5lIE1PRDIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMiAqLworI2RlZmluZSBNT0QzICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDMgKi8KKyNkZWZpbmUgTU9ENCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCA0ICovCisjZGVmaW5lIERDTzAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBEQ08xICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgRENPMiAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAyICovCisKKyNkZWZpbmUgUlNFTDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgUlNFTDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgUlNFTDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDIgKi8KKyNkZWZpbmUgUlNFTDMgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSYW5nZSBTZWxlY3QgQml0IDMgKi8KKyNkZWZpbmUgRElWQTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZBMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFhUUyAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTEZYVENMSyAwOkxvdyBGcmVxLiAvIDE6IEhpZ2ggRnJlcS4gKi8KKyNkZWZpbmUgWFQyT0ZGICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBFbmFibGUgWFQyQ0xLICovCisKKyNkZWZpbmUgRElWQV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWQV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWQV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWQV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZTMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgMDpEQ09DTEsgLyAxOlhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIERJVk0wICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZNXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZNXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZNXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIFNFTE1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDA6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMjogWFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgU0VMTV8zICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMzogTEZYVENMSyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgTEZYVDFPRiAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBMb3cvaGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMk9GICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSGlnaCBmcmVxdWVuY3kgb3NjaWxsYXRvciAyIGZhdWx0IGZsYWcgKi8KKyNkZWZpbmUgWENBUDAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBYQ0FQMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIExGWFQxUzAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAwIGZvciBMRlhUMSAoWFRTID0gMCkgKi8KKyNkZWZpbmUgTEZYVDFTMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNb2RlIDEgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBYVDJTMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyICovCisjZGVmaW5lIFhUMlMxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAxIGZvciBYVDIgKi8KKworI2RlZmluZSBYQ0FQXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDAgcEYgKi8KKyNkZWZpbmUgWENBUF8xICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiA2IHBGICovCisjZGVmaW5lIFhDQVBfMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMTAgcEYgKi8KKyNkZWZpbmUgWENBUF8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMi41IHBGICovCisKKyNkZWZpbmUgTEZYVDFTXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIDogTm9ybWFsIG9wZXJhdGlvbiAqLworI2RlZmluZSBMRlhUMVNfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgOiBSZXNlcnZlZCAqLworI2RlZmluZSBMRlhUMVNfMiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgTEZYVDEgOiBWTE8gKi8KKyNkZWZpbmUgTEZYVDFTXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNb2RlIDMgZm9yIExGWFQxIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworI2RlZmluZSBYVDJTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyIDogMC40IC0gMSBNSHogKi8KKyNkZWZpbmUgWFQyU18xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiA6IDEgLSA0IE1IeiAqLworI2RlZmluZSBYVDJTXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgWFQyIDogMiAtIDE2IE1IeiAqLworI2RlZmluZSBYVDJTXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgWFQyIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0gyX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworI2RlZmluZSBMT0NLQSAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNlZ21lbnQgQSBMb2NrIGJpdDogcmVhZCA9IDEgLSBTZWdtZW50IGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBGQUlMICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIExhc3QgUHJvZ3JhbSBvciBFcmFzZSBmYWlsZWQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yIFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDFSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDJSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTRDE2X0ExIC0gU2lnbWEgRGVsdGEgMTYgQml0CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19TRDE2X0ExX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTRDE2SU5DVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnB1dCBDb250cm9sIFJlZ2lzdGVyIENoYW5uZWwgMCAqLworU0ZSXzhCSVQoU0QxNkFFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQW5hbG9nIElucHV0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoU0QxNkNPTkYwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW50ZXJuYWwgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAwICovCitTRlJfOEJJVChTRDE2Q09ORjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcm5hbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDEgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUGxlYXNlIHVzZSBvbmx5IHRoZSByZWNvbW1lbmRlZCBzZXR0aW5ncyAqLworCitTRlJfMTZCSVQoU0QxNkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU2lnbWEgRGVsdGEgQURDIDE2IENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2Q0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMCBDb250cm9sIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgVmVjdG9yIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNk1FTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDAgQ29udmVyc2lvbiBNZW1vcnkgKi8KKworLyogU0QxNkFFICovCisjZGVmaW5lIFNEMTZBRTAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBFeHRlcm5hbCBJbnB1dCBFbmFibGUgMCAqLworI2RlZmluZSBTRDE2QUUxICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgU0QxNkFFMiAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IEV4dGVybmFsIElucHV0IEVuYWJsZSAyICovCisjZGVmaW5lIFNEMTZBRTMgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBFeHRlcm5hbCBJbnB1dCBFbmFibGUgMyAqLworI2RlZmluZSBTRDE2QUU0ICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDQgKi8KKyNkZWZpbmUgU0QxNkFFNSAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IEV4dGVybmFsIElucHV0IEVuYWJsZSA1ICovCisjZGVmaW5lIFNEMTZBRTYgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBFeHRlcm5hbCBJbnB1dCBFbmFibGUgNiAqLworI2RlZmluZSBTRDE2QUU3ICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFNEMTYgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDcgKi8KKworLyogU0QxNklOQ1RMeCAqLworI2RlZmluZSBTRDE2SU5DSDAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgMCAqLworI2RlZmluZSBTRDE2SU5DSDEgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgMSAqLworI2RlZmluZSBTRDE2SU5DSDIgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgMiAqLworI2RlZmluZSBTRDE2R0FJTjAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZHQUlOMSAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkdBSU4yICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgMiAqLworI2RlZmluZSBTRDE2SU5URExZMCAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5IGFmdGVyIDEuQ29udmVyc2lvbiAwICovCisjZGVmaW5lIFNEMTZJTlRETFkxICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXkgYWZ0ZXIgMS5Db252ZXJzaW9uIDEgKi8KKworI2RlZmluZSBTRDE2R0FJTl8xICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMSAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMiAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjIgICovCisjZGVmaW5lIFNEMTZHQUlOXzQgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICo0ICAqLworI2RlZmluZSBTRDE2R0FJTl84ICAgICAgICAgICAgICgweDAwMTgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqOCAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMTYgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjE2ICovCisjZGVmaW5lIFNEMTZHQUlOXzMyICAgICAgICAgICAgKDB4MDAyOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICozMiAqLworCisjZGVmaW5lIFNEMTZJTkNIXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBBMCAqLworI2RlZmluZSBTRDE2SU5DSF8xICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgQTEgKi8KKyNkZWZpbmUgU0QxNklOQ0hfMiAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IEEyICovCisjZGVmaW5lIFNEMTZJTkNIXzMgICAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBBMyAqLworI2RlZmluZSBTRDE2SU5DSF80ICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgQTQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNSAgICAgICAgICAgICAoMHgwMDA1KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IFZjYyBkaXZpZGVyICovCisjZGVmaW5lIFNEMTZJTkNIXzYgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBUZW1wICovCisjZGVmaW5lIFNEMTZJTkNIXzcgICAgICAgICAgICAgKDB4MDAwNykgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBPZmZzZXQgKi8KKworI2RlZmluZSBTRDE2SU5URExZXzAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDQuQ29udmVyc2lvbiAgKi8KKyNkZWZpbmUgU0QxNklOVERMWV8xICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheTogSW50LiBhZnRlciAzLkNvbnZlcnNpb24gICovCisjZGVmaW5lIFNEMTZJTlRETFlfMiAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgMi5Db252ZXJzaW9uICAqLworI2RlZmluZSBTRDE2SU5URExZXzMgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDEuQ29udmVyc2lvbiAgKi8KKworLyogU0QxNkNUTCAqLworI2RlZmluZSBTRDE2T1ZJRSAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgT3ZlcmZsb3cgSW50ZXJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFNEMTZSRUZPTiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBTd2l0Y2ggaW50ZXJuYWwgUmVmZXJlbmNlIG9uICovCisjZGVmaW5lIFNEMTZWTUlET04gICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBTd2l0Y2ggVm1pZCBCdWZmZXIgb24gKi8KKyNkZWZpbmUgU0QxNlNTRUwwICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRDE2U1NFTDEgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZESVYwICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZESVYxICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZMUCAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0QxNiBMb3cgUG93ZXIgTW9kZSBFbmFibGUgKi8KKyNkZWZpbmUgU0QxNlhESVYwICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBTRDE2WERJVjEgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIFNEMTYgMi5DbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisvLyNkZWZpbmUgU0QxNlhESVYyICAgICAgICAgICAoMHgwODAwKSAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IDIgKi8KKworI2RlZmluZSBTRDE2RElWXzAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzEgKi8KKyNkZWZpbmUgU0QxNkRJVl8xICAgICAgICAgICAgICAoU0QxNkRJVjApICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC8yICovCisjZGVmaW5lIFNEMTZESVZfMiAgICAgICAgICAgICAgKFNEMTZESVYxKSAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvNCAqLworI2RlZmluZSBTRDE2RElWXzMgICAgICAgICAgIChTRDE2RElWMCtTRDE2RElWMSkgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvOCAqLworCisjZGVmaW5lIFNEMTZYRElWXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IC8xICovCisjZGVmaW5lIFNEMTZYRElWXzEgICAgICAgICAgICAgKFNEMTZYRElWMCkgICAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IC8zICovCisjZGVmaW5lIFNEMTZYRElWXzIgICAgICAgICAgICAgKFNEMTZYRElWMSkgICAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IC8xNiAqLworI2RlZmluZSBTRDE2WERJVl8zICAgICAgICAgIChTRDE2WERJVjArU0QxNlhESVYxKSAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IC80OCAqLworCisjZGVmaW5lIFNEMTZTU0VMXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IE1DTEsgICovCisjZGVmaW5lIFNEMTZTU0VMXzEgICAgICAgICAgICAgKFNEMTZTU0VMMCkgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IFNNQ0xLICovCisjZGVmaW5lIFNEMTZTU0VMXzIgICAgICAgICAgICAgKFNEMTZTU0VMMSkgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IEFDTEsgICovCisjZGVmaW5lIFNEMTZTU0VMXzMgICAgICAgICAgKFNEMTZTU0VMMCtTRDE2U1NFTDEpICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgVEFDTEsgKi8KKworLyogU0QxNkNDVEx4ICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDAxKSAgLyogUkVTRVJWRUQgKi8KKyNkZWZpbmUgU0QxNlNDICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTRDE2IFN0YXJ0IENvbnZlcnNpb24gKi8KKyNkZWZpbmUgU0QxNklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBTRDE2SUUgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgU0QxNkRGICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBEYXRhIEZvcm1hdDogMDpVbmlwb2xhci8xOkJpcG9sYXIgKi8KKyNkZWZpbmUgU0QxNk9WSUZHICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyZmxvdyBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBTRDE2TFNCQUNDICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEFjY2VzcyBMU0Igb2YgQURDICovCisjZGVmaW5lIFNEMTZMU0JUT0cgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggVG9nZ2xlIExTQiBPdXRwdXQgb2YgQURDICovCisjZGVmaW5lIFNEMTZPU1IwICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDAgKi8KKyNkZWZpbmUgU0QxNk9TUjEgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMSAqLworI2RlZmluZSBTRDE2U05HTCAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IFNpbmdsZSBDb252ZXJzaW9uIE9uL09mZiAqLworI2RlZmluZSBTRDE2WE9TUiAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEV4dGVuZGVkIE92ZXJTYW1wbGluZyBSYXRpbyAqLworI2RlZmluZSBTRDE2VU5JICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEJpcG9sYXIoMCkgLyBVbmlwb2xhcigxKSBNb2RlICovCisKKyNkZWZpbmUgU0QxNk9TUl8xMDI0ICAgICAgICAoU0QxNk9TUjArU0QxNlhPU1IpICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMTAyNCAqLworI2RlZmluZSBTRDE2T1NSXzUxMiAgICAgICAgICAgIChTRDE2WE9TUikgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyA1MTIgKi8KKyNkZWZpbmUgU0QxNk9TUl8yNTYgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMjU2ICovCisjZGVmaW5lIFNEMTZPU1JfMTI4ICAgICAgICAgICAgKFNEMTZPU1IwKSAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDEyOCAqLworI2RlZmluZSBTRDE2T1NSXzY0ICAgICAgICAgICAgIChTRDE2T1NSMSkgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAgNjQgKi8KKyNkZWZpbmUgU0QxNk9TUl8zMiAgICAgICAgICAoU0QxNk9TUjArU0QxNk9TUjEpICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gIDMyICovCisKKy8qIFNEMTZJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBTRDE2SVZfTk9ORSAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFNEMTZJVl9TRDE2T1ZJRkcgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNk9WSUZHICovCisjZGVmaW5lIFNEMTZJVl9TRDE2TUVNMCAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNk1FTTAgU0QxNklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEyCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTJfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTJJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfMiAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0kKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VTSV9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFVTSUNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0kgIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVVNJQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTSSAgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfOEJJVChVU0lDS0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNJICBDbG9jayBDb250cm9sIFJlZ2lzdGVyICovCitTRlJfOEJJVChVU0lDTlQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNJICBCaXQgQ291bnRlciBSZWdpc3RlciAqLworU0ZSXzhCSVQoVVNJU1JMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTSSAgTG93IEJ5dGUgU2hpZnQgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVTSVNSSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0kgIEhpZ2ggQnl0ZSBTaGlmdCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFVTSUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTSSAgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFVTSUNDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTSSAgQ2xvY2sgYW5kIENvdW50ZXIgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFVTSVNSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTSSAgU2hpZnQgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBVU0lQRTcgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTSSAgUG9ydCBFbmFibGUgUHguNyAqLworI2RlZmluZSBVU0lQRTYgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTSSAgUG9ydCBFbmFibGUgUHguNiAqLworI2RlZmluZSBVU0lQRTUgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFVTSSAgUG9ydCBFbmFibGUgUHguNSAqLworI2RlZmluZSBVU0lMU0IgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFVTSSAgTFNCIGZpcnN0ICAxOkxTQiAvIDA6TVNCICovCisjZGVmaW5lIFVTSU1TVCAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNJICBNYXN0ZXIgU2VsZWN0ICAwOlNsYXZlIC8gMTpNYXN0ZXIgKi8KKyNkZWZpbmUgVVNJR0UgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVU0kgIEdlbmVyYWwgT3V0cHV0IEVuYWJsZSBMYXRjaCAqLworI2RlZmluZSBVU0lPRSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTSSAgT3V0cHV0IEVuYWJsZSAqLworI2RlZmluZSBVU0lTV1JTVCAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTSSAgU29mdHdhcmUgUmVzZXQgKi8KKworI2RlZmluZSBVU0lDS1BIICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTSSAgU3luYy4gTW9kZTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgVVNJSTJDICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0kgIEkyQyBNb2RlICovCisjZGVmaW5lIFVTSVNUVElFICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNJICBTVEFSVCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVU0lJRSAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFVTSSAgQ291bnRlciBJbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVTSUFMICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNJICBBcmJpdHJhdGlvbiBMb3N0ICovCisjZGVmaW5lIFVTSVNUUCAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNJICBTVE9QIENvbmRpdGlvbiByZWNlaXZlZCAqLworI2RlZmluZSBVU0lTVFRJRkcgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTSSAgU1RBUlQgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVTSUlGRyAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNJICBDb3VudGVyIEludGVycnVwdCBGbGFnICovCisKKyNkZWZpbmUgVVNJRElWMiAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0kgIENsb2NrIERpdmlkZXIgMiAqLworI2RlZmluZSBVU0lESVYxICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgRGl2aWRlciAxICovCisjZGVmaW5lIFVTSURJVjAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNJICBDbG9jayBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgVVNJU1NFTDIgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0kgIENsb2NrIFNvdXJjZSBTZWxlY3QgMiAqLworI2RlZmluZSBVU0lTU0VMMSAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFVTSVNTRUwwICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNJICBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVVNJQ0tQTCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0kgIENsb2NrIFBvbGFyaXR5IDA6SW5hY3RpdmU9TG93IC8gMTpJbmFjdGl2ZT1IaWdoICovCisjZGVmaW5lIFVTSVNXQ0xLICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNJICBTb2Z0d2FyZSBDbG9jayAqLworCisjZGVmaW5lIFVTSURJVl8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNJICBDbG9jayBEaXZpZGVyOiAwICovCisjZGVmaW5lIFVTSURJVl8xICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNJICBDbG9jayBEaXZpZGVyOiAxICovCisjZGVmaW5lIFVTSURJVl8yICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNJICBDbG9jayBEaXZpZGVyOiAyICovCisjZGVmaW5lIFVTSURJVl8zICAgICAgICAgICAgICAgKDB4NjApICAgICAgICAgLyogVVNJICBDbG9jayBEaXZpZGVyOiAzICovCisjZGVmaW5lIFVTSURJVl80ICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNJICBDbG9jayBEaXZpZGVyOiA0ICovCisjZGVmaW5lIFVTSURJVl81ICAgICAgICAgICAgICAgKDB4QTApICAgICAgICAgLyogVVNJICBDbG9jayBEaXZpZGVyOiA1ICovCisjZGVmaW5lIFVTSURJVl82ICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogVVNJICBDbG9jayBEaXZpZGVyOiA2ICovCisjZGVmaW5lIFVTSURJVl83ICAgICAgICAgICAgICAgKDB4RTApICAgICAgICAgLyogVVNJICBDbG9jayBEaXZpZGVyOiA3ICovCisKKyNkZWZpbmUgVVNJU1NFTF8wICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0kgIENsb2NrIFNvdXJjZTogMCAqLworI2RlZmluZSBVU0lTU0VMXzEgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgU291cmNlOiAxICovCisjZGVmaW5lIFVTSVNTRUxfMiAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNJICBDbG9jayBTb3VyY2U6IDIgKi8KKyNkZWZpbmUgVVNJU1NFTF8zICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBVU0kgIENsb2NrIFNvdXJjZTogMyAqLworI2RlZmluZSBVU0lTU0VMXzQgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgU291cmNlOiA0ICovCisjZGVmaW5lIFVTSVNTRUxfNSAgICAgICAgICAgICAgKDB4MTQpICAgICAgICAgLyogVVNJICBDbG9jayBTb3VyY2U6IDUgKi8KKyNkZWZpbmUgVVNJU1NFTF82ICAgICAgICAgICAgICAoMHgxOCkgICAgICAgICAvKiBVU0kgIENsb2NrIFNvdXJjZTogNiAqLworI2RlZmluZSBVU0lTU0VMXzcgICAgICAgICAgICAgICgweDFDKSAgICAgICAgIC8qIFVTSSAgQ2xvY2sgU291cmNlOiA3ICovCisKKyNkZWZpbmUgVVNJU0NMUkVMICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0kgIFNDTCBSZWxlYXNlZCAqLworI2RlZmluZSBVU0kxNkIgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTSSAgMTYgQml0IFNoaWZ0IFJlZ2lzdGVyIEVuYWJsZSAqLworI2RlZmluZSBVU0lJRkdDQyAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFVTSSAgSW50ZXJydXB0IEZsYWcgQ2xlYXIgQ29udHJvbCAqLworI2RlZmluZSBVU0lDTlQ0ICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFVTSSAgQml0IENvdW50IDQgKi8KKyNkZWZpbmUgVVNJQ05UMyAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0kgIEJpdCBDb3VudCAzICovCisjZGVmaW5lIFVTSUNOVDIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNJICBCaXQgQ291bnQgMiAqLworI2RlZmluZSBVU0lDTlQxICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTSSAgQml0IENvdW50IDEgKi8KKyNkZWZpbmUgVVNJQ05UMCAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0kgIEJpdCBDb3VudCAwICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENhbGlicmF0aW9uIERhdGEgaW4gSW5mbyBNZW0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX0Rpc2FibGVDYWxEYXRhCisKK1NGUl84QklUKENBTERDT18xNk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDE2TUh6ICovCitTRlJfOEJJVChDQUxCQzFfMTZNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzEyTUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTJNSHogKi8KK1NGUl84QklUKENBTEJDMV8xMk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCitTRlJfOEJJVChDQUxEQ09fOE1IWik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciA4TUh6ICovCitTRlJfOEJJVChDQUxCQzFfOE1IWik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciA4TUh6ICovCitTRlJfOEJJVChDQUxEQ09fMU1IWik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxTUh6ICovCitTRlJfOEJJVChDQUxCQzFfMU1IWik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxTUh6ICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fRGlzYWJsZUNhbERhdGEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDIgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAyIikgICovIC8qIDB4RkZFNCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0lfVkVDVE9SICAgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBVU0kgKi8KKy8qI2RlZmluZSBVU0lfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFVTSSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgU0QxNl9WRUNUT1IgICAgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgU2lnbWEgRGVsdGEgQURDICovCisvKiNkZWZpbmUgU0QxNl9JU1IoZnVuYykgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA1IikgICovIC8qIDB4RkZFQSBTaWdtYSBEZWx0YSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTFfVkVDVE9SICAgICAgICAgICg4ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFRpbWVyIEEgQ0MxLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOCIpICAqLyAvKiAweEZGRjAgVGltZXIgQSBDQzEsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MjB4MyAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDIxeDEuaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjF4MS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzYTMyNjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDIxeDEuaApAQCAtMCwwICsxLDUxMCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIFN0YW5kYXJkIHJlZ2lzdGVyIGFuZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cworKiBNU1A0MzAgbWljcm9jb250cm9sbGVyLgorKgorKiBUaGlzIGZpbGUgc3VwcG9ydHMgYXNzZW1ibGVyIGFuZCBDIGRldmVsb3BtZW50IGZvcgorKiBNU1A0MzB4MjF4MSBkZXZpY2VzLgorKgorKiBUZXhhcyBJbnN0cnVtZW50cywgVmVyc2lvbiAxLjIKKyoKKyogUmV2LiAxLjAsIFNldHVwCisqCisqIFJldi4gMS4xLCBSZW1vdmVkIHVudXNlZCBkZWYgb2YgVEFTU0VMMgorKiBSZXYuIDEuMiwgYWRkZWQgZGVmaW5pdGlvbnMgZm9yIEludGVycnVwdCBWZWN0b3JzIHh4SVYKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDIxeDEKKyNkZWZpbmUgX19tc3A0MzB4MjF4MQorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFBFUklQSEVSQUwgRklMRSBNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBFeHRlcm5hbCByZWZlcmVuY2VzIHJlc29sdmVkIGJ5IGEgZGV2aWNlLXNwZWNpZmljIGxpbmtlciBjb21tYW5kIGZpbGUgKi8KKyNkZWZpbmUgU0ZSXzhCSVQoYWRkcmVzcykgICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgY2hhciBhZGRyZXNzCisjZGVmaW5lIFNGUl8xNkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFOREFSRCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQklUMCAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBCSVQxICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIEJJVDIgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgQklUMyAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBCSVQ0ICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIEJJVDUgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgQklUNiAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBCSVQ3ICAgICAgICAgICAgICAgICAgICgweDAwODApCisjZGVmaW5lIEJJVDggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgQklUOSAgICAgICAgICAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBCSVRBICAgICAgICAgICAgICAgICAgICgweDA0MDApCisjZGVmaW5lIEJJVEIgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkKKyNkZWZpbmUgQklUQyAgICAgICAgICAgICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBCSVREICAgICAgICAgICAgICAgICAgICgweDIwMDApCisjZGVmaW5lIEJJVEUgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkKKyNkZWZpbmUgQklURiAgICAgICAgICAgICAgICAgICAoMHg4MDAwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQVRVUyBSRUdJU1RFUiBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQyAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBaICAgICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIE4gICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgViAgICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBHSUUgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgT1NDT0ZGICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBTQ0cwICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFNDRzEgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworLyogTG93IFBvd2VyIE1vZGVzIGNvZGVkIHdpdGggQml0cyA0LTcgaW4gU1IgKi8KKworI2lmZGVmIF9fQVNNX0hFQURFUl9fIC8qIEJlZ2luICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKyNkZWZpbmUgTFBNMCAgICAgICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xICAgICAgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMiAgICAgICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTMgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTQgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorLyogRW5kICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKworI2Vsc2UgLyogQmVnaW4gI2RlZmluZXMgZm9yIEMgKi8KKyNkZWZpbmUgTFBNMF9iaXRzICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xX2JpdHMgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMl9iaXRzICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTNfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTRfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorCisjaW5jbHVkZSA8SW40MzAuaD4KKworI2RlZmluZSBMUE0wICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0wX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0wX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTBfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTEgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTFfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTFfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMV9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMiAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMl9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMl9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0yX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0zICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0zX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE0zX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTQgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTRfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSA0ICovCisjZGVmaW5lIExQTTRfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNNF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDQgKi8KKyNlbmRpZiAvKiBFbmQgI2RlZmluZXMgZm9yIEMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1BFQ0lBTCBGVU5DVElPTiBSRUdJU1RFUiBBRERSRVNTRVMgKyBDT05UUk9MIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworU0ZSXzhCSVQoSUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMSAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBPc2MuIEZhdWx0ICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBGbGFzaCBBY2Nlc3MgVmlvbGF0aW9uIEludGVycnVwdCBFbmFibGUgKi8KKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBXYXRjaGRvZyBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgUE9SSUZHICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBQb3dlciBPbiBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSU1RJRkcgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlc2V0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBGbGFnICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQmFzaWMgQ2xvY2sgTW9kdWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CQzJfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChEQ09DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCitTRlJfOEJJVChCQ1NDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQkNTQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDIgKi8KK1NGUl84QklUKEJDU0NUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAzICovCisKKyNkZWZpbmUgTU9EMCAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAwICovCisjZGVmaW5lIE1PRDEgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMSAqLworI2RlZmluZSBNT0QyICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDIgKi8KKyNkZWZpbmUgTU9EMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAzICovCisjZGVmaW5lIE1PRDQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgNCAqLworI2RlZmluZSBEQ08wICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgRENPMSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIERDTzIgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMiAqLworCisjZGVmaW5lIFJTRUwwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIFJTRUwxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIFJTRUwyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIFJTRUwzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAzICovCisjZGVmaW5lIERJVkEwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWQTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBYVFMgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExGWFRDTEsgMDpMb3cgRnJlcS4gLyAxOiBIaWdoIEZyZXEuICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRW5hYmxlIFhUMkNMSyAqLworCisjZGVmaW5lIERJVkFfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVkFfMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVkFfMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVkFfMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRElWUzAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWUzEgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgU0VMUyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDA6RENPQ0xLIC8gMTpYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBESVZNMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVk0xICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgU0VMTTAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxNMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxICovCisKKyNkZWZpbmUgRElWU18wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVlNfMSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZTXzIgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWU18zICAgICAgICAgICAgICAgICAoMHgwNikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRElWTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWTV8xICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWTV8yICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMjogLzQgKi8KKyNkZWZpbmUgRElWTV8zICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBTRUxNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMTogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDI6IFhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIFNFTE1fMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDM6IExGWFRDTEsgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIExGWFQxT0YgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTG93L2hpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDJPRiAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEhpZ2ggZnJlcXVlbmN5IG9zY2lsbGF0b3IgMiBmYXVsdCBmbGFnICovCisjZGVmaW5lIFhDQVAwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDAgKi8KKyNkZWZpbmUgWENBUDEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMSAqLworI2RlZmluZSBMRlhUMVMwICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgTEZYVDEgKFhUUyA9IDApICovCisjZGVmaW5lIExGWFQxUzEgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTW9kZSAxIGZvciBMRlhUMSAoWFRTID0gMCkgKi8KKyNkZWZpbmUgWFQyUzAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNb2RlIDAgZm9yIFhUMiAqLworI2RlZmluZSBYVDJTMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgWFQyICovCisKKyNkZWZpbmUgWENBUF8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAwIHBGICovCisjZGVmaW5lIFhDQVBfMSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogNiBwRiAqLworI2RlZmluZSBYQ0FQXzIgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDEwIHBGICovCisjZGVmaW5lIFhDQVBfMyAgICAgICAgICAgICAgICAgKDB4MEMpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMTIuNSBwRiAqLworCisjZGVmaW5lIExGWFQxU18wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTW9kZSAwIGZvciBMRlhUMSA6IE5vcm1hbCBvcGVyYXRpb24gKi8KKyNkZWZpbmUgTEZYVDFTXzEgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2RlIDEgZm9yIExGWFQxIDogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgTEZYVDFTXzIgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNb2RlIDIgZm9yIExGWFQxIDogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgTEZYVDFTXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNb2RlIDMgZm9yIExGWFQxIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworI2RlZmluZSBYVDJTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyIDogMC40IC0gMSBNSHogKi8KKyNkZWZpbmUgWFQyU18xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiA6IDEgLSA0IE1IeiAqLworI2RlZmluZSBYVDJTXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgWFQyIDogMiAtIDE2IE1IeiAqLworI2RlZmluZSBYVDJTXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgWFQyIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NBUExVU19fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSArVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIC1UZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBMiAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgLVRlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIFAyQ0EzICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSAtVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTQgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBICtUZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBDQVNIT1JUICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgU2hvcnQgKyBhbmQgLSBUZXJtaW5hbHMgKi8KKworI2RlZmluZSBDQVBEMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMCAqLworI2RlZmluZSBDQVBEMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMSAqLworI2RlZmluZSBDQVBEMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMiAqLworI2RlZmluZSBDQVBEMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMyAqLworI2RlZmluZSBDQVBENCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNCAqLworI2RlZmluZSBDQVBENSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNSAqLworI2RlZmluZSBDQVBENiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNiAqLworI2RlZmluZSBDQVBENyAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSDJfXyAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBFRUkgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEVuYWJsZSBFcmFzZSBJbnRlcnJ1cHRzICovCisjZGVmaW5lIEVFSUVYICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRW5hYmxlIEVtZXJnZW5jeSBJbnRlcnJ1cHQgRXhpdCAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisjZGVmaW5lIExPQ0tBICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU2VnbWVudCBBIExvY2sgYml0OiByZWFkID0gMSAtIFNlZ21lbnQgaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEZBSUwgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogTGFzdCBQcm9ncmFtIG9yIEVyYXNlIGZhaWxlZCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCitTRlJfOEJJVChQMVJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFJlc2lzdG9yIEVuYWJsZSAqLworCitTRlJfOEJJVChQMklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIElucHV0ICovCitTRlJfOEJJVChQMk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIE91dHB1dCAqLworU0ZSXzhCSVQoUDJESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAySUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAyU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uICovCitTRlJfOEJJVChQMlJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFJlc2lzdG9yIEVuYWJsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQUNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQUNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl84ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWX1RBSUZHICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogV0FUQ0hET0cgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1dEVF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChXRFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBXRFRTU0VMICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBXRFROTUkgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFdEVE5NSUVTICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgV0RUSE9MRCAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisjZGVmaW5lIFdEVFBXICAgICAgICAgICAgICAgICAgKDB4NUEwMCkKKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01ETFlfOCAgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzUgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQURMWV8xMDAwICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BRExZXzI1MCAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xXzkgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgLyogMS45bXMgICAiICovCisvKiBXYXRjaGRvZyBtb2RlIC0+IHJlc2V0IGFmdGVyIGV4cGlyZWQgdGltZSAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NUlNUXzMyICAgICAgICAgKFdEVFBXK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfNSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF8wNjQgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMjUwICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xNiAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAvKiAxLjltcyAgICIgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAweDAxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ2FsaWJyYXRpb24gRGF0YSBpbiBJbmZvIE1lbQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fRGlzYWJsZUNhbERhdGEKKworU0ZSXzhCSVQoQ0FMRENPXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTEJDMV8xNk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDE2TUh6ICovCitTRlJfOEJJVChDQUxEQ09fMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzEyTUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTJNSHogKi8KK1NGUl84QklUKENBTERDT184TUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDhNSHogKi8KK1NGUl84QklUKENBTEJDMV84TUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDhNSHogKi8KK1NGUl84QklUKENBTERDT18xTUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDFNSHogKi8KK1NGUl84QklUKENBTEJDMV8xTUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDFNSHogKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGRTApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFNCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDIiKSAgKi8gLyogMHhGRkU0IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDMgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTYgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAzIikgICovIC8qIDB4RkZFNiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTFfVkVDVE9SICAgICAgICAgICg4ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovCisvKiNkZWZpbmUgVElNRVJBMV9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBUaW1lciBBIENDMS0yLCBUQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMF9WRUNUT1IgICAgICAgICAgKDkgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUkEwX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFRpbWVyIEEgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIENPTVBBUkFUT1JBX1ZFQ1RPUiAgICAgICgxMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLworLyojZGVmaW5lIENPTVBBUkFUT1JBX0lTUihmdW5jKSAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMSIpICAqLyAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBOTUlfVkVDVE9SICAgICAgICAgICAgICAoMTQgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8KKy8qI2RlZmluZSBOTUlfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTQiKSAgKi8gLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVRfVkVDVE9SICAgICAgICAgICAgKDE1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovCisvKiNkZWZpbmUgUkVTRVRfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE1IikgICovIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRW5kIG9mIE1vZHVsZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogZXh0ZXJuICJDIiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX21zcDQzMHgyMXgxICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjF4Mi5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyMXgyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzgyYjQ5YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjF4Mi5oCkBAIC0wLDAgKzEsOTMwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgyMXgyIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuMAorKgorKiBSZXYuIDEuMCwgU2V0dXAKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDIxeDIKKyNkZWZpbmUgX19tc3A0MzB4MjF4MgorICAgICAgICAgICAgICAgCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFBFUklQSEVSQUwgRklMRSBNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBFeHRlcm5hbCByZWZlcmVuY2VzIHJlc29sdmVkIGJ5IGEgZGV2aWNlLXNwZWNpZmljIGxpbmtlciBjb21tYW5kIGZpbGUgKi8KKyNkZWZpbmUgU0ZSXzhCSVQoYWRkcmVzcykgICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgY2hhciBhZGRyZXNzCisjZGVmaW5lIFNGUl8xNkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFOREFSRCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQklUMCAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBCSVQxICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIEJJVDIgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgQklUMyAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBCSVQ0ICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIEJJVDUgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgQklUNiAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBCSVQ3ICAgICAgICAgICAgICAgICAgICgweDAwODApCisjZGVmaW5lIEJJVDggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgQklUOSAgICAgICAgICAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBCSVRBICAgICAgICAgICAgICAgICAgICgweDA0MDApCisjZGVmaW5lIEJJVEIgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkKKyNkZWZpbmUgQklUQyAgICAgICAgICAgICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBCSVREICAgICAgICAgICAgICAgICAgICgweDIwMDApCisjZGVmaW5lIEJJVEUgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkKKyNkZWZpbmUgQklURiAgICAgICAgICAgICAgICAgICAoMHg4MDAwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQVRVUyBSRUdJU1RFUiBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQyAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBaICAgICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIE4gICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgViAgICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBHSUUgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgT1NDT0ZGICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBTQ0cwICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFNDRzEgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworLyogTG93IFBvd2VyIE1vZGVzIGNvZGVkIHdpdGggQml0cyA0LTcgaW4gU1IgKi8KKworI2lmZGVmIF9fQVNNX0hFQURFUl9fIC8qIEJlZ2luICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKyNkZWZpbmUgTFBNMCAgICAgICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xICAgICAgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMiAgICAgICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTMgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTQgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorLyogRW5kICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKworI2Vsc2UgLyogQmVnaW4gI2RlZmluZXMgZm9yIEMgKi8KKyNkZWZpbmUgTFBNMF9iaXRzICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xX2JpdHMgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMl9iaXRzICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTNfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTRfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorCisjaW5jbHVkZSA8SW40MzAuaD4KKworI2RlZmluZSBMUE0wICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0wX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0wX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTBfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTEgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTFfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTFfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMV9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMiAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMl9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMl9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0yX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0zICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0zX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE0zX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTQgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTRfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSA0ICovCisjZGVmaW5lIExQTTRfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNNF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDQgKi8KKyNlbmRpZiAvKiBFbmQgI2RlZmluZXMgZm9yIEMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1BFQ0lBTCBGVU5DVElPTiBSRUdJU1RFUiBBRERSRVNTRVMgKyBDT05UUk9MIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworU0ZSXzhCSVQoSUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMSAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBPc2MuIEZhdWx0ICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBGbGFzaCBBY2Nlc3MgVmlvbGF0aW9uIEludGVycnVwdCBFbmFibGUgKi8KKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBXYXRjaGRvZyBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgUE9SSUZHICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBQb3dlciBPbiBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSU1RJRkcgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlc2V0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBGbGFnICovCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVUMwSUUgICAgICAgICAgICAgICAgICBJRTIKKyNkZWZpbmUgVUNBMFJYSUUgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVUNBMFRYSUUgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVUNCMFJYSUUgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVUNCMFRYSUUgICAgICAgICAgICAgICAoMHgwOCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgVUMwSUZHICAgICAgICAgICAgICAgICBJRkcyCisjZGVmaW5lIFVDQTBSWElGRyAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTBUWElGRyAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjBSWElGRyAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjBUWElGRyAgICAgICAgICAgICAgKDB4MDgpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQURDMTAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0FEQzEwX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKEFEQzEwRFRDMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBEYXRhIFRyYW5zZmVyIENvbnRyb2wgMCAqLworU0ZSXzhCSVQoQURDMTBEVEMxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIERhdGEgVHJhbnNmZXIgQ29udHJvbCAxICovCitTRlJfOEJJVChBREMxMEFFMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgQW5hbG9nIEVuYWJsZSAwICovCitTRlJfOEJJVChBREMxMEFFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgQW5hbG9nIEVuYWJsZSAxICovCisKK1NGUl8xNkJJVChBREMxMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChBREMxMENUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChBREMxME1FTSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBNZW1vcnkgKi8KK1NGUl8xNkJJVChBREMxMFNBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBEYXRhIFRyYW5zZmVyIFN0YXJ0IEFkZHJlc3MgKi8KKworLyogQURDMTBDVEwwICovCisjZGVmaW5lIEFEQzEwU0MgICAgICAgICAgICAgICAgKDB4MDAxKSAgICAgICAgLyogQURDMTAgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBFTkMgICAgICAgICAgICAgICAgICAgICgweDAwMikgICAgICAgIC8qIEFEQzEwIEVuYWJsZSBDb252ZXJzaW9uICovCisjZGVmaW5lIEFEQzEwSUZHICAgICAgICAgICAgICAgKDB4MDA0KSAgICAgICAgLyogQURDMTAgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQURDMTBJRSAgICAgICAgICAgICAgICAoMHgwMDgpICAgICAgICAvKiBBREMxMCBJbnRlcnJ1cHQgRW5hbGJlICovCisjZGVmaW5lIEFEQzEwT04gICAgICAgICAgICAgICAgKDB4MDEwKSAgICAgICAgLyogQURDMTAgT24vRW5hYmxlICovCisjZGVmaW5lIFJFRk9OICAgICAgICAgICAgICAgICAgKDB4MDIwKSAgICAgICAgLyogQURDMTAgUmVmZXJlbmNlIG9uICovCisjZGVmaW5lIFJFRjJfNVYgICAgICAgICAgICAgICAgKDB4MDQwKSAgICAgICAgLyogQURDMTAgUmVmIDA6MS41ViAvIDE6Mi41ViAqLworI2RlZmluZSBNU0MgICAgICAgICAgICAgICAgICAgICgweDA4MCkgICAgICAgIC8qIEFEQzEwIE11bHRpcGxlIFNhbXBsZUNvbnZlcnNpb24gKi8KKyNkZWZpbmUgUkVGQlVSU1QgICAgICAgICAgICAgICAoMHgxMDApICAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgQnVyc3QgTW9kZSAqLworI2RlZmluZSBSRUZPVVQgICAgICAgICAgICAgICAgICgweDIwMCkgICAgICAgIC8qIEFEQzEwIEVuYWxiZSBvdXRwdXQgb2YgUmVmLiAqLworI2RlZmluZSBBREMxMFNSICAgICAgICAgICAgICAgICgweDQwMCkgICAgICAgIC8qIEFEQzEwIFNhbXBsaW5nIFJhdGUgMDoyMDBrc3BzIC8gMTo1MGtzcHMgKi8KKyNkZWZpbmUgQURDMTBTSFQwICAgICAgICAgICAgICAoMHg4MDApICAgICAgICAvKiBBREMxMCBTYW1wbGUgSG9sZCBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMFNIVDEgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFEQzEwIFNhbXBsZSBIb2xkIFNlbGVjdCAxICovCisjZGVmaW5lIFNSRUYwICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTAgUmVmZXJlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNSRUYxICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQURDMTAgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFNSRUYzICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTAgUmVmZXJlbmNlIFNlbGVjdCAyICovCisjZGVmaW5lIEFEQzEwU0hUXzAgICAgICAgICAgICAgKDAqMHg4MDB1KSAgICAgLyogNCB4IEFEQzEwQ0xLcyAqLworI2RlZmluZSBBREMxMFNIVF8xICAgICAgICAgICAgICgxKjB4ODAwdSkgICAgIC8qIDggeCBBREMxMENMS3MgKi8KKyNkZWZpbmUgQURDMTBTSFRfMiAgICAgICAgICAgICAoMioweDgwMHUpICAgICAvKiAxNiB4IEFEQzEwQ0xLcyAqLworI2RlZmluZSBBREMxMFNIVF8zICAgICAgICAgICAgICgzKjB4ODAwdSkgICAgIC8qIDY0IHggQURDMTBDTEtzICovCisKKyNkZWZpbmUgU1JFRl8wICAgICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBWUisgPSBBVkNDIGFuZCBWUi0gPSBBVlNTICovCisjZGVmaW5lIFNSRUZfMSAgICAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVlIrID0gVlJFRisgYW5kIFZSLSA9IEFWU1MgKi8KKyNkZWZpbmUgU1JFRl8yICAgICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBWUisgPSBWRVJFRisgYW5kIFZSLSA9IEFWU1MgKi8KKyNkZWZpbmUgU1JFRl8zICAgICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBWUisgPSBWRVJFRisgYW5kIFZSLSA9IEFWU1MgKi8KKyNkZWZpbmUgU1JFRl80ICAgICAgICAgICAgICAgICAoNCoweDIwMDB1KSAgICAvKiBWUisgPSBBVkNDIGFuZCBWUi0gPSBWUkVGLS9WRVJFRi0gKi8KKyNkZWZpbmUgU1JFRl81ICAgICAgICAgICAgICAgICAoNSoweDIwMDB1KSAgICAvKiBWUisgPSBWUkVGKyBhbmQgVlItID0gVlJFRi0vVkVSRUYtICovCisjZGVmaW5lIFNSRUZfNiAgICAgICAgICAgICAgICAgKDYqMHgyMDAwdSkgICAgLyogVlIrID0gVkVSRUYrIGFuZCBWUi0gPSBWUkVGLS9WRVJFRi0gKi8KKyNkZWZpbmUgU1JFRl83ICAgICAgICAgICAgICAgICAoNyoweDIwMDB1KSAgICAvKiBWUisgPSBWRVJFRisgYW5kIFZSLSA9IFZSRUYtL1ZFUkVGLSAqLworCisvKiBBREMxMENUTDEgKi8KKyNkZWZpbmUgQURDMTBCVVNZICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBBREMxMENUTDEgKi8KKyNkZWZpbmUgQ09OU0VRMCAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMCBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENPTlNFUTEgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTAgQ29udmVyc2lvbiBTZXF1ZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMFNTRUwwICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEwIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMFNTRUwxICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMERJVjAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEwIENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTBESVYxICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBBREMxMCBDbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEwRElWMiAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTAgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMiAqLworI2RlZmluZSBJU1NIICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEwIEludmVydCBTYW1wbGUgSG9sZCBTaWduYWwgKi8KKyNkZWZpbmUgQURDMTBERiAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMCBEYXRhIEZvcm1hdCAwOmJpbmFyeSAxOjIncyBjb21wbGVtZW50ICovCisjZGVmaW5lIFNIUzAgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTAgU2FtcGxlL0hvbGQgU291cmNlIDAgKi8KKyNkZWZpbmUgU0hTMSAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBBREMxMCBTYW1wbGUvSG9sZCBTb3VyY2UgMSAqLworI2RlZmluZSBJTkNIMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFEQzEwIElucHV0IENoYW5uZWwgU2VsZWN0IDAgKi8KKyNkZWZpbmUgSU5DSDEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMCBJbnB1dCBDaGFubmVsIFNlbGVjdCAxICovCisjZGVmaW5lIElOQ0gyICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQURDMTAgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgMiAqLworI2RlZmluZSBJTkNIMyAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEFEQzEwIElucHV0IENoYW5uZWwgU2VsZWN0IDMgKi8KKworI2RlZmluZSBDT05TRVFfMCAgICAgICAgICAgICAgICgwKjJ1KSAgICAgICAgIC8qIFNpbmdsZSBjaGFubmVsIHNpbmdsZSBjb252ZXJzaW9uICovCisjZGVmaW5lIENPTlNFUV8xICAgICAgICAgICAgICAgKDEqMnUpICAgICAgICAgLyogU2VxdWVuY2Ugb2YgY2hhbm5lbHMgKi8KKyNkZWZpbmUgQ09OU0VRXzIgICAgICAgICAgICAgICAoMioydSkgICAgICAgICAvKiBSZXBlYXQgc2luZ2xlIGNoYW5uZWwgKi8KKyNkZWZpbmUgQ09OU0VRXzMgICAgICAgICAgICAgICAoMyoydSkgICAgICAgICAvKiBSZXBlYXQgc2VxdWVuY2Ugb2YgY2hhbm5lbHMgKi8KKworI2RlZmluZSBBREMxMFNTRUxfMCAgICAgICAgICAgICgwKjh1KSAgICAgICAgIC8qIEFEQzEwT1NDICovCisjZGVmaW5lIEFEQzEwU1NFTF8xICAgICAgICAgICAgKDEqOHUpICAgICAgICAgLyogQUNMSyAqLworI2RlZmluZSBBREMxMFNTRUxfMiAgICAgICAgICAgICgyKjh1KSAgICAgICAgIC8qIE1DTEsgKi8KKyNkZWZpbmUgQURDMTBTU0VMXzMgICAgICAgICAgICAoMyo4dSkgICAgICAgICAvKiBTTUNMSyAqLworCisjZGVmaW5lIEFEQzEwRElWXzAgICAgICAgICAgICAgKDAqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzEgICAgICAgICAgICAgKDEqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzIgICAgICAgICAgICAgKDIqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzMgICAgICAgICAgICAgKDMqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzQgICAgICAgICAgICAgKDQqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzUgICAgICAgICAgICAgKDUqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzYgICAgICAgICAgICAgKDYqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzcgICAgICAgICAgICAgKDcqMHgyMHUpCisKKyNkZWZpbmUgU0hTXzAgICAgICAgICAgICAgICAgICAoMCoweDQwMHUpICAgICAvKiBBREMxMFNDICovCisjZGVmaW5lIFNIU18xICAgICAgICAgICAgICAgICAgKDEqMHg0MDB1KSAgICAgLyogVEEzIE9VVDEgKi8KKyNkZWZpbmUgU0hTXzIgICAgICAgICAgICAgICAgICAoMioweDQwMHUpICAgICAvKiBUQTMgT1VUMCAqLworI2RlZmluZSBTSFNfMyAgICAgICAgICAgICAgICAgICgzKjB4NDAwdSkgICAgIC8qIFRBMyBPVVQyICovCisKKyNkZWZpbmUgSU5DSF8wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBJTkNIXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF8zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBJTkNIXzQgICAgICAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfNSAgICAgICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF82ICAgICAgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBJTkNIXzcgICAgICAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfOCAgICAgICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF85ICAgICAgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBJTkNIXzEwICAgICAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBJTkNIXzExICAgICAgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBJTkNIXzEyICAgICAgICAgICAgICAgICgxMioweDEwMDB1KSAgIC8qIFNlbGVjdHMgQ2hhbm5lbCAxMSAqLworI2RlZmluZSBJTkNIXzEzICAgICAgICAgICAgICAgICgxMyoweDEwMDB1KSAgIC8qIFNlbGVjdHMgQ2hhbm5lbCAxMSAqLworI2RlZmluZSBJTkNIXzE0ICAgICAgICAgICAgICAgICgxNCoweDEwMDB1KSAgIC8qIFNlbGVjdHMgQ2hhbm5lbCAxMSAqLworI2RlZmluZSBJTkNIXzE1ICAgICAgICAgICAgICAgICgxNSoweDEwMDB1KSAgIC8qIFNlbGVjdHMgQ2hhbm5lbCAxMSAqLworCisvKiBBREMxMERUQzAgKi8KKyNkZWZpbmUgQURDMTBGRVRDSCAgICAgICAgICAgICAoMHgwMDEpCisjZGVmaW5lIEFEQzEwQjEgICAgICAgICAgICAgICAgKDB4MDAyKQorI2RlZmluZSBBREMxMENUICAgICAgICAgICAgICAgICgweDAwNCkKKyNkZWZpbmUgQURDMTBUQiAgICAgICAgICAgICAgICAoMHgwMDgpCisjZGVmaW5lIEFEQzEwRElTQUJMRSAgICAgICAgICAgKDB4MDAwKSAgICAgICAgLyogQURDMTBEVEMxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQmFzaWMgQ2xvY2sgTW9kdWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CQzJfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChEQ09DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCitTRlJfOEJJVChCQ1NDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQkNTQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDIgKi8KK1NGUl84QklUKEJDU0NUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAzICovCisKKyNkZWZpbmUgTU9EMCAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAwICovCisjZGVmaW5lIE1PRDEgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMSAqLworI2RlZmluZSBNT0QyICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDIgKi8KKyNkZWZpbmUgTU9EMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAzICovCisjZGVmaW5lIE1PRDQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgNCAqLworI2RlZmluZSBEQ08wICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgRENPMSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIERDTzIgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMiAqLworCisjZGVmaW5lIFJTRUwwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIFJTRUwxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIFJTRUwyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIFJTRUwzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAzICovCisjZGVmaW5lIERJVkEwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWQTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBYVFMgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExGWFRDTEsgMDpMb3cgRnJlcS4gLyAxOiBIaWdoIEZyZXEuICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRW5hYmxlIFhUMkNMSyAqLworCisjZGVmaW5lIERJVkFfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVkFfMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVkFfMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVkFfMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRENPUiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBFbmFibGUgRXh0ZXJuYWwgUmVzaXN0b3IgOiAxICovCisjZGVmaW5lIERJVlMwICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVlMxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCAwOkRDT0NMSyAvIDE6WFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgRElWTTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZNMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTE0wICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0VMTTEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMSAqLworCisjZGVmaW5lIERJVlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZTXzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWU18yICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVlNfMyAgICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERJVk1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVk1fMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVk1fMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVk1fMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgU0VMTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMDogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMSAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDE6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAyOiBYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBTRUxNXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAzOiBMRlhUQ0xLICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBMRlhUMU9GICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIExvdy9oaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgWFQyT0YgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBIaWdoIGZyZXF1ZW5jeSBvc2NpbGxhdG9yIDIgZmF1bHQgZmxhZyAqLworI2RlZmluZSBYQ0FQMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIFhDQVAxICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgTEZYVDFTMCAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBMRlhUMVMxICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgKFhUUyA9IDApICovCisjZGVmaW5lIFhUMlMwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgKi8KKyNkZWZpbmUgWFQyUzEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiAqLworCisjZGVmaW5lIFhDQVBfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMCBwRiAqLworI2RlZmluZSBYQ0FQXzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDYgcEYgKi8KKyNkZWZpbmUgWENBUF8yICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMCBwRiAqLworI2RlZmluZSBYQ0FQXzMgICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDEyLjUgcEYgKi8KKworI2RlZmluZSBMRlhUMVNfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgTEZYVDEgOiBOb3JtYWwgb3BlcmF0aW9uICovCisjZGVmaW5lIExGWFQxU18xICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAxIGZvciBMRlhUMSA6IFJlc2VydmVkICovCisjZGVmaW5lIExGWFQxU18yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTW9kZSAyIGZvciBMRlhUMSA6IFZMTyAqLworI2RlZmluZSBMRlhUMVNfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgTEZYVDEgOiBEaWdpdGFsIGlucHV0IHNpZ25hbCAqLworCisjZGVmaW5lIFhUMlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgOiAwLjQgLSAxIE1IeiAqLworI2RlZmluZSBYVDJTXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgWFQyIDogMSAtIDQgTUh6ICovCisjZGVmaW5lIFhUMlNfMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAyIGZvciBYVDIgOiAyIC0gMTYgTUh6ICovCisjZGVmaW5lIFhUMlNfMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTW9kZSAzIGZvciBYVDIgOiBEaWdpdGFsIGlucHV0IHNpZ25hbCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvbXBhcmF0b3IgQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQ0FQTFVTX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQ0FDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDEgKi8KK1NGUl84QklUKENBQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAyICovCitTRlJfOEJJVChDQVBEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIFBvcnQgRGlzYWJsZSAqLworCisjZGVmaW5lIENBSUZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBDQUlFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBDQUlFUyAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBFZGdlIFNlbGVjdDogMDpyaXNpbmcgLyAxOmZhbGxpbmcgKi8KKyNkZWZpbmUgQ0FPTiAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIGVuYWJsZSAqLworI2RlZmluZSBDQVJFRjAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENBUkVGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0FSU0VMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBFbmFibGUgKi8KKyNkZWZpbmUgQ0FFWCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIEV4Y2hhbmdlIElucHV0cyAqLworCisjZGVmaW5lIENBUkVGXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDAgOiBPZmYgKi8KKyNkZWZpbmUgQ0FSRUZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMSA6IDAuMjUqVmNjICovCisjZGVmaW5lIENBUkVGXzIgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDIgOiAwLjUqVmNjICovCisjZGVmaW5lIENBUkVGXzMgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDMgOiBWdCovCisKKyNkZWZpbmUgQ0FPVVQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIE91dHB1dCAqLworI2RlZmluZSBDQUYgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRW5hYmxlIE91dHB1dCBGaWx0ZXIgKi8KKyNkZWZpbmUgUDJDQTAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBICtUZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgLVRlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIFAyQ0EyICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSAtVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTMgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIC1UZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBNCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgK1Rlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIENBU0hPUlQgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBTaG9ydCArIGFuZCAtIFRlcm1pbmFscyAqLworCisjZGVmaW5lIENBUEQwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4wICovCisjZGVmaW5lIENBUEQxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4xICovCisjZGVmaW5lIENBUEQyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4yICovCisjZGVmaW5lIENBUEQzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4zICovCisjZGVmaW5lIENBUEQ0ICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC40ICovCisjZGVmaW5lIENBUEQ1ICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC41ICovCisjZGVmaW5lIENBUEQ2ICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC42ICovCisjZGVmaW5lIENBUEQ3ICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC43ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIMl9fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIEVFSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRW5hYmxlIEVyYXNlIEludGVycnVwdHMgKi8KKyNkZWZpbmUgRUVJRVggICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBFbmFibGUgRW1lcmdlbmN5IEludGVycnVwdCBFeGl0ICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKyNkZWZpbmUgTE9DS0EgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTZWdtZW50IEEgTG9jayBiaXQ6IHJlYWQgPSAxIC0gU2VnbWVudCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRkFJTCAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBMYXN0IFByb2dyYW0gb3IgRXJhc2UgZmFpbGVkICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDEvMiBQdWxsIHVwIC8gUHVsbCBkb3duIFJlc2lzdG9ycworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDFfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQyX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAxSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW5wdXQgKi8KK1NGUl84QklUKFAxT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgT3V0cHV0ICovCitTRlJfOEJJVChQMURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDFJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFAxU0VMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uIDIgKi8KK1NGUl84QklUKFAxUkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgUmVzaXN0b3IgRW5hYmxlICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFAyU0VMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uIDIgKi8KK1NGUl84QklUKFAyUkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgUmVzaXN0b3IgRW5hYmxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDMgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQzX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAzSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgSW5wdXQgKi8KK1NGUl84QklUKFAzT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgT3V0cHV0ICovCitTRlJfOEJJVChQM0RJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDNTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFAzUkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgUmVzaXN0b3IgRW5hYmxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIwX0EzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEEwSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BMyBDb250cm9sICovCitTRlJfMTZCSVQoVEEwQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQTBDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTMgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBMENDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BMyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEEwUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzICovCitTRlJfMTZCSVQoVEEwQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEEwQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEEwQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBUQUlWICAgICAgICAgICAgICAgICAgIFRBMElWICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisjZGVmaW5lIFRBQ1RMICAgICAgICAgICAgICAgICAgVEEwQ1RMICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCisjZGVmaW5lIFRBQ0NUTDAgICAgICAgICAgICAgICAgVEEwQ0NUTDAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIFRBQ0NUTDEgICAgICAgICAgICAgICAgVEEwQ0NUTDEgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIFRBQ0NUTDIgICAgICAgICAgICAgICAgVEEwQ0NUTDIgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIFRBUiAgICAgICAgICAgICAgICAgICAgVEEwUiAgICAgICAgICAgLyogVGltZXIgQSAqLworI2RlZmluZSBUQUNDUjAgICAgICAgICAgICAgICAgIFRBMENDUjAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgVEFDQ1IxICAgICAgICAgICAgICAgICBUQTBDQ1IxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIFRBQ0NSMiAgICAgICAgICAgICAgICAgVEEwQ0NSMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBUQUlWXyAgICAgICAgICAgICAgICAgIFRBMElWXyAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisjZGVmaW5lIFRBQ1RMXyAgICAgICAgICAgICAgICAgVEEwQ1RMXyAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCisjZGVmaW5lIFRBQ0NUTDBfICAgICAgICAgICAgICAgVEEwQ0NUTDBfICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIFRBQ0NUTDFfICAgICAgICAgICAgICAgVEEwQ0NUTDFfICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIFRBQ0NUTDJfICAgICAgICAgICAgICAgVEEwQ0NUTDJfICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIFRBUl8gICAgICAgICAgICAgICAgICAgVEEwUl8gICAgICAgICAgLyogVGltZXIgQSAqLworI2RlZmluZSBUQUNDUjBfICAgICAgICAgICAgICAgIFRBMENDUjBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgVEFDQ1IxXyAgICAgICAgICAgICAgICBUQTBDQ1IxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIFRBQ0NSMl8gICAgICAgICAgICAgICAgVEEwQ0NSMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgMiAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUMF9BM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBMElWX05PTkUgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEEwSVZfVEFDQ1IxICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQTBDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBMElWX1RBQ0NSMiAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEEwQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQTBJVl82ICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBMElWXzggICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEEwSVZfVEFJRkcgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQTBJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lcjFfQTIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1QxQTJfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQTFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEExQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQTFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBMUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEExUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1ICovCitTRlJfMTZCSVQoVEExQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEExQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSAxICovCisKKy8qIEJpdHMgYXJlIGFscmVhZHkgZGVmaW5lZCB3aXRoaW4gdGhlIFRpbWVyMF9BeCAqLworCisvKiBUMV9BMklWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBMUlWX05PTkUgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEExSVZfVEFDQ1IxICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQTFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBMUlWXzQgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEExSVZfNiAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQTFJVl84ICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBMUlWX1RBSUZHICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEExSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNDSQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVUNBMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0EwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0EwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0EwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IwSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMFNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfMTZCSVQoVUNCMEkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IwSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBTbGF2ZSBBZGRyZXNzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDUEVOICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgVUNQQVIgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5ICAgICAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBVQ01TQiAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBNU0IgZmlyc3QgIDA6TFNCIC8gMTpNU0IgKi8KKyNkZWZpbmUgVUM3QklUICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogRGF0YSBCaXRzICAwOjgtYml0cyAvIDE6Ny1iaXRzICovCisjZGVmaW5lIFVDU1BCICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFN0b3AgQml0cyAgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgVUNNT0RFMSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDEgKi8KKyNkZWZpbmUgVUNNT0RFMCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDAgKi8KKyNkZWZpbmUgVUNTWU5DICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTeW5jLU1vZGUgIDA6VUFSVC1Nb2RlIC8gMTpTUEktTW9kZSAqLworCisvLyBTUEktTW9kZSBCaXRzCisjZGVmaW5lIFVDQ0tQSCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU3luYy4gTW9kZTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgVUNDS1BMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBVQ01TVCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IE1hc3RlciBTZWxlY3QgKi8KKworLy8gSTJDLU1vZGUgQml0cworI2RlZmluZSBVQ0ExMCAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIDEwLWJpdCBBZGRyZXNzIE1vZGUgKi8KKyNkZWZpbmUgVUNTTEExMCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxMC1iaXQgU2xhdmUgQWRkcmVzcyBNb2RlICovCisjZGVmaW5lIFVDTU0gICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTXVsdGktTWFzdGVyIEVudmlyb25tZW50ICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDTU9ERV8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAwICovCisjZGVmaW5lIFVDTU9ERV8xICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAxICovCisjZGVmaW5lIFVDTU9ERV8yICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAyICovCisjZGVmaW5lIFVDTU9ERV8zICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDU1NFTDEgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBVQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNSWEVJRSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQlJLSUUgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgaW50ZXJydXB0IGVuYWJsZSAqLyAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDRE9STSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRG9ybWFudCAoU2xlZXApIE1vZGUgKi8KKyNkZWZpbmUgVUNUWEFERFIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBBZGRyZXNzICovCisjZGVmaW5lIFVDVFhCUksgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VuZCBuZXh0IERhdGEgYXMgQnJlYWsgKi8KKyNkZWZpbmUgVUNTV1JTVCAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIFNvZnR3YXJlIFJlc2V0ICovCisKKy8vIFNQSS1Nb2RlIEJpdHMKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwOCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwNCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwMikgICAgLyogcmVzZXJ2ZWQgKi8KKworLy8gSTJDLU1vZGUgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ1RSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFRyYW5zbWl0L1JlY2VpdmUgU2VsZWN0L0ZsYWcgKi8KKyNkZWZpbmUgVUNUWE5BQ0sgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBUcmFuc21pdCBOQUNLICovCisjZGVmaW5lIFVDVFhTVFAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVHJhbnNtaXQgU1RPUCAqLworI2RlZmluZSBVQ1RYU1RUICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFRyYW5zbWl0IFNUQVJUICovCisjZGVmaW5lIFVDU1NFTF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMCAqLworI2RlZmluZSBVQ1NTRUxfMSAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDEgKi8KKyNkZWZpbmUgVUNTU0VMXzIgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAyICovCisjZGVmaW5lIFVDU1NFTF8zICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMyAqLworCisjZGVmaW5lIFVDQlJGMyAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAzICovCisjZGVmaW5lIFVDQlJGMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDQlJGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDQlJTMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMiAqLworI2RlZmluZSBVQ0JSUzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUlMwICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDT1MxNiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSAxNi10aW1lcyBPdmVyc2FtcGxpbmcgZW5hYmxlICovCisKKyNkZWZpbmUgVUNCUkZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUkZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUkZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDIgKi8KKyNkZWZpbmUgVUNCUkZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUkZfNCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUkZfNSAgICAgICAgICAgICAgICAoMHg1MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDUgKi8KKyNkZWZpbmUgVUNCUkZfNiAgICAgICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUkZfNyAgICAgICAgICAgICAgICAoMHg3MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKyNkZWZpbmUgVUNCUkZfOCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDggKi8KKyNkZWZpbmUgVUNCUkZfOSAgICAgICAgICAgICAgICAoMHg5MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDkgKi8KKyNkZWZpbmUgVUNCUkZfMTAgICAgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEEgKi8KKyNkZWZpbmUgVUNCUkZfMTEgICAgICAgICAgICAgICAoMHhCMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEIgKi8KKyNkZWZpbmUgVUNCUkZfMTIgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEMgKi8KKyNkZWZpbmUgVUNCUkZfMTMgICAgICAgICAgICAgICAoMHhEMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEQgKi8KKyNkZWZpbmUgVUNCUkZfMTQgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEUgKi8KKyNkZWZpbmUgVUNCUkZfMTUgICAgICAgICAgICAgICAoMHhGMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEYgKi8KKworI2RlZmluZSBVQ0JSU18wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUlNfMSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAxICovCisjZGVmaW5lIFVDQlJTXzIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSU18zICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUlNfNCAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA0ICovCisjZGVmaW5lIFVDQlJTXzUgICAgICAgICAgICAgICAgKDB4MEEpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSU182ICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUlNfNyAgICAgICAgICAgICAgICAoMHgwRSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA3ICovCisKKyNkZWZpbmUgVUNMSVNURU4gICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFVDRkUgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGcmFtZSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDT0UgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBPdmVycnVuIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNQRSAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIFBhcml0eSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQlJLICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBCcmVhayByZWNlaXZlZCAqLworI2RlZmluZSBVQ1JYRVJSICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgUlggRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ0FERFIgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgQWRkcmVzcyByZWNlaXZlZCBGbGFnICovCisjZGVmaW5lIFVDQlVTWSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNJRExFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIElkbGUgbGluZSBkZXRlY3RlZCBGbGFnICovCisKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg4MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg0MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNOQUNLSUUgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUNLIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RQSUUgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ1NUVElFICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQUxJRSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXJiaXRyYXRpb24gTG9zdCBpbnRlcnJ1cHQgZW5hYmxlICovCisKKyNkZWZpbmUgVUNTQ0xMT1cgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTQ0wgbG93ICovCisjZGVmaW5lIFVDR0MgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogR2VuZXJhbCBDYWxsIGFkZHJlc3MgcmVjZWl2ZWQgRmxhZyAqLworI2RlZmluZSBVQ0JCVVNZICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJ1cyBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNOQUNLSUZHICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUsgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDU1RQSUZHICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFRJRkcgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVEFSVCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNBTElGRyAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBMb3N0IGludGVycnVwdCBGbGFnICovCisKKyNkZWZpbmUgVUNJUlRYUEw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJUWFBMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSVFhQTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlRYUEwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJUWFBMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSVFhQTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlRYQ0xLICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIENsb2NrIFNlbGVjdCAqLworI2RlZmluZSBVQ0lSRU4gICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIElSREEgRW5jb2Rlci9EZWNvZGVyIGVuYWJsZSAqLworCisjZGVmaW5lIFVDSVJSWEZMNSAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNSAqLworI2RlZmluZSBVQ0lSUlhGTDQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDQgKi8KKyNkZWZpbmUgVUNJUlJYRkwzICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAzICovCisjZGVmaW5lIFVDSVJSWEZMMiAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMiAqLworI2RlZmluZSBVQ0lSUlhGTDEgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDEgKi8KKyNkZWZpbmUgVUNJUlJYRkwwICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAwICovCisjZGVmaW5lIFVDSVJSWFBMICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIElucHV0IFBvbGFyaXR5ICovCisjZGVmaW5lIFVDSVJSWEZFICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBlbmFibGUgKi8KKworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDgwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDQwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0RFTElNMSAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDEgKi8KKyNkZWZpbmUgVUNERUxJTTAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBTeW5jIERlbGltaXRlciAwICovCisjZGVmaW5lIFVDU1RPRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy1GaWVsZCBUaW1lb3V0IGVycm9yICovCisjZGVmaW5lIFVDQlRPRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQnJlYWsgVGltZW91dCBlcnJvciAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0FCREVOICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEF1dG8gQmF1ZCBSYXRlIGRldGVjdCBlbmFibGUgKi8KKworI2RlZmluZSBVQ0dDRU4gICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEkyQyBHZW5lcmFsIENhbGwgZW5hYmxlICovCisjZGVmaW5lIFVDT0E5ICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNPQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOCAqLworI2RlZmluZSBVQ09BNyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDT0E2ICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNPQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNSAqLworI2RlZmluZSBVQ09BNCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDT0EzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNPQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMiAqLworI2RlZmluZSBVQ09BMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAxICovCisjZGVmaW5lIFVDT0EwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDAgKi8KKworI2RlZmluZSBVQ1NBOSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNTQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDU0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNyAqLworI2RlZmluZSBVQ1NBNiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNTQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDU0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNCAqLworI2RlZmluZSBVQ1NBMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNTQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAyICovCisjZGVmaW5lIFVDU0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMSAqLworI2RlZmluZSBVQ1NBMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFRMViBDYWxpYnJhdGlvbiBEYXRhIFN0cnVjdHVyZSAqLworI2RlZmluZSBUQUdfRENPXzMwICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRhZyBmb3IgRENPMzAgIENhbGlicmF0aW9uIERhdGEgKi8KKyNkZWZpbmUgVEFHX0FEQzEwXzEgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBUYWcgZm9yIEFEQzEwXzEgQ2FsaWJyYXRpb24gRGF0YSAqLworI2RlZmluZSBUQUdfRU1QVFkgICAgICAgICAgICAgICgweEZFKSAgICAgICAgIC8qIFRhZyBmb3IgRW1wdHkgRGF0YSBGaWVsZCBpbiBDYWxpYnJhdGlvbiBEYXRhICovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorU0ZSXzE2QklUKFRMVl9DSEVDS1NVTSk7ICAgICAgICAgICAgICAgICAgICAgIC8qIFRMViBDSEVDSyBTVU0gKi8KK1NGUl84QklUKFRMVl9EQ09fMzBfVEFHKTsgICAgICAgICAgICAgICAgICAgICAvKiBUTFYgVEFHX0RDTzMwIFRBRyAqLworU0ZSXzhCSVQoVExWX0RDT18zMF9MRU4pOyAgICAgICAgICAgICAgICAgICAgIC8qIFRMViBUQUdfRENPMzAgTEVOICovCitTRlJfOEJJVChUTFZfQURDMTBfMV9UQUcpOyAgICAgICAgICAgICAgICAgICAgLyogVExWIEFEQzEwXzEgVEFHICovCitTRlJfOEJJVChUTFZfQURDMTBfMV9MRU4pOyAgICAgICAgICAgICAgICAgICAgLyogVExWIEFEQzEwXzEgTEVOICovCisjZW5kaWYKKworI2RlZmluZSBDQUxfQURDXzI1VDg1ICAgICAgICAgICgweDAwMDcpICAgICAgIC8qIEluZGV4IGZvciAyLjVWLzg1RGVnIENhbC4gVmFsdWUgKi8KKyNkZWZpbmUgQ0FMX0FEQ18yNVQzMCAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBJbmRleCBmb3IgMi41Vi8zMERlZyBDYWwuIFZhbHVlICovCisjZGVmaW5lIENBTF9BRENfMjVWUkVGX0ZBQ1RPUiAgKDB4MDAwNSkgICAgICAgLyogSW5kZXggZm9yIDIuNVYgUmVmLiBGYWN0b3IgKi8KKyNkZWZpbmUgQ0FMX0FEQ18xNVQ4NSAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJbmRleCBmb3IgMS41Vi84NURlZyBDYWwuIFZhbHVlICovCisjZGVmaW5lIENBTF9BRENfMTVUMzAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogSW5kZXggZm9yIDEuNVYvMzBEZWcgQ2FsLiBWYWx1ZSAqLworI2RlZmluZSBDQUxfQURDXzE1VlJFRl9GQUNUT1IgICgweDAwMDIpICAgICAgIC8qIEluZGV4IGZvciBBREMgMS41ViBSZWYuIEZhY3RvciAqLworI2RlZmluZSBDQUxfQURDX09GRlNFVCAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEluZGV4IGZvciBBREMgT2Zmc2V0ICovCisjZGVmaW5lIENBTF9BRENfR0FJTl9GQUNUT1IgICAgKDB4MDAwMCkgICAgICAgLyogSW5kZXggZm9yIEFEQyBHYWluIEZhY3RvciAqLworCisjZGVmaW5lIENBTF9EQ09fMTZNSFogICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogSW5kZXggZm9yIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KKyNkZWZpbmUgQ0FMX0JDMV8xNk1IWiAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJbmRleCBmb3IgQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworI2RlZmluZSBDQUxfRENPXzEyTUhaICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEluZGV4IGZvciBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCisjZGVmaW5lIENBTF9CQzFfMTJNSFogICAgICAgICAgKDB4MDAwMykgICAgICAgLyogSW5kZXggZm9yIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTJNSHogKi8KKyNkZWZpbmUgQ0FMX0RDT184TUhaICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJbmRleCBmb3IgRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciA4TUh6ICovCisjZGVmaW5lIENBTF9CQzFfOE1IWiAgICAgICAgICAgKDB4MDAwNSkgICAgICAgLyogSW5kZXggZm9yIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworI2RlZmluZSBDQUxfRENPXzFNSFogICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIEluZGV4IGZvciBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDFNSHogKi8KKyNkZWZpbmUgQ0FMX0JDMV8xTUhaICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBJbmRleCBmb3IgQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxTUh6ICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorCitTRlJfOEJJVChDQUxEQ09fMTZNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTERDT18xMk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCitTRlJfOEJJVChDQUxCQzFfMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX0Rpc2FibGVDYWxEYXRhICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMiIpICAqLyAvKiAweEZGRTQgUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFNiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDMiKSAgKi8gLyogMHhGRkU2IFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQURDMTBfVkVDVE9SICAgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgQURDMTAgKi8KKy8qI2RlZmluZSBBREMxMF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIEFEQzEwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwVFhfVkVDVE9SICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBVU0NJIEEwL0IwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNDSUFCMFRYX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBVU0NJIEEwL0IwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwUlhfVkVDVE9SICAgICAgICAoNyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFRSBVU0NJIEEwL0IwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0NJQUIwUlhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDciKSAgKi8gLyogMHhGRkVFIFVTQ0kgQTAvQjAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVIwX0ExX1ZFQ1RPUiAgICAgICAgKDggKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVGltZXIwIEEgQ0MxLTIsIFRBICovCisvKiNkZWZpbmUgVElNRVIwX0ExX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBUaW1lcjAgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSMF9BMF9WRUNUT1IgICAgICAgICg5ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFRpbWVyMCBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSMF9BMF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVGltZXIwIEEgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIENPTVBBUkFUT1JBX1ZFQ1RPUiAgICAgICgxMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLworLyojZGVmaW5lIENPTVBBUkFUT1JBX0lTUihmdW5jKSAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMSIpICAqLyAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUjFfQTFfVkVDVE9SICAgICAgICAoMTIgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGOCBUaW1lcjEgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUjFfQTFfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyMSBBIENDMS0yLCBUQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVIxX0EwX1ZFQ1RPUiAgICAgICAgKDEzICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkEgVGltZXIxIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVIxX0EwX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEzIikgICovIC8qIDB4RkZGQSBUaW1lcjEgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDIxeDIgKi8KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjJ4Mi5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyMngyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjI1ZjZiMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjJ4Mi5oCkBAIC0wLDAgKzEsODg3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgyMngyIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuMQorKgorKiBSZXYuIDEuMCwgU2V0dXAKKyogUmV2LiAxLjEsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHgyMngyCisjZGVmaW5lIF9fbXNwNDMweDIyeDIKKyAgICAgICAgICAgICAgIAorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBXYXRjaGRvZyBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogT3NjLiBGYXVsdCAgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE5NSSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogRmxhc2ggQWNjZXNzIFZpb2xhdGlvbiBJbnRlcnJ1cHQgRW5hYmxlICovCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBPc2MuIEZhdWx0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFBPUklGRyAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUG93ZXIgT24gSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgUlNUSUZHICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSZXNldCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBOTUlJRkcgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE5NSSBJbnRlcnJ1cHQgRmxhZyAqLworCitTRlJfOEJJVChJRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAyICovCisjZGVmaW5lIFVDMElFICAgICAgICAgICAgICAgICAgSUUyCisjZGVmaW5lIFVDQTBSWElFICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTBUWElFICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjBSWElFICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjBUWElFICAgICAgICAgICAgICAgKDB4MDgpCisKK1NGUl84QklUKElGRzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAyICovCisjZGVmaW5lIFVDMElGRyAgICAgICAgICAgICAgICAgSUZHMgorI2RlZmluZSBVQ0EwUlhJRkcgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0EwVFhJRkcgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IwUlhJRkcgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IwVFhJRkcgICAgICAgICAgICAgICgweDA4KQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEFEQzEwCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19BREMxMF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChBREMxMERUQzApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgRGF0YSBUcmFuc2ZlciBDb250cm9sIDAgKi8KK1NGUl84QklUKEFEQzEwRFRDMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBEYXRhIFRyYW5zZmVyIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQURDMTBBRTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIEFuYWxvZyBFbmFibGUgMCAqLworU0ZSXzhCSVQoQURDMTBBRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIEFuYWxvZyBFbmFibGUgMSAqLworCitTRlJfMTZCSVQoQURDMTBDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgQ29udHJvbCAwICovCitTRlJfMTZCSVQoQURDMTBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgQ29udHJvbCAxICovCitTRlJfMTZCSVQoQURDMTBNRU0pOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgTWVtb3J5ICovCitTRlJfMTZCSVQoQURDMTBTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgRGF0YSBUcmFuc2ZlciBTdGFydCBBZGRyZXNzICovCisKKy8qIEFEQzEwQ1RMMCAqLworI2RlZmluZSBBREMxMFNDICAgICAgICAgICAgICAgICgweDAwMSkgICAgICAgIC8qIEFEQzEwIFN0YXJ0IENvbnZlcnNpb24gKi8KKyNkZWZpbmUgRU5DICAgICAgICAgICAgICAgICAgICAoMHgwMDIpICAgICAgICAvKiBBREMxMCBFbmFibGUgQ29udmVyc2lvbiAqLworI2RlZmluZSBBREMxMElGRyAgICAgICAgICAgICAgICgweDAwNCkgICAgICAgIC8qIEFEQzEwIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIEFEQzEwSUUgICAgICAgICAgICAgICAgKDB4MDA4KSAgICAgICAgLyogQURDMTAgSW50ZXJydXB0IEVuYWxiZSAqLworI2RlZmluZSBBREMxME9OICAgICAgICAgICAgICAgICgweDAxMCkgICAgICAgIC8qIEFEQzEwIE9uL0VuYWJsZSAqLworI2RlZmluZSBSRUZPTiAgICAgICAgICAgICAgICAgICgweDAyMCkgICAgICAgIC8qIEFEQzEwIFJlZmVyZW5jZSBvbiAqLworI2RlZmluZSBSRUYyXzVWICAgICAgICAgICAgICAgICgweDA0MCkgICAgICAgIC8qIEFEQzEwIFJlZiAwOjEuNVYgLyAxOjIuNVYgKi8KKyNkZWZpbmUgTVNDICAgICAgICAgICAgICAgICAgICAoMHgwODApICAgICAgICAvKiBBREMxMCBNdWx0aXBsZSBTYW1wbGVDb252ZXJzaW9uICovCisjZGVmaW5lIFJFRkJVUlNUICAgICAgICAgICAgICAgKDB4MTAwKSAgICAgICAgLyogQURDMTAgUmVmZXJlbmNlIEJ1cnN0IE1vZGUgKi8KKyNkZWZpbmUgUkVGT1VUICAgICAgICAgICAgICAgICAoMHgyMDApICAgICAgICAvKiBBREMxMCBFbmFsYmUgb3V0cHV0IG9mIFJlZi4gKi8KKyNkZWZpbmUgQURDMTBTUiAgICAgICAgICAgICAgICAoMHg0MDApICAgICAgICAvKiBBREMxMCBTYW1wbGluZyBSYXRlIDA6MjAwa3NwcyAvIDE6NTBrc3BzICovCisjZGVmaW5lIEFEQzEwU0hUMCAgICAgICAgICAgICAgKDB4ODAwKSAgICAgICAgLyogQURDMTAgU2FtcGxlIEhvbGQgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTBTSFQxICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBREMxMCBTYW1wbGUgSG9sZCBTZWxlY3QgMSAqLworI2RlZmluZSBTUkVGMCAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIEFEQzEwIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBTUkVGMSAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEwIFJlZmVyZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBTUkVGMyAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEFEQzEwIFJlZmVyZW5jZSBTZWxlY3QgMiAqLworI2RlZmluZSBBREMxMFNIVF8wICAgICAgICAgICAgICgwKjB4ODAwdSkgICAgIC8qIDQgeCBBREMxMENMS3MgKi8KKyNkZWZpbmUgQURDMTBTSFRfMSAgICAgICAgICAgICAoMSoweDgwMHUpICAgICAvKiA4IHggQURDMTBDTEtzICovCisjZGVmaW5lIEFEQzEwU0hUXzIgICAgICAgICAgICAgKDIqMHg4MDB1KSAgICAgLyogMTYgeCBBREMxMENMS3MgKi8KKyNkZWZpbmUgQURDMTBTSFRfMyAgICAgICAgICAgICAoMyoweDgwMHUpICAgICAvKiA2NCB4IEFEQzEwQ0xLcyAqLworCisjZGVmaW5lIFNSRUZfMCAgICAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVlIrID0gQVZDQyBhbmQgVlItID0gQVZTUyAqLworI2RlZmluZSBTUkVGXzEgICAgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFZSKyA9IFZSRUYrIGFuZCBWUi0gPSBBVlNTICovCisjZGVmaW5lIFNSRUZfMiAgICAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVlIrID0gVkVSRUYrIGFuZCBWUi0gPSBBVlNTICovCisjZGVmaW5lIFNSRUZfMyAgICAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVlIrID0gVkVSRUYrIGFuZCBWUi0gPSBBVlNTICovCisjZGVmaW5lIFNSRUZfNCAgICAgICAgICAgICAgICAgKDQqMHgyMDAwdSkgICAgLyogVlIrID0gQVZDQyBhbmQgVlItID0gVlJFRi0vVkVSRUYtICovCisjZGVmaW5lIFNSRUZfNSAgICAgICAgICAgICAgICAgKDUqMHgyMDAwdSkgICAgLyogVlIrID0gVlJFRisgYW5kIFZSLSA9IFZSRUYtL1ZFUkVGLSAqLworI2RlZmluZSBTUkVGXzYgICAgICAgICAgICAgICAgICg2KjB4MjAwMHUpICAgIC8qIFZSKyA9IFZFUkVGKyBhbmQgVlItID0gVlJFRi0vVkVSRUYtICovCisjZGVmaW5lIFNSRUZfNyAgICAgICAgICAgICAgICAgKDcqMHgyMDAwdSkgICAgLyogVlIrID0gVkVSRUYrIGFuZCBWUi0gPSBWUkVGLS9WRVJFRi0gKi8KKworLyogQURDMTBDVEwxICovCisjZGVmaW5lIEFEQzEwQlVTWSAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTBDVEwxICovCisjZGVmaW5lIENPTlNFUTAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTAgQ29udmVyc2lvbiBTZXF1ZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDT05TRVExICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEwIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTBTU0VMMCAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMCBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTBTU0VMMSAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMCBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTBESVYwICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMCBDbG9jayBEaXZpZGVyIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEwRElWMSAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQURDMTAgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMERJVjIgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEFEQzEwIENsb2NrIERpdmlkZXIgU2VsZWN0IDIgKi8KKyNkZWZpbmUgSVNTSCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBBREMxMCBJbnZlcnQgU2FtcGxlIEhvbGQgU2lnbmFsICovCisjZGVmaW5lIEFEQzEwREYgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQURDMTAgRGF0YSBGb3JtYXQgMDpiaW5hcnkgMToyJ3MgY29tcGxlbWVudCAqLworI2RlZmluZSBTSFMwICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIEFEQzEwIFNhbXBsZS9Ib2xkIFNvdXJjZSAwICovCisjZGVmaW5lIFNIUzEgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQURDMTAgU2FtcGxlL0hvbGQgU291cmNlIDEgKi8KKyNkZWZpbmUgSU5DSDAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBREMxMCBJbnB1dCBDaGFubmVsIFNlbGVjdCAwICovCisjZGVmaW5lIElOQ0gxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTAgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgMSAqLworI2RlZmluZSBJTkNIMiAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEwIElucHV0IENoYW5uZWwgU2VsZWN0IDIgKi8KKyNkZWZpbmUgSU5DSDMgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMCBJbnB1dCBDaGFubmVsIFNlbGVjdCAzICovCisKKyNkZWZpbmUgQ09OU0VRXzAgICAgICAgICAgICAgICAoMCoydSkgICAgICAgICAvKiBTaW5nbGUgY2hhbm5lbCBzaW5nbGUgY29udmVyc2lvbiAqLworI2RlZmluZSBDT05TRVFfMSAgICAgICAgICAgICAgICgxKjJ1KSAgICAgICAgIC8qIFNlcXVlbmNlIG9mIGNoYW5uZWxzICovCisjZGVmaW5lIENPTlNFUV8yICAgICAgICAgICAgICAgKDIqMnUpICAgICAgICAgLyogUmVwZWF0IHNpbmdsZSBjaGFubmVsICovCisjZGVmaW5lIENPTlNFUV8zICAgICAgICAgICAgICAgKDMqMnUpICAgICAgICAgLyogUmVwZWF0IHNlcXVlbmNlIG9mIGNoYW5uZWxzICovCisKKyNkZWZpbmUgQURDMTBTU0VMXzAgICAgICAgICAgICAoMCo4dSkgICAgICAgICAvKiBBREMxME9TQyAqLworI2RlZmluZSBBREMxMFNTRUxfMSAgICAgICAgICAgICgxKjh1KSAgICAgICAgIC8qIEFDTEsgKi8KKyNkZWZpbmUgQURDMTBTU0VMXzIgICAgICAgICAgICAoMio4dSkgICAgICAgICAvKiBNQ0xLICovCisjZGVmaW5lIEFEQzEwU1NFTF8zICAgICAgICAgICAgKDMqOHUpICAgICAgICAgLyogU01DTEsgKi8KKworI2RlZmluZSBBREMxMERJVl8wICAgICAgICAgICAgICgwKjB4MjB1KQorI2RlZmluZSBBREMxMERJVl8xICAgICAgICAgICAgICgxKjB4MjB1KQorI2RlZmluZSBBREMxMERJVl8yICAgICAgICAgICAgICgyKjB4MjB1KQorI2RlZmluZSBBREMxMERJVl8zICAgICAgICAgICAgICgzKjB4MjB1KQorI2RlZmluZSBBREMxMERJVl80ICAgICAgICAgICAgICg0KjB4MjB1KQorI2RlZmluZSBBREMxMERJVl81ICAgICAgICAgICAgICg1KjB4MjB1KQorI2RlZmluZSBBREMxMERJVl82ICAgICAgICAgICAgICg2KjB4MjB1KQorI2RlZmluZSBBREMxMERJVl83ICAgICAgICAgICAgICg3KjB4MjB1KQorCisjZGVmaW5lIFNIU18wICAgICAgICAgICAgICAgICAgKDAqMHg0MDB1KSAgICAgLyogQURDMTBTQyAqLworI2RlZmluZSBTSFNfMSAgICAgICAgICAgICAgICAgICgxKjB4NDAwdSkgICAgIC8qIFRBMyBPVVQxICovCisjZGVmaW5lIFNIU18yICAgICAgICAgICAgICAgICAgKDIqMHg0MDB1KSAgICAgLyogVEEzIE9VVDAgKi8KKyNkZWZpbmUgU0hTXzMgICAgICAgICAgICAgICAgICAoMyoweDQwMHUpICAgICAvKiBUQTMgT1VUMiAqLworCisjZGVmaW5lIElOQ0hfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF8xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KQorI2RlZmluZSBJTkNIXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF80ICAgICAgICAgICAgICAgICAoNCoweDEwMDB1KQorI2RlZmluZSBJTkNIXzUgICAgICAgICAgICAgICAgICg1KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF83ICAgICAgICAgICAgICAgICAoNyoweDEwMDB1KQorI2RlZmluZSBJTkNIXzggICAgICAgICAgICAgICAgICg4KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF8xMCAgICAgICAgICAgICAgICAoMTAqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF8xMSAgICAgICAgICAgICAgICAoMTEqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDAwdSkgICAvKiBTZWxlY3RzIENoYW5uZWwgMTEgKi8KKyNkZWZpbmUgSU5DSF8xMyAgICAgICAgICAgICAgICAoMTMqMHgxMDAwdSkgICAvKiBTZWxlY3RzIENoYW5uZWwgMTEgKi8KKyNkZWZpbmUgSU5DSF8xNCAgICAgICAgICAgICAgICAoMTQqMHgxMDAwdSkgICAvKiBTZWxlY3RzIENoYW5uZWwgMTEgKi8KKyNkZWZpbmUgSU5DSF8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDAwdSkgICAvKiBTZWxlY3RzIENoYW5uZWwgMTEgKi8KKworLyogQURDMTBEVEMwICovCisjZGVmaW5lIEFEQzEwRkVUQ0ggICAgICAgICAgICAgKDB4MDAxKQorI2RlZmluZSBBREMxMEIxICAgICAgICAgICAgICAgICgweDAwMikKKyNkZWZpbmUgQURDMTBDVCAgICAgICAgICAgICAgICAoMHgwMDQpCisjZGVmaW5lIEFEQzEwVEIgICAgICAgICAgICAgICAgKDB4MDA4KQorI2RlZmluZSBBREMxMERJU0FCTEUgICAgICAgICAgICgweDAwMCkgICAgICAgIC8qIEFEQzEwRFRDMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJhc2ljIENsb2NrIE1vZHVsZQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQkMyX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoRENPQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDTyBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworU0ZSXzhCSVQoQkNTQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDEgKi8KK1NGUl84QklUKEJDU0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAyICovCitTRlJfOEJJVChCQ1NDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMyAqLworCisjZGVmaW5lIE1PRDAgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMCAqLworI2RlZmluZSBNT0QxICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDEgKi8KKyNkZWZpbmUgTU9EMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAyICovCisjZGVmaW5lIE1PRDMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMyAqLworI2RlZmluZSBNT0Q0ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDQgKi8KKyNkZWZpbmUgRENPMCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIERDTzEgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBEQ08yICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDIgKi8KKworI2RlZmluZSBSU0VMMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBSU0VMMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBSU0VMMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMiAqLworI2RlZmluZSBSU0VMMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMyAqLworI2RlZmluZSBESVZBMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVkExICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgWFRTICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMRlhUQ0xLIDA6TG93IEZyZXEuIC8gMTogSGlnaCBGcmVxLiAqLworI2RlZmluZSBYVDJPRkYgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEVuYWJsZSBYVDJDTEsgKi8KKworI2RlZmluZSBESVZBXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZBXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZBXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZBXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERDT1IgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRW5hYmxlIEV4dGVybmFsIFJlc2lzdG9yIDogMSAqLworI2RlZmluZSBESVZTMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgMDpEQ09DTEsgLyAxOlhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIERJVk0wICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZNXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZNXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZNXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIFNFTE1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDA6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMjogWFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgU0VMTV8zICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMzogTEZYVENMSyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgTEZYVDFPRiAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBMb3cvaGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMk9GICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSGlnaCBmcmVxdWVuY3kgb3NjaWxsYXRvciAyIGZhdWx0IGZsYWcgKi8KKyNkZWZpbmUgWENBUDAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBYQ0FQMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIExGWFQxUzAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAwIGZvciBMRlhUMSAoWFRTID0gMCkgKi8KKyNkZWZpbmUgTEZYVDFTMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNb2RlIDEgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBYVDJTMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyICovCisjZGVmaW5lIFhUMlMxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAxIGZvciBYVDIgKi8KKworI2RlZmluZSBYQ0FQXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDAgcEYgKi8KKyNkZWZpbmUgWENBUF8xICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiA2IHBGICovCisjZGVmaW5lIFhDQVBfMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMTAgcEYgKi8KKyNkZWZpbmUgWENBUF8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMi41IHBGICovCisKKyNkZWZpbmUgTEZYVDFTXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIDogTm9ybWFsIG9wZXJhdGlvbiAqLworI2RlZmluZSBMRlhUMVNfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgOiBSZXNlcnZlZCAqLworI2RlZmluZSBMRlhUMVNfMiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgTEZYVDEgOiBWTE8gKi8KKyNkZWZpbmUgTEZYVDFTXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNb2RlIDMgZm9yIExGWFQxIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworI2RlZmluZSBYVDJTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyIDogMC40IC0gMSBNSHogKi8KKyNkZWZpbmUgWFQyU18xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiA6IDEgLSA0IE1IeiAqLworI2RlZmluZSBYVDJTXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgWFQyIDogMiAtIDE2IE1IeiAqLworI2RlZmluZSBYVDJTXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgWFQyIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0gyX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgRUVJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBFbmFibGUgRXJhc2UgSW50ZXJydXB0cyAqLworI2RlZmluZSBFRUlFWCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEVuYWJsZSBFbWVyZ2VuY3kgSW50ZXJydXB0IEV4aXQgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworI2RlZmluZSBMT0NLQSAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNlZ21lbnQgQSBMb2NrIGJpdDogcmVhZCA9IDEgLSBTZWdtZW50IGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBGQUlMICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIExhc3QgUHJvZ3JhbSBvciBFcmFzZSBmYWlsZWQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yIFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDFSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDJSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDNSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDRJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBJbnB1dCAqLworU0ZSXzhCSVQoUDRPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBPdXRwdXQgKi8KK1NGUl84QklUKFA0RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDRSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEIzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQjNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQlIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCICovCitTRlJfMTZCSVQoVEJDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRCQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQkNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEJDTEdSUDEgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFRCQ0xHUlAwICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworI2RlZmluZSBDTlRMMSAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDEgKi8KKyNkZWZpbmUgQ05UTDAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAwICovCisjZGVmaW5lIFRCU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDEgKi8KKyNkZWZpbmUgVEJTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMCAqLworI2RlZmluZSBUQkNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEIgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQklFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQklGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBTSFIxICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgU0hSMCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisKKyNkZWZpbmUgVEJTU0VMXzAgICAgICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFRCQ0xLICovCisjZGVmaW5lIFRCU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBBQ0xLICAqLworI2RlZmluZSBUQlNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogU01DTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzMgICAgICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IElOQ0xLICovCisjZGVmaW5lIENOVExfMCAgICAgICAgICAgICAgICAgKDAqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDE2IGJpdCAqLworI2RlZmluZSBDTlRMXzEgICAgICAgICAgICAgICAgICgxKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8yICAgICAgICAgICAgICAgICAoMioweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTAgYml0ICovCisjZGVmaW5lIENOVExfMyAgICAgICAgICAgICAgICAgKDMqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6ICA4IGJpdCAqLworI2RlZmluZSBTSFJfMCAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgU0hSXzEgICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFNIUl8yICAgICAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBTSFJfMyAgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisjZGVmaW5lIFRCQ0xHUlBfMCAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBUQkNMR1JQXzEgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgVEJDTEdSUF8yICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFRCQ0xHUlBfMyAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKworLyogQWRkaXRpb25hbCBUaW1lciBCIENvbnRyb2wgUmVnaXN0ZXIgYml0cyBhcmUgZGVmaW5lZCBpbiBUaW1lciBBICovCisKKyNkZWZpbmUgQ0xMRDEgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgQ0xMRDAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUjEgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBTTFNIUjAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSXzAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgU0xTSFJfMSAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBTTFNIUl8yICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBTTFNIUl8zICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworI2RlZmluZSBDTExEXzAgICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIENMTERfMSAgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgQ0xMRF8yICAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgQ0xMRF8zICAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKy8qIFRCM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRCSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQkNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQkNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl8zICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzQgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNSAgICAgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl82ICAgICAgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWX1RCSUZHICAgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFRCSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNDSQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVUNBMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0EwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0EwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0EwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IwSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMFNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfMTZCSVQoVUNCMEkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IwSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBTbGF2ZSBBZGRyZXNzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDUEVOICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgVUNQQVIgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5ICAgICAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBVQ01TQiAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBNU0IgZmlyc3QgIDA6TFNCIC8gMTpNU0IgKi8KKyNkZWZpbmUgVUM3QklUICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogRGF0YSBCaXRzICAwOjgtYml0cyAvIDE6Ny1iaXRzICovCisjZGVmaW5lIFVDU1BCICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFN0b3AgQml0cyAgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgVUNNT0RFMSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDEgKi8KKyNkZWZpbmUgVUNNT0RFMCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDAgKi8KKyNkZWZpbmUgVUNTWU5DICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTeW5jLU1vZGUgIDA6VUFSVC1Nb2RlIC8gMTpTUEktTW9kZSAqLworCisvLyBTUEktTW9kZSBCaXRzCisjZGVmaW5lIFVDQ0tQSCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU3luYy4gTW9kZTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgVUNDS1BMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBVQ01TVCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IE1hc3RlciBTZWxlY3QgKi8KKworLy8gSTJDLU1vZGUgQml0cworI2RlZmluZSBVQ0ExMCAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIDEwLWJpdCBBZGRyZXNzIE1vZGUgKi8KKyNkZWZpbmUgVUNTTEExMCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxMC1iaXQgU2xhdmUgQWRkcmVzcyBNb2RlICovCisjZGVmaW5lIFVDTU0gICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTXVsdGktTWFzdGVyIEVudmlyb25tZW50ICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDTU9ERV8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAwICovCisjZGVmaW5lIFVDTU9ERV8xICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAxICovCisjZGVmaW5lIFVDTU9ERV8yICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAyICovCisjZGVmaW5lIFVDTU9ERV8zICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDU1NFTDEgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBVQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNSWEVJRSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQlJLSUUgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgaW50ZXJydXB0IGVuYWJsZSAqLyAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDRE9STSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRG9ybWFudCAoU2xlZXApIE1vZGUgKi8KKyNkZWZpbmUgVUNUWEFERFIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBBZGRyZXNzICovCisjZGVmaW5lIFVDVFhCUksgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VuZCBuZXh0IERhdGEgYXMgQnJlYWsgKi8KKyNkZWZpbmUgVUNTV1JTVCAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIFNvZnR3YXJlIFJlc2V0ICovCisKKy8vIFNQSS1Nb2RlIEJpdHMKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwOCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwNCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwMikgICAgLyogcmVzZXJ2ZWQgKi8KKworLy8gSTJDLU1vZGUgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ1RSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFRyYW5zbWl0L1JlY2VpdmUgU2VsZWN0L0ZsYWcgKi8KKyNkZWZpbmUgVUNUWE5BQ0sgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBUcmFuc21pdCBOQUNLICovCisjZGVmaW5lIFVDVFhTVFAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVHJhbnNtaXQgU1RPUCAqLworI2RlZmluZSBVQ1RYU1RUICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFRyYW5zbWl0IFNUQVJUICovCisjZGVmaW5lIFVDU1NFTF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMCAqLworI2RlZmluZSBVQ1NTRUxfMSAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDEgKi8KKyNkZWZpbmUgVUNTU0VMXzIgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAyICovCisjZGVmaW5lIFVDU1NFTF8zICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMyAqLworCisjZGVmaW5lIFVDQlJGMyAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAzICovCisjZGVmaW5lIFVDQlJGMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDQlJGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDQlJTMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMiAqLworI2RlZmluZSBVQ0JSUzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUlMwICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDT1MxNiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSAxNi10aW1lcyBPdmVyc2FtcGxpbmcgZW5hYmxlICovCisKKyNkZWZpbmUgVUNCUkZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUkZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUkZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDIgKi8KKyNkZWZpbmUgVUNCUkZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUkZfNCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUkZfNSAgICAgICAgICAgICAgICAoMHg1MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDUgKi8KKyNkZWZpbmUgVUNCUkZfNiAgICAgICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUkZfNyAgICAgICAgICAgICAgICAoMHg3MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKyNkZWZpbmUgVUNCUkZfOCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDggKi8KKyNkZWZpbmUgVUNCUkZfOSAgICAgICAgICAgICAgICAoMHg5MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDkgKi8KKyNkZWZpbmUgVUNCUkZfMTAgICAgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEEgKi8KKyNkZWZpbmUgVUNCUkZfMTEgICAgICAgICAgICAgICAoMHhCMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEIgKi8KKyNkZWZpbmUgVUNCUkZfMTIgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEMgKi8KKyNkZWZpbmUgVUNCUkZfMTMgICAgICAgICAgICAgICAoMHhEMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEQgKi8KKyNkZWZpbmUgVUNCUkZfMTQgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEUgKi8KKyNkZWZpbmUgVUNCUkZfMTUgICAgICAgICAgICAgICAoMHhGMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEYgKi8KKworI2RlZmluZSBVQ0JSU18wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUlNfMSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAxICovCisjZGVmaW5lIFVDQlJTXzIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSU18zICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUlNfNCAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA0ICovCisjZGVmaW5lIFVDQlJTXzUgICAgICAgICAgICAgICAgKDB4MEEpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSU182ICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUlNfNyAgICAgICAgICAgICAgICAoMHgwRSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA3ICovCisKKyNkZWZpbmUgVUNMSVNURU4gICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFVDRkUgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGcmFtZSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDT0UgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBPdmVycnVuIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNQRSAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIFBhcml0eSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQlJLICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBCcmVhayByZWNlaXZlZCAqLworI2RlZmluZSBVQ1JYRVJSICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgUlggRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ0FERFIgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgQWRkcmVzcyByZWNlaXZlZCBGbGFnICovCisjZGVmaW5lIFVDQlVTWSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNJRExFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIElkbGUgbGluZSBkZXRlY3RlZCBGbGFnICovCisKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg4MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg0MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNOQUNLSUUgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUNLIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RQSUUgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ1NUVElFICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQUxJRSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXJiaXRyYXRpb24gTG9zdCBpbnRlcnJ1cHQgZW5hYmxlICovCisKKyNkZWZpbmUgVUNTQ0xMT1cgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTQ0wgbG93ICovCisjZGVmaW5lIFVDR0MgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogR2VuZXJhbCBDYWxsIGFkZHJlc3MgcmVjZWl2ZWQgRmxhZyAqLworI2RlZmluZSBVQ0JCVVNZICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJ1cyBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNOQUNLSUZHICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUsgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDU1RQSUZHICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFRJRkcgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVEFSVCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNBTElGRyAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBMb3N0IGludGVycnVwdCBGbGFnICovCisKKyNkZWZpbmUgVUNJUlRYUEw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJUWFBMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSVFhQTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlRYUEwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJUWFBMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSVFhQTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlRYQ0xLICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIENsb2NrIFNlbGVjdCAqLworI2RlZmluZSBVQ0lSRU4gICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIElSREEgRW5jb2Rlci9EZWNvZGVyIGVuYWJsZSAqLworCisjZGVmaW5lIFVDSVJSWEZMNSAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNSAqLworI2RlZmluZSBVQ0lSUlhGTDQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDQgKi8KKyNkZWZpbmUgVUNJUlJYRkwzICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAzICovCisjZGVmaW5lIFVDSVJSWEZMMiAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMiAqLworI2RlZmluZSBVQ0lSUlhGTDEgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDEgKi8KKyNkZWZpbmUgVUNJUlJYRkwwICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAwICovCisjZGVmaW5lIFVDSVJSWFBMICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIElucHV0IFBvbGFyaXR5ICovCisjZGVmaW5lIFVDSVJSWEZFICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBlbmFibGUgKi8KKworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDgwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDQwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0RFTElNMSAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDEgKi8KKyNkZWZpbmUgVUNERUxJTTAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBTeW5jIERlbGltaXRlciAwICovCisjZGVmaW5lIFVDU1RPRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy1GaWVsZCBUaW1lb3V0IGVycm9yICovCisjZGVmaW5lIFVDQlRPRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQnJlYWsgVGltZW91dCBlcnJvciAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0FCREVOICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEF1dG8gQmF1ZCBSYXRlIGRldGVjdCBlbmFibGUgKi8KKworI2RlZmluZSBVQ0dDRU4gICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEkyQyBHZW5lcmFsIENhbGwgZW5hYmxlICovCisjZGVmaW5lIFVDT0E5ICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNPQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOCAqLworI2RlZmluZSBVQ09BNyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDT0E2ICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNPQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNSAqLworI2RlZmluZSBVQ09BNCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDT0EzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNPQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMiAqLworI2RlZmluZSBVQ09BMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAxICovCisjZGVmaW5lIFVDT0EwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDAgKi8KKworI2RlZmluZSBVQ1NBOSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNTQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDU0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNyAqLworI2RlZmluZSBVQ1NBNiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNTQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDU0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNCAqLworI2RlZmluZSBVQ1NBMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNTQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAyICovCisjZGVmaW5lIFVDU0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMSAqLworI2RlZmluZSBVQ1NBMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorCitTRlJfOEJJVChDQUxEQ09fMTZNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTERDT18xMk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCitTRlJfOEJJVChDQUxCQzFfMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX0Rpc2FibGVDYWxEYXRhICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMiIpICAqLyAvKiAweEZGRTQgUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFNiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDMiKSAgKi8gLyogMHhGRkU2IFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQURDMTBfVkVDVE9SICAgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgQURDMTAgKi8KKy8qI2RlZmluZSBBREMxMF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIEFEQzEwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwVFhfVkVDVE9SICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBVU0NJIEEwL0IwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNDSUFCMFRYX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBVU0NJIEEwL0IwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwUlhfVkVDVE9SICAgICAgICAoNyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFRSBVU0NJIEEwL0IwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0NJQUIwUlhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDciKSAgKi8gLyogMHhGRkVFIFVTQ0kgQTAvQjAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDggKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtMiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTIsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDIyeDIgKi8KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjJ4NC5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyMng0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI0NGQ1YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjJ4NC5oCkBAIC0wLDAgKzEsOTUxIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgyMng0IGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuNAorKgorKiBSZXYuIDEuMCwgU2V0dXAKKyogUmV2LiAxLjEsIFVwZGF0ZWQgbmFtZXMgZm9yIFVTQ0kKKyogUmV2LiAxLjIsIEFkZGVkIG1pc3NpbmcgZGVmaW5pdGlvbnMgaW4gT0EgYW5kIEFEQzEwCisqIFJldi4gMS4zICBSZW1vdmVkIGJpdCBkZWZpbml0aW9ucyBmb3IgQURDMTBBRXggYXMgdGhpcyBhcmUgaW4gY29uZmxpY3Qgd2l0aCBBREMxMEFFeCBSZWdpc3RlcgorKiAgICAgICAgICAgUmVtb3ZlZCBub3QgZXhpc3RpbmcgU1dDVEwgcmVnaXN0ZXIgZGVmaW5pdGlvbgorKiBSZXYuIDEuNCwgYWRkZWQgZGVmaW5pdGlvbnMgZm9yIEludGVycnVwdCBWZWN0b3JzIHh4SVYKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDIyeDQKKyNkZWZpbmUgX19tc3A0MzB4MjJ4NAorICAgICAgICAgICAgICAgCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFBFUklQSEVSQUwgRklMRSBNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBFeHRlcm5hbCByZWZlcmVuY2VzIHJlc29sdmVkIGJ5IGEgZGV2aWNlLXNwZWNpZmljIGxpbmtlciBjb21tYW5kIGZpbGUgKi8KKyNkZWZpbmUgU0ZSXzhCSVQoYWRkcmVzcykgICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgY2hhciBhZGRyZXNzCisjZGVmaW5lIFNGUl8xNkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFOREFSRCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQklUMCAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBCSVQxICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIEJJVDIgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgQklUMyAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBCSVQ0ICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIEJJVDUgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgQklUNiAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBCSVQ3ICAgICAgICAgICAgICAgICAgICgweDAwODApCisjZGVmaW5lIEJJVDggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgQklUOSAgICAgICAgICAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBCSVRBICAgICAgICAgICAgICAgICAgICgweDA0MDApCisjZGVmaW5lIEJJVEIgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkKKyNkZWZpbmUgQklUQyAgICAgICAgICAgICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBCSVREICAgICAgICAgICAgICAgICAgICgweDIwMDApCisjZGVmaW5lIEJJVEUgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkKKyNkZWZpbmUgQklURiAgICAgICAgICAgICAgICAgICAoMHg4MDAwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQVRVUyBSRUdJU1RFUiBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQyAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBaICAgICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIE4gICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgViAgICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBHSUUgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgT1NDT0ZGICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBTQ0cwICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFNDRzEgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworLyogTG93IFBvd2VyIE1vZGVzIGNvZGVkIHdpdGggQml0cyA0LTcgaW4gU1IgKi8KKworI2lmZGVmIF9fQVNNX0hFQURFUl9fIC8qIEJlZ2luICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKyNkZWZpbmUgTFBNMCAgICAgICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xICAgICAgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMiAgICAgICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTMgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTQgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorLyogRW5kICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKworI2Vsc2UgLyogQmVnaW4gI2RlZmluZXMgZm9yIEMgKi8KKyNkZWZpbmUgTFBNMF9iaXRzICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xX2JpdHMgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMl9iaXRzICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTNfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTRfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorCisjaW5jbHVkZSA8SW40MzAuaD4KKworI2RlZmluZSBMUE0wICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0wX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0wX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTBfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTEgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTFfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTFfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMV9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMiAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMl9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMl9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0yX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0zICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0zX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE0zX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTQgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTRfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSA0ICovCisjZGVmaW5lIExQTTRfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNNF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDQgKi8KKyNlbmRpZiAvKiBFbmQgI2RlZmluZXMgZm9yIEMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1BFQ0lBTCBGVU5DVElPTiBSRUdJU1RFUiBBRERSRVNTRVMgKyBDT05UUk9MIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworU0ZSXzhCSVQoSUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMSAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBPc2MuIEZhdWx0ICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBGbGFzaCBBY2Nlc3MgVmlvbGF0aW9uIEludGVycnVwdCBFbmFibGUgKi8KKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBXYXRjaGRvZyBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgUE9SSUZHICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBQb3dlciBPbiBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSU1RJRkcgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlc2V0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBGbGFnICovCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVUMwSUUgICAgICAgICAgICAgICAgICBJRTIKKyNkZWZpbmUgVUNBMFJYSUUgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVUNBMFRYSUUgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVUNCMFJYSUUgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVUNCMFRYSUUgICAgICAgICAgICAgICAoMHgwOCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgVUMwSUZHICAgICAgICAgICAgICAgICBJRkcyCisjZGVmaW5lIFVDQTBSWElGRyAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTBUWElGRyAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjBSWElGRyAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjBUWElGRyAgICAgICAgICAgICAgKDB4MDgpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQURDMTAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0FEQzEwX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKEFEQzEwRFRDMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBEYXRhIFRyYW5zZmVyIENvbnRyb2wgMCAqLworU0ZSXzhCSVQoQURDMTBEVEMxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEwIERhdGEgVHJhbnNmZXIgQ29udHJvbCAxICovCitTRlJfOEJJVChBREMxMEFFMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgQW5hbG9nIEVuYWJsZSAwICovCitTRlJfOEJJVChBREMxMEFFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTAgQW5hbG9nIEVuYWJsZSAxICovCisKK1NGUl8xNkJJVChBREMxMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChBREMxMENUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChBREMxME1FTSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBNZW1vcnkgKi8KK1NGUl8xNkJJVChBREMxMFNBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMCBEYXRhIFRyYW5zZmVyIFN0YXJ0IEFkZHJlc3MgKi8KKworLyogQURDMTBDVEwwICovCisjZGVmaW5lIEFEQzEwU0MgICAgICAgICAgICAgICAgKDB4MDAxKSAgICAgICAgLyogQURDMTAgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBFTkMgICAgICAgICAgICAgICAgICAgICgweDAwMikgICAgICAgIC8qIEFEQzEwIEVuYWJsZSBDb252ZXJzaW9uICovCisjZGVmaW5lIEFEQzEwSUZHICAgICAgICAgICAgICAgKDB4MDA0KSAgICAgICAgLyogQURDMTAgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQURDMTBJRSAgICAgICAgICAgICAgICAoMHgwMDgpICAgICAgICAvKiBBREMxMCBJbnRlcnJ1cHQgRW5hbGJlICovCisjZGVmaW5lIEFEQzEwT04gICAgICAgICAgICAgICAgKDB4MDEwKSAgICAgICAgLyogQURDMTAgT24vRW5hYmxlICovCisjZGVmaW5lIFJFRk9OICAgICAgICAgICAgICAgICAgKDB4MDIwKSAgICAgICAgLyogQURDMTAgUmVmZXJlbmNlIG9uICovCisjZGVmaW5lIFJFRjJfNVYgICAgICAgICAgICAgICAgKDB4MDQwKSAgICAgICAgLyogQURDMTAgUmVmIDA6MS41ViAvIDE6Mi41ViAqLworI2RlZmluZSBNU0MgICAgICAgICAgICAgICAgICAgICgweDA4MCkgICAgICAgIC8qIEFEQzEwIE11bHRpcGxlIFNhbXBsZUNvbnZlcnNpb24gKi8KKyNkZWZpbmUgUkVGQlVSU1QgICAgICAgICAgICAgICAoMHgxMDApICAgICAgICAvKiBBREMxMCBSZWZlcmVuY2UgQnVyc3QgTW9kZSAqLworI2RlZmluZSBSRUZPVVQgICAgICAgICAgICAgICAgICgweDIwMCkgICAgICAgIC8qIEFEQzEwIEVuYWxiZSBvdXRwdXQgb2YgUmVmLiAqLworI2RlZmluZSBBREMxMFNSICAgICAgICAgICAgICAgICgweDQwMCkgICAgICAgIC8qIEFEQzEwIFNhbXBsaW5nIFJhdGUgMDoyMDBrc3BzIC8gMTo1MGtzcHMgKi8KKyNkZWZpbmUgQURDMTBTSFQwICAgICAgICAgICAgICAoMHg4MDApICAgICAgICAvKiBBREMxMCBTYW1wbGUgSG9sZCBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMFNIVDEgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFEQzEwIFNhbXBsZSBIb2xkIFNlbGVjdCAxICovCisjZGVmaW5lIFNSRUYwICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTAgUmVmZXJlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNSRUYxICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQURDMTAgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFNSRUYzICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTAgUmVmZXJlbmNlIFNlbGVjdCAyICovCisjZGVmaW5lIEFEQzEwU0hUXzAgICAgICAgICAgICAgKDAqMHg4MDB1KSAgICAgLyogNCB4IEFEQzEwQ0xLcyAqLworI2RlZmluZSBBREMxMFNIVF8xICAgICAgICAgICAgICgxKjB4ODAwdSkgICAgIC8qIDggeCBBREMxMENMS3MgKi8KKyNkZWZpbmUgQURDMTBTSFRfMiAgICAgICAgICAgICAoMioweDgwMHUpICAgICAvKiAxNiB4IEFEQzEwQ0xLcyAqLworI2RlZmluZSBBREMxMFNIVF8zICAgICAgICAgICAgICgzKjB4ODAwdSkgICAgIC8qIDY0IHggQURDMTBDTEtzICovCisKKyNkZWZpbmUgU1JFRl8wICAgICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBWUisgPSBBVkNDIGFuZCBWUi0gPSBBVlNTICovCisjZGVmaW5lIFNSRUZfMSAgICAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVlIrID0gVlJFRisgYW5kIFZSLSA9IEFWU1MgKi8KKyNkZWZpbmUgU1JFRl8yICAgICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBWUisgPSBWRVJFRisgYW5kIFZSLSA9IEFWU1MgKi8KKyNkZWZpbmUgU1JFRl8zICAgICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBWUisgPSBWRVJFRisgYW5kIFZSLSA9IEFWU1MgKi8KKyNkZWZpbmUgU1JFRl80ICAgICAgICAgICAgICAgICAoNCoweDIwMDB1KSAgICAvKiBWUisgPSBBVkNDIGFuZCBWUi0gPSBWUkVGLS9WRVJFRi0gKi8KKyNkZWZpbmUgU1JFRl81ICAgICAgICAgICAgICAgICAoNSoweDIwMDB1KSAgICAvKiBWUisgPSBWUkVGKyBhbmQgVlItID0gVlJFRi0vVkVSRUYtICovCisjZGVmaW5lIFNSRUZfNiAgICAgICAgICAgICAgICAgKDYqMHgyMDAwdSkgICAgLyogVlIrID0gVkVSRUYrIGFuZCBWUi0gPSBWUkVGLS9WRVJFRi0gKi8KKyNkZWZpbmUgU1JFRl83ICAgICAgICAgICAgICAgICAoNyoweDIwMDB1KSAgICAvKiBWUisgPSBWRVJFRisgYW5kIFZSLSA9IFZSRUYtL1ZFUkVGLSAqLworCisvKiBBREMxMENUTDEgKi8KKyNkZWZpbmUgQURDMTBCVVNZICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBBREMxMENUTDEgKi8KKyNkZWZpbmUgQ09OU0VRMCAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMCBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENPTlNFUTEgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTAgQ29udmVyc2lvbiBTZXF1ZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMFNTRUwwICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEwIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMFNTRUwxICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMERJVjAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEwIENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTBESVYxICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBBREMxMCBDbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEwRElWMiAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTAgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMiAqLworI2RlZmluZSBJU1NIICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEwIEludmVydCBTYW1wbGUgSG9sZCBTaWduYWwgKi8KKyNkZWZpbmUgQURDMTBERiAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMCBEYXRhIEZvcm1hdCAwOmJpbmFyeSAxOjIncyBjb21wbGVtZW50ICovCisjZGVmaW5lIFNIUzAgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTAgU2FtcGxlL0hvbGQgU291cmNlIDAgKi8KKyNkZWZpbmUgU0hTMSAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBBREMxMCBTYW1wbGUvSG9sZCBTb3VyY2UgMSAqLworI2RlZmluZSBJTkNIMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFEQzEwIElucHV0IENoYW5uZWwgU2VsZWN0IDAgKi8KKyNkZWZpbmUgSU5DSDEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMCBJbnB1dCBDaGFubmVsIFNlbGVjdCAxICovCisjZGVmaW5lIElOQ0gyICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQURDMTAgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgMiAqLworI2RlZmluZSBJTkNIMyAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEFEQzEwIElucHV0IENoYW5uZWwgU2VsZWN0IDMgKi8KKworI2RlZmluZSBDT05TRVFfMCAgICAgICAgICAgICAgICgwKjJ1KSAgICAgICAgIC8qIFNpbmdsZSBjaGFubmVsIHNpbmdsZSBjb252ZXJzaW9uICovCisjZGVmaW5lIENPTlNFUV8xICAgICAgICAgICAgICAgKDEqMnUpICAgICAgICAgLyogU2VxdWVuY2Ugb2YgY2hhbm5lbHMgKi8KKyNkZWZpbmUgQ09OU0VRXzIgICAgICAgICAgICAgICAoMioydSkgICAgICAgICAvKiBSZXBlYXQgc2luZ2xlIGNoYW5uZWwgKi8KKyNkZWZpbmUgQ09OU0VRXzMgICAgICAgICAgICAgICAoMyoydSkgICAgICAgICAvKiBSZXBlYXQgc2VxdWVuY2Ugb2YgY2hhbm5lbHMgKi8KKworI2RlZmluZSBBREMxMFNTRUxfMCAgICAgICAgICAgICgwKjh1KSAgICAgICAgIC8qIEFEQzEwT1NDICovCisjZGVmaW5lIEFEQzEwU1NFTF8xICAgICAgICAgICAgKDEqOHUpICAgICAgICAgLyogQUNMSyAqLworI2RlZmluZSBBREMxMFNTRUxfMiAgICAgICAgICAgICgyKjh1KSAgICAgICAgIC8qIE1DTEsgKi8KKyNkZWZpbmUgQURDMTBTU0VMXzMgICAgICAgICAgICAoMyo4dSkgICAgICAgICAvKiBTTUNMSyAqLworCisjZGVmaW5lIEFEQzEwRElWXzAgICAgICAgICAgICAgKDAqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzEgICAgICAgICAgICAgKDEqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzIgICAgICAgICAgICAgKDIqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzMgICAgICAgICAgICAgKDMqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzQgICAgICAgICAgICAgKDQqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzUgICAgICAgICAgICAgKDUqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzYgICAgICAgICAgICAgKDYqMHgyMHUpCisjZGVmaW5lIEFEQzEwRElWXzcgICAgICAgICAgICAgKDcqMHgyMHUpCisKKyNkZWZpbmUgU0hTXzAgICAgICAgICAgICAgICAgICAoMCoweDQwMHUpICAgICAvKiBBREMxMFNDICovCisjZGVmaW5lIFNIU18xICAgICAgICAgICAgICAgICAgKDEqMHg0MDB1KSAgICAgLyogVEEzIE9VVDEgKi8KKyNkZWZpbmUgU0hTXzIgICAgICAgICAgICAgICAgICAoMioweDQwMHUpICAgICAvKiBUQTMgT1VUMCAqLworI2RlZmluZSBTSFNfMyAgICAgICAgICAgICAgICAgICgzKjB4NDAwdSkgICAgIC8qIFRBMyBPVVQyICovCisKKyNkZWZpbmUgSU5DSF8wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBJTkNIXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF8zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBJTkNIXzQgICAgICAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfNSAgICAgICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF82ICAgICAgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBJTkNIXzcgICAgICAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIElOQ0hfOCAgICAgICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgSU5DSF85ICAgICAgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBJTkNIXzEwICAgICAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBJTkNIXzExICAgICAgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBJTkNIXzEyICAgICAgICAgICAgICAgICgxMioweDEwMDB1KSAgIC8qIFNlbGVjdHMgQ2hhbm5lbCAxMSAqLworI2RlZmluZSBJTkNIXzEzICAgICAgICAgICAgICAgICgxMyoweDEwMDB1KSAgIC8qIFNlbGVjdHMgQ2hhbm5lbCAxMSAqLworI2RlZmluZSBJTkNIXzE0ICAgICAgICAgICAgICAgICgxNCoweDEwMDB1KSAgIC8qIFNlbGVjdHMgQ2hhbm5lbCAxMSAqLworI2RlZmluZSBJTkNIXzE1ICAgICAgICAgICAgICAgICgxNSoweDEwMDB1KSAgIC8qIFNlbGVjdHMgQ2hhbm5lbCAxMSAqLworCisvKiBBREMxMERUQzAgKi8KKyNkZWZpbmUgQURDMTBGRVRDSCAgICAgICAgICAgICAoMHgwMDEpCisjZGVmaW5lIEFEQzEwQjEgICAgICAgICAgICAgICAgKDB4MDAyKQorI2RlZmluZSBBREMxMENUICAgICAgICAgICAgICAgICgweDAwNCkKKyNkZWZpbmUgQURDMTBUQiAgICAgICAgICAgICAgICAoMHgwMDgpCisjZGVmaW5lIEFEQzEwRElTQUJMRSAgICAgICAgICAgKDB4MDAwKSAgICAgICAgLyogQURDMTBEVEMxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQmFzaWMgQ2xvY2sgTW9kdWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CQzJfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChEQ09DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCitTRlJfOEJJVChCQ1NDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQkNTQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDIgKi8KK1NGUl84QklUKEJDU0NUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAzICovCisKKyNkZWZpbmUgTU9EMCAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAwICovCisjZGVmaW5lIE1PRDEgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMSAqLworI2RlZmluZSBNT0QyICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDIgKi8KKyNkZWZpbmUgTU9EMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAzICovCisjZGVmaW5lIE1PRDQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgNCAqLworI2RlZmluZSBEQ08wICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgRENPMSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIERDTzIgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMiAqLworCisjZGVmaW5lIFJTRUwwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIFJTRUwxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIFJTRUwyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIFJTRUwzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAzICovCisjZGVmaW5lIERJVkEwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWQTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBYVFMgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExGWFRDTEsgMDpMb3cgRnJlcS4gLyAxOiBIaWdoIEZyZXEuICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRW5hYmxlIFhUMkNMSyAqLworCisjZGVmaW5lIERJVkFfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVkFfMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVkFfMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVkFfMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRENPUiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBFbmFibGUgRXh0ZXJuYWwgUmVzaXN0b3IgOiAxICovCisjZGVmaW5lIERJVlMwICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVlMxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCAwOkRDT0NMSyAvIDE6WFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgRElWTTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZNMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTE0wICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0VMTTEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMSAqLworCisjZGVmaW5lIERJVlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZTXzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWU18yICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVlNfMyAgICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERJVk1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVk1fMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVk1fMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVk1fMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgU0VMTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMDogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMSAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDE6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAyOiBYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBTRUxNXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAzOiBMRlhUQ0xLICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBMRlhUMU9GICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIExvdy9oaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgWFQyT0YgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBIaWdoIGZyZXF1ZW5jeSBvc2NpbGxhdG9yIDIgZmF1bHQgZmxhZyAqLworI2RlZmluZSBYQ0FQMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIFhDQVAxICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgTEZYVDFTMCAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBMRlhUMVMxICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgKFhUUyA9IDApICovCisjZGVmaW5lIFhUMlMwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgKi8KKyNkZWZpbmUgWFQyUzEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiAqLworCisjZGVmaW5lIFhDQVBfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMCBwRiAqLworI2RlZmluZSBYQ0FQXzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDYgcEYgKi8KKyNkZWZpbmUgWENBUF8yICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMCBwRiAqLworI2RlZmluZSBYQ0FQXzMgICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDEyLjUgcEYgKi8KKworI2RlZmluZSBMRlhUMVNfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgTEZYVDEgOiBOb3JtYWwgb3BlcmF0aW9uICovCisjZGVmaW5lIExGWFQxU18xICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAxIGZvciBMRlhUMSA6IFJlc2VydmVkICovCisjZGVmaW5lIExGWFQxU18yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTW9kZSAyIGZvciBMRlhUMSA6IFZMTyAqLworI2RlZmluZSBMRlhUMVNfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgTEZYVDEgOiBEaWdpdGFsIGlucHV0IHNpZ25hbCAqLworCisjZGVmaW5lIFhUMlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgOiAwLjQgLSAxIE1IeiAqLworI2RlZmluZSBYVDJTXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgWFQyIDogMSAtIDQgTUh6ICovCisjZGVmaW5lIFhUMlNfMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAyIGZvciBYVDIgOiAyIC0gMTYgTUh6ICovCisjZGVmaW5lIFhUMlNfMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTW9kZSAzIGZvciBYVDIgOiBEaWdpdGFsIGlucHV0IHNpZ25hbCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSDJfXyAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBFRUkgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEVuYWJsZSBFcmFzZSBJbnRlcnJ1cHRzICovCisjZGVmaW5lIEVFSUVYICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRW5hYmxlIEVtZXJnZW5jeSBJbnRlcnJ1cHQgRXhpdCAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisjZGVmaW5lIExPQ0tBICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU2VnbWVudCBBIExvY2sgYml0OiByZWFkID0gMSAtIFNlZ21lbnQgaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEZBSUwgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogTGFzdCBQcm9ncmFtIG9yIEVyYXNlIGZhaWxlZCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIE9wZXJhdGlvbmFsIEFtcGxpZmllcgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfT0FfMl9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoT0EwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9BMCBDb250cm9sIHJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKE9BMENUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPQTAgQ29udHJvbCByZWdpc3RlciAxICovCitTRlJfOEJJVChPQTFDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT0ExIENvbnRyb2wgcmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoT0ExQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9BMSBDb250cm9sIHJlZ2lzdGVyIDEgKi8KKworI2RlZmluZSBPQUFEQzAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE9BeCBvdXRwdXQgdG8gQURDMTIgaW5wdXQgY2hhbm5lbCBzZWxlY3QgMCAqLworI2RlZmluZSBPQUFEQzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9BeCBvdXRwdXQgdG8gQURDMTIgaW5wdXQgY2hhbm5lbCBzZWxlY3QgMSAqLworI2RlZmluZSBPQVBNMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE9BeCBQb3dlciBtb2RlIHNlbGVjdCAwICovCisjZGVmaW5lIE9BUE0xICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0IDEgKi8KKyNkZWZpbmUgT0FQMCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBPQVAxICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE9BeCBOb24taW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIE9BTjAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogT0F4IEludmVydGluZyBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBPQU4xICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE9BeCBJbnZlcnRpbmcgaW5wdXQgc2VsZWN0IDEgKi8KKworI2RlZmluZSBPQVBNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE9BeCBQb3dlciBtb2RlIHNlbGVjdDogb2ZmICovCisjZGVmaW5lIE9BUE1fMSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0OiBzbG93ICovCisjZGVmaW5lIE9BUE1fMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0OiBtZWR1aW0gKi8KKyNkZWZpbmUgT0FQTV8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBPQXggUG93ZXIgbW9kZSBzZWxlY3Q6IGZhc3QgKi8KKyNkZWZpbmUgT0FQXzAgICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMDAgKi8KKyNkZWZpbmUgT0FQXzEgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMDEgKi8KKyNkZWZpbmUgT0FQXzIgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMTAgKi8KKyNkZWZpbmUgT0FQXzMgICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMTEgKi8KKyNkZWZpbmUgT0FOXzAgICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBPQXggSW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAwMCAqLworI2RlZmluZSBPQU5fMSAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE9BeCBJbnZlcnRpbmcgaW5wdXQgc2VsZWN0IDAxICovCisjZGVmaW5lIE9BTl8yICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogT0F4IEludmVydGluZyBpbnB1dCBzZWxlY3QgMTAgKi8KKyNkZWZpbmUgT0FOXzMgICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBPQXggSW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAxMSAqLworCisjZGVmaW5lIE9BUlJJUCAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogT0F4IFJhaWwtdG8tUmFpbCBJbnB1dCBvZmYgKi8KKyNkZWZpbmUgT0FORVhUICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBPQXggSW52ZXJ0aW5nIGlucHV0IGV4dGVybmFsICovCisvLyNkZWZpbmUgT0FDQUwgICAgICAgICAgICAgICAoMHgwMikgICAgLyogT0F4IE9mZnNldCBDYWxpYnJhdGlvbiAqLworI2RlZmluZSBPQUZDMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbiBjb250cm9sIDAgKi8KKyNkZWZpbmUgT0FGQzEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBPQXggRnVuY3Rpb24gY29udHJvbCAxICovCisjZGVmaW5lIE9BRkMyICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogT0F4IEZ1bmN0aW9uIGNvbnRyb2wgMiAqLworI2RlZmluZSBPQUZCUjAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvciBzZWxlY3QgMCAqLworI2RlZmluZSBPQUZCUjEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvciBzZWxlY3QgMSAqLworI2RlZmluZSBPQUZCUjIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvciBzZWxlY3QgMiAqLworCisjZGVmaW5lIE9BRkNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBHZW4uIFB1cnBvc2UgKi8KKyNkZWZpbmUgT0FGQ18xICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBPQXggRnVuY3Rpb246IFVuaXR5IGdhaW4gYnVmZmVyICovCisjZGVmaW5lIE9BRkNfMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBSZXNlcnZlZCAqLworI2RlZmluZSBPQUZDXzMgICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogQ29tcGFyYXRvciAqLworI2RlZmluZSBPQUZDXzQgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogTm9uLWludmVydGluZyBQR0EgKi8KKyNkZWZpbmUgT0FGQ181ICAgICAgICAgICAgICAgICAoMHgxNCkgICAgICAgICAvKiBPQXggRnVuY3Rpb246IENhc2NhZGVkIG5vbi1pbnZlcnRpbmcgUEdBICovCisjZGVmaW5lIE9BRkNfNiAgICAgICAgICAgICAgICAgKDB4MTgpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBJbnZlcnRpbmcgUEdBICovCisjZGVmaW5lIE9BRkNfNyAgICAgICAgICAgICAgICAgKDB4MUMpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBEaWZmZXJlbnRpYWwgYW1wbGlmaWVyICovCisjZGVmaW5lIE9BRkJSXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogT0F4IEZlZWRiYWNrIHJlc2lzdG9yOiBUYXAgMCAqLworI2RlZmluZSBPQUZCUl8xICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvcjogVGFwIDEgKi8KKyNkZWZpbmUgT0FGQlJfMiAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3I6IFRhcCAyICovCisjZGVmaW5lIE9BRkJSXzMgICAgICAgICAgICAgICAgKDB4NjApICAgICAgICAgLyogT0F4IEZlZWRiYWNrIHJlc2lzdG9yOiBUYXAgMyAqLworI2RlZmluZSBPQUZCUl80ICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvcjogVGFwIDQgKi8KKyNkZWZpbmUgT0FGQlJfNSAgICAgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3I6IFRhcCA1ICovCisjZGVmaW5lIE9BRkJSXzYgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogT0F4IEZlZWRiYWNrIHJlc2lzdG9yOiBUYXAgNiAqLworI2RlZmluZSBPQUZCUl83ICAgICAgICAgICAgICAgICgweEUwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvcjogVGFwIDcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yIFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDFSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDJSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDNSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDRJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBJbnB1dCAqLworU0ZSXzhCSVQoUDRPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBPdXRwdXQgKi8KK1NGUl84QklUKFA0RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDRSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEIzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQjNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQlIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCICovCitTRlJfMTZCSVQoVEJDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRCQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQkNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEJDTEdSUDEgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFRCQ0xHUlAwICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworI2RlZmluZSBDTlRMMSAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDEgKi8KKyNkZWZpbmUgQ05UTDAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAwICovCisjZGVmaW5lIFRCU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDEgKi8KKyNkZWZpbmUgVEJTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMCAqLworI2RlZmluZSBUQkNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEIgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQklFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQklGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBTSFIxICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgU0hSMCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisKKyNkZWZpbmUgVEJTU0VMXzAgICAgICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFRCQ0xLICovCisjZGVmaW5lIFRCU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBBQ0xLICAqLworI2RlZmluZSBUQlNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogU01DTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzMgICAgICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IElOQ0xLICovCisjZGVmaW5lIENOVExfMCAgICAgICAgICAgICAgICAgKDAqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDE2IGJpdCAqLworI2RlZmluZSBDTlRMXzEgICAgICAgICAgICAgICAgICgxKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8yICAgICAgICAgICAgICAgICAoMioweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTAgYml0ICovCisjZGVmaW5lIENOVExfMyAgICAgICAgICAgICAgICAgKDMqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6ICA4IGJpdCAqLworI2RlZmluZSBTSFJfMCAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgU0hSXzEgICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFNIUl8yICAgICAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBTSFJfMyAgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisjZGVmaW5lIFRCQ0xHUlBfMCAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBUQkNMR1JQXzEgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgVEJDTEdSUF8yICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFRCQ0xHUlBfMyAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKworLyogQWRkaXRpb25hbCBUaW1lciBCIENvbnRyb2wgUmVnaXN0ZXIgYml0cyBhcmUgZGVmaW5lZCBpbiBUaW1lciBBICovCisKKyNkZWZpbmUgQ0xMRDEgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgQ0xMRDAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUjEgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBTTFNIUjAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSXzAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgU0xTSFJfMSAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBTTFNIUl8yICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBTTFNIUl8zICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworI2RlZmluZSBDTExEXzAgICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIENMTERfMSAgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgQ0xMRF8yICAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgQ0xMRF8zICAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKy8qIFRCM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRCSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQkNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQkNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl8zICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzQgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNSAgICAgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl82ICAgICAgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWX1RCSUZHICAgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFRCSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNDSQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVUNBMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0EwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0EwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0EwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IwSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMFNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfMTZCSVQoVUNCMEkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IwSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBTbGF2ZSBBZGRyZXNzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDUEVOICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgVUNQQVIgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5ICAgICAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBVQ01TQiAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBNU0IgZmlyc3QgIDA6TFNCIC8gMTpNU0IgKi8KKyNkZWZpbmUgVUM3QklUICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogRGF0YSBCaXRzICAwOjgtYml0cyAvIDE6Ny1iaXRzICovCisjZGVmaW5lIFVDU1BCICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFN0b3AgQml0cyAgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgVUNNT0RFMSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDEgKi8KKyNkZWZpbmUgVUNNT0RFMCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDAgKi8KKyNkZWZpbmUgVUNTWU5DICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTeW5jLU1vZGUgIDA6VUFSVC1Nb2RlIC8gMTpTUEktTW9kZSAqLworCisvLyBTUEktTW9kZSBCaXRzCisjZGVmaW5lIFVDQ0tQSCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU3luYy4gTW9kZTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgVUNDS1BMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBVQ01TVCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IE1hc3RlciBTZWxlY3QgKi8KKworLy8gSTJDLU1vZGUgQml0cworI2RlZmluZSBVQ0ExMCAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIDEwLWJpdCBBZGRyZXNzIE1vZGUgKi8KKyNkZWZpbmUgVUNTTEExMCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxMC1iaXQgU2xhdmUgQWRkcmVzcyBNb2RlICovCisjZGVmaW5lIFVDTU0gICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTXVsdGktTWFzdGVyIEVudmlyb25tZW50ICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDTU9ERV8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAwICovCisjZGVmaW5lIFVDTU9ERV8xICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAxICovCisjZGVmaW5lIFVDTU9ERV8yICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAyICovCisjZGVmaW5lIFVDTU9ERV8zICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDU1NFTDEgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBVQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNSWEVJRSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQlJLSUUgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgaW50ZXJydXB0IGVuYWJsZSAqLyAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDRE9STSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRG9ybWFudCAoU2xlZXApIE1vZGUgKi8KKyNkZWZpbmUgVUNUWEFERFIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBBZGRyZXNzICovCisjZGVmaW5lIFVDVFhCUksgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VuZCBuZXh0IERhdGEgYXMgQnJlYWsgKi8KKyNkZWZpbmUgVUNTV1JTVCAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIFNvZnR3YXJlIFJlc2V0ICovCisKKy8vIFNQSS1Nb2RlIEJpdHMKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwOCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwNCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwMikgICAgLyogcmVzZXJ2ZWQgKi8KKworLy8gSTJDLU1vZGUgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ1RSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFRyYW5zbWl0L1JlY2VpdmUgU2VsZWN0L0ZsYWcgKi8KKyNkZWZpbmUgVUNUWE5BQ0sgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBUcmFuc21pdCBOQUNLICovCisjZGVmaW5lIFVDVFhTVFAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVHJhbnNtaXQgU1RPUCAqLworI2RlZmluZSBVQ1RYU1RUICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFRyYW5zbWl0IFNUQVJUICovCisjZGVmaW5lIFVDU1NFTF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMCAqLworI2RlZmluZSBVQ1NTRUxfMSAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDEgKi8KKyNkZWZpbmUgVUNTU0VMXzIgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAyICovCisjZGVmaW5lIFVDU1NFTF8zICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMyAqLworCisjZGVmaW5lIFVDQlJGMyAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAzICovCisjZGVmaW5lIFVDQlJGMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDQlJGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDQlJTMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMiAqLworI2RlZmluZSBVQ0JSUzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUlMwICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDT1MxNiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSAxNi10aW1lcyBPdmVyc2FtcGxpbmcgZW5hYmxlICovCisKKyNkZWZpbmUgVUNCUkZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUkZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUkZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDIgKi8KKyNkZWZpbmUgVUNCUkZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUkZfNCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUkZfNSAgICAgICAgICAgICAgICAoMHg1MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDUgKi8KKyNkZWZpbmUgVUNCUkZfNiAgICAgICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUkZfNyAgICAgICAgICAgICAgICAoMHg3MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKyNkZWZpbmUgVUNCUkZfOCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDggKi8KKyNkZWZpbmUgVUNCUkZfOSAgICAgICAgICAgICAgICAoMHg5MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDkgKi8KKyNkZWZpbmUgVUNCUkZfMTAgICAgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEEgKi8KKyNkZWZpbmUgVUNCUkZfMTEgICAgICAgICAgICAgICAoMHhCMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEIgKi8KKyNkZWZpbmUgVUNCUkZfMTIgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEMgKi8KKyNkZWZpbmUgVUNCUkZfMTMgICAgICAgICAgICAgICAoMHhEMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEQgKi8KKyNkZWZpbmUgVUNCUkZfMTQgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEUgKi8KKyNkZWZpbmUgVUNCUkZfMTUgICAgICAgICAgICAgICAoMHhGMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEYgKi8KKworI2RlZmluZSBVQ0JSU18wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUlNfMSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAxICovCisjZGVmaW5lIFVDQlJTXzIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSU18zICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUlNfNCAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA0ICovCisjZGVmaW5lIFVDQlJTXzUgICAgICAgICAgICAgICAgKDB4MEEpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSU182ICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUlNfNyAgICAgICAgICAgICAgICAoMHgwRSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA3ICovCisKKyNkZWZpbmUgVUNMSVNURU4gICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFVDRkUgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGcmFtZSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDT0UgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBPdmVycnVuIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNQRSAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIFBhcml0eSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQlJLICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBCcmVhayByZWNlaXZlZCAqLworI2RlZmluZSBVQ1JYRVJSICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgUlggRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ0FERFIgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgQWRkcmVzcyByZWNlaXZlZCBGbGFnICovCisjZGVmaW5lIFVDQlVTWSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNJRExFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIElkbGUgbGluZSBkZXRlY3RlZCBGbGFnICovCisKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg4MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg0MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNOQUNLSUUgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUNLIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RQSUUgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ1NUVElFICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQUxJRSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXJiaXRyYXRpb24gTG9zdCBpbnRlcnJ1cHQgZW5hYmxlICovCisKKyNkZWZpbmUgVUNTQ0xMT1cgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTQ0wgbG93ICovCisjZGVmaW5lIFVDR0MgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogR2VuZXJhbCBDYWxsIGFkZHJlc3MgcmVjZWl2ZWQgRmxhZyAqLworI2RlZmluZSBVQ0JCVVNZICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJ1cyBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNOQUNLSUZHICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUsgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDU1RQSUZHICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFRJRkcgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVEFSVCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNBTElGRyAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBMb3N0IGludGVycnVwdCBGbGFnICovCisKKyNkZWZpbmUgVUNJUlRYUEw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJUWFBMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSVFhQTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlRYUEwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJUWFBMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSVFhQTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlRYQ0xLICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIENsb2NrIFNlbGVjdCAqLworI2RlZmluZSBVQ0lSRU4gICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIElSREEgRW5jb2Rlci9EZWNvZGVyIGVuYWJsZSAqLworCisjZGVmaW5lIFVDSVJSWEZMNSAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNSAqLworI2RlZmluZSBVQ0lSUlhGTDQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDQgKi8KKyNkZWZpbmUgVUNJUlJYRkwzICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAzICovCisjZGVmaW5lIFVDSVJSWEZMMiAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMiAqLworI2RlZmluZSBVQ0lSUlhGTDEgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDEgKi8KKyNkZWZpbmUgVUNJUlJYRkwwICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAwICovCisjZGVmaW5lIFVDSVJSWFBMICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIElucHV0IFBvbGFyaXR5ICovCisjZGVmaW5lIFVDSVJSWEZFICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBlbmFibGUgKi8KKworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDgwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDQwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0RFTElNMSAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDEgKi8KKyNkZWZpbmUgVUNERUxJTTAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBTeW5jIERlbGltaXRlciAwICovCisjZGVmaW5lIFVDU1RPRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy1GaWVsZCBUaW1lb3V0IGVycm9yICovCisjZGVmaW5lIFVDQlRPRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQnJlYWsgVGltZW91dCBlcnJvciAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0FCREVOICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEF1dG8gQmF1ZCBSYXRlIGRldGVjdCBlbmFibGUgKi8KKworI2RlZmluZSBVQ0dDRU4gICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEkyQyBHZW5lcmFsIENhbGwgZW5hYmxlICovCisjZGVmaW5lIFVDT0E5ICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNPQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOCAqLworI2RlZmluZSBVQ09BNyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDT0E2ICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNPQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNSAqLworI2RlZmluZSBVQ09BNCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDT0EzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNPQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMiAqLworI2RlZmluZSBVQ09BMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAxICovCisjZGVmaW5lIFVDT0EwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDAgKi8KKworI2RlZmluZSBVQ1NBOSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNTQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDU0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNyAqLworI2RlZmluZSBVQ1NBNiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNTQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDU0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNCAqLworI2RlZmluZSBVQ1NBMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNTQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAyICovCisjZGVmaW5lIFVDU0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMSAqLworI2RlZmluZSBVQ1NBMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorCitTRlJfOEJJVChDQUxEQ09fMTZNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTERDT18xMk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCitTRlJfOEJJVChDQUxCQzFfMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX0Rpc2FibGVDYWxEYXRhICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMiIpICAqLyAvKiAweEZGRTQgUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFNiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDMiKSAgKi8gLyogMHhGRkU2IFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQURDMTBfVkVDVE9SICAgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgQURDMTAgKi8KKy8qI2RlZmluZSBBREMxMF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIEFEQzEwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwVFhfVkVDVE9SICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBVU0NJIEEwL0IwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNDSUFCMFRYX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBVU0NJIEEwL0IwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwUlhfVkVDVE9SICAgICAgICAoNyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFRSBVU0NJIEEwL0IwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0NJQUIwUlhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDciKSAgKi8gLyogMHhGRkVFIFVTQ0kgQTAvQjAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDggKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtMiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTIsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDIyeDQgKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyM3guaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjN4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDk4YTE2NQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjN4LmgKQEAgLTAsMCArMSwxMTM1IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgyM3ggZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMS4zCisqICAgICAgICAgICAgICAgICAgCisqIFJldi4gMS4wLCBJbml0aWFsIFZlcnNpb24KKyogUmV2LiAxLjEgIGFkZGVkIFRMViBpbiBJTkZPIE1lbW9yeQorKiBSZXYuIDEuMiAgYWRkZWQgbWlzc2luZyBTVlMgUmVnaXN0ZXIKKyogUmV2LiAxLjMsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHgyM3gKKyNkZWZpbmUgX19tc3A0MzB4MjN4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEZsYXNoIEFjY2VzcyBWaW9sYXRpb24gSW50ZXJydXB0IEVuYWJsZSAqLworCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogT3NjLiBGYXVsdCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBQT1JJRkcgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFBvd2VyIE9uIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFJTVElGRyAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVzZXQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEZsYWcgKi8KKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBVQzBJRSAgICAgICAgICAgICAgICAgIElFMgorI2RlZmluZSBVQ0EwUlhJRSAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0EwVFhJRSAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IwUlhJRSAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IwVFhJRSAgICAgICAgICAgICAgICgweDA4KQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBVQzBJRkcgICAgICAgICAgICAgICAgIElGRzIKKyNkZWZpbmUgVUNBMFJYSUZHICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVUNBMFRYSUZHICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVUNCMFJYSUZHICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVUNCMFRYSUZHICAgICAgICAgICAgICAoMHgwOCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBREMxMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQURDMTJfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEFEQzEyQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKEFEQzEyQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEFEQzEySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIEludGVycnVwdCBGbGFnICovCitTRlJfMTZCSVQoQURDMTJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzE2QklUKEFEQzEySVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworCisjZGVmaW5lIEFEQzEyTUVNXyAgICAgICAgICAgICAgKDB4MDE0MCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgKi8KKyNpZmRlZiBfX0FTTV9IRUFERVJfXworI2RlZmluZSBBREMxMk1FTSAgICAgICAgICAgICAgIChBREMxMk1FTV8pICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgQURDMTJNRU0gICAgICAgICAgICAgICAoKGludCopICAgICAgICBBREMxMk1FTV8pIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzE2QklUKEFEQzEyTUVNMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDAgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxICovCitTRlJfMTZCSVQoQURDMTJNRU0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMiAqLworU0ZSXzE2QklUKEFEQzEyTUVNMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDMgKi8KK1NGUl8xNkJJVChBREMxMk1FTTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA0ICovCitTRlJfMTZCSVQoQURDMTJNRU01KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNSAqLworU0ZSXzE2QklUKEFEQzEyTUVNNik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDYgKi8KK1NGUl8xNkJJVChBREMxMk1FTTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA3ICovCitTRlJfMTZCSVQoQURDMTJNRU04KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgOCAqLworU0ZSXzE2QklUKEFEQzEyTUVNOSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDkgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTEpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDExICovCitTRlJfMTZCSVQoQURDMTJNRU0xMik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTIgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMyAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDE0ICovCitTRlJfMTZCSVQoQURDMTJNRU0xNSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTUgKi8KKworI2RlZmluZSBBREMxMk1DVExfICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgQURDMTJNQ1RMICAgICAgICAgICAgICAoQURDMTJNQ1RMXykgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIEFEQzEyTUNUTCAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgQURDMTJNQ1RMXykgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKGZvciBDKSAqLworI2VuZGlmCitTRlJfOEJJVChBREMxMk1DVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEgKi8KK1NGUl84QklUKEFEQzEyTUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAyICovCitTRlJfOEJJVChBREMxMk1DVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDQgKi8KK1NGUl84QklUKEFEQzEyTUNUTDUpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA1ICovCitTRlJfOEJJVChBREMxMk1DVEw2KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDcgKi8KK1NGUl84QklUKEFEQzEyTUNUTDgpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA4ICovCitTRlJfOEJJVChBREMxMk1DVEw5KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgOSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTApOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEwICovCitTRlJfOEJJVChBREMxMk1DVEwxMSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTEgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEyKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTMpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEzICovCitTRlJfOEJJVChBREMxMk1DVEwxNCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTQgKi8KK1NGUl84QklUKEFEQzEyTUNUTDE1KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxNSAqLworCisvKiBBREMxMkNUTDAgKi8KKyNkZWZpbmUgQURDMTJTQyAgICAgICAgICAgICAgICAoMHgwMDEpICAgICAgICAvKiBBREMxMiBTdGFydCBDb252ZXJzaW9uICovCisjZGVmaW5lIEVOQyAgICAgICAgICAgICAgICAgICAgKDB4MDAyKSAgICAgICAgLyogQURDMTIgRW5hYmxlIENvbnZlcnNpb24gKi8KKyNkZWZpbmUgQURDMTJUT1ZJRSAgICAgICAgICAgICAoMHgwMDQpICAgICAgICAvKiBBREMxMiBUaW1lciBPdmVyZmxvdyBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIEFEQzEyT1ZJRSAgICAgICAgICAgICAgKDB4MDA4KSAgICAgICAgLyogQURDMTIgT3ZlcmZsb3cgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBBREMxMk9OICAgICAgICAgICAgICAgICgweDAxMCkgICAgICAgIC8qIEFEQzEyIE9uL2VuYWJsZSAqLworI2RlZmluZSBSRUZPTiAgICAgICAgICAgICAgICAgICgweDAyMCkgICAgICAgIC8qIEFEQzEyIFJlZmVyZW5jZSBvbiAqLworI2RlZmluZSBSRUYyXzVWICAgICAgICAgICAgICAgICgweDA0MCkgICAgICAgIC8qIEFEQzEyIFJlZiAwOjEuNVYgLyAxOjIuNVYgKi8KKyNkZWZpbmUgTVNDICAgICAgICAgICAgICAgICAgICAoMHgwODApICAgICAgICAvKiBBREMxMiBNdWx0aXBsZSBTYW1wbGVDb252ZXJzaW9uICovCisjZGVmaW5lIFNIVDAwICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMCAqLworI2RlZmluZSBTSFQwMSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0hUMDIgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAyICovCisjZGVmaW5lIFNIVDAzICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMyAqLworI2RlZmluZSBTSFQxMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0hUMTEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAxIFNlbGVjdCAxICovCisjZGVmaW5lIFNIVDEyICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMiBTZWxlY3QgMiAqLworI2RlZmluZSBTSFQxMyAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDMgU2VsZWN0IDMgKi8KKyNkZWZpbmUgTVNIICAgICAgICAgICAgICAgICAgICAoMHgwODApCisKKyNkZWZpbmUgU0hUMF8wICAgICAgICAgICAgICAgICAoMCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDB1KQorI2RlZmluZSBTSFQwXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8zICAgICAgICAgICAgICAgICAoMyoweDEwMHUpCisjZGVmaW5lIFNIVDBfNCAgICAgICAgICAgICAgICAgKDQqMHgxMDB1KQorI2RlZmluZSBTSFQwXzUgICAgICAgICAgICAgICAgICg1KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF82ICAgICAgICAgICAgICAgICAoNioweDEwMHUpCisjZGVmaW5lIFNIVDBfNyAgICAgICAgICAgICAgICAgKDcqMHgxMDB1KQorI2RlZmluZSBTSFQwXzggICAgICAgICAgICAgICAgICg4KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF85ICAgICAgICAgICAgICAgICAoOSoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTAgICAgICAgICAgICAgICAgKDEwKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMSAgICAgICAgICAgICAgICAoMTEqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEyICAgICAgICAgICAgICAgICgxMioweDEwMHUpCisjZGVmaW5lIFNIVDBfMTMgICAgICAgICAgICAgICAgKDEzKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xNCAgICAgICAgICAgICAgICAoMTQqMHgxMDB1KQorI2RlZmluZSBTSFQwXzE1ICAgICAgICAgICAgICAgICgxNSoweDEwMHUpCisKKyNkZWZpbmUgU0hUMV8wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBTSFQxXzQgICAgICAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNSAgICAgICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV82ICAgICAgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBTSFQxXzcgICAgICAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfOCAgICAgICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV85ICAgICAgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzEwICAgICAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzExICAgICAgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzEyICAgICAgICAgICAgICAgICgxMioweDEwMDB1KQorI2RlZmluZSBTSFQxXzEzICAgICAgICAgICAgICAgICgxMyoweDEwMDB1KQorI2RlZmluZSBTSFQxXzE0ICAgICAgICAgICAgICAgICgxNCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzE1ICAgICAgICAgICAgICAgICgxNSoweDEwMDB1KQorCisvKiBBREMxMkNUTDEgKi8KKyNkZWZpbmUgQURDMTJCVVNZICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBBREMxMiBCdXN5ICovCisjZGVmaW5lIENPTlNFUTAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTZXF1ZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDT05TRVExICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJTU0VMMCAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMiBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTJTU0VMMSAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJESVYwICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyRElWMSAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMkRJVjIgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDIgKi8KKyNkZWZpbmUgSVNTSCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBBREMxMiBJbnZlcnQgU2FtcGxlIEhvbGQgU2lnbmFsICovCisjZGVmaW5lIFNIUCAgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQURDMTIgU2FtcGxlL0hvbGQgUHVsc2UgTW9kZSAqLworI2RlZmluZSBTSFMwICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFNvdXJjZSAwICovCisjZGVmaW5lIFNIUzEgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQURDMTIgU2FtcGxlL0hvbGQgU291cmNlIDEgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMCAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMCAqLworI2RlZmluZSBDU1RBUlRBREQxICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAxICovCisjZGVmaW5lIENTVEFSVEFERDIgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDIgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMyAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMyAqLworCisjZGVmaW5lIENPTlNFUV8wICAgICAgICAgICAgICAgKDAqMnUpCisjZGVmaW5lIENPTlNFUV8xICAgICAgICAgICAgICAgKDEqMnUpCisjZGVmaW5lIENPTlNFUV8yICAgICAgICAgICAgICAgKDIqMnUpCisjZGVmaW5lIENPTlNFUV8zICAgICAgICAgICAgICAgKDMqMnUpCisjZGVmaW5lIEFEQzEyU1NFTF8wICAgICAgICAgICAgKDAqOHUpCisjZGVmaW5lIEFEQzEyU1NFTF8xICAgICAgICAgICAgKDEqOHUpCisjZGVmaW5lIEFEQzEyU1NFTF8yICAgICAgICAgICAgKDIqOHUpCisjZGVmaW5lIEFEQzEyU1NFTF8zICAgICAgICAgICAgKDMqOHUpCisjZGVmaW5lIEFEQzEyRElWXzAgICAgICAgICAgICAgKDAqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzEgICAgICAgICAgICAgKDEqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzIgICAgICAgICAgICAgKDIqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzMgICAgICAgICAgICAgKDMqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzQgICAgICAgICAgICAgKDQqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzUgICAgICAgICAgICAgKDUqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzYgICAgICAgICAgICAgKDYqMHgyMHUpCisjZGVmaW5lIEFEQzEyRElWXzcgICAgICAgICAgICAgKDcqMHgyMHUpCisjZGVmaW5lIFNIU18wICAgICAgICAgICAgICAgICAgKDAqMHg0MDB1KQorI2RlZmluZSBTSFNfMSAgICAgICAgICAgICAgICAgICgxKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzIgICAgICAgICAgICAgICAgICAoMioweDQwMHUpCisjZGVmaW5lIFNIU18zICAgICAgICAgICAgICAgICAgKDMqMHg0MDB1KQorI2RlZmluZSBDU1RBUlRBRERfMCAgICAgICAgICAgICgwKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xICAgICAgICAgICAgKDEqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzIgICAgICAgICAgICAoMioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMyAgICAgICAgICAgICgzKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF80ICAgICAgICAgICAgKDQqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzUgICAgICAgICAgICAoNSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNiAgICAgICAgICAgICg2KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF83ICAgICAgICAgICAgKDcqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzggICAgICAgICAgICAoOCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfOSAgICAgICAgICAgICg5KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xMCAgICAgICAgICAgKDEwKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xMSAgICAgICAgICAgKDExKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xMiAgICAgICAgICAgKDEyKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xMyAgICAgICAgICAgKDEzKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xNCAgICAgICAgICAgKDE0KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8xNSAgICAgICAgICAgKDE1KjB4MTAwMHUpCisKKy8qIEFEQzEyTUNUTHggKi8KKyNkZWZpbmUgSU5DSDAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBJTkNIMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIElOQ0gyICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDIgKi8KKyNkZWZpbmUgSU5DSDMgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMyAqLworI2RlZmluZSBTUkVGMCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDAgKi8KKyNkZWZpbmUgU1JFRjEgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAxICovCisjZGVmaW5lIFNSRUYyICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMiAqLworI2RlZmluZSBFT1MgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEFEQzEyIEVuZCBvZiBTZXF1ZW5jZSAqLworCisjZGVmaW5lIElOQ0hfMCAgICAgICAgICAgICAgICAgKDApCisjZGVmaW5lIElOQ0hfMSAgICAgICAgICAgICAgICAgKDEpCisjZGVmaW5lIElOQ0hfMiAgICAgICAgICAgICAgICAgKDIpCisjZGVmaW5lIElOQ0hfMyAgICAgICAgICAgICAgICAgKDMpCisjZGVmaW5lIElOQ0hfNCAgICAgICAgICAgICAgICAgKDQpCisjZGVmaW5lIElOQ0hfNSAgICAgICAgICAgICAgICAgKDUpCisjZGVmaW5lIElOQ0hfNiAgICAgICAgICAgICAgICAgKDYpCisjZGVmaW5lIElOQ0hfNyAgICAgICAgICAgICAgICAgKDcpCisjZGVmaW5lIElOQ0hfOCAgICAgICAgICAgICAgICAgKDgpCisjZGVmaW5lIElOQ0hfOSAgICAgICAgICAgICAgICAgKDkpCisjZGVmaW5lIElOQ0hfMTAgICAgICAgICAgICAgICAgKDEwKQorI2RlZmluZSBJTkNIXzExICAgICAgICAgICAgICAgICgxMSkKKyNkZWZpbmUgSU5DSF8xMiAgICAgICAgICAgICAgICAoMTIpCisjZGVmaW5lIElOQ0hfMTMgICAgICAgICAgICAgICAgKDEzKQorI2RlZmluZSBJTkNIXzE0ICAgICAgICAgICAgICAgICgxNCkKKyNkZWZpbmUgSU5DSF8xNSAgICAgICAgICAgICAgICAoMTUpCisKKyNkZWZpbmUgU1JFRl8wICAgICAgICAgICAgICAgICAoMCoweDEwdSkKKyNkZWZpbmUgU1JFRl8xICAgICAgICAgICAgICAgICAoMSoweDEwdSkKKyNkZWZpbmUgU1JFRl8yICAgICAgICAgICAgICAgICAoMioweDEwdSkKKyNkZWZpbmUgU1JFRl8zICAgICAgICAgICAgICAgICAoMyoweDEwdSkKKyNkZWZpbmUgU1JFRl80ICAgICAgICAgICAgICAgICAoNCoweDEwdSkKKyNkZWZpbmUgU1JFRl81ICAgICAgICAgICAgICAgICAoNSoweDEwdSkKKyNkZWZpbmUgU1JFRl82ICAgICAgICAgICAgICAgICAoNioweDEwdSkKKyNkZWZpbmUgU1JFRl83ICAgICAgICAgICAgICAgICAoNyoweDEwdSkKKworLyogQURDMTJJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBBREMxMklWX05PTkUgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJPVklGRyAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTJPVklGRyAqLworI2RlZmluZSBBREMxMklWX0FEQzEyVE9WSUZHICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyVE9WSUZHICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcwICAgICAgKDB4MDAwNikgICAgICAgLyogQURDMTJJRkcwICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTJJRkcxICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcyICAgICAgKDB4MDAwQSkgICAgICAgLyogQURDMTJJRkcyICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkczICAgICAgKDB4MDAwQykgICAgICAgLyogQURDMTJJRkczICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc0ICAgICAgKDB4MDAwRSkgICAgICAgLyogQURDMTJJRkc0ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc1ICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTJJRkc1ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc2ICAgICAgKDB4MDAxMikgICAgICAgLyogQURDMTJJRkc2ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc3ICAgICAgKDB4MDAxNCkgICAgICAgLyogQURDMTJJRkc3ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc4ICAgICAgKDB4MDAxNikgICAgICAgLyogQURDMTJJRkc4ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc5ICAgICAgKDB4MDAxOCkgICAgICAgLyogQURDMTJJRkc5ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMCAgICAgKDB4MDAxQSkgICAgICAgLyogQURDMTJJRkcxMCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTEgICAgICgweDAwMUMpICAgICAgIC8qIEFEQzEySUZHMTEgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEyICAgICAoMHgwMDFFKSAgICAgICAvKiBBREMxMklGRzEyICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMyAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTJJRkcxMyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTQgICAgICgweDAwMjIpICAgICAgIC8qIEFEQzEySUZHMTQgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzE1ICAgICAoMHgwMDI0KSAgICAgICAvKiBBREMxMklGRzE1ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQmFzaWMgQ2xvY2sgTW9kdWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CQzJfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChEQ09DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCitTRlJfOEJJVChCQ1NDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQkNTQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDIgKi8KK1NGUl84QklUKEJDU0NUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAzICovCisKKyNkZWZpbmUgTU9EMCAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAwICovCisjZGVmaW5lIE1PRDEgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMSAqLworI2RlZmluZSBNT0QyICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDIgKi8KKyNkZWZpbmUgTU9EMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAzICovCisjZGVmaW5lIE1PRDQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgNCAqLworI2RlZmluZSBEQ08wICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgRENPMSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIERDTzIgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMiAqLworCisjZGVmaW5lIFJTRUwwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIFJTRUwxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIFJTRUwyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIFJTRUwzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAzICovCisjZGVmaW5lIERJVkEwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWQTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBYVFMgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExGWFRDTEsgMDpMb3cgRnJlcS4gLyAxOiBIaWdoIEZyZXEuICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRW5hYmxlIFhUMkNMSyAqLworCisjZGVmaW5lIERJVkFfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVkFfMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVkFfMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVkFfMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRENPUiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBFbmFibGUgRXh0ZXJuYWwgUmVzaXN0b3IgOiAxICovCisjZGVmaW5lIERJVlMwICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVlMxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCAwOkRDT0NMSyAvIDE6WFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgRElWTTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZNMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTE0wICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0VMTTEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMSAqLworCisjZGVmaW5lIERJVlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZTXzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWU18yICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVlNfMyAgICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERJVk1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVk1fMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVk1fMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVk1fMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgU0VMTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMDogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMSAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDE6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAyOiBYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBTRUxNXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAzOiBMRlhUQ0xLICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBMRlhUMU9GICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIExvdy9oaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgWFQyT0YgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBIaWdoIGZyZXF1ZW5jeSBvc2NpbGxhdG9yIDIgZmF1bHQgZmxhZyAqLworI2RlZmluZSBYQ0FQMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIFhDQVAxICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgTEZYVDFTMCAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBMRlhUMVMxICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgKFhUUyA9IDApICovCisjZGVmaW5lIFhUMlMwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgKi8KKyNkZWZpbmUgWFQyUzEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiAqLworCisjZGVmaW5lIFhDQVBfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMCBwRiAqLworI2RlZmluZSBYQ0FQXzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDYgcEYgKi8KKyNkZWZpbmUgWENBUF8yICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMCBwRiAqLworI2RlZmluZSBYQ0FQXzMgICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDEyLjUgcEYgKi8KKworI2RlZmluZSBMRlhUMVNfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgTEZYVDEgOiBOb3JtYWwgb3BlcmF0aW9uICovCisjZGVmaW5lIExGWFQxU18xICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAxIGZvciBMRlhUMSA6IFJlc2VydmVkICovCisjZGVmaW5lIExGWFQxU18yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTW9kZSAyIGZvciBMRlhUMSA6IFZMTyAqLworI2RlZmluZSBMRlhUMVNfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgTEZYVDEgOiBEaWdpdGFsIGlucHV0IHNpZ25hbCAqLworCisjZGVmaW5lIFhUMlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgOiAwLjQgLSAxIE1IeiAqLworI2RlZmluZSBYVDJTXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgWFQyIDogMSAtIDQgTUh6ICovCisjZGVmaW5lIFhUMlNfMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAyIGZvciBYVDIgOiAyIC0gMTYgTUh6ICovCisjZGVmaW5lIFhUMlNfMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTW9kZSAzIGZvciBYVDIgOiBEaWdpdGFsIGlucHV0IHNpZ25hbCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvbXBhcmF0b3IgQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQ0FQTFVTX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQ0FDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDEgKi8KK1NGUl84QklUKENBQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAyICovCitTRlJfOEJJVChDQVBEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIFBvcnQgRGlzYWJsZSAqLworCisjZGVmaW5lIENBSUZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBDQUlFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBDQUlFUyAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBFZGdlIFNlbGVjdDogMDpyaXNpbmcgLyAxOmZhbGxpbmcgKi8KKyNkZWZpbmUgQ0FPTiAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIGVuYWJsZSAqLworI2RlZmluZSBDQVJFRjAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENBUkVGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0FSU0VMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBFbmFibGUgKi8KKyNkZWZpbmUgQ0FFWCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIEV4Y2hhbmdlIElucHV0cyAqLworCisjZGVmaW5lIENBUkVGXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDAgOiBPZmYgKi8KKyNkZWZpbmUgQ0FSRUZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMSA6IDAuMjUqVmNjICovCisjZGVmaW5lIENBUkVGXzIgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDIgOiAwLjUqVmNjICovCisjZGVmaW5lIENBUkVGXzMgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDMgOiBWdCovCisKKyNkZWZpbmUgQ0FPVVQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIE91dHB1dCAqLworI2RlZmluZSBDQUYgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRW5hYmxlIE91dHB1dCBGaWx0ZXIgKi8KKyNkZWZpbmUgUDJDQTAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBICtUZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgLVRlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIFAyQ0EyICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSAtVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTMgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIC1UZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBNCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgK1Rlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIENBU0hPUlQgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBTaG9ydCArIGFuZCAtIFRlcm1pbmFscyAqLworCisjZGVmaW5lIENBUEQwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4wICovCisjZGVmaW5lIENBUEQxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4xICovCisjZGVmaW5lIENBUEQyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4yICovCisjZGVmaW5lIENBUEQzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4zICovCisjZGVmaW5lIENBUEQ0ICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC40ICovCisjZGVmaW5lIENBUEQ1ICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC41ICovCisjZGVmaW5lIENBUEQ2ICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC42ICovCisjZGVmaW5lIENBUEQ3ICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC43ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIMl9fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KK1NGUl8xNkJJVChGQ1RMNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDQgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIEVFSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRW5hYmxlIEVyYXNlIEludGVycnVwdHMgKi8KKyNkZWZpbmUgRUVJRVggICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBFbmFibGUgRW1lcmdlbmN5IEludGVycnVwdCBFeGl0ICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKyNkZWZpbmUgTE9DS0EgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTZWdtZW50IEEgTG9jayBiaXQ6IHJlYWQgPSAxIC0gU2VnbWVudCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRkFJTCAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBMYXN0IFByb2dyYW0gb3IgRXJhc2UgZmFpbGVkICovCisKKyNkZWZpbmUgTUdSMCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBNYXJnaW5hbCByZWFkIDAgbW9kZS4gKi8KKyNkZWZpbmUgTUdSMSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBNYXJnaW5hbCByZWFkIDEgbW9kZS4gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBIQVJEV0FSRSBNVUxUSVBMSUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19NUFlfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoTVBZKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTVBZUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQ1MpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChPUDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl8xNkJJVChSRVNMTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl8xNkJJVChSRVNISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgSGlnaCBXb3JkICovCitTRlJfMTZCSVQoU1VNRVhUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VtIEV4dGVuZCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCitTRlJfOEJJVChQMVJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFJlc2lzdG9yIEVuYWJsZSAqLworCitTRlJfOEJJVChQMklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIElucHV0ICovCitTRlJfOEJJVChQMk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIE91dHB1dCAqLworU0ZSXzhCSVQoUDJESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAySUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAyU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uICovCitTRlJfOEJJVChQMlJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFJlc2lzdG9yIEVuYWJsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQzLzQgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQzX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNF9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQM0lOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIElucHV0ICovCitTRlJfOEJJVChQM09VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIE91dHB1dCAqLworU0ZSXzhCSVQoUDNESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAzU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgU2VsZWN0aW9uICovCitTRlJfOEJJVChQM1JFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFJlc2lzdG9yIEVuYWJsZSAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCitTRlJfOEJJVChQNFJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFJlc2lzdG9yIEVuYWJsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQ1LzYgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ1X1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNl9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQNUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IElucHV0ICovCitTRlJfOEJJVChQNU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IE91dHB1dCAqLworU0ZSXzhCSVQoUDVESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA1U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgU2VsZWN0aW9uICovCitTRlJfOEJJVChQNVJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IFJlc2lzdG9yIEVuYWJsZSAqLworCitTRlJfOEJJVChQNklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IElucHV0ICovCitTRlJfOEJJVChQNk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IE91dHB1dCAqLworU0ZSXzhCSVQoUDZESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA2U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgU2VsZWN0aW9uICovCitTRlJfOEJJVChQNlJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFJlc2lzdG9yIEVuYWJsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJyb3duLU91dCwgU3VwcGx5IFZvbHRhZ2UgU3VwZXJ2aXNpb24gKFNWUykKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NWU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNWU0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgQ29udHJvbCAqLworI2RlZmluZSBTVlNGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNWUyBGbGFnICovCisjZGVmaW5lIFNWU09QICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1ZTIG91dHB1dCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBTVlNPTiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN3aXRjaGVzIHRoZSBTVlMgb24vb2ZmICovCisjZGVmaW5lIFBPUk9OICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRW5hYmxlIFBPUiBHZW5lcmF0aW9uIGlmIExvdyBWb2x0YWdlICovCisjZGVmaW5lIFZMRDAgICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRDEgICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFZMRDIgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFZMRDMgICAgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgVkxET04gICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxET0ZGICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgVkxEXzFfOFYgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEIzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQjNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQlIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCICovCitTRlJfMTZCSVQoVEJDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRCQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQkNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEJDTEdSUDEgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFRCQ0xHUlAwICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworI2RlZmluZSBDTlRMMSAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDEgKi8KKyNkZWZpbmUgQ05UTDAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAwICovCisjZGVmaW5lIFRCU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDEgKi8KKyNkZWZpbmUgVEJTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMCAqLworI2RlZmluZSBUQkNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEIgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQklFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQklGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBTSFIxICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgU0hSMCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisKKyNkZWZpbmUgVEJTU0VMXzAgICAgICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFRCQ0xLICovCisjZGVmaW5lIFRCU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBBQ0xLICAqLworI2RlZmluZSBUQlNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogU01DTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzMgICAgICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IElOQ0xLICovCisjZGVmaW5lIENOVExfMCAgICAgICAgICAgICAgICAgKDAqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDE2IGJpdCAqLworI2RlZmluZSBDTlRMXzEgICAgICAgICAgICAgICAgICgxKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8yICAgICAgICAgICAgICAgICAoMioweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTAgYml0ICovCisjZGVmaW5lIENOVExfMyAgICAgICAgICAgICAgICAgKDMqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6ICA4IGJpdCAqLworI2RlZmluZSBTSFJfMCAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgU0hSXzEgICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFNIUl8yICAgICAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBTSFJfMyAgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisjZGVmaW5lIFRCQ0xHUlBfMCAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBUQkNMR1JQXzEgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgVEJDTEdSUF8yICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFRCQ0xHUlBfMyAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKworLyogQWRkaXRpb25hbCBUaW1lciBCIENvbnRyb2wgUmVnaXN0ZXIgYml0cyBhcmUgZGVmaW5lZCBpbiBUaW1lciBBICovCisKKyNkZWZpbmUgQ0xMRDEgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgQ0xMRDAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUjEgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBTTFNIUjAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSXzAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgU0xTSFJfMSAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBTTFNIUl8yICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBTTFNIUl8zICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworI2RlZmluZSBDTExEXzAgICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIENMTERfMSAgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgQ0xMRF8yICAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgQ0xMRF8zICAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKy8qIFRCM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRCSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQkNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQkNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl8zICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzQgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNSAgICAgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl82ICAgICAgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWX1RCSUZHICAgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFRCSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNDSQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVUNBMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0EwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0EwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0EwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IwSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMFNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfMTZCSVQoVUNCMEkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IwSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBTbGF2ZSBBZGRyZXNzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDUEVOICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgVUNQQVIgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5ICAgICAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBVQ01TQiAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBNU0IgZmlyc3QgIDA6TFNCIC8gMTpNU0IgKi8KKyNkZWZpbmUgVUM3QklUICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogRGF0YSBCaXRzICAwOjgtYml0cyAvIDE6Ny1iaXRzICovCisjZGVmaW5lIFVDU1BCICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFN0b3AgQml0cyAgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgVUNNT0RFMSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDEgKi8KKyNkZWZpbmUgVUNNT0RFMCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDAgKi8KKyNkZWZpbmUgVUNTWU5DICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTeW5jLU1vZGUgIDA6VUFSVC1Nb2RlIC8gMTpTUEktTW9kZSAqLworCisvLyBTUEktTW9kZSBCaXRzCisjZGVmaW5lIFVDQ0tQSCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU3luYy4gTW9kZTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgVUNDS1BMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBVQ01TVCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IE1hc3RlciBTZWxlY3QgKi8KKworLy8gSTJDLU1vZGUgQml0cworI2RlZmluZSBVQ0ExMCAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIDEwLWJpdCBBZGRyZXNzIE1vZGUgKi8KKyNkZWZpbmUgVUNTTEExMCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxMC1iaXQgU2xhdmUgQWRkcmVzcyBNb2RlICovCisjZGVmaW5lIFVDTU0gICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTXVsdGktTWFzdGVyIEVudmlyb25tZW50ICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDTU9ERV8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAwICovCisjZGVmaW5lIFVDTU9ERV8xICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAxICovCisjZGVmaW5lIFVDTU9ERV8yICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAyICovCisjZGVmaW5lIFVDTU9ERV8zICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDU1NFTDEgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBVQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNSWEVJRSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQlJLSUUgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgaW50ZXJydXB0IGVuYWJsZSAqLyAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDRE9STSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRG9ybWFudCAoU2xlZXApIE1vZGUgKi8KKyNkZWZpbmUgVUNUWEFERFIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBBZGRyZXNzICovCisjZGVmaW5lIFVDVFhCUksgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VuZCBuZXh0IERhdGEgYXMgQnJlYWsgKi8KKyNkZWZpbmUgVUNTV1JTVCAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIFNvZnR3YXJlIFJlc2V0ICovCisKKy8vIFNQSS1Nb2RlIEJpdHMKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwOCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwNCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwMikgICAgLyogcmVzZXJ2ZWQgKi8KKworLy8gSTJDLU1vZGUgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ1RSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFRyYW5zbWl0L1JlY2VpdmUgU2VsZWN0L0ZsYWcgKi8KKyNkZWZpbmUgVUNUWE5BQ0sgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBUcmFuc21pdCBOQUNLICovCisjZGVmaW5lIFVDVFhTVFAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVHJhbnNtaXQgU1RPUCAqLworI2RlZmluZSBVQ1RYU1RUICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFRyYW5zbWl0IFNUQVJUICovCisjZGVmaW5lIFVDU1NFTF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMCAqLworI2RlZmluZSBVQ1NTRUxfMSAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDEgKi8KKyNkZWZpbmUgVUNTU0VMXzIgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAyICovCisjZGVmaW5lIFVDU1NFTF8zICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMyAqLworCisjZGVmaW5lIFVDQlJGMyAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAzICovCisjZGVmaW5lIFVDQlJGMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDQlJGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDQlJTMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMiAqLworI2RlZmluZSBVQ0JSUzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUlMwICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDT1MxNiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSAxNi10aW1lcyBPdmVyc2FtcGxpbmcgZW5hYmxlICovCisKKyNkZWZpbmUgVUNCUkZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUkZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUkZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDIgKi8KKyNkZWZpbmUgVUNCUkZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUkZfNCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUkZfNSAgICAgICAgICAgICAgICAoMHg1MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDUgKi8KKyNkZWZpbmUgVUNCUkZfNiAgICAgICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUkZfNyAgICAgICAgICAgICAgICAoMHg3MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKyNkZWZpbmUgVUNCUkZfOCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDggKi8KKyNkZWZpbmUgVUNCUkZfOSAgICAgICAgICAgICAgICAoMHg5MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDkgKi8KKyNkZWZpbmUgVUNCUkZfMTAgICAgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEEgKi8KKyNkZWZpbmUgVUNCUkZfMTEgICAgICAgICAgICAgICAoMHhCMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEIgKi8KKyNkZWZpbmUgVUNCUkZfMTIgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEMgKi8KKyNkZWZpbmUgVUNCUkZfMTMgICAgICAgICAgICAgICAoMHhEMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEQgKi8KKyNkZWZpbmUgVUNCUkZfMTQgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEUgKi8KKyNkZWZpbmUgVUNCUkZfMTUgICAgICAgICAgICAgICAoMHhGMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEYgKi8KKworI2RlZmluZSBVQ0JSU18wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUlNfMSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAxICovCisjZGVmaW5lIFVDQlJTXzIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSU18zICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUlNfNCAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA0ICovCisjZGVmaW5lIFVDQlJTXzUgICAgICAgICAgICAgICAgKDB4MEEpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSU182ICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUlNfNyAgICAgICAgICAgICAgICAoMHgwRSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA3ICovCisKKyNkZWZpbmUgVUNMSVNURU4gICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFVDRkUgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGcmFtZSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDT0UgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBPdmVycnVuIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNQRSAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIFBhcml0eSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQlJLICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBCcmVhayByZWNlaXZlZCAqLworI2RlZmluZSBVQ1JYRVJSICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgUlggRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ0FERFIgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgQWRkcmVzcyByZWNlaXZlZCBGbGFnICovCisjZGVmaW5lIFVDQlVTWSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNJRExFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIElkbGUgbGluZSBkZXRlY3RlZCBGbGFnICovCisKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg4MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg0MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNOQUNLSUUgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUNLIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RQSUUgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ1NUVElFICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQUxJRSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXJiaXRyYXRpb24gTG9zdCBpbnRlcnJ1cHQgZW5hYmxlICovCisKKyNkZWZpbmUgVUNTQ0xMT1cgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTQ0wgbG93ICovCisjZGVmaW5lIFVDR0MgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogR2VuZXJhbCBDYWxsIGFkZHJlc3MgcmVjZWl2ZWQgRmxhZyAqLworI2RlZmluZSBVQ0JCVVNZICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJ1cyBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNOQUNLSUZHICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUsgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDU1RQSUZHICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFRJRkcgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVEFSVCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNBTElGRyAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBMb3N0IGludGVycnVwdCBGbGFnICovCisKKyNkZWZpbmUgVUNJUlRYUEw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJUWFBMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSVFhQTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlRYUEwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJUWFBMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSVFhQTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlRYQ0xLICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIENsb2NrIFNlbGVjdCAqLworI2RlZmluZSBVQ0lSRU4gICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIElSREEgRW5jb2Rlci9EZWNvZGVyIGVuYWJsZSAqLworCisjZGVmaW5lIFVDSVJSWEZMNSAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNSAqLworI2RlZmluZSBVQ0lSUlhGTDQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDQgKi8KKyNkZWZpbmUgVUNJUlJYRkwzICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAzICovCisjZGVmaW5lIFVDSVJSWEZMMiAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMiAqLworI2RlZmluZSBVQ0lSUlhGTDEgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDEgKi8KKyNkZWZpbmUgVUNJUlJYRkwwICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAwICovCisjZGVmaW5lIFVDSVJSWFBMICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIElucHV0IFBvbGFyaXR5ICovCisjZGVmaW5lIFVDSVJSWEZFICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBlbmFibGUgKi8KKworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDgwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDQwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0RFTElNMSAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDEgKi8KKyNkZWZpbmUgVUNERUxJTTAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBTeW5jIERlbGltaXRlciAwICovCisjZGVmaW5lIFVDU1RPRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy1GaWVsZCBUaW1lb3V0IGVycm9yICovCisjZGVmaW5lIFVDQlRPRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQnJlYWsgVGltZW91dCBlcnJvciAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0FCREVOICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEF1dG8gQmF1ZCBSYXRlIGRldGVjdCBlbmFibGUgKi8KKworI2RlZmluZSBVQ0dDRU4gICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEkyQyBHZW5lcmFsIENhbGwgZW5hYmxlICovCisjZGVmaW5lIFVDT0E5ICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNPQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOCAqLworI2RlZmluZSBVQ09BNyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDT0E2ICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNPQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNSAqLworI2RlZmluZSBVQ09BNCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDT0EzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNPQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMiAqLworI2RlZmluZSBVQ09BMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAxICovCisjZGVmaW5lIFVDT0EwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDAgKi8KKworI2RlZmluZSBVQ1NBOSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNTQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDU0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNyAqLworI2RlZmluZSBVQ1NBNiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNTQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDU0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNCAqLworI2RlZmluZSBVQ1NBMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNTQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAyICovCisjZGVmaW5lIFVDU0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMSAqLworI2RlZmluZSBVQ1NBMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFRMViBDYWxpYnJhdGlvbiBEYXRhIFN0cnVjdHVyZSAqLworI2RlZmluZSBUQUdfRENPXzMwICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRhZyBmb3IgRENPMzAgIENhbGlicmF0aW9uIERhdGEgKi8KKyNkZWZpbmUgVEFHX0FEQzEyXzEgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBUYWcgZm9yIEFEQzEyXzEgQ2FsaWJyYXRpb24gRGF0YSAqLworI2RlZmluZSBUQUdfRU1QVFkgICAgICAgICAgICAgICgweEZFKSAgICAgICAgIC8qIFRhZyBmb3IgRW1wdHkgRGF0YSBGaWVsZCBpbiBDYWxpYnJhdGlvbiBEYXRhICovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorU0ZSXzE2QklUKFRMVl9DSEVDS1NVTSk7ICAgICAgICAgICAgICAgICAgICAgIC8qIFRMViBDSEVDSyBTVU0gKi8KK1NGUl84QklUKFRMVl9EQ09fMzBfVEFHKTsgICAgICAgICAgICAgICAgICAgICAvKiBUTFYgVEFHX0RDTzMwIFRBRyAqLworU0ZSXzhCSVQoVExWX0RDT18zMF9MRU4pOyAgICAgICAgICAgICAgICAgICAgIC8qIFRMViBUQUdfRENPMzAgTEVOICovCitTRlJfOEJJVChUTFZfQURDMTJfMV9UQUcpOyAgICAgICAgICAgICAgICAgICAgLyogVExWIEFEQzEyXzEgVEFHICovCitTRlJfOEJJVChUTFZfQURDMTJfMV9MRU4pOyAgICAgICAgICAgICAgICAgICAgLyogVExWIEFEQzEyXzEgTEVOICovCisjZW5kaWYKKworI2RlZmluZSBDQUxfQURDXzI1VDg1ICAgICAgICAgICgweDAwMDcpICAgICAgIC8qIEluZGV4IGZvciAyLjVWLzg1RGVnIENhbC4gVmFsdWUgKi8KKyNkZWZpbmUgQ0FMX0FEQ18yNVQzMCAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBJbmRleCBmb3IgMi41Vi8zMERlZyBDYWwuIFZhbHVlICovCisjZGVmaW5lIENBTF9BRENfMjVWUkVGX0ZBQ1RPUiAgKDB4MDAwNSkgICAgICAgLyogSW5kZXggZm9yIDIuNVYgUmVmLiBGYWN0b3IgKi8KKyNkZWZpbmUgQ0FMX0FEQ18xNVQ4NSAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJbmRleCBmb3IgMS41Vi84NURlZyBDYWwuIFZhbHVlICovCisjZGVmaW5lIENBTF9BRENfMTVUMzAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogSW5kZXggZm9yIDEuNVYvMzBEZWcgQ2FsLiBWYWx1ZSAqLworI2RlZmluZSBDQUxfQURDXzE1VlJFRl9GQUNUT1IgICgweDAwMDIpICAgICAgIC8qIEluZGV4IGZvciBBREMgMS41ViBSZWYuIEZhY3RvciAqLworI2RlZmluZSBDQUxfQURDX09GRlNFVCAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEluZGV4IGZvciBBREMgT2Zmc2V0ICovCisjZGVmaW5lIENBTF9BRENfR0FJTl9GQUNUT1IgICAgKDB4MDAwMCkgICAgICAgLyogSW5kZXggZm9yIEFEQyBHYWluIEZhY3RvciAqLworCisjZGVmaW5lIENBTF9EQ09fMTZNSFogICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogSW5kZXggZm9yIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KKyNkZWZpbmUgQ0FMX0JDMV8xNk1IWiAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJbmRleCBmb3IgQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworI2RlZmluZSBDQUxfRENPXzEyTUhaICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEluZGV4IGZvciBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCisjZGVmaW5lIENBTF9CQzFfMTJNSFogICAgICAgICAgKDB4MDAwMykgICAgICAgLyogSW5kZXggZm9yIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTJNSHogKi8KKyNkZWZpbmUgQ0FMX0RDT184TUhaICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJbmRleCBmb3IgRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciA4TUh6ICovCisjZGVmaW5lIENBTF9CQzFfOE1IWiAgICAgICAgICAgKDB4MDAwNSkgICAgICAgLyogSW5kZXggZm9yIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworI2RlZmluZSBDQUxfRENPXzFNSFogICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIEluZGV4IGZvciBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDFNSHogKi8KKyNkZWZpbmUgQ0FMX0JDMV8xTUhaICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBJbmRleCBmb3IgQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxTUh6ICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorCitTRlJfOEJJVChDQUxEQ09fMTZNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTERDT18xMk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCitTRlJfOEJJVChDQUxCQzFfMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX0Rpc2FibGVDYWxEYXRhICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisKKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDIgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAyIikgICovIC8qIDB4RkZFNCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFBvcnQgMiAqLyAgCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAzIikgICovIC8qIDB4RkZFNiBQb3J0IDIgKi8gICAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQURDMTJfVkVDVE9SICAgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgQURDICovCisvKiNkZWZpbmUgQURDMTJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA1IikgICovIC8qIDB4RkZFQSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjBUWF9WRUNUT1IgICAgICAgICg2ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFVTQ0kgQTAvQjAgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0NJQUIwVFhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDYiKSAgKi8gLyogMHhGRkVDIFVTQ0kgQTAvQjAgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjBSWF9WRUNUT1IgICAgICAgICg3ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIFVTQ0kgQTAvQjAgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQ0lBQjBSWF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNyIpICAqLyAvKiAweEZGRUUgVVNDSSBBMC9CMCBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkExX1ZFQ1RPUiAgICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBUaW1lciBBIENDMS0yLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOCIpICAqLyAvKiAweEZGRjAgVGltZXIgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICg5ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA5IikgICovIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtNiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTYsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDIzeCAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDIzeDAuaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MjN4MC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhOWU1ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDIzeDAuaApAQCAtMCwwICsxLDgzMiBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIFN0YW5kYXJkIHJlZ2lzdGVyIGFuZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cworKiBNU1A0MzAgbWljcm9jb250cm9sbGVyLgorKgorKiBUaGlzIGZpbGUgc3VwcG9ydHMgYXNzZW1ibGVyIGFuZCBDIGRldmVsb3BtZW50IGZvcgorKiBNU1A0MzB4MjN4MCBkZXZpY2VzLgorKgorKiBUZXhhcyBJbnN0cnVtZW50cywgVmVyc2lvbiAxLjEKKyogICAgICAgICAgICAgICAgICAKKyogUmV2LiAxLjAsIC0tLQorKiBSZXYuIDEuMSwgYWRkZWQgZGVmaW5pdGlvbnMgZm9yIEludGVycnVwdCBWZWN0b3JzIHh4SVYKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDIzeDAKKyNkZWZpbmUgX19tc3A0MzB4MjN4MAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFBFUklQSEVSQUwgRklMRSBNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBFeHRlcm5hbCByZWZlcmVuY2VzIHJlc29sdmVkIGJ5IGEgZGV2aWNlLXNwZWNpZmljIGxpbmtlciBjb21tYW5kIGZpbGUgKi8KKyNkZWZpbmUgU0ZSXzhCSVQoYWRkcmVzcykgICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgY2hhciBhZGRyZXNzCisjZGVmaW5lIFNGUl8xNkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFOREFSRCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQklUMCAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBCSVQxICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIEJJVDIgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgQklUMyAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBCSVQ0ICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIEJJVDUgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgQklUNiAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBCSVQ3ICAgICAgICAgICAgICAgICAgICgweDAwODApCisjZGVmaW5lIEJJVDggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgQklUOSAgICAgICAgICAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBCSVRBICAgICAgICAgICAgICAgICAgICgweDA0MDApCisjZGVmaW5lIEJJVEIgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkKKyNkZWZpbmUgQklUQyAgICAgICAgICAgICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBCSVREICAgICAgICAgICAgICAgICAgICgweDIwMDApCisjZGVmaW5lIEJJVEUgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkKKyNkZWZpbmUgQklURiAgICAgICAgICAgICAgICAgICAoMHg4MDAwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQVRVUyBSRUdJU1RFUiBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQyAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBaICAgICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIE4gICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgViAgICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBHSUUgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgT1NDT0ZGICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBTQ0cwICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFNDRzEgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworLyogTG93IFBvd2VyIE1vZGVzIGNvZGVkIHdpdGggQml0cyA0LTcgaW4gU1IgKi8KKworI2lmZGVmIF9fQVNNX0hFQURFUl9fIC8qIEJlZ2luICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKyNkZWZpbmUgTFBNMCAgICAgICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xICAgICAgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMiAgICAgICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTMgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTQgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorLyogRW5kICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKworI2Vsc2UgLyogQmVnaW4gI2RlZmluZXMgZm9yIEMgKi8KKyNkZWZpbmUgTFBNMF9iaXRzICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xX2JpdHMgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMl9iaXRzICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTNfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTRfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorCisjaW5jbHVkZSA8SW40MzAuaD4KKworI2RlZmluZSBMUE0wICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0wX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0wX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTBfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTEgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTFfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTFfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMV9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMiAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMl9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMl9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0yX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0zICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0zX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE0zX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTQgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTRfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSA0ICovCisjZGVmaW5lIExQTTRfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNNF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDQgKi8KKyNlbmRpZiAvKiBFbmQgI2RlZmluZXMgZm9yIEMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1BFQ0lBTCBGVU5DVElPTiBSRUdJU1RFUiBBRERSRVNTRVMgKyBDT05UUk9MIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworU0ZSXzhCSVQoSUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMSAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBPc2MuIEZhdWx0ICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBGbGFzaCBBY2Nlc3MgVmlvbGF0aW9uIEludGVycnVwdCBFbmFibGUgKi8KKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBXYXRjaGRvZyBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgUE9SSUZHICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBQb3dlciBPbiBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSU1RJRkcgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlc2V0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBGbGFnICovCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVUMwSUUgICAgICAgICAgICAgICAgICBJRTIKKyNkZWZpbmUgVUNBMFJYSUUgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVUNBMFRYSUUgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVUNCMFJYSUUgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVUNCMFRYSUUgICAgICAgICAgICAgICAoMHgwOCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgVUMwSUZHICAgICAgICAgICAgICAgICBJRkcyCisjZGVmaW5lIFVDQTBSWElGRyAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTBUWElGRyAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjBSWElGRyAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjBUWElGRyAgICAgICAgICAgICAgKDB4MDgpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQmFzaWMgQ2xvY2sgTW9kdWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CQzJfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChEQ09DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRENPIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCitTRlJfOEJJVChCQ1NDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQkNTQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDIgKi8KK1NGUl84QklUKEJDU0NUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAzICovCisKKyNkZWZpbmUgTU9EMCAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAwICovCisjZGVmaW5lIE1PRDEgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMSAqLworI2RlZmluZSBNT0QyICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDIgKi8KKyNkZWZpbmUgTU9EMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAzICovCisjZGVmaW5lIE1PRDQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgNCAqLworI2RlZmluZSBEQ08wICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgRENPMSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIERDTzIgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMiAqLworCisjZGVmaW5lIFJTRUwwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIFJTRUwxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIFJTRUwyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIFJTRUwzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmFuZ2UgU2VsZWN0IEJpdCAzICovCisjZGVmaW5lIERJVkEwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWQTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBYVFMgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExGWFRDTEsgMDpMb3cgRnJlcS4gLyAxOiBIaWdoIEZyZXEuICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRW5hYmxlIFhUMkNMSyAqLworCisjZGVmaW5lIERJVkFfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVkFfMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVkFfMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVkFfMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgRENPUiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBFbmFibGUgRXh0ZXJuYWwgUmVzaXN0b3IgOiAxICovCisjZGVmaW5lIERJVlMwICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVlMxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCAwOkRDT0NMSyAvIDE6WFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgRElWTTAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZNMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxICovCisjZGVmaW5lIFNFTE0wICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0VMTTEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMSAqLworCisjZGVmaW5lIERJVlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU01DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZTXzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMTogLzIgKi8KKyNkZWZpbmUgRElWU18yICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVlNfMyAgICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERJVk1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDA6IC8xICovCisjZGVmaW5lIERJVk1fMSAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVk1fMiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDI6IC80ICovCisjZGVmaW5lIERJVk1fMyAgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDM6IC84ICovCisKKyNkZWZpbmUgU0VMTV8wICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMDogRENPQ0xLICovCisjZGVmaW5lIFNFTE1fMSAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDE6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAyOiBYVDJDTEsvTEZYVENMSyAqLworI2RlZmluZSBTRUxNXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAzOiBMRlhUQ0xLICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBMRlhUMU9GICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIExvdy9oaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgWFQyT0YgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBIaWdoIGZyZXF1ZW5jeSBvc2NpbGxhdG9yIDIgZmF1bHQgZmxhZyAqLworI2RlZmluZSBYQ0FQMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIFhDQVAxICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgTEZYVDFTMCAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBMRlhUMVMxICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgKFhUUyA9IDApICovCisjZGVmaW5lIFhUMlMwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgKi8KKyNkZWZpbmUgWFQyUzEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiAqLworCisjZGVmaW5lIFhDQVBfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMCBwRiAqLworI2RlZmluZSBYQ0FQXzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDYgcEYgKi8KKyNkZWZpbmUgWENBUF8yICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMCBwRiAqLworI2RlZmluZSBYQ0FQXzMgICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDEyLjUgcEYgKi8KKworI2RlZmluZSBMRlhUMVNfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgTEZYVDEgOiBOb3JtYWwgb3BlcmF0aW9uICovCisjZGVmaW5lIExGWFQxU18xICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAxIGZvciBMRlhUMSA6IFJlc2VydmVkICovCisjZGVmaW5lIExGWFQxU18yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTW9kZSAyIGZvciBMRlhUMSA6IFZMTyAqLworI2RlZmluZSBMRlhUMVNfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgTEZYVDEgOiBEaWdpdGFsIGlucHV0IHNpZ25hbCAqLworCisjZGVmaW5lIFhUMlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgOiAwLjQgLSAxIE1IeiAqLworI2RlZmluZSBYVDJTXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgWFQyIDogMSAtIDQgTUh6ICovCisjZGVmaW5lIFhUMlNfMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAyIGZvciBYVDIgOiAyIC0gMTYgTUh6ICovCisjZGVmaW5lIFhUMlNfMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTW9kZSAzIGZvciBYVDIgOiBEaWdpdGFsIGlucHV0IHNpZ25hbCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvbXBhcmF0b3IgQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQ0FQTFVTX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQ0FDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDEgKi8KK1NGUl84QklUKENBQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAyICovCitTRlJfOEJJVChDQVBEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIFBvcnQgRGlzYWJsZSAqLworCisjZGVmaW5lIENBSUZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBDQUlFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBDQUlFUyAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBFZGdlIFNlbGVjdDogMDpyaXNpbmcgLyAxOmZhbGxpbmcgKi8KKyNkZWZpbmUgQ0FPTiAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIGVuYWJsZSAqLworI2RlZmluZSBDQVJFRjAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENBUkVGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0FSU0VMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBFbmFibGUgKi8KKyNkZWZpbmUgQ0FFWCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIEV4Y2hhbmdlIElucHV0cyAqLworCisjZGVmaW5lIENBUkVGXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDAgOiBPZmYgKi8KKyNkZWZpbmUgQ0FSRUZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMSA6IDAuMjUqVmNjICovCisjZGVmaW5lIENBUkVGXzIgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDIgOiAwLjUqVmNjICovCisjZGVmaW5lIENBUkVGXzMgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDMgOiBWdCovCisKKyNkZWZpbmUgQ0FPVVQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIE91dHB1dCAqLworI2RlZmluZSBDQUYgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRW5hYmxlIE91dHB1dCBGaWx0ZXIgKi8KKyNkZWZpbmUgUDJDQTAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBICtUZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgLVRlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIFAyQ0EyICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSAtVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTMgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIC1UZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBNCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgK1Rlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIENBU0hPUlQgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBTaG9ydCArIGFuZCAtIFRlcm1pbmFscyAqLworCisjZGVmaW5lIENBUEQwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4wICovCisjZGVmaW5lIENBUEQxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4xICovCisjZGVmaW5lIENBUEQyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4yICovCisjZGVmaW5lIENBUEQzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4zICovCisjZGVmaW5lIENBUEQ0ICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC40ICovCisjZGVmaW5lIENBUEQ1ICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC41ICovCisjZGVmaW5lIENBUEQ2ICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC42ICovCisjZGVmaW5lIENBUEQ3ICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC43ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIMl9fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIEVFSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRW5hYmxlIEVyYXNlIEludGVycnVwdHMgKi8KKyNkZWZpbmUgRUVJRVggICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBFbmFibGUgRW1lcmdlbmN5IEludGVycnVwdCBFeGl0ICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKyNkZWZpbmUgTE9DS0EgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTZWdtZW50IEEgTG9jayBiaXQ6IHJlYWQgPSAxIC0gU2VnbWVudCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRkFJTCAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBMYXN0IFByb2dyYW0gb3IgRXJhc2UgZmFpbGVkICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSEFSRFdBUkUgTVVMVElQTElFUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTVBZX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKE1QWSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1QWVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUNTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQgYW5kIEFjY3VtdWxhdGUvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoT1AyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT3BlcmFuZCAyICovCitTRlJfMTZCSVQoUkVTTE8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IExvdyBXb3JkICovCitTRlJfMTZCSVQoUkVTSEkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IEhpZ2ggV29yZCAqLworU0ZSXzE2QklUKFNVTUVYVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN1bSBFeHRlbmQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yIFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDFSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDJSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDNSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDRJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBJbnB1dCAqLworU0ZSXzhCSVQoUDRPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBPdXRwdXQgKi8KK1NGUl84QklUKFA0RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDRSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEIzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQjNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQlIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCICovCitTRlJfMTZCSVQoVEJDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRCQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQkNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEJDTEdSUDEgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFRCQ0xHUlAwICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworI2RlZmluZSBDTlRMMSAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDEgKi8KKyNkZWZpbmUgQ05UTDAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAwICovCisjZGVmaW5lIFRCU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDEgKi8KKyNkZWZpbmUgVEJTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMCAqLworI2RlZmluZSBUQkNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEIgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQklFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQklGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBTSFIxICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgU0hSMCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisKKyNkZWZpbmUgVEJTU0VMXzAgICAgICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFRCQ0xLICovCisjZGVmaW5lIFRCU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBBQ0xLICAqLworI2RlZmluZSBUQlNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogU01DTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzMgICAgICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IElOQ0xLICovCisjZGVmaW5lIENOVExfMCAgICAgICAgICAgICAgICAgKDAqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDE2IGJpdCAqLworI2RlZmluZSBDTlRMXzEgICAgICAgICAgICAgICAgICgxKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8yICAgICAgICAgICAgICAgICAoMioweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTAgYml0ICovCisjZGVmaW5lIENOVExfMyAgICAgICAgICAgICAgICAgKDMqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6ICA4IGJpdCAqLworI2RlZmluZSBTSFJfMCAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgU0hSXzEgICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFNIUl8yICAgICAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBTSFJfMyAgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisjZGVmaW5lIFRCQ0xHUlBfMCAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBUQkNMR1JQXzEgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgVEJDTEdSUF8yICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFRCQ0xHUlBfMyAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKworLyogQWRkaXRpb25hbCBUaW1lciBCIENvbnRyb2wgUmVnaXN0ZXIgYml0cyBhcmUgZGVmaW5lZCBpbiBUaW1lciBBICovCisKKyNkZWZpbmUgQ0xMRDEgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgQ0xMRDAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUjEgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBTTFNIUjAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSXzAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgU0xTSFJfMSAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBTTFNIUl8yICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBTTFNIUl8zICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworI2RlZmluZSBDTExEXzAgICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIENMTERfMSAgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgQ0xMRF8yICAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgQ0xMRF8zICAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKy8qIFRCM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRCSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQkNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQkNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl8zICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzQgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNSAgICAgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl82ICAgICAgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWX1RCSUZHICAgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFRCSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNDSQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVUNBMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0EwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0EwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0EwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IwSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMFNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfMTZCSVQoVUNCMEkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IwSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBTbGF2ZSBBZGRyZXNzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDUEVOICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgVUNQQVIgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5ICAgICAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBVQ01TQiAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBNU0IgZmlyc3QgIDA6TFNCIC8gMTpNU0IgKi8KKyNkZWZpbmUgVUM3QklUICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogRGF0YSBCaXRzICAwOjgtYml0cyAvIDE6Ny1iaXRzICovCisjZGVmaW5lIFVDU1BCICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFN0b3AgQml0cyAgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgVUNNT0RFMSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDEgKi8KKyNkZWZpbmUgVUNNT0RFMCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDAgKi8KKyNkZWZpbmUgVUNTWU5DICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTeW5jLU1vZGUgIDA6VUFSVC1Nb2RlIC8gMTpTUEktTW9kZSAqLworCisvLyBTUEktTW9kZSBCaXRzCisjZGVmaW5lIFVDQ0tQSCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU3luYy4gTW9kZTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgVUNDS1BMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBVQ01TVCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IE1hc3RlciBTZWxlY3QgKi8KKworLy8gSTJDLU1vZGUgQml0cworI2RlZmluZSBVQ0ExMCAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIDEwLWJpdCBBZGRyZXNzIE1vZGUgKi8KKyNkZWZpbmUgVUNTTEExMCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxMC1iaXQgU2xhdmUgQWRkcmVzcyBNb2RlICovCisjZGVmaW5lIFVDTU0gICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTXVsdGktTWFzdGVyIEVudmlyb25tZW50ICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDTU9ERV8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAwICovCisjZGVmaW5lIFVDTU9ERV8xICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAxICovCisjZGVmaW5lIFVDTU9ERV8yICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAyICovCisjZGVmaW5lIFVDTU9ERV8zICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDU1NFTDEgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBVQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNSWEVJRSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQlJLSUUgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgaW50ZXJydXB0IGVuYWJsZSAqLyAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDRE9STSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRG9ybWFudCAoU2xlZXApIE1vZGUgKi8KKyNkZWZpbmUgVUNUWEFERFIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBBZGRyZXNzICovCisjZGVmaW5lIFVDVFhCUksgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VuZCBuZXh0IERhdGEgYXMgQnJlYWsgKi8KKyNkZWZpbmUgVUNTV1JTVCAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIFNvZnR3YXJlIFJlc2V0ICovCisKKy8vIFNQSS1Nb2RlIEJpdHMKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwOCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwNCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwMikgICAgLyogcmVzZXJ2ZWQgKi8KKworLy8gSTJDLU1vZGUgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ1RSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFRyYW5zbWl0L1JlY2VpdmUgU2VsZWN0L0ZsYWcgKi8KKyNkZWZpbmUgVUNUWE5BQ0sgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBUcmFuc21pdCBOQUNLICovCisjZGVmaW5lIFVDVFhTVFAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVHJhbnNtaXQgU1RPUCAqLworI2RlZmluZSBVQ1RYU1RUICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFRyYW5zbWl0IFNUQVJUICovCisjZGVmaW5lIFVDU1NFTF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMCAqLworI2RlZmluZSBVQ1NTRUxfMSAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDEgKi8KKyNkZWZpbmUgVUNTU0VMXzIgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAyICovCisjZGVmaW5lIFVDU1NFTF8zICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMyAqLworCisjZGVmaW5lIFVDQlJGMyAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAzICovCisjZGVmaW5lIFVDQlJGMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDQlJGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDQlJTMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMiAqLworI2RlZmluZSBVQ0JSUzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUlMwICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDT1MxNiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSAxNi10aW1lcyBPdmVyc2FtcGxpbmcgZW5hYmxlICovCisKKyNkZWZpbmUgVUNCUkZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUkZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUkZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDIgKi8KKyNkZWZpbmUgVUNCUkZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUkZfNCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUkZfNSAgICAgICAgICAgICAgICAoMHg1MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDUgKi8KKyNkZWZpbmUgVUNCUkZfNiAgICAgICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUkZfNyAgICAgICAgICAgICAgICAoMHg3MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKyNkZWZpbmUgVUNCUkZfOCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDggKi8KKyNkZWZpbmUgVUNCUkZfOSAgICAgICAgICAgICAgICAoMHg5MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDkgKi8KKyNkZWZpbmUgVUNCUkZfMTAgICAgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEEgKi8KKyNkZWZpbmUgVUNCUkZfMTEgICAgICAgICAgICAgICAoMHhCMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEIgKi8KKyNkZWZpbmUgVUNCUkZfMTIgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEMgKi8KKyNkZWZpbmUgVUNCUkZfMTMgICAgICAgICAgICAgICAoMHhEMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEQgKi8KKyNkZWZpbmUgVUNCUkZfMTQgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEUgKi8KKyNkZWZpbmUgVUNCUkZfMTUgICAgICAgICAgICAgICAoMHhGMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEYgKi8KKworI2RlZmluZSBVQ0JSU18wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUlNfMSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAxICovCisjZGVmaW5lIFVDQlJTXzIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSU18zICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUlNfNCAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA0ICovCisjZGVmaW5lIFVDQlJTXzUgICAgICAgICAgICAgICAgKDB4MEEpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSU182ICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUlNfNyAgICAgICAgICAgICAgICAoMHgwRSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA3ICovCisKKyNkZWZpbmUgVUNMSVNURU4gICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFVDRkUgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGcmFtZSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDT0UgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBPdmVycnVuIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNQRSAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIFBhcml0eSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQlJLICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBCcmVhayByZWNlaXZlZCAqLworI2RlZmluZSBVQ1JYRVJSICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgUlggRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ0FERFIgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgQWRkcmVzcyByZWNlaXZlZCBGbGFnICovCisjZGVmaW5lIFVDQlVTWSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNJRExFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIElkbGUgbGluZSBkZXRlY3RlZCBGbGFnICovCisKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg4MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg0MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNOQUNLSUUgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUNLIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RQSUUgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ1NUVElFICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQUxJRSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXJiaXRyYXRpb24gTG9zdCBpbnRlcnJ1cHQgZW5hYmxlICovCisKKyNkZWZpbmUgVUNTQ0xMT1cgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTQ0wgbG93ICovCisjZGVmaW5lIFVDR0MgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogR2VuZXJhbCBDYWxsIGFkZHJlc3MgcmVjZWl2ZWQgRmxhZyAqLworI2RlZmluZSBVQ0JCVVNZICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJ1cyBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNOQUNLSUZHICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUsgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDU1RQSUZHICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFRJRkcgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVEFSVCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNBTElGRyAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBMb3N0IGludGVycnVwdCBGbGFnICovCisKKyNkZWZpbmUgVUNJUlRYUEw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJUWFBMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSVFhQTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlRYUEwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJUWFBMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSVFhQTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlRYQ0xLICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIENsb2NrIFNlbGVjdCAqLworI2RlZmluZSBVQ0lSRU4gICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIElSREEgRW5jb2Rlci9EZWNvZGVyIGVuYWJsZSAqLworCisjZGVmaW5lIFVDSVJSWEZMNSAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNSAqLworI2RlZmluZSBVQ0lSUlhGTDQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDQgKi8KKyNkZWZpbmUgVUNJUlJYRkwzICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAzICovCisjZGVmaW5lIFVDSVJSWEZMMiAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMiAqLworI2RlZmluZSBVQ0lSUlhGTDEgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDEgKi8KKyNkZWZpbmUgVUNJUlJYRkwwICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAwICovCisjZGVmaW5lIFVDSVJSWFBMICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIElucHV0IFBvbGFyaXR5ICovCisjZGVmaW5lIFVDSVJSWEZFICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBlbmFibGUgKi8KKworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDgwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDQwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0RFTElNMSAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDEgKi8KKyNkZWZpbmUgVUNERUxJTTAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBTeW5jIERlbGltaXRlciAwICovCisjZGVmaW5lIFVDU1RPRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy1GaWVsZCBUaW1lb3V0IGVycm9yICovCisjZGVmaW5lIFVDQlRPRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQnJlYWsgVGltZW91dCBlcnJvciAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0FCREVOICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEF1dG8gQmF1ZCBSYXRlIGRldGVjdCBlbmFibGUgKi8KKworI2RlZmluZSBVQ0dDRU4gICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEkyQyBHZW5lcmFsIENhbGwgZW5hYmxlICovCisjZGVmaW5lIFVDT0E5ICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNPQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOCAqLworI2RlZmluZSBVQ09BNyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDT0E2ICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNPQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNSAqLworI2RlZmluZSBVQ09BNCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDT0EzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNPQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMiAqLworI2RlZmluZSBVQ09BMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAxICovCisjZGVmaW5lIFVDT0EwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDAgKi8KKworI2RlZmluZSBVQ1NBOSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNTQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDU0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNyAqLworI2RlZmluZSBVQ1NBNiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNTQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDU0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNCAqLworI2RlZmluZSBVQ1NBMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNTQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAyICovCisjZGVmaW5lIFVDU0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMSAqLworI2RlZmluZSBVQ1NBMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorCitTRlJfOEJJVChDQUxEQ09fMTZNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTERDT18xMk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCitTRlJfOEJJVChDQUxCQzFfMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX0Rpc2FibGVDYWxEYXRhICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisKKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDIgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAyIikgICovIC8qIDB4RkZFNCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFBvcnQgMiAqLyAgCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAzIikgICovIC8qIDB4RkZFNiBQb3J0IDIgKi8gICAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNDSUFCMFRYX1ZFQ1RPUiAgICAgICAgKDYgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUMgVVNDSSBBMC9CMCBUcmFuc21pdCAqLworLyojZGVmaW5lIFVTQ0lBQjBUWF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVVNDSSBBMC9CMCBUcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNDSUFCMFJYX1ZFQ1RPUiAgICAgICAgKDcgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUUgVVNDSSBBMC9CMCBSZWNlaXZlICovCisvKiNkZWZpbmUgVVNDSUFCMFJYX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA3IikgICovIC8qIDB4RkZFRSBVU0NJIEEwL0IwIFJlY2VpdmUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTFfVkVDVE9SICAgICAgICAgICg4ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovCisvKiNkZWZpbmUgVElNRVJBMV9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBUaW1lciBBIENDMS0yLCBUQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMF9WRUNUT1IgICAgICAgICAgKDkgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUkEwX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFRpbWVyIEEgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIENPTVBBUkFUT1JBX1ZFQ1RPUiAgICAgICgxMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLworLyojZGVmaW5lIENPTVBBUkFUT1JBX0lTUihmdW5jKSAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMSIpICAqLyAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIxX1ZFQ1RPUiAgICAgICAgICAoMTIgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGOCBUaW1lciBCIENDMS02LCBUQiAqLworLyojZGVmaW5lIFRJTUVSQjFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMiIpICAqLyAvKiAweEZGRjggVGltZXIgQiBDQzEtNiwgVEIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQjBfVkVDVE9SICAgICAgICAgICgxMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZBIFRpbWVyIEIgQ0MwICovCisvKiNkZWZpbmUgVElNRVJCMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEzIikgICovIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MjN4MCAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDI0eC5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyNHguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWUwMTc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyNHguaApAQCAtMCwwICsxLDEyNDMgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDI0eCBkZXZpY2VzLgorKgorKiBUZXhhcyBJbnN0cnVtZW50cywgVmVyc2lvbiAxLjMKKyoKKyogUmV2LiAxLjAsIEluaXRpYWwgVmVyc2lvbgorKiBSZXYuIDEuMSAgYWRkZWQgVExWIGluIElORk8gTWVtb3J5CisqIFJldi4gMS4yLCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKiBSZXYuIDEuMywgYWRkZWQgbWlzc2luZyBQb3J0Ny84CisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHgyNHgKKyNkZWZpbmUgX19tc3A0MzB4MjR4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEZsYXNoIEFjY2VzcyBWaW9sYXRpb24gSW50ZXJydXB0IEVuYWJsZSAqLworCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogT3NjLiBGYXVsdCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBQT1JJRkcgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFBvd2VyIE9uIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFJTVElGRyAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVzZXQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEZsYWcgKi8KKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBVQzBJRSAgICAgICAgICAgICAgICAgIElFMgorI2RlZmluZSBVQ0EwUlhJRSAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0EwVFhJRSAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IwUlhJRSAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IwVFhJRSAgICAgICAgICAgICAgICgweDA4KQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBVQzBJRkcgICAgICAgICAgICAgICAgIElGRzIKKyNkZWZpbmUgVUNBMFJYSUZHICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVUNBMFRYSUZHICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVUNCMFJYSUZHICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVUNCMFRYSUZHICAgICAgICAgICAgICAoMHgwOCkKKworU0ZSXzhCSVQoVUMxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgMSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVDQTFSWElFICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTFUWElFICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjFSWElFICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjFUWElFICAgICAgICAgICAgICAgKDB4MDgpCisKK1NGUl84QklUKFVDMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJU0NJIDEgSW50ZXJydXB0IEZsYWdzICovCisjZGVmaW5lIFVDQTFSWElGRyAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTFUWElGRyAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjFSWElGRyAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjFUWElGRyAgICAgICAgICAgICAgKDB4MDgpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQURDMTIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0FEQzEyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChBREMxMkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChBREMxMkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChBREMxMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzE2QklUKEFEQzEySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl8xNkJJVChBREMxMklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KKworI2RlZmluZSBBREMxMk1FTV8gICAgICAgICAgICAgICgweDAxNDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgQURDMTJNRU0gICAgICAgICAgICAgICAoQURDMTJNRU1fKSAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIEFEQzEyTUVNICAgICAgICAgICAgICAgKChpbnQqKSAgICAgICAgQURDMTJNRU1fKSAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl8xNkJJVChBREMxMk1FTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAwICovCitTRlJfMTZCSVQoQURDMTJNRU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDIgKi8KK1NGUl8xNkJJVChBREMxMk1FTTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAzICovCitTRlJfMTZCSVQoQURDMTJNRU00KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNNSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDUgKi8KK1NGUl8xNkJJVChBREMxMk1FTTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA2ICovCitTRlJfMTZCSVQoQURDMTJNRU03KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNyAqLworU0ZSXzE2QklUKEFEQzEyTUVNOCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDggKi8KK1NGUl8xNkJJVChBREMxMk1FTTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA5ICovCitTRlJfMTZCSVQoQURDMTJNRU0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTAgKi8KK1NGUl8xNkJJVChBREMxMk1FTTExKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEyICovCitTRlJfMTZCSVQoQURDMTJNRU0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTMgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE0KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDE1ICovCisKKyNkZWZpbmUgQURDMTJNQ1RMXyAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIEFEQzEyTUNUTCAgICAgICAgICAgICAgKEFEQzEyTUNUTF8pICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBBREMxMk1DVEwgICAgICAgICAgICAgICgoY2hhciopICAgICAgIEFEQzEyTUNUTF8pIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoQURDMTJNQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDAgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxICovCitTRlJfOEJJVChBREMxMk1DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDMgKi8KK1NGUl84QklUKEFEQzEyTUNUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA0ICovCitTRlJfOEJJVChBREMxMk1DVEw1KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDYgKi8KK1NGUl84QklUKEFEQzEyTUNUTDcpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA3ICovCitTRlJfOEJJVChBREMxMk1DVEw4KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgOCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMOSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDkgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTEpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDExICovCitTRlJfOEJJVChBREMxMk1DVEwxMik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTIgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEzKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDE0ICovCitTRlJfOEJJVChBREMxMk1DVEwxNSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTUgKi8KKworLyogQURDMTJDVEwwICovCisjZGVmaW5lIEFEQzEyU0MgICAgICAgICAgICAgICAgKDB4MDAxKSAgICAgICAgLyogQURDMTIgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBFTkMgICAgICAgICAgICAgICAgICAgICgweDAwMikgICAgICAgIC8qIEFEQzEyIEVuYWJsZSBDb252ZXJzaW9uICovCisjZGVmaW5lIEFEQzEyVE9WSUUgICAgICAgICAgICAgKDB4MDA0KSAgICAgICAgLyogQURDMTIgVGltZXIgT3ZlcmZsb3cgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBBREMxMk9WSUUgICAgICAgICAgICAgICgweDAwOCkgICAgICAgIC8qIEFEQzEyIE92ZXJmbG93IGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQURDMTJPTiAgICAgICAgICAgICAgICAoMHgwMTApICAgICAgICAvKiBBREMxMiBPbi9lbmFibGUgKi8KKyNkZWZpbmUgUkVGT04gICAgICAgICAgICAgICAgICAoMHgwMjApICAgICAgICAvKiBBREMxMiBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgUkVGMl81ViAgICAgICAgICAgICAgICAoMHgwNDApICAgICAgICAvKiBBREMxMiBSZWYgMDoxLjVWIC8gMToyLjVWICovCisjZGVmaW5lIE1TQyAgICAgICAgICAgICAgICAgICAgKDB4MDgwKSAgICAgICAgLyogQURDMTIgTXVsdGlwbGUgU2FtcGxlQ29udmVyc2lvbiAqLworI2RlZmluZSBTSFQwMCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0hUMDEgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAxICovCisjZGVmaW5lIFNIVDAyICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMiAqLworI2RlZmluZSBTSFQwMyAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDMgKi8KKyNkZWZpbmUgU0hUMTAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAwICovCisjZGVmaW5lIFNIVDExICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMSBTZWxlY3QgMSAqLworI2RlZmluZSBTSFQxMiAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDIgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0hUMTMgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAzIFNlbGVjdCAzICovCisjZGVmaW5lIE1TSCAgICAgICAgICAgICAgICAgICAgKDB4MDgwKQorCisjZGVmaW5lIFNIVDBfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8yICAgICAgICAgICAgICAgICAoMioweDEwMHUpCisjZGVmaW5lIFNIVDBfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDB1KQorI2RlZmluZSBTSFQwXzQgICAgICAgICAgICAgICAgICg0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF81ICAgICAgICAgICAgICAgICAoNSoweDEwMHUpCisjZGVmaW5lIFNIVDBfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDB1KQorI2RlZmluZSBTSFQwXzcgICAgICAgICAgICAgICAgICg3KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF84ICAgICAgICAgICAgICAgICAoOCoweDEwMHUpCisjZGVmaW5lIFNIVDBfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEwICAgICAgICAgICAgICAgICgxMCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEzICAgICAgICAgICAgICAgICgxMyoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDB1KQorCisjZGVmaW5lIFNIVDFfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV80ICAgICAgICAgICAgICAgICAoNCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzUgICAgICAgICAgICAgICAgICg1KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV83ICAgICAgICAgICAgICAgICAoNyoweDEwMDB1KQorI2RlZmluZSBTSFQxXzggICAgICAgICAgICAgICAgICg4KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMCAgICAgICAgICAgICAgICAoMTAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMSAgICAgICAgICAgICAgICAoMTEqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMyAgICAgICAgICAgICAgICAoMTMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNCAgICAgICAgICAgICAgICAoMTQqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDAwdSkKKworLyogQURDMTJDVEwxICovCisjZGVmaW5lIEFEQzEyQlVTWSAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgQnVzeSAqLworI2RlZmluZSBDT05TRVEwICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ09OU0VRMSAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyU1NFTDAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyU1NFTDEgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMkRJVjEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJESVYyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAyICovCisjZGVmaW5lIElTU0ggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTIgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBTSFAgICAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFB1bHNlIE1vZGUgKi8KKyNkZWZpbmUgU0hTMCAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBTSFMxICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIENTVEFSVEFERDAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDAgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMSAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMSAqLworI2RlZmluZSBDU1RBUlRBREQyICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAyICovCisjZGVmaW5lIENTVEFSVEFERDMgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDMgKi8KKworI2RlZmluZSBDT05TRVFfMCAgICAgICAgICAgICAgICgwKjJ1KQorI2RlZmluZSBDT05TRVFfMSAgICAgICAgICAgICAgICgxKjJ1KQorI2RlZmluZSBDT05TRVFfMiAgICAgICAgICAgICAgICgyKjJ1KQorI2RlZmluZSBDT05TRVFfMyAgICAgICAgICAgICAgICgzKjJ1KQorI2RlZmluZSBBREMxMlNTRUxfMCAgICAgICAgICAgICgwKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMSAgICAgICAgICAgICgxKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMiAgICAgICAgICAgICgyKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMyAgICAgICAgICAgICgzKjh1KQorI2RlZmluZSBBREMxMkRJVl8wICAgICAgICAgICAgICgwKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8xICAgICAgICAgICAgICgxKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8yICAgICAgICAgICAgICgyKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8zICAgICAgICAgICAgICgzKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl80ICAgICAgICAgICAgICg0KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl81ICAgICAgICAgICAgICg1KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl82ICAgICAgICAgICAgICg2KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl83ICAgICAgICAgICAgICg3KjB4MjB1KQorI2RlZmluZSBTSFNfMCAgICAgICAgICAgICAgICAgICgwKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzEgICAgICAgICAgICAgICAgICAoMSoweDQwMHUpCisjZGVmaW5lIFNIU18yICAgICAgICAgICAgICAgICAgKDIqMHg0MDB1KQorI2RlZmluZSBTSFNfMyAgICAgICAgICAgICAgICAgICgzKjB4NDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMSAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8yICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzMgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNCAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF81ICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzYgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNyAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF84ICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzkgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTEgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTIgICAgICAgICAgICgxMioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTMgICAgICAgICAgICgxMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTQgICAgICAgICAgICgxNCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTUgICAgICAgICAgICgxNSoweDEwMDB1KQorCisvKiBBREMxMk1DVEx4ICovCisjZGVmaW5lIElOQ0gwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgSU5DSDEgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBJTkNIMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIElOQ0gzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDMgKi8KKyNkZWZpbmUgU1JFRjAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAwICovCisjZGVmaW5lIFNSRUYxICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMSAqLworI2RlZmluZSBTUkVGMiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDIgKi8KKyNkZWZpbmUgRU9TICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBFbmQgb2YgU2VxdWVuY2UgKi8KKworI2RlZmluZSBJTkNIXzAgICAgICAgICAgICAgICAgICgwKQorI2RlZmluZSBJTkNIXzEgICAgICAgICAgICAgICAgICgxKQorI2RlZmluZSBJTkNIXzIgICAgICAgICAgICAgICAgICgyKQorI2RlZmluZSBJTkNIXzMgICAgICAgICAgICAgICAgICgzKQorI2RlZmluZSBJTkNIXzQgICAgICAgICAgICAgICAgICg0KQorI2RlZmluZSBJTkNIXzUgICAgICAgICAgICAgICAgICg1KQorI2RlZmluZSBJTkNIXzYgICAgICAgICAgICAgICAgICg2KQorI2RlZmluZSBJTkNIXzcgICAgICAgICAgICAgICAgICg3KQorI2RlZmluZSBJTkNIXzggICAgICAgICAgICAgICAgICg4KQorI2RlZmluZSBJTkNIXzkgICAgICAgICAgICAgICAgICg5KQorI2RlZmluZSBJTkNIXzEwICAgICAgICAgICAgICAgICgxMCkKKyNkZWZpbmUgSU5DSF8xMSAgICAgICAgICAgICAgICAoMTEpCisjZGVmaW5lIElOQ0hfMTIgICAgICAgICAgICAgICAgKDEyKQorI2RlZmluZSBJTkNIXzEzICAgICAgICAgICAgICAgICgxMykKKyNkZWZpbmUgSU5DSF8xNCAgICAgICAgICAgICAgICAoMTQpCisjZGVmaW5lIElOQ0hfMTUgICAgICAgICAgICAgICAgKDE1KQorCisjZGVmaW5lIFNSRUZfMCAgICAgICAgICAgICAgICAgKDAqMHgxMHUpCisjZGVmaW5lIFNSRUZfMSAgICAgICAgICAgICAgICAgKDEqMHgxMHUpCisjZGVmaW5lIFNSRUZfMiAgICAgICAgICAgICAgICAgKDIqMHgxMHUpCisjZGVmaW5lIFNSRUZfMyAgICAgICAgICAgICAgICAgKDMqMHgxMHUpCisjZGVmaW5lIFNSRUZfNCAgICAgICAgICAgICAgICAgKDQqMHgxMHUpCisjZGVmaW5lIFNSRUZfNSAgICAgICAgICAgICAgICAgKDUqMHgxMHUpCisjZGVmaW5lIFNSRUZfNiAgICAgICAgICAgICAgICAgKDYqMHgxMHUpCisjZGVmaW5lIFNSRUZfNyAgICAgICAgICAgICAgICAgKDcqMHgxMHUpCisKKy8qIEFEQzEySVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgQURDMTJJVl9OT05FICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBBREMxMklWX0FEQzEyT1ZJRkcgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyT1ZJRkcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMlRPVklGRyAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMlRPVklGRyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMCAgICAgICgweDAwMDYpICAgICAgIC8qIEFEQzEySUZHMCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMSAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEySUZHMSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMiAgICAgICgweDAwMEEpICAgICAgIC8qIEFEQzEySUZHMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMyAgICAgICgweDAwMEMpICAgICAgIC8qIEFEQzEySUZHMyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNCAgICAgICgweDAwMEUpICAgICAgIC8qIEFEQzEySUZHNCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNSAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEySUZHNSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNiAgICAgICgweDAwMTIpICAgICAgIC8qIEFEQzEySUZHNiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNyAgICAgICgweDAwMTQpICAgICAgIC8qIEFEQzEySUZHNyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOCAgICAgICgweDAwMTYpICAgICAgIC8qIEFEQzEySUZHOCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOSAgICAgICgweDAwMTgpICAgICAgIC8qIEFEQzEySUZHOSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTAgICAgICgweDAwMUEpICAgICAgIC8qIEFEQzEySUZHMTAgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzExICAgICAoMHgwMDFDKSAgICAgICAvKiBBREMxMklGRzExICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMiAgICAgKDB4MDAxRSkgICAgICAgLyogQURDMTJJRkcxMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTMgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEySUZHMTMgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzE0ICAgICAoMHgwMDIyKSAgICAgICAvKiBBREMxMklGRzE0ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxNSAgICAgKDB4MDAyNCkgICAgICAgLyogQURDMTJJRkcxNSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJhc2ljIENsb2NrIE1vZHVsZQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQkMyX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoRENPQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDTyBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworU0ZSXzhCSVQoQkNTQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDEgKi8KK1NGUl84QklUKEJDU0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAyICovCitTRlJfOEJJVChCQ1NDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMyAqLworCisjZGVmaW5lIE1PRDAgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMCAqLworI2RlZmluZSBNT0QxICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDEgKi8KKyNkZWZpbmUgTU9EMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAyICovCisjZGVmaW5lIE1PRDMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMyAqLworI2RlZmluZSBNT0Q0ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDQgKi8KKyNkZWZpbmUgRENPMCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIERDTzEgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBEQ08yICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDIgKi8KKworI2RlZmluZSBSU0VMMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBSU0VMMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBSU0VMMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMiAqLworI2RlZmluZSBSU0VMMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMyAqLworI2RlZmluZSBESVZBMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVkExICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgWFRTICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMRlhUQ0xLIDA6TG93IEZyZXEuIC8gMTogSGlnaCBGcmVxLiAqLworI2RlZmluZSBYVDJPRkYgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEVuYWJsZSBYVDJDTEsgKi8KKworI2RlZmluZSBESVZBXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZBXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZBXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZBXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERDT1IgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRW5hYmxlIEV4dGVybmFsIFJlc2lzdG9yIDogMSAqLworI2RlZmluZSBESVZTMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgMDpEQ09DTEsgLyAxOlhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIERJVk0wICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZNXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZNXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZNXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIFNFTE1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDA6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMjogWFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgU0VMTV8zICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMzogTEZYVENMSyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgTEZYVDFPRiAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBMb3cvaGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMk9GICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSGlnaCBmcmVxdWVuY3kgb3NjaWxsYXRvciAyIGZhdWx0IGZsYWcgKi8KKyNkZWZpbmUgWENBUDAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBYQ0FQMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIExGWFQxUzAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAwIGZvciBMRlhUMSAoWFRTID0gMCkgKi8KKyNkZWZpbmUgTEZYVDFTMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNb2RlIDEgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBYVDJTMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyICovCisjZGVmaW5lIFhUMlMxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAxIGZvciBYVDIgKi8KKworI2RlZmluZSBYQ0FQXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDAgcEYgKi8KKyNkZWZpbmUgWENBUF8xICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiA2IHBGICovCisjZGVmaW5lIFhDQVBfMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMTAgcEYgKi8KKyNkZWZpbmUgWENBUF8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMi41IHBGICovCisKKyNkZWZpbmUgTEZYVDFTXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIDogTm9ybWFsIG9wZXJhdGlvbiAqLworI2RlZmluZSBMRlhUMVNfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgOiBSZXNlcnZlZCAqLworI2RlZmluZSBMRlhUMVNfMiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgTEZYVDEgOiBWTE8gKi8KKyNkZWZpbmUgTEZYVDFTXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNb2RlIDMgZm9yIExGWFQxIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworI2RlZmluZSBYVDJTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyIDogMC40IC0gMSBNSHogKi8KKyNkZWZpbmUgWFQyU18xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiA6IDEgLSA0IE1IeiAqLworI2RlZmluZSBYVDJTXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgWFQyIDogMiAtIDE2IE1IeiAqLworI2RlZmluZSBYVDJTXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgWFQyIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NBUExVU19fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSArVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIC1UZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBMiAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgLVRlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIFAyQ0EzICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSAtVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTQgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBICtUZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBDQVNIT1JUICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgU2hvcnQgKyBhbmQgLSBUZXJtaW5hbHMgKi8KKworI2RlZmluZSBDQVBEMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMCAqLworI2RlZmluZSBDQVBEMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMSAqLworI2RlZmluZSBDQVBEMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMiAqLworI2RlZmluZSBDQVBEMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMyAqLworI2RlZmluZSBDQVBENCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNCAqLworI2RlZmluZSBDQVBENSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNSAqLworI2RlZmluZSBDQVBENiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNiAqLworI2RlZmluZSBDQVBENyAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSDJfXyAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCitTRlJfMTZCSVQoRkNUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCA0ICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBFRUkgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEVuYWJsZSBFcmFzZSBJbnRlcnJ1cHRzICovCisjZGVmaW5lIEVFSUVYICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRW5hYmxlIEVtZXJnZW5jeSBJbnRlcnJ1cHQgRXhpdCAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisjZGVmaW5lIExPQ0tBICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU2VnbWVudCBBIExvY2sgYml0OiByZWFkID0gMSAtIFNlZ21lbnQgaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEZBSUwgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogTGFzdCBQcm9ncmFtIG9yIEVyYXNlIGZhaWxlZCAqLworCisjZGVmaW5lIE1HUjAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTWFyZ2luYWwgcmVhZCAwIG1vZGUuICovCisjZGVmaW5lIE1HUjEgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogTWFyZ2luYWwgcmVhZCAxIG1vZGUuICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSEFSRFdBUkUgTVVMVElQTElFUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTVBZX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKE1QWSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1QWVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUNTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQgYW5kIEFjY3VtdWxhdGUvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoT1AyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT3BlcmFuZCAyICovCitTRlJfMTZCSVQoUkVTTE8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IExvdyBXb3JkICovCitTRlJfMTZCSVQoUkVTSEkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IEhpZ2ggV29yZCAqLworU0ZSXzE2QklUKFNVTUVYVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN1bSBFeHRlbmQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yIFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDFSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDJSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDNSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDRJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBJbnB1dCAqLworU0ZSXzhCSVQoUDRPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBPdXRwdXQgKi8KK1NGUl84QklUKFA0RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDRSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0NS82IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDZfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDVJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBJbnB1dCAqLworU0ZSXzhCSVQoUDVPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBPdXRwdXQgKi8KK1NGUl84QklUKFA1RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDVSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDZSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0Ny84IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUN19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDhfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlRBX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA3SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgSW5wdXQgKi8KK1NGUl84QklUKFA3T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgT3V0cHV0ICovCitTRlJfOEJJVChQN0RJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA3IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDdTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNyBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFA3UkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgUmVzaXN0b3IgRW5hYmxlICovCisKK1NGUl84QklUKFA4SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggSW5wdXQgKi8KK1NGUl84QklUKFA4T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggT3V0cHV0ICovCitTRlJfOEJJVChQOERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA4IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDhTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgOCBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFA4UkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggUmVzaXN0b3IgRW5hYmxlICovCisKK1NGUl8xNkJJVChQQUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgSW5wdXQgKi8KK1NGUl8xNkJJVChQQU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgT3V0cHV0ICovCitTRlJfMTZCSVQoUEFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIERpcmVjdGlvbiAqLworU0ZSXzE2QklUKFBBU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBTZWxlY3Rpb24gKi8KK1NGUl8xNkJJVChQQVJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgUmVzaXN0b3IgRW5hYmxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQnJvd24tT3V0LCBTdXBwbHkgVm9sdGFnZSBTdXBlcnZpc2lvbiAoU1ZTKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfU1ZTX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU1ZTQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNWUyBDb250cm9sICovCisjZGVmaW5lIFNWU0ZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogU1ZTIEZsYWcgKi8KKyNkZWZpbmUgU1ZTT1AgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVlMgb3V0cHV0IChyZWFkIG9ubHkpICovCisjZGVmaW5lIFNWU09OICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3dpdGNoZXMgdGhlIFNWUyBvbi9vZmYgKi8KKyNkZWZpbmUgUE9ST04gICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBFbmFibGUgUE9SIEdlbmVyYXRpb24gaWYgTG93IFZvbHRhZ2UgKi8KKyNkZWZpbmUgVkxEMCAgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxEMSAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVkxEMiAgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVkxEMyAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworI2RlZmluZSBWTERPTiAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTERPRkYgICAgICAgICAgICAgICAgICgweDAwKQorI2RlZmluZSBWTERfMV84ViAgICAgICAgICAgICAgICgweDEwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQUNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQUNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl84ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWX1RBSUZHICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQjcKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RCN19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ29udHJvbCAqLworU0ZSXzE2QklUKFRCQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRCQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRCQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRCQ0NUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMyAqLworU0ZSXzE2QklUKFRCQ0NUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgNCAqLworU0ZSXzE2QklUKFRCQ0NUTDUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgNSAqLworU0ZSXzE2QklUKFRCQ0NUTDYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgNiAqLworU0ZSXzE2QklUKFRCUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgKi8KK1NGUl8xNkJJVChUQkNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEJDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRCQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDIgKi8KK1NGUl8xNkJJVChUQkNDUjMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAzICovCitTRlJfMTZCSVQoVEJDQ1I0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgNCAqLworU0ZSXzE2QklUKFRCQ0NSNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDUgKi8KK1NGUl8xNkJJVChUQkNDUjYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSA2ICovCisKKyNkZWZpbmUgVEJDTEdSUDEgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFRCQ0xHUlAwICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworI2RlZmluZSBDTlRMMSAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDEgKi8KKyNkZWZpbmUgQ05UTDAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAwICovCisjZGVmaW5lIFRCU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDEgKi8KKyNkZWZpbmUgVEJTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMCAqLworI2RlZmluZSBUQkNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEIgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQklFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQklGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBTSFIxICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgU0hSMCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisKKyNkZWZpbmUgVEJTU0VMXzAgICAgICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFRCQ0xLICovCisjZGVmaW5lIFRCU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBBQ0xLICAqLworI2RlZmluZSBUQlNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogU01DTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzMgICAgICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IElOQ0xLICovCisjZGVmaW5lIENOVExfMCAgICAgICAgICAgICAgICAgKDAqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDE2IGJpdCAqLworI2RlZmluZSBDTlRMXzEgICAgICAgICAgICAgICAgICgxKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8yICAgICAgICAgICAgICAgICAoMioweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTAgYml0ICovCisjZGVmaW5lIENOVExfMyAgICAgICAgICAgICAgICAgKDMqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6ICA4IGJpdCAqLworI2RlZmluZSBTSFJfMCAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgU0hSXzEgICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFNIUl8yICAgICAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBTSFJfMyAgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisjZGVmaW5lIFRCQ0xHUlBfMCAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBUQkNMR1JQXzEgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgVEJDTEdSUF8yICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFRCQ0xHUlBfMyAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKworLyogQWRkaXRpb25hbCBUaW1lciBCIENvbnRyb2wgUmVnaXN0ZXIgYml0cyBhcmUgZGVmaW5lZCBpbiBUaW1lciBBICovCisjZGVmaW5lIENMTEQxICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIENMTEQwICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFIxICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgU0xTSFIwICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUl8wICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIFNMU0hSXzEgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgU0xTSFJfMiAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgU0xTSFJfMyAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKyNkZWZpbmUgQ0xMRF8wICAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBDTExEXzEgICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIENMTERfMiAgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIENMTERfMyAgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisvKiBUQjdJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQklWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRCSVZfVEJDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEJDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEJDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1IzICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogVEJDQ1IzX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1I0ICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogVEJDQ1I0X0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1I1ICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEJDQ1IzX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1I2ICAgICAgICAgICAgKDB4MDAwQykgICAgICAgLyogVEJDQ1I0X0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJJRkcgICAgICAgICAgICAgKDB4MDAwRSkgICAgICAgLyogVEJJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0NJCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0NJX18gICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9BQjBfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0NJX0FCMV9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVUNBMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0EwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0EwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0EwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IwSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMFNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfMTZCSVQoVUNCMEkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IwSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBTbGF2ZSBBZGRyZXNzICovCisKK1NGUl84QklUKFVDQTFDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVUNBMUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfOEJJVChVQ0ExQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVUNBMUJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFVDQTFNQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBMVNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0ExUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNBMVRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfOEJJVChVQ0ExQUJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBMSU4gQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBMUlSVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgSXJEQSBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVQ0ExSVJSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBJckRBIFJlY2VpdmUgQ29udHJvbCAqLworCisKKworU0ZSXzhCSVQoVUNCMUNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0IxQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQjFCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0IxQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNCMUkyQ0lFKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgSTJDIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQjFTVEFUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIFN0YXR1cyBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMVJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFVDQjFUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIFRyYW5zbWl0IEJ1ZmZlciAqLworU0ZSXzE2QklUKFVDQjFJMkNPQSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgSTJDIE93biBBZGRyZXNzICovCitTRlJfMTZCSVQoVUNCMUkyQ1NBKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBJMkMgU2xhdmUgQWRkcmVzcyAqLworCisvLyBVQVJULU1vZGUgQml0cworI2RlZmluZSBVQ1BFTiAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBQYXJpdHkgZW5hYmxlICovCisjZGVmaW5lIFVDUEFSICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFBhcml0eSAgICAgMDpvZGQgLyAxOmV2ZW4gKi8KKyNkZWZpbmUgVUNNU0IgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogTVNCIGZpcnN0ICAwOkxTQiAvIDE6TVNCICovCisjZGVmaW5lIFVDN0JJVCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IERhdGEgQml0cyAgMDo4LWJpdHMgLyAxOjctYml0cyAqLworI2RlZmluZSBVQ1NQQiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBTdG9wIEJpdHMgIDA6b25lIC8gMTogdHdvICovCisjZGVmaW5lIFVDTU9ERTEgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFVTQ0kgTW9kZSAxICovCisjZGVmaW5lIFVDTU9ERTAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFVTQ0kgTW9kZSAwICovCisjZGVmaW5lIFVDU1lOQyAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogU3luYy1Nb2RlICAwOlVBUlQtTW9kZSAvIDE6U1BJLU1vZGUgKi8KKworLy8gU1BJLU1vZGUgQml0cworI2RlZmluZSBVQ0NLUEggICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IENsb2NrIFBoYXNlICovCisjZGVmaW5lIFVDQ0tQTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogU3luYy4gTW9kZTogQ2xvY2sgUG9sYXJpdHkgKi8KKyNkZWZpbmUgVUNNU1QgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBNYXN0ZXIgU2VsZWN0ICovCisKKy8vIEkyQy1Nb2RlIEJpdHMKKyNkZWZpbmUgVUNBMTAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiAxMC1iaXQgQWRkcmVzcyBNb2RlICovCisjZGVmaW5lIFVDU0xBMTAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogMTAtYml0IFNsYXZlIEFkZHJlc3MgTW9kZSAqLworI2RlZmluZSBVQ01NICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE11bHRpLU1hc3RlciBFbnZpcm9ubWVudCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDEwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ01PREVfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IFVTQ0kgTW9kZTogMCAqLworI2RlZmluZSBVQ01PREVfMSAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IFVTQ0kgTW9kZTogMSAqLworI2RlZmluZSBVQ01PREVfMiAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IFVTQ0kgTW9kZTogMiAqLworI2RlZmluZSBVQ01PREVfMyAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IFVTQ0kgTW9kZTogMyAqLworCisvLyBVQVJULU1vZGUgQml0cworI2RlZmluZSBVQ1NTRUwxICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNTU0VMMCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFVDUlhFSUUgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogUlggRXJyb3IgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ0JSS0lFICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJyZWFrIGludGVycnVwdCBlbmFibGUgKi8gICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBVQ0RPUk0gICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIERvcm1hbnQgKFNsZWVwKSBNb2RlICovCisjZGVmaW5lIFVDVFhBRERSICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU2VuZCBuZXh0IERhdGEgYXMgQWRkcmVzcyAqLworI2RlZmluZSBVQ1RYQlJLICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNlbmQgbmV4dCBEYXRhIGFzIEJyZWFrICovCisjZGVmaW5lIFVDU1dSU1QgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSBTb2Z0d2FyZSBSZXNldCAqLworCisvLyBTUEktTW9kZSBCaXRzCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MjApICAgIC8qIHJlc2VydmVkICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApICAgIC8qIHJlc2VydmVkICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MDgpICAgIC8qIHJlc2VydmVkICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MDQpICAgIC8qIHJlc2VydmVkICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MDIpICAgIC8qIHJlc2VydmVkICovCisKKy8vIEkyQy1Nb2RlIEJpdHMKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNUUiAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBUcmFuc21pdC9SZWNlaXZlIFNlbGVjdC9GbGFnICovCisjZGVmaW5lIFVDVFhOQUNLICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVHJhbnNtaXQgTkFDSyAqLworI2RlZmluZSBVQ1RYU1RQICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFRyYW5zbWl0IFNUT1AgKi8KKyNkZWZpbmUgVUNUWFNUVCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBUcmFuc21pdCBTVEFSVCAqLworI2RlZmluZSBVQ1NTRUxfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDAgKi8KKyNkZWZpbmUgVUNTU0VMXzEgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAxICovCisjZGVmaW5lIFVDU1NFTF8yICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMiAqLworI2RlZmluZSBVQ1NTRUxfMyAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDMgKi8KKworI2RlZmluZSBVQ0JSRjMgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMyAqLworI2RlZmluZSBVQ0JSRjIgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMiAqLworI2RlZmluZSBVQ0JSRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMSAqLworI2RlZmluZSBVQ0JSRjAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMCAqLworI2RlZmluZSBVQ0JSUzIgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDIgKi8KKyNkZWZpbmUgVUNCUlMxICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDQlJTMCAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMCAqLworI2RlZmluZSBVQ09TMTYgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTQ0kgMTYtdGltZXMgT3ZlcnNhbXBsaW5nIGVuYWJsZSAqLworCisjZGVmaW5lIFVDQlJGXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiAwICovCisjZGVmaW5lIFVDQlJGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiAxICovCisjZGVmaW5lIFVDQlJGXzIgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiAyICovCisjZGVmaW5lIFVDQlJGXzMgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiAzICovCisjZGVmaW5lIFVDQlJGXzQgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiA0ICovCisjZGVmaW5lIFVDQlJGXzUgICAgICAgICAgICAgICAgKDB4NTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiA1ICovCisjZGVmaW5lIFVDQlJGXzYgICAgICAgICAgICAgICAgKDB4NjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiA2ICovCisjZGVmaW5lIFVDQlJGXzcgICAgICAgICAgICAgICAgKDB4NzApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiA3ICovCisjZGVmaW5lIFVDQlJGXzggICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiA4ICovCisjZGVmaW5lIFVDQlJGXzkgICAgICAgICAgICAgICAgKDB4OTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiA5ICovCisjZGVmaW5lIFVDQlJGXzEwICAgICAgICAgICAgICAgKDB4QTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiBBICovCisjZGVmaW5lIFVDQlJGXzExICAgICAgICAgICAgICAgKDB4QjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiBCICovCisjZGVmaW5lIFVDQlJGXzEyICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiBDICovCisjZGVmaW5lIFVDQlJGXzEzICAgICAgICAgICAgICAgKDB4RDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiBEICovCisjZGVmaW5lIFVDQlJGXzE0ICAgICAgICAgICAgICAgKDB4RTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiBFICovCisjZGVmaW5lIFVDQlJGXzE1ICAgICAgICAgICAgICAgKDB4RjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uOiBGICovCisKKyNkZWZpbmUgVUNCUlNfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAwICovCisjZGVmaW5lIFVDQlJTXzEgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMSAqLworI2RlZmluZSBVQ0JSU18yICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDIgKi8KKyNkZWZpbmUgVUNCUlNfMyAgICAgICAgICAgICAgICAoMHgwNikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAzICovCisjZGVmaW5lIFVDQlJTXzQgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNCAqLworI2RlZmluZSBVQ0JSU181ICAgICAgICAgICAgICAgICgweDBBKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDUgKi8KKyNkZWZpbmUgVUNCUlNfNiAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA2ICovCisjZGVmaW5lIFVDQlJTXzcgICAgICAgICAgICAgICAgKDB4MEUpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNyAqLworCisjZGVmaW5lIFVDTElTVEVOICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBMaXN0ZW4gbW9kZSAqLworI2RlZmluZSBVQ0ZFICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgRnJhbWUgRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ09FICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFVTQ0kgT3ZlcnJ1biBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDUEUgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBQYXJpdHkgRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ0JSSyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFVTQ0kgQnJlYWsgcmVjZWl2ZWQgKi8KKyNkZWZpbmUgVUNSWEVSUiAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVU0NJIFJYIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNBRERSICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIEFkZHJlc3MgcmVjZWl2ZWQgRmxhZyAqLworI2RlZmluZSBVQ0JVU1kgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTQ0kgQnVzeSBGbGFnICovCisjZGVmaW5lIFVDSURMRSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVVNDSSBJZGxlIGxpbmUgZGV0ZWN0ZWQgRmxhZyAqLworCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4ODApICAgIC8qIHJlc2VydmVkICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4NDApICAgIC8qIHJlc2VydmVkICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MjApICAgIC8qIHJlc2VydmVkICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDTkFDS0lFICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTkFDSyBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ1NUUElFICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNUT1AgQ29uZGl0aW9uIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVUNTVFRJRSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVEFSVCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ0FMSUUgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEFyYml0cmF0aW9uIExvc3QgaW50ZXJydXB0IGVuYWJsZSAqLworCisjZGVmaW5lIFVDU0NMTE9XICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogU0NMIGxvdyAqLworI2RlZmluZSBVQ0dDICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEdlbmVyYWwgQ2FsbCBhZGRyZXNzIHJlY2VpdmVkIEZsYWcgKi8KKyNkZWZpbmUgVUNCQlVTWSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCdXMgQnVzeSBGbGFnICovCisjZGVmaW5lIFVDTkFDS0lGRyAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTkFLIENvbmRpdGlvbiBpbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBVQ1NUUElGRyAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNUT1AgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDU1RUSUZHICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1RBUlQgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDQUxJRkcgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXJiaXRyYXRpb24gTG9zdCBpbnRlcnJ1cHQgRmxhZyAqLworCisjZGVmaW5lIFVDSVJUWFBMNSAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggNSAqLworI2RlZmluZSBVQ0lSVFhQTDQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDQgKi8KKyNkZWZpbmUgVUNJUlRYUEwzICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAzICovCisjZGVmaW5lIFVDSVJUWFBMMiAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMiAqLworI2RlZmluZSBVQ0lSVFhQTDEgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDEgKi8KKyNkZWZpbmUgVUNJUlRYUEwwICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAwICovCisjZGVmaW5lIFVDSVJUWENMSyAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBDbG9jayBTZWxlY3QgKi8KKyNkZWZpbmUgVUNJUkVOICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBJUkRBIEVuY29kZXIvRGVjb2RlciBlbmFibGUgKi8KKworI2RlZmluZSBVQ0lSUlhGTDUgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDUgKi8KKyNkZWZpbmUgVUNJUlJYRkw0ICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCA0ICovCisjZGVmaW5lIFVDSVJSWEZMMyAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMyAqLworI2RlZmluZSBVQ0lSUlhGTDIgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDIgKi8KKyNkZWZpbmUgVUNJUlJYRkwxICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAxICovCisjZGVmaW5lIFVDSVJSWEZMMCAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMCAqLworI2RlZmluZSBVQ0lSUlhQTCAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBJbnB1dCBQb2xhcml0eSAqLworI2RlZmluZSBVQ0lSUlhGRSAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgZW5hYmxlICovCisKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg4MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg0MCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNERUxJTTEgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBCcmVhayBTeW5jIERlbGltaXRlciAxICovCisjZGVmaW5lIFVDREVMSU0wICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgU3luYyBEZWxpbWl0ZXIgMCAqLworI2RlZmluZSBVQ1NUT0UgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFN5bmMtRmllbGQgVGltZW91dCBlcnJvciAqLworI2RlZmluZSBVQ0JUT0UgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEJyZWFrIFRpbWVvdXQgZXJyb3IgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwMikgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNBQkRFTiAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBdXRvIEJhdWQgUmF0ZSBkZXRlY3QgZW5hYmxlICovCisKKyNkZWZpbmUgVUNHQ0VOICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBJMkMgR2VuZXJhbCBDYWxsIGVuYWJsZSAqLworI2RlZmluZSBVQ09BOSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA5ICovCisjZGVmaW5lIFVDT0E4ICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDggKi8KKyNkZWZpbmUgVUNPQTcgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNyAqLworI2RlZmluZSBVQ09BNiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA2ICovCisjZGVmaW5lIFVDT0E1ICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDUgKi8KKyNkZWZpbmUgVUNPQTQgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNCAqLworI2RlZmluZSBVQ09BMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAzICovCisjZGVmaW5lIFVDT0EyICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDIgKi8KKyNkZWZpbmUgVUNPQTEgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMSAqLworI2RlZmluZSBVQ09BMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAwICovCisKKyNkZWZpbmUgVUNTQTkgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA5ICovCisjZGVmaW5lIFVDU0E4ICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgOCAqLworI2RlZmluZSBVQ1NBNyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDcgKi8KKyNkZWZpbmUgVUNTQTYgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA2ICovCisjZGVmaW5lIFVDU0E1ICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNSAqLworI2RlZmluZSBVQ1NBNCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDQgKi8KKyNkZWZpbmUgVUNTQTMgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAzICovCisjZGVmaW5lIFVDU0EyICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMiAqLworI2RlZmluZSBVQ1NBMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDEgKi8KKyNkZWZpbmUgVUNTQTAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAwICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogV0FUQ0hET0cgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1dEVF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChXRFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBXRFRTU0VMICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBXRFROTUkgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFdEVE5NSUVTICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgV0RUSE9MRCAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisjZGVmaW5lIFdEVFBXICAgICAgICAgICAgICAgICAgKDB4NUEwMCkKKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01ETFlfOCAgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzUgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQURMWV8xMDAwICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BRExZXzI1MCAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xXzkgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgLyogMS45bXMgICAiICovCisvKiBXYXRjaGRvZyBtb2RlIC0+IHJlc2V0IGFmdGVyIGV4cGlyZWQgdGltZSAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NUlNUXzMyICAgICAgICAgKFdEVFBXK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfNSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF8wNjQgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMjUwICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xNiAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAvKiAxLjltcyAgICIgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAweDAxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ2FsaWJyYXRpb24gRGF0YSBpbiBJbmZvIE1lbQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBUTFYgQ2FsaWJyYXRpb24gRGF0YSBTdHJ1Y3R1cmUgKi8KKyNkZWZpbmUgVEFHX0RDT18zMCAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBUYWcgZm9yIERDTzMwICBDYWxpYnJhdGlvbiBEYXRhICovCisjZGVmaW5lIFRBR19BREMxMl8xICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVGFnIGZvciBBREMxMl8xIENhbGlicmF0aW9uIERhdGEgKi8KKyNkZWZpbmUgVEFHX0VNUFRZICAgICAgICAgICAgICAoMHhGRSkgICAgICAgICAvKiBUYWcgZm9yIEVtcHR5IERhdGEgRmllbGQgaW4gQ2FsaWJyYXRpb24gRGF0YSAqLworCisjaWZuZGVmIF9fRGlzYWJsZUNhbERhdGEKK1NGUl8xNkJJVChUTFZfQ0hFQ0tTVU0pOyAgICAgICAgICAgICAgICAgICAgICAvKiBUTFYgQ0hFQ0sgU1VNICovCitTRlJfOEJJVChUTFZfRENPXzMwX1RBRyk7ICAgICAgICAgICAgICAgICAgICAgLyogVExWIFRBR19EQ08zMCBUQUcgKi8KK1NGUl84QklUKFRMVl9EQ09fMzBfTEVOKTsgICAgICAgICAgICAgICAgICAgICAvKiBUTFYgVEFHX0RDTzMwIExFTiAqLworU0ZSXzhCSVQoVExWX0FEQzEyXzFfVEFHKTsgICAgICAgICAgICAgICAgICAgIC8qIFRMViBBREMxMl8xIFRBRyAqLworU0ZSXzhCSVQoVExWX0FEQzEyXzFfTEVOKTsgICAgICAgICAgICAgICAgICAgIC8qIFRMViBBREMxMl8xIExFTiAqLworI2VuZGlmCisKKyNkZWZpbmUgQ0FMX0FEQ18yNVQ4NSAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBJbmRleCBmb3IgMi41Vi84NURlZyBDYWwuIFZhbHVlICovCisjZGVmaW5lIENBTF9BRENfMjVUMzAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogSW5kZXggZm9yIDIuNVYvMzBEZWcgQ2FsLiBWYWx1ZSAqLworI2RlZmluZSBDQUxfQURDXzI1VlJFRl9GQUNUT1IgICgweDAwMDUpICAgICAgIC8qIEluZGV4IGZvciAyLjVWIFJlZi4gRmFjdG9yICovCisjZGVmaW5lIENBTF9BRENfMTVUODUgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogSW5kZXggZm9yIDEuNVYvODVEZWcgQ2FsLiBWYWx1ZSAqLworI2RlZmluZSBDQUxfQURDXzE1VDMwICAgICAgICAgICgweDAwMDMpICAgICAgIC8qIEluZGV4IGZvciAxLjVWLzMwRGVnIENhbC4gVmFsdWUgKi8KKyNkZWZpbmUgQ0FMX0FEQ18xNVZSRUZfRkFDVE9SICAoMHgwMDAyKSAgICAgICAvKiBJbmRleCBmb3IgQURDIDEuNVYgUmVmLiBGYWN0b3IgKi8KKyNkZWZpbmUgQ0FMX0FEQ19PRkZTRVQgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJbmRleCBmb3IgQURDIE9mZnNldCAqLworI2RlZmluZSBDQUxfQURDX0dBSU5fRkFDVE9SICAgICgweDAwMDApICAgICAgIC8qIEluZGV4IGZvciBBREMgR2FpbiBGYWN0b3IgKi8KKworI2RlZmluZSBDQUxfRENPXzE2TUhaICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEluZGV4IGZvciBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDE2TUh6ICovCisjZGVmaW5lIENBTF9CQzFfMTZNSFogICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSW5kZXggZm9yIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KKyNkZWZpbmUgQ0FMX0RDT18xMk1IWiAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBJbmRleCBmb3IgRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworI2RlZmluZSBDQUxfQkMxXzEyTUhaICAgICAgICAgICgweDAwMDMpICAgICAgIC8qIEluZGV4IGZvciBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCisjZGVmaW5lIENBTF9EQ09fOE1IWiAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogSW5kZXggZm9yIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworI2RlZmluZSBDQUxfQkMxXzhNSFogICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIEluZGV4IGZvciBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDhNSHogKi8KKyNkZWZpbmUgQ0FMX0RDT18xTUhaICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBJbmRleCBmb3IgRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxTUh6ICovCisjZGVmaW5lIENBTF9CQzFfMU1IWiAgICAgICAgICAgKDB4MDAwNykgICAgICAgLyogSW5kZXggZm9yIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ2FsaWJyYXRpb24gRGF0YSBpbiBJbmZvIE1lbQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fRGlzYWJsZUNhbERhdGEKKworU0ZSXzhCSVQoQ0FMRENPXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTEJDMV8xNk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDE2TUh6ICovCitTRlJfOEJJVChDQUxEQ09fMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzEyTUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTJNSHogKi8KK1NGUl84QklUKENBTERDT184TUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDhNSHogKi8KK1NGUl84QklUKENBTEJDMV84TUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDhNSHogKi8KK1NGUl84QklUKENBTERDT18xTUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDFNSHogKi8KK1NGUl84QklUKENBTEJDMV8xTUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDFNSHogKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGQzApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworI2RlZmluZSBSRVNFUlZFRDBfVkVDVE9SICAgICAgICAoMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDMCBSZXNlcnZlZCBJbnQuIFZlY3RvciAwICovCisvKiNkZWZpbmUgUkVTRVJWRUQwX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZDMCBSZXNlcnZlZCBJbnQuIFZlY3RvciAwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDFfVkVDVE9SICAgICAgICAoMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDMiBSZXNlcnZlZCBJbnQuIFZlY3RvciAxICovCisvKiNkZWZpbmUgUkVTRVJWRUQxX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZDMiBSZXNlcnZlZCBJbnQuIFZlY3RvciAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDJfVkVDVE9SICAgICAgICAoMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDNCBSZXNlcnZlZCBJbnQuIFZlY3RvciAyICovCisvKiNkZWZpbmUgUkVTRVJWRUQyX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAyIikgICovIC8qIDB4RkZDNCBSZXNlcnZlZCBJbnQuIFZlY3RvciAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDNfVkVDVE9SICAgICAgICAoMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDNiBSZXNlcnZlZCBJbnQuIFZlY3RvciAzICovCisvKiNkZWZpbmUgUkVTRVJWRUQzX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAzIikgICovIC8qIDB4RkZDNiBSZXNlcnZlZCBJbnQuIFZlY3RvciAzICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDRfVkVDVE9SICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDOCBSZXNlcnZlZCBJbnQuIFZlY3RvciA0ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ0X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA0IikgICovIC8qIDB4RkZDOCBSZXNlcnZlZCBJbnQuIFZlY3RvciA0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDVfVkVDVE9SICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDQSBSZXNlcnZlZCBJbnQuIFZlY3RvciA1ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ1X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA1IikgICovIC8qIDB4RkZDQSBSZXNlcnZlZCBJbnQuIFZlY3RvciA1ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDZfVkVDVE9SICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDQyBSZXNlcnZlZCBJbnQuIFZlY3RvciA2ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ2X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZDQyBSZXNlcnZlZCBJbnQuIFZlY3RvciA2ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDdfVkVDVE9SICAgICAgICAoNyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDRSBSZXNlcnZlZCBJbnQuIFZlY3RvciA3ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ3X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA3IikgICovIC8qIDB4RkZDRSBSZXNlcnZlZCBJbnQuIFZlY3RvciA3ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDhfVkVDVE9SICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZEMCBSZXNlcnZlZCBJbnQuIFZlY3RvciA4ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ4X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZEMCBSZXNlcnZlZCBJbnQuIFZlY3RvciA4ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDlfVkVDVE9SICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZEMiBSZXNlcnZlZCBJbnQuIFZlY3RvciA5ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ5X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA5IikgICovIC8qIDB4RkZEMiBSZXNlcnZlZCBJbnQuIFZlY3RvciA5ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDEwX1ZFQ1RPUiAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZENCBSZXNlcnZlZCBJbnQuIFZlY3RvciAxMCAqLworLyojZGVmaW5lIFJFU0VSVkVEMTBfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRDQgUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VSVkVEMTFfVkVDVE9SICAgICAgICgxMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkQ2IFJlc2VydmVkIEludC4gVmVjdG9yIDExICovCisvKiNkZWZpbmUgUkVTRVJWRUQxMV9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDExIikgICovIC8qIDB4RkZENiBSZXNlcnZlZCBJbnQuIFZlY3RvciAxMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVJWRUQxMl9WRUNUT1IgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRDggUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTIgKi8KKy8qI2RlZmluZSBSRVNFUlZFRDEyX0lTUihmdW5jKSAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkQ4IFJlc2VydmVkIEludC4gVmVjdG9yIDEyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDEzX1ZFQ1RPUiAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZEQSBSZXNlcnZlZCBJbnQuIFZlY3RvciAxMyAqLworLyojZGVmaW5lIFJFU0VSVkVEMTNfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGREEgUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VSVkVEMTRfVkVDVE9SICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkRDIFJlc2VydmVkIEludC4gVmVjdG9yIDE0ICovCisvKiNkZWZpbmUgUkVTRVJWRUQxNF9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZEQyBSZXNlcnZlZCBJbnQuIFZlY3RvciAxNCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVJWRUQxNV9WRUNUT1IgICAgICAgKDE1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGREUgUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTUgKi8KKy8qI2RlZmluZSBSRVNFUlZFRDE1X0lTUihmdW5jKSAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkRFIFJlc2VydmVkIEludC4gVmVjdG9yIDE1ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIxVFhfVkVDVE9SICAgICAgICAoMTYgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMCBVU0NJIEExL0IxIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNDSUFCMVRYX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE2IikgICovIC8qIDB4RkZFMCBVU0NJIEExL0IxIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIxUlhfVkVDVE9SICAgICAgICAoMTcgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMiBVU0NJIEExL0IxIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0NJQUIxUlhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTciKSAgKi8gLyogMHhGRkUyIFVTQ0kgQTEvQjEgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDE4ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE4IikgICovIC8qIDB4RkZFNCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgxOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxOSIpICAqLyAvKiAweEZGRTYgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDIwX1ZFQ1RPUiAgICAgICAoMjAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBSZXNlcnZlZCBJbnQuIFZlY3RvciAyMCAqLworLyojZGVmaW5lIFJFU0VSVkVEMjBfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyMCIpICAqLyAvKiAweEZGRTggUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMjAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIEFEQzEyX1ZFQ1RPUiAgICAgICAgICAgICgyMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVBIEFEQyAqLworLyojZGVmaW5lIEFEQzEyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyMSIpICAqLyAvKiAweEZGRUEgQURDICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwVFhfVkVDVE9SICAgICAgICAoMjIgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBVU0NJIEEwL0IwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNDSUFCMFRYX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDIyIikgICovIC8qIDB4RkZFQyBVU0NJIEEwL0IwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwUlhfVkVDVE9SICAgICAgICAoMjMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFRSBVU0NJIEEwL0IwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0NJQUIwUlhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MjMiKSAgKi8gLyogMHhGRkVFIFVTQ0kgQTAvQjAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDI0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MjQiKSAgKi8gLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoMjUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyNSIpICAqLyAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgyNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDI2IikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQ09NUEFSQVRPUkFfVkVDVE9SICAgICAgKDI3ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovCisvKiNkZWZpbmUgQ09NUEFSQVRPUkFfSVNSKGZ1bmMpICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDI3IikgICovIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQjFfVkVDVE9SICAgICAgICAgICgyOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTYsIFRCICovCisvKiNkZWZpbmUgVElNRVJCMV9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDI4IikgICovIC8qIDB4RkZGOCBUaW1lciBCIENDMS02LCBUQiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMF9WRUNUT1IgICAgICAgICAgKDI5ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUkIwX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MjkiKSAgKi8gLyogMHhGRkZBIFRpbWVyIEIgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBOTUlfVkVDVE9SICAgICAgICAgICAgICAoMzAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8KKy8qI2RlZmluZSBOTUlfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MzAiKSAgKi8gLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVRfVkVDVE9SICAgICAgICAgICAgKDMxICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovCisvKiNkZWZpbmUgUkVTRVRfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDMxIikgICovIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRW5kIG9mIE1vZHVsZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogZXh0ZXJuICJDIiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX21zcDQzMHgyNHggKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyNHgxLmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDI0eDEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzQ1ZjZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyNHgxLmgKQEAgLTAsMCArMSw5ODQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDI0eDEgZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMS4yCisqCisqIFJldi4gMS4wLCBJbml0aWFsIFZlcnNpb24KKyogUmV2LiAxLjEgIGFkZGVkIFRMViBpbiBJTkZPIE1lbW9yeQorKiBSZXYuIDEuMiwgYWRkZWQgZGVmaW5pdGlvbnMgZm9yIEludGVycnVwdCBWZWN0b3JzIHh4SVYKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDI0eDEKKyNkZWZpbmUgX19tc3A0MzB4MjR4MQorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFBFUklQSEVSQUwgRklMRSBNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBFeHRlcm5hbCByZWZlcmVuY2VzIHJlc29sdmVkIGJ5IGEgZGV2aWNlLXNwZWNpZmljIGxpbmtlciBjb21tYW5kIGZpbGUgKi8KKyNkZWZpbmUgU0ZSXzhCSVQoYWRkcmVzcykgICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgY2hhciBhZGRyZXNzCisjZGVmaW5lIFNGUl8xNkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFOREFSRCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQklUMCAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBCSVQxICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIEJJVDIgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgQklUMyAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBCSVQ0ICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIEJJVDUgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgQklUNiAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBCSVQ3ICAgICAgICAgICAgICAgICAgICgweDAwODApCisjZGVmaW5lIEJJVDggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgQklUOSAgICAgICAgICAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBCSVRBICAgICAgICAgICAgICAgICAgICgweDA0MDApCisjZGVmaW5lIEJJVEIgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkKKyNkZWZpbmUgQklUQyAgICAgICAgICAgICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBCSVREICAgICAgICAgICAgICAgICAgICgweDIwMDApCisjZGVmaW5lIEJJVEUgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkKKyNkZWZpbmUgQklURiAgICAgICAgICAgICAgICAgICAoMHg4MDAwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQVRVUyBSRUdJU1RFUiBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQyAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBaICAgICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIE4gICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgViAgICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBHSUUgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgT1NDT0ZGICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBTQ0cwICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFNDRzEgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworLyogTG93IFBvd2VyIE1vZGVzIGNvZGVkIHdpdGggQml0cyA0LTcgaW4gU1IgKi8KKworI2lmZGVmIF9fQVNNX0hFQURFUl9fIC8qIEJlZ2luICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKyNkZWZpbmUgTFBNMCAgICAgICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xICAgICAgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMiAgICAgICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTMgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTQgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorLyogRW5kICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKworI2Vsc2UgLyogQmVnaW4gI2RlZmluZXMgZm9yIEMgKi8KKyNkZWZpbmUgTFBNMF9iaXRzICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xX2JpdHMgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMl9iaXRzICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTNfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTRfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorCisjaW5jbHVkZSA8SW40MzAuaD4KKworI2RlZmluZSBMUE0wICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0wX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0wX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTBfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTEgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTFfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTFfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMV9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMiAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMl9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMl9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0yX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0zICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0zX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE0zX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTQgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTRfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSA0ICovCisjZGVmaW5lIExQTTRfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNNF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDQgKi8KKyNlbmRpZiAvKiBFbmQgI2RlZmluZXMgZm9yIEMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1BFQ0lBTCBGVU5DVElPTiBSRUdJU1RFUiBBRERSRVNTRVMgKyBDT05UUk9MIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworU0ZSXzhCSVQoSUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMSAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBPc2MuIEZhdWx0ICBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBGbGFzaCBBY2Nlc3MgVmlvbGF0aW9uIEludGVycnVwdCBFbmFibGUgKi8KKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBXYXRjaGRvZyBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgUE9SSUZHICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBQb3dlciBPbiBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSU1RJRkcgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlc2V0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBGbGFnICovCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVUMwSUUgICAgICAgICAgICAgICAgICBJRTIKKyNkZWZpbmUgVUNBMFJYSUUgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVUNBMFRYSUUgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVUNCMFJYSUUgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVUNCMFRYSUUgICAgICAgICAgICAgICAoMHgwOCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgVUMwSUZHICAgICAgICAgICAgICAgICBJRkcyCisjZGVmaW5lIFVDQTBSWElGRyAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTBUWElGRyAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjBSWElGRyAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjBUWElGRyAgICAgICAgICAgICAgKDB4MDgpCisKK1NGUl84QklUKFVDMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIDEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVQ0ExUlhJRSAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0ExVFhJRSAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IxUlhJRSAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IxVFhJRSAgICAgICAgICAgICAgICgweDA4KQorCitTRlJfOEJJVChVQzFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSVNDSSAxIEludGVycnVwdCBGbGFncyAqLworI2RlZmluZSBVQ0ExUlhJRkcgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0ExVFhJRkcgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IxUlhJRkcgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IxVFhJRkcgICAgICAgICAgICAgICgweDA4KQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJhc2ljIENsb2NrIE1vZHVsZQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQkMyX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoRENPQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDTyBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworU0ZSXzhCSVQoQkNTQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDEgKi8KK1NGUl84QklUKEJDU0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAyICovCitTRlJfOEJJVChCQ1NDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMyAqLworCisjZGVmaW5lIE1PRDAgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMCAqLworI2RlZmluZSBNT0QxICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDEgKi8KKyNkZWZpbmUgTU9EMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAyICovCisjZGVmaW5lIE1PRDMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMyAqLworI2RlZmluZSBNT0Q0ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDQgKi8KKyNkZWZpbmUgRENPMCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIERDTzEgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBEQ08yICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDIgKi8KKworI2RlZmluZSBSU0VMMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBSU0VMMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBSU0VMMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMiAqLworI2RlZmluZSBSU0VMMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMyAqLworI2RlZmluZSBESVZBMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVkExICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgWFRTICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMRlhUQ0xLIDA6TG93IEZyZXEuIC8gMTogSGlnaCBGcmVxLiAqLworI2RlZmluZSBYVDJPRkYgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEVuYWJsZSBYVDJDTEsgKi8KKworI2RlZmluZSBESVZBXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZBXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZBXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZBXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERDT1IgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRW5hYmxlIEV4dGVybmFsIFJlc2lzdG9yIDogMSAqLworI2RlZmluZSBESVZTMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgMDpEQ09DTEsgLyAxOlhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIERJVk0wICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZNXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZNXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZNXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIFNFTE1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDA6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMjogWFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgU0VMTV8zICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMzogTEZYVENMSyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgTEZYVDFPRiAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBMb3cvaGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMk9GICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSGlnaCBmcmVxdWVuY3kgb3NjaWxsYXRvciAyIGZhdWx0IGZsYWcgKi8KKyNkZWZpbmUgWENBUDAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBYQ0FQMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIExGWFQxUzAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAwIGZvciBMRlhUMSAoWFRTID0gMCkgKi8KKyNkZWZpbmUgTEZYVDFTMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNb2RlIDEgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBYVDJTMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyICovCisjZGVmaW5lIFhUMlMxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAxIGZvciBYVDIgKi8KKworI2RlZmluZSBYQ0FQXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDAgcEYgKi8KKyNkZWZpbmUgWENBUF8xICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiA2IHBGICovCisjZGVmaW5lIFhDQVBfMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMTAgcEYgKi8KKyNkZWZpbmUgWENBUF8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMi41IHBGICovCisKKyNkZWZpbmUgTEZYVDFTXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIDogTm9ybWFsIG9wZXJhdGlvbiAqLworI2RlZmluZSBMRlhUMVNfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgOiBSZXNlcnZlZCAqLworI2RlZmluZSBMRlhUMVNfMiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgTEZYVDEgOiBWTE8gKi8KKyNkZWZpbmUgTEZYVDFTXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNb2RlIDMgZm9yIExGWFQxIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworI2RlZmluZSBYVDJTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyIDogMC40IC0gMSBNSHogKi8KKyNkZWZpbmUgWFQyU18xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiA6IDEgLSA0IE1IeiAqLworI2RlZmluZSBYVDJTXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgWFQyIDogMiAtIDE2IE1IeiAqLworI2RlZmluZSBYVDJTXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgWFQyIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NBUExVU19fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSArVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIC1UZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBMiAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgLVRlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIFAyQ0EzICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSAtVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTQgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBICtUZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBDQVNIT1JUICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgU2hvcnQgKyBhbmQgLSBUZXJtaW5hbHMgKi8KKworI2RlZmluZSBDQVBEMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMCAqLworI2RlZmluZSBDQVBEMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMSAqLworI2RlZmluZSBDQVBEMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMiAqLworI2RlZmluZSBDQVBEMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMyAqLworI2RlZmluZSBDQVBENCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNCAqLworI2RlZmluZSBDQVBENSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNSAqLworI2RlZmluZSBDQVBENiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNiAqLworI2RlZmluZSBDQVBENyAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSDJfXyAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCitTRlJfMTZCSVQoRkNUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCA0ICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBFRUkgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEVuYWJsZSBFcmFzZSBJbnRlcnJ1cHRzICovCisjZGVmaW5lIEVFSUVYICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRW5hYmxlIEVtZXJnZW5jeSBJbnRlcnJ1cHQgRXhpdCAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisjZGVmaW5lIExPQ0tBICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU2VnbWVudCBBIExvY2sgYml0OiByZWFkID0gMSAtIFNlZ21lbnQgaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEZBSUwgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogTGFzdCBQcm9ncmFtIG9yIEVyYXNlIGZhaWxlZCAqLworCisjZGVmaW5lIE1HUjAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTWFyZ2luYWwgcmVhZCAwIG1vZGUuICovCisjZGVmaW5lIE1HUjEgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogTWFyZ2luYWwgcmVhZCAxIG1vZGUuICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSEFSRFdBUkUgTVVMVElQTElFUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTVBZX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKE1QWSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1QWVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUNTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQgYW5kIEFjY3VtdWxhdGUvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoT1AyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT3BlcmFuZCAyICovCitTRlJfMTZCSVQoUkVTTE8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IExvdyBXb3JkICovCitTRlJfMTZCSVQoUkVTSEkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IEhpZ2ggV29yZCAqLworU0ZSXzE2QklUKFNVTUVYVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN1bSBFeHRlbmQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yIFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDFSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDJSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDNSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDRJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBJbnB1dCAqLworU0ZSXzhCSVQoUDRPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBPdXRwdXQgKi8KK1NGUl84QklUKFA0RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDRSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0NS82IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDZfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDVJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBJbnB1dCAqLworU0ZSXzhCSVQoUDVPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBPdXRwdXQgKi8KK1NGUl84QklUKFA1RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDVSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDZSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCcm93bi1PdXQsIFN1cHBseSBWb2x0YWdlIFN1cGVydmlzaW9uIChTVlMpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19TVlNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTVlNDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU1ZTIENvbnRyb2wgKi8KKyNkZWZpbmUgU1ZTRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTVlMgRmxhZyAqLworI2RlZmluZSBTVlNPUCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNWUyBvdXRwdXQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgU1ZTT04gICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTd2l0Y2hlcyB0aGUgU1ZTIG9uL29mZiAqLworI2RlZmluZSBQT1JPTiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEVuYWJsZSBQT1IgR2VuZXJhdGlvbiBpZiBMb3cgVm9sdGFnZSAqLworI2RlZmluZSBWTEQwICAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTEQxICAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBWTEQyICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBWTEQzICAgICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIFZMRE9OICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRE9GRiAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIFZMRF8xXzhWICAgICAgICAgICAgICAgKDB4MTApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBCNworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEI3X18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRCSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDb250cm9sICovCitTRlJfMTZCSVQoVEJDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEJDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEJDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEJDQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAzICovCitTRlJfMTZCSVQoVEJDQ1RMNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA0ICovCitTRlJfMTZCSVQoVEJDQ1RMNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA1ICovCitTRlJfMTZCSVQoVEJDQ1RMNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA2ICovCitTRlJfMTZCSVQoVEJSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiAqLworU0ZSXzE2QklUKFRCQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQkNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEJDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMiAqLworU0ZSXzE2QklUKFRCQ0NSMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDMgKi8KK1NGUl8xNkJJVChUQkNDUjQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSA0ICovCitTRlJfMTZCSVQoVEJDQ1I1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgNSAqLworU0ZSXzE2QklUKFRCQ0NSNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDYgKi8KKworI2RlZmluZSBUQkNMR1JQMSAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgVEJDTEdSUDAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisjZGVmaW5lIENOVEwxICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMSAqLworI2RlZmluZSBDTlRMMCAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDAgKi8KKyNkZWZpbmUgVEJTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMSAqLworI2RlZmluZSBUQlNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAwICovCisjZGVmaW5lIFRCQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQiBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRCSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRCSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIFNIUjEgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBTSFIwICAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKworI2RlZmluZSBUQlNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogVEJDTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzEgICAgICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IEFDTEsgICovCisjZGVmaW5lIFRCU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBTTUNMSyAqLworI2RlZmluZSBUQlNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogSU5DTEsgKi8KKyNkZWZpbmUgQ05UTF8wICAgICAgICAgICAgICAgICAoMCoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTYgYml0ICovCisjZGVmaW5lIENOVExfMSAgICAgICAgICAgICAgICAgKDEqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEyIGJpdCAqLworI2RlZmluZSBDTlRMXzIgICAgICAgICAgICAgICAgICgyKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMCBiaXQgKi8KKyNkZWZpbmUgQ05UTF8zICAgICAgICAgICAgICAgICAoMyoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogIDggYml0ICovCisjZGVmaW5lIFNIUl8wICAgICAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBTSFJfMSAgICAgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgU0hSXzIgICAgICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFNIUl8zICAgICAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKyNkZWZpbmUgVEJDTEdSUF8wICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFRCQ0xHUlBfMSAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBUQkNMR1JQXzIgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgVEJDTEdSUF8zICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworCisvKiBBZGRpdGlvbmFsIFRpbWVyIEIgQ29udHJvbCBSZWdpc3RlciBiaXRzIGFyZSBkZWZpbmVkIGluIFRpbWVyIEEgKi8KKyNkZWZpbmUgQ0xMRDEgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgQ0xMRDAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUjEgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBTTFNIUjAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSXzAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgU0xTSFJfMSAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBTTFNIUl8yICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBTTFNIUl8zICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworI2RlZmluZSBDTExEXzAgICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIENMTERfMSAgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgQ0xMRF8yICAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgQ0xMRF8zICAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKy8qIFRCN0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRCSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQkNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQkNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjMgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBUQkNDUjNfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjQgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBUQkNDUjRfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjUgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQkNDUjNfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjYgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBUQkNDUjRfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQklGRyAgICAgICAgICAgICAoMHgwMDBFKSAgICAgICAvKiBUQklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQ0kKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VTQ0lfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0NJX0FCMF9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VTQ0lfQUIxX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVQ0EwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQTBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNBMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQTBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0EwTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBTVEFUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFN0YXR1cyBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNBMFJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFRyYW5zbWl0IEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNBMEFCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTElOIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBMElSUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgSXJEQSBSZWNlaXZlIENvbnRyb2wgKi8KKworCisKK1NGUl84QklUKFVDQjBDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVUNCMENUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfOEJJVChVQ0IwQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVUNCMEJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFVDQjBJMkNJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQjBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0IwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl8xNkJJVChVQ0IwSTJDT0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBPd24gQWRkcmVzcyAqLworU0ZSXzE2QklUKFVDQjBJMkNTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgSTJDIFNsYXZlIEFkZHJlc3MgKi8KKworU0ZSXzhCSVQoVUNBMUNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0ExQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTFCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0ExQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBMU1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0ExU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTFSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0ExVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTFBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0ExSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTFJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IxQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjFDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMUJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjFCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IxSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMVNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IxUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMVRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfMTZCSVQoVUNCMUkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IxSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEkyQyBTbGF2ZSBBZGRyZXNzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDUEVOICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgVUNQQVIgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5ICAgICAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBVQ01TQiAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBNU0IgZmlyc3QgIDA6TFNCIC8gMTpNU0IgKi8KKyNkZWZpbmUgVUM3QklUICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogRGF0YSBCaXRzICAwOjgtYml0cyAvIDE6Ny1iaXRzICovCisjZGVmaW5lIFVDU1BCICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFN0b3AgQml0cyAgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgVUNNT0RFMSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDEgKi8KKyNkZWZpbmUgVUNNT0RFMCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDAgKi8KKyNkZWZpbmUgVUNTWU5DICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTeW5jLU1vZGUgIDA6VUFSVC1Nb2RlIC8gMTpTUEktTW9kZSAqLworCisvLyBTUEktTW9kZSBCaXRzCisjZGVmaW5lIFVDQ0tQSCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU3luYy4gTW9kZTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgVUNDS1BMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBVQ01TVCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IE1hc3RlciBTZWxlY3QgKi8KKworLy8gSTJDLU1vZGUgQml0cworI2RlZmluZSBVQ0ExMCAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIDEwLWJpdCBBZGRyZXNzIE1vZGUgKi8KKyNkZWZpbmUgVUNTTEExMCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxMC1iaXQgU2xhdmUgQWRkcmVzcyBNb2RlICovCisjZGVmaW5lIFVDTU0gICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTXVsdGktTWFzdGVyIEVudmlyb25tZW50ICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDTU9ERV8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAwICovCisjZGVmaW5lIFVDTU9ERV8xICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAxICovCisjZGVmaW5lIFVDTU9ERV8yICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAyICovCisjZGVmaW5lIFVDTU9ERV8zICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDU1NFTDEgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBVQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNSWEVJRSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQlJLSUUgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgaW50ZXJydXB0IGVuYWJsZSAqLyAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDRE9STSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRG9ybWFudCAoU2xlZXApIE1vZGUgKi8KKyNkZWZpbmUgVUNUWEFERFIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBBZGRyZXNzICovCisjZGVmaW5lIFVDVFhCUksgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VuZCBuZXh0IERhdGEgYXMgQnJlYWsgKi8KKyNkZWZpbmUgVUNTV1JTVCAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIFNvZnR3YXJlIFJlc2V0ICovCisKKy8vIFNQSS1Nb2RlIEJpdHMKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwOCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwNCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwMikgICAgLyogcmVzZXJ2ZWQgKi8KKworLy8gSTJDLU1vZGUgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ1RSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFRyYW5zbWl0L1JlY2VpdmUgU2VsZWN0L0ZsYWcgKi8KKyNkZWZpbmUgVUNUWE5BQ0sgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBUcmFuc21pdCBOQUNLICovCisjZGVmaW5lIFVDVFhTVFAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVHJhbnNtaXQgU1RPUCAqLworI2RlZmluZSBVQ1RYU1RUICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFRyYW5zbWl0IFNUQVJUICovCisjZGVmaW5lIFVDU1NFTF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMCAqLworI2RlZmluZSBVQ1NTRUxfMSAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDEgKi8KKyNkZWZpbmUgVUNTU0VMXzIgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAyICovCisjZGVmaW5lIFVDU1NFTF8zICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMyAqLworCisjZGVmaW5lIFVDQlJGMyAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAzICovCisjZGVmaW5lIFVDQlJGMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDQlJGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDQlJTMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMiAqLworI2RlZmluZSBVQ0JSUzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUlMwICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDT1MxNiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSAxNi10aW1lcyBPdmVyc2FtcGxpbmcgZW5hYmxlICovCisKKyNkZWZpbmUgVUNCUkZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUkZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUkZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDIgKi8KKyNkZWZpbmUgVUNCUkZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUkZfNCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUkZfNSAgICAgICAgICAgICAgICAoMHg1MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDUgKi8KKyNkZWZpbmUgVUNCUkZfNiAgICAgICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUkZfNyAgICAgICAgICAgICAgICAoMHg3MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKyNkZWZpbmUgVUNCUkZfOCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDggKi8KKyNkZWZpbmUgVUNCUkZfOSAgICAgICAgICAgICAgICAoMHg5MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDkgKi8KKyNkZWZpbmUgVUNCUkZfMTAgICAgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEEgKi8KKyNkZWZpbmUgVUNCUkZfMTEgICAgICAgICAgICAgICAoMHhCMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEIgKi8KKyNkZWZpbmUgVUNCUkZfMTIgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEMgKi8KKyNkZWZpbmUgVUNCUkZfMTMgICAgICAgICAgICAgICAoMHhEMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEQgKi8KKyNkZWZpbmUgVUNCUkZfMTQgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEUgKi8KKyNkZWZpbmUgVUNCUkZfMTUgICAgICAgICAgICAgICAoMHhGMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEYgKi8KKworI2RlZmluZSBVQ0JSU18wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUlNfMSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAxICovCisjZGVmaW5lIFVDQlJTXzIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSU18zICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUlNfNCAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA0ICovCisjZGVmaW5lIFVDQlJTXzUgICAgICAgICAgICAgICAgKDB4MEEpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSU182ICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUlNfNyAgICAgICAgICAgICAgICAoMHgwRSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA3ICovCisKKyNkZWZpbmUgVUNMSVNURU4gICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFVDRkUgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGcmFtZSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDT0UgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBPdmVycnVuIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNQRSAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIFBhcml0eSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQlJLICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBCcmVhayByZWNlaXZlZCAqLworI2RlZmluZSBVQ1JYRVJSICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgUlggRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ0FERFIgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgQWRkcmVzcyByZWNlaXZlZCBGbGFnICovCisjZGVmaW5lIFVDQlVTWSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNJRExFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIElkbGUgbGluZSBkZXRlY3RlZCBGbGFnICovCisKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg4MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg0MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNOQUNLSUUgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUNLIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RQSUUgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ1NUVElFICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQUxJRSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXJiaXRyYXRpb24gTG9zdCBpbnRlcnJ1cHQgZW5hYmxlICovCisKKyNkZWZpbmUgVUNTQ0xMT1cgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTQ0wgbG93ICovCisjZGVmaW5lIFVDR0MgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogR2VuZXJhbCBDYWxsIGFkZHJlc3MgcmVjZWl2ZWQgRmxhZyAqLworI2RlZmluZSBVQ0JCVVNZICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJ1cyBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNOQUNLSUZHICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUsgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDU1RQSUZHICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFRJRkcgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVEFSVCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNBTElGRyAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBMb3N0IGludGVycnVwdCBGbGFnICovCisKKyNkZWZpbmUgVUNJUlRYUEw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJUWFBMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSVFhQTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlRYUEwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJUWFBMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSVFhQTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlRYQ0xLICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIENsb2NrIFNlbGVjdCAqLworI2RlZmluZSBVQ0lSRU4gICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIElSREEgRW5jb2Rlci9EZWNvZGVyIGVuYWJsZSAqLworCisjZGVmaW5lIFVDSVJSWEZMNSAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNSAqLworI2RlZmluZSBVQ0lSUlhGTDQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDQgKi8KKyNkZWZpbmUgVUNJUlJYRkwzICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAzICovCisjZGVmaW5lIFVDSVJSWEZMMiAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMiAqLworI2RlZmluZSBVQ0lSUlhGTDEgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDEgKi8KKyNkZWZpbmUgVUNJUlJYRkwwICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAwICovCisjZGVmaW5lIFVDSVJSWFBMICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIElucHV0IFBvbGFyaXR5ICovCisjZGVmaW5lIFVDSVJSWEZFICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBlbmFibGUgKi8KKworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDgwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDQwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0RFTElNMSAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDEgKi8KKyNkZWZpbmUgVUNERUxJTTAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBTeW5jIERlbGltaXRlciAwICovCisjZGVmaW5lIFVDU1RPRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy1GaWVsZCBUaW1lb3V0IGVycm9yICovCisjZGVmaW5lIFVDQlRPRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQnJlYWsgVGltZW91dCBlcnJvciAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0FCREVOICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEF1dG8gQmF1ZCBSYXRlIGRldGVjdCBlbmFibGUgKi8KKworI2RlZmluZSBVQ0dDRU4gICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEkyQyBHZW5lcmFsIENhbGwgZW5hYmxlICovCisjZGVmaW5lIFVDT0E5ICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNPQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOCAqLworI2RlZmluZSBVQ09BNyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDT0E2ICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNPQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNSAqLworI2RlZmluZSBVQ09BNCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDT0EzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNPQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMiAqLworI2RlZmluZSBVQ09BMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAxICovCisjZGVmaW5lIFVDT0EwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDAgKi8KKworI2RlZmluZSBVQ1NBOSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNTQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDU0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNyAqLworI2RlZmluZSBVQ1NBNiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNTQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDU0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNCAqLworI2RlZmluZSBVQ1NBMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNTQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAyICovCisjZGVmaW5lIFVDU0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMSAqLworI2RlZmluZSBVQ1NBMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFRMViBDYWxpYnJhdGlvbiBEYXRhIFN0cnVjdHVyZSAqLworI2RlZmluZSBUQUdfRENPXzMwICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRhZyBmb3IgRENPMzAgIENhbGlicmF0aW9uIERhdGEgKi8KKyNkZWZpbmUgVEFHX0FEQzEyXzEgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBUYWcgZm9yIEFEQzEyXzEgQ2FsaWJyYXRpb24gRGF0YSAqLworI2RlZmluZSBUQUdfRU1QVFkgICAgICAgICAgICAgICgweEZFKSAgICAgICAgIC8qIFRhZyBmb3IgRW1wdHkgRGF0YSBGaWVsZCBpbiBDYWxpYnJhdGlvbiBEYXRhICovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorU0ZSXzE2QklUKFRMVl9DSEVDS1NVTSk7ICAgICAgICAgICAgICAgICAgICAgIC8qIFRMViBDSEVDSyBTVU0gKi8KK1NGUl84QklUKFRMVl9EQ09fMzBfVEFHKTsgICAgICAgICAgICAgICAgICAgICAvKiBUTFYgVEFHX0RDTzMwIFRBRyAqLworU0ZSXzhCSVQoVExWX0RDT18zMF9MRU4pOyAgICAgICAgICAgICAgICAgICAgIC8qIFRMViBUQUdfRENPMzAgTEVOICovCisjZW5kaWYKKworI2RlZmluZSBDQUxfRENPXzE2TUhaICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEluZGV4IGZvciBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDE2TUh6ICovCisjZGVmaW5lIENBTF9CQzFfMTZNSFogICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSW5kZXggZm9yIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KKyNkZWZpbmUgQ0FMX0RDT18xMk1IWiAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBJbmRleCBmb3IgRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworI2RlZmluZSBDQUxfQkMxXzEyTUhaICAgICAgICAgICgweDAwMDMpICAgICAgIC8qIEluZGV4IGZvciBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCisjZGVmaW5lIENBTF9EQ09fOE1IWiAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogSW5kZXggZm9yIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworI2RlZmluZSBDQUxfQkMxXzhNSFogICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIEluZGV4IGZvciBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDhNSHogKi8KKyNkZWZpbmUgQ0FMX0RDT18xTUhaICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBJbmRleCBmb3IgRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxTUh6ICovCisjZGVmaW5lIENBTF9CQzFfMU1IWiAgICAgICAgICAgKDB4MDAwNykgICAgICAgLyogSW5kZXggZm9yIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ2FsaWJyYXRpb24gRGF0YSBpbiBJbmZvIE1lbQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fRGlzYWJsZUNhbERhdGEKKworU0ZSXzhCSVQoQ0FMRENPXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTEJDMV8xNk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDE2TUh6ICovCitTRlJfOEJJVChDQUxEQ09fMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzEyTUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTJNSHogKi8KK1NGUl84QklUKENBTERDT184TUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDhNSHogKi8KK1NGUl84QklUKENBTEJDMV84TUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDhNSHogKi8KK1NGUl84QklUKENBTERDT18xTUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDFNSHogKi8KK1NGUl84QklUKENBTEJDMV8xTUhaKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBCQ1NDVEwxIENhbGlicmF0aW9uIERhdGEgZm9yIDFNSHogKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGQzApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworI2RlZmluZSBSRVNFUlZFRDBfVkVDVE9SICAgICAgICAoMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDMCBSZXNlcnZlZCBJbnQuIFZlY3RvciAwICovCisvKiNkZWZpbmUgUkVTRVJWRUQwX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZDMCBSZXNlcnZlZCBJbnQuIFZlY3RvciAwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDFfVkVDVE9SICAgICAgICAoMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDMiBSZXNlcnZlZCBJbnQuIFZlY3RvciAxICovCisvKiNkZWZpbmUgUkVTRVJWRUQxX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZDMiBSZXNlcnZlZCBJbnQuIFZlY3RvciAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDJfVkVDVE9SICAgICAgICAoMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDNCBSZXNlcnZlZCBJbnQuIFZlY3RvciAyICovCisvKiNkZWZpbmUgUkVTRVJWRUQyX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAyIikgICovIC8qIDB4RkZDNCBSZXNlcnZlZCBJbnQuIFZlY3RvciAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDNfVkVDVE9SICAgICAgICAoMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDNiBSZXNlcnZlZCBJbnQuIFZlY3RvciAzICovCisvKiNkZWZpbmUgUkVTRVJWRUQzX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAzIikgICovIC8qIDB4RkZDNiBSZXNlcnZlZCBJbnQuIFZlY3RvciAzICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDRfVkVDVE9SICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDOCBSZXNlcnZlZCBJbnQuIFZlY3RvciA0ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ0X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA0IikgICovIC8qIDB4RkZDOCBSZXNlcnZlZCBJbnQuIFZlY3RvciA0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDVfVkVDVE9SICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDQSBSZXNlcnZlZCBJbnQuIFZlY3RvciA1ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ1X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA1IikgICovIC8qIDB4RkZDQSBSZXNlcnZlZCBJbnQuIFZlY3RvciA1ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDZfVkVDVE9SICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDQyBSZXNlcnZlZCBJbnQuIFZlY3RvciA2ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ2X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZDQyBSZXNlcnZlZCBJbnQuIFZlY3RvciA2ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDdfVkVDVE9SICAgICAgICAoNyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDRSBSZXNlcnZlZCBJbnQuIFZlY3RvciA3ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ3X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA3IikgICovIC8qIDB4RkZDRSBSZXNlcnZlZCBJbnQuIFZlY3RvciA3ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDhfVkVDVE9SICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZEMCBSZXNlcnZlZCBJbnQuIFZlY3RvciA4ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ4X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZEMCBSZXNlcnZlZCBJbnQuIFZlY3RvciA4ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDlfVkVDVE9SICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZEMiBSZXNlcnZlZCBJbnQuIFZlY3RvciA5ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ5X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA5IikgICovIC8qIDB4RkZEMiBSZXNlcnZlZCBJbnQuIFZlY3RvciA5ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDEwX1ZFQ1RPUiAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZENCBSZXNlcnZlZCBJbnQuIFZlY3RvciAxMCAqLworLyojZGVmaW5lIFJFU0VSVkVEMTBfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRDQgUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VSVkVEMTFfVkVDVE9SICAgICAgICgxMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkQ2IFJlc2VydmVkIEludC4gVmVjdG9yIDExICovCisvKiNkZWZpbmUgUkVTRVJWRUQxMV9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDExIikgICovIC8qIDB4RkZENiBSZXNlcnZlZCBJbnQuIFZlY3RvciAxMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVJWRUQxMl9WRUNUT1IgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRDggUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTIgKi8KKy8qI2RlZmluZSBSRVNFUlZFRDEyX0lTUihmdW5jKSAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkQ4IFJlc2VydmVkIEludC4gVmVjdG9yIDEyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDEzX1ZFQ1RPUiAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZEQSBSZXNlcnZlZCBJbnQuIFZlY3RvciAxMyAqLworLyojZGVmaW5lIFJFU0VSVkVEMTNfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGREEgUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VSVkVEMTRfVkVDVE9SICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkRDIFJlc2VydmVkIEludC4gVmVjdG9yIDE0ICovCisvKiNkZWZpbmUgUkVTRVJWRUQxNF9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZEQyBSZXNlcnZlZCBJbnQuIFZlY3RvciAxNCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVJWRUQxNV9WRUNUT1IgICAgICAgKDE1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGREUgUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTUgKi8KKy8qI2RlZmluZSBSRVNFUlZFRDE1X0lTUihmdW5jKSAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkRFIFJlc2VydmVkIEludC4gVmVjdG9yIDE1ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIxVFhfVkVDVE9SICAgICAgICAoMTYgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMCBVU0NJIEExL0IxIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNDSUFCMVRYX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE2IikgICovIC8qIDB4RkZFMCBVU0NJIEExL0IxIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIxUlhfVkVDVE9SICAgICAgICAoMTcgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMiBVU0NJIEExL0IxIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0NJQUIxUlhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTciKSAgKi8gLyogMHhGRkUyIFVTQ0kgQTEvQjEgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDE4ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE4IikgICovIC8qIDB4RkZFNCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgxOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxOSIpICAqLyAvKiAweEZGRTYgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDIwX1ZFQ1RPUiAgICAgICAoMjAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBSZXNlcnZlZCBJbnQuIFZlY3RvciAyMCAqLworLyojZGVmaW5lIFJFU0VSVkVEMjBfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyMCIpICAqLyAvKiAweEZGRTggUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMjAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VSVkVEMjFfVkVDVE9SICAgICAgICgyMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVBIFJlc2VydmVkIEludC4gVmVjdG9yIDIxICovCisvKiNkZWZpbmUgUkVTRVJWRUQyMV9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDIxIikgICovIC8qIDB4RkZFQSBSZXNlcnZlZCBJbnQuIFZlY3RvciAyMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNDSUFCMFRYX1ZFQ1RPUiAgICAgICAgKDIyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUMgVVNDSSBBMC9CMCBUcmFuc21pdCAqLworLyojZGVmaW5lIFVTQ0lBQjBUWF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyMiIpICAqLyAvKiAweEZGRUMgVVNDSSBBMC9CMCBUcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNDSUFCMFJYX1ZFQ1RPUiAgICAgICAgKDIzICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUUgVVNDSSBBMC9CMCBSZWNlaXZlICovCisvKiNkZWZpbmUgVVNDSUFCMFJYX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDIzIikgICovIC8qIDB4RkZFRSBVU0NJIEEwL0IwIFJlY2VpdmUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTFfVkVDVE9SICAgICAgICAgICgyNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTIsIFRBICovCisvKiNkZWZpbmUgVElNRVJBMV9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDI0IikgICovIC8qIDB4RkZGMCBUaW1lciBBIENDMS0yLCBUQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMF9WRUNUT1IgICAgICAgICAgKDI1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUkEwX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MjUiKSAgKi8gLyogMHhGRkYyIFRpbWVyIEEgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMjYgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyNiIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIENPTVBBUkFUT1JBX1ZFQ1RPUiAgICAgICgyNyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLworLyojZGVmaW5lIENPTVBBUkFUT1JBX0lTUihmdW5jKSAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyNyIpICAqLyAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIxX1ZFQ1RPUiAgICAgICAgICAoMjggKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGOCBUaW1lciBCIENDMS02LCBUQiAqLworLyojZGVmaW5lIFRJTUVSQjFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyOCIpICAqLyAvKiAweEZGRjggVGltZXIgQiBDQzEtNiwgVEIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQjBfVkVDVE9SICAgICAgICAgICgyOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZBIFRpbWVyIEIgQ0MwICovCisvKiNkZWZpbmUgVElNRVJCMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDI5IikgICovIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDMwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDMwIikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgzMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQzMSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MjR4MSAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDI2eC5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyNnguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NWJhYWVjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgyNnguaApAQCAtMCwwICsxLDE0NDQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDI2eCBkZXZpY2VzLgorKgorKiBUZXhhcyBJbnN0cnVtZW50cywgVmVyc2lvbiAxLjQKKyoKKyogUmV2LiAxLjAsIEluaXRpYWwgVmVyc2lvbgorKiBSZXYuIDEuMSwgY2hhbmdlZCBQQVJFTiBmcm9tIHNmcmIgdG8gc2ZydworKiBSZXYuIDEuMiAgYWRkZWQgVExWIGluIElORk8gTWVtb3J5CisqIFJldi4gMS4zLCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKiBSZXYuIDEuNCwgY2hhbmdlZCAndm9pZCBfX2RhdGEyMCAqIHZvbGF0aWxlJyBkZWZpbml0aW9uCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHgyNngKKyNkZWZpbmUgX19tc3A0MzB4MjZ4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKy8vI2RlZmluZSBTRlJfMjBCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcwordHlwZWRlZiB2b2lkICgqIF9fU0ZSX0ZBUlBUUikoKTsKKyNkZWZpbmUgU0ZSXzIwQklUKGFkZHJlc3MpIGV4dGVybiBfX1NGUl9GQVJQVFIgYWRkcmVzcworI2RlZmluZSBTRlJfMzJCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBsb25nIGFkZHJlc3MKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ1BVCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19NU1A0MzBYX0NQVV9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IGl0IGhhcyBNU1A0MzBYIENQVSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEZsYXNoIEFjY2VzcyBWaW9sYXRpb24gSW50ZXJydXB0IEVuYWJsZSAqLworCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdhdGNoZG9nIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogT3NjLiBGYXVsdCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBQT1JJRkcgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFBvd2VyIE9uIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFJTVElGRyAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVzZXQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEZsYWcgKi8KKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBVQzBJRSAgICAgICAgICAgICAgICAgIElFMgorI2RlZmluZSBVQ0EwUlhJRSAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0EwVFhJRSAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IwUlhJRSAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IwVFhJRSAgICAgICAgICAgICAgICgweDA4KQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBVQzBJRkcgICAgICAgICAgICAgICAgIElGRzIKKyNkZWZpbmUgVUNBMFJYSUZHICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVUNBMFRYSUZHICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVUNCMFJYSUZHICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVUNCMFRYSUZHICAgICAgICAgICAgICAoMHgwOCkKKworU0ZSXzhCSVQoVUMxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgMSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVDQTFSWElFICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTFUWElFICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjFSWElFICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjFUWElFICAgICAgICAgICAgICAgKDB4MDgpCisKK1NGUl84QklUKFVDMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJU0NJIDEgSW50ZXJydXB0IEZsYWdzICovCisjZGVmaW5lIFVDQTFSWElGRyAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTFUWElGRyAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjFSWElGRyAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjFUWElGRyAgICAgICAgICAgICAgKDB4MDgpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQURDMTIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0FEQzEyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChBREMxMkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChBREMxMkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChBREMxMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzE2QklUKEFEQzEySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl8xNkJJVChBREMxMklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KKworI2RlZmluZSBBREMxMk1FTV8gICAgICAgICAgICAgICgweDAxNDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgQURDMTJNRU0gICAgICAgICAgICAgICAoQURDMTJNRU1fKSAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIEFEQzEyTUVNICAgICAgICAgICAgICAgKChpbnQqKSAgICAgICAgQURDMTJNRU1fKSAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl8xNkJJVChBREMxMk1FTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAwICovCitTRlJfMTZCSVQoQURDMTJNRU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDIgKi8KK1NGUl8xNkJJVChBREMxMk1FTTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAzICovCitTRlJfMTZCSVQoQURDMTJNRU00KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNNSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDUgKi8KK1NGUl8xNkJJVChBREMxMk1FTTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA2ICovCitTRlJfMTZCSVQoQURDMTJNRU03KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNyAqLworU0ZSXzE2QklUKEFEQzEyTUVNOCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDggKi8KK1NGUl8xNkJJVChBREMxMk1FTTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA5ICovCitTRlJfMTZCSVQoQURDMTJNRU0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTAgKi8KK1NGUl8xNkJJVChBREMxMk1FTTExKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEyICovCitTRlJfMTZCSVQoQURDMTJNRU0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTMgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE0KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDE1ICovCisKKyNkZWZpbmUgQURDMTJNQ1RMXyAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIEFEQzEyTUNUTCAgICAgICAgICAgICAgKEFEQzEyTUNUTF8pICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBBREMxMk1DVEwgICAgICAgICAgICAgICgoY2hhciopICAgICAgIEFEQzEyTUNUTF8pIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoQURDMTJNQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDAgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxICovCitTRlJfOEJJVChBREMxMk1DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDMgKi8KK1NGUl84QklUKEFEQzEyTUNUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA0ICovCitTRlJfOEJJVChBREMxMk1DVEw1KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDYgKi8KK1NGUl84QklUKEFEQzEyTUNUTDcpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA3ICovCitTRlJfOEJJVChBREMxMk1DVEw4KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgOCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMOSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDkgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTEpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDExICovCitTRlJfOEJJVChBREMxMk1DVEwxMik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTIgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEzKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDE0ICovCitTRlJfOEJJVChBREMxMk1DVEwxNSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTUgKi8KKworLyogQURDMTJDVEwwICovCisjZGVmaW5lIEFEQzEyU0MgICAgICAgICAgICAgICAgKDB4MDAxKSAgICAgICAgLyogQURDMTIgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBFTkMgICAgICAgICAgICAgICAgICAgICgweDAwMikgICAgICAgIC8qIEFEQzEyIEVuYWJsZSBDb252ZXJzaW9uICovCisjZGVmaW5lIEFEQzEyVE9WSUUgICAgICAgICAgICAgKDB4MDA0KSAgICAgICAgLyogQURDMTIgVGltZXIgT3ZlcmZsb3cgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBBREMxMk9WSUUgICAgICAgICAgICAgICgweDAwOCkgICAgICAgIC8qIEFEQzEyIE92ZXJmbG93IGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQURDMTJPTiAgICAgICAgICAgICAgICAoMHgwMTApICAgICAgICAvKiBBREMxMiBPbi9lbmFibGUgKi8KKyNkZWZpbmUgUkVGT04gICAgICAgICAgICAgICAgICAoMHgwMjApICAgICAgICAvKiBBREMxMiBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgUkVGMl81ViAgICAgICAgICAgICAgICAoMHgwNDApICAgICAgICAvKiBBREMxMiBSZWYgMDoxLjVWIC8gMToyLjVWICovCisjZGVmaW5lIE1TQyAgICAgICAgICAgICAgICAgICAgKDB4MDgwKSAgICAgICAgLyogQURDMTIgTXVsdGlwbGUgU2FtcGxlQ29udmVyc2lvbiAqLworI2RlZmluZSBTSFQwMCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0hUMDEgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAxICovCisjZGVmaW5lIFNIVDAyICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMiAqLworI2RlZmluZSBTSFQwMyAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDMgKi8KKyNkZWZpbmUgU0hUMTAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAwICovCisjZGVmaW5lIFNIVDExICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMSBTZWxlY3QgMSAqLworI2RlZmluZSBTSFQxMiAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDIgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0hUMTMgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAzIFNlbGVjdCAzICovCisjZGVmaW5lIE1TSCAgICAgICAgICAgICAgICAgICAgKDB4MDgwKQorCisjZGVmaW5lIFNIVDBfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8yICAgICAgICAgICAgICAgICAoMioweDEwMHUpCisjZGVmaW5lIFNIVDBfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDB1KQorI2RlZmluZSBTSFQwXzQgICAgICAgICAgICAgICAgICg0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF81ICAgICAgICAgICAgICAgICAoNSoweDEwMHUpCisjZGVmaW5lIFNIVDBfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDB1KQorI2RlZmluZSBTSFQwXzcgICAgICAgICAgICAgICAgICg3KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF84ICAgICAgICAgICAgICAgICAoOCoweDEwMHUpCisjZGVmaW5lIFNIVDBfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEwICAgICAgICAgICAgICAgICgxMCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEzICAgICAgICAgICAgICAgICgxMyoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDB1KQorCisjZGVmaW5lIFNIVDFfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV80ICAgICAgICAgICAgICAgICAoNCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzUgICAgICAgICAgICAgICAgICg1KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV83ICAgICAgICAgICAgICAgICAoNyoweDEwMDB1KQorI2RlZmluZSBTSFQxXzggICAgICAgICAgICAgICAgICg4KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMCAgICAgICAgICAgICAgICAoMTAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMSAgICAgICAgICAgICAgICAoMTEqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMyAgICAgICAgICAgICAgICAoMTMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNCAgICAgICAgICAgICAgICAoMTQqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDAwdSkKKworLyogQURDMTJDVEwxICovCisjZGVmaW5lIEFEQzEyQlVTWSAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgQnVzeSAqLworI2RlZmluZSBDT05TRVEwICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ09OU0VRMSAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyU1NFTDAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyU1NFTDEgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMkRJVjEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJESVYyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAyICovCisjZGVmaW5lIElTU0ggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTIgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBTSFAgICAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFB1bHNlIE1vZGUgKi8KKyNkZWZpbmUgU0hTMCAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBTSFMxICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIENTVEFSVEFERDAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDAgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMSAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMSAqLworI2RlZmluZSBDU1RBUlRBREQyICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAyICovCisjZGVmaW5lIENTVEFSVEFERDMgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDMgKi8KKworI2RlZmluZSBDT05TRVFfMCAgICAgICAgICAgICAgICgwKjJ1KQorI2RlZmluZSBDT05TRVFfMSAgICAgICAgICAgICAgICgxKjJ1KQorI2RlZmluZSBDT05TRVFfMiAgICAgICAgICAgICAgICgyKjJ1KQorI2RlZmluZSBDT05TRVFfMyAgICAgICAgICAgICAgICgzKjJ1KQorI2RlZmluZSBBREMxMlNTRUxfMCAgICAgICAgICAgICgwKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMSAgICAgICAgICAgICgxKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMiAgICAgICAgICAgICgyKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMyAgICAgICAgICAgICgzKjh1KQorI2RlZmluZSBBREMxMkRJVl8wICAgICAgICAgICAgICgwKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8xICAgICAgICAgICAgICgxKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8yICAgICAgICAgICAgICgyKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8zICAgICAgICAgICAgICgzKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl80ICAgICAgICAgICAgICg0KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl81ICAgICAgICAgICAgICg1KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl82ICAgICAgICAgICAgICg2KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl83ICAgICAgICAgICAgICg3KjB4MjB1KQorI2RlZmluZSBTSFNfMCAgICAgICAgICAgICAgICAgICgwKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzEgICAgICAgICAgICAgICAgICAoMSoweDQwMHUpCisjZGVmaW5lIFNIU18yICAgICAgICAgICAgICAgICAgKDIqMHg0MDB1KQorI2RlZmluZSBTSFNfMyAgICAgICAgICAgICAgICAgICgzKjB4NDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMSAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8yICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzMgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNCAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF81ICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzYgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNyAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF84ICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzkgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTEgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTIgICAgICAgICAgICgxMioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTMgICAgICAgICAgICgxMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTQgICAgICAgICAgICgxNCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTUgICAgICAgICAgICgxNSoweDEwMDB1KQorCisvKiBBREMxMk1DVEx4ICovCisjZGVmaW5lIElOQ0gwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgSU5DSDEgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBJTkNIMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIElOQ0gzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDMgKi8KKyNkZWZpbmUgU1JFRjAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAwICovCisjZGVmaW5lIFNSRUYxICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMSAqLworI2RlZmluZSBTUkVGMiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDIgKi8KKyNkZWZpbmUgRU9TICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBFbmQgb2YgU2VxdWVuY2UgKi8KKworI2RlZmluZSBJTkNIXzAgICAgICAgICAgICAgICAgICgwKQorI2RlZmluZSBJTkNIXzEgICAgICAgICAgICAgICAgICgxKQorI2RlZmluZSBJTkNIXzIgICAgICAgICAgICAgICAgICgyKQorI2RlZmluZSBJTkNIXzMgICAgICAgICAgICAgICAgICgzKQorI2RlZmluZSBJTkNIXzQgICAgICAgICAgICAgICAgICg0KQorI2RlZmluZSBJTkNIXzUgICAgICAgICAgICAgICAgICg1KQorI2RlZmluZSBJTkNIXzYgICAgICAgICAgICAgICAgICg2KQorI2RlZmluZSBJTkNIXzcgICAgICAgICAgICAgICAgICg3KQorI2RlZmluZSBJTkNIXzggICAgICAgICAgICAgICAgICg4KQorI2RlZmluZSBJTkNIXzkgICAgICAgICAgICAgICAgICg5KQorI2RlZmluZSBJTkNIXzEwICAgICAgICAgICAgICAgICgxMCkKKyNkZWZpbmUgSU5DSF8xMSAgICAgICAgICAgICAgICAoMTEpCisjZGVmaW5lIElOQ0hfMTIgICAgICAgICAgICAgICAgKDEyKQorI2RlZmluZSBJTkNIXzEzICAgICAgICAgICAgICAgICgxMykKKyNkZWZpbmUgSU5DSF8xNCAgICAgICAgICAgICAgICAoMTQpCisjZGVmaW5lIElOQ0hfMTUgICAgICAgICAgICAgICAgKDE1KQorCisjZGVmaW5lIFNSRUZfMCAgICAgICAgICAgICAgICAgKDAqMHgxMHUpCisjZGVmaW5lIFNSRUZfMSAgICAgICAgICAgICAgICAgKDEqMHgxMHUpCisjZGVmaW5lIFNSRUZfMiAgICAgICAgICAgICAgICAgKDIqMHgxMHUpCisjZGVmaW5lIFNSRUZfMyAgICAgICAgICAgICAgICAgKDMqMHgxMHUpCisjZGVmaW5lIFNSRUZfNCAgICAgICAgICAgICAgICAgKDQqMHgxMHUpCisjZGVmaW5lIFNSRUZfNSAgICAgICAgICAgICAgICAgKDUqMHgxMHUpCisjZGVmaW5lIFNSRUZfNiAgICAgICAgICAgICAgICAgKDYqMHgxMHUpCisjZGVmaW5lIFNSRUZfNyAgICAgICAgICAgICAgICAgKDcqMHgxMHUpCisKKy8qIEFEQzEySVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgQURDMTJJVl9OT05FICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBBREMxMklWX0FEQzEyT1ZJRkcgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyT1ZJRkcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMlRPVklGRyAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMlRPVklGRyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMCAgICAgICgweDAwMDYpICAgICAgIC8qIEFEQzEySUZHMCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMSAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEySUZHMSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMiAgICAgICgweDAwMEEpICAgICAgIC8qIEFEQzEySUZHMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMyAgICAgICgweDAwMEMpICAgICAgIC8qIEFEQzEySUZHMyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNCAgICAgICgweDAwMEUpICAgICAgIC8qIEFEQzEySUZHNCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNSAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEySUZHNSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNiAgICAgICgweDAwMTIpICAgICAgIC8qIEFEQzEySUZHNiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNyAgICAgICgweDAwMTQpICAgICAgIC8qIEFEQzEySUZHNyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOCAgICAgICgweDAwMTYpICAgICAgIC8qIEFEQzEySUZHOCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOSAgICAgICgweDAwMTgpICAgICAgIC8qIEFEQzEySUZHOSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTAgICAgICgweDAwMUEpICAgICAgIC8qIEFEQzEySUZHMTAgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzExICAgICAoMHgwMDFDKSAgICAgICAvKiBBREMxMklGRzExICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMiAgICAgKDB4MDAxRSkgICAgICAgLyogQURDMTJJRkcxMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTMgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEySUZHMTMgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzE0ICAgICAoMHgwMDIyKSAgICAgICAvKiBBREMxMklGRzE0ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxNSAgICAgKDB4MDAyNCkgICAgICAgLyogQURDMTJJRkcxNSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJhc2ljIENsb2NrIE1vZHVsZQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQkMyX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoRENPQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDTyBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworU0ZSXzhCSVQoQkNTQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIENsb2NrIFN5c3RlbSBDb250cm9sIDEgKi8KK1NGUl84QklUKEJDU0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBDbG9jayBTeXN0ZW0gQ29udHJvbCAyICovCitTRlJfOEJJVChCQ1NDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgQ2xvY2sgU3lzdGVtIENvbnRyb2wgMyAqLworCisjZGVmaW5lIE1PRDAgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMCAqLworI2RlZmluZSBNT0QxICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDEgKi8KKyNkZWZpbmUgTU9EMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBNb2R1bGF0aW9uIEJpdCAyICovCisjZGVmaW5lIE1PRDMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTW9kdWxhdGlvbiBCaXQgMyAqLworI2RlZmluZSBNT0Q0ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gQml0IDQgKi8KKyNkZWZpbmUgRENPMCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBEQ08gU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIERDTzEgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogRENPIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBEQ08yICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTyBTZWxlY3QgQml0IDIgKi8KKworI2RlZmluZSBSU0VMMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBSU0VMMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBSU0VMMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMiAqLworI2RlZmluZSBSU0VMMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJhbmdlIFNlbGVjdCBCaXQgMyAqLworI2RlZmluZSBESVZBMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwICovCisjZGVmaW5lIERJVkExICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQUNMSyBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgWFRTICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMRlhUQ0xLIDA6TG93IEZyZXEuIC8gMTogSGlnaCBGcmVxLiAqLworI2RlZmluZSBYVDJPRkYgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEVuYWJsZSBYVDJDTEsgKi8KKworI2RlZmluZSBESVZBXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZBXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZBXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZBXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIEFDTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIERDT1IgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRW5hYmxlIEV4dGVybmFsIFJlc2lzdG9yIDogMSAqLworI2RlZmluZSBESVZTMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgMDpEQ09DTEsgLyAxOlhUMkNMSy9MRlhUQ0xLICovCisjZGVmaW5lIERJVk0wICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNQ0xLIERpdmlkZXIgMSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMDogLzEgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTTUNMSyBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU01DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgMzogLzggKi8KKworI2RlZmluZSBESVZNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAwOiAvMSAqLworI2RlZmluZSBESVZNXzEgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAxOiAvMiAqLworI2RlZmluZSBESVZNXzIgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBESVZNXzMgICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIE1DTEsgRGl2aWRlciAzOiAvOCAqLworCisjZGVmaW5lIFNFTE1fMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDA6IERDT0NMSyAqLworI2RlZmluZSBTRUxNXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxOiBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMjogWFQyQ0xLL0xGWFRDTEsgKi8KKyNkZWZpbmUgU0VMTV8zICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMzogTEZYVENMSyAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgTEZYVDFPRiAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBMb3cvaGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMk9GICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSGlnaCBmcmVxdWVuY3kgb3NjaWxsYXRvciAyIGZhdWx0IGZsYWcgKi8KKyNkZWZpbmUgWENBUDAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBYQ0FQMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIExGWFQxUzAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTW9kZSAwIGZvciBMRlhUMSAoWFRTID0gMCkgKi8KKyNkZWZpbmUgTEZYVDFTMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNb2RlIDEgZm9yIExGWFQxIChYVFMgPSAwKSAqLworI2RlZmluZSBYVDJTMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyICovCisjZGVmaW5lIFhUMlMxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAxIGZvciBYVDIgKi8KKworI2RlZmluZSBYQ0FQXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCA6IDAgcEYgKi8KKyNkZWZpbmUgWENBUF8xICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiA2IHBGICovCisjZGVmaW5lIFhDQVBfMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDogMTAgcEYgKi8KKyNkZWZpbmUgWENBUF8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgOiAxMi41IHBGICovCisKKyNkZWZpbmUgTEZYVDFTXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNb2RlIDAgZm9yIExGWFQxIDogTm9ybWFsIG9wZXJhdGlvbiAqLworI2RlZmluZSBMRlhUMVNfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgTEZYVDEgOiBSZXNlcnZlZCAqLworI2RlZmluZSBMRlhUMVNfMiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgTEZYVDEgOiBWTE8gKi8KKyNkZWZpbmUgTEZYVDFTXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBNb2RlIDMgZm9yIExGWFQxIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworI2RlZmluZSBYVDJTXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE1vZGUgMCBmb3IgWFQyIDogMC40IC0gMSBNSHogKi8KKyNkZWZpbmUgWFQyU18xICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiA6IDEgLSA0IE1IeiAqLworI2RlZmluZSBYVDJTXzIgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZGUgMiBmb3IgWFQyIDogMiAtIDE2IE1IeiAqLworI2RlZmluZSBYVDJTXzMgICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE1vZGUgMyBmb3IgWFQyIDogRGlnaXRhbCBpbnB1dCBzaWduYWwgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NBUExVU19fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSArVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIC1UZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBQMkNBMiAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgLVRlcm1pbmFsIE11bHRpcGxleGVyICovCisjZGVmaW5lIFAyQ0EzICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSAtVGVybWluYWwgTXVsdGlwbGV4ZXIgKi8KKyNkZWZpbmUgUDJDQTQgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBICtUZXJtaW5hbCBNdWx0aXBsZXhlciAqLworI2RlZmluZSBDQVNIT1JUICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgU2hvcnQgKyBhbmQgLSBUZXJtaW5hbHMgKi8KKworI2RlZmluZSBDQVBEMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMCAqLworI2RlZmluZSBDQVBEMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMSAqLworI2RlZmluZSBDQVBEMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMiAqLworI2RlZmluZSBDQVBEMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMyAqLworI2RlZmluZSBDQVBENCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNCAqLworI2RlZmluZSBDQVBENSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNSAqLworI2RlZmluZSBDQVBENiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNiAqLworI2RlZmluZSBDQVBENyAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERBQzEyCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19EQUMxMl8yX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoREFDMTJfMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMCBDb250cm9sICovCitTRlJfMTZCSVQoREFDMTJfMUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMSBDb250cm9sICovCisKKyNkZWZpbmUgREFDMTJHUlAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEQUMxMiBncm91cCAqLworI2RlZmluZSBEQUMxMkVOQyAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERBQzEyIGVuYWJsZSBjb252ZXJzaW9uICovCisjZGVmaW5lIERBQzEySUZHICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogREFDMTIgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgREFDMTJJRSAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBEQUMxMiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIERBQzEyREYgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogREFDMTIgZGF0YSBmb3JtYXQgKi8KKyNkZWZpbmUgREFDMTJBTVAwICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJBTVAxICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDEgKi8KKyNkZWZpbmUgREFDMTJBTVAyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDIgKi8KKyNkZWZpbmUgREFDMTJJUiAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBEQUMxMiBpbnB1dCByZWZlcmVuY2UgYW5kIG91dHB1dCByYW5nZSAqLworI2RlZmluZSBEQUMxMkNBTE9OICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERBQzEyIGNhbGlicmF0aW9uICovCisjZGVmaW5lIERBQzEyTFNFTDAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJMU0VMMSAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBEQUMxMlJFUyAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIERBQzEyIHJlc29sdXRpb24gKi8KKyNkZWZpbmUgREFDMTJTUkVGMCAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBEQUMxMiByZWZlcmVuY2UgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJTUkVGMSAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBEQUMxMiByZWZlcmVuY2UgYml0IDEgKi8KKyNkZWZpbmUgREFDMTJPUFMgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBEQUMxMiBPcGVyYXRpb24gQW1wLiAqLworCisjZGVmaW5lIERBQzEyQU1QXzAgICAgICAgICAgICAgKDAqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDA6IG9mZiwgICAgMy1zdGF0ZSAqLworI2RlZmluZSBEQUMxMkFNUF8xICAgICAgICAgICAgICgxKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAxOiBvZmYsICAgIG9mZiAqLworI2RlZmluZSBEQUMxMkFNUF8yICAgICAgICAgICAgICgyKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAyOiBsb3csICAgIGxvdyAqLworI2RlZmluZSBEQUMxMkFNUF8zICAgICAgICAgICAgICgzKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAzOiBsb3csICAgIG1lZGl1bSAqLworI2RlZmluZSBEQUMxMkFNUF80ICAgICAgICAgICAgICg0KjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciA0OiBsb3csICAgIGhpZ2ggKi8KKyNkZWZpbmUgREFDMTJBTVBfNSAgICAgICAgICAgICAoNSoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNTogbWVkaXVtLCBtZWRpdW0gKi8KKyNkZWZpbmUgREFDMTJBTVBfNiAgICAgICAgICAgICAoNioweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNjogbWVkaXVtLCBoaWdoICovCisjZGVmaW5lIERBQzEyQU1QXzcgICAgICAgICAgICAgKDcqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDc6IGhpZ2gsICAgaGlnaCAqLworCisjZGVmaW5lIERBQzEyTFNFTF8wICAgICAgICAgICAgKDAqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMDogZGlyZWN0ICovCisjZGVmaW5lIERBQzEyTFNFTF8xICAgICAgICAgICAgKDEqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMTogbGF0Y2hlZCB3aXRoIERBVCAqLworI2RlZmluZSBEQUMxMkxTRUxfMiAgICAgICAgICAgICgyKjB4MDQwMHUpICAgIC8qIERBQzEyIGxvYWQgc2VsZWN0IDI6IGxhdGNoZWQgd2l0aCBwb3MuIFRpbWVyX0EzLk9VVDEgKi8KKyNkZWZpbmUgREFDMTJMU0VMXzMgICAgICAgICAgICAoMyoweDA0MDB1KSAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCAzOiBsYXRjaGVkIHdpdGggcG9zLiBUaW1lcl9CNy5PVVQxICovCisKKyNkZWZpbmUgREFDMTJTUkVGXzAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMDogVnJlZisgKi8KKyNkZWZpbmUgREFDMTJTUkVGXzEgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMTogVnJlZisgKi8KKyNkZWZpbmUgREFDMTJTUkVGXzIgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMjogVmVyZWYrICovCisjZGVmaW5lIERBQzEyU1JFRl8zICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogREFDMTIgcmVmZXJlbmNlIDM6IFZlcmVmKyAqLworCitTRlJfMTZCSVQoREFDMTJfMERBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMCBEYXRhICovCitTRlJfMTZCSVQoREFDMTJfMURBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMSBEYXRhICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERNQV9YCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19ETUFYXzNfXyAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRE1BQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIE1vZHVsZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgRE1BMFRTRUwwICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMCAqLworI2RlZmluZSBETUEwVFNFTDEgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IGJpdCAxICovCisjZGVmaW5lIERNQTBUU0VMMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgYml0IDIgKi8KKyNkZWZpbmUgRE1BMFRTRUwzICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMyAqLworI2RlZmluZSBETUExVFNFTDAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IGJpdCAwICovCisjZGVmaW5lIERNQTFUU0VMMSAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgYml0IDEgKi8KKyNkZWZpbmUgRE1BMVRTRUwyICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCBiaXQgMiAqLworI2RlZmluZSBETUExVFNFTDMgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IGJpdCAzICovCisjZGVmaW5lIERNQTJUU0VMMCAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgRE1BMlRTRUwxICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBETUEyVFNFTDIgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IGJpdCAyICovCisjZGVmaW5lIERNQTJUU0VMMyAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDMgKi8KKworI2RlZmluZSBETUEwVFNFTF8wICAgICAgICAgICAgICgwKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDA6ICBETUFfUkVRIChzdykqLworI2RlZmluZSBETUEwVFNFTF8xICAgICAgICAgICAgICgxKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcl9BIChUQUNDUjIuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF8yICAgICAgICAgICAgICgyKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDI6ICBUaW1lcl9CIChUQkNDUjIuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF8zICAgICAgICAgICAgICgzKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDM6ICBVU0NJQTAgcmVjZWl2ZSAqLworI2RlZmluZSBETUEwVFNFTF80ICAgICAgICAgICAgICg0KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDQ6ICBVU0NJQTAgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMFRTRUxfNSAgICAgICAgICAgICAoNSoweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCA1OiAgREFDMTJfMENUTC5EQUMxMklGRyAqLworI2RlZmluZSBETUEwVFNFTF82ICAgICAgICAgICAgICg2KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDY6ICBBREMxMiAoQURDMTJJRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzcgICAgICAgICAgICAgKDcqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgNzogIFRpbWVyX0EgKFRBQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzggICAgICAgICAgICAgKDgqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgODogIFRpbWVyX0IgKFRCQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzkgICAgICAgICAgICAgKDkqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgOTogIFVTQ0lBMSByZWNlaXZlICovCisjZGVmaW5lIERNQTBUU0VMXzEwICAgICAgICAgICAgKDEwKjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTA6IFVTQ0lBMSB0cmFuc21pdCAqLworI2RlZmluZSBETUEwVFNFTF8xMSAgICAgICAgICAgICgxMSoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDExOiBNdWx0aXBsaWVyIHJlYWR5ICovCisjZGVmaW5lIERNQTBUU0VMXzEyICAgICAgICAgICAgKDEyKjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTI6IFVTQ0lCMCByZWNlaXZlICovCisjZGVmaW5lIERNQTBUU0VMXzEzICAgICAgICAgICAgKDEzKjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTM6IFVTQ0lCMCB0cmFuc21pdCAqLworI2RlZmluZSBETUEwVFNFTF8xNCAgICAgICAgICAgICgxNCoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE0OiBwcmV2aW91cyBETUEgY2hhbm5lbCBETUEySUZHICovCisjZGVmaW5lIERNQTBUU0VMXzE1ICAgICAgICAgICAgKDE1KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTU6IGV4dC4gVHJpZ2dlciAoRE1BRTApICovCisKKyNkZWZpbmUgRE1BMVRTRUxfMCAgICAgICAgICAgICAoMCoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAwOiAgRE1BX1JFUSAqLworI2RlZmluZSBETUExVFNFTF8xICAgICAgICAgICAgICgxKjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcl9BIENDUklGRy4yICovCisjZGVmaW5lIERNQTFUU0VMXzIgICAgICAgICAgICAgKDIqMHgwMDEwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjogIFRpbWVyX0IgQ0NSSUZHLjIgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMyAgICAgICAgICAgICAoMyoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAzOiAgVVNDSUEwIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMVRTRUxfNCAgICAgICAgICAgICAoNCoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCA0OiAgVVNDSUEwIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTFUU0VMXzUgICAgICAgICAgICAgKDUqMHgwMDEwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgNTogIERBQzEyLjBJRkcgKi8KKyNkZWZpbmUgRE1BMVRTRUxfNiAgICAgICAgICAgICAoNioweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCA2OiAgQURDMTIgKEFEQzEySUZHKSAqLworI2RlZmluZSBETUExVFNFTF83ICAgICAgICAgICAgICg3KjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDc6ICBUaW1lcl9BIChUQUNDUjAuSUZHKSAqLworI2RlZmluZSBETUExVFNFTF84ICAgICAgICAgICAgICg4KjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDg6ICBUaW1lcl9CIChUQkNDUjAuSUZHKSAqLworI2RlZmluZSBETUExVFNFTF85ICAgICAgICAgICAgICg5KjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDk6ICBVU0NJQTEgcmVjZWl2ZSAqLworI2RlZmluZSBETUExVFNFTF8xMCAgICAgICAgICAgICgxMCoweDAwMTB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDEwOiBVU0NJQTEgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMTEgICAgICAgICAgICAoMTEqMHgwMDEwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAxMTogTXVsdGlwbGllciByZWFkeSAqLworI2RlZmluZSBETUExVFNFTF8xMiAgICAgICAgICAgICgxMioweDAwMTB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDEyOiBVU0NJQjAgcmVjZWl2ZSAqLworI2RlZmluZSBETUExVFNFTF8xMyAgICAgICAgICAgICgxMyoweDAwMTB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDEzOiBVU0NJQjAgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMTQgICAgICAgICAgICAoMTQqMHgwMDEwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAxNDogcHJldmlvdXMgRE1BIGNoYW5uZWwgRE1BMElGRyAqLworI2RlZmluZSBETUExVFNFTF8xNSAgICAgICAgICAgICgxNSoweDAwMTB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE1OiBleHQuIFRyaWdnZXIgKERNQUUwKSAqLworCisjZGVmaW5lIERNQTJUU0VMXzAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMDogIERNQV9SRVEgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMSAgICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxOiAgVGltZXJfQSBDQ1JJRkcuMiAqLworI2RlZmluZSBETUEyVFNFTF8yICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDI6ICBUaW1lcl9CIENDUklGRy4yICovCisjZGVmaW5lIERNQTJUU0VMXzMgICAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMzogIFVTQ0lBMCByZWNlaXZlICovCisjZGVmaW5lIERNQTJUU0VMXzQgICAgICAgICAgICAgKDQqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgNDogIFVTQ0lBMCB0cmFuc21pdCAqLworI2RlZmluZSBETUEyVFNFTF81ICAgICAgICAgICAgICg1KjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDU6ICBEQUMxMi4wSUZHICovCisjZGVmaW5lIERNQTJUU0VMXzYgICAgICAgICAgICAgKDYqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgNjogIEFEQzEyIChBREMxMklGRykgKi8KKyNkZWZpbmUgRE1BMlRTRUxfNyAgICAgICAgICAgICAoNyoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA3OiAgVGltZXJfQSAoVEFDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMlRTRUxfOCAgICAgICAgICAgICAoOCoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA4OiAgVGltZXJfQiAoVEJDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMlRTRUxfOSAgICAgICAgICAgICAoOSoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA5OiAgVVNDSUExIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTAgICAgICAgICAgICAoMTAqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxMDogVVNDSUExIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTJUU0VMXzExICAgICAgICAgICAgKDExKjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMTE6IE11bHRpcGxpZXIgcmVhZHkgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTIgICAgICAgICAgICAoMTIqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxMjogVVNDSUIwIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTMgICAgICAgICAgICAoMTMqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxMzogVVNDSUIwIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTJUU0VMXzE0ICAgICAgICAgICAgKDE0KjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMTQ6IHByZXZpb3VzIERNQSBjaGFubmVsIERNQTFJRkcgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTUgICAgICAgICAgICAoMTUqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxNTogZXh0LiBUcmlnZ2VyIChETUFFMCkgKi8KKworU0ZSXzE2QklUKERNQUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBNb2R1bGUgQ29udHJvbCAxICovCisjZGVmaW5lIEVOTk1JICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRW5hYmxlIE5NSSBpbnRlcnJ1cHRpb24gb2YgRE1BICovCisjZGVmaW5lIFJPVU5EUk9CSU4gICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogUm91bmQtUm9iaW4gRE1BIGNoYW5uZWwgcHJpb3JpdGllcyAqLworI2RlZmluZSBETUFPTkZFVENIICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQSB0cmFuc2ZlciBvbiBpbnN0cnVjdGlvbiBmZXRjaCAqLworCitTRlJfMTZCSVQoRE1BSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKERNQTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgQ29udHJvbCAqLworU0ZSXzE2QklUKERNQTFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgQ29udHJvbCAqLworU0ZSXzE2QklUKERNQTJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgQ29udHJvbCAqLworCisjZGVmaW5lIERNQVJFUSAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSW5pdGlhdGUgRE1BIHRyYW5zZmVyIHdpdGggRE1BVFNFTCAqLworI2RlZmluZSBETUFBQk9SVCAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERNQSB0cmFuc2ZlciBhYm9ydGVkIGJ5IE5NSSAqLworI2RlZmluZSBETUFJRSAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIERNQUlGRyAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRE1BIGludGVycnVwdCBmbGFnICovCisjZGVmaW5lIERNQUVOICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRE1BIGVuYWJsZSAqLworI2RlZmluZSBETUFMRVZFTCAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIERNQSBsZXZlbCBzZW5zaXRpdmUgdHJpZ2dlciBzZWxlY3QgKi8KKyNkZWZpbmUgRE1BU1JDQllURSAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBETUEgc291cmNlIGJ5dGUgKi8KKyNkZWZpbmUgRE1BRFNUQllURSAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBETUEgZGVzdGluYXRpb24gYnl0ZSAqLworI2RlZmluZSBETUFTUkNJTkNSMCAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IGJpdCAwICovCisjZGVmaW5lIERNQVNSQ0lOQ1IxICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogRE1BIHNvdXJjZSBpbmNyZW1lbnQgYml0IDEgKi8KKyNkZWZpbmUgRE1BRFNUSU5DUjAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IGJpdCAwICovCisjZGVmaW5lIERNQURTVElOQ1IxICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCBiaXQgMSAqLworI2RlZmluZSBETUFEVDAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIGJpdCAwICovCisjZGVmaW5lIERNQURUMSAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgYml0IDEgKi8KKyNkZWZpbmUgRE1BRFQyICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSBiaXQgMiAqLworCisjZGVmaW5lIERNQVNXRFcgICAgICAgICAgICAgICAgKDAqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2Ugd29yZCB0byBkZXN0aW5hdGlvbiB3b3JkICovCisjZGVmaW5lIERNQVNCRFcgICAgICAgICAgICAgICAgKDEqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2UgYnl0ZSB0byBkZXN0aW5hdGlvbiB3b3JkICovCisjZGVmaW5lIERNQVNXREIgICAgICAgICAgICAgICAgKDIqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2Ugd29yZCB0byBkZXN0aW5hdGlvbiBieXRlICovCisjZGVmaW5lIERNQVNCREIgICAgICAgICAgICAgICAgKDMqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2UgYnl0ZSB0byBkZXN0aW5hdGlvbiBieXRlICovCisKKyNkZWZpbmUgRE1BU1JDSU5DUl8wICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCAwOiBzb3VyY2UgYWRkcmVzcyB1bmNoYW5nZWQgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUl8xICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCAxOiBzb3VyY2UgYWRkcmVzcyB1bmNoYW5nZWQgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUl8yICAgICAgICAgICAoMioweDAxMDB1KSAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCAyOiBzb3VyY2UgYWRkcmVzcyBkZWNyZW1lbnRlZCAqLworI2RlZmluZSBETUFTUkNJTkNSXzMgICAgICAgICAgICgzKjB4MDEwMHUpICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IDM6IHNvdXJjZSBhZGRyZXNzIGluY3JlbWVudGVkICovCisKKyNkZWZpbmUgRE1BRFNUSU5DUl8wICAgICAgICAgICAoMCoweDA0MDB1KSAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IDA6IGRlc3RpbmF0aW9uIGFkZHJlc3MgdW5jaGFuZ2VkICovCisjZGVmaW5lIERNQURTVElOQ1JfMSAgICAgICAgICAgKDEqMHgwNDAwdSkgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCAxOiBkZXN0aW5hdGlvbiBhZGRyZXNzIHVuY2hhbmdlZCAqLworI2RlZmluZSBETUFEU1RJTkNSXzIgICAgICAgICAgICgyKjB4MDQwMHUpICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgMjogZGVzdGluYXRpb24gYWRkcmVzcyBkZWNyZW1lbnRlZCAqLworI2RlZmluZSBETUFEU1RJTkNSXzMgICAgICAgICAgICgzKjB4MDQwMHUpICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgMzogZGVzdGluYXRpb24gYWRkcmVzcyBpbmNyZW1lbnRlZCAqLworCisjZGVmaW5lIERNQURUXzAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgMDogc2luZ2xlICovCisjZGVmaW5lIERNQURUXzEgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgMTogYmxvY2sgKi8KKyNkZWZpbmUgRE1BRFRfMiAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSAyOiBpbnRlcmxlYXZlZCAqLworI2RlZmluZSBETUFEVF8zICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDM6IGludGVybGVhdmVkICovCisjZGVmaW5lIERNQURUXzQgICAgICAgICAgICAgICAgKDQqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgNDogc2luZ2xlLCByZXBlYXQgKi8KKyNkZWZpbmUgRE1BRFRfNSAgICAgICAgICAgICAgICAoNSoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSA1OiBibG9jaywgcmVwZWF0ICovCisjZGVmaW5lIERNQURUXzYgICAgICAgICAgICAgICAgKDYqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgNjogaW50ZXJsZWF2ZWQsIHJlcGVhdCAqLworI2RlZmluZSBETUFEVF83ICAgICAgICAgICAgICAgICg3KjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDc6IGludGVybGVhdmVkLCByZXBlYXQgKi8KKworU0ZSXzIwQklUKERNQTBTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgU291cmNlIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUEwU0FMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAwIFNvdXJjZSBBZGRyZXNzICovCitTRlJfMjBCSVQoRE1BMERBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMCBEZXN0aW5hdGlvbiBBZGRyZXNzICovCitTRlJfMTZCSVQoRE1BMERBTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMCBEZXN0aW5hdGlvbiBBZGRyZXNzICovCitTRlJfMTZCSVQoRE1BMFNaKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMCBUcmFuc2ZlciBTaXplICovCitTRlJfMjBCSVQoRE1BMVNBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMSBTb3VyY2UgQWRkcmVzcyAqLworU0ZSXzE2QklUKERNQTFTQUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgU291cmNlIEFkZHJlc3MgKi8KK1NGUl8yMEJJVChETUExREEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUExREFMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUExU1opOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIFRyYW5zZmVyIFNpemUgKi8KK1NGUl8yMEJJVChETUEyU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAyIFNvdXJjZSBBZGRyZXNzICovCitTRlJfMTZCSVQoRE1BMlNBTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMiBTb3VyY2UgQWRkcmVzcyAqLworU0ZSXzIwQklUKERNQTJEQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgRGVzdGluYXRpb24gQWRkcmVzcyAqLworU0ZSXzE2QklUKERNQTJEQUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgRGVzdGluYXRpb24gQWRkcmVzcyAqLworU0ZSXzE2QklUKERNQTJTWik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgVHJhbnNmZXIgU2l6ZSAqLworCisvKiBETUFJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBETUFJVl9OT05FICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIERNQUlWX0RNQTBJRkcgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRE1BMElGRyAqLworI2RlZmluZSBETUFJVl9ETUExSUZHICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQTFJRkcgKi8KKyNkZWZpbmUgRE1BSVZfRE1BMklGRyAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBETUEySUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIMl9fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KK1NGUl8xNkJJVChGQ1RMNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDQgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIEVFSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRW5hYmxlIEVyYXNlIEludGVycnVwdHMgKi8KKyNkZWZpbmUgRUVJRVggICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBFbmFibGUgRW1lcmdlbmN5IEludGVycnVwdCBFeGl0ICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKyNkZWZpbmUgTE9DS0EgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTZWdtZW50IEEgTG9jayBiaXQ6IHJlYWQgPSAxIC0gU2VnbWVudCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRkFJTCAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBMYXN0IFByb2dyYW0gb3IgRXJhc2UgZmFpbGVkICovCisKKyNkZWZpbmUgTUdSMCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBNYXJnaW5hbCByZWFkIDAgbW9kZS4gKi8KKyNkZWZpbmUgTUdSMSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBNYXJnaW5hbCByZWFkIDEgbW9kZS4gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBIQVJEV0FSRSBNVUxUSVBMSUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19NUFlfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoTVBZKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTVBZUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQ1MpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChPUDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl8xNkJJVChSRVNMTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl8xNkJJVChSRVNISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgSGlnaCBXb3JkICovCitTRlJfMTZCSVQoU1VNRVhUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VtIEV4dGVuZCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCitTRlJfOEJJVChQMVJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFJlc2lzdG9yIEVuYWJsZSAqLworCitTRlJfOEJJVChQMklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIElucHV0ICovCitTRlJfOEJJVChQMk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIE91dHB1dCAqLworU0ZSXzhCSVQoUDJESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAySUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAyU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uICovCitTRlJfOEJJVChQMlJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFJlc2lzdG9yIEVuYWJsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQzLzQgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQzX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNF9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQM0lOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIElucHV0ICovCitTRlJfOEJJVChQM09VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIE91dHB1dCAqLworU0ZSXzhCSVQoUDNESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAzU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgU2VsZWN0aW9uICovCitTRlJfOEJJVChQM1JFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFJlc2lzdG9yIEVuYWJsZSAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCitTRlJfOEJJVChQNFJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFJlc2lzdG9yIEVuYWJsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQ1LzYgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ1X1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNl9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQNUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IElucHV0ICovCitTRlJfOEJJVChQNU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IE91dHB1dCAqLworU0ZSXzhCSVQoUDVESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA1U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgU2VsZWN0aW9uICovCitTRlJfOEJJVChQNVJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IFJlc2lzdG9yIEVuYWJsZSAqLworCitTRlJfOEJJVChQNklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IElucHV0ICovCitTRlJfOEJJVChQNk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IE91dHB1dCAqLworU0ZSXzhCSVQoUDZESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA2U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgU2VsZWN0aW9uICovCitTRlJfOEJJVChQNlJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFJlc2lzdG9yIEVuYWJsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQ3LzggUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ3X1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUOF9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVEFfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDdJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNyBJbnB1dCAqLworU0ZSXzhCSVQoUDdPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNyBPdXRwdXQgKi8KK1NGUl84QklUKFA3RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgRGlyZWN0aW9uICovCitTRlJfOEJJVChQN1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA3IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDdSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNyBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDhJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgOCBJbnB1dCAqLworU0ZSXzhCSVQoUDhPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgOCBPdXRwdXQgKi8KK1NGUl84QklUKFA4RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggRGlyZWN0aW9uICovCitTRlJfOEJJVChQOFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA4IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDhSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgOCBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzE2QklUKFBBSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBJbnB1dCAqLworU0ZSXzE2QklUKFBBT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBPdXRwdXQgKi8KK1NGUl8xNkJJVChQQURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgRGlyZWN0aW9uICovCitTRlJfMTZCSVQoUEFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIFNlbGVjdGlvbiAqLworU0ZSXzE2QklUKFBBUkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCcm93bi1PdXQsIFN1cHBseSBWb2x0YWdlIFN1cGVydmlzaW9uIChTVlMpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19TVlNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTVlNDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU1ZTIENvbnRyb2wgKi8KKyNkZWZpbmUgU1ZTRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTVlMgRmxhZyAqLworI2RlZmluZSBTVlNPUCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNWUyBvdXRwdXQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgU1ZTT04gICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTd2l0Y2hlcyB0aGUgU1ZTIG9uL29mZiAqLworI2RlZmluZSBQT1JPTiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEVuYWJsZSBQT1IgR2VuZXJhdGlvbiBpZiBMb3cgVm9sdGFnZSAqLworI2RlZmluZSBWTEQwICAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTEQxICAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBWTEQyICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBWTEQzICAgICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIFZMRE9OICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRE9GRiAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIFZMRF8xXzhWICAgICAgICAgICAgICAgKDB4MTApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBCNworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEI3X18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRCSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDb250cm9sICovCitTRlJfMTZCSVQoVEJDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEJDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEJDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEJDQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAzICovCitTRlJfMTZCSVQoVEJDQ1RMNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA0ICovCitTRlJfMTZCSVQoVEJDQ1RMNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA1ICovCitTRlJfMTZCSVQoVEJDQ1RMNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA2ICovCitTRlJfMTZCSVQoVEJSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiAqLworU0ZSXzE2QklUKFRCQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQkNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEJDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMiAqLworU0ZSXzE2QklUKFRCQ0NSMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDMgKi8KK1NGUl8xNkJJVChUQkNDUjQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSA0ICovCitTRlJfMTZCSVQoVEJDQ1I1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgNSAqLworU0ZSXzE2QklUKFRCQ0NSNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDYgKi8KKworI2RlZmluZSBUQkNMR1JQMSAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgVEJDTEdSUDAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisjZGVmaW5lIENOVEwxICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMSAqLworI2RlZmluZSBDTlRMMCAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDAgKi8KKyNkZWZpbmUgVEJTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMSAqLworI2RlZmluZSBUQlNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAwICovCisjZGVmaW5lIFRCQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQiBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRCSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRCSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIFNIUjEgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBTSFIwICAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKworI2RlZmluZSBUQlNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogVEJDTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzEgICAgICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IEFDTEsgICovCisjZGVmaW5lIFRCU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBTTUNMSyAqLworI2RlZmluZSBUQlNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogSU5DTEsgKi8KKyNkZWZpbmUgQ05UTF8wICAgICAgICAgICAgICAgICAoMCoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTYgYml0ICovCisjZGVmaW5lIENOVExfMSAgICAgICAgICAgICAgICAgKDEqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEyIGJpdCAqLworI2RlZmluZSBDTlRMXzIgICAgICAgICAgICAgICAgICgyKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMCBiaXQgKi8KKyNkZWZpbmUgQ05UTF8zICAgICAgICAgICAgICAgICAoMyoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogIDggYml0ICovCisjZGVmaW5lIFNIUl8wICAgICAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBTSFJfMSAgICAgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgU0hSXzIgICAgICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFNIUl8zICAgICAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKyNkZWZpbmUgVEJDTEdSUF8wICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFRCQ0xHUlBfMSAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBUQkNMR1JQXzIgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgVEJDTEdSUF8zICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworCisvKiBBZGRpdGlvbmFsIFRpbWVyIEIgQ29udHJvbCBSZWdpc3RlciBiaXRzIGFyZSBkZWZpbmVkIGluIFRpbWVyIEEgKi8KKyNkZWZpbmUgQ0xMRDEgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgQ0xMRDAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUjEgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBTTFNIUjAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSXzAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgU0xTSFJfMSAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBTTFNIUl8yICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBTTFNIUl8zICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworI2RlZmluZSBDTExEXzAgICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIENMTERfMSAgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgQ0xMRF8yICAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgQ0xMRF8zICAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKy8qIFRCN0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRCSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQkNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQkNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjMgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBUQkNDUjNfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjQgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBUQkNDUjRfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjUgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQkNDUjNfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjYgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBUQkNDUjRfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQklGRyAgICAgICAgICAgICAoMHgwMDBFKSAgICAgICAvKiBUQklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQ0kKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VTQ0lfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0NJX0FCMF9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VTQ0lfQUIxX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVQ0EwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQTBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNBMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQTBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0EwTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBTVEFUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFN0YXR1cyBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNBMFJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFRyYW5zbWl0IEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNBMEFCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTElOIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBMElSUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgSXJEQSBSZWNlaXZlIENvbnRyb2wgKi8KKworCisKK1NGUl84QklUKFVDQjBDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVUNCMENUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfOEJJVChVQ0IwQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVUNCMEJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFVDQjBJMkNJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQjBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0IwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl8xNkJJVChVQ0IwSTJDT0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBPd24gQWRkcmVzcyAqLworU0ZSXzE2QklUKFVDQjBJMkNTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgSTJDIFNsYXZlIEFkZHJlc3MgKi8KKworU0ZSXzhCSVQoVUNBMUNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0ExQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTFCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0ExQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBMU1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0ExU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTFSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0ExVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTFBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0ExSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTFJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IxQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjFDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMUJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjFCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IxSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMVNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IxUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMVRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfMTZCSVQoVUNCMUkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IxSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEkyQyBTbGF2ZSBBZGRyZXNzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDUEVOICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgVUNQQVIgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5ICAgICAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBVQ01TQiAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBNU0IgZmlyc3QgIDA6TFNCIC8gMTpNU0IgKi8KKyNkZWZpbmUgVUM3QklUICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogRGF0YSBCaXRzICAwOjgtYml0cyAvIDE6Ny1iaXRzICovCisjZGVmaW5lIFVDU1BCICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFN0b3AgQml0cyAgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgVUNNT0RFMSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDEgKi8KKyNkZWZpbmUgVUNNT0RFMCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDAgKi8KKyNkZWZpbmUgVUNTWU5DICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTeW5jLU1vZGUgIDA6VUFSVC1Nb2RlIC8gMTpTUEktTW9kZSAqLworCisvLyBTUEktTW9kZSBCaXRzCisjZGVmaW5lIFVDQ0tQSCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU3luYy4gTW9kZTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgVUNDS1BMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBVQ01TVCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IE1hc3RlciBTZWxlY3QgKi8KKworLy8gSTJDLU1vZGUgQml0cworI2RlZmluZSBVQ0ExMCAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIDEwLWJpdCBBZGRyZXNzIE1vZGUgKi8KKyNkZWZpbmUgVUNTTEExMCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxMC1iaXQgU2xhdmUgQWRkcmVzcyBNb2RlICovCisjZGVmaW5lIFVDTU0gICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTXVsdGktTWFzdGVyIEVudmlyb25tZW50ICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDTU9ERV8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAwICovCisjZGVmaW5lIFVDTU9ERV8xICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAxICovCisjZGVmaW5lIFVDTU9ERV8yICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAyICovCisjZGVmaW5lIFVDTU9ERV8zICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDU1NFTDEgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBVQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNSWEVJRSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQlJLSUUgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgaW50ZXJydXB0IGVuYWJsZSAqLyAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDRE9STSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRG9ybWFudCAoU2xlZXApIE1vZGUgKi8KKyNkZWZpbmUgVUNUWEFERFIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBBZGRyZXNzICovCisjZGVmaW5lIFVDVFhCUksgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VuZCBuZXh0IERhdGEgYXMgQnJlYWsgKi8KKyNkZWZpbmUgVUNTV1JTVCAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIFNvZnR3YXJlIFJlc2V0ICovCisKKy8vIFNQSS1Nb2RlIEJpdHMKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwOCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwNCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwMikgICAgLyogcmVzZXJ2ZWQgKi8KKworLy8gSTJDLU1vZGUgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ1RSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFRyYW5zbWl0L1JlY2VpdmUgU2VsZWN0L0ZsYWcgKi8KKyNkZWZpbmUgVUNUWE5BQ0sgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBUcmFuc21pdCBOQUNLICovCisjZGVmaW5lIFVDVFhTVFAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVHJhbnNtaXQgU1RPUCAqLworI2RlZmluZSBVQ1RYU1RUICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFRyYW5zbWl0IFNUQVJUICovCisjZGVmaW5lIFVDU1NFTF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMCAqLworI2RlZmluZSBVQ1NTRUxfMSAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDEgKi8KKyNkZWZpbmUgVUNTU0VMXzIgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAyICovCisjZGVmaW5lIFVDU1NFTF8zICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMyAqLworCisjZGVmaW5lIFVDQlJGMyAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAzICovCisjZGVmaW5lIFVDQlJGMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDQlJGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDQlJTMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMiAqLworI2RlZmluZSBVQ0JSUzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUlMwICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDT1MxNiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSAxNi10aW1lcyBPdmVyc2FtcGxpbmcgZW5hYmxlICovCisKKyNkZWZpbmUgVUNCUkZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUkZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUkZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDIgKi8KKyNkZWZpbmUgVUNCUkZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUkZfNCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUkZfNSAgICAgICAgICAgICAgICAoMHg1MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDUgKi8KKyNkZWZpbmUgVUNCUkZfNiAgICAgICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUkZfNyAgICAgICAgICAgICAgICAoMHg3MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKyNkZWZpbmUgVUNCUkZfOCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDggKi8KKyNkZWZpbmUgVUNCUkZfOSAgICAgICAgICAgICAgICAoMHg5MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDkgKi8KKyNkZWZpbmUgVUNCUkZfMTAgICAgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEEgKi8KKyNkZWZpbmUgVUNCUkZfMTEgICAgICAgICAgICAgICAoMHhCMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEIgKi8KKyNkZWZpbmUgVUNCUkZfMTIgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEMgKi8KKyNkZWZpbmUgVUNCUkZfMTMgICAgICAgICAgICAgICAoMHhEMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEQgKi8KKyNkZWZpbmUgVUNCUkZfMTQgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEUgKi8KKyNkZWZpbmUgVUNCUkZfMTUgICAgICAgICAgICAgICAoMHhGMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEYgKi8KKworI2RlZmluZSBVQ0JSU18wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUlNfMSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAxICovCisjZGVmaW5lIFVDQlJTXzIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSU18zICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUlNfNCAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA0ICovCisjZGVmaW5lIFVDQlJTXzUgICAgICAgICAgICAgICAgKDB4MEEpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSU182ICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUlNfNyAgICAgICAgICAgICAgICAoMHgwRSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA3ICovCisKKyNkZWZpbmUgVUNMSVNURU4gICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFVDRkUgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGcmFtZSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDT0UgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBPdmVycnVuIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNQRSAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIFBhcml0eSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQlJLICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBCcmVhayByZWNlaXZlZCAqLworI2RlZmluZSBVQ1JYRVJSICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgUlggRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ0FERFIgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgQWRkcmVzcyByZWNlaXZlZCBGbGFnICovCisjZGVmaW5lIFVDQlVTWSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNJRExFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIElkbGUgbGluZSBkZXRlY3RlZCBGbGFnICovCisKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg4MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg0MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNOQUNLSUUgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUNLIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RQSUUgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ1NUVElFICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQUxJRSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXJiaXRyYXRpb24gTG9zdCBpbnRlcnJ1cHQgZW5hYmxlICovCisKKyNkZWZpbmUgVUNTQ0xMT1cgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTQ0wgbG93ICovCisjZGVmaW5lIFVDR0MgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogR2VuZXJhbCBDYWxsIGFkZHJlc3MgcmVjZWl2ZWQgRmxhZyAqLworI2RlZmluZSBVQ0JCVVNZICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJ1cyBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNOQUNLSUZHICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUsgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDU1RQSUZHICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFRJRkcgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVEFSVCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNBTElGRyAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBMb3N0IGludGVycnVwdCBGbGFnICovCisKKyNkZWZpbmUgVUNJUlRYUEw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJUWFBMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSVFhQTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlRYUEwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJUWFBMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSVFhQTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlRYQ0xLICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIENsb2NrIFNlbGVjdCAqLworI2RlZmluZSBVQ0lSRU4gICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIElSREEgRW5jb2Rlci9EZWNvZGVyIGVuYWJsZSAqLworCisjZGVmaW5lIFVDSVJSWEZMNSAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNSAqLworI2RlZmluZSBVQ0lSUlhGTDQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDQgKi8KKyNkZWZpbmUgVUNJUlJYRkwzICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAzICovCisjZGVmaW5lIFVDSVJSWEZMMiAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMiAqLworI2RlZmluZSBVQ0lSUlhGTDEgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDEgKi8KKyNkZWZpbmUgVUNJUlJYRkwwICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAwICovCisjZGVmaW5lIFVDSVJSWFBMICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIElucHV0IFBvbGFyaXR5ICovCisjZGVmaW5lIFVDSVJSWEZFICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBlbmFibGUgKi8KKworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDgwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDQwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0RFTElNMSAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDEgKi8KKyNkZWZpbmUgVUNERUxJTTAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBTeW5jIERlbGltaXRlciAwICovCisjZGVmaW5lIFVDU1RPRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy1GaWVsZCBUaW1lb3V0IGVycm9yICovCisjZGVmaW5lIFVDQlRPRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQnJlYWsgVGltZW91dCBlcnJvciAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0FCREVOICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEF1dG8gQmF1ZCBSYXRlIGRldGVjdCBlbmFibGUgKi8KKworI2RlZmluZSBVQ0dDRU4gICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEkyQyBHZW5lcmFsIENhbGwgZW5hYmxlICovCisjZGVmaW5lIFVDT0E5ICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNPQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOCAqLworI2RlZmluZSBVQ09BNyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDT0E2ICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNPQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNSAqLworI2RlZmluZSBVQ09BNCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDT0EzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNPQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMiAqLworI2RlZmluZSBVQ09BMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAxICovCisjZGVmaW5lIFVDT0EwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDAgKi8KKworI2RlZmluZSBVQ1NBOSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNTQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDU0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNyAqLworI2RlZmluZSBVQ1NBNiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNTQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDU0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNCAqLworI2RlZmluZSBVQ1NBMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNTQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAyICovCisjZGVmaW5lIFVDU0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMSAqLworI2RlZmluZSBVQ1NBMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFRMViBDYWxpYnJhdGlvbiBEYXRhIFN0cnVjdHVyZSAqLworI2RlZmluZSBUQUdfRENPXzMwICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRhZyBmb3IgRENPMzAgIENhbGlicmF0aW9uIERhdGEgKi8KKyNkZWZpbmUgVEFHX0FEQzEyXzEgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBUYWcgZm9yIEFEQzEyXzEgQ2FsaWJyYXRpb24gRGF0YSAqLworI2RlZmluZSBUQUdfRU1QVFkgICAgICAgICAgICAgICgweEZFKSAgICAgICAgIC8qIFRhZyBmb3IgRW1wdHkgRGF0YSBGaWVsZCBpbiBDYWxpYnJhdGlvbiBEYXRhICovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorU0ZSXzE2QklUKFRMVl9DSEVDS1NVTSk7ICAgICAgICAgICAgICAgICAgICAgIC8qIFRMViBDSEVDSyBTVU0gKi8KK1NGUl84QklUKFRMVl9EQ09fMzBfVEFHKTsgICAgICAgICAgICAgICAgICAgICAvKiBUTFYgVEFHX0RDTzMwIFRBRyAqLworU0ZSXzhCSVQoVExWX0RDT18zMF9MRU4pOyAgICAgICAgICAgICAgICAgICAgIC8qIFRMViBUQUdfRENPMzAgTEVOICovCitTRlJfOEJJVChUTFZfQURDMTJfMV9UQUcpOyAgICAgICAgICAgICAgICAgICAgLyogVExWIEFEQzEyXzEgVEFHICovCitTRlJfOEJJVChUTFZfQURDMTJfMV9MRU4pOyAgICAgICAgICAgICAgICAgICAgLyogVExWIEFEQzEyXzEgTEVOICovCisjZW5kaWYKKworI2RlZmluZSBDQUxfQURDXzI1VDg1ICAgICAgICAgICgweDAwMDcpICAgICAgIC8qIEluZGV4IGZvciAyLjVWLzg1RGVnIENhbC4gVmFsdWUgKi8KKyNkZWZpbmUgQ0FMX0FEQ18yNVQzMCAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBJbmRleCBmb3IgMi41Vi8zMERlZyBDYWwuIFZhbHVlICovCisjZGVmaW5lIENBTF9BRENfMjVWUkVGX0ZBQ1RPUiAgKDB4MDAwNSkgICAgICAgLyogSW5kZXggZm9yIDIuNVYgUmVmLiBGYWN0b3IgKi8KKyNkZWZpbmUgQ0FMX0FEQ18xNVQ4NSAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJbmRleCBmb3IgMS41Vi84NURlZyBDYWwuIFZhbHVlICovCisjZGVmaW5lIENBTF9BRENfMTVUMzAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogSW5kZXggZm9yIDEuNVYvMzBEZWcgQ2FsLiBWYWx1ZSAqLworI2RlZmluZSBDQUxfQURDXzE1VlJFRl9GQUNUT1IgICgweDAwMDIpICAgICAgIC8qIEluZGV4IGZvciBBREMgMS41ViBSZWYuIEZhY3RvciAqLworI2RlZmluZSBDQUxfQURDX09GRlNFVCAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEluZGV4IGZvciBBREMgT2Zmc2V0ICovCisjZGVmaW5lIENBTF9BRENfR0FJTl9GQUNUT1IgICAgKDB4MDAwMCkgICAgICAgLyogSW5kZXggZm9yIEFEQyBHYWluIEZhY3RvciAqLworCisjZGVmaW5lIENBTF9EQ09fMTZNSFogICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogSW5kZXggZm9yIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KKyNkZWZpbmUgQ0FMX0JDMV8xNk1IWiAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJbmRleCBmb3IgQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworI2RlZmluZSBDQUxfRENPXzEyTUhaICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEluZGV4IGZvciBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCisjZGVmaW5lIENBTF9CQzFfMTJNSFogICAgICAgICAgKDB4MDAwMykgICAgICAgLyogSW5kZXggZm9yIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTJNSHogKi8KKyNkZWZpbmUgQ0FMX0RDT184TUhaICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJbmRleCBmb3IgRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciA4TUh6ICovCisjZGVmaW5lIENBTF9CQzFfOE1IWiAgICAgICAgICAgKDB4MDAwNSkgICAgICAgLyogSW5kZXggZm9yIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworI2RlZmluZSBDQUxfRENPXzFNSFogICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIEluZGV4IGZvciBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDFNSHogKi8KKyNkZWZpbmUgQ0FMX0JDMV8xTUhaICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBJbmRleCBmb3IgQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxTUh6ICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDYWxpYnJhdGlvbiBEYXRhIGluIEluZm8gTWVtCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19EaXNhYmxlQ2FsRGF0YQorCitTRlJfOEJJVChDQUxEQ09fMTZNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogRENPQ1RMICBDYWxpYnJhdGlvbiBEYXRhIGZvciAxNk1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzE2TUhaKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMTZNSHogKi8KK1NGUl84QklUKENBTERDT18xMk1IWik7ICAgICAgICAgICAgICAgICAgICAgICAvKiBEQ09DVEwgIENhbGlicmF0aW9uIERhdGEgZm9yIDEyTUh6ICovCitTRlJfOEJJVChDQUxCQzFfMTJNSFopOyAgICAgICAgICAgICAgICAgICAgICAgLyogQkNTQ1RMMSBDYWxpYnJhdGlvbiBEYXRhIGZvciAxMk1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzhNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgOE1IeiAqLworU0ZSXzhCSVQoQ0FMRENPXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERDT0NUTCAgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworU0ZSXzhCSVQoQ0FMQkMxXzFNSFopOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJDU0NUTDEgQ2FsaWJyYXRpb24gRGF0YSBmb3IgMU1IeiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX0Rpc2FibGVDYWxEYXRhICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZDMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI3ByYWdtYSBkaWFnX3N1cHByZXNzIDExMDcgCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgICAgICAgdm9pZCAqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpID0gKHZvaWQgKikobG9uZykmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pICBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBQTEFDRV9JTlRFUlJVUFQoZnVuYykgICAgICAgICBFTUlUX1BSQUdNQShDT0RFX1NFQ1RJT04oZnVuYywiLnRleHQ6X2lzciIpKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSAgICAgICBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX0lOVEVSUlVQVChmdW5jKQorI2RlZmluZSBSRVNFUlZFRDBfVkVDVE9SICAgICAgICAoMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDMCBSZXNlcnZlZCBJbnQuIFZlY3RvciAwICovCisvKiNkZWZpbmUgUkVTRVJWRUQwX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZDMCBSZXNlcnZlZCBJbnQuIFZlY3RvciAwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDFfVkVDVE9SICAgICAgICAoMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDMiBSZXNlcnZlZCBJbnQuIFZlY3RvciAxICovCisvKiNkZWZpbmUgUkVTRVJWRUQxX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZDMiBSZXNlcnZlZCBJbnQuIFZlY3RvciAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDJfVkVDVE9SICAgICAgICAoMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDNCBSZXNlcnZlZCBJbnQuIFZlY3RvciAyICovCisvKiNkZWZpbmUgUkVTRVJWRUQyX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAyIikgICovIC8qIDB4RkZDNCBSZXNlcnZlZCBJbnQuIFZlY3RvciAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDNfVkVDVE9SICAgICAgICAoMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDNiBSZXNlcnZlZCBJbnQuIFZlY3RvciAzICovCisvKiNkZWZpbmUgUkVTRVJWRUQzX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAzIikgICovIC8qIDB4RkZDNiBSZXNlcnZlZCBJbnQuIFZlY3RvciAzICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDRfVkVDVE9SICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDOCBSZXNlcnZlZCBJbnQuIFZlY3RvciA0ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ0X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA0IikgICovIC8qIDB4RkZDOCBSZXNlcnZlZCBJbnQuIFZlY3RvciA0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDVfVkVDVE9SICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDQSBSZXNlcnZlZCBJbnQuIFZlY3RvciA1ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ1X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA1IikgICovIC8qIDB4RkZDQSBSZXNlcnZlZCBJbnQuIFZlY3RvciA1ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDZfVkVDVE9SICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDQyBSZXNlcnZlZCBJbnQuIFZlY3RvciA2ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ2X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZDQyBSZXNlcnZlZCBJbnQuIFZlY3RvciA2ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDdfVkVDVE9SICAgICAgICAoNyAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZDRSBSZXNlcnZlZCBJbnQuIFZlY3RvciA3ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ3X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA3IikgICovIC8qIDB4RkZDRSBSZXNlcnZlZCBJbnQuIFZlY3RvciA3ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDhfVkVDVE9SICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZEMCBSZXNlcnZlZCBJbnQuIFZlY3RvciA4ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ4X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZEMCBSZXNlcnZlZCBJbnQuIFZlY3RvciA4ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDlfVkVDVE9SICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZEMiBSZXNlcnZlZCBJbnQuIFZlY3RvciA5ICovCisvKiNkZWZpbmUgUkVTRVJWRUQ5X0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA5IikgICovIC8qIDB4RkZEMiBSZXNlcnZlZCBJbnQuIFZlY3RvciA5ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDEwX1ZFQ1RPUiAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZENCBSZXNlcnZlZCBJbnQuIFZlY3RvciAxMCAqLworLyojZGVmaW5lIFJFU0VSVkVEMTBfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRDQgUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VSVkVEMTFfVkVDVE9SICAgICAgICgxMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkQ2IFJlc2VydmVkIEludC4gVmVjdG9yIDExICovCisvKiNkZWZpbmUgUkVTRVJWRUQxMV9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDExIikgICovIC8qIDB4RkZENiBSZXNlcnZlZCBJbnQuIFZlY3RvciAxMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVJWRUQxMl9WRUNUT1IgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRDggUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTIgKi8KKy8qI2RlZmluZSBSRVNFUlZFRDEyX0lTUihmdW5jKSAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkQ4IFJlc2VydmVkIEludC4gVmVjdG9yIDEyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFUlZFRDEzX1ZFQ1RPUiAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZEQSBSZXNlcnZlZCBJbnQuIFZlY3RvciAxMyAqLworLyojZGVmaW5lIFJFU0VSVkVEMTNfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGREEgUmVzZXJ2ZWQgSW50LiBWZWN0b3IgMTMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIERBQzEyX1ZFQ1RPUiAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkRDIERBQzEyICovCisvKiNkZWZpbmUgREFDMTJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZEQyBEQUMxMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgRE1BX1ZFQ1RPUiAgICAgICAgICAgICAgKDE1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGREUgRE1BICovCisvKiNkZWZpbmUgRE1BX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE1IikgICovIC8qIDB4RkZERSBETUEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjFUWF9WRUNUT1IgICAgICAgICgxNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIFVTQ0kgQTEvQjEgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0NJQUIxVFhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTYiKSAgKi8gLyogMHhGRkUwIFVTQ0kgQTEvQjEgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjFSWF9WRUNUT1IgICAgICAgICgxNyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUyIFVTQ0kgQTEvQjEgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQ0lBQjFSWF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNyIpICAqLyAvKiAweEZGRTIgVVNDSSBBMS9CMSBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoMTggKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFNCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTgiKSAgKi8gLyogMHhGRkU0IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDE5ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTYgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE5IikgICovIC8qIDB4RkZFNiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VSVkVEMjBfVkVDVE9SICAgICAgICgyMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkRBIFJlc2VydmVkIEludC4gVmVjdG9yIDIwICovCisvKiNkZWZpbmUgUkVTRVJWRUQyMF9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDIwIikgICovIC8qIDB4RkZEQSBSZXNlcnZlZCBJbnQuIFZlY3RvciAyMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQURDMTJfVkVDVE9SICAgICAgICAgICAgKDIxICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgQURDICovCisvKiNkZWZpbmUgQURDMTJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDIxIikgICovIC8qIDB4RkZFQSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjBUWF9WRUNUT1IgICAgICAgICgyMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFVTQ0kgQTAvQjAgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0NJQUIwVFhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MjIiKSAgKi8gLyogMHhGRkVDIFVTQ0kgQTAvQjAgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjBSWF9WRUNUT1IgICAgICAgICgyMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIFVTQ0kgQTAvQjAgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQ0lBQjBSWF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyMyIpICAqLyAvKiAweEZGRUUgVVNDSSBBMC9CMCBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkExX1ZFQ1RPUiAgICAgICAgICAoMjQgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBUaW1lciBBIENDMS0yLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyNCIpICAqLyAvKiAweEZGRjAgVGltZXIgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICgyNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDI1IikgICovIC8qIDB4RkZGMiBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDI2ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MjYiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMjcgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MjciKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDI4ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtNiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MjgiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTYsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMjkgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyOSIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgzMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQzMCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMzEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MzEiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDI2eCAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDMxeC5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgzMXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTk2Y2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHgzMXguaApAQCAtMCwwICsxLDU3MyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIFN0YW5kYXJkIHJlZ2lzdGVyIGFuZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cworKiBNU1A0MzAgbWljcm9jb250cm9sbGVyLgorKgorKiBUaGlzIGZpbGUgc3VwcG9ydHMgYXNzZW1ibGVyIGFuZCBDIGRldmVsb3BtZW50IGZvcgorKiBNU1A0MzB4MzF4IGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDIuMgorKgorKiBSZXYuIDEuMSwgSW5jbHVkZWQgPEluNDMwLmg+IHJhdGhlciB0aGFuICJJbjQzMC5oIgorKiAgICAgICAgICAgQ2hhbmdlZCBkZWZpbml0aW9uIG9mIExQTTQgYml0cyAoZGV2aWNlIGVmZmVjdCBub3QgY2hhbmdlZCkKKyogICAgICAgICAgIENvcnJlY3RlZCBMUE14X0VYSVQgdG8gcmVmZXJlbmNlIG5ldyBpbnRyaW5zaWMgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0CisqICAgICAgICAgICBUaGUgZmlsZSBjb250ZW50cyB3ZXJlIHJlb3JkZXJlZAorKiBSZXYuIDEuMiwgRW5jbG9zZSBhbGwgI2RlZmluZSBzdGF0ZW1lbnRzIHdpdGggcGFyZW50aGVzZXMKKyogUmV2LiAxLjMsIEFkZGVkIHNmcmIgZm9yIFRDREFUIGFuZCBUQ1BMRAorKiBSZXYuIDEuNCwgUmVtb3ZlZCBpbmNvcnJlY3QgbGFiZWwgJ0JUUkVTRVQnCisqIFJldi4gMi4xLCBBbGlnbm1lbnQgb2YgZGVmaW50aW9ucyBpbiBVc2VycyBHdWlkZSBhbmQgb2YgdmVyc2lvbiBudW1iZXJzCisqIFJldi4gMi4yLCBSZW1vdmVkIGRlZmluaXRpb25zIGZvciBCVFJFU0VUCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHgzMXgKKyNkZWZpbmUgX19tc3A0MzB4MzF4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFAwSUVfMCAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFAwSUVfMSAgICAgICAgICAgICAgICAgKDB4MDgpCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFAwSUZHXzAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFAwSUZHXzEgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVFBJRSAgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAgICAoMHg4MCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQT1JUMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDBJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMCBJbnB1dCAqLworI2RlZmluZSBQMElOXzAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBQMElOXzEgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBQMElOXzIgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBQMElOXzMgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBQMElOXzQgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBQMElOXzUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBQMElOXzYgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBQMElOXzcgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChQME9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAwIE91dHB1dCAqLworI2RlZmluZSBQME9VVF8wICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBQME9VVF8xICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBQME9VVF8yICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBQME9VVF8zICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBQME9VVF80ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBQME9VVF81ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBQME9VVF82ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBQME9VVF83ICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChQMERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAwIERpcmVjdGlvbiAqLworI2RlZmluZSBQMERJUl8wICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBQMERJUl8xICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBQMERJUl8yICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBQMERJUl8zICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBQMERJUl80ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBQMERJUl81ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBQMERJUl82ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBQMERJUl83ICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChQMElGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAwIEludGVycnVwdCBGbGFnICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiBJbnRlcnJ1cHQgRmxhZyAxICovCisvKiAjZGVmaW5lIFAwSUZHXzAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBQMElGR18xICAgICAgICAgICAgIDB4MDIgKi8KKyNkZWZpbmUgUDBJRkdfMiAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgUDBJRkdfMyAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgUDBJRkdfNCAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgUDBJRkdfNSAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgUDBJRkdfNiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgUDBJRkdfNyAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoUDBJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMCBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KKyNkZWZpbmUgUDBJRVNfMCAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgUDBJRVNfMSAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgUDBJRVNfMiAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgUDBJRVNfMyAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgUDBJRVNfNCAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgUDBJRVNfNSAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgUDBJRVNfNiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgUDBJRVNfNyAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoUDBJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMCBJbnRlcnJ1cHQgRW5hYmxlICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKy8qICNkZWZpbmUgUDBJRV8wICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFAwSUVfMSAgICAgICAgICAgICAgMHgwMiAqLworI2RlZmluZSBQMElFXzIgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBQMElFXzMgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBQMElFXzQgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBQMElFXzUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBQMElFXzYgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBQMElFXzcgICAgICAgICAgICAgICAgICgweDgwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIExDRCBSRUdJU1RFUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTENEX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoTENEQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBDb250cm9sICovCisvKiB0aGUgbmFtZXMgb2YgdGhlIG1vZGUgYml0cyBhcmUgZGlmZmVyZW50IGZyb20gdGhlIHNwZWMgKi8KKyNkZWZpbmUgTENET04gICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTENETE9XUiAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTENEU09OICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTENETVgwICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTENETVgxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTENEUDAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgTENEUDEgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgTENEUDIgICAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIERpc3BsYXkgbW9kZXMgY29kZWQgd2l0aCBCaXRzIDItNCAqLworI2RlZmluZSBMQ0RTVEFUSUMgICAgICAgICAgICAgIChMQ0RTT04pCisjZGVmaW5lIExDRDJNVVggICAgICAgICAgICAgICAgKExDRE1YMCtMQ0RTT04pCisjZGVmaW5lIExDRDNNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RTT04pCisjZGVmaW5lIExDRDRNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RNWDArTENEU09OKQorLyogR3JvdXAgc2VsZWN0IGNvZGUgd2l0aCBCaXRzIDUtNyAgICAgICAgICAgICAgICAgICAgIFNlZy5saW5lcyAgIERpZy5vdXRwdXQgKi8KKyNkZWZpbmUgTENEU0cwICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTMCAgLSBTMSAgICBPMiAgLSBPMjkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRFNHMF8xICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzUgICAgTzYgIC0gTzI5ICovCisjZGVmaW5lIExDRFNHMF8yICAgICAgICAgICAgICAgKExDRFAxKSAgICAgICAgLyogUzAgIC0gUzkgICAgTzEwIC0gTzI5ICovCisjZGVmaW5lIExDRFNHMF8zICAgICAgICAgICAgICAgKExDRFAxK0xDRFAwKSAgLyogUzAgIC0gUzEzICAgTzE0IC0gTzI5ICovCisjZGVmaW5lIExDRFNHMF80ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzE3ICAgTzE4IC0gTzI5ICovCisjZGVmaW5lIExDRFNHMF81ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAwKSAgLyogUzAgIC0gUzIxICAgTzIyIC0gTzI5ICovCisjZGVmaW5lIExDRFNHMF82ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAxKSAgLyogUzAgIC0gUzI1ICAgTzI2IC0gTzI5ICovCisjZGVmaW5lIExDRFNHMF83ICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMjkgICAtLS0tLS0tLS0gKi8KKy8qIE5PVEU6IFlPVSBDQU4gT05MWSBVU0UgVEhFICdTJyBPUiAnRycgREVDTEFSQVRJT05TIEZPUiBBIENPTU1BTkQgKi8KKy8qIE1PViAgI0xDRFNHMF8zK0xDRE9HMl83LCZMQ0RDVEwgQUNUVUFMWSBNRUFOUyBNT1YgICNMQ0RQMSwmTENEQ1RMISAqLworI2RlZmluZSBMQ0RPRzFfNyAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFMwICAtIFMxICAgIE8yICAtIE8yOSAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgTENET0cyXzcgICAgICAgICAgICAgICAoTENEUDApICAgICAgICAvKiBTMCAgLSBTNSAgICBPNiAgLSBPMjkgKi8KKyNkZWZpbmUgTENET0czXzcgICAgICAgICAgICAgICAoTENEUDEpICAgICAgICAvKiBTMCAgLSBTOSAgICBPMTAgLSBPMjkgKi8KKyNkZWZpbmUgTENET0c0XzcgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMTMgICBPMTQgLSBPMjkgKi8KKyNkZWZpbmUgTENET0c1XzcgICAgICAgICAgICAgICAoTENEUDIpICAgICAgICAvKiBTMCAgLSBTMTcgICBPMTggLSBPMjkgKi8KKyNkZWZpbmUgTENET0c2XzcgICAgICAgICAgICAgICAoTENEUDIrTENEUDApICAvKiBTMCAgLSBTMjEgICBPMjIgLSBPMjkgKi8KKyNkZWZpbmUgTENET0c3ICAgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMjUgICBPMjYgLSBPMjkgKi8KKyNkZWZpbmUgTENET0dPRkYgICAgICAgICAgICAoTENEUDIrTENEUDErTENEUDApICAgICAgIC8qIFMwICAtIFMyOSAgIC0tLS0tLS0tLSAqLworCisjZGVmaW5lIExDRE1FTV8gICAgICAgICAgICAgICAgKDB4MDAzMSkgICAgICAgLyogTENEIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKExDRE1FTV8pICAgICAgLyogTENEIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgTENETUVNXykgLyogTENEIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKExDRE0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEgKi8KK1NGUl84QklUKExDRE0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIgKi8KK1NGUl84QklUKExDRE0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDMgKi8KK1NGUl84QklUKExDRE00KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDQgKi8KK1NGUl84QklUKExDRE01KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDUgKi8KK1NGUl84QklUKExDRE02KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDYgKi8KK1NGUl84QklUKExDRE03KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDcgKi8KK1NGUl84QklUKExDRE04KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDggKi8KK1NGUl84QklUKExDRE05KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDkgKi8KK1NGUl84QklUKExDRE0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEwICovCitTRlJfOEJJVChMQ0RNMTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMSAqLworU0ZSXzhCSVQoTENETTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTIgKi8KK1NGUl84QklUKExDRE0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEzICovCitTRlJfOEJJVChMQ0RNMTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNCAqLworU0ZSXzhCSVQoTENETTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTUgKi8KKworI2RlZmluZSBMQ0RNQSAgICAgICAgICAgICAgICAgIChMQ0RNMTApICAgICAgIC8qIExDRCBNZW1vcnkgQSAqLworI2RlZmluZSBMQ0RNQiAgICAgICAgICAgICAgICAgIChMQ0RNMTEpICAgICAgIC8qIExDRCBNZW1vcnkgQiAqLworI2RlZmluZSBMQ0RNQyAgICAgICAgICAgICAgICAgIChMQ0RNMTIpICAgICAgIC8qIExDRCBNZW1vcnkgQyAqLworI2RlZmluZSBMQ0RNRCAgICAgICAgICAgICAgICAgIChMQ0RNMTMpICAgICAgIC8qIExDRCBNZW1vcnkgRCAqLworI2RlZmluZSBMQ0RNRSAgICAgICAgICAgICAgICAgIChMQ0RNMTQpICAgICAgIC8qIExDRCBNZW1vcnkgRSAqLworI2RlZmluZSBMQ0RNRiAgICAgICAgICAgICAgICAgIChMQ0RNMTUpICAgICAgIC8qIExDRCBNZW1vcnkgRiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJBU0lDIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CVF9fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChCVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiQlQiICovCisjZGVmaW5lIEJUSVAwICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEJUSVAxICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIEJUSVAyICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEJURlJGUTAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJURlJGUTEgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEJURElWICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkNMSzIgPSBBQ0xLOjI1NiAqLworI2RlZmluZSBCVEhPTEQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEJUMSBpcyBoZWxkIGlmIHRoaXMgYml0IGlzIHNldCAqLworI2RlZmluZSBCVFNTRUwgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIGZCVCA9IGZNQ0xLIChtYWluIGNsb2NrKSAqLworCitTRlJfOEJJVChCVENOVDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMSAqLworU0ZSXzhCSVQoQlRDTlQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDIgKi8KKworLyogRnJlcXVlbmN5IG9mIHRoZSBCVENOVDIgY29kZWQgd2l0aCBCaXQgNSBhbmQgNyBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9BQ0xLICAgICAgICAgICgweDAwKQorI2RlZmluZSBCVF9mQ0xLMl9BQ0xLX0RJVjI1NiAgIChCVERJVikKKyNkZWZpbmUgQlRfZkNMSzJfTUNMSyAgICAgICAgICAoQlRTU0VMKQorCisvKiBJbnRlcnJ1cHQgaW50ZXJ2YWwgdGltZSBmSU5UIGNvZGVkIHdpdGggQml0cyAwLTIgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmSU5UID0gZkNMSzI6MiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNCAgICAgICAgICAoQlRJUDApICAgICAgICAvKiBmSU5UID0gZkNMSzI6NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY4ICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjE2ICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjE2ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjMyICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjMyICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjY0ICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjY0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjEyOCAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogZklOVCA9IGZDTEsyOjEyOCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyNTYgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogZklOVCA9IGZDTEsyOjI1NiAqLworLyogRnJlcXVlbmN5IG9mIExDRCBjb2RlZCB3aXRoIEJpdHMgMy00ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMzIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEX0RJVjY0ICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEX0RJVjEyOCAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYyNTYgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZBQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMUsgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfNTEyICAgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF8yNTYgICAgICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF8xMjggICAgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9Zk1DTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8zMUsgICAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiBmTUNMSzozMiAqLworI2RlZmluZSBCVF9mTENEXzE1XzVLICAgICAgIChCVFNTRUwrQlRGUkZRMCkgICAgICAgICAgLyogZk1DTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF83XzhLICAgICAgICAoQlRTU0VMK0JURlJGUTErQlRGUkZRMCkgIC8qIGZNQ0xLOjI1NiAqLworLyogd2l0aCBhc3N1bWVkIHZsdWVzIG9mIGZBQ0xLPTMyS0h6LCBmTUNMSz0xTUh6ICovCisvKiBmQlQ9ZkFDTEsgaXMgdGhvdWdodCBmb3IgbG9uZ2VyIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX0FETFlfMF8wNjQgICAgICAgICAgKDB4MDApICAgICAgICAgLyogMC4wNjRtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzEyNSAgICAgICAgICAoQlRJUDApICAgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzI1ICAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiAwLjI1bXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzUgICAgICAgICAgICAoQlRJUDErQlRJUDApICAvKiAwLjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xICAgICAgICAgICAgICAoQlRJUDIpICAgICAgICAvKiAxbXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yICAgICAgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiAybXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV80ICAgICAgICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiA0bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV84ICAgICAgICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIDhtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzE2ICAgICAgICAgICAgIChCVERJVikgICAgICAgIC8qIDE2bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzMyICAgICAgICAgICAgIChCVERJVitCVElQMCkgIC8qIDMybXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzY0ICAgICAgICAgICAgIChCVERJVitCVElQMSkgIC8qIDY0bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEyNSAgICAgICAgIChCVERJVitCVElQMStCVElQMCkgICAgICAgLyogMTI1bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjUwICAgICAgICAgICAgKEJURElWK0JUSVAyKSAgLyogMjUwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNTAwICAgICAgICAgKEJURElWK0JUSVAyK0JUSVAwKSAgICAgICAvKiA1MDBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDEpICAgICAgIC8qIDEwMDBtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMStCVElQMCkgLyogMjAwMG1zICAgICAiICovCisvKiBmQ0xLMj1mTUNMSyAoMU1IeikgaXMgdGhvdWdodCBmb3Igc2hvcnQgaW50ZXJ2YWwgdGltZXMgKi8KKy8qIHRoZSB0aW1pbmcgZm9yIHNob3J0IGludGVydmFscyBpcyBtb3JlIHByZWNpc2UgdGhhbiBBQ0xLICovCisvKiBOT1RFICovCisvKiBCZSBzdXJlIHRoYXQgdGhlIFNDRlFDVEwtUmVnaXN0ZXIgaXMgc2V0IHRvIDAxRmggc28gdGhhdCBmTUNMSz0xTUh6ICovCisvKiBUb28gbG93IGludGVydmFsIHRpbWUgcmVzdWx0cyBpbiBpbnRlcnJ1cHRzIHRvbyBmcmVxdWVudCBmb3IgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUhICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDIgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogMC4wMDJtcyBpbnRlcnZhbCAgICAgICAqKiogaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwNCAgICAgICAgICAoQlRTU0VMK0JUSVAwKSAvKiAwLjAwNG1zICAgICIgICAgICAgICAgICoqKiB0b28gc2hvcnQgZm9yICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDggICAgICAgICAgKEJUU1NFTCtCVElQMSkgLyogMC4wMDhtcyAgICAiICAgICAgICAgICAqKiogaW50ZXJydXB0ICovCisjZGVmaW5lIEJUX01ETFlfMF8wMTYgICAgICAgKEJUU1NFTCtCVElQMStCVElQMCkgICAgICAvKiAwLjAxNm1zICAgICIgICAgICAgICAgICoqKiBoYW5kbGluZyAqLworI2RlZmluZSBCVF9NRExZXzBfMDMyICAgICAgICAgIChCVFNTRUwrQlRJUDIpIC8qIDAuMDMybXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMDY0ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDApICAgICAgLyogMC4wNjRtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8xMjUgICAgICAgKEJUU1NFTCtCVElQMitCVElQMSkgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzI1ICAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxK0JUSVAwKS8qIDAuMjVtcyAgICAgIiAqLworCisvKiBSZXNldC9Ib2xkIGNvZGVkIHdpdGggQml0cyA2LTcgaW4gQlQoMSlDVEwgKi8KKy8qIHRoaXMgaXMgZm9yIEJUICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxICAgICAgICAoQlRSRVNFVCkgICAgICAgICAgIC8qIEJUQ05UMSBpcyByZXNldCB3aGlsZSBCVFJFU0VUIGlzIHNldCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMV8yICAgICAgKEJUUkVTRVQrQlRESVYpICAgICAvKiBCVENOVDEgLkFORC4gQlRDTlQyIGFyZSByZXNldCB3aGlsZSB+IGlzIHNldCAqLworLyogdGhpcyBpcyBmb3IgQlQxICovCisjZGVmaW5lIEJUSE9MRF9DTlQxICAgICAgICAgICAgKEJUSE9MRCkgICAgICAgLyogQlRDTlQxIGlzIGhlbGQgd2hpbGUgQlRIT0xEIGlzIHNldCAqLworI2RlZmluZSBCVEhPTERfQ05UMV8yICAgICAgICAgIChCVEhPTEQrQlRESVYpIC8qIEJUMUNOVDEgLkFORC4gQlQxQ05UMiBhcmUgaGVsZCB3aGlsZSB+IGlzIHNldCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiAjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgMHg4MCAqLworLyogI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgIDB4ODAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTWVNURU0gQ0xPQ0sgR0VORVJBVE9SCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTExfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTQ0ZJMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDAgKi8KKyNkZWZpbmUgRk5fMiAgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgRk5fMyAgICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgRk5fNCAgICAgICAgICAgICAgICAgICAoMHgxMCkKKworU0ZSXzhCSVQoU0NGSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAxICovCitTRlJfOEJJVChTQ0ZRQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCisvKiBTeXN0ZW0gY2xvY2sgZnJlcXVlbmN5IHZhbHVlcyBmTUNMSyBjb2RlZCB3aXRoIEJpdHMgMC02IGluIFNDRlFDVEwgKi8KKy8qICNkZWZpbmUgU0NGUV8zMksgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgZk1DTEs9MSpmQUNMSyAgICAgICAgICBvbmx5IGEgcmFuZ2UgZnJvbSAqLworLyogI2RlZmluZSBTQ0ZRXzY0SyAgICAgICAgICAgIDB4MDEgICAgICAgICAgICAgICAgICAgICAgICBmTUNMSz0yKmZBQ0xLICAgICAgICAgIDMrMSB0byAxMjcrMSBpcyBwb3NzaWJsZSAqLworI2RlZmluZSBTQ0ZRXzEyOEsgICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIGZNQ0xLPTQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8yNTZLICAgICAgICAgICAgICAoMHgwNykgICAgICAgICAvKiBmTUNMSz04KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNTEySyAgICAgICAgICAgICAgKDB4MEYpICAgICAgICAgLyogZk1DTEs9MTYqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8xTSAgICAgICAgICAgICAgICAoMHgxRikgICAgICAgICAvKiBmTUNMSz0zMipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzJNICAgICAgICAgICAgICAgICgweDNGKSAgICAgICAgIC8qIGZNQ0xLPTY0KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNE0gICAgICAgICAgICAgICAgKDB4N0YpICAgICAgICAgLyogZk1DTEs9MTI4KmZBQ0xLICAgICAgICBub3QgcG9zc2libGUgZm9yIElDRSAqLworCitTRlJfOEJJVChDQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ3J5c3RhbCBCdWZmZXIgQ29udHJvbCAqKiogV1JJVEUtT05MWSAqKiogKi8KKyNkZWZpbmUgQ0JFICAgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgQ0JTRUwwICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgQ0JTRUwxICAgICAgICAgICAgICAgICAoMHgwNCkKKy8qIFNvdXJjZSBzZWxlY3Qgb2YgZnJlcXVlbmN5IGF0IG91dHB1dCBwaW4gWEJVRiBjb2RlZCB3aXRoIEJpdHMgMS0yIGluIENCQ1RMICovCisjZGVmaW5lIENCU0VMX0FDTEsgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogc291cmNlIGlzIEFDTEsgICAgICAgICAoZGVmYXVsdCBhZnRlciBQT1IpICovCisjZGVmaW5lIENCU0VMX0FDTEtfRElWMiAgICAgICAgKENCU0VMMCkgICAgICAgLyogc291cmNlIGlzIEFDTEsvMiAqLworI2RlZmluZSBDQlNFTF9BQ0xLX0RJVjQgICAgICAgIChDQlNFTDEpICAgICAgIC8qIHNvdXJjZSBpcyBBQ0xLLzQgKi8KKyNkZWZpbmUgQ0JTRUxfTUNMSyAgICAgICAgICAoQ0JTRUwxK0NCU0VMMCkgICAgICAgICAgIC8qIHNvdXJjZSBpcyBNQ0xLICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MIEJJVFMgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgIDB4MDIgKi8KKy8qICNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAweDAyICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogOEJJVCBUSU1FUi9DT1VOVEVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU184QlRDX18gICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChUQ0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIvQ291bnRlciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJUQyIgKi8KKyNkZWZpbmUgVENSWEQgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVENUWEQgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVENSWEFDVCAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVENFTkNOVCAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgVENUWEUgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVENJU0NUTCAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVENTU0VMMCAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVENTU0VMMSAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIFNvdXJjZSBzZWxlY3Qgb2YgY2xvY2sgaW5wdXQgY29kZWQgd2l0aCBCaXRzIDYtNyAqLworI2RlZmluZSBUQ1NTRUxfUDAxICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIHNvdXJjZSBpcyBzaWduYWwgYXQgcGluIFAwLjEgKGRlZmF1bHQpICovCisjZGVmaW5lIFRDU1NFTF9BQ0xLICAgICAgICAgICAgKFRDU1NFTDApICAgICAgLyogc291cmNlIGlzIEFDTEsgKi8KKyNkZWZpbmUgVENTU0VMX01DTEsgICAgICAgICAgICAoVENTU0VMMSkgICAgICAvKiBzb3VyY2UgaXMgTUNMSyAqLworI2RlZmluZSBUQ1NTRUxfUDAxX01DTEsgICAgIChUQ1NTRUwxK1RDU1NFTDApICAgICAgICAgLyogc291cmNlIGlzIHNpZ25hbCBwaW4gUDAuMSAuQU5ELiBNQ0xLICovCisKK1NGUl84QklUKFRDUExEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lci9Db3VudGVyIFByZWxvYWQgKi8KK1NGUl84QklUKFRDREFUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lci9Db3VudGVyIERhdGEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUSU1FUi9QT1JUCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UUF9fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChUUENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIvUG9ydCBDb250cm9sICovCisjZGVmaW5lIEVOMUZHICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFJDMUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFJDMkZHICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEVOMSAgICAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEVOQSAgICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEVOQiAgICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFRQU1NFTDAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFRQU1NFTDEgICAgICAgICAgICAgICAgKDB4ODApCisvKiBUaGUgRU4xIHNpZ25hbCBvZiBUUENOVDEgaXMgY29kZWQgd2l0aCB3aXRoIEJpdHMgMy01IGluIFRQQ1RMICovCisjZGVmaW5lIFRQQ05UMV9FTl9PRkYgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVFBDTlQxIGlzIGRpc2FibGVkICovCisjZGVmaW5lIFRQQ05UMV9FTl9PTiAgICAgICAgICAgKEVOQSkgICAgICAgICAgLyogICAiICAgIGlzIGVuYWJsZWQgKi8KKyNkZWZpbmUgVFBDTlQxX0VOX25UUElONSAgICAgICAoRU5CKSAgICAgICAgICAvKiAgICIgICAgaXMgZW5hYmxlZCB3aXRoIH5UUElOLjUgKi8KKyNkZWZpbmUgVFBDTlQxX0VOX1RQSU41ICAgICAgICAoVFBTU0VMMCtFTkIpICAvKiAgICIgICAgaXMgZW5hYmxlZCB3aXRoIFRQSU4uNSAqLworI2RlZmluZSBUUENOVDFfRU5fbkNJTiAgICAgICAgIChFTkIrRU5BKSAgICAgIC8qICAgIiAgICBpcyBlbmFibGVkIHdpdGggfkNJTiAqLworI2RlZmluZSBUUENOVDFfRU5fQ0lOICAgICAgICAoVFBTU0VMMCtFTkIrRU5BKSAgICAgICAvKiAgICIgICAgaXMgZW5hYmxlZCB3aXRoIENJTiAqLworCisvKiBTb3VyY2Ugc2VsZWN0IG9mIGNsb2NrIGlucHV0IGNvZGVkIHdpdGggQml0cyA2LTcgaW4gVFBDVEwgKi8KKyNkZWZpbmUgVFBTU0VMX0NMSzFfQ0lOICAgICAgICAoMHgwMCkgICAgICAgICAvKiBDTEsxIHNvdXJjZSBpcyBzaWduYWwgYXQgQ0lOICAgKGRlZmF1bHQpICovCisjZGVmaW5lIFRQU1NFTF9DTEsxX0FDTEsgICAgICAgKFRQU1NFTDApICAgICAgLyogQ0xLMSBzb3VyY2UgaXMgQUNMSyAqLworI2RlZmluZSBUUFNTRUxfQ0xLMV9NQ0xLICAgICAgIChUUFNTRUwxKSAgICAgIC8qIENMSzEgc291cmNlIGlzIE1DTEsgKi8KKworLyogREFUQSBSRUdJU1RFUiBBRERSRVNTRVMgKi8KK1NGUl84QklUKFRQQ05UMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lci9Qb3J0IENvdW50ZXIgMSAqLworU0ZSXzhCSVQoVFBDTlQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyL1BvcnQgQ291bnRlciAyICovCisKK1NGUl84QklUKFRQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lci9Qb3J0IERhdGEgKi8KKyNkZWZpbmUgVFBEXzAgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVFBEXzEgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVFBEXzIgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVFBEXzMgICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgVFBEXzQgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVFBEXzUgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgQ1BPTiAgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgQjE2ICAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoVFBFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyL1BvcnQgRW5hYmxlICovCisjZGVmaW5lIFRQRV8wICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFRQRV8xICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFRQRV8yICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFRQRV8zICAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIFRQRV80ICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFRQRV81ICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFRQU1NFTDIgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFRQU1NFTDMgICAgICAgICAgICAgICAgKDB4ODApCisvKiBTb3VyY2Ugc2VsZWN0IG9mIGNsb2NrIGlucHV0IGNvZGVkIHdpdGggQml0cyA2LTcgaW4gVFBFCisgICBOT1RFOiBJZiB0aGUgY29udHJvbCBiaXQgQjE2IGluIFRQRCBpcyBzZXQsIFRQU1NFTDIvMworICAgICAgICAgYXJlICdkb24ndCBjYXJlJyBhbmQgdGhlIGNsb2NrIHNvdXJjZSBvZiBjb3VudGVyCisgICAgICAgICBUUENOVDIgaXMgdGhlIHNhbWUgYXMgb2YgdGhlIGNvdW50ZXIgVFBDTlQxLiAqLworI2RlZmluZSBUUFNTRUxfQ0xLMl9UUElONSAgICAgICgweDAwKSAgICAgICAgIC8qIENMSzIgc291cmNlIGlzIHNpZ25hbCBUUElOLjUgKGRlZmF1bHQpICovCisjZGVmaW5lIFRQU1NFTF9DTEsyX0FDTEsgICAgICAgKFRQU1NFTDIpICAgICAgLyogQ0xLMiBzb3VyY2UgaXMgQUNMSyAqLworI2RlZmluZSBUUFNTRUxfQ0xLMl9NQ0xLICAgICAgIChUUFNTRUwzKSAgICAgIC8qIENMSzIgc291cmNlIGlzIE1DTEsgKi8KKyNkZWZpbmUgVFBTU0VMX0NMSzJfT0ZGICAgICAoVFBTU0VMMytUUFNTRUwyKS8qIENMSzIgc291cmNlIGlzIGRpc2FibGVkICAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVQUk9NIENPTlRST0wKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0VQUk9NX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKEVQQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFUFJPTSBDb250cm9sICovCisjZGVmaW5lIEVQRVhFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEVQVlBQUyAgICAgICAgICAgICAgICAgKDB4MDIpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIFBPUlQwX1ZFQ1RPUiAgICAgICAgICAgICgwICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIFBvcnQgMCBCaXRzIDItNyBbTG93ZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFBPUlQwX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMCIpICAqLyAvKiAweEZGRTAgUG9ydCAwIEJpdHMgMi03IFtMb3dlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBCQVNJQ1RJTUVSX1ZFQ1RPUiAgICAgICAoMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMiBCYXNpYyBUaW1lciAqLworLyojZGVmaW5lIEJBU0lDVElNRVJfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMSIpICAqLyAvKiAweEZGRTIgQmFzaWMgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSUE9SVF9WRUNUT1IgICAgICAgICg1ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU4IFRpbWVyL1BvcnQgKi8KKy8qI2RlZmluZSBUSU1FUlBPUlRfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkU4IFRpbWVyL1BvcnQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgSU8xX1ZFQ1RPUiAgICAgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggRGVkaWNhdGVkIElPIChQMC4xKSAqLworLyojZGVmaW5lIElPMV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMiIpICAqLyAvKiAweEZGRjggRGVkaWNhdGVkIElPIChQMC4xKSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgSU8wX1ZFQ1RPUiAgICAgICAgICAgICAgKDEzICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkEgRGVkaWNhdGVkIElPIChQMC4wKSAqLworLyojZGVmaW5lIElPMF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgRGVkaWNhdGVkIElPIChQMC4wKSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MzF4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MzJ4LmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDMyeC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4Y2VjNTcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDMyeC5oCkBAIC0wLDAgKzEsNjI0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgzMnggZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMi4yCisqCisqIFJldi4gMS4xLCBJbmNsdWRlZCA8SW40MzAuaD4gcmF0aGVyIHRoYW4gIkluNDMwLmgiCisqICAgICAgICAgICBDaGFuZ2VkIGRlZmluaXRpb24gb2YgTFBNNCBiaXRzIChkZXZpY2UgZWZmZWN0IG5vdCBjaGFuZ2VkKQorKiAgICAgICAgICAgQ29ycmVjdGVkIExQTXhfRVhJVCB0byByZWZlcmVuY2UgbmV3IGludHJpbnNpYyAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQKKyogICAgICAgICAgIFRoZSBmaWxlIGNvbnRlbnRzIHdlcmUgcmVvcmRlcmVkCisqIFJldi4gMS4yLCBFbmNsb3NlIGFsbCAjZGVmaW5lIHN0YXRlbWVudHMgd2l0aCBwYXJlbnRoZXNlcworKiBSZXYuIDEuMywgQWRkZWQgc2ZyYiBmb3IgVENEQVQgYW5kIFRDUExECisqIFJldi4gMS40LCBSZW1vdmVkIGluY29ycmVjdCBsYWJlbCAnQlRSRVNFVCcKKyogUmV2LiAyLjEsIEFsaWdubWVudCBvZiBkZWZpbnRpb25zIGluIFVzZXJzIEd1aWRlIGFuZCBvZiB2ZXJzaW9uIG51bWJlcnMKKyogUmV2LiAyLjIsIFJlbW92ZWQgZGVmaW5pdGlvbnMgZm9yIEJUUkVTRVQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDMyeAorI2RlZmluZSBfX21zcDQzMHgzMngKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgUDBJRV8wICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgUDBJRV8xICAgICAgICAgICAgICAgICAoMHgwOCkKKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgUDBJRkdfMCAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgUDBJRkdfMSAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBBRElFICAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBUUElFICAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBCVElFICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBBRElGRyAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgICAgICgweDgwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBPUlQwCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAwIElucHV0ICovCisjZGVmaW5lIFAwSU5fMCAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFAwSU5fMSAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFAwSU5fMiAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFAwSU5fMyAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIFAwSU5fNCAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFAwSU5fNSAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFAwSU5fNiAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFAwSU5fNyAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKFAwT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDAgT3V0cHV0ICovCisjZGVmaW5lIFAwT1VUXzAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFAwT1VUXzEgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFAwT1VUXzIgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFAwT1VUXzMgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIFAwT1VUXzQgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFAwT1VUXzUgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFAwT1VUXzYgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFAwT1VUXzcgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKFAwRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDAgRGlyZWN0aW9uICovCisjZGVmaW5lIFAwRElSXzAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFAwRElSXzEgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFAwRElSXzIgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFAwRElSXzMgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIFAwRElSXzQgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFAwRElSXzUgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFAwRElSXzYgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFAwRElSXzcgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKFAwSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDAgSW50ZXJydXB0IEZsYWcgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIEludGVycnVwdCBGbGFnIDEgKi8KKy8qICNkZWZpbmUgUDBJRkdfMCAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFAwSUZHXzEgICAgICAgICAgICAgMHgwMiAqLworI2RlZmluZSBQMElGR18yICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBQMElGR18zICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBQMElGR180ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBQMElGR181ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBQMElGR182ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBQMElGR183ICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChQMElFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAwIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworI2RlZmluZSBQMElFU18wICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBQMElFU18xICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBQMElFU18yICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBQMElFU18zICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBQMElFU180ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBQMElFU181ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBQMElFU182ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBQMElFU183ICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChQMElFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAwIEludGVycnVwdCBFbmFibGUgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIEludGVycnVwdCBFbmFibGUgMSAqLworLyogI2RlZmluZSBQMElFXzAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgUDBJRV8xICAgICAgICAgICAgICAweDAyICovCisjZGVmaW5lIFAwSUVfMiAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFAwSUVfMyAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIFAwSUVfNCAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFAwSUVfNSAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFAwSUVfNiAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFAwSUVfNyAgICAgICAgICAgICAgICAgKDB4ODApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogTENEIFJFR0lTVEVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19MQ0RfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChMQ0RDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIENvbnRyb2wgKi8KKy8qIHRoZSBuYW1lcyBvZiB0aGUgbW9kZSBiaXRzIGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgc3BlYyAqLworI2RlZmluZSBMQ0RPTiAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBMQ0RMT1dSICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBMQ0RTT04gICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBMQ0RNWDAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBMQ0RNWDEgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBMQ0RQMCAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBMQ0RQMSAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBMQ0RQMiAgICAgICAgICAgICAgICAgICgweDgwKQorLyogRGlzcGxheSBtb2RlcyBjb2RlZCB3aXRoIEJpdHMgMi00ICovCisjZGVmaW5lIExDRFNUQVRJQyAgICAgICAgICAgICAgKExDRFNPTikKKyNkZWZpbmUgTENEMk1VWCAgICAgICAgICAgICAgICAoTENETVgwK0xDRFNPTikKKyNkZWZpbmUgTENEM01VWCAgICAgICAgICAgICAgICAoTENETVgxK0xDRFNPTikKKyNkZWZpbmUgTENENE1VWCAgICAgICAgICAgICAgICAoTENETVgxK0xDRE1YMCtMQ0RTT04pCisvKiBHcm91cCBzZWxlY3QgY29kZSB3aXRoIEJpdHMgNS03ICAgICAgICAgICAgICAgICAgICAgU2VnLmxpbmVzICAgRGlnLm91dHB1dCAqLworI2RlZmluZSBMQ0RTRzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFMwICAtIFMxICAgIE8yICAtIE8yOSAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgTENEU0cwXzEgICAgICAgICAgICAgICAoTENEUDApICAgICAgICAvKiBTMCAgLSBTNSAgICBPNiAgLSBPMjkgKi8KKyNkZWZpbmUgTENEU0cwXzIgICAgICAgICAgICAgICAoTENEUDEpICAgICAgICAvKiBTMCAgLSBTOSAgICBPMTAgLSBPMjkgKi8KKyNkZWZpbmUgTENEU0cwXzMgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMTMgICBPMTQgLSBPMjkgKi8KKyNkZWZpbmUgTENEU0cwXzQgICAgICAgICAgICAgICAoTENEUDIpICAgICAgICAvKiBTMCAgLSBTMTcgICBPMTggLSBPMjkgKi8KKyNkZWZpbmUgTENEU0cwXzUgICAgICAgICAgICAgICAoTENEUDIrTENEUDApICAvKiBTMCAgLSBTMjEgICBPMjIgLSBPMjkgKi8KKyNkZWZpbmUgTENEU0cwXzYgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMjUgICBPMjYgLSBPMjkgKi8KKyNkZWZpbmUgTENEU0cwXzcgICAgICAgICAgICAoTENEUDIrTENEUDErTENEUDApICAgICAgIC8qIFMwICAtIFMyOSAgIC0tLS0tLS0tLSAqLworLyogTk9URTogWU9VIENBTiBPTkxZIFVTRSBUSEUgJ1MnIE9SICdHJyBERUNMQVJBVElPTlMgRk9SIEEgQ09NTUFORCAqLworLyogTU9WICAjTENEU0cwXzMrTENET0cyXzcsJkxDRENUTCBBQ1RVQUxZIE1FQU5TIE1PViAgI0xDRFAxLCZMQ0RDVEwhICovCisjZGVmaW5lIExDRE9HMV83ICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogUzAgIC0gUzEgICAgTzIgIC0gTzI5IChkZWZhdWx0KSAqLworI2RlZmluZSBMQ0RPRzJfNyAgICAgICAgICAgICAgIChMQ0RQMCkgICAgICAgIC8qIFMwICAtIFM1ICAgIE82ICAtIE8yOSAqLworI2RlZmluZSBMQ0RPRzNfNyAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFM5ICAgIE8xMCAtIE8yOSAqLworI2RlZmluZSBMQ0RPRzRfNyAgICAgICAgICAgICAgIChMQ0RQMStMQ0RQMCkgIC8qIFMwICAtIFMxMyAgIE8xNCAtIE8yOSAqLworI2RlZmluZSBMQ0RPRzVfNyAgICAgICAgICAgICAgIChMQ0RQMikgICAgICAgIC8qIFMwICAtIFMxNyAgIE8xOCAtIE8yOSAqLworI2RlZmluZSBMQ0RPRzZfNyAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMyMSAgIE8yMiAtIE8yOSAqLworI2RlZmluZSBMQ0RPRzcgICAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMSkgIC8qIFMwICAtIFMyNSAgIE8yNiAtIE8yOSAqLworI2RlZmluZSBMQ0RPR09GRiAgICAgICAgICAgIChMQ0RQMitMQ0RQMStMQ0RQMCkgICAgICAgLyogUzAgIC0gUzI5ICAgLS0tLS0tLS0tICovCisKKyNkZWZpbmUgTENETUVNXyAgICAgICAgICAgICAgICAoMHgwMDMxKSAgICAgICAvKiBMQ0QgTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoTENETUVNXykgICAgICAvKiBMQ0QgTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBMQ0RNRU1fKSAvKiBMQ0QgTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoTENETTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMSAqLworU0ZSXzhCSVQoTENETTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMiAqLworU0ZSXzhCSVQoTENETTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMyAqLworU0ZSXzhCSVQoTENETTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNCAqLworU0ZSXzhCSVQoTENETTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNSAqLworU0ZSXzhCSVQoTENETTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNiAqLworU0ZSXzhCSVQoTENETTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNyAqLworU0ZSXzhCSVQoTENETTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOCAqLworU0ZSXzhCSVQoTENETTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOSAqLworU0ZSXzhCSVQoTENETTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTAgKi8KK1NGUl84QklUKExDRE0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDExICovCitTRlJfOEJJVChMQ0RNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMiAqLworU0ZSXzhCSVQoTENETTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTMgKi8KK1NGUl84QklUKExDRE0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE0ICovCitTRlJfOEJJVChMQ0RNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNSAqLworCisjZGVmaW5lIExDRE1BICAgICAgICAgICAgICAgICAgKExDRE0xMCkgICAgICAgLyogTENEIE1lbW9yeSBBICovCisjZGVmaW5lIExDRE1CICAgICAgICAgICAgICAgICAgKExDRE0xMSkgICAgICAgLyogTENEIE1lbW9yeSBCICovCisjZGVmaW5lIExDRE1DICAgICAgICAgICAgICAgICAgKExDRE0xMikgICAgICAgLyogTENEIE1lbW9yeSBDICovCisjZGVmaW5lIExDRE1EICAgICAgICAgICAgICAgICAgKExDRE0xMykgICAgICAgLyogTENEIE1lbW9yeSBEICovCisjZGVmaW5lIExDRE1FICAgICAgICAgICAgICAgICAgKExDRE0xNCkgICAgICAgLyogTENEIE1lbW9yeSBFICovCisjZGVmaW5lIExDRE1GICAgICAgICAgICAgICAgICAgKExDRE0xNSkgICAgICAgLyogTENEIE1lbW9yeSBGICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQkFTSUMgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0JUX18gICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKEJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJCVCIgKi8KKyNkZWZpbmUgQlRJUDAgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgQlRJUDEgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgQlRJUDIgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgQlRGUkZRMCAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgQlRGUkZRMSAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQlRESVYgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBmQ0xLMiA9IEFDTEs6MjU2ICovCisjZGVmaW5lIEJUSE9MRCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQlQxIGlzIGhlbGQgaWYgdGhpcyBiaXQgaXMgc2V0ICovCisjZGVmaW5lIEJUU1NFTCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogZkJUID0gZk1DTEsgKG1haW4gY2xvY2spICovCisKK1NGUl84QklUKEJUQ05UMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAxICovCitTRlJfOEJJVChCVENOVDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMiAqLworCisvKiBGcmVxdWVuY3kgb2YgdGhlIEJUQ05UMiBjb2RlZCB3aXRoIEJpdCA1IGFuZCA3IGluIEJUQ1RMICovCisjZGVmaW5lIEJUX2ZDTEsyX0FDTEsgICAgICAgICAgKDB4MDApCisjZGVmaW5lIEJUX2ZDTEsyX0FDTEtfRElWMjU2ICAgKEJURElWKQorI2RlZmluZSBCVF9mQ0xLMl9NQ0xLICAgICAgICAgIChCVFNTRUwpCisKKy8qIEludGVycnVwdCBpbnRlcnZhbCB0aW1lIGZJTlQgY29kZWQgd2l0aCBCaXRzIDAtMiBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjoyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY0ICAgICAgICAgIChCVElQMCkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjggICAgICAgICAgKEJUSVAxKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjggKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMTYgICAgICAgICAoQlRJUDErQlRJUDApICAvKiBmSU5UID0gZkNMSzI6MTYgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMzIgICAgICAgICAoQlRJUDIpICAgICAgICAvKiBmSU5UID0gZkNMSzI6MzIgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNjQgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiBmSU5UID0gZkNMSzI6NjQgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMTI4ICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiBmSU5UID0gZkNMSzI6MTI4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjI1NiAgICAgKEJUSVAyK0JUSVAxK0JUSVAwKSAgICAgICAvKiBmSU5UID0gZkNMSzI6MjU2ICovCisvKiBGcmVxdWVuY3kgb2YgTENEIGNvZGVkIHdpdGggQml0cyAzLTQgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYzMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmTENEID0gZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWNjQgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkxDRCA9IGZBQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMTI4ICAgICAgICAgKEJURlJGUTEpICAgICAgLyogZkxDRCA9IGZBQ0xLOjEyOCAqLworI2RlZmluZSBCVF9mTENEX0RJVjI1NiAgICAgIChCVEZSRlExK0JURlJGUTApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9ZkFDTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8xSyAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmQUNMSzozMiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkxDRF81MTIgICAgICAgICAgICAoQlRGUkZRMCkgICAgICAvKiBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEXzI1NiAgICAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZBQ0xLOjEyOCAqLworI2RlZmluZSBCVF9mTENEXzEyOCAgICAgICAgIChCVEZSRlExK0JURlJGUTApICAgICAgICAgLyogZkFDTEs6MjU2ICovCisvKiBMQ0QgZnJlcXVlbmN5IHZhbHVlcyB3aXRoIGZCVD1mTUNMSyAqLworI2RlZmluZSBCVF9mTENEXzMxSyAgICAgICAgICAgIChCVFNTRUwpICAgICAgIC8qIGZNQ0xLOjMyICovCisjZGVmaW5lIEJUX2ZMQ0RfMTVfNUsgICAgICAgKEJUU1NFTCtCVEZSRlEwKSAgICAgICAgICAvKiBmTUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEXzdfOEsgICAgICAgIChCVFNTRUwrQlRGUkZRMStCVEZSRlEwKSAgLyogZk1DTEs6MjU2ICovCisvKiB3aXRoIGFzc3VtZWQgdmx1ZXMgb2YgZkFDTEs9MzJLSHosIGZNQ0xLPTFNSHogKi8KKy8qIGZCVD1mQUNMSyBpcyB0aG91Z2h0IGZvciBsb25nZXIgaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzA2NCAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAwLjA2NG1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9BRExZXzBfMTI1ICAgICAgICAgIChCVElQMCkgICAgICAgIC8qIDAuMTI1bXMgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzBfMjUgICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIDAuMjVtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzBfNSAgICAgICAgICAgIChCVElQMStCVElQMCkgIC8qIDAuNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEgICAgICAgICAgICAgIChCVElQMikgICAgICAgIC8qIDFtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIgICAgICAgICAgICAgIChCVElQMitCVElQMCkgIC8qIDJtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzQgICAgICAgICAgICAgIChCVElQMitCVElQMSkgIC8qIDRtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzggICAgICAgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogOG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTYgICAgICAgICAgICAgKEJURElWKSAgICAgICAgLyogMTZtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMzIgICAgICAgICAgICAgKEJURElWK0JUSVAwKSAgLyogMzJtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNjQgICAgICAgICAgICAgKEJURElWK0JUSVAxKSAgLyogNjRtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTI1ICAgICAgICAgKEJURElWK0JUSVAxK0JUSVAwKSAgICAgICAvKiAxMjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yNTAgICAgICAgICAgICAoQlRESVYrQlRJUDIpICAvKiAyNTBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV81MDAgICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDApICAgICAgIC8qIDUwMG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMSkgICAgICAgLyogMTAwMG1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxK0JUSVAwKSAvKiAyMDAwbXMgICAgICIgKi8KKy8qIGZDTEsyPWZNQ0xLICgxTUh6KSBpcyB0aG91Z2h0IGZvciBzaG9ydCBpbnRlcnZhbCB0aW1lcyAqLworLyogdGhlIHRpbWluZyBmb3Igc2hvcnQgaW50ZXJ2YWxzIGlzIG1vcmUgcHJlY2lzZSB0aGFuIEFDTEsgKi8KKy8qIE5PVEUgKi8KKy8qIEJlIHN1cmUgdGhhdCB0aGUgU0NGUUNUTC1SZWdpc3RlciBpcyBzZXQgdG8gMDFGaCBzbyB0aGF0IGZNQ0xLPTFNSHogKi8KKy8qIFRvbyBsb3cgaW50ZXJ2YWwgdGltZSByZXN1bHRzIGluIGludGVycnVwdHMgdG9vIGZyZXF1ZW50IGZvciB0aGUgcHJvY2Vzc29yIHRvIGhhbmRsZSEgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwMiAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiAwLjAwMm1zIGludGVydmFsICAgICAgICoqKiBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9NRExZXzBfMDA0ICAgICAgICAgIChCVFNTRUwrQlRJUDApIC8qIDAuMDA0bXMgICAgIiAgICAgICAgICAgKioqIHRvbyBzaG9ydCBmb3IgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwOCAgICAgICAgICAoQlRTU0VMK0JUSVAxKSAvKiAwLjAwOG1zICAgICIgICAgICAgICAgICoqKiBpbnRlcnJ1cHQgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAxNiAgICAgICAoQlRTU0VMK0JUSVAxK0JUSVAwKSAgICAgIC8qIDAuMDE2bXMgICAgIiAgICAgICAgICAgKioqIGhhbmRsaW5nICovCisjZGVmaW5lIEJUX01ETFlfMF8wMzIgICAgICAgICAgKEJUU1NFTCtCVElQMikgLyogMC4wMzJtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8wNjQgICAgICAgKEJUU1NFTCtCVElQMitCVElQMCkgICAgICAvKiAwLjA2NG1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzEyNSAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxKSAgICAgIC8qIDAuMTI1bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMjUgICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDErQlRJUDApLyogMC4yNW1zICAgICAiICovCisKKy8qIFJlc2V0L0hvbGQgY29kZWQgd2l0aCBCaXRzIDYtNyBpbiBCVCgxKUNUTCAqLworLyogdGhpcyBpcyBmb3IgQlQgKi8KKy8vI2RlZmluZSBCVFJFU0VUX0NOVDEgICAgICAgIChCVFJFU0VUKSAgICAgICAgICAgLyogQlRDTlQxIGlzIHJlc2V0IHdoaWxlIEJUUkVTRVQgaXMgc2V0ICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxXzIgICAgICAoQlRSRVNFVCtCVERJVikgICAgIC8qIEJUQ05UMSAuQU5ELiBCVENOVDIgYXJlIHJlc2V0IHdoaWxlIH4gaXMgc2V0ICovCisvKiB0aGlzIGlzIGZvciBCVDEgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDEgICAgICAgICAgICAoQlRIT0xEKSAgICAgICAvKiBCVENOVDEgaXMgaGVsZCB3aGlsZSBCVEhPTEQgaXMgc2V0ICovCisjZGVmaW5lIEJUSE9MRF9DTlQxXzIgICAgICAgICAgKEJUSE9MRCtCVERJVikgLyogQlQxQ05UMSAuQU5ELiBCVDFDTlQyIGFyZSBoZWxkIHdoaWxlIH4gaXMgc2V0ICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MIEJJVFMgKi8KKy8qICNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAweDgwICovCisvKiAjZGVmaW5lIEJUSUZHICAgICAgICAgICAgICAgMHg4MCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNZU1RFTSBDTE9DSyBHRU5FUkFUT1IKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMTF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNDRkkwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMCAqLworI2RlZmluZSBGTl8yICAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBGTl8zICAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBGTl80ICAgICAgICAgICAgICAgICAgICgweDEwKQorCitTRlJfOEJJVChTQ0ZJMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDEgKi8KK1NGUl84QklUKFNDRlFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KKy8qIFN5c3RlbSBjbG9jayBmcmVxdWVuY3kgdmFsdWVzIGZNQ0xLIGNvZGVkIHdpdGggQml0cyAwLTYgaW4gU0NGUUNUTCAqLworLyogI2RlZmluZSBTQ0ZRXzMySyAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICBmTUNMSz0xKmZBQ0xLICAgICAgICAgIG9ubHkgYSByYW5nZSBmcm9tICovCisvKiAjZGVmaW5lIFNDRlFfNjRLICAgICAgICAgICAgMHgwMSAgICAgICAgICAgICAgICAgICAgICAgIGZNQ0xLPTIqZkFDTEsgICAgICAgICAgMysxIHRvIDEyNysxIGlzIHBvc3NpYmxlICovCisjZGVmaW5lIFNDRlFfMTI4SyAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogZk1DTEs9NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzI1NksgICAgICAgICAgICAgICgweDA3KSAgICAgICAgIC8qIGZNQ0xLPTgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV81MTJLICAgICAgICAgICAgICAoMHgwRikgICAgICAgICAvKiBmTUNMSz0xNipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzFNICAgICAgICAgICAgICAgICgweDFGKSAgICAgICAgIC8qIGZNQ0xLPTMyKmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMk0gICAgICAgICAgICAgICAgKDB4M0YpICAgICAgICAgLyogZk1DTEs9NjQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV80TSAgICAgICAgICAgICAgICAoMHg3RikgICAgICAgICAvKiBmTUNMSz0xMjgqZkFDTEsgICAgICAgIG5vdCBwb3NzaWJsZSBmb3IgSUNFICovCisKK1NGUl84QklUKENCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDcnlzdGFsIEJ1ZmZlciBDb250cm9sICoqKiBXUklURS1PTkxZICoqKiAqLworI2RlZmluZSBDQkUgICAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBDQlNFTDAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBDQlNFTDEgICAgICAgICAgICAgICAgICgweDA0KQorLyogU291cmNlIHNlbGVjdCBvZiBmcmVxdWVuY3kgYXQgb3V0cHV0IHBpbiBYQlVGIGNvZGVkIHdpdGggQml0cyAxLTIgaW4gQ0JDVEwgKi8KKyNkZWZpbmUgQ0JTRUxfQUNMSyAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBzb3VyY2UgaXMgQUNMSyAgICAgICAgIChkZWZhdWx0IGFmdGVyIFBPUikgKi8KKyNkZWZpbmUgQ0JTRUxfQUNMS19ESVYyICAgICAgICAoQ0JTRUwwKSAgICAgICAvKiBzb3VyY2UgaXMgQUNMSy8yICovCisjZGVmaW5lIENCU0VMX0FDTEtfRElWNCAgICAgICAgKENCU0VMMSkgICAgICAgLyogc291cmNlIGlzIEFDTEsvNCAqLworI2RlZmluZSBDQlNFTF9NQ0xLICAgICAgICAgIChDQlNFTDErQ0JTRUwwKSAgICAgICAgICAgLyogc291cmNlIGlzIE1DTEsgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgMHgwMiAqLworLyogI2RlZmluZSBPRklFICAgICAgICAgICAgICAgIDB4MDIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiA4QklUIFRJTUVSL0NPVU5URVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTXzhCVENfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFRDQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lci9Db3VudGVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIlRDIiAqLworI2RlZmluZSBUQ1JYRCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBUQ1RYRCAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBUQ1JYQUNUICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBUQ0VOQ05UICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBUQ1RYRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBUQ0lTQ1RMICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBUQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBUQ1NTRUwxICAgICAgICAgICAgICAgICgweDgwKQorLyogU291cmNlIHNlbGVjdCBvZiBjbG9jayBpbnB1dCBjb2RlZCB3aXRoIEJpdHMgNi03ICovCisjZGVmaW5lIFRDU1NFTF9QMDEgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogc291cmNlIGlzIHNpZ25hbCBhdCBwaW4gUDAuMSAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgVENTU0VMX0FDTEsgICAgICAgICAgICAoVENTU0VMMCkgICAgICAvKiBzb3VyY2UgaXMgQUNMSyAqLworI2RlZmluZSBUQ1NTRUxfTUNMSyAgICAgICAgICAgIChUQ1NTRUwxKSAgICAgIC8qIHNvdXJjZSBpcyBNQ0xLICovCisjZGVmaW5lIFRDU1NFTF9QMDFfTUNMSyAgICAgKFRDU1NFTDErVENTU0VMMCkgICAgICAgICAvKiBzb3VyY2UgaXMgc2lnbmFsIHBpbiBQMC4xIC5BTkQuIE1DTEsgKi8KKworU0ZSXzhCSVQoVENQTEQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyL0NvdW50ZXIgUHJlbG9hZCAqLworU0ZSXzhCSVQoVENEQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyL0NvdW50ZXIgRGF0YSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRJTUVSL1BPUlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RQX18gICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFRQQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lci9Qb3J0IENvbnRyb2wgKi8KKyNkZWZpbmUgRU4xRkcgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgUkMxRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgUkMyRkcgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgRU4xICAgICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgRU5BICAgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgRU5CICAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVFBTU0VMMCAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVFBTU0VMMSAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIFRoZSBFTjEgc2lnbmFsIG9mIFRQQ05UMSBpcyBjb2RlZCB3aXRoIHdpdGggQml0cyAzLTUgaW4gVFBDVEwgKi8KKyNkZWZpbmUgVFBDTlQxX0VOX09GRiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBUUENOVDEgaXMgZGlzYWJsZWQgKi8KKyNkZWZpbmUgVFBDTlQxX0VOX09OICAgICAgICAgICAoRU5BKSAgICAgICAgICAvKiAgICIgICAgaXMgZW5hYmxlZCAqLworI2RlZmluZSBUUENOVDFfRU5fblRQSU41ICAgICAgIChFTkIpICAgICAgICAgIC8qICAgIiAgICBpcyBlbmFibGVkIHdpdGggflRQSU4uNSAqLworI2RlZmluZSBUUENOVDFfRU5fVFBJTjUgICAgICAgIChUUFNTRUwwK0VOQikgIC8qICAgIiAgICBpcyBlbmFibGVkIHdpdGggVFBJTi41ICovCisjZGVmaW5lIFRQQ05UMV9FTl9uQ0lOICAgICAgICAgKEVOQitFTkEpICAgICAgLyogICAiICAgIGlzIGVuYWJsZWQgd2l0aCB+Q0lOICovCisjZGVmaW5lIFRQQ05UMV9FTl9DSU4gICAgICAgIChUUFNTRUwwK0VOQitFTkEpICAgICAgIC8qICAgIiAgICBpcyBlbmFibGVkIHdpdGggQ0lOICovCisKKy8qIFNvdXJjZSBzZWxlY3Qgb2YgY2xvY2sgaW5wdXQgY29kZWQgd2l0aCBCaXRzIDYtNyBpbiBUUENUTCAqLworI2RlZmluZSBUUFNTRUxfQ0xLMV9DSU4gICAgICAgICgweDAwKSAgICAgICAgIC8qIENMSzEgc291cmNlIGlzIHNpZ25hbCBhdCBDSU4gICAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgVFBTU0VMX0NMSzFfQUNMSyAgICAgICAoVFBTU0VMMCkgICAgICAvKiBDTEsxIHNvdXJjZSBpcyBBQ0xLICovCisjZGVmaW5lIFRQU1NFTF9DTEsxX01DTEsgICAgICAgKFRQU1NFTDEpICAgICAgLyogQ0xLMSBzb3VyY2UgaXMgTUNMSyAqLworCisvKiBEQVRBIFJFR0lTVEVSIEFERFJFU1NFUyAqLworU0ZSXzhCSVQoVFBDTlQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyL1BvcnQgQ291bnRlciAxICovCitTRlJfOEJJVChUUENOVDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIvUG9ydCBDb3VudGVyIDIgKi8KKworU0ZSXzhCSVQoVFBEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyL1BvcnQgRGF0YSAqLworI2RlZmluZSBUUERfMCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBUUERfMSAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBUUERfMiAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBUUERfMyAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBUUERfNCAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBUUERfNSAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBDUE9OICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBCMTYgICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChUUEUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIvUG9ydCBFbmFibGUgKi8KKyNkZWZpbmUgVFBFXzAgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVFBFXzEgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVFBFXzIgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVFBFXzMgICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgVFBFXzQgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVFBFXzUgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVFBTU0VMMiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVFBTU0VMMyAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIFNvdXJjZSBzZWxlY3Qgb2YgY2xvY2sgaW5wdXQgY29kZWQgd2l0aCBCaXRzIDYtNyBpbiBUUEUKKyAgIE5PVEU6IElmIHRoZSBjb250cm9sIGJpdCBCMTYgaW4gVFBEIGlzIHNldCwgVFBTU0VMMi8zCisgICAgICAgICBhcmUgJ2Rvbid0IGNhcmUnIGFuZCB0aGUgY2xvY2sgc291cmNlIG9mIGNvdW50ZXIKKyAgICAgICAgIFRQQ05UMiBpcyB0aGUgc2FtZSBhcyBvZiB0aGUgY291bnRlciBUUENOVDEuICovCisjZGVmaW5lIFRQU1NFTF9DTEsyX1RQSU41ICAgICAgKDB4MDApICAgICAgICAgLyogQ0xLMiBzb3VyY2UgaXMgc2lnbmFsIFRQSU4uNSAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgVFBTU0VMX0NMSzJfQUNMSyAgICAgICAoVFBTU0VMMikgICAgICAvKiBDTEsyIHNvdXJjZSBpcyBBQ0xLICovCisjZGVmaW5lIFRQU1NFTF9DTEsyX01DTEsgICAgICAgKFRQU1NFTDMpICAgICAgLyogQ0xLMiBzb3VyY2UgaXMgTUNMSyAqLworI2RlZmluZSBUUFNTRUxfQ0xLMl9PRkYgICAgIChUUFNTRUwzK1RQU1NFTDIpLyogQ0xLMiBzb3VyY2UgaXMgZGlzYWJsZWQgICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQS9EIENPTlZFUlRFUiAxMiArIDIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0FEQzE0X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChBSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMgSW5wdXQgKi8KK1NGUl8xNkJJVChBRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMgSW5wdXQgRW5hYmxlICovCisKK1NGUl8xNkJJVChBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMgQ29udHJvbCAqLworLyogdGhlIG5hbWVzIG9mIHRoZSBtb2RlIGJpdHMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBzcGVjICovCisjZGVmaW5lIEFEU09DICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQURTVkNDICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBBRElOMCAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEFESU4xICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQURJTjIgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBBRElOT0ZGICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEFEQ1NSQzAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQURDU1JDMSAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBBRENTUkNPRkYgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEFEUk5HMCAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQURSTkcxICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBBREFVVE8gICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEFEUEQgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKy8qIENoYW5uZWwgc2VsZWN0IGNvZGVkIHdpdGggQml0cyAyLTUgKi8KKyNkZWZpbmUgQURJTl9BMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQURJTl9BMSAgICAgICAgICAgICAgICAoQURJTjApCisjZGVmaW5lIEFESU5fQTIgICAgICAgICAgICAgICAgKEFESU4xKQorI2RlZmluZSBBRElOX0EzICAgICAgICAgICAgICAgIChBRElOMStBRElOMCkKKyNkZWZpbmUgQURJTl9BNCAgICAgICAgICAgICAgICAoQURJTjIpCisjZGVmaW5lIEFESU5fQTUgICAgICAgICAgICAgICAgKEFESU4yK0FESU4wKQorI2RlZmluZSBBRElOX0E2ICAgICAgICAgICAgICAgIChBRElOMitBRElOMSkKKyNkZWZpbmUgQURJTl9BNyAgICAgICAgICAgICAgICAoQURJTjIrQURJTjErQURJTjApCisvKiBDdXJyZW50IHNvdXJjZSBvdXRwdXQgc2VsZWN0IGNvZGVkIHdpdGggQml0cyA2LTggKi8KKyNkZWZpbmUgQURDU1JDX0EwICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQURDU1JDX0ExICAgICAgICAgICAgICAoQURDU1JDMCkKKyNkZWZpbmUgQURDU1JDX0EyICAgICAgICAgICAgICAoQURDU1JDMSkKKyNkZWZpbmUgQURDU1JDX0EzICAgICAgICAgICAgICAoQURDU1JDMStBRENTUkMwKQorLyogUmFuZ2Ugc2VsZWN0IGNvZGVkIHdpdGggQml0cyA5LTExICovCisjZGVmaW5lIEFEUk5HX0EgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogMDw9VmluPDEvNFZyZWYgIChkZWZhdWx0KSAqLworI2RlZmluZSBBRFJOR19CICAgICAgICAgICAgICAgIChBRFJORzApICAgICAgIC8qIDEvNCBWcmVmPD1WaW48MS8yIFZyZWYgKi8KKyNkZWZpbmUgQURSTkdfQyAgICAgICAgICAgICAgICAoQURSTkcxKSAgICAgICAvKiAxLzIgVnJlZjw9VmluPDMvNCBWcmVmICovCisjZGVmaW5lIEFEUk5HX0QgICAgICAgICAgICAgKEFEUk5HMStBRFJORzApICAgICAgICAgICAvKiAzLzQgVnJlZjw9VmluPDEgICBWcmVmICovCisjZGVmaW5lIEFEUk5HX0FVVE8gICAgICAgICAgICAgKEFEQVVUTykgICAgICAgLyogMDw9VmluPDEgICBWcmVmIGF1dG8gZGV0ZWN0IHJhbmdlICovCisKKy8qIERBVEEgUkVHSVNURVIgQUREUkVTUyAqLworU0ZSXzE2QklUKEFEQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQyBEYXRhICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRVBST00gQ09OVFJPTAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRVBST01fXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoRVBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVQUk9NIENvbnRyb2wgKi8KKyNkZWZpbmUgRVBFWEUgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgRVBWUFBTICAgICAgICAgICAgICAgICAoMHgwMikKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgUE9SVDBfVkVDVE9SICAgICAgICAgICAgKDAgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTAgUG9ydCAwIEJpdHMgMi03IFtMb3dlc3QgUHJpb3JpdHldICovCisvKiNkZWZpbmUgUE9SVDBfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZFMCBQb3J0IDAgQml0cyAyLTcgW0xvd2VzdCBQcmlvcml0eV0gKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIEJBU0lDVElNRVJfVkVDVE9SICAgICAgICgxICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUyIEJhc2ljIFRpbWVyICovCisvKiNkZWZpbmUgQkFTSUNUSU1FUl9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBCYXNpYyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJQT1JUX1ZFQ1RPUiAgICAgICAgKDQgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTggVGltZXIvUG9ydCAqLworLyojZGVmaW5lIFRJTUVSUE9SVF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNCIpICAqLyAvKiAweEZGRTggVGltZXIvUG9ydCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQURDX1ZFQ1RPUiAgICAgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgQURDICovCisvKiNkZWZpbmUgQURDX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA1IikgICovIC8qIDB4RkZFQSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgSU8xX1ZFQ1RPUiAgICAgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggRGVkaWNhdGVkIElPIChQMC4xKSAqLworLyojZGVmaW5lIElPMV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMiIpICAqLyAvKiAweEZGRjggRGVkaWNhdGVkIElPIChQMC4xKSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgSU8wX1ZFQ1RPUiAgICAgICAgICAgICAgKDEzICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkEgRGVkaWNhdGVkIElPIChQMC4wKSAqLworLyojZGVmaW5lIElPMF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgRGVkaWNhdGVkIElPIChQMC4wKSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MzJ4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4MzN4LmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDMzeC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYzOTFiODEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDMzeC5oCkBAIC0wLDAgKzEsODAwIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHgzM3ggZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMi4zCisqCisqIFJldi4gMS4yLCBBZGRlZCBkZWZpbml0aW9uIG9mIFVTUElFLgorKgorKiBSZXYuIDEuMywgUmVtb3ZlZCBsZWFkaW5nIDAgdG8gYXZpb2QgaW50ZXJwcmV0YXRpb24gYXMgb2N0YWwKKyogICAgICAgICAgICB2YWx1ZXMgdW5kZXIgQworKiAgICAgICAgICAgSW5jbHVkZWQgPEluNDMwLmg+IHJhdGhlciB0aGFuICJJbjQzMC5oIgorKiAgICAgICAgICAgQ2hhbmdlZCBkZWZpbml0aW9uIG9mIExQTTQgYml0cyAoZGV2aWNlIGVmZmVjdCBub3QgY2hhbmdlZCkKKyogICAgICAgICAgIENvcnJlY3RlZCBMUE14X0VYSVQgdG8gcmVmZXJlbmNlIG5ldyBpbnRyaW5zaWMgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0CisqICAgICAgICAgICBUaGUgZmlsZSBjb250ZW50cyB3ZXJlIHJlb3JkZXJlZAorKiAgICAgICAgICAgQ2hhbmdlZCBUQUlWIHRvIGJlIHJlYWQtb25seQorKiBSZXYuIDEuNCwgRW5jbG9zZSBhbGwgI2RlZmluZSBzdGF0ZW1lbnRzIHdpdGggcGFyZW50aGVzZXMKKyogUmV2LiAxLjUsIEFkZGVkIHNmcmIgZm9yIFRDREFUIGFuZCBUQ1BMRAorKiBSZXYuIDEuNiwgRGVmaW5lZCB2ZWN0b3JzIGZvciBVU0FSVCAoaW4gYWRkaXRpb24gdG8gVUFSVCkKKyogUmV2LiAxLjcsIFJlbW92ZWQgaW5jb3JyZWN0IGxhYmVsICdCVFJFU0VUJworKiBSZXYuIDIuMSwgQWxpZ25tZW50IG9mIGRlZmludGlvbnMgaW4gVXNlcnMgR3VpZGUgYW5kIG9mIHZlcnNpb24gbnVtYmVycworKiBSZXYuIDIuMiwgUmVtb3ZlZCB1bnVzZWQgZGVmIG9mIFRBU1NFTDIKKyogUmV2LiAyLjMsIFJlbW92ZWQgZGVmaW5pdGlvbnMgZm9yIEJUUkVTRVQKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDMzeAorI2RlZmluZSBfX21zcDQzMHgzM3gKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgUDBJRV8wICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgUDBJRV8xICAgICAgICAgICAgICAgICAoMHgwOCkKKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgUDBJRkdfMCAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgUDBJRkdfMSAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBVUlhJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVVFhJRSAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBUUElFICAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBCVElFICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBVUlhJRkcgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVVFhJRkcgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChNRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTW9kdWxlIEVuYWJsZSAyICovCisjZGVmaW5lIFVSWEUgICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVTUElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVUWEUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogV0FUQ0hET0cgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1dEVF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChXRFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBXRFRTU0VMICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBXRFROTUkgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFdEVE5NSUVTICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgV0RUSE9MRCAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisjZGVmaW5lIFdEVFBXICAgICAgICAgICAgICAgICAgKDB4NUEwMCkKKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01ETFlfOCAgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzUgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQURMWV8xMDAwICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BRExZXzI1MCAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xXzkgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgLyogMS45bXMgICAiICovCisvKiBXYXRjaGRvZyBtb2RlIC0+IHJlc2V0IGFmdGVyIGV4cGlyZWQgdGltZSAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NUlNUXzMyICAgICAgICAgKFdEVFBXK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfNSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF8wNjQgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMjUwICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xNiAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAvKiAxLjltcyAgICIgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAweDAxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSEFSRFdBUkUgTVVMVElQTElFUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTVBZX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKE1QWSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1QWVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUNTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQgYW5kIEFjY3VtdWxhdGUvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoT1AyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT3BlcmFuZCAyICovCitTRlJfMTZCSVQoUkVTTE8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IExvdyBXb3JkICovCitTRlJfMTZCSVQoUkVTSEkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IEhpZ2ggV29yZCAqLworU0ZSXzE2QklUKFNVTUVYVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN1bSBFeHRlbmQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQT1JUMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDBJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMCBJbnB1dCAqLworI2RlZmluZSBQMElOXzAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBQMElOXzEgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBQMElOXzIgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBQMElOXzMgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBQMElOXzQgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBQMElOXzUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBQMElOXzYgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBQMElOXzcgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChQME9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAwIE91dHB1dCAqLworI2RlZmluZSBQME9VVF8wICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBQME9VVF8xICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBQME9VVF8yICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBQME9VVF8zICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBQME9VVF80ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBQME9VVF81ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBQME9VVF82ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBQME9VVF83ICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChQMERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAwIERpcmVjdGlvbiAqLworI2RlZmluZSBQMERJUl8wICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBQMERJUl8xICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBQMERJUl8yICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBQMERJUl8zICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBQMERJUl80ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBQMERJUl81ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBQMERJUl82ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBQMERJUl83ICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChQMElGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAwIEludGVycnVwdCBGbGFnICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiBJbnRlcnJ1cHQgRmxhZyAxICovCisvKiAjZGVmaW5lIFAwSUZHXzAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBQMElGR18xICAgICAgICAgICAgIDB4MDIgKi8KKyNkZWZpbmUgUDBJRkdfMiAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgUDBJRkdfMyAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgUDBJRkdfNCAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgUDBJRkdfNSAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgUDBJRkdfNiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgUDBJRkdfNyAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoUDBJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMCBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KKyNkZWZpbmUgUDBJRVNfMCAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgUDBJRVNfMSAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgUDBJRVNfMiAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgUDBJRVNfMyAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgUDBJRVNfNCAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgUDBJRVNfNSAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgUDBJRVNfNiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgUDBJRVNfNyAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoUDBJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMCBJbnRlcnJ1cHQgRW5hYmxlICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKy8qICNkZWZpbmUgUDBJRV8wICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFAwSUVfMSAgICAgICAgICAgICAgMHgwMiAqLworI2RlZmluZSBQMElFXzIgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBQMElFXzMgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBQMElFXzQgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBQMElFXzUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBQMElFXzYgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBQMElFXzcgICAgICAgICAgICAgICAgICgweDgwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQkFTSUMgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0JUX18gICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKEJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJCVCIgKi8KKyNkZWZpbmUgQlRJUDAgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgQlRJUDEgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgQlRJUDIgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgQlRGUkZRMCAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgQlRGUkZRMSAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQlRESVYgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBmQ0xLMiA9IEFDTEs6MjU2ICovCisjZGVmaW5lIEJUSE9MRCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQlQxIGlzIGhlbGQgaWYgdGhpcyBiaXQgaXMgc2V0ICovCisjZGVmaW5lIEJUU1NFTCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogZkJUID0gZk1DTEsgKG1haW4gY2xvY2spICovCisKK1NGUl84QklUKEJUQ05UMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAxICovCitTRlJfOEJJVChCVENOVDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMiAqLworCisvKiBGcmVxdWVuY3kgb2YgdGhlIEJUQ05UMiBjb2RlZCB3aXRoIEJpdCA1IGFuZCA3IGluIEJUQ1RMICovCisjZGVmaW5lIEJUX2ZDTEsyX0FDTEsgICAgICAgICAgKDB4MDApCisjZGVmaW5lIEJUX2ZDTEsyX0FDTEtfRElWMjU2ICAgKEJURElWKQorI2RlZmluZSBCVF9mQ0xLMl9NQ0xLICAgICAgICAgIChCVFNTRUwpCisKKy8qIEludGVycnVwdCBpbnRlcnZhbCB0aW1lIGZJTlQgY29kZWQgd2l0aCBCaXRzIDAtMiBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjoyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY0ICAgICAgICAgIChCVElQMCkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjggICAgICAgICAgKEJUSVAxKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjggKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMTYgICAgICAgICAoQlRJUDErQlRJUDApICAvKiBmSU5UID0gZkNMSzI6MTYgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMzIgICAgICAgICAoQlRJUDIpICAgICAgICAvKiBmSU5UID0gZkNMSzI6MzIgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNjQgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiBmSU5UID0gZkNMSzI6NjQgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMTI4ICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiBmSU5UID0gZkNMSzI6MTI4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjI1NiAgICAgKEJUSVAyK0JUSVAxK0JUSVAwKSAgICAgICAvKiBmSU5UID0gZkNMSzI6MjU2ICovCisvKiBGcmVxdWVuY3kgb2YgTENEIGNvZGVkIHdpdGggQml0cyAzLTQgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYzMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmTENEID0gZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWNjQgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkxDRCA9IGZBQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMTI4ICAgICAgICAgKEJURlJGUTEpICAgICAgLyogZkxDRCA9IGZBQ0xLOjEyOCAqLworI2RlZmluZSBCVF9mTENEX0RJVjI1NiAgICAgIChCVEZSRlExK0JURlJGUTApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9ZkFDTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8xSyAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmQUNMSzozMiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkxDRF81MTIgICAgICAgICAgICAoQlRGUkZRMCkgICAgICAvKiBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEXzI1NiAgICAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZBQ0xLOjEyOCAqLworI2RlZmluZSBCVF9mTENEXzEyOCAgICAgICAgIChCVEZSRlExK0JURlJGUTApICAgICAgICAgLyogZkFDTEs6MjU2ICovCisvKiBMQ0QgZnJlcXVlbmN5IHZhbHVlcyB3aXRoIGZCVD1mTUNMSyAqLworI2RlZmluZSBCVF9mTENEXzMxSyAgICAgICAgICAgIChCVFNTRUwpICAgICAgIC8qIGZNQ0xLOjMyICovCisjZGVmaW5lIEJUX2ZMQ0RfMTVfNUsgICAgICAgKEJUU1NFTCtCVEZSRlEwKSAgICAgICAgICAvKiBmTUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEXzdfOEsgICAgICAgIChCVFNTRUwrQlRGUkZRMStCVEZSRlEwKSAgLyogZk1DTEs6MjU2ICovCisvKiB3aXRoIGFzc3VtZWQgdmx1ZXMgb2YgZkFDTEs9MzJLSHosIGZNQ0xLPTFNSHogKi8KKy8qIGZCVD1mQUNMSyBpcyB0aG91Z2h0IGZvciBsb25nZXIgaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzA2NCAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAwLjA2NG1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9BRExZXzBfMTI1ICAgICAgICAgIChCVElQMCkgICAgICAgIC8qIDAuMTI1bXMgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzBfMjUgICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIDAuMjVtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzBfNSAgICAgICAgICAgIChCVElQMStCVElQMCkgIC8qIDAuNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEgICAgICAgICAgICAgIChCVElQMikgICAgICAgIC8qIDFtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIgICAgICAgICAgICAgIChCVElQMitCVElQMCkgIC8qIDJtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzQgICAgICAgICAgICAgIChCVElQMitCVElQMSkgIC8qIDRtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzggICAgICAgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogOG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTYgICAgICAgICAgICAgKEJURElWKSAgICAgICAgLyogMTZtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMzIgICAgICAgICAgICAgKEJURElWK0JUSVAwKSAgLyogMzJtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNjQgICAgICAgICAgICAgKEJURElWK0JUSVAxKSAgLyogNjRtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTI1ICAgICAgICAgKEJURElWK0JUSVAxK0JUSVAwKSAgICAgICAvKiAxMjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yNTAgICAgICAgICAgICAoQlRESVYrQlRJUDIpICAvKiAyNTBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV81MDAgICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDApICAgICAgIC8qIDUwMG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMSkgICAgICAgLyogMTAwMG1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxK0JUSVAwKSAvKiAyMDAwbXMgICAgICIgKi8KKy8qIGZDTEsyPWZNQ0xLICgxTUh6KSBpcyB0aG91Z2h0IGZvciBzaG9ydCBpbnRlcnZhbCB0aW1lcyAqLworLyogdGhlIHRpbWluZyBmb3Igc2hvcnQgaW50ZXJ2YWxzIGlzIG1vcmUgcHJlY2lzZSB0aGFuIEFDTEsgKi8KKy8qIE5PVEUgKi8KKy8qIEJlIHN1cmUgdGhhdCB0aGUgU0NGUUNUTC1SZWdpc3RlciBpcyBzZXQgdG8gMDFGaCBzbyB0aGF0IGZNQ0xLPTFNSHogKi8KKy8qIFRvbyBsb3cgaW50ZXJ2YWwgdGltZSByZXN1bHRzIGluIGludGVycnVwdHMgdG9vIGZyZXF1ZW50IGZvciB0aGUgcHJvY2Vzc29yIHRvIGhhbmRsZSEgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwMiAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiAwLjAwMm1zIGludGVydmFsICAgICAgICoqKiBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9NRExZXzBfMDA0ICAgICAgICAgIChCVFNTRUwrQlRJUDApIC8qIDAuMDA0bXMgICAgIiAgICAgICAgICAgKioqIHRvbyBzaG9ydCBmb3IgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwOCAgICAgICAgICAoQlRTU0VMK0JUSVAxKSAvKiAwLjAwOG1zICAgICIgICAgICAgICAgICoqKiBpbnRlcnJ1cHQgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAxNiAgICAgICAoQlRTU0VMK0JUSVAxK0JUSVAwKSAgICAgIC8qIDAuMDE2bXMgICAgIiAgICAgICAgICAgKioqIGhhbmRsaW5nICovCisjZGVmaW5lIEJUX01ETFlfMF8wMzIgICAgICAgICAgKEJUU1NFTCtCVElQMikgLyogMC4wMzJtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8wNjQgICAgICAgKEJUU1NFTCtCVElQMitCVElQMCkgICAgICAvKiAwLjA2NG1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzEyNSAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxKSAgICAgIC8qIDAuMTI1bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMjUgICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDErQlRJUDApLyogMC4yNW1zICAgICAiICovCisKKy8qIFJlc2V0L0hvbGQgY29kZWQgd2l0aCBCaXRzIDYtNyBpbiBCVCgxKUNUTCAqLworLyogdGhpcyBpcyBmb3IgQlQgKi8KKy8vI2RlZmluZSBCVFJFU0VUX0NOVDEgICAgICAgIChCVFJFU0VUKSAgICAgICAgICAgLyogQlRDTlQxIGlzIHJlc2V0IHdoaWxlIEJUUkVTRVQgaXMgc2V0ICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxXzIgICAgICAoQlRSRVNFVCtCVERJVikgICAgIC8qIEJUQ05UMSAuQU5ELiBCVENOVDIgYXJlIHJlc2V0IHdoaWxlIH4gaXMgc2V0ICovCisvKiB0aGlzIGlzIGZvciBCVDEgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDEgICAgICAgICAgICAoQlRIT0xEKSAgICAgICAvKiBCVENOVDEgaXMgaGVsZCB3aGlsZSBCVEhPTEQgaXMgc2V0ICovCisjZGVmaW5lIEJUSE9MRF9DTlQxXzIgICAgICAgICAgKEJUSE9MRCtCVERJVikgLyogQlQxQ05UMSAuQU5ELiBCVDFDTlQyIGFyZSBoZWxkIHdoaWxlIH4gaXMgc2V0ICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MIEJJVFMgKi8KKy8qICNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAweDgwICovCisvKiAjZGVmaW5lIEJUSUZHICAgICAgICAgICAgICAgMHg4MCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNZU1RFTSBDTE9DSyBHRU5FUkFUT1IKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMTF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNDRkkwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMCAqLworI2RlZmluZSBGTl8yICAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBGTl8zICAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBGTl80ICAgICAgICAgICAgICAgICAgICgweDEwKQorCitTRlJfOEJJVChTQ0ZJMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDEgKi8KK1NGUl84QklUKFNDRlFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KKy8qIFN5c3RlbSBjbG9jayBmcmVxdWVuY3kgdmFsdWVzIGZNQ0xLIGNvZGVkIHdpdGggQml0cyAwLTYgaW4gU0NGUUNUTCAqLworLyogI2RlZmluZSBTQ0ZRXzMySyAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICBmTUNMSz0xKmZBQ0xLICAgICAgICAgIG9ubHkgYSByYW5nZSBmcm9tICovCisvKiAjZGVmaW5lIFNDRlFfNjRLICAgICAgICAgICAgMHgwMSAgICAgICAgICAgICAgICAgICAgICAgIGZNQ0xLPTIqZkFDTEsgICAgICAgICAgMysxIHRvIDEyNysxIGlzIHBvc3NpYmxlICovCisjZGVmaW5lIFNDRlFfMTI4SyAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogZk1DTEs9NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzI1NksgICAgICAgICAgICAgICgweDA3KSAgICAgICAgIC8qIGZNQ0xLPTgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV81MTJLICAgICAgICAgICAgICAoMHgwRikgICAgICAgICAvKiBmTUNMSz0xNipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzFNICAgICAgICAgICAgICAgICgweDFGKSAgICAgICAgIC8qIGZNQ0xLPTMyKmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMk0gICAgICAgICAgICAgICAgKDB4M0YpICAgICAgICAgLyogZk1DTEs9NjQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV80TSAgICAgICAgICAgICAgICAoMHg3RikgICAgICAgICAvKiBmTUNMSz0xMjgqZkFDTEsgICAgICAgIG5vdCBwb3NzaWJsZSBmb3IgSUNFICovCisKK1NGUl84QklUKENCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDcnlzdGFsIEJ1ZmZlciBDb250cm9sICoqKiBXUklURS1PTkxZICoqKiAqLworI2RlZmluZSBDQkUgICAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBDQlNFTDAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBDQlNFTDEgICAgICAgICAgICAgICAgICgweDA0KQorLyogU291cmNlIHNlbGVjdCBvZiBmcmVxdWVuY3kgYXQgb3V0cHV0IHBpbiBYQlVGIGNvZGVkIHdpdGggQml0cyAxLTIgaW4gQ0JDVEwgKi8KKyNkZWZpbmUgQ0JTRUxfQUNMSyAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBzb3VyY2UgaXMgQUNMSyAgICAgICAgIChkZWZhdWx0IGFmdGVyIFBPUikgKi8KKyNkZWZpbmUgQ0JTRUxfQUNMS19ESVYyICAgICAgICAoQ0JTRUwwKSAgICAgICAvKiBzb3VyY2UgaXMgQUNMSy8yICovCisjZGVmaW5lIENCU0VMX0FDTEtfRElWNCAgICAgICAgKENCU0VMMSkgICAgICAgLyogc291cmNlIGlzIEFDTEsvNCAqLworI2RlZmluZSBDQlNFTF9NQ0xLICAgICAgICAgIChDQlNFTDErQ0JTRUwwKSAgICAgICAgICAgLyogc291cmNlIGlzIE1DTEsgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgMHgwMiAqLworLyogI2RlZmluZSBPRklFICAgICAgICAgICAgICAgIDB4MDIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBMQ0QgUkVHSVNURVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0xDRF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKExDRENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgQ29udHJvbCAqLworLyogdGhlIG5hbWVzIG9mIHRoZSBtb2RlIGJpdHMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBzcGVjICovCisjZGVmaW5lIExDRE9OICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIExDRExPV1IgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIExDRFNPTiAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIExDRE1YMCAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIExDRE1YMSAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIExDRFAwICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIExDRFAxICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIExDRFAyICAgICAgICAgICAgICAgICAgKDB4ODApCisvKiBEaXNwbGF5IG1vZGVzIGNvZGVkIHdpdGggQml0cyAyLTQgKi8KKyNkZWZpbmUgTENEU1RBVElDICAgICAgICAgICAgICAoTENEU09OKQorI2RlZmluZSBMQ0QyTVVYICAgICAgICAgICAgICAgIChMQ0RNWDArTENEU09OKQorI2RlZmluZSBMQ0QzTVVYICAgICAgICAgICAgICAgIChMQ0RNWDErTENEU09OKQorI2RlZmluZSBMQ0Q0TVVYICAgICAgICAgICAgICAgIChMQ0RNWDErTENETVgwK0xDRFNPTikKKy8qIEdyb3VwIHNlbGVjdCBjb2RlIHdpdGggQml0cyA1LTcgICAgICAgICAgICAgICAgICAgICBTZWcubGluZXMgICBEaWcub3V0cHV0ICovCisjZGVmaW5lIExDRFNHMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogUzAgIC0gUzEgICAgTzIgIC0gTzI5IChkZWZhdWx0KSAqLworI2RlZmluZSBMQ0RTRzBfMSAgICAgICAgICAgICAgIChMQ0RQMCkgICAgICAgIC8qIFMwICAtIFM1ICAgIE82ICAtIE8yOSAqLworI2RlZmluZSBMQ0RTRzBfMiAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFM5ICAgIE8xMCAtIE8yOSAqLworI2RlZmluZSBMQ0RTRzBfMyAgICAgICAgICAgICAgIChMQ0RQMStMQ0RQMCkgIC8qIFMwICAtIFMxMyAgIE8xNCAtIE8yOSAqLworI2RlZmluZSBMQ0RTRzBfNCAgICAgICAgICAgICAgIChMQ0RQMikgICAgICAgIC8qIFMwICAtIFMxNyAgIE8xOCAtIE8yOSAqLworI2RlZmluZSBMQ0RTRzBfNSAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMyMSAgIE8yMiAtIE8yOSAqLworI2RlZmluZSBMQ0RTRzBfNiAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMSkgIC8qIFMwICAtIFMyNSAgIE8yNiAtIE8yOSAqLworI2RlZmluZSBMQ0RTRzBfNyAgICAgICAgICAgIChMQ0RQMitMQ0RQMStMQ0RQMCkgICAgICAgLyogUzAgIC0gUzI5ICAgLS0tLS0tLS0tICovCisvKiBOT1RFOiBZT1UgQ0FOIE9OTFkgVVNFIFRIRSAnUycgT1IgJ0cnIERFQ0xBUkFUSU9OUyBGT1IgQSBDT01NQU5EICovCisvKiBNT1YgICNMQ0RTRzBfMytMQ0RPRzJfNywmTENEQ1RMIEFDVFVBTFkgTUVBTlMgTU9WICAjTENEUDEsJkxDRENUTCEgKi8KKyNkZWZpbmUgTENET0cxXzcgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTMCAgLSBTMSAgICBPMiAgLSBPMjkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRE9HMl83ICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzUgICAgTzYgIC0gTzI5ICovCisjZGVmaW5lIExDRE9HM183ICAgICAgICAgICAgICAgKExDRFAxKSAgICAgICAgLyogUzAgIC0gUzkgICAgTzEwIC0gTzI5ICovCisjZGVmaW5lIExDRE9HNF83ICAgICAgICAgICAgICAgKExDRFAxK0xDRFAwKSAgLyogUzAgIC0gUzEzICAgTzE0IC0gTzI5ICovCisjZGVmaW5lIExDRE9HNV83ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzE3ICAgTzE4IC0gTzI5ICovCisjZGVmaW5lIExDRE9HNl83ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAwKSAgLyogUzAgIC0gUzIxICAgTzIyIC0gTzI5ICovCisjZGVmaW5lIExDRE9HNyAgICAgICAgICAgICAgICAgKExDRFAyK0xDRFAxKSAgLyogUzAgIC0gUzI1ICAgTzI2IC0gTzI5ICovCisjZGVmaW5lIExDRE9HT0ZGICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMjkgICAtLS0tLS0tLS0gKi8KKworI2RlZmluZSBMQ0RNRU1fICAgICAgICAgICAgICAgICgweDAwMzEpICAgICAgIC8qIExDRCBNZW1vcnkgKi8KKyNpZmRlZiBfX0FTTV9IRUFERVJfXworI2RlZmluZSBMQ0RNRU0gICAgICAgICAgICAgICAgIChMQ0RNRU1fKSAgICAgIC8qIExDRCBNZW1vcnkgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBMQ0RNRU0gICAgICAgICAgICAgICAgICgoY2hhciopICAgICAgIExDRE1FTV8pIC8qIExDRCBNZW1vcnkgKGZvciBDKSAqLworI2VuZGlmCitTRlJfOEJJVChMQ0RNMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxICovCitTRlJfOEJJVChMQ0RNMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAyICovCitTRlJfOEJJVChMQ0RNMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAzICovCitTRlJfOEJJVChMQ0RNNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA0ICovCitTRlJfOEJJVChMQ0RNNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA1ICovCitTRlJfOEJJVChMQ0RNNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA2ICovCitTRlJfOEJJVChMQ0RNNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA3ICovCitTRlJfOEJJVChMQ0RNOCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA4ICovCitTRlJfOEJJVChMQ0RNOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA5ICovCitTRlJfOEJJVChMQ0RNMTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMCAqLworU0ZSXzhCSVQoTENETTExKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTEgKi8KK1NGUl84QklUKExDRE0xMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEyICovCitTRlJfOEJJVChMQ0RNMTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMyAqLworU0ZSXzhCSVQoTENETTE0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTQgKi8KK1NGUl84QklUKExDRE0xNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE1ICovCisKKyNkZWZpbmUgTENETUEgICAgICAgICAgICAgICAgICAoTENETTEwKSAgICAgICAvKiBMQ0QgTWVtb3J5IEEgKi8KKyNkZWZpbmUgTENETUIgICAgICAgICAgICAgICAgICAoTENETTExKSAgICAgICAvKiBMQ0QgTWVtb3J5IEIgKi8KKyNkZWZpbmUgTENETUMgICAgICAgICAgICAgICAgICAoTENETTEyKSAgICAgICAvKiBMQ0QgTWVtb3J5IEMgKi8KKyNkZWZpbmUgTENETUQgICAgICAgICAgICAgICAgICAoTENETTEzKSAgICAgICAvKiBMQ0QgTWVtb3J5IEQgKi8KKyNkZWZpbmUgTENETUUgICAgICAgICAgICAgICAgICAoTENETTE0KSAgICAgICAvKiBMQ0QgTWVtb3J5IEUgKi8KKyNkZWZpbmUgTENETUYgICAgICAgICAgICAgICAgICAoTENETTE1KSAgICAgICAvKiBMQ0QgTWVtb3J5IEYgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVUFSVDBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIENvbnRyb2wgKi8KK1NGUl84QklUKFVUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgUmVjZWl2ZSBDb250cm9sICovCitTRlJfOEJJVChVTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCBCdWFkIFJhdGUgMSAqLworU0ZSXzhCSVQoUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgVHJhbnNtaXQgQnVmZmVyICovCisKKyNkZWZpbmUgUEVOQSAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVQ1RMICovCisjZGVmaW5lIFBFViAgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFNQQiAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBzdGFja3BvaW50ZXIgU1AgKi8KKyNkZWZpbmUgQ0hBUiAgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTElTVEVOICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgU1lOQyAgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTU0gICAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgU1dSU1QgICAgICAgICAgICAgICAgICAoMHgwMSkKKworI2RlZmluZSBDS1BIICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVUQ1RMICovCisjZGVmaW5lIENLUEwgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFNTRUwxICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFNTRUwwICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVSWFNFICAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIFRYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFNUQyAgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFRYRVBUICAgICAgICAgICAgICAgICAgKDB4MDEpCisKKyNkZWZpbmUgRkUgICAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVUkNUTCAqLworI2RlZmluZSBQRSAgICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBPRSAgICAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBCUksgICAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBVUlhFSUUgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBVUlhXSUUgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBSWFdBS0UgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBSWEVSUiAgICAgICAgICAgICAgICAgICgweDAxKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEE1CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTVfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQUNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQUNDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDMgKi8KK1NGUl8xNkJJVChUQUNDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDQgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQUNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCitTRlJfMTZCSVQoVEFDQ1IzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMyAqLworU0ZSXzE2QklUKFRBQ0NSNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDQgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDVEwzICAgICAgICAgICAgICAgICAgVEFDQ1RMMyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAzICovCisjZGVmaW5lIENDVEw0ICAgICAgICAgICAgICAgICAgVEFDQ1RMNCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA0ICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDUjMgICAgICAgICAgICAgICAgICAgVEFDQ1IzICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMyAqLworI2RlZmluZSBDQ1I0ICAgICAgICAgICAgICAgICAgIFRBQ0NSNCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDQgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NUTDNfICAgICAgICAgICAgICAgICBUQUNDVEwzXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDMgKi8KKyNkZWZpbmUgQ0NUTDRfICAgICAgICAgICAgICAgICBUQUNDVEw0XyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDQgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NSM18gICAgICAgICAgICAgICAgICBUQUNDUjNfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAzICovCisjZGVmaW5lIENDUjRfICAgICAgICAgICAgICAgICAgVEFDQ1I0XyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgNCAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTVJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IzICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogVEFDQ1IzX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1I0ICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogVEFDQ1I0X0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiA4QklUIFRJTUVSL0NPVU5URVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTXzhCVENfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFRDQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lci9Db3VudGVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIlRDIiAqLworI2RlZmluZSBUQ1JYRCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBUQ1RYRCAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBUQ1JYQUNUICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBUQ0VOQ05UICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBUQ1RYRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBUQ0lTQ1RMICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBUQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBUQ1NTRUwxICAgICAgICAgICAgICAgICgweDgwKQorLyogU291cmNlIHNlbGVjdCBvZiBjbG9jayBpbnB1dCBjb2RlZCB3aXRoIEJpdHMgNi03ICovCisjZGVmaW5lIFRDU1NFTF9QMDEgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogc291cmNlIGlzIHNpZ25hbCBhdCBwaW4gUDAuMSAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgVENTU0VMX0FDTEsgICAgICAgICAgICAoVENTU0VMMCkgICAgICAvKiBzb3VyY2UgaXMgQUNMSyAqLworI2RlZmluZSBUQ1NTRUxfTUNMSyAgICAgICAgICAgIChUQ1NTRUwxKSAgICAgIC8qIHNvdXJjZSBpcyBNQ0xLICovCisjZGVmaW5lIFRDU1NFTF9QMDFfTUNMSyAgICAgKFRDU1NFTDErVENTU0VMMCkgICAgICAgICAvKiBzb3VyY2UgaXMgc2lnbmFsIHBpbiBQMC4xIC5BTkQuIE1DTEsgKi8KKworU0ZSXzhCSVQoVENQTEQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyL0NvdW50ZXIgUHJlbG9hZCAqLworU0ZSXzhCSVQoVENEQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyL0NvdW50ZXIgRGF0YSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRJTUVSL1BPUlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RQX18gICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFRQQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lci9Qb3J0IENvbnRyb2wgKi8KKyNkZWZpbmUgRU4xRkcgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgUkMxRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgUkMyRkcgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgRU4xICAgICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgRU5BICAgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgRU5CICAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVFBTU0VMMCAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVFBTU0VMMSAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIFRoZSBFTjEgc2lnbmFsIG9mIFRQQ05UMSBpcyBjb2RlZCB3aXRoIHdpdGggQml0cyAzLTUgaW4gVFBDVEwgKi8KKyNkZWZpbmUgVFBDTlQxX0VOX09GRiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBUUENOVDEgaXMgZGlzYWJsZWQgKi8KKyNkZWZpbmUgVFBDTlQxX0VOX09OICAgICAgICAgICAoRU5BKSAgICAgICAgICAvKiAgICIgICAgaXMgZW5hYmxlZCAqLworI2RlZmluZSBUUENOVDFfRU5fblRQSU41ICAgICAgIChFTkIpICAgICAgICAgIC8qICAgIiAgICBpcyBlbmFibGVkIHdpdGggflRQSU4uNSAqLworI2RlZmluZSBUUENOVDFfRU5fVFBJTjUgICAgICAgIChUUFNTRUwwK0VOQikgIC8qICAgIiAgICBpcyBlbmFibGVkIHdpdGggVFBJTi41ICovCisjZGVmaW5lIFRQQ05UMV9FTl9uQ0lOICAgICAgICAgKEVOQitFTkEpICAgICAgLyogICAiICAgIGlzIGVuYWJsZWQgd2l0aCB+Q0lOICovCisjZGVmaW5lIFRQQ05UMV9FTl9DSU4gICAgICAgIChUUFNTRUwwK0VOQitFTkEpICAgICAgIC8qICAgIiAgICBpcyBlbmFibGVkIHdpdGggQ0lOICovCisKKy8qIFNvdXJjZSBzZWxlY3Qgb2YgY2xvY2sgaW5wdXQgY29kZWQgd2l0aCBCaXRzIDYtNyBpbiBUUENUTCAqLworI2RlZmluZSBUUFNTRUxfQ0xLMV9DSU4gICAgICAgICgweDAwKSAgICAgICAgIC8qIENMSzEgc291cmNlIGlzIHNpZ25hbCBhdCBDSU4gICAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgVFBTU0VMX0NMSzFfQUNMSyAgICAgICAoVFBTU0VMMCkgICAgICAvKiBDTEsxIHNvdXJjZSBpcyBBQ0xLICovCisjZGVmaW5lIFRQU1NFTF9DTEsxX01DTEsgICAgICAgKFRQU1NFTDEpICAgICAgLyogQ0xLMSBzb3VyY2UgaXMgTUNMSyAqLworCisvKiBEQVRBIFJFR0lTVEVSIEFERFJFU1NFUyAqLworU0ZSXzhCSVQoVFBDTlQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyL1BvcnQgQ291bnRlciAxICovCitTRlJfOEJJVChUUENOVDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIvUG9ydCBDb3VudGVyIDIgKi8KKworU0ZSXzhCSVQoVFBEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyL1BvcnQgRGF0YSAqLworI2RlZmluZSBUUERfMCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBUUERfMSAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBUUERfMiAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBUUERfMyAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBUUERfNCAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBUUERfNSAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBDUE9OICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBCMTYgICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChUUEUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIvUG9ydCBFbmFibGUgKi8KKyNkZWZpbmUgVFBFXzAgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVFBFXzEgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVFBFXzIgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVFBFXzMgICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgVFBFXzQgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVFBFXzUgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVFBTU0VMMiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVFBTU0VMMyAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIFNvdXJjZSBzZWxlY3Qgb2YgY2xvY2sgaW5wdXQgY29kZWQgd2l0aCBCaXRzIDYtNyBpbiBUUEUKKyAgIE5PVEU6IElmIHRoZSBjb250cm9sIGJpdCBCMTYgaW4gVFBEIGlzIHNldCwgVFBTU0VMMi8zCisgICAgICAgICBhcmUgJ2Rvbid0IGNhcmUnIGFuZCB0aGUgY2xvY2sgc291cmNlIG9mIGNvdW50ZXIKKyAgICAgICAgIFRQQ05UMiBpcyB0aGUgc2FtZSBhcyBvZiB0aGUgY291bnRlciBUUENOVDEuICovCisjZGVmaW5lIFRQU1NFTF9DTEsyX1RQSU41ICAgICAgKDB4MDApICAgICAgICAgLyogQ0xLMiBzb3VyY2UgaXMgc2lnbmFsIFRQSU4uNSAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgVFBTU0VMX0NMSzJfQUNMSyAgICAgICAoVFBTU0VMMikgICAgICAvKiBDTEsyIHNvdXJjZSBpcyBBQ0xLICovCisjZGVmaW5lIFRQU1NFTF9DTEsyX01DTEsgICAgICAgKFRQU1NFTDMpICAgICAgLyogQ0xLMiBzb3VyY2UgaXMgTUNMSyAqLworI2RlZmluZSBUUFNTRUxfQ0xLMl9PRkYgICAgIChUUFNTRUwzK1RQU1NFTDIpLyogQ0xLMiBzb3VyY2UgaXMgZGlzYWJsZWQgICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRVBST00gQ09OVFJPTAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRVBST01fXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoRVBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVQUk9NIENvbnRyb2wgKi8KKyNkZWZpbmUgRVBFWEUgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgRVBWUFBTICAgICAgICAgICAgICAgICAoMHgwMikKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgUE9SVDBfVkVDVE9SICAgICAgICAgICAgKDAgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTAgUG9ydCAwIEJpdHMgMi03IFtMb3dlc3QgUHJpb3JpdHldICovCisvKiNkZWZpbmUgUE9SVDBfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZFMCBQb3J0IDAgQml0cyAyLTcgW0xvd2VzdCBQcmlvcml0eV0gKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIEJBU0lDVElNRVJfVkVDVE9SICAgICAgICgxICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUyIEJhc2ljIFRpbWVyICovCisvKiNkZWZpbmUgQkFTSUNUSU1FUl9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBCYXNpYyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDIgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAyIikgICovIC8qIDB4RkZFNCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUlBPUlRfVkVDVE9SICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBUaW1lci9Qb3J0ICovCisvKiNkZWZpbmUgVElNRVJQT1JUX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA0IikgICovIC8qIDB4RkZFOCBUaW1lci9Qb3J0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVFRYX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBVU0FSVCBUcmFuc21pdCAqLworLyojZGVmaW5lIFVTQVJUVFhfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVVNBUlQgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUUlhfVkVDVE9SICAgICAgICAgICg3ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIFVTQVJUIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0FSVFJYX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDciKSAgKi8gLyogMHhGRkVFIFVTQVJUIFJlY2VpdmUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTFfVkVDVE9SICAgICAgICAgICg4ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFRpbWVyIEEgQ0MxLTQsIFRBICovCisvKiNkZWZpbmUgVElNRVJBMV9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBUaW1lciBBIENDMS00LCBUQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMF9WRUNUT1IgICAgICAgICAgKDkgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjIgVGltZXIgQSBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUkEwX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFRpbWVyIEEgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIElPMV9WRUNUT1IgICAgICAgICAgICAgICgxMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY4IERlZGljYXRlZCBJTyAoUDAuMSkgKi8KKy8qI2RlZmluZSBJTzFfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IERlZGljYXRlZCBJTyAoUDAuMSkgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIElPMF9WRUNUT1IgICAgICAgICAgICAgICgxMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZBIERlZGljYXRlZCBJTyAoUDAuMCkgKi8KKy8qI2RlZmluZSBJTzBfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTMiKSAgKi8gLyogMHhGRkZBIERlZGljYXRlZCBJTyAoUDAuMCkgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4MzN4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4NDE1LmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDQxNS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhMjJhNjkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDQxNS5oCkBAIC0wLDAgKzEsNzQ4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHg0MTUgYW5kIE1TUDQzMHg0MTcgZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMS40CisqCisqIFJldi4gMS4wLCAtCisqIFJldi4gMS4xLCBSZW1vdmVkIHVudXNlZCBkZWYgb2YgVEFTU0VMMgorKiBSZXYuIDEuMiwgQWRkZWQgVkxEIGJpdHMgaW4gU1ZTIG1vZHVsZQorKiBSZXYuIDEuMywgUmVtb3ZlZCBkZWZpbml0aW9ucyBmb3IgQlRSRVNFVAorKiBSZXYuIDEuNCwgYWRkZWQgZGVmaW5pdGlvbnMgZm9yIEludGVycnVwdCBWZWN0b3JzIHh4SVYKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDQxeAorI2RlZmluZSBfX21zcDQzMHg0MXgKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkKKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBCVElFICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgICAgICgweDgwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDUvNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ2X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA1SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgSW5wdXQgKi8KK1NGUl84QklUKFA1T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgT3V0cHV0ICovCitTRlJfOEJJVChQNURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDVTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJBU0lDIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CVF9fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChCVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiQlQiICovCisjZGVmaW5lIEJUSVAwICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEJUSVAxICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIEJUSVAyICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEJURlJGUTAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJURlJGUTEgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEJURElWICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkNMSzIgPSBBQ0xLOjI1NiAqLworI2RlZmluZSBCVEhPTEQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEJUMSBpcyBoZWxkIGlmIHRoaXMgYml0IGlzIHNldCAqLworI2RlZmluZSBCVFNTRUwgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIGZCVCA9IGZNQ0xLIChtYWluIGNsb2NrKSAqLworCitTRlJfOEJJVChCVENOVDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMSAqLworU0ZSXzhCSVQoQlRDTlQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDIgKi8KKworLyogRnJlcXVlbmN5IG9mIHRoZSBCVENOVDIgY29kZWQgd2l0aCBCaXQgNSBhbmQgNyBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9BQ0xLICAgICAgICAgICgweDAwKQorI2RlZmluZSBCVF9mQ0xLMl9BQ0xLX0RJVjI1NiAgIChCVERJVikKKyNkZWZpbmUgQlRfZkNMSzJfTUNMSyAgICAgICAgICAoQlRTU0VMKQorCisvKiBJbnRlcnJ1cHQgaW50ZXJ2YWwgdGltZSBmSU5UIGNvZGVkIHdpdGggQml0cyAwLTIgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmSU5UID0gZkNMSzI6MiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNCAgICAgICAgICAoQlRJUDApICAgICAgICAvKiBmSU5UID0gZkNMSzI6NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY4ICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjE2ICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjE2ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjMyICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjMyICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjY0ICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjY0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjEyOCAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogZklOVCA9IGZDTEsyOjEyOCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyNTYgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogZklOVCA9IGZDTEsyOjI1NiAqLworLyogRnJlcXVlbmN5IG9mIExDRCBjb2RlZCB3aXRoIEJpdHMgMy00ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMzIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEX0RJVjY0ICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEX0RJVjEyOCAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYyNTYgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZBQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMUsgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfNTEyICAgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF8yNTYgICAgICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF8xMjggICAgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9Zk1DTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8zMUsgICAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiBmTUNMSzozMiAqLworI2RlZmluZSBCVF9mTENEXzE1XzVLICAgICAgIChCVFNTRUwrQlRGUkZRMCkgICAgICAgICAgLyogZk1DTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF83XzhLICAgICAgICAoQlRTU0VMK0JURlJGUTErQlRGUkZRMCkgIC8qIGZNQ0xLOjI1NiAqLworLyogd2l0aCBhc3N1bWVkIHZsdWVzIG9mIGZBQ0xLPTMyS0h6LCBmTUNMSz0xTUh6ICovCisvKiBmQlQ9ZkFDTEsgaXMgdGhvdWdodCBmb3IgbG9uZ2VyIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX0FETFlfMF8wNjQgICAgICAgICAgKDB4MDApICAgICAgICAgLyogMC4wNjRtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzEyNSAgICAgICAgICAoQlRJUDApICAgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzI1ICAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiAwLjI1bXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzUgICAgICAgICAgICAoQlRJUDErQlRJUDApICAvKiAwLjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xICAgICAgICAgICAgICAoQlRJUDIpICAgICAgICAvKiAxbXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yICAgICAgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiAybXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV80ICAgICAgICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiA0bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV84ICAgICAgICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIDhtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzE2ICAgICAgICAgICAgIChCVERJVikgICAgICAgIC8qIDE2bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzMyICAgICAgICAgICAgIChCVERJVitCVElQMCkgIC8qIDMybXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzY0ICAgICAgICAgICAgIChCVERJVitCVElQMSkgIC8qIDY0bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEyNSAgICAgICAgIChCVERJVitCVElQMStCVElQMCkgICAgICAgLyogMTI1bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjUwICAgICAgICAgICAgKEJURElWK0JUSVAyKSAgLyogMjUwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNTAwICAgICAgICAgKEJURElWK0JUSVAyK0JUSVAwKSAgICAgICAvKiA1MDBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDEpICAgICAgIC8qIDEwMDBtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMStCVElQMCkgLyogMjAwMG1zICAgICAiICovCisvKiBmQ0xLMj1mTUNMSyAoMU1IeikgaXMgdGhvdWdodCBmb3Igc2hvcnQgaW50ZXJ2YWwgdGltZXMgKi8KKy8qIHRoZSB0aW1pbmcgZm9yIHNob3J0IGludGVydmFscyBpcyBtb3JlIHByZWNpc2UgdGhhbiBBQ0xLICovCisvKiBOT1RFICovCisvKiBCZSBzdXJlIHRoYXQgdGhlIFNDRlFDVEwtUmVnaXN0ZXIgaXMgc2V0IHRvIDAxRmggc28gdGhhdCBmTUNMSz0xTUh6ICovCisvKiBUb28gbG93IGludGVydmFsIHRpbWUgcmVzdWx0cyBpbiBpbnRlcnJ1cHRzIHRvbyBmcmVxdWVudCBmb3IgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUhICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDIgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogMC4wMDJtcyBpbnRlcnZhbCAgICAgICAqKiogaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwNCAgICAgICAgICAoQlRTU0VMK0JUSVAwKSAvKiAwLjAwNG1zICAgICIgICAgICAgICAgICoqKiB0b28gc2hvcnQgZm9yICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDggICAgICAgICAgKEJUU1NFTCtCVElQMSkgLyogMC4wMDhtcyAgICAiICAgICAgICAgICAqKiogaW50ZXJydXB0ICovCisjZGVmaW5lIEJUX01ETFlfMF8wMTYgICAgICAgKEJUU1NFTCtCVElQMStCVElQMCkgICAgICAvKiAwLjAxNm1zICAgICIgICAgICAgICAgICoqKiBoYW5kbGluZyAqLworI2RlZmluZSBCVF9NRExZXzBfMDMyICAgICAgICAgIChCVFNTRUwrQlRJUDIpIC8qIDAuMDMybXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMDY0ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDApICAgICAgLyogMC4wNjRtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8xMjUgICAgICAgKEJUU1NFTCtCVElQMitCVElQMSkgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzI1ICAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxK0JUSVAwKS8qIDAuMjVtcyAgICAgIiAqLworCisvKiBSZXNldC9Ib2xkIGNvZGVkIHdpdGggQml0cyA2LTcgaW4gQlQoMSlDVEwgKi8KKy8qIHRoaXMgaXMgZm9yIEJUICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxICAgICAgICAoQlRSRVNFVCkgICAgICAgICAgIC8qIEJUQ05UMSBpcyByZXNldCB3aGlsZSBCVFJFU0VUIGlzIHNldCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMV8yICAgICAgKEJUUkVTRVQrQlRESVYpICAgICAvKiBCVENOVDEgLkFORC4gQlRDTlQyIGFyZSByZXNldCB3aGlsZSB+IGlzIHNldCAqLworLyogdGhpcyBpcyBmb3IgQlQxICovCisjZGVmaW5lIEJUSE9MRF9DTlQxICAgICAgICAgICAgKEJUSE9MRCkgICAgICAgLyogQlRDTlQxIGlzIGhlbGQgd2hpbGUgQlRIT0xEIGlzIHNldCAqLworI2RlZmluZSBCVEhPTERfQ05UMV8yICAgICAgICAgIChCVEhPTEQrQlRESVYpIC8qIEJUMUNOVDEgLkFORC4gQlQxQ05UMiBhcmUgaGVsZCB3aGlsZSB+IGlzIHNldCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiAjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgMHg4MCAqLworLyogI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgIDB4ODAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTWVNURU0gQ0xPQ0ssIEZMTCsgKHg0MXgpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTExQTFVTX1NNQUxMX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTQ0ZJMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDAgKi8KKyNkZWZpbmUgRk5fMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBmRENPQ0xLID0gICAxLjQtMTJNSHoqLworI2RlZmluZSBGTl8zICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDIuMi0xN01oeiovCisjZGVmaW5lIEZOXzQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogZkRDT0NMSyA9ICAgMy4yLTI1TWh6Ki8KKyNkZWZpbmUgRk5fOCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBmRENPQ0xLID0gICAgIDUtNDBNaHoqLworI2RlZmluZSBGTExEMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAwICovCisjZGVmaW5lIEZMTEQxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDEgKi8KKworI2RlZmluZSBGTExEXzEgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMSAqLworI2RlZmluZSBGTExEXzIgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMiAqLworI2RlZmluZSBGTExEXzQgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgNCAqLworI2RlZmluZSBGTExEXzggICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgOCAqLworCitTRlJfOEJJVChTQ0ZJMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDEgKi8KK1NGUl84QklUKFNDRlFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KKy8qIFN5c3RlbSBjbG9jayBmcmVxdWVuY3kgdmFsdWVzIGZNQ0xLIGNvZGVkIHdpdGggQml0cyAwLTYgaW4gU0NGUUNUTCAqLworLyogI2RlZmluZSBTQ0ZRXzMySyAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICBmTUNMSz0xKmZBQ0xLICAgICAgIG9ubHkgYSByYW5nZSBmcm9tICovCisjZGVmaW5lIFNDRlFfNjRLICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogZk1DTEs9MipmQUNMSyAgICAgICAgICAxKzEgdG8gMTI3KzEgaXMgcG9zc2libGUgKi8KKyNkZWZpbmUgU0NGUV8xMjhLICAgICAgICAgICAgICAoMHgwMykgICAgICAgICAvKiBmTUNMSz00KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMjU2SyAgICAgICAgICAgICAgKDB4MDcpICAgICAgICAgLyogZk1DTEs9OCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzUxMksgICAgICAgICAgICAgICgweDBGKSAgICAgICAgIC8qIGZNQ0xLPTE2KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMU0gICAgICAgICAgICAgICAgKDB4MUYpICAgICAgICAgLyogZk1DTEs9MzIqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8yTSAgICAgICAgICAgICAgICAoMHgzRikgICAgICAgICAvKiBmTUNMSz02NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzRNICAgICAgICAgICAgICAgICgweDdGKSAgICAgICAgIC8qIGZNQ0xLPTEyOCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRX00gICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gRGlzYWJsZSAqLworCitTRlJfOEJJVChGTExfQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDAgKi8KKyNkZWZpbmUgRENPRiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBEQ08gRmF1bHQgRmxhZyAqLworI2RlZmluZSBMRk9GICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIExvdyBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMU9GICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIE9TQ0NBUDAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDAgKi8KKyNkZWZpbmUgT1NDQ0FQMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMSAqLworI2RlZmluZSBYVFNfRkxMICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIDE6IFNlbGVjdHMgaGlnaC1mcmVxLiBvc2NpbGxhdG9yICovCisjZGVmaW5lIERDT1BMVVMgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPKyBFbmFibGUgKi8KKworI2RlZmluZSBYQ0FQMFBGICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBYQ0FQMTBQRiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgWENBUDE0UEYgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIFhDQVAxOFBGICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworI2RlZmluZSBPU0NDQVBfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBPU0NDQVBfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzIgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIE9TQ0NBUF8zICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworCitTRlJfOEJJVChGTExfQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDEgKi8KKyNkZWZpbmUgRkxMX0RJVjAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMCAqLworI2RlZmluZSBGTExfRElWMSAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyAxICovCisKKyNkZWZpbmUgRkxMX0RJVl8xICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMSAqLworI2RlZmluZSBGTExfRElWXzIgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSAyICovCisjZGVmaW5lIEZMTF9ESVZfNCAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDQgKi8KKyNkZWZpbmUgRkxMX0RJVl84ICAgICAgICAgICAgICAoMHgwMykgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgOCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAweDAyICovCisvKiAjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgMHgwMiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJyb3duLU91dCwgU3VwcGx5IFZvbHRhZ2UgU3VwZXJ2aXNpb24gKFNWUykKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NWU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNWU0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgQ29udHJvbCAqLworI2RlZmluZSBTVlNGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNWUyBGbGFnICovCisjZGVmaW5lIFNWU09QICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1ZTIG91dHB1dCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBTVlNPTiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN3aXRjaGVzIHRoZSBTVlMgb24vb2ZmICovCisjZGVmaW5lIFBPUk9OICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRW5hYmxlIFBPUiBHZW5lcmF0aW9uIGlmIExvdyBWb2x0YWdlICovCisjZGVmaW5lIFZMRDAgICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRDEgICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFZMRDIgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFZMRDMgICAgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgVkxET04gICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxET0ZGICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgVkxEXzFfOFYgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBMQ0QKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0xDRDRfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKExDRENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgQ29udHJvbCAqLworLyogdGhlIG5hbWVzIG9mIHRoZSBtb2RlIGJpdHMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBzcGVjICovCisjZGVmaW5lIExDRE9OICAgICAgICAgICAgICAgICAgKDB4MDEpCisvLyNkZWZpbmUgTENETE9XUiAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTENEU09OICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTENETVgwICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTENETVgxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTENEUDAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgTENEUDEgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgTENEUDIgICAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIERpc3BsYXkgbW9kZXMgY29kZWQgd2l0aCBCaXRzIDItNCAqLworI2RlZmluZSBMQ0RTVEFUSUMgICAgICAgICAgICAgIChMQ0RTT04pCisjZGVmaW5lIExDRDJNVVggICAgICAgICAgICAgICAgKExDRE1YMCtMQ0RTT04pCisjZGVmaW5lIExDRDNNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RTT04pCisjZGVmaW5lIExDRDRNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RNWDArTENEU09OKQorLyogR3JvdXAgc2VsZWN0IGNvZGUgd2l0aCBCaXRzIDUtNyAgICAgICAgICAgICAgICAgICAgIFNlZy5saW5lcyAgIERpZy5vdXRwdXQgKi8KKyNkZWZpbmUgTENEU0cwICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRFNHMF8xICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfMiAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzMgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF80ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNSAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzYgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF83ICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisvKiBOT1RFOiBZT1UgQ0FOIE9OTFkgVVNFIFRIRSAnUycgT1IgJ0cnIERFQ0xBUkFUSU9OUyBGT1IgQSBDT01NQU5EICovCisvKiBNT1YgICNMQ0RTRzBfMytMQ0RPRzJfNywmTENEQ1RMIEFDVFVBTFkgTUVBTlMgTU9WICAjTENEUDEsJkxDRENUTCEgKi8KKyNkZWZpbmUgTENET0cxXzcgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRE9HMl83ICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzNfNyAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c0XzcgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNV83ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzZfNyAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c3ICAgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HT0ZGICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisKKyNkZWZpbmUgTENETUVNXyAgICAgICAgICAgICAgICAoMHgwMDkxKSAgICAgICAvKiBMQ0QgTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoTENETUVNXykgICAgICAvKiBMQ0QgTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBMQ0RNRU1fKSAvKiBMQ0QgTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoTENETTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMSAqLworU0ZSXzhCSVQoTENETTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMiAqLworU0ZSXzhCSVQoTENETTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMyAqLworU0ZSXzhCSVQoTENETTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNCAqLworU0ZSXzhCSVQoTENETTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNSAqLworU0ZSXzhCSVQoTENETTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNiAqLworU0ZSXzhCSVQoTENETTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNyAqLworU0ZSXzhCSVQoTENETTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOCAqLworU0ZSXzhCSVQoTENETTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOSAqLworU0ZSXzhCSVQoTENETTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTAgKi8KK1NGUl84QklUKExDRE0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDExICovCitTRlJfOEJJVChMQ0RNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMiAqLworU0ZSXzhCSVQoTENETTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTMgKi8KK1NGUl84QklUKExDRE0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE0ICovCitTRlJfOEJJVChMQ0RNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNSAqLworU0ZSXzhCSVQoTENETTE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTYgKi8KK1NGUl84QklUKExDRE0xNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE3ICovCitTRlJfOEJJVChMQ0RNMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxOCAqLworU0ZSXzhCSVQoTENETTE5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTkgKi8KK1NGUl84QklUKExDRE0yMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIwICovCisKKyNkZWZpbmUgTENETUEgICAgICAgICAgICAgICAgICAoTENETTEwKSAgICAgICAvKiBMQ0QgTWVtb3J5IEEgKi8KKyNkZWZpbmUgTENETUIgICAgICAgICAgICAgICAgICAoTENETTExKSAgICAgICAvKiBMQ0QgTWVtb3J5IEIgKi8KKyNkZWZpbmUgTENETUMgICAgICAgICAgICAgICAgICAoTENETTEyKSAgICAgICAvKiBMQ0QgTWVtb3J5IEMgKi8KKyNkZWZpbmUgTENETUQgICAgICAgICAgICAgICAgICAoTENETTEzKSAgICAgICAvKiBMQ0QgTWVtb3J5IEQgKi8KKyNkZWZpbmUgTENETUUgICAgICAgICAgICAgICAgICAoTENETTE0KSAgICAgICAvKiBMQ0QgTWVtb3J5IEUgKi8KKyNkZWZpbmUgTENETUYgICAgICAgICAgICAgICAgICAoTENETTE1KSAgICAgICAvKiBMQ0QgTWVtb3J5IEYgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lcjBfQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQTBJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTMgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEEwQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQTBDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTMgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBMENDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BMyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEEwQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQTBSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTMgKi8KK1NGUl8xNkJJVChUQTBDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTMgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQTBDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTMgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQTBDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTMgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIFRBSVYgICAgICAgICAgICAgICAgICAgVEEwSVYgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KKyNkZWZpbmUgVEFDVEwgICAgICAgICAgICAgICAgICBUQTBDVEwgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KKyNkZWZpbmUgVEFDQ1RMMCAgICAgICAgICAgICAgICBUQTBDQ1RMMCAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDQ1RMMSAgICAgICAgICAgICAgICBUQTBDQ1RMMSAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgVEFDQ1RMMiAgICAgICAgICAgICAgICBUQTBDQ1RMMiAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgVEFSICAgICAgICAgICAgICAgICAgICBUQTBSICAgICAgICAgICAvKiBUaW1lciBBICovCisjZGVmaW5lIFRBQ0NSMCAgICAgICAgICAgICAgICAgVEEwQ0NSMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBUQUNDUjEgICAgICAgICAgICAgICAgIFRBMENDUjEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgVEFDQ1IyICAgICAgICAgICAgICAgICBUQTBDQ1IyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIFRBSVZfICAgICAgICAgICAgICAgICAgVEEwSVZfICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KKyNkZWZpbmUgVEFDVExfICAgICAgICAgICAgICAgICBUQTBDVExfICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KKyNkZWZpbmUgVEFDQ1RMMF8gICAgICAgICAgICAgICBUQTBDQ1RMMF8gICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDQ1RMMV8gICAgICAgICAgICAgICBUQTBDQ1RMMV8gICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgVEFDQ1RMMl8gICAgICAgICAgICAgICBUQTBDQ1RMMl8gICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgVEFSXyAgICAgICAgICAgICAgICAgICBUQTBSXyAgICAgICAgICAvKiBUaW1lciBBICovCisjZGVmaW5lIFRBQ0NSMF8gICAgICAgICAgICAgICAgVEEwQ0NSMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBUQUNDUjFfICAgICAgICAgICAgICAgIFRBMENDUjFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgVEFDQ1IyXyAgICAgICAgICAgICAgICBUQTBDQ1IyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAyICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFQwX0EzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEEwSVZfTk9ORSAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQTBJVl9UQUNDUjEgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBMENDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEEwSVZfVEFDQ1IyICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQTBDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBMElWXzYgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEEwSVZfOCAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQTBJVl9UQUlGRyAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBMElGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyMV9BNQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVDFBNV9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBMUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BNSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQTFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBMUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEExQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQTFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBMUNDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAzICovCitTRlJfMTZCSVQoVEExQ0NUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDQgKi8KK1NGUl8xNkJJVChUQTFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgKi8KK1NGUl8xNkJJVChUQTFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQTFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQTFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIDIgKi8KK1NGUl8xNkJJVChUQTFDQ1IzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIDMgKi8KK1NGUl8xNkJJVChUQTFDQ1I0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIDQgKi8KKworLyogQml0cyBhcmUgYWxyZWFkeSBkZWZpbmVkIHdpdGhpbiB0aGUgVGltZXIwX0F4ICovCisKKy8qIFQxX0E1SVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEExSVZfTk9ORSAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQTFJVl9UQUNDUjEgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBMUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEExSVZfVEFDQ1IyICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQTFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBMUlWX1RBQ0NSMyAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogVEExQ0NSM19DQ0lGRyAqLworI2RlZmluZSBUQTFJVl9UQUNDUjQgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFRBMUNDUjRfQ0NJRkcgKi8KKyNkZWZpbmUgVEExSVZfVEFJRkcgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQTFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0hfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvbXBhcmF0b3IgQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQ09NUEFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQ0FDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDEgKi8KK1NGUl84QklUKENBQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAyICovCitTRlJfOEJJVChDQVBEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIFBvcnQgRGlzYWJsZSAqLworCisjZGVmaW5lIENBSUZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBDQUlFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBDQUlFUyAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBFZGdlIFNlbGVjdDogMDpyaXNpbmcgLyAxOmZhbGxpbmcgKi8KKyNkZWZpbmUgQ0FPTiAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIGVuYWJsZSAqLworI2RlZmluZSBDQVJFRjAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENBUkVGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0FSU0VMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBFbmFibGUgKi8KKyNkZWZpbmUgQ0FFWCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIEV4Y2hhbmdlIElucHV0cyAqLworCisjZGVmaW5lIENBUkVGXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDAgOiBPZmYgKi8KKyNkZWZpbmUgQ0FSRUZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMSA6IDAuMjUqVmNjICovCisjZGVmaW5lIENBUkVGXzIgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDIgOiAwLjUqVmNjICovCisjZGVmaW5lIENBUkVGXzMgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDMgOiBWdCovCisKKyNkZWZpbmUgQ0FPVVQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIE91dHB1dCAqLworI2RlZmluZSBDQUYgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRW5hYmxlIE91dHB1dCBGaWx0ZXIgKi8KKyNkZWZpbmUgUDJDQTAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIENvbm5lY3QgRXh0ZXJuYWwgU2lnbmFsIHRvIENBMCA6IDEgKi8KKyNkZWZpbmUgUDJDQTEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIENvbm5lY3QgRXh0ZXJuYWwgU2lnbmFsIHRvIENBMSA6IDEgKi8KKyNkZWZpbmUgQ0FDVEwyNCAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQ0FDVEwyNSAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgQ0FDVEwyNiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgQ0FDVEwyNyAgICAgICAgICAgICAgICAoMHg4MCkKKworI2RlZmluZSBDQVBEMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMCAqLworI2RlZmluZSBDQVBEMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMSAqLworI2RlZmluZSBDQVBEMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMiAqLworI2RlZmluZSBDQVBEMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMyAqLworI2RlZmluZSBDQVBENCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNCAqLworI2RlZmluZSBDQVBENSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNSAqLworI2RlZmluZSBDQVBENiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNiAqLworI2RlZmluZSBDQVBENyAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGRTApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworI2RlZmluZSBCQVNJQ1RJTUVSX1ZFQ1RPUiAgICAgICAoMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLworLyojZGVmaW5lIEJBU0lDVElNRVJfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMCIpICAqLyAvKiAweEZGRTAgQmFzaWMgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgxICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUyIFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMSIpICAqLyAvKiAweEZGRTIgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVIwX0ExX1ZFQ1RPUiAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIwX0EgQ0MxLTIsIFRBMCAqLworLyojZGVmaW5lIFRJTUVSMF9BMV9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNSIpICAqLyAvKiAweEZGRUEgVGltZXIwX0EgQ0MxLTIsIFRBMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVIwX0EwX1ZFQ1RPUiAgICAgICAgKDYgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUMgVGltZXIwX0EgQ0MwICovCisvKiNkZWZpbmUgVElNRVIwX0EwX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBUaW1lcjBfQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQ09NUEFSQVRPUkFfVkVDVE9SICAgICAgKDExICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovCisvKiNkZWZpbmUgQ09NUEFSQVRPUkFfSVNSKGZ1bmMpICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDExIikgICovIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSMV9BMV9WRUNUT1IgICAgICAgICgxMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY4IFRpbWVyMV9BIENDMS00LCBUQTEgKi8KKy8qI2RlZmluZSBUSU1FUjFfQTFfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyMV9BIENDMS00LCBUQTEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSMV9BMF9WRUNUT1IgICAgICAgICgxMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZBIFRpbWVyMV9BIENDMCAqLworLyojZGVmaW5lIFRJTUVSMV9BMF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIxX0EgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBOTUlfVkVDVE9SICAgICAgICAgICAgICAoMTQgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8KKy8qI2RlZmluZSBOTUlfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTQiKSAgKi8gLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVRfVkVDVE9SICAgICAgICAgICAgKDE1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovCisvKiNkZWZpbmUgUkVTRVRfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE1IikgICovIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKy8qIEFsdGVybmF0ZSBOYW1lcyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4NDF4ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDQxNy5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0MTcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YTIyYTY5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0MTcuaApAQCAtMCwwICsxLDc0OCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIFN0YW5kYXJkIHJlZ2lzdGVyIGFuZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cworKiBNU1A0MzAgbWljcm9jb250cm9sbGVyLgorKgorKiBUaGlzIGZpbGUgc3VwcG9ydHMgYXNzZW1ibGVyIGFuZCBDIGRldmVsb3BtZW50IGZvcgorKiBNU1A0MzB4NDE1IGFuZCBNU1A0MzB4NDE3IGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuNAorKgorKiBSZXYuIDEuMCwgLQorKiBSZXYuIDEuMSwgUmVtb3ZlZCB1bnVzZWQgZGVmIG9mIFRBU1NFTDIKKyogUmV2LiAxLjIsIEFkZGVkIFZMRCBiaXRzIGluIFNWUyBtb2R1bGUKKyogUmV2LiAxLjMsIFJlbW92ZWQgZGVmaW5pdGlvbnMgZm9yIEJUUkVTRVQKKyogUmV2LiAxLjQsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHg0MXgKKyNkZWZpbmUgX19tc3A0MzB4NDF4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAgICAoMHg4MCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQMklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIElucHV0ICovCitTRlJfOEJJVChQMk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIE91dHB1dCAqLworU0ZSXzhCSVQoUDJESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAySUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAyU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDMvNAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDNfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ0X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAzSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgSW5wdXQgKi8KK1NGUl84QklUKFAzT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgT3V0cHV0ICovCitTRlJfOEJJVChQM0RJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDNTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDRJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBJbnB1dCAqLworU0ZSXzhCSVQoUDRPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBPdXRwdXQgKi8KK1NGUl84QklUKFA0RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQ1LzYKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ1X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQNUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IElucHV0ICovCitTRlJfOEJJVChQNU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IE91dHB1dCAqLworU0ZSXzhCSVQoUDVESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA1U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFA2SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgSW5wdXQgKi8KK1NGUl84QklUKFA2T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgT3V0cHV0ICovCitTRlJfOEJJVChQNkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDZTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCQVNJQyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQlRfXyAgICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIkJUIiAqLworI2RlZmluZSBCVElQMCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBCVElQMSAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBCVElQMiAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBCVEZSRlEwICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBCVEZSRlExICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBCVERJViAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZDTEsyID0gQUNMSzoyNTYgKi8KKyNkZWZpbmUgQlRIT0xEICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBCVDEgaXMgaGVsZCBpZiB0aGlzIGJpdCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRTU0VMICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBmQlQgPSBmTUNMSyAobWFpbiBjbG9jaykgKi8KKworU0ZSXzhCSVQoQlRDTlQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDEgKi8KK1NGUl84QklUKEJUQ05UMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAyICovCisKKy8qIEZyZXF1ZW5jeSBvZiB0aGUgQlRDTlQyIGNvZGVkIHdpdGggQml0IDUgYW5kIDcgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfQUNMSyAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgQlRfZkNMSzJfQUNMS19ESVYyNTYgICAoQlRESVYpCisjZGVmaW5lIEJUX2ZDTEsyX01DTEsgICAgICAgICAgKEJUU1NFTCkKKworLyogSW50ZXJydXB0IGludGVydmFsIHRpbWUgZklOVCBjb2RlZCB3aXRoIEJpdHMgMC0yIGluIEJUQ1RMICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZklOVCA9IGZDTEsyOjIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjQgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjQgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWOCAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiBmSU5UID0gZkNMSzI6OCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxNiAgICAgICAgIChCVElQMStCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjoxNiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYzMiAgICAgICAgIChCVElQMikgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjozMiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY2NCAgICAgICAgIChCVElQMitCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjo2NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxMjggICAgICAgIChCVElQMitCVElQMSkgIC8qIGZJTlQgPSBmQ0xLMjoxMjggKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMjU2ICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIGZJTlQgPSBmQ0xLMjoyNTYgKi8KKy8qIEZyZXF1ZW5jeSBvZiBMQ0QgY29kZWQgd2l0aCBCaXRzIDMtNCAqLworI2RlZmluZSBCVF9mTENEX0RJVjMyICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzozMiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVY2NCAgICAgICAgICAoQlRGUkZRMCkgICAgICAvKiBmTENEID0gZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYxMjggICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmTENEID0gZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMjU2ICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmTENEID0gZkFDTEs6MjU2ICovCisvKiBMQ0QgZnJlcXVlbmN5IHZhbHVlcyB3aXRoIGZCVD1mQUNMSyAqLworI2RlZmluZSBCVF9mTENEXzFLICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEXzUxMiAgICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZBQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfMjU2ICAgICAgICAgICAgKEJURlJGUTEpICAgICAgLyogZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfMTI4ICAgICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZNQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMzFLICAgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogZk1DTEs6MzIgKi8KKyNkZWZpbmUgQlRfZkxDRF8xNV81SyAgICAgICAoQlRTU0VMK0JURlJGUTApICAgICAgICAgIC8qIGZNQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfN184SyAgICAgICAgKEJUU1NFTCtCVEZSRlExK0JURlJGUTApICAvKiBmTUNMSzoyNTYgKi8KKy8qIHdpdGggYXNzdW1lZCB2bHVlcyBvZiBmQUNMSz0zMktIeiwgZk1DTEs9MU1IeiAqLworLyogZkJUPWZBQ0xLIGlzIHRob3VnaHQgZm9yIGxvbmdlciBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9BRExZXzBfMDY0ICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIDAuMDY0bXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX0FETFlfMF8xMjUgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF8yNSAgICAgICAgICAgKEJUSVAxKSAgICAgICAgLyogMC4yNW1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF81ICAgICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogMC41bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMSAgICAgICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogMW1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMiAgICAgICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogMm1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNCAgICAgICAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogNG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfOCAgICAgICAgICAgKEJUSVAyK0JUSVAxK0JUSVAwKSAgICAgICAvKiA4bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xNiAgICAgICAgICAgICAoQlRESVYpICAgICAgICAvKiAxNm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8zMiAgICAgICAgICAgICAoQlRESVYrQlRJUDApICAvKiAzMm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV82NCAgICAgICAgICAgICAoQlRESVYrQlRJUDEpICAvKiA2NG1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMjUgICAgICAgICAoQlRESVYrQlRJUDErQlRJUDApICAgICAgIC8qIDEyNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzI1MCAgICAgICAgICAgIChCVERJVitCVElQMikgIC8qIDI1MG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzUwMCAgICAgICAgIChCVERJVitCVElQMitCVElQMCkgICAgICAgLyogNTAwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxKSAgICAgICAvKiAxMDAwbXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDErQlRJUDApIC8qIDIwMDBtcyAgICAgIiAqLworLyogZkNMSzI9Zk1DTEsgKDFNSHopIGlzIHRob3VnaHQgZm9yIHNob3J0IGludGVydmFsIHRpbWVzICovCisvKiB0aGUgdGltaW5nIGZvciBzaG9ydCBpbnRlcnZhbHMgaXMgbW9yZSBwcmVjaXNlIHRoYW4gQUNMSyAqLworLyogTk9URSAqLworLyogQmUgc3VyZSB0aGF0IHRoZSBTQ0ZRQ1RMLVJlZ2lzdGVyIGlzIHNldCB0byAwMUZoIHNvIHRoYXQgZk1DTEs9MU1IeiAqLworLyogVG9vIGxvdyBpbnRlcnZhbCB0aW1lIHJlc3VsdHMgaW4gaW50ZXJydXB0cyB0b28gZnJlcXVlbnQgZm9yIHRoZSBwcm9jZXNzb3IgdG8gaGFuZGxlISAqLworI2RlZmluZSBCVF9NRExZXzBfMDAyICAgICAgICAgIChCVFNTRUwpICAgICAgIC8qIDAuMDAybXMgaW50ZXJ2YWwgICAgICAgKioqIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDQgICAgICAgICAgKEJUU1NFTCtCVElQMCkgLyogMC4wMDRtcyAgICAiICAgICAgICAgICAqKiogdG9vIHNob3J0IGZvciAqLworI2RlZmluZSBCVF9NRExZXzBfMDA4ICAgICAgICAgIChCVFNTRUwrQlRJUDEpIC8qIDAuMDA4bXMgICAgIiAgICAgICAgICAgKioqIGludGVycnVwdCAqLworI2RlZmluZSBCVF9NRExZXzBfMDE2ICAgICAgIChCVFNTRUwrQlRJUDErQlRJUDApICAgICAgLyogMC4wMTZtcyAgICAiICAgICAgICAgICAqKiogaGFuZGxpbmcgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAzMiAgICAgICAgICAoQlRTU0VMK0JUSVAyKSAvKiAwLjAzMm1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzA2NCAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAwKSAgICAgIC8qIDAuMDY0bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMTI1ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDEpICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8yNSAgICAgICAgKEJUU1NFTCtCVElQMitCVElQMStCVElQMCkvKiAwLjI1bXMgICAgICIgKi8KKworLyogUmVzZXQvSG9sZCBjb2RlZCB3aXRoIEJpdHMgNi03IGluIEJUKDEpQ1RMICovCisvKiB0aGlzIGlzIGZvciBCVCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMSAgICAgICAgKEJUUkVTRVQpICAgICAgICAgICAvKiBCVENOVDEgaXMgcmVzZXQgd2hpbGUgQlRSRVNFVCBpcyBzZXQgKi8KKy8vI2RlZmluZSBCVFJFU0VUX0NOVDFfMiAgICAgIChCVFJFU0VUK0JURElWKSAgICAgLyogQlRDTlQxIC5BTkQuIEJUQ05UMiBhcmUgcmVzZXQgd2hpbGUgfiBpcyBzZXQgKi8KKy8qIHRoaXMgaXMgZm9yIEJUMSAqLworI2RlZmluZSBCVEhPTERfQ05UMSAgICAgICAgICAgIChCVEhPTEQpICAgICAgIC8qIEJUQ05UMSBpcyBoZWxkIHdoaWxlIEJUSE9MRCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDFfMiAgICAgICAgICAoQlRIT0xEK0JURElWKSAvKiBCVDFDTlQxIC5BTkQuIEJUMUNOVDIgYXJlIGhlbGQgd2hpbGUgfiBpcyBzZXQgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogI2RlZmluZSBCVElFICAgICAgICAgICAgICAgIDB4ODAgKi8KKy8qICNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAweDgwICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1lTVEVNIENMT0NLLCBGTEwrICh4NDF4KQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxMUExVU19TTUFMTF9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0NGSTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAwICovCisjZGVmaW5lIEZOXzIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMS40LTEyTUh6Ki8KKyNkZWZpbmUgRk5fMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBmRENPQ0xLID0gICAyLjItMTdNaHoqLworI2RlZmluZSBGTl80ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDMuMi0yNU1oeiovCisjZGVmaW5lIEZOXzggICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkRDT0NMSyA9ICAgICA1LTQwTWh6Ki8KKyNkZWZpbmUgRkxMRDAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMCAqLworI2RlZmluZSBGTExEMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAxICovCisKKyNkZWZpbmUgRkxMRF8xICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDEgKi8KKyNkZWZpbmUgRkxMRF8yICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDIgKi8KKyNkZWZpbmUgRkxMRF80ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDQgKi8KKyNkZWZpbmUgRkxMRF84ICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDggKi8KKworU0ZSXzhCSVQoU0NGSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAxICovCitTRlJfOEJJVChTQ0ZRQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCisvKiBTeXN0ZW0gY2xvY2sgZnJlcXVlbmN5IHZhbHVlcyBmTUNMSyBjb2RlZCB3aXRoIEJpdHMgMC02IGluIFNDRlFDVEwgKi8KKy8qICNkZWZpbmUgU0NGUV8zMksgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgZk1DTEs9MSpmQUNMSyAgICAgICBvbmx5IGEgcmFuZ2UgZnJvbSAqLworI2RlZmluZSBTQ0ZRXzY0SyAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIGZNQ0xLPTIqZkFDTEsgICAgICAgICAgMSsxIHRvIDEyNysxIGlzIHBvc3NpYmxlICovCisjZGVmaW5lIFNDRlFfMTI4SyAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogZk1DTEs9NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzI1NksgICAgICAgICAgICAgICgweDA3KSAgICAgICAgIC8qIGZNQ0xLPTgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV81MTJLICAgICAgICAgICAgICAoMHgwRikgICAgICAgICAvKiBmTUNMSz0xNipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzFNICAgICAgICAgICAgICAgICgweDFGKSAgICAgICAgIC8qIGZNQ0xLPTMyKmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMk0gICAgICAgICAgICAgICAgKDB4M0YpICAgICAgICAgLyogZk1DTEs9NjQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV80TSAgICAgICAgICAgICAgICAoMHg3RikgICAgICAgICAvKiBmTUNMSz0xMjgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV9NICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2R1bGF0aW9uIERpc2FibGUgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAwICovCisjZGVmaW5lIERDT0YgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRENPIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgTEZPRiAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMb3cgRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFPRiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBPU0NDQVAwICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIE9TQ0NBUDEgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgWFRTX0ZMTCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxOiBTZWxlY3RzIGhpZ2gtZnJlcS4gb3NjaWxsYXRvciAqLworI2RlZmluZSBEQ09QTFVTICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTysgRW5hYmxlICovCisKKyNkZWZpbmUgWENBUDBQRiAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgWENBUDEwUEYgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIFhDQVAxNFBGICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBYQ0FQMThQRiAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzEgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIE9TQ0NBUF8yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBPU0NDQVBfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAxICovCisjZGVmaW5lIEZMTF9ESVYwICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIDAgKi8KKyNkZWZpbmUgRkxMX0RJVjEgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMSAqLworCisjZGVmaW5lIEZMTF9ESVZfMSAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDEgKi8KKyNkZWZpbmUgRkxMX0RJVl8yICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMiAqLworI2RlZmluZSBGTExfRElWXzQgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA0ICovCisjZGVmaW5lIEZMTF9ESVZfOCAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDggKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgMHgwMiAqLworLyogI2RlZmluZSBPRklFICAgICAgICAgICAgICAgIDB4MDIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCcm93bi1PdXQsIFN1cHBseSBWb2x0YWdlIFN1cGVydmlzaW9uIChTVlMpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19TVlNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTVlNDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU1ZTIENvbnRyb2wgKi8KKyNkZWZpbmUgU1ZTRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTVlMgRmxhZyAqLworI2RlZmluZSBTVlNPUCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNWUyBvdXRwdXQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgU1ZTT04gICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTd2l0Y2hlcyB0aGUgU1ZTIG9uL29mZiAqLworI2RlZmluZSBQT1JPTiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEVuYWJsZSBQT1IgR2VuZXJhdGlvbiBpZiBMb3cgVm9sdGFnZSAqLworI2RlZmluZSBWTEQwICAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTEQxICAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBWTEQyICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBWTEQzICAgICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIFZMRE9OICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRE9GRiAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIFZMRF8xXzhWICAgICAgICAgICAgICAgKDB4MTApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogTENECisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19MQ0Q0X18gICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChMQ0RDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIENvbnRyb2wgKi8KKy8qIHRoZSBuYW1lcyBvZiB0aGUgbW9kZSBiaXRzIGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgc3BlYyAqLworI2RlZmluZSBMQ0RPTiAgICAgICAgICAgICAgICAgICgweDAxKQorLy8jZGVmaW5lIExDRExPV1IgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIExDRFNPTiAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIExDRE1YMCAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIExDRE1YMSAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIExDRFAwICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIExDRFAxICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIExDRFAyICAgICAgICAgICAgICAgICAgKDB4ODApCisvKiBEaXNwbGF5IG1vZGVzIGNvZGVkIHdpdGggQml0cyAyLTQgKi8KKyNkZWZpbmUgTENEU1RBVElDICAgICAgICAgICAgICAoTENEU09OKQorI2RlZmluZSBMQ0QyTVVYICAgICAgICAgICAgICAgIChMQ0RNWDArTENEU09OKQorI2RlZmluZSBMQ0QzTVVYICAgICAgICAgICAgICAgIChMQ0RNWDErTENEU09OKQorI2RlZmluZSBMQ0Q0TVVYICAgICAgICAgICAgICAgIChMQ0RNWDErTENETVgwK0xDRFNPTikKKy8qIEdyb3VwIHNlbGVjdCBjb2RlIHdpdGggQml0cyA1LTcgICAgICAgICAgICAgICAgICAgICBTZWcubGluZXMgICBEaWcub3V0cHV0ICovCisjZGVmaW5lIExDRFNHMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogLS0tLS0tLS0tICAgUG9ydCBPbmx5IChkZWZhdWx0KSAqLworI2RlZmluZSBMQ0RTRzBfMSAgICAgICAgICAgICAgIChMQ0RQMCkgICAgICAgIC8qIFMwICAtIFMxNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzIgICAgICAgICAgICAgICAoTENEUDEpICAgICAgICAvKiBTMCAgLSBTMTkgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF8zICAgICAgICAgICAgICAgKExDRFAxK0xDRFAwKSAgLyogUzAgIC0gUzIzICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNCAgICAgICAgICAgICAgIChMQ0RQMikgICAgICAgIC8qIFMwICAtIFMyNyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzUgICAgICAgICAgICAgICAoTENEUDIrTENEUDApICAvKiBTMCAgLSBTMzEgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF82ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAxKSAgLyogUzAgIC0gUzM1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNyAgICAgICAgICAgIChMQ0RQMitMQ0RQMStMQ0RQMCkgICAgICAgLyogUzAgIC0gUzM5ICAgc2VlIERhdGFzaGVldCAqLworLyogTk9URTogWU9VIENBTiBPTkxZIFVTRSBUSEUgJ1MnIE9SICdHJyBERUNMQVJBVElPTlMgRk9SIEEgQ09NTUFORCAqLworLyogTU9WICAjTENEU0cwXzMrTENET0cyXzcsJkxDRENUTCBBQ1RVQUxZIE1FQU5TIE1PViAgI0xDRFAxLCZMQ0RDVEwhICovCisjZGVmaW5lIExDRE9HMV83ICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogLS0tLS0tLS0tICAgUG9ydCBPbmx5IChkZWZhdWx0KSAqLworI2RlZmluZSBMQ0RPRzJfNyAgICAgICAgICAgICAgIChMQ0RQMCkgICAgICAgIC8qIFMwICAtIFMxNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0czXzcgICAgICAgICAgICAgICAoTENEUDEpICAgICAgICAvKiBTMCAgLSBTMTkgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNF83ICAgICAgICAgICAgICAgKExDRFAxK0xDRFAwKSAgLyogUzAgIC0gUzIzICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzVfNyAgICAgICAgICAgICAgIChMQ0RQMikgICAgICAgIC8qIFMwICAtIFMyNyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c2XzcgICAgICAgICAgICAgICAoTENEUDIrTENEUDApICAvKiBTMCAgLSBTMzEgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNyAgICAgICAgICAgICAgICAgKExDRFAyK0xDRFAxKSAgLyogUzAgIC0gUzM1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPR09GRiAgICAgICAgICAgIChMQ0RQMitMQ0RQMStMQ0RQMCkgICAgICAgLyogUzAgIC0gUzM5ICAgc2VlIERhdGFzaGVldCAqLworCisjZGVmaW5lIExDRE1FTV8gICAgICAgICAgICAgICAgKDB4MDA5MSkgICAgICAgLyogTENEIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKExDRE1FTV8pICAgICAgLyogTENEIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgTENETUVNXykgLyogTENEIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKExDRE0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEgKi8KK1NGUl84QklUKExDRE0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIgKi8KK1NGUl84QklUKExDRE0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDMgKi8KK1NGUl84QklUKExDRE00KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDQgKi8KK1NGUl84QklUKExDRE01KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDUgKi8KK1NGUl84QklUKExDRE02KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDYgKi8KK1NGUl84QklUKExDRE03KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDcgKi8KK1NGUl84QklUKExDRE04KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDggKi8KK1NGUl84QklUKExDRE05KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDkgKi8KK1NGUl84QklUKExDRE0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEwICovCitTRlJfOEJJVChMQ0RNMTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMSAqLworU0ZSXzhCSVQoTENETTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTIgKi8KK1NGUl84QklUKExDRE0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEzICovCitTRlJfOEJJVChMQ0RNMTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNCAqLworU0ZSXzhCSVQoTENETTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTUgKi8KK1NGUl84QklUKExDRE0xNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE2ICovCitTRlJfOEJJVChMQ0RNMTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNyAqLworU0ZSXzhCSVQoTENETTE4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTggKi8KK1NGUl84QklUKExDRE0xOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE5ICovCitTRlJfOEJJVChMQ0RNMjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAyMCAqLworCisjZGVmaW5lIExDRE1BICAgICAgICAgICAgICAgICAgKExDRE0xMCkgICAgICAgLyogTENEIE1lbW9yeSBBICovCisjZGVmaW5lIExDRE1CICAgICAgICAgICAgICAgICAgKExDRE0xMSkgICAgICAgLyogTENEIE1lbW9yeSBCICovCisjZGVmaW5lIExDRE1DICAgICAgICAgICAgICAgICAgKExDRE0xMikgICAgICAgLyogTENEIE1lbW9yeSBDICovCisjZGVmaW5lIExDRE1EICAgICAgICAgICAgICAgICAgKExDRE0xMykgICAgICAgLyogTENEIE1lbW9yeSBEICovCisjZGVmaW5lIExDRE1FICAgICAgICAgICAgICAgICAgKExDRE0xNCkgICAgICAgLyogTENEIE1lbW9yeSBFICovCisjZGVmaW5lIExDRE1GICAgICAgICAgICAgICAgICAgKExDRE0xNSkgICAgICAgLyogTENEIE1lbW9yeSBGICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIwX0EzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEEwSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BMyBDb250cm9sICovCitTRlJfMTZCSVQoVEEwQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQTBDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTMgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBMENDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BMyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEEwUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzICovCitTRlJfMTZCSVQoVEEwQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEEwQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEEwQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBUQUlWICAgICAgICAgICAgICAgICAgIFRBMElWICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisjZGVmaW5lIFRBQ1RMICAgICAgICAgICAgICAgICAgVEEwQ1RMICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCisjZGVmaW5lIFRBQ0NUTDAgICAgICAgICAgICAgICAgVEEwQ0NUTDAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIFRBQ0NUTDEgICAgICAgICAgICAgICAgVEEwQ0NUTDEgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIFRBQ0NUTDIgICAgICAgICAgICAgICAgVEEwQ0NUTDIgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIFRBUiAgICAgICAgICAgICAgICAgICAgVEEwUiAgICAgICAgICAgLyogVGltZXIgQSAqLworI2RlZmluZSBUQUNDUjAgICAgICAgICAgICAgICAgIFRBMENDUjAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgVEFDQ1IxICAgICAgICAgICAgICAgICBUQTBDQ1IxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIFRBQ0NSMiAgICAgICAgICAgICAgICAgVEEwQ0NSMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBUQUlWXyAgICAgICAgICAgICAgICAgIFRBMElWXyAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisjZGVmaW5lIFRBQ1RMXyAgICAgICAgICAgICAgICAgVEEwQ1RMXyAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCisjZGVmaW5lIFRBQ0NUTDBfICAgICAgICAgICAgICAgVEEwQ0NUTDBfICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIFRBQ0NUTDFfICAgICAgICAgICAgICAgVEEwQ0NUTDFfICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIFRBQ0NUTDJfICAgICAgICAgICAgICAgVEEwQ0NUTDJfICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIFRBUl8gICAgICAgICAgICAgICAgICAgVEEwUl8gICAgICAgICAgLyogVGltZXIgQSAqLworI2RlZmluZSBUQUNDUjBfICAgICAgICAgICAgICAgIFRBMENDUjBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgVEFDQ1IxXyAgICAgICAgICAgICAgICBUQTBDQ1IxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIFRBQ0NSMl8gICAgICAgICAgICAgICAgVEEwQ0NSMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgMiAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUMF9BM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBMElWX05PTkUgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEEwSVZfVEFDQ1IxICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQTBDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBMElWX1RBQ0NSMiAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEEwQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQTBJVl82ICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBMElWXzggICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEEwSVZfVEFJRkcgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQTBJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lcjFfQTUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1QxQTVfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQTFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEExQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQTFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBMUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEExQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQTFDQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMyAqLworU0ZSXzE2QklUKFRBMUNDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA0ICovCitTRlJfMTZCSVQoVEExUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1ICovCitTRlJfMTZCSVQoVEExQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEExQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEExQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSAyICovCitTRlJfMTZCSVQoVEExQ0NSMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSAzICovCitTRlJfMTZCSVQoVEExQ0NSNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSA0ICovCisKKy8qIEJpdHMgYXJlIGFscmVhZHkgZGVmaW5lZCB3aXRoaW4gdGhlIFRpbWVyMF9BeCAqLworCisvKiBUMV9BNUlWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBMUlWX05PTkUgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEExSVZfVEFDQ1IxICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQTFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBMUlWX1RBQ0NSMiAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEExQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQTFJVl9UQUNDUjMgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFRBMUNDUjNfQ0NJRkcgKi8KKyNkZWZpbmUgVEExSVZfVEFDQ1I0ICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBUQTFDQ1I0X0NDSUZHICovCisjZGVmaW5lIFRBMUlWX1RBSUZHICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEExSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NPTVBBX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTAgOiAxICovCisjZGVmaW5lIFAyQ0ExICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTEgOiAxICovCisjZGVmaW5lIENBQ1RMMjQgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIENBQ1RMMjUgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIENBQ1RMMjYgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIENBQ1RMMjcgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgQ0FQRDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjAgKi8KKyNkZWZpbmUgQ0FQRDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjEgKi8KKyNkZWZpbmUgQ0FQRDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjIgKi8KKyNkZWZpbmUgQ0FQRDMgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjMgKi8KKyNkZWZpbmUgQ0FQRDQgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjQgKi8KKyNkZWZpbmUgQ0FQRDUgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjUgKi8KKyNkZWZpbmUgQ0FQRDYgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjYgKi8KKyNkZWZpbmUgQ0FQRDcgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgQkFTSUNUSU1FUl9WRUNUT1IgICAgICAgKDAgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTAgQmFzaWMgVGltZXIgKi8KKy8qI2RlZmluZSBCQVNJQ1RJTUVSX0lTUihmdW5jKSAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDAiKSAgKi8gLyogMHhGRkUwIEJhc2ljIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDEiKSAgKi8gLyogMHhGRkUyIFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDQgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTggUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA0IikgICovIC8qIDB4RkZFOCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSMF9BMV9WRUNUT1IgICAgICAgICg1ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVBIFRpbWVyMF9BIENDMS0yLCBUQTAgKi8KKy8qI2RlZmluZSBUSU1FUjBfQTFfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyMF9BIENDMS0yLCBUQTAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSMF9BMF9WRUNUT1IgICAgICAgICg2ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFRpbWVyMF9BIENDMCAqLworLyojZGVmaW5lIFRJTUVSMF9BMF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIwX0EgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIENPTVBBUkFUT1JBX1ZFQ1RPUiAgICAgICgxMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLworLyojZGVmaW5lIENPTVBBUkFUT1JBX0lTUihmdW5jKSAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMSIpICAqLyAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUjFfQTFfVkVDVE9SICAgICAgICAoMTIgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGOCBUaW1lcjFfQSBDQzEtNCwgVEExICovCisvKiNkZWZpbmUgVElNRVIxX0ExX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEyIikgICovIC8qIDB4RkZGOCBUaW1lcjFfQSBDQzEtNCwgVEExICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUjFfQTBfVkVDVE9SICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lcjFfQSBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUjFfQTBfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTMiKSAgKi8gLyogMHhGRkZBIFRpbWVyMV9BIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisvKiBBbHRlcm5hdGUgTmFtZXMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDQxeCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0MXguaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4NDF4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY2MTAyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4NDF4LmgKQEAgLTAsMCArMSw2OTggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDQxeCBkZXZpY2VzLgorKgorKiBUZXhhcyBJbnN0cnVtZW50cywgVmVyc2lvbiAyLjQKKyoKKyogUmV2LiAxLjEsIFJlbW92ZWQgbGVhZGluZyAwIHRvIGF2aW9kIGludGVycHJldGF0aW9uIGFzIG9jdGFsCisqICAgICAgICAgICAgdmFsdWVzIHVuZGVyIEMKKyogICAgICAgICAgIEluY2x1ZGVkIDxJbjQzMC5oPiByYXRoZXIgdGhhbiAiSW40MzAuaCIKKyogUmV2LiAxLjIsIENvcnJlY3RlZCBMUE14X0VYSVQgdG8gcmVmZXJlbmNlIG5ldyBpbnRyaW5zaWMgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0CisqICAgICAgICAgICBDaGFuZ2VkIFRBSVYgdG8gYmUgcmVhZC1vbmx5CisqIFJldi4gMS4zLCBFbmNsb3NlIGFsbCAjZGVmaW5lIHN0YXRlbWVudHMgd2l0aCBwYXJlbnRoZXNlcworKiBSZXYuIDEuNCwgUmVtb3ZlZCBpbmNvcnJlY3QgbGFiZWwgJ0JUUkVTRVQnCisqICAgICAgICAgICBBZGRlZCBtaXNzaW5nIGxhYmVscyBmb3IgRkxMCisqIFJldi4gMi4xLCBGaXhlZCBkZWZpbml0aW9uIG9mIEZMTF9ESVYwIGFuZCBGTExfRElWMQorKiAgICAgICAgICAgQWxpZ25tZW50IG9mIGRlZmludGlvbnMgaW4gVXNlcnMgR3VpZGUgYW5kIG9mIHZlcnNpb24gbnVtYmVycworKiBSZXYuIDIuMTEsUmVtb3ZlZCBkZWZpbml0aW9uIG9mIExDRExPV1IgKG5vdCBhdmFpbGFibGUgYXQgNHh4IGRldmljZXMpCisqIFJldi4gMi4yLCBSZW1vdmVkIHVudXNlZCBkZWYgb2YgVEFTU0VMMgorKiBSZXYuIDIuMywgUmVtb3ZlZCBkZWZpbml0aW9ucyBmb3IgQlRSRVNFVAorKiBSZXYuIDIuNCwgYWRkZWQgZGVmaW5pdGlvbnMgZm9yIEludGVycnVwdCBWZWN0b3JzIHh4SVYKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDQxeAorI2RlZmluZSBfX21zcDQzMHg0MXgKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkKKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBCVElFICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgICAgICgweDgwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDUvNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ2X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA1SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgSW5wdXQgKi8KK1NGUl84QklUKFA1T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgT3V0cHV0ICovCitTRlJfOEJJVChQNURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDVTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJBU0lDIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CVF9fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChCVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiQlQiICovCisjZGVmaW5lIEJUSVAwICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEJUSVAxICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIEJUSVAyICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEJURlJGUTAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJURlJGUTEgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEJURElWICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkNMSzIgPSBBQ0xLOjI1NiAqLworI2RlZmluZSBCVEhPTEQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEJUMSBpcyBoZWxkIGlmIHRoaXMgYml0IGlzIHNldCAqLworI2RlZmluZSBCVFNTRUwgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIGZCVCA9IGZNQ0xLIChtYWluIGNsb2NrKSAqLworCitTRlJfOEJJVChCVENOVDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMSAqLworU0ZSXzhCSVQoQlRDTlQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDIgKi8KKworLyogRnJlcXVlbmN5IG9mIHRoZSBCVENOVDIgY29kZWQgd2l0aCBCaXQgNSBhbmQgNyBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9BQ0xLICAgICAgICAgICgweDAwKQorI2RlZmluZSBCVF9mQ0xLMl9BQ0xLX0RJVjI1NiAgIChCVERJVikKKyNkZWZpbmUgQlRfZkNMSzJfTUNMSyAgICAgICAgICAoQlRTU0VMKQorCisvKiBJbnRlcnJ1cHQgaW50ZXJ2YWwgdGltZSBmSU5UIGNvZGVkIHdpdGggQml0cyAwLTIgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmSU5UID0gZkNMSzI6MiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNCAgICAgICAgICAoQlRJUDApICAgICAgICAvKiBmSU5UID0gZkNMSzI6NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY4ICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjE2ICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjE2ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjMyICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjMyICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjY0ICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjY0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjEyOCAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogZklOVCA9IGZDTEsyOjEyOCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyNTYgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogZklOVCA9IGZDTEsyOjI1NiAqLworLyogRnJlcXVlbmN5IG9mIExDRCBjb2RlZCB3aXRoIEJpdHMgMy00ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMzIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEX0RJVjY0ICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEX0RJVjEyOCAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYyNTYgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZBQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMUsgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfNTEyICAgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF8yNTYgICAgICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF8xMjggICAgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9Zk1DTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8zMUsgICAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiBmTUNMSzozMiAqLworI2RlZmluZSBCVF9mTENEXzE1XzVLICAgICAgIChCVFNTRUwrQlRGUkZRMCkgICAgICAgICAgLyogZk1DTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF83XzhLICAgICAgICAoQlRTU0VMK0JURlJGUTErQlRGUkZRMCkgIC8qIGZNQ0xLOjI1NiAqLworLyogd2l0aCBhc3N1bWVkIHZsdWVzIG9mIGZBQ0xLPTMyS0h6LCBmTUNMSz0xTUh6ICovCisvKiBmQlQ9ZkFDTEsgaXMgdGhvdWdodCBmb3IgbG9uZ2VyIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX0FETFlfMF8wNjQgICAgICAgICAgKDB4MDApICAgICAgICAgLyogMC4wNjRtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzEyNSAgICAgICAgICAoQlRJUDApICAgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzI1ICAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiAwLjI1bXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzUgICAgICAgICAgICAoQlRJUDErQlRJUDApICAvKiAwLjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xICAgICAgICAgICAgICAoQlRJUDIpICAgICAgICAvKiAxbXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yICAgICAgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiAybXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV80ICAgICAgICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiA0bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV84ICAgICAgICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIDhtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzE2ICAgICAgICAgICAgIChCVERJVikgICAgICAgIC8qIDE2bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzMyICAgICAgICAgICAgIChCVERJVitCVElQMCkgIC8qIDMybXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzY0ICAgICAgICAgICAgIChCVERJVitCVElQMSkgIC8qIDY0bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEyNSAgICAgICAgIChCVERJVitCVElQMStCVElQMCkgICAgICAgLyogMTI1bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjUwICAgICAgICAgICAgKEJURElWK0JUSVAyKSAgLyogMjUwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNTAwICAgICAgICAgKEJURElWK0JUSVAyK0JUSVAwKSAgICAgICAvKiA1MDBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDEpICAgICAgIC8qIDEwMDBtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMStCVElQMCkgLyogMjAwMG1zICAgICAiICovCisvKiBmQ0xLMj1mTUNMSyAoMU1IeikgaXMgdGhvdWdodCBmb3Igc2hvcnQgaW50ZXJ2YWwgdGltZXMgKi8KKy8qIHRoZSB0aW1pbmcgZm9yIHNob3J0IGludGVydmFscyBpcyBtb3JlIHByZWNpc2UgdGhhbiBBQ0xLICovCisvKiBOT1RFICovCisvKiBCZSBzdXJlIHRoYXQgdGhlIFNDRlFDVEwtUmVnaXN0ZXIgaXMgc2V0IHRvIDAxRmggc28gdGhhdCBmTUNMSz0xTUh6ICovCisvKiBUb28gbG93IGludGVydmFsIHRpbWUgcmVzdWx0cyBpbiBpbnRlcnJ1cHRzIHRvbyBmcmVxdWVudCBmb3IgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUhICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDIgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogMC4wMDJtcyBpbnRlcnZhbCAgICAgICAqKiogaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwNCAgICAgICAgICAoQlRTU0VMK0JUSVAwKSAvKiAwLjAwNG1zICAgICIgICAgICAgICAgICoqKiB0b28gc2hvcnQgZm9yICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDggICAgICAgICAgKEJUU1NFTCtCVElQMSkgLyogMC4wMDhtcyAgICAiICAgICAgICAgICAqKiogaW50ZXJydXB0ICovCisjZGVmaW5lIEJUX01ETFlfMF8wMTYgICAgICAgKEJUU1NFTCtCVElQMStCVElQMCkgICAgICAvKiAwLjAxNm1zICAgICIgICAgICAgICAgICoqKiBoYW5kbGluZyAqLworI2RlZmluZSBCVF9NRExZXzBfMDMyICAgICAgICAgIChCVFNTRUwrQlRJUDIpIC8qIDAuMDMybXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMDY0ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDApICAgICAgLyogMC4wNjRtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8xMjUgICAgICAgKEJUU1NFTCtCVElQMitCVElQMSkgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzI1ICAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxK0JUSVAwKS8qIDAuMjVtcyAgICAgIiAqLworCisvKiBSZXNldC9Ib2xkIGNvZGVkIHdpdGggQml0cyA2LTcgaW4gQlQoMSlDVEwgKi8KKy8qIHRoaXMgaXMgZm9yIEJUICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxICAgICAgICAoQlRSRVNFVCkgICAgICAgICAgIC8qIEJUQ05UMSBpcyByZXNldCB3aGlsZSBCVFJFU0VUIGlzIHNldCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMV8yICAgICAgKEJUUkVTRVQrQlRESVYpICAgICAvKiBCVENOVDEgLkFORC4gQlRDTlQyIGFyZSByZXNldCB3aGlsZSB+IGlzIHNldCAqLworLyogdGhpcyBpcyBmb3IgQlQxICovCisjZGVmaW5lIEJUSE9MRF9DTlQxICAgICAgICAgICAgKEJUSE9MRCkgICAgICAgLyogQlRDTlQxIGlzIGhlbGQgd2hpbGUgQlRIT0xEIGlzIHNldCAqLworI2RlZmluZSBCVEhPTERfQ05UMV8yICAgICAgICAgIChCVEhPTEQrQlRESVYpIC8qIEJUMUNOVDEgLkFORC4gQlQxQ05UMiBhcmUgaGVsZCB3aGlsZSB+IGlzIHNldCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiAjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgMHg4MCAqLworLyogI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgIDB4ODAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTWVNURU0gQ0xPQ0ssIEZMTCsgKHg0MXgpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTExQTFVTX1NNQUxMX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTQ0ZJMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDAgKi8KKyNkZWZpbmUgRk5fMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBmRENPQ0xLID0gICAxLjQtMTJNSHoqLworI2RlZmluZSBGTl8zICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDIuMi0xN01oeiovCisjZGVmaW5lIEZOXzQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogZkRDT0NMSyA9ICAgMy4yLTI1TWh6Ki8KKyNkZWZpbmUgRk5fOCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBmRENPQ0xLID0gICAgIDUtNDBNaHoqLworI2RlZmluZSBGTExEMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAwICovCisjZGVmaW5lIEZMTEQxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDEgKi8KKworI2RlZmluZSBGTExEXzEgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMSAqLworI2RlZmluZSBGTExEXzIgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMiAqLworI2RlZmluZSBGTExEXzQgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgNCAqLworI2RlZmluZSBGTExEXzggICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgOCAqLworCitTRlJfOEJJVChTQ0ZJMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDEgKi8KK1NGUl84QklUKFNDRlFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KKy8qIFN5c3RlbSBjbG9jayBmcmVxdWVuY3kgdmFsdWVzIGZNQ0xLIGNvZGVkIHdpdGggQml0cyAwLTYgaW4gU0NGUUNUTCAqLworLyogI2RlZmluZSBTQ0ZRXzMySyAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICBmTUNMSz0xKmZBQ0xLICAgICAgIG9ubHkgYSByYW5nZSBmcm9tICovCisjZGVmaW5lIFNDRlFfNjRLICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogZk1DTEs9MipmQUNMSyAgICAgICAgICAxKzEgdG8gMTI3KzEgaXMgcG9zc2libGUgKi8KKyNkZWZpbmUgU0NGUV8xMjhLICAgICAgICAgICAgICAoMHgwMykgICAgICAgICAvKiBmTUNMSz00KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMjU2SyAgICAgICAgICAgICAgKDB4MDcpICAgICAgICAgLyogZk1DTEs9OCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzUxMksgICAgICAgICAgICAgICgweDBGKSAgICAgICAgIC8qIGZNQ0xLPTE2KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMU0gICAgICAgICAgICAgICAgKDB4MUYpICAgICAgICAgLyogZk1DTEs9MzIqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8yTSAgICAgICAgICAgICAgICAoMHgzRikgICAgICAgICAvKiBmTUNMSz02NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzRNICAgICAgICAgICAgICAgICgweDdGKSAgICAgICAgIC8qIGZNQ0xLPTEyOCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRX00gICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gRGlzYWJsZSAqLworCitTRlJfOEJJVChGTExfQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDAgKi8KKyNkZWZpbmUgRENPRiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBEQ08gRmF1bHQgRmxhZyAqLworI2RlZmluZSBMRk9GICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIExvdyBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMU9GICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIE9TQ0NBUDAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDAgKi8KKyNkZWZpbmUgT1NDQ0FQMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMSAqLworI2RlZmluZSBYVFNfRkxMICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIDE6IFNlbGVjdHMgaGlnaC1mcmVxLiBvc2NpbGxhdG9yICovCisjZGVmaW5lIERDT1BMVVMgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPKyBFbmFibGUgKi8KKworI2RlZmluZSBYQ0FQMFBGICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBYQ0FQMTBQRiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgWENBUDE0UEYgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIFhDQVAxOFBGICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworI2RlZmluZSBPU0NDQVBfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBPU0NDQVBfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzIgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIE9TQ0NBUF8zICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworCitTRlJfOEJJVChGTExfQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDEgKi8KKyNkZWZpbmUgRkxMX0RJVjAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMCAqLworI2RlZmluZSBGTExfRElWMSAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyAxICovCisKKyNkZWZpbmUgRkxMX0RJVl8xICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMSAqLworI2RlZmluZSBGTExfRElWXzIgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSAyICovCisjZGVmaW5lIEZMTF9ESVZfNCAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDQgKi8KKyNkZWZpbmUgRkxMX0RJVl84ICAgICAgICAgICAgICAoMHgwMykgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgOCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAweDAyICovCisvKiAjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgMHgwMiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJyb3duLU91dCwgU3VwcGx5IFZvbHRhZ2UgU3VwZXJ2aXNpb24gKFNWUykKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NWU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNWU0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgQ29udHJvbCAqLworI2RlZmluZSBTVlNGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNWUyBGbGFnICovCisjZGVmaW5lIFNWU09QICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1ZTIG91dHB1dCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBTVlNPTiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN3aXRjaGVzIHRoZSBTVlMgb24vb2ZmICovCisjZGVmaW5lIFBPUk9OICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRW5hYmxlIFBPUiBHZW5lcmF0aW9uIGlmIExvdyBWb2x0YWdlICovCisjZGVmaW5lIFZMRE9OICAgICAgICAgICAgICAgICAgKDB4MTApCisKKyNkZWZpbmUgVkxET0ZGICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgVkxEXzFfOFYgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBMQ0QKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0xDRDRfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKExDRENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgQ29udHJvbCAqLworLyogdGhlIG5hbWVzIG9mIHRoZSBtb2RlIGJpdHMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBzcGVjICovCisjZGVmaW5lIExDRE9OICAgICAgICAgICAgICAgICAgKDB4MDEpCisvLyNkZWZpbmUgTENETE9XUiAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTENEU09OICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTENETVgwICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTENETVgxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTENEUDAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgTENEUDEgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgTENEUDIgICAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIERpc3BsYXkgbW9kZXMgY29kZWQgd2l0aCBCaXRzIDItNCAqLworI2RlZmluZSBMQ0RTVEFUSUMgICAgICAgICAgICAgIChMQ0RTT04pCisjZGVmaW5lIExDRDJNVVggICAgICAgICAgICAgICAgKExDRE1YMCtMQ0RTT04pCisjZGVmaW5lIExDRDNNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RTT04pCisjZGVmaW5lIExDRDRNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RNWDArTENEU09OKQorLyogR3JvdXAgc2VsZWN0IGNvZGUgd2l0aCBCaXRzIDUtNyAgICAgICAgICAgICAgICAgICAgIFNlZy5saW5lcyAgIERpZy5vdXRwdXQgKi8KKyNkZWZpbmUgTENEU0cwICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRFNHMF8xICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfMiAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzMgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF80ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNSAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzYgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF83ICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisvKiBOT1RFOiBZT1UgQ0FOIE9OTFkgVVNFIFRIRSAnUycgT1IgJ0cnIERFQ0xBUkFUSU9OUyBGT1IgQSBDT01NQU5EICovCisvKiBNT1YgICNMQ0RTRzBfMytMQ0RPRzJfNywmTENEQ1RMIEFDVFVBTFkgTUVBTlMgTU9WICAjTENEUDEsJkxDRENUTCEgKi8KKyNkZWZpbmUgTENET0cxXzcgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRE9HMl83ICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzNfNyAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c0XzcgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNV83ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzZfNyAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c3ICAgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HT0ZGICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisKKyNkZWZpbmUgTENETUVNXyAgICAgICAgICAgICAgICAoMHgwMDkxKSAgICAgICAvKiBMQ0QgTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoTENETUVNXykgICAgICAvKiBMQ0QgTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBMQ0RNRU1fKSAvKiBMQ0QgTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoTENETTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMSAqLworU0ZSXzhCSVQoTENETTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMiAqLworU0ZSXzhCSVQoTENETTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMyAqLworU0ZSXzhCSVQoTENETTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNCAqLworU0ZSXzhCSVQoTENETTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNSAqLworU0ZSXzhCSVQoTENETTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNiAqLworU0ZSXzhCSVQoTENETTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNyAqLworU0ZSXzhCSVQoTENETTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOCAqLworU0ZSXzhCSVQoTENETTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOSAqLworU0ZSXzhCSVQoTENETTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTAgKi8KK1NGUl84QklUKExDRE0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDExICovCitTRlJfOEJJVChMQ0RNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMiAqLworU0ZSXzhCSVQoTENETTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTMgKi8KK1NGUl84QklUKExDRE0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE0ICovCitTRlJfOEJJVChMQ0RNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNSAqLworU0ZSXzhCSVQoTENETTE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTYgKi8KK1NGUl84QklUKExDRE0xNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE3ICovCitTRlJfOEJJVChMQ0RNMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxOCAqLworU0ZSXzhCSVQoTENETTE5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTkgKi8KK1NGUl84QklUKExDRE0yMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIwICovCisKKyNkZWZpbmUgTENETUEgICAgICAgICAgICAgICAgICAoTENETTEwKSAgICAgICAvKiBMQ0QgTWVtb3J5IEEgKi8KKyNkZWZpbmUgTENETUIgICAgICAgICAgICAgICAgICAoTENETTExKSAgICAgICAvKiBMQ0QgTWVtb3J5IEIgKi8KKyNkZWZpbmUgTENETUMgICAgICAgICAgICAgICAgICAoTENETTEyKSAgICAgICAvKiBMQ0QgTWVtb3J5IEMgKi8KKyNkZWZpbmUgTENETUQgICAgICAgICAgICAgICAgICAoTENETTEzKSAgICAgICAvKiBMQ0QgTWVtb3J5IEQgKi8KKyNkZWZpbmUgTENETUUgICAgICAgICAgICAgICAgICAoTENETTE0KSAgICAgICAvKiBMQ0QgTWVtb3J5IEUgKi8KKyNkZWZpbmUgTENETUYgICAgICAgICAgICAgICAgICAoTENETTE1KSAgICAgICAvKiBMQ0QgTWVtb3J5IEYgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29tcGFyYXRvciBBCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19DT01QQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChDQUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQ0FDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDIgKi8KK1NGUl84QklUKENBUEQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgUG9ydCBEaXNhYmxlICovCisKKyNkZWZpbmUgQ0FJRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIENBSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIENBSUVTICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBJbnQuIEVkZ2UgU2VsZWN0OiAwOnJpc2luZyAvIDE6ZmFsbGluZyAqLworI2RlZmluZSBDQU9OICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgZW5hYmxlICovCisjZGVmaW5lIENBUkVGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ0FSRUYxICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBDQVJTRUwgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIEVuYWJsZSAqLworI2RlZmluZSBDQUVYICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRXhjaGFuZ2UgSW5wdXRzICovCisKKyNkZWZpbmUgQ0FSRUZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMCA6IE9mZiAqLworI2RlZmluZSBDQVJFRl8xICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAxIDogMC4yNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMiA6IDAuNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMyA6IFZ0Ki8KKworI2RlZmluZSBDQU9VVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgT3V0cHV0ICovCisjZGVmaW5lIENBRiAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBFbmFibGUgT3V0cHV0IEZpbHRlciAqLworI2RlZmluZSBQMkNBMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0EwIDogMSAqLworI2RlZmluZSBQMkNBMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0ExIDogMSAqLworI2RlZmluZSBDQUNUTDI0ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBDQUNUTDI1ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBDQUNUTDI2ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBDQUNUTDI3ICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIENBUEQwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4wICovCisjZGVmaW5lIENBUEQxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4xICovCisjZGVmaW5lIENBUEQyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4yICovCisjZGVmaW5lIENBUEQzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4zICovCisjZGVmaW5lIENBUEQ0ICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC40ICovCisjZGVmaW5lIENBUEQ1ICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC41ICovCisjZGVmaW5lIENBUEQ2ICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC42ICovCisjZGVmaW5lIENBUEQ3ICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC43ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIEJBU0lDVElNRVJfVkVDVE9SICAgICAgICgwICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIEJhc2ljIFRpbWVyICovCisvKiNkZWZpbmUgQkFTSUNUSU1FUl9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDEgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICg0ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU4IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNCIpICAqLyAvKiAweEZGRTggUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkExX1ZFQ1RPUiAgICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQSBUaW1lciBBIENDMS0yLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNSIpICAqLyAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICg2ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4NDF4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4NDJ4LmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDQyeC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIxMDM0ODcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDQyeC5oCkBAIC0wLDAgKzEsODM4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHg0MnggZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMi41CisqCisqCisqIFJldi4gMi4xLCAKKyogUmV2LiAyLjExLCBBZGRlZCBTRDE2SU5URExZX3ggZGVmaW5pdGlvbnMKKyogUmV2LiAyLjIsIFJlbW92ZWQgdW51c2VkIGRlZiBvZiBUQVNTRUwyCisqIFJldi4gMi4zLCBBZGRlZCBWTEQgYml0cyBpbiBTVlMgbW9kdWxlCisqIFJldi4gMi40LCBSZW1vdmVkIGRlZmluaXRpb25zIGZvciBCVFJFU0VUCisqIFJldi4gMi41LCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4NDJ4CisjZGVmaW5lIF9fbXNwNDMweDQyeAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFBFUklQSEVSQUwgRklMRSBNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBFeHRlcm5hbCByZWZlcmVuY2VzIHJlc29sdmVkIGJ5IGEgZGV2aWNlLXNwZWNpZmljIGxpbmtlciBjb21tYW5kIGZpbGUgKi8KKyNkZWZpbmUgU0ZSXzhCSVQoYWRkcmVzcykgICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgY2hhciBhZGRyZXNzCisjZGVmaW5lIFNGUl8xNkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFOREFSRCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQklUMCAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBCSVQxICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIEJJVDIgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgQklUMyAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBCSVQ0ICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIEJJVDUgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgQklUNiAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBCSVQ3ICAgICAgICAgICAgICAgICAgICgweDAwODApCisjZGVmaW5lIEJJVDggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgQklUOSAgICAgICAgICAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBCSVRBICAgICAgICAgICAgICAgICAgICgweDA0MDApCisjZGVmaW5lIEJJVEIgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkKKyNkZWZpbmUgQklUQyAgICAgICAgICAgICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBCSVREICAgICAgICAgICAgICAgICAgICgweDIwMDApCisjZGVmaW5lIEJJVEUgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkKKyNkZWZpbmUgQklURiAgICAgICAgICAgICAgICAgICAoMHg4MDAwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQVRVUyBSRUdJU1RFUiBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQyAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBaICAgICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIE4gICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgViAgICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBHSUUgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgT1NDT0ZGICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBTQ0cwICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFNDRzEgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworLyogTG93IFBvd2VyIE1vZGVzIGNvZGVkIHdpdGggQml0cyA0LTcgaW4gU1IgKi8KKworI2lmZGVmIF9fQVNNX0hFQURFUl9fIC8qIEJlZ2luICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKyNkZWZpbmUgTFBNMCAgICAgICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xICAgICAgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMiAgICAgICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTMgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTQgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorLyogRW5kICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKworI2Vsc2UgLyogQmVnaW4gI2RlZmluZXMgZm9yIEMgKi8KKyNkZWZpbmUgTFBNMF9iaXRzICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xX2JpdHMgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMl9iaXRzICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTNfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTRfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorCisjaW5jbHVkZSA8SW40MzAuaD4KKworI2RlZmluZSBMUE0wICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0wX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0wX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTBfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTEgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTFfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTFfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMV9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMiAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMl9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMl9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0yX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0zICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0zX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE0zX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTQgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTRfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSA0ICovCisjZGVmaW5lIExQTTRfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNNF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDQgKi8KKyNlbmRpZiAvKiBFbmQgI2RlZmluZXMgZm9yIEMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1BFQ0lBTCBGVU5DVElPTiBSRUdJU1RFUiBBRERSRVNTRVMgKyBDT05UUk9MIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworU0ZSXzhCSVQoSUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMSAqLworI2RlZmluZSBVMElFICAgICAgICAgICAgICAgICAgIElFMSAgICAgICAgICAgIC8qIFVBUlQwIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVVJYSUUwICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYSUUwICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoSUZHMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KKyNkZWZpbmUgVTBJRkcgICAgICAgICAgICAgICAgICBJRkcxICAgICAgICAgICAvKiBVQVJUMCBJbnRlcnJ1cHQgRmxhZyBSZWdpc3RlciAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRkcgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBVUlhJRkcwICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhJRkcwICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChNRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTW9kdWxlIEVuYWJsZSAxICovCisjZGVmaW5lIFUwTUUgICAgICAgICAgICAgICAgICAgTUUxICAgICAgICAgICAgLyogVUFSVDAgTW9kdWxlIEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBVUlhFMCAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhFMCAgICAgICAgICAgICAgICAgICgweDgwKQorI2RlZmluZSBVU1BJRTAgICAgICAgICAgICAgICAgICgweDQwKQorCitTRlJfOEJJVChJRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAyICovCisjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKElGRzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAyICovCisjZGVmaW5lIEJUSUZHICAgICAgICAgICAgICAgICAgKDB4ODApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogV0FUQ0hET0cgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1dEVF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChXRFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBXRFRTU0VMICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBXRFROTUkgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFdEVE5NSUVTICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgV0RUSE9MRCAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisjZGVmaW5lIFdEVFBXICAgICAgICAgICAgICAgICAgKDB4NUEwMCkKKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01ETFlfOCAgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzUgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQURMWV8xMDAwICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BRExZXzI1MCAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xXzkgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgLyogMS45bXMgICAiICovCisvKiBXYXRjaGRvZyBtb2RlIC0+IHJlc2V0IGFmdGVyIGV4cGlyZWQgdGltZSAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NUlNUXzMyICAgICAgICAgKFdEVFBXK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfNSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF8wNjQgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMjUwICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xNiAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAvKiAxLjltcyAgICIgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAweDAxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDEvMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAxSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW5wdXQgKi8KK1NGUl84QklUKFAxT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgT3V0cHV0ICovCitTRlJfOEJJVChQMURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDFJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJBU0lDIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CVF9fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChCVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiQlQiICovCisjZGVmaW5lIEJUSVAwICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEJUSVAxICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIEJUSVAyICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEJURlJGUTAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJURlJGUTEgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEJURElWICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkNMSzIgPSBBQ0xLOjI1NiAqLworI2RlZmluZSBCVEhPTEQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEJUMSBpcyBoZWxkIGlmIHRoaXMgYml0IGlzIHNldCAqLworI2RlZmluZSBCVFNTRUwgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIGZCVCA9IGZNQ0xLIChtYWluIGNsb2NrKSAqLworCitTRlJfOEJJVChCVENOVDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMSAqLworU0ZSXzhCSVQoQlRDTlQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDIgKi8KKworLyogRnJlcXVlbmN5IG9mIHRoZSBCVENOVDIgY29kZWQgd2l0aCBCaXQgNSBhbmQgNyBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9BQ0xLICAgICAgICAgICgweDAwKQorI2RlZmluZSBCVF9mQ0xLMl9BQ0xLX0RJVjI1NiAgIChCVERJVikKKyNkZWZpbmUgQlRfZkNMSzJfTUNMSyAgICAgICAgICAoQlRTU0VMKQorCisvKiBJbnRlcnJ1cHQgaW50ZXJ2YWwgdGltZSBmSU5UIGNvZGVkIHdpdGggQml0cyAwLTIgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmSU5UID0gZkNMSzI6MiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNCAgICAgICAgICAoQlRJUDApICAgICAgICAvKiBmSU5UID0gZkNMSzI6NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY4ICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjE2ICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjE2ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjMyICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjMyICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjY0ICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjY0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjEyOCAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogZklOVCA9IGZDTEsyOjEyOCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyNTYgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogZklOVCA9IGZDTEsyOjI1NiAqLworLyogRnJlcXVlbmN5IG9mIExDRCBjb2RlZCB3aXRoIEJpdHMgMy00ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMzIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEX0RJVjY0ICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEX0RJVjEyOCAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYyNTYgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZBQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMUsgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfNTEyICAgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF8yNTYgICAgICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF8xMjggICAgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9Zk1DTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8zMUsgICAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiBmTUNMSzozMiAqLworI2RlZmluZSBCVF9mTENEXzE1XzVLICAgICAgIChCVFNTRUwrQlRGUkZRMCkgICAgICAgICAgLyogZk1DTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF83XzhLICAgICAgICAoQlRTU0VMK0JURlJGUTErQlRGUkZRMCkgIC8qIGZNQ0xLOjI1NiAqLworLyogd2l0aCBhc3N1bWVkIHZsdWVzIG9mIGZBQ0xLPTMyS0h6LCBmTUNMSz0xTUh6ICovCisvKiBmQlQ9ZkFDTEsgaXMgdGhvdWdodCBmb3IgbG9uZ2VyIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX0FETFlfMF8wNjQgICAgICAgICAgKDB4MDApICAgICAgICAgLyogMC4wNjRtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzEyNSAgICAgICAgICAoQlRJUDApICAgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzI1ICAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiAwLjI1bXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzUgICAgICAgICAgICAoQlRJUDErQlRJUDApICAvKiAwLjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xICAgICAgICAgICAgICAoQlRJUDIpICAgICAgICAvKiAxbXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yICAgICAgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiAybXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV80ICAgICAgICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiA0bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV84ICAgICAgICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIDhtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzE2ICAgICAgICAgICAgIChCVERJVikgICAgICAgIC8qIDE2bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzMyICAgICAgICAgICAgIChCVERJVitCVElQMCkgIC8qIDMybXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzY0ICAgICAgICAgICAgIChCVERJVitCVElQMSkgIC8qIDY0bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEyNSAgICAgICAgIChCVERJVitCVElQMStCVElQMCkgICAgICAgLyogMTI1bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjUwICAgICAgICAgICAgKEJURElWK0JUSVAyKSAgLyogMjUwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNTAwICAgICAgICAgKEJURElWK0JUSVAyK0JUSVAwKSAgICAgICAvKiA1MDBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDEpICAgICAgIC8qIDEwMDBtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMStCVElQMCkgLyogMjAwMG1zICAgICAiICovCisvKiBmQ0xLMj1mTUNMSyAoMU1IeikgaXMgdGhvdWdodCBmb3Igc2hvcnQgaW50ZXJ2YWwgdGltZXMgKi8KKy8qIHRoZSB0aW1pbmcgZm9yIHNob3J0IGludGVydmFscyBpcyBtb3JlIHByZWNpc2UgdGhhbiBBQ0xLICovCisvKiBOT1RFICovCisvKiBCZSBzdXJlIHRoYXQgdGhlIFNDRlFDVEwtUmVnaXN0ZXIgaXMgc2V0IHRvIDAxRmggc28gdGhhdCBmTUNMSz0xTUh6ICovCisvKiBUb28gbG93IGludGVydmFsIHRpbWUgcmVzdWx0cyBpbiBpbnRlcnJ1cHRzIHRvbyBmcmVxdWVudCBmb3IgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUhICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDIgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogMC4wMDJtcyBpbnRlcnZhbCAgICAgICAqKiogaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwNCAgICAgICAgICAoQlRTU0VMK0JUSVAwKSAvKiAwLjAwNG1zICAgICIgICAgICAgICAgICoqKiB0b28gc2hvcnQgZm9yICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDggICAgICAgICAgKEJUU1NFTCtCVElQMSkgLyogMC4wMDhtcyAgICAiICAgICAgICAgICAqKiogaW50ZXJydXB0ICovCisjZGVmaW5lIEJUX01ETFlfMF8wMTYgICAgICAgKEJUU1NFTCtCVElQMStCVElQMCkgICAgICAvKiAwLjAxNm1zICAgICIgICAgICAgICAgICoqKiBoYW5kbGluZyAqLworI2RlZmluZSBCVF9NRExZXzBfMDMyICAgICAgICAgIChCVFNTRUwrQlRJUDIpIC8qIDAuMDMybXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMDY0ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDApICAgICAgLyogMC4wNjRtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8xMjUgICAgICAgKEJUU1NFTCtCVElQMitCVElQMSkgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzI1ICAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxK0JUSVAwKS8qIDAuMjVtcyAgICAgIiAqLworCisvKiBSZXNldC9Ib2xkIGNvZGVkIHdpdGggQml0cyA2LTcgaW4gQlQoMSlDVEwgKi8KKy8qIHRoaXMgaXMgZm9yIEJUICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxICAgICAgICAoQlRSRVNFVCkgICAgICAgICAgIC8qIEJUQ05UMSBpcyByZXNldCB3aGlsZSBCVFJFU0VUIGlzIHNldCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMV8yICAgICAgKEJUUkVTRVQrQlRESVYpICAgICAvKiBCVENOVDEgLkFORC4gQlRDTlQyIGFyZSByZXNldCB3aGlsZSB+IGlzIHNldCAqLworLyogdGhpcyBpcyBmb3IgQlQxICovCisjZGVmaW5lIEJUSE9MRF9DTlQxICAgICAgICAgICAgKEJUSE9MRCkgICAgICAgLyogQlRDTlQxIGlzIGhlbGQgd2hpbGUgQlRIT0xEIGlzIHNldCAqLworI2RlZmluZSBCVEhPTERfQ05UMV8yICAgICAgICAgIChCVEhPTEQrQlRESVYpIC8qIEJUMUNOVDEgLkFORC4gQlQxQ05UMiBhcmUgaGVsZCB3aGlsZSB+IGlzIHNldCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiAjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgMHg4MCAqLworLyogI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgIDB4ODAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTWVNURU0gQ0xPQ0ssIEZMTCsgKHg0MXgpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTExQTFVTX1NNQUxMX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTQ0ZJMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDAgKi8KKyNkZWZpbmUgRk5fMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBmRENPQ0xLID0gICAxLjQtMTJNSHoqLworI2RlZmluZSBGTl8zICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDIuMi0xN01oeiovCisjZGVmaW5lIEZOXzQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogZkRDT0NMSyA9ICAgMy4yLTI1TWh6Ki8KKyNkZWZpbmUgRk5fOCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBmRENPQ0xLID0gICAgIDUtNDBNaHoqLworI2RlZmluZSBGTExEMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAwICovCisjZGVmaW5lIEZMTEQxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDEgKi8KKworI2RlZmluZSBGTExEXzEgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMSAqLworI2RlZmluZSBGTExEXzIgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMiAqLworI2RlZmluZSBGTExEXzQgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgNCAqLworI2RlZmluZSBGTExEXzggICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgOCAqLworCitTRlJfOEJJVChTQ0ZJMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDEgKi8KK1NGUl84QklUKFNDRlFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KKy8qIFN5c3RlbSBjbG9jayBmcmVxdWVuY3kgdmFsdWVzIGZNQ0xLIGNvZGVkIHdpdGggQml0cyAwLTYgaW4gU0NGUUNUTCAqLworLyogI2RlZmluZSBTQ0ZRXzMySyAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICBmTUNMSz0xKmZBQ0xLICAgICAgIG9ubHkgYSByYW5nZSBmcm9tICovCisjZGVmaW5lIFNDRlFfNjRLICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogZk1DTEs9MipmQUNMSyAgICAgICAgICAxKzEgdG8gMTI3KzEgaXMgcG9zc2libGUgKi8KKyNkZWZpbmUgU0NGUV8xMjhLICAgICAgICAgICAgICAoMHgwMykgICAgICAgICAvKiBmTUNMSz00KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMjU2SyAgICAgICAgICAgICAgKDB4MDcpICAgICAgICAgLyogZk1DTEs9OCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzUxMksgICAgICAgICAgICAgICgweDBGKSAgICAgICAgIC8qIGZNQ0xLPTE2KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMU0gICAgICAgICAgICAgICAgKDB4MUYpICAgICAgICAgLyogZk1DTEs9MzIqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8yTSAgICAgICAgICAgICAgICAoMHgzRikgICAgICAgICAvKiBmTUNMSz02NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzRNICAgICAgICAgICAgICAgICgweDdGKSAgICAgICAgIC8qIGZNQ0xLPTEyOCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRX00gICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gRGlzYWJsZSAqLworCitTRlJfOEJJVChGTExfQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDAgKi8KKyNkZWZpbmUgRENPRiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBEQ08gRmF1bHQgRmxhZyAqLworI2RlZmluZSBMRk9GICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIExvdyBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMU9GICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIE9TQ0NBUDAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDAgKi8KKyNkZWZpbmUgT1NDQ0FQMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMSAqLworI2RlZmluZSBYVFNfRkxMICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIDE6IFNlbGVjdHMgaGlnaC1mcmVxLiBvc2NpbGxhdG9yICovCisjZGVmaW5lIERDT1BMVVMgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPKyBFbmFibGUgKi8KKworI2RlZmluZSBYQ0FQMFBGICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBYQ0FQMTBQRiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgWENBUDE0UEYgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIFhDQVAxOFBGICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworI2RlZmluZSBPU0NDQVBfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBPU0NDQVBfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzIgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIE9TQ0NBUF8zICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworCitTRlJfOEJJVChGTExfQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDEgKi8KKyNkZWZpbmUgRkxMX0RJVjAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMCAqLworI2RlZmluZSBGTExfRElWMSAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyAxICovCisKKyNkZWZpbmUgRkxMX0RJVl8xICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMSAqLworI2RlZmluZSBGTExfRElWXzIgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSAyICovCisjZGVmaW5lIEZMTF9ESVZfNCAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDQgKi8KKyNkZWZpbmUgRkxMX0RJVl84ICAgICAgICAgICAgICAoMHgwMykgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgOCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAweDAyICovCisvKiAjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgMHgwMiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJyb3duLU91dCwgU3VwcGx5IFZvbHRhZ2UgU3VwZXJ2aXNpb24gKFNWUykKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NWU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNWU0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgQ29udHJvbCAqLworI2RlZmluZSBTVlNGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNWUyBGbGFnICovCisjZGVmaW5lIFNWU09QICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1ZTIG91dHB1dCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBTVlNPTiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN3aXRjaGVzIHRoZSBTVlMgb24vb2ZmICovCisjZGVmaW5lIFBPUk9OICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRW5hYmxlIFBPUiBHZW5lcmF0aW9uIGlmIExvdyBWb2x0YWdlICovCisjZGVmaW5lIFZMRDAgICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRDEgICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFZMRDIgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFZMRDMgICAgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgVkxET04gICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxET0ZGICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgVkxEXzFfOFYgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBMQ0QKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0xDRDRfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKExDRENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgQ29udHJvbCAqLworLyogdGhlIG5hbWVzIG9mIHRoZSBtb2RlIGJpdHMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBzcGVjICovCisjZGVmaW5lIExDRE9OICAgICAgICAgICAgICAgICAgKDB4MDEpCisvLyNkZWZpbmUgTENETE9XUiAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTENEU09OICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTENETVgwICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTENETVgxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTENEUDAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgTENEUDEgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgTENEUDIgICAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIERpc3BsYXkgbW9kZXMgY29kZWQgd2l0aCBCaXRzIDItNCAqLworI2RlZmluZSBMQ0RTVEFUSUMgICAgICAgICAgICAgIChMQ0RTT04pCisjZGVmaW5lIExDRDJNVVggICAgICAgICAgICAgICAgKExDRE1YMCtMQ0RTT04pCisjZGVmaW5lIExDRDNNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RTT04pCisjZGVmaW5lIExDRDRNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RNWDArTENEU09OKQorLyogR3JvdXAgc2VsZWN0IGNvZGUgd2l0aCBCaXRzIDUtNyAgICAgICAgICAgICAgICAgICAgIFNlZy5saW5lcyAgIERpZy5vdXRwdXQgKi8KKyNkZWZpbmUgTENEU0cwICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRFNHMF8xICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfMiAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzMgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF80ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNSAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzYgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF83ICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisvKiBOT1RFOiBZT1UgQ0FOIE9OTFkgVVNFIFRIRSAnUycgT1IgJ0cnIERFQ0xBUkFUSU9OUyBGT1IgQSBDT01NQU5EICovCisvKiBNT1YgICNMQ0RTRzBfMytMQ0RPRzJfNywmTENEQ1RMIEFDVFVBTFkgTUVBTlMgTU9WICAjTENEUDEsJkxDRENUTCEgKi8KKyNkZWZpbmUgTENET0cxXzcgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRE9HMl83ICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzNfNyAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c0XzcgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNV83ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzZfNyAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c3ICAgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HT0ZGICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisKKyNkZWZpbmUgTENETUVNXyAgICAgICAgICAgICAgICAoMHgwMDkxKSAgICAgICAvKiBMQ0QgTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoTENETUVNXykgICAgICAvKiBMQ0QgTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBMQ0RNRU1fKSAvKiBMQ0QgTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoTENETTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMSAqLworU0ZSXzhCSVQoTENETTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMiAqLworU0ZSXzhCSVQoTENETTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMyAqLworU0ZSXzhCSVQoTENETTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNCAqLworU0ZSXzhCSVQoTENETTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNSAqLworU0ZSXzhCSVQoTENETTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNiAqLworU0ZSXzhCSVQoTENETTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNyAqLworU0ZSXzhCSVQoTENETTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOCAqLworU0ZSXzhCSVQoTENETTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOSAqLworU0ZSXzhCSVQoTENETTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTAgKi8KK1NGUl84QklUKExDRE0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDExICovCitTRlJfOEJJVChMQ0RNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMiAqLworU0ZSXzhCSVQoTENETTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTMgKi8KK1NGUl84QklUKExDRE0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE0ICovCitTRlJfOEJJVChMQ0RNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNSAqLworU0ZSXzhCSVQoTENETTE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTYgKi8KK1NGUl84QklUKExDRE0xNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE3ICovCitTRlJfOEJJVChMQ0RNMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxOCAqLworU0ZSXzhCSVQoTENETTE5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTkgKi8KK1NGUl84QklUKExDRE0yMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIwICovCisKKyNkZWZpbmUgTENETUEgICAgICAgICAgICAgICAgICAoTENETTEwKSAgICAgICAvKiBMQ0QgTWVtb3J5IEEgKi8KKyNkZWZpbmUgTENETUIgICAgICAgICAgICAgICAgICAoTENETTExKSAgICAgICAvKiBMQ0QgTWVtb3J5IEIgKi8KKyNkZWZpbmUgTENETUMgICAgICAgICAgICAgICAgICAoTENETTEyKSAgICAgICAvKiBMQ0QgTWVtb3J5IEMgKi8KKyNkZWZpbmUgTENETUQgICAgICAgICAgICAgICAgICAoTENETTEzKSAgICAgICAvKiBMQ0QgTWVtb3J5IEQgKi8KKyNkZWZpbmUgTENETUUgICAgICAgICAgICAgICAgICAoTENETTE0KSAgICAgICAvKiBMQ0QgTWVtb3J5IEUgKi8KKyNkZWZpbmUgTENETUYgICAgICAgICAgICAgICAgICAoTENETTE1KSAgICAgICAvKiBMQ0QgTWVtb3J5IEYgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBVeENUTCAqLworI2RlZmluZSBQRU5BICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgUEVWICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQYXJpdHkgMDpvZGQgLyAxOmV2ZW4gKi8KKyNkZWZpbmUgU1BCICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBTdG9wIEJpdHMgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgQ0hBUiAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBEYXRhIDA6Ny1iaXRzIC8gMTo4LWJpdHMgKi8KKyNkZWZpbmUgTElTVEVOICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBMaXN0ZW4gbW9kZSAqLworI2RlZmluZSBTWU5DICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVBUlQgLyBTUEkgbW9kZSAqLworI2RlZmluZSBNTSAgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1hc3RlciBNb2RlIG9mZi9vbiAqLworI2RlZmluZSBTV1JTVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTQVJUIFNvZnR3YXJlIFJlc2V0ICovCisKKy8qIFV4VENUTCAqLworI2RlZmluZSBDS1BIICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFNQSTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgQ0tQTCAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBTU0VMMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBTU0VMMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBVUlhTRSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlY2VpdmUgU3RhcnQgZWRnZSBzZWxlY3QgKi8KKyNkZWZpbmUgVFhXQUtFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBUWCBXYWtlIHVwIG1vZGUgKi8KKyNkZWZpbmUgU1RDICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTUEk6IFNUQyBlbmFibGUgMDpvbiAvIDE6b2ZmICovCisjZGVmaW5lIFRYRVBUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVFggQnVmZmVyIGVtcHR5ICovCisKKy8qIFV4UkNUTCAqLworI2RlZmluZSBGRSAgICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEZyYW1lIEVycm9yICovCisjZGVmaW5lIFBFICAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IEVycm9yICovCisjZGVmaW5lIE9FICAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogT3ZlcnJ1biBFcnJvciAqLworI2RlZmluZSBCUksgICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJyZWFrIGRldGVjdGVkICovCisjZGVmaW5lIFVSWEVJRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUlggRXJyb3IgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVUlhXSUUgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJYIFdha2UgdXAgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBSWFdBS0UgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJYIFdha2UgdXAgZGV0ZWN0ICovCisjZGVmaW5lIFJYRVJSICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUlggRXJyb3IgRXJyb3IgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVCAwCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VQVJUMF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCitTRlJfOEJJVChVMFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVMFJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KK1NGUl84QklUKFUwTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFUwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVMFJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVTBUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworCisjZGVmaW5lIFVDVEwwICAgICAgICAgICAgICAgICAgVTBDVEwgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMCAgICAgICAgICAgICAgICAgVTBUQ1RMICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMCAgICAgICAgICAgICAgICAgVTBSQ1RMICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwwICAgICAgICAgICAgICAgICBVME1DVEwgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMCAgICAgICAgICAgICAgICAgIFUwQlIwICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTAgICAgICAgICAgICAgICAgICBVMEJSMSAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMCAgICAgICAgICAgICAgICAgVTBSWEJVRiAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjAgICAgICAgICAgICAgICAgIFUwVFhCVUYgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVEwwXyAgICAgICAgICAgICAgICAgVTBDVExfICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMF8gICAgICAgICAgICAgICAgVTBUQ1RMXyAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMF8gICAgICAgICAgICAgICAgVTBSQ1RMXyAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwwXyAgICAgICAgICAgICAgICBVME1DVExfICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMF8gICAgICAgICAgICAgICAgIFUwQlIwXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTBfICAgICAgICAgICAgICAgICBVMEJSMV8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMF8gICAgICAgICAgICAgICAgVTBSWEJVRl8gICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjBfICAgICAgICAgICAgICAgIFUwVFhCVUZfICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMCAgICAgICAgICAgICAgICAgVTBDVEwgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzAgICAgICAgICAgICAgICAgVTBUQ1RMICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzAgICAgICAgICAgICAgICAgVTBSQ1RMICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMCAgICAgICAgICAgICAgICBVME1DVEwgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzAgICAgICAgICAgICAgICAgIFUwQlIwICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8wICAgICAgICAgICAgICAgICBVMEJSMSAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzAgICAgICAgICAgICAgICAgVTBSWEJVRiAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8wICAgICAgICAgICAgICAgIFUwVFhCVUYgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMF8gICAgICAgICAgICAgICAgVTBDVExfICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzBfICAgICAgICAgICAgICAgVTBUQ1RMXyAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzBfICAgICAgICAgICAgICAgVTBSQ1RMXyAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMF8gICAgICAgICAgICAgICBVME1DVExfICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzBfICAgICAgICAgICAgICAgIFUwQlIwXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8wXyAgICAgICAgICAgICAgICBVMEJSMV8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzBfICAgICAgICAgICAgICAgVTBSWEJVRl8gICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8wXyAgICAgICAgICAgICAgIFUwVFhCVUZfICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0hfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEhBUkRXQVJFIE1VTFRJUExJRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX01QWV9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChNUFkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNUFlTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTUFDKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQgYW5kIEFjY3VtdWxhdGUvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTUFDUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE9QMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9wZXJhbmQgMiAqLworU0ZSXzE2QklUKFJFU0xPKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlc3VsdCBMb3cgV29yZCAqLworU0ZSXzE2QklUKFJFU0hJKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlc3VsdCBIaWdoIFdvcmQgKi8KK1NGUl8xNkJJVChTVU1FWFQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTdW0gRXh0ZW5kICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU0QxNiAtIFNpZ21hIERlbHRhIDE2IEJpdAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfU0QxNl8zX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0QxNklOQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW5wdXQgQ29udHJvbCBSZWdpc3RlciBDaGFubmVsIDAgKi8KK1NGUl84QklUKFNEMTZJTkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAxICovCitTRlJfOEJJVChTRDE2SU5DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnB1dCBDb250cm9sIFJlZ2lzdGVyIENoYW5uZWwgMiAqLworU0ZSXzhCSVQoU0QxNlBSRTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgUHJlbG9hZCBSZWdpc3RlciBDaGFubmVsIDAgKi8KK1NGUl84QklUKFNEMTZQUkUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IFByZWxvYWQgUmVnaXN0ZXIgQ2hhbm5lbCAxICovCitTRlJfOEJJVChTRDE2UFJFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBQcmVsb2FkIFJlZ2lzdGVyIENoYW5uZWwgMiAqLworU0ZSXzhCSVQoU0QxNkNPTkYwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW50ZXJuYWwgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAwICovCitTRlJfOEJJVChTRDE2Q09ORjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcm5hbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDEgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUGxlYXNlIHVzZSBvbmx5IHRoZSByZWNvbW1lbmRlZCBzZXR0aW5ncyAqLworCitTRlJfMTZCSVQoU0QxNkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU2lnbWEgRGVsdGEgQURDIDE2IENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2Q0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMCBDb250cm9sIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDEgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAyIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2SVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2TUVNMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMCBDb252ZXJzaW9uIE1lbW9yeSAqLworU0ZSXzE2QklUKFNEMTZNRU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAxIENvbnZlcnNpb24gTWVtb3J5ICovCitTRlJfMTZCSVQoU0QxNk1FTTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDIgQ29udmVyc2lvbiBNZW1vcnkgKi8KKworLyogU0QxNklOQ1RMeCAtIEFGRUlOQ1RMeCAqLworI2RlZmluZSBTRDE2SU5DSDAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgMCAqLworI2RlZmluZSBTRDE2SU5DSDEgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgMSAqLworI2RlZmluZSBTRDE2SU5DSDIgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgMiAqLworI2RlZmluZSBTRDE2R0FJTjAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZHQUlOMSAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkdBSU4yICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgMiAqLworI2RlZmluZSBTRDE2SU5URExZMCAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5IGFmdGVyIDEuQ29udmVyc2lvbiAwICovCisjZGVmaW5lIFNEMTZJTlRETFkxICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXkgYWZ0ZXIgMS5Db252ZXJzaW9uIDEgKi8KKworI2RlZmluZSBTRDE2R0FJTl8xICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMSAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMiAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjIgICovCisjZGVmaW5lIFNEMTZHQUlOXzQgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICo0ICAqLworI2RlZmluZSBTRDE2R0FJTl84ICAgICAgICAgICAgICgweDAwMTgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqOCAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMTYgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjE2ICovCisjZGVmaW5lIFNEMTZHQUlOXzMyICAgICAgICAgICAgKDB4MDAyOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICozMiAqLworCisjZGVmaW5lIFNEMTZJTkNIXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF8xICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfMiAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzMgICAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF80ICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNSAgICAgICAgICAgICAoMHgwMDA1KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzYgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBUZW1wICovCisjZGVmaW5lIFNEMTZJTkNIXzcgICAgICAgICAgICAgKDB4MDAwNykgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBPZmZzZXQgKi8KKworI2RlZmluZSBTRDE2SU5URExZXzAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDQuQ29udmVyc2lvbiAgKi8KKyNkZWZpbmUgU0QxNklOVERMWV8xICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheTogSW50LiBhZnRlciAzLkNvbnZlcnNpb24gICovCisjZGVmaW5lIFNEMTZJTlRETFlfMiAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgMi5Db252ZXJzaW9uICAqLworI2RlZmluZSBTRDE2SU5URExZXzMgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDEuQ29udmVyc2lvbiAgKi8KKworLyogU0QxNkNUTCAtIEFGRUNUTCAqLworI2RlZmluZSBTRDE2T1ZJRSAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgT3ZlcmZsb3cgSW50ZXJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFNEMTZSRUZPTiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBTd2l0Y2ggaW50ZXJuYWwgUmVmZXJlbmNlIG9uICovCisjZGVmaW5lIFNEMTZWTUlET04gICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBTd2l0Y2ggVm1pZCBCdWZmZXIgb24gKi8KKyNkZWZpbmUgU0QxNlNTRUwwICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRDE2U1NFTDEgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZESVYwICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZESVYxICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZMUCAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0QxNiBMb3cgUG93ZXIgTW9kZSBFbmFibGUgKi8KKworI2RlZmluZSBTRDE2RElWXzAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzEgKi8KKyNkZWZpbmUgU0QxNkRJVl8xICAgICAgICAgICAgICAoU0QxNkRJVjApICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC8yICovCisjZGVmaW5lIFNEMTZESVZfMiAgICAgICAgICAgICAgKFNEMTZESVYxKSAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvNCAqLworI2RlZmluZSBTRDE2RElWXzMgICAgICAgICAgICAoU0QxNkRJVjArU0QxNkRJVjEpICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzggKi8KKworI2RlZmluZSBTRDE2U1NFTF8wICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCBNQ0xLICAqLworI2RlZmluZSBTRDE2U1NFTF8xICAgICAgICAgICAgIChTRDE2U1NFTDApICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCBTTUNMSyAqLworI2RlZmluZSBTRDE2U1NFTF8yICAgICAgICAgICAgIChTRDE2U1NFTDEpICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCBBQ0xLICAqLworI2RlZmluZSBTRDE2U1NFTF8zICAgICAgICAgICAoU0QxNlNTRUwwK1NEMTZTU0VMMSkgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCBUQUNMSyAqLworCisvKiBTRDE2Q0NUTHggLSBBRkVDQ1RMeCAqLworI2RlZmluZSBTRDE2R1JQICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNEMTYgR3JvdXBpbmcgb2YgQ2hhbm5lbHM6IDA6T2ZmLzE6T24gKi8KKyNkZWZpbmUgU0QxNlNDICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTRDE2IFN0YXJ0IENvbnZlcnNpb24gKi8KKyNkZWZpbmUgU0QxNklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBTRDE2SUUgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgU0QxNkRGICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBEYXRhIEZvcm1hdDogMDpVbmlwb2xhci8xOkJpcG9sYXIgKi8KKyNkZWZpbmUgU0QxNk9WSUZHICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyZmxvdyBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBTRDE2TFNCQUNDICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEFjY2VzcyBMU0Igb2YgQURDICovCisjZGVmaW5lIFNEMTZMU0JUT0cgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggVG9nZ2xlIExTQiBPdXRwdXQgb2YgQURDICovCisjZGVmaW5lIFNEMTZPU1IwICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDAgKi8KKyNkZWZpbmUgU0QxNk9TUjEgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMSAqLworI2RlZmluZSBTRDE2U05HTCAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IFNpbmdsZSBDb252ZXJzaW9uIE9uL09mZiAqLworCisjZGVmaW5lIFNEMTZPU1JfMjU2ICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDI1NiAqLworI2RlZmluZSBTRDE2T1NSXzEyOCAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAxMjggKi8KKyNkZWZpbmUgU0QxNk9TUl82NCAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gIDY0ICovCisjZGVmaW5lIFNEMTZPU1JfMzIgICAgICAgICAgICAgKDB4MDMwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvICAzMiAqLworCisvKiBTRDE2SVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgU0QxNklWX05PTkUgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBTRDE2SVZfU0QxNk9WSUZHICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTZPVklGRyAqLworI2RlZmluZSBTRDE2SVZfU0QxNk1FTTAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTZNRU0wIFNEMTZJRkcgKi8KKyNkZWZpbmUgU0QxNklWX1NEMTZNRU0xICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTRDE2TUVNMSBTRDE2SUZHICovCisjZGVmaW5lIFNEMTZJVl9TRDE2TUVNMiAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNk1FTTIgU0QxNklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGRTApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworI2RlZmluZSBCQVNJQ1RJTUVSX1ZFQ1RPUiAgICAgICAoMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLworLyojZGVmaW5lIEJBU0lDVElNRVJfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMCIpICAqLyAvKiAweEZGRTAgQmFzaWMgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgxICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUyIFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMSIpICAqLyAvKiAweEZGRTIgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFRYX1ZFQ1RPUiAgICAgICAgICg4ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFVTQVJUIDAgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0FSVDBUWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFVTQVJUIDAgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFJYX1ZFQ1RPUiAgICAgICAgICg5ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQVJUMFJYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVVNBUlQgMCBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKyNkZWZpbmUgU0QxNl9WRUNUT1IgICAgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggU2lnbWEgRGVsdGEgQURDICovCisvKiNkZWZpbmUgU0QxNl9JU1IoZnVuYykgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEyIikgICovIC8qIDB4RkZGOCBTaWdtYSBEZWx0YSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRW5kIG9mIE1vZHVsZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogZXh0ZXJuICJDIiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX21zcDQzMHg0MnggKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0MngwLmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDQyeDAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NjRjNDlmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0MngwLmgKQEAgLTAsMCArMSw4NDYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDQyeDAgZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMS4zCisqCisqCisqIFJldi4gMS4wLCBJbml0YWwgU2V0dXAKKyogUmV2LiAxLjEsIEFkZGVkIHNvbWUgZGVmaW5pdG9ucyBmb3IgTENEX0EgTW9kdWxlCisqIFJldi4gMS4yLCBSZW1vdmVkIGRlZmluaXRpb25zIGZvciBCVFJFU0VUCisqIFJldi4gMS4zLCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4NDJ4MAorI2RlZmluZSBfX21zcDQzMHg0MngwCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBPc2MuIEZhdWx0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFBPUklGRyAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUG93ZXIgT24gSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgUlNUSUZHICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSZXNldCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBOTUlJRkcgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE5NSSBJbnRlcnJ1cHQgRmxhZyAqLworCitTRlJfOEJJVChJRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAyICovCisjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKElGRzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAyICovCisjZGVmaW5lIEJUSUZHICAgICAgICAgICAgICAgICAgKDB4ODApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogV0FUQ0hET0cgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1dEVF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChXRFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBXRFRTU0VMICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBXRFROTUkgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFdEVE5NSUVTICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgV0RUSE9MRCAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisjZGVmaW5lIFdEVFBXICAgICAgICAgICAgICAgICAgKDB4NUEwMCkKKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01ETFlfOCAgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzUgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQURMWV8xMDAwICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BRExZXzI1MCAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xXzkgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgLyogMS45bXMgICAiICovCisvKiBXYXRjaGRvZyBtb2RlIC0+IHJlc2V0IGFmdGVyIGV4cGlyZWQgdGltZSAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NUlNUXzMyICAgICAgICAgKFdEVFBXK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfNSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF8wNjQgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMjUwICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xNiAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAvKiAxLjltcyAgICIgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAweDAxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDEvMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAxSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW5wdXQgKi8KK1NGUl84QklUKFAxT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgT3V0cHV0ICovCitTRlJfOEJJVChQMURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDFJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQ1LzYKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ1X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQNUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IElucHV0ICovCitTRlJfOEJJVChQNU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IE91dHB1dCAqLworU0ZSXzhCSVQoUDVESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA1U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFA2SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgSW5wdXQgKi8KK1NGUl84QklUKFA2T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgT3V0cHV0ICovCitTRlJfOEJJVChQNkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDZTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCQVNJQyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQlRfXyAgICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIkJUIiAqLworI2RlZmluZSBCVElQMCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBCVElQMSAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBCVElQMiAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBCVEZSRlEwICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBCVEZSRlExICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBCVERJViAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZDTEsyID0gQUNMSzoyNTYgKi8KKyNkZWZpbmUgQlRIT0xEICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBCVDEgaXMgaGVsZCBpZiB0aGlzIGJpdCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRTU0VMICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBmQlQgPSBmTUNMSyAobWFpbiBjbG9jaykgKi8KKworU0ZSXzhCSVQoQlRDTlQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDEgKi8KK1NGUl84QklUKEJUQ05UMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAyICovCisKKy8qIEZyZXF1ZW5jeSBvZiB0aGUgQlRDTlQyIGNvZGVkIHdpdGggQml0IDUgYW5kIDcgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfQUNMSyAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgQlRfZkNMSzJfQUNMS19ESVYyNTYgICAoQlRESVYpCisjZGVmaW5lIEJUX2ZDTEsyX01DTEsgICAgICAgICAgKEJUU1NFTCkKKworLyogSW50ZXJydXB0IGludGVydmFsIHRpbWUgZklOVCBjb2RlZCB3aXRoIEJpdHMgMC0yIGluIEJUQ1RMICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZklOVCA9IGZDTEsyOjIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjQgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjQgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWOCAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiBmSU5UID0gZkNMSzI6OCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxNiAgICAgICAgIChCVElQMStCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjoxNiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYzMiAgICAgICAgIChCVElQMikgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjozMiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY2NCAgICAgICAgIChCVElQMitCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjo2NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxMjggICAgICAgIChCVElQMitCVElQMSkgIC8qIGZJTlQgPSBmQ0xLMjoxMjggKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMjU2ICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIGZJTlQgPSBmQ0xLMjoyNTYgKi8KKy8qIEZyZXF1ZW5jeSBvZiBMQ0QgY29kZWQgd2l0aCBCaXRzIDMtNCAqLworI2RlZmluZSBCVF9mTENEX0RJVjMyICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzozMiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVY2NCAgICAgICAgICAoQlRGUkZRMCkgICAgICAvKiBmTENEID0gZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYxMjggICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmTENEID0gZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMjU2ICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmTENEID0gZkFDTEs6MjU2ICovCisvKiBMQ0QgZnJlcXVlbmN5IHZhbHVlcyB3aXRoIGZCVD1mQUNMSyAqLworI2RlZmluZSBCVF9mTENEXzFLICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEXzUxMiAgICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZBQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfMjU2ICAgICAgICAgICAgKEJURlJGUTEpICAgICAgLyogZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfMTI4ICAgICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZNQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMzFLICAgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogZk1DTEs6MzIgKi8KKyNkZWZpbmUgQlRfZkxDRF8xNV81SyAgICAgICAoQlRTU0VMK0JURlJGUTApICAgICAgICAgIC8qIGZNQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfN184SyAgICAgICAgKEJUU1NFTCtCVEZSRlExK0JURlJGUTApICAvKiBmTUNMSzoyNTYgKi8KKy8qIHdpdGggYXNzdW1lZCB2bHVlcyBvZiBmQUNMSz0zMktIeiwgZk1DTEs9MU1IeiAqLworLyogZkJUPWZBQ0xLIGlzIHRob3VnaHQgZm9yIGxvbmdlciBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9BRExZXzBfMDY0ICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIDAuMDY0bXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX0FETFlfMF8xMjUgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF8yNSAgICAgICAgICAgKEJUSVAxKSAgICAgICAgLyogMC4yNW1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF81ICAgICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogMC41bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMSAgICAgICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogMW1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMiAgICAgICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogMm1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNCAgICAgICAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogNG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfOCAgICAgICAgICAgKEJUSVAyK0JUSVAxK0JUSVAwKSAgICAgICAvKiA4bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xNiAgICAgICAgICAgICAoQlRESVYpICAgICAgICAvKiAxNm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8zMiAgICAgICAgICAgICAoQlRESVYrQlRJUDApICAvKiAzMm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV82NCAgICAgICAgICAgICAoQlRESVYrQlRJUDEpICAvKiA2NG1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMjUgICAgICAgICAoQlRESVYrQlRJUDErQlRJUDApICAgICAgIC8qIDEyNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzI1MCAgICAgICAgICAgIChCVERJVitCVElQMikgIC8qIDI1MG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzUwMCAgICAgICAgIChCVERJVitCVElQMitCVElQMCkgICAgICAgLyogNTAwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxKSAgICAgICAvKiAxMDAwbXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDErQlRJUDApIC8qIDIwMDBtcyAgICAgIiAqLworLyogZkNMSzI9Zk1DTEsgKDFNSHopIGlzIHRob3VnaHQgZm9yIHNob3J0IGludGVydmFsIHRpbWVzICovCisvKiB0aGUgdGltaW5nIGZvciBzaG9ydCBpbnRlcnZhbHMgaXMgbW9yZSBwcmVjaXNlIHRoYW4gQUNMSyAqLworLyogTk9URSAqLworLyogQmUgc3VyZSB0aGF0IHRoZSBTQ0ZRQ1RMLVJlZ2lzdGVyIGlzIHNldCB0byAwMUZoIHNvIHRoYXQgZk1DTEs9MU1IeiAqLworLyogVG9vIGxvdyBpbnRlcnZhbCB0aW1lIHJlc3VsdHMgaW4gaW50ZXJydXB0cyB0b28gZnJlcXVlbnQgZm9yIHRoZSBwcm9jZXNzb3IgdG8gaGFuZGxlISAqLworI2RlZmluZSBCVF9NRExZXzBfMDAyICAgICAgICAgIChCVFNTRUwpICAgICAgIC8qIDAuMDAybXMgaW50ZXJ2YWwgICAgICAgKioqIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDQgICAgICAgICAgKEJUU1NFTCtCVElQMCkgLyogMC4wMDRtcyAgICAiICAgICAgICAgICAqKiogdG9vIHNob3J0IGZvciAqLworI2RlZmluZSBCVF9NRExZXzBfMDA4ICAgICAgICAgIChCVFNTRUwrQlRJUDEpIC8qIDAuMDA4bXMgICAgIiAgICAgICAgICAgKioqIGludGVycnVwdCAqLworI2RlZmluZSBCVF9NRExZXzBfMDE2ICAgICAgIChCVFNTRUwrQlRJUDErQlRJUDApICAgICAgLyogMC4wMTZtcyAgICAiICAgICAgICAgICAqKiogaGFuZGxpbmcgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAzMiAgICAgICAgICAoQlRTU0VMK0JUSVAyKSAvKiAwLjAzMm1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzA2NCAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAwKSAgICAgIC8qIDAuMDY0bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMTI1ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDEpICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8yNSAgICAgICAgKEJUU1NFTCtCVElQMitCVElQMStCVElQMCkvKiAwLjI1bXMgICAgICIgKi8KKworLyogUmVzZXQvSG9sZCBjb2RlZCB3aXRoIEJpdHMgNi03IGluIEJUKDEpQ1RMICovCisvKiB0aGlzIGlzIGZvciBCVCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMSAgICAgICAgKEJUUkVTRVQpICAgICAgICAgICAvKiBCVENOVDEgaXMgcmVzZXQgd2hpbGUgQlRSRVNFVCBpcyBzZXQgKi8KKy8vI2RlZmluZSBCVFJFU0VUX0NOVDFfMiAgICAgIChCVFJFU0VUK0JURElWKSAgICAgLyogQlRDTlQxIC5BTkQuIEJUQ05UMiBhcmUgcmVzZXQgd2hpbGUgfiBpcyBzZXQgKi8KKy8qIHRoaXMgaXMgZm9yIEJUMSAqLworI2RlZmluZSBCVEhPTERfQ05UMSAgICAgICAgICAgIChCVEhPTEQpICAgICAgIC8qIEJUQ05UMSBpcyBoZWxkIHdoaWxlIEJUSE9MRCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDFfMiAgICAgICAgICAoQlRIT0xEK0JURElWKSAvKiBCVDFDTlQxIC5BTkQuIEJUMUNOVDIgYXJlIGhlbGQgd2hpbGUgfiBpcyBzZXQgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogI2RlZmluZSBCVElFICAgICAgICAgICAgICAgIDB4ODAgKi8KKy8qICNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAweDgwICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1lTVEVNIENMT0NLLCBGTEwrICh4NDF4KQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxMUExVU19TTUFMTF9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0NGSTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAwICovCisjZGVmaW5lIEZOXzIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMS40LTEyTUh6Ki8KKyNkZWZpbmUgRk5fMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBmRENPQ0xLID0gICAyLjItMTdNaHoqLworI2RlZmluZSBGTl80ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDMuMi0yNU1oeiovCisjZGVmaW5lIEZOXzggICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkRDT0NMSyA9ICAgICA1LTQwTWh6Ki8KKyNkZWZpbmUgRkxMRDAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMCAqLworI2RlZmluZSBGTExEMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAxICovCisKKyNkZWZpbmUgRkxMRF8xICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDEgKi8KKyNkZWZpbmUgRkxMRF8yICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDIgKi8KKyNkZWZpbmUgRkxMRF80ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDQgKi8KKyNkZWZpbmUgRkxMRF84ICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDggKi8KKworU0ZSXzhCSVQoU0NGSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAxICovCitTRlJfOEJJVChTQ0ZRQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCisvKiBTeXN0ZW0gY2xvY2sgZnJlcXVlbmN5IHZhbHVlcyBmTUNMSyBjb2RlZCB3aXRoIEJpdHMgMC02IGluIFNDRlFDVEwgKi8KKy8qICNkZWZpbmUgU0NGUV8zMksgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgZk1DTEs9MSpmQUNMSyAgICAgICBvbmx5IGEgcmFuZ2UgZnJvbSAqLworI2RlZmluZSBTQ0ZRXzY0SyAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIGZNQ0xLPTIqZkFDTEsgICAgICAgICAgMSsxIHRvIDEyNysxIGlzIHBvc3NpYmxlICovCisjZGVmaW5lIFNDRlFfMTI4SyAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogZk1DTEs9NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzI1NksgICAgICAgICAgICAgICgweDA3KSAgICAgICAgIC8qIGZNQ0xLPTgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV81MTJLICAgICAgICAgICAgICAoMHgwRikgICAgICAgICAvKiBmTUNMSz0xNipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzFNICAgICAgICAgICAgICAgICgweDFGKSAgICAgICAgIC8qIGZNQ0xLPTMyKmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMk0gICAgICAgICAgICAgICAgKDB4M0YpICAgICAgICAgLyogZk1DTEs9NjQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV80TSAgICAgICAgICAgICAgICAoMHg3RikgICAgICAgICAvKiBmTUNMSz0xMjgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV9NICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2R1bGF0aW9uIERpc2FibGUgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAwICovCisjZGVmaW5lIERDT0YgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRENPIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgTEZPRiAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMb3cgRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFPRiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBPU0NDQVAwICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIE9TQ0NBUDEgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgWFRTX0ZMTCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxOiBTZWxlY3RzIGhpZ2gtZnJlcS4gb3NjaWxsYXRvciAqLworI2RlZmluZSBEQ09QTFVTICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTysgRW5hYmxlICovCisKKyNkZWZpbmUgWENBUDBQRiAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgWENBUDEwUEYgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIFhDQVAxNFBGICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBYQ0FQMThQRiAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzEgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIE9TQ0NBUF8yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBPU0NDQVBfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAxICovCisjZGVmaW5lIEZMTF9ESVYwICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIDAgKi8KKyNkZWZpbmUgRkxMX0RJVjEgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMSAqLworCisjZGVmaW5lIEZMTF9ESVZfMSAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDEgKi8KKyNkZWZpbmUgRkxMX0RJVl8yICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMiAqLworI2RlZmluZSBGTExfRElWXzQgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA0ICovCisjZGVmaW5lIEZMTF9ESVZfOCAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDggKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgMHgwMiAqLworLyogI2RlZmluZSBPRklFICAgICAgICAgICAgICAgIDB4MDIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBMQ0RfQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTENEX0FfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoTENEQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgTENET04gICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTENEU09OICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTENETVgwICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTENETVgxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTENERlJFUTAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgTENERlJFUTEgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgTENERlJFUTIgICAgICAgICAgICAgICAoMHg4MCkKKy8qIERpc3BsYXkgbW9kZXMgY29kZWQgd2l0aCBCaXRzIDItNCAqLworI2RlZmluZSBMQ0RTVEFUSUMgICAgICAgICAgICAgIChMQ0RTT04pCisjZGVmaW5lIExDRDJNVVggICAgICAgICAgICAgICAgKExDRE1YMCtMQ0RTT04pCisjZGVmaW5lIExDRDNNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RTT04pCisjZGVmaW5lIExDRDRNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RNWDArTENEU09OKQorLyogRnJlcXVlbmN5IHNlbGVjdCBjb2RlIHdpdGggQml0cyA1LTcgKi8KKyNkZWZpbmUgTENERlJFUV8zMiAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDMyICovCisjZGVmaW5lIExDREZSRVFfNjQgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSA2NCAqLworI2RlZmluZSBMQ0RGUkVRXzk2ICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgOTYgKi8KKyNkZWZpbmUgTENERlJFUV8xMjggICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDEyOCAqLworI2RlZmluZSBMQ0RGUkVRXzE5MiAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgMTkyICovCisjZGVmaW5lIExDREZSRVFfMjU2ICAgICAgICAgICAgKDB4QTApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSAyNTYgKi8KKyNkZWZpbmUgTENERlJFUV8zODQgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDM4NCAqLworI2RlZmluZSBMQ0RGUkVRXzUxMiAgICAgICAgICAgICgweEUwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgNTEyICovCisKK1NGUl84QklUKExDREFQQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBQb3J0IENvbnRyb2wgUmVnaXN0ZXIgMCAqLworI2RlZmluZSBMQ0RTMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIExDRCBTZWdtZW50ICAwIHRvICAzIEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzQgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMQ0QgU2VnbWVudCAgNCB0byAgNyBFbmFibGUuICovCisjZGVmaW5lIExDRFM4ICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogTENEIFNlZ21lbnQgIDggdG8gMTEgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMTIgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIExDRCBTZWdtZW50IDEyIHRvIDE1IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzE2ICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBMQ0QgU2VnbWVudCAxNiB0byAxOSBFbmFibGUuICovCisjZGVmaW5lIExDRFMyMCAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTENEIFNlZ21lbnQgMjAgdG8gMjMgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMjQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDI0IHRvIDI3IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzI4ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBMQ0QgU2VnbWVudCAyOCB0byAzMSBFbmFibGUuICovCisKK1NGUl84QklUKExDREFQQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBQb3J0IENvbnRyb2wgUmVnaXN0ZXIgMSAqLworI2RlZmluZSBMQ0RTMzIgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDMyIHRvIDM1IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzM2ICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMQ0QgU2VnbWVudCAzNiB0byAzOSBFbmFibGUuICovCisKK1NGUl84QklUKExDREFWQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBWb2x0YWdlIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworI2RlZmluZSBMQ0QyQiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNlbGVjdHMgMS8yIGJpYXMuICovCisjZGVmaW5lIFZMQ0RSRUYwICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VsZWN0cyByZWZlcmVuY2Ugdm9sdGFnZSBmb3IgcmVndWxhdGVkIGNoYXJnZSBwdW1wOiAwICovCisjZGVmaW5lIFZMQ0RSRUYxICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU2VsZWN0cyByZWZlcmVuY2Ugdm9sdGFnZSBmb3IgcmVndWxhdGVkIGNoYXJnZSBwdW1wOiAxICovCisjZGVmaW5lIExDRENQRU4gICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTENEIFZvbHRhZ2UgQ2hhcmdlIFB1bXAgRW5hYmxlLiAqLworI2RlZmluZSBWTENERVhUICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFNlbGVjdCBleHRlcm5hbCBzb3VyY2UgZm9yIFZMQ0QuICovCisjZGVmaW5lIExDRFJFWFQgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogU2VsZWN0cyBleHRlcm5hbCBjb25uZWN0aW9ucyBmb3IgTENEIG1pZCB2b2x0YWdlcy4gKi8KKyNkZWZpbmUgTENEUjAzRVhUICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTZWxlY3RzIGV4dGVybmFsIGNvbm5lY3Rpb24gZm9yIGxvd2VzdCBMQ0Qgdm9sdGFnZS4gKi8KKworLyogUmVmZXJlbmNlIHZvbHRhZ2Ugc291cmNlIHNlbGVjdCBmb3IgdGhlIHJlZ3VsYXRlZCBjaGFyZ2UgcHVtcCAqLworI2RlZmluZSBWTENEUkVGXzAgICAgICAgICAgICAgICgwPDwxKSAgICAgICAgIC8qIEludGVybmFsICovCisjZGVmaW5lIFZMQ0RSRUZfMSAgICAgICAgICAgICAgKDE8PDEpICAgICAgICAgLyogRXh0ZXJuYWwgKi8KKyNkZWZpbmUgVkxDRFJFRl8yICAgICAgICAgICAgICAoMjw8MSkgICAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBWTENEUkVGXzMgICAgICAgICAgICAgICgzPDwxKSAgICAgICAgIC8qIFJlc2VydmVkICovCisKK1NGUl84QklUKExDREFWQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBWb2x0YWdlIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworI2RlZmluZSBWTENEMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFZMQ0Qgc2VsZWN0OiAwICovCisjZGVmaW5lIFZMQ0QxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVkxDRCBzZWxlY3Q6IDEgKi8KKyNkZWZpbmUgVkxDRDIgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBWTENEIHNlbGVjdDogMiAqLworI2RlZmluZSBWTENEMyAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFZMQ0Qgc2VsZWN0OiAzICovCisKKy8qIENoYXJnZSBwdW1wIHZvbHRhZ2Ugc2VsZWN0aW9ucyAqLworI2RlZmluZSBWTENEXzAgICAgICAgICAgICAgICAgICgwPDwxKSAgICAgICAgIC8qIENoYXJnZSBwdW1wIGRpc2FibGVkICovCisjZGVmaW5lIFZMQ0RfMSAgICAgICAgICAgICAgICAgKDE8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNjBWICovCisjZGVmaW5lIFZMQ0RfMiAgICAgICAgICAgICAgICAgKDI8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNjZWICovCisjZGVmaW5lIFZMQ0RfMyAgICAgICAgICAgICAgICAgKDM8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNzJWICovCisjZGVmaW5lIFZMQ0RfNCAgICAgICAgICAgICAgICAgKDQ8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNzhWICovCisjZGVmaW5lIFZMQ0RfNSAgICAgICAgICAgICAgICAgKDU8PDEpICAgICAgICAgLyogVkxDRCA9IDIuODRWICovCisjZGVmaW5lIFZMQ0RfNiAgICAgICAgICAgICAgICAgKDY8PDEpICAgICAgICAgLyogVkxDRCA9IDIuOTBWICovCisjZGVmaW5lIFZMQ0RfNyAgICAgICAgICAgICAgICAgKDc8PDEpICAgICAgICAgLyogVkxDRCA9IDIuOTZWICovCisjZGVmaW5lIFZMQ0RfOCAgICAgICAgICAgICAgICAgKDg8PDEpICAgICAgICAgLyogVkxDRCA9IDMuMDJWICovCisjZGVmaW5lIFZMQ0RfOSAgICAgICAgICAgICAgICAgKDk8PDEpICAgICAgICAgLyogVkxDRCA9IDMuMDhWICovCisjZGVmaW5lIFZMQ0RfMTAgICAgICAgICAgICAgICAgKDEwPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMTRWICovCisjZGVmaW5lIFZMQ0RfMTEgICAgICAgICAgICAgICAgKDExPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMjBWICovCisjZGVmaW5lIFZMQ0RfMTIgICAgICAgICAgICAgICAgKDEyPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMjZWICovCisjZGVmaW5lIFZMQ0RfMTMgICAgICAgICAgICAgICAgKDEyPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMzJWICovCisjZGVmaW5lIFZMQ0RfMTQgICAgICAgICAgICAgICAgKDEzPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMzhWICovCisjZGVmaW5lIFZMQ0RfMTUgICAgICAgICAgICAgICAgKDE1PDwxKSAgICAgICAgLyogVkxDRCA9IDMuNDRWICovCisKKyNkZWZpbmUgVkxDRF9ESVNBQkxFRCAgICAgICAgICAoMDw8MSkgICAgICAgICAvKiBDaGFyZ2UgcHVtcCBkaXNhYmxlZCAqLworI2RlZmluZSBWTENEXzJfNjAgICAgICAgICAgICAgICgxPDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjYwViAqLworI2RlZmluZSBWTENEXzJfNjYgICAgICAgICAgICAgICgyPDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjY2ViAqLworI2RlZmluZSBWTENEXzJfNzIgICAgICAgICAgICAgICgzPDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjcyViAqLworI2RlZmluZSBWTENEXzJfNzggICAgICAgICAgICAgICg0PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjc4ViAqLworI2RlZmluZSBWTENEXzJfODQgICAgICAgICAgICAgICg1PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjg0ViAqLworI2RlZmluZSBWTENEXzJfOTAgICAgICAgICAgICAgICg2PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjkwViAqLworI2RlZmluZSBWTENEXzJfOTYgICAgICAgICAgICAgICg3PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjk2ViAqLworI2RlZmluZSBWTENEXzNfMDIgICAgICAgICAgICAgICg4PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAzLjAyViAqLworI2RlZmluZSBWTENEXzNfMDggICAgICAgICAgICAgICg5PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAzLjA4ViAqLworI2RlZmluZSBWTENEXzNfMTQgICAgICAgICAgICAgICgxMDw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjE0ViAqLworI2RlZmluZSBWTENEXzNfMjAgICAgICAgICAgICAgICgxMTw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjIwViAqLworI2RlZmluZSBWTENEXzNfMjYgICAgICAgICAgICAgICgxMjw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjI2ViAqLworI2RlZmluZSBWTENEXzNfMzIgICAgICAgICAgICAgICgxMjw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjMyViAqLworI2RlZmluZSBWTENEXzNfMzggICAgICAgICAgICAgICgxMzw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjM4ViAqLworI2RlZmluZSBWTENEXzNfNDQgICAgICAgICAgICAgICgxNTw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjQ0ViAqLworCisjZGVmaW5lIExDRE1FTV8gICAgICAgICAgICAgICAgKDB4MDA5MSkgICAgICAgLyogTENEIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKExDRE1FTV8pICAgICAgLyogTENEIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgTENETUVNXykgLyogTENEIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKExDRE0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEgKi8KK1NGUl84QklUKExDRE0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIgKi8KK1NGUl84QklUKExDRE0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDMgKi8KK1NGUl84QklUKExDRE00KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDQgKi8KK1NGUl84QklUKExDRE01KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDUgKi8KK1NGUl84QklUKExDRE02KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDYgKi8KK1NGUl84QklUKExDRE03KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDcgKi8KK1NGUl84QklUKExDRE04KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDggKi8KK1NGUl84QklUKExDRE05KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDkgKi8KK1NGUl84QklUKExDRE0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEwICovCitTRlJfOEJJVChMQ0RNMTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMSAqLworU0ZSXzhCSVQoTENETTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTIgKi8KK1NGUl84QklUKExDRE0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEzICovCitTRlJfOEJJVChMQ0RNMTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNCAqLworU0ZSXzhCSVQoTENETTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTUgKi8KK1NGUl84QklUKExDRE0xNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE2ICovCitTRlJfOEJJVChMQ0RNMTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNyAqLworU0ZSXzhCSVQoTENETTE4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTggKi8KK1NGUl84QklUKExDRE0xOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE5ICovCitTRlJfOEJJVChMQ0RNMjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAyMCAqLworCisjZGVmaW5lIExDRE1BICAgICAgICAgICAgICAgICAgKExDRE0xMCkgICAgICAgLyogTENEIE1lbW9yeSBBICovCisjZGVmaW5lIExDRE1CICAgICAgICAgICAgICAgICAgKExDRE0xMSkgICAgICAgLyogTENEIE1lbW9yeSBCICovCisjZGVmaW5lIExDRE1DICAgICAgICAgICAgICAgICAgKExDRE0xMikgICAgICAgLyogTENEIE1lbW9yeSBDICovCisjZGVmaW5lIExDRE1EICAgICAgICAgICAgICAgICAgKExDRE0xMykgICAgICAgLyogTENEIE1lbW9yeSBEICovCisjZGVmaW5lIExDRE1FICAgICAgICAgICAgICAgICAgKExDRE0xNCkgICAgICAgLyogTENEIE1lbW9yeSBFICovCisjZGVmaW5lIExDRE1GICAgICAgICAgICAgICAgICAgKExDRE0xNSkgICAgICAgLyogTENEIE1lbW9yeSBGICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0hfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNEMTZfQTEgLSBTaWdtYSBEZWx0YSAxNiBCaXQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NEMTZfQTFfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNEMTZJTkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAwICovCitTRlJfOEJJVChTRDE2QUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBBbmFsb2cgSW5wdXQgRW5hYmxlIFJlZ2lzdGVyICovCitTRlJfOEJJVChTRDE2Q09ORjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcm5hbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFNEMTZDT05GMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVybmFsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQbGVhc2UgdXNlIG9ubHkgdGhlIHJlY29tbWVuZGVkIHNldHRpbmdzICovCisKK1NGUl8xNkJJVChTRDE2Q1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTaWdtYSBEZWx0YSBBREMgMTYgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAwIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2SVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2TUVNMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMCBDb252ZXJzaW9uIE1lbW9yeSAqLworCisvKiBTRDE2QUUgKi8KKyNkZWZpbmUgU0QxNkFFMCAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTRDE2IEV4dGVybmFsIElucHV0IEVuYWJsZSAwICovCisjZGVmaW5lIFNEMTZBRTEgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBFeHRlcm5hbCBJbnB1dCBFbmFibGUgMSAqLworI2RlZmluZSBTRDE2QUUyICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgU0QxNkFFMyAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IEV4dGVybmFsIElucHV0IEVuYWJsZSAzICovCisjZGVmaW5lIFNEMTZBRTQgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBFeHRlcm5hbCBJbnB1dCBFbmFibGUgNCAqLworI2RlZmluZSBTRDE2QUU1ICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDUgKi8KKyNkZWZpbmUgU0QxNkFFNiAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IEV4dGVybmFsIElucHV0IEVuYWJsZSA2ICovCisjZGVmaW5lIFNEMTZBRTcgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBFeHRlcm5hbCBJbnB1dCBFbmFibGUgNyAqLworCisvKiBTRDE2SU5DVEx4ICovCisjZGVmaW5lIFNEMTZJTkNIMCAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZJTkNIMSAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZJTkNIMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAyICovCisjZGVmaW5lIFNEMTZHQUlOMCAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNkdBSU4xICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgMSAqLworI2RlZmluZSBTRDE2R0FJTjIgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAyICovCisjZGVmaW5lIFNEMTZJTlRETFkwICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXkgYWZ0ZXIgMS5Db252ZXJzaW9uIDAgKi8KKyNkZWZpbmUgU0QxNklOVERMWTEgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheSBhZnRlciAxLkNvbnZlcnNpb24gMSAqLworCisjZGVmaW5lIFNEMTZHQUlOXzEgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICoxICAqLworI2RlZmluZSBTRDE2R0FJTl8yICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMiAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fNCAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjQgICovCisjZGVmaW5lIFNEMTZHQUlOXzggICAgICAgICAgICAgKDB4MDAxOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICo4ICAqLworI2RlZmluZSBTRDE2R0FJTl8xNiAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMTYgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMzIgICAgICAgICAgICAoMHgwMDI4KSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjMyICovCisKKyNkZWZpbmUgU0QxNklOQ0hfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IEEwICovCisjZGVmaW5lIFNEMTZJTkNIXzEgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBBMSAqLworI2RlZmluZSBTRDE2SU5DSF8yICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgQTIgKi8KKyNkZWZpbmUgU0QxNklOQ0hfMyAgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IEEzICovCisjZGVmaW5lIFNEMTZJTkNIXzQgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBBNCAqLworI2RlZmluZSBTRDE2SU5DSF81ICAgICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgVmNjIGRpdmlkZXIgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNiAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IFRlbXAgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNyAgICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IE9mZnNldCAqLworCisjZGVmaW5lIFNEMTZJTlRETFlfMCAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgNC5Db252ZXJzaW9uICAqLworI2RlZmluZSBTRDE2SU5URExZXzEgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDMuQ29udmVyc2lvbiAgKi8KKyNkZWZpbmUgU0QxNklOVERMWV8yICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheTogSW50LiBhZnRlciAyLkNvbnZlcnNpb24gICovCisjZGVmaW5lIFNEMTZJTlRETFlfMyAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgMS5Db252ZXJzaW9uICAqLworCisvKiBTRDE2Q1RMICovCisjZGVmaW5lIFNEMTZPVklFICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBPdmVyZmxvdyBJbnRlcnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgU0QxNlJFRk9OICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IFN3aXRjaCBpbnRlcm5hbCBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgU0QxNlZNSURPTiAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IFN3aXRjaCBWbWlkIEJ1ZmZlciBvbiAqLworI2RlZmluZSBTRDE2U1NFTDAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZTU0VMMSAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkRJVjAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNkRJVjEgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkxQICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTRDE2IExvdyBQb3dlciBNb2RlIEVuYWJsZSAqLworI2RlZmluZSBTRDE2WERJVjAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNEMTYgMi5DbG9jayBEaXZpZGVyIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZYRElWMSAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKy8vI2RlZmluZSBTRDE2WERJVjIgICAgICAgICAgICgweDA4MDApICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgMiAqLworCisjZGVmaW5lIFNEMTZESVZfMCAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvMSAqLworI2RlZmluZSBTRDE2RElWXzEgICAgICAgICAgICAgIChTRDE2RElWMCkgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzIgKi8KKyNkZWZpbmUgU0QxNkRJVl8yICAgICAgICAgICAgICAoU0QxNkRJVjEpICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC80ICovCisjZGVmaW5lIFNEMTZESVZfMyAgICAgICAgICAgKFNEMTZESVYwK1NEMTZESVYxKSAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC84ICovCisKKyNkZWZpbmUgU0QxNlhESVZfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzEgKi8KKyNkZWZpbmUgU0QxNlhESVZfMSAgICAgICAgICAgICAoU0QxNlhESVYwKSAgICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzMgKi8KKyNkZWZpbmUgU0QxNlhESVZfMiAgICAgICAgICAgICAoU0QxNlhESVYxKSAgICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzE2ICovCisjZGVmaW5lIFNEMTZYRElWXzMgICAgICAgICAgKFNEMTZYRElWMCtTRDE2WERJVjEpICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzQ4ICovCisKKyNkZWZpbmUgU0QxNlNTRUxfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgTUNMSyAgKi8KKyNkZWZpbmUgU0QxNlNTRUxfMSAgICAgICAgICAgICAoU0QxNlNTRUwwKSAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgU01DTEsgKi8KKyNkZWZpbmUgU0QxNlNTRUxfMiAgICAgICAgICAgICAoU0QxNlNTRUwxKSAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgQUNMSyAgKi8KKyNkZWZpbmUgU0QxNlNTRUxfMyAgICAgICAgICAoU0QxNlNTRUwwK1NEMTZTU0VMMSkgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCBUQUNMSyAqLworCisvKiBTRDE2Q0NUTHggKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDEpICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBTRDE2U0MgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBTRDE2SUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFNEMTZJRSAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBTRDE2REYgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IERhdGEgRm9ybWF0OiAwOlVuaXBvbGFyLzE6Qmlwb2xhciAqLworI2RlZmluZSBTRDE2T1ZJRkcgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJmbG93IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFNEMTZMU0JBQ0MgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggQWNjZXNzIExTQiBvZiBBREMgKi8KKyNkZWZpbmUgU0QxNkxTQlRPRyAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBUb2dnbGUgTFNCIE91dHB1dCBvZiBBREMgKi8KKyNkZWZpbmUgU0QxNk9TUjAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMCAqLworI2RlZmluZSBTRDE2T1NSMSAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAxICovCisjZGVmaW5lIFNEMTZTTkdMICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggU2luZ2xlIENvbnZlcnNpb24gT24vT2ZmICovCisjZGVmaW5lIFNEMTZYT1NSICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggRXh0ZW5kZWQgT3ZlclNhbXBsaW5nIFJhdGlvICovCisjZGVmaW5lIFNEMTZVTkkgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggQmlwb2xhcigwKSAvIFVuaXBvbGFyKDEpIE1vZGUgKi8KKyNkZWZpbmUgU0QxNkJVRjAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBIaWdoIEltcGVkYW5jZSBJbnB1dCBCdWZmZXIgU2VsZWN0OiAwICovCisjZGVmaW5lIFNEMTZCVUYxICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggSGlnaCBJbXBlZGFuY2UgSW5wdXQgQnVmZmVyIFNlbGVjdDogMSAqLworCisjZGVmaW5lIFNEMTZPU1JfMTAyNCAgICAgICAgKFNEMTZPU1IwK1NEMTZYT1NSKSAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDEwMjQgKi8KKyNkZWZpbmUgU0QxNk9TUl81MTIgICAgICAgICAgICAoU0QxNlhPU1IpICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gNTEyICovCisjZGVmaW5lIFNEMTZPU1JfMjU2ICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDI1NiAqLworI2RlZmluZSBTRDE2T1NSXzEyOCAgICAgICAgICAgIChTRDE2T1NSMCkgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAxMjggKi8KKyNkZWZpbmUgU0QxNk9TUl82NCAgICAgICAgICAgICAoU0QxNk9TUjEpICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gIDY0ICovCisjZGVmaW5lIFNEMTZPU1JfMzIgICAgICAgICAgKFNEMTZPU1IwK1NEMTZPU1IxKSAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvICAzMiAqLworCisjZGVmaW5lIFNEMTZCVUZfMCAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBIaWdoIEltcC4gSW5wdXQgQnVmZmVyOiBEaXNhYmxlZCAqLworI2RlZmluZSBTRDE2QlVGXzEgICAgICAgICAgICAgIChTRDE2QlVGMCkgICAgIC8qIFNEMTYgSGlnaCBJbXAuIElucHV0IEJ1ZmZlcjogU2xvdyAqLworI2RlZmluZSBTRDE2QlVGXzIgICAgICAgICAgICAgIChTRDE2QlVGMSkgICAgIC8qIFNEMTYgSGlnaCBJbXAuIElucHV0IEJ1ZmZlcjogTWVkdWltICovCisjZGVmaW5lIFNEMTZCVUZfMyAgICAgICAgICAgKFNEMTZCVUYwK1NEMTZCVUYxKSAgICAgLyogU0QxNiBIaWdoIEltcC4gSW5wdXQgQnVmZmVyOiBGYXN0ICovCisKKy8qIFNEMTZJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBTRDE2SVZfTk9ORSAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFNEMTZJVl9TRDE2T1ZJRkcgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNk9WSUZHICovCisjZGVmaW5lIFNEMTZJVl9TRDE2TUVNMCAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNk1FTTAgU0QxNklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERBQzEyCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19EQUMxMl8xX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoREFDMTJfMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMCBDb250cm9sICovCisKKyNkZWZpbmUgREFDMTJHUlAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEQUMxMiBncm91cCAobm90IHVzZWQpICovCisjZGVmaW5lIERBQzEyRU5DICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogREFDMTIgZW5hYmxlIGNvbnZlcnNpb24gKi8KKyNkZWZpbmUgREFDMTJJRkcgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBEQUMxMiBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBEQUMxMklFICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIERBQzEyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgREFDMTJERiAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBEQUMxMiBkYXRhIGZvcm1hdCAqLworI2RlZmluZSBEQUMxMkFNUDAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIERBQzEyIGFtcGxpZmllciBiaXQgMCAqLworI2RlZmluZSBEQUMxMkFNUDEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIERBQzEyIGFtcGxpZmllciBiaXQgMSAqLworI2RlZmluZSBEQUMxMkFNUDIgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIERBQzEyIGFtcGxpZmllciBiaXQgMiAqLworI2RlZmluZSBEQUMxMklSICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIERBQzEyIGlucHV0IHJlZmVyZW5jZSBhbmQgb3V0cHV0IHJhbmdlICovCisjZGVmaW5lIERBQzEyQ0FMT04gICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogREFDMTIgY2FsaWJyYXRpb24gKi8KKyNkZWZpbmUgREFDMTJMU0VMMCAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCBiaXQgMCAqLworI2RlZmluZSBEQUMxMkxTRUwxICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIERBQzEyIGxvYWQgc2VsZWN0IGJpdCAxICovCisjZGVmaW5lIERBQzEyUkVTICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogREFDMTIgcmVzb2x1dGlvbiAqLworI2RlZmluZSBEQUMxMlNSRUYwICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIERBQzEyIHJlZmVyZW5jZSBiaXQgMCAqLworI2RlZmluZSBEQUMxMlNSRUYxICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIERBQzEyIHJlZmVyZW5jZSBiaXQgMSAqLworI2RlZmluZSBEQUMxMk9QUyAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIERBQzEyIE9wZXJhdGlvbiBBbXAuICovCisKKyNkZWZpbmUgREFDMTJBTVBfMCAgICAgICAgICAgICAoMCoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgMDogb2ZmLCAgICAzLXN0YXRlICovCisjZGVmaW5lIERBQzEyQU1QXzEgICAgICAgICAgICAgKDEqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDE6IG9mZiwgICAgb2ZmICovCisjZGVmaW5lIERBQzEyQU1QXzIgICAgICAgICAgICAgKDIqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDI6IGxvdywgICAgbG93ICovCisjZGVmaW5lIERBQzEyQU1QXzMgICAgICAgICAgICAgKDMqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDM6IGxvdywgICAgbWVkaXVtICovCisjZGVmaW5lIERBQzEyQU1QXzQgICAgICAgICAgICAgKDQqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDQ6IGxvdywgICAgaGlnaCAqLworI2RlZmluZSBEQUMxMkFNUF81ICAgICAgICAgICAgICg1KjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciA1OiBtZWRpdW0sIG1lZGl1bSAqLworI2RlZmluZSBEQUMxMkFNUF82ICAgICAgICAgICAgICg2KjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciA2OiBtZWRpdW0sIGhpZ2ggKi8KKyNkZWZpbmUgREFDMTJBTVBfNyAgICAgICAgICAgICAoNyoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNzogaGlnaCwgICBoaWdoICovCisKKyNkZWZpbmUgREFDMTJMU0VMXzAgICAgICAgICAgICAoMCoweDA0MDB1KSAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCAwOiBkaXJlY3QgKi8KKyNkZWZpbmUgREFDMTJMU0VMXzEgICAgICAgICAgICAoMSoweDA0MDB1KSAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCAxOiBsYXRjaGVkIHdpdGggREFUICovCisjZGVmaW5lIERBQzEyTFNFTF8yICAgICAgICAgICAgKDIqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMjogbGF0Y2hlZCB3aXRoIHBvcy4gVGltZXJfQTMuT1VUMSAqLworI2RlZmluZSBEQUMxMkxTRUxfMyAgICAgICAgICAgICgzKjB4MDQwMHUpICAgIC8qIERBQzEyIGxvYWQgc2VsZWN0IDM6IGxhdGNoZWQgd2l0aCBwb3MuIFRpbWVyX0I3Lk9VVDEgKi8KKworI2RlZmluZSBEQUMxMlNSRUZfMCAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIERBQzEyIHJlZmVyZW5jZSAwOiBWcmVmKyAqLworI2RlZmluZSBEQUMxMlNSRUZfMSAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIERBQzEyIHJlZmVyZW5jZSAxOiBWcmVmKyAqLworI2RlZmluZSBEQUMxMlNSRUZfMiAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIERBQzEyIHJlZmVyZW5jZSAyOiBWZXJlZisgKi8KKyNkZWZpbmUgREFDMTJTUkVGXzMgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMzogVmVyZWYrICovCisKK1NGUl8xNkJJVChEQUMxMl8wREFUKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBEQUMxMl8wIERhdGEgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIEJBU0lDVElNRVJfVkVDVE9SICAgICAgICgwICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIEJhc2ljIFRpbWVyICovCisvKiNkZWZpbmUgQkFTSUNUSU1FUl9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDEgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKyNkZWZpbmUgREFDMTJfVkVDVE9SICAgICAgICAgICAgKDMgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTYgREFDIDEyICovCisvKiNkZWZpbmUgREFDMTJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAzIikgICovIC8qIDB4RkZFNiBEQUMgMTIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICg0ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU4IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNCIpICAqLyAvKiAweEZGRTggUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkExX1ZFQ1RPUiAgICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQSBUaW1lciBBIENDMS0yLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNSIpICAqLyAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICg2ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKyNkZWZpbmUgU0QxNl9WRUNUT1IgICAgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggU2lnbWEgRGVsdGEgQURDICovCisvKiNkZWZpbmUgU0QxNl9JU1IoZnVuYykgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEyIikgICovIC8qIDB4RkZGOCBTaWdtYSBEZWx0YSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4NDJ4MCAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDQzeC5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0M3guaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYzMwZGIxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0M3guaApAQCAtMCwwICsxLDExMTIgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweDQzeCBkZXZpY2VzLgorKgorKiBUZXhhcyBJbnN0cnVtZW50cywgVmVyc2lvbiAyLjYKKyoKKyogUmV2LiAxLjEsIEVuY2xvc2UgYWxsICNkZWZpbmUgc3RhdGVtZW50cyB3aXRoIHBhcmVudGhlc2VzCisqIFJldi4gMS4yLCBEZWZpbmVkIHZlY3RvcnMgZm9yIFVTQVJUIChpbiBhZGRpdGlvbiB0byBVQVJUKQorKiBSZXYuIDEuMywgQWRkZWQgVVNBUlQgc3BlY2lhbCBmdW5jdGlvbiBsYWJlbHMgKFV4TUUsIFV4SUUsIFV4SUZHKQorKiBSZXYuIDEuNCwgUmVtb3ZlZCBpbmNvcnJlY3QgbGFiZWwgJ0JUUkVTRVQnCisqICAgICAgICAgICBBZGRlZCBtaXNzaW5nIGxhYmVscyBmb3IgRkxMCisqIFJldi4gMi4xLCBGaXhlZCBkZWZpbml0aW9uIG9mIEZMTF9ESVYwIGFuZCBGTExfRElWMQorKiAgICAgICAgICAgQWxpZ25tZW50IG9mIGRlZmludGlvbnMgaW4gVXNlcnMgR3VpZGUgYW5kIG9mIHZlcnNpb24gbnVtYmVycworKiBSZXYuIDIuMTEsUmVtb3ZlZCBkZWZpbml0aW9uIG9mIExDRExPV1IgKG5vdCBhdmFpbGFibGUgYXQgNHh4IGRldmljZXMpCisqIFJldi4gMi4yLCBGaXhlZCB0eXBlIGluIEFEQzEyIGJpdCBkZWZpbml0aW9ucyAocmVwbGFjZWQgQURDMTAgd2l0aCBBREMxMikKKyogUmV2LiAyLjMsIFJlbW92ZWQgdW51c2VkIGRlZiBvZiBUQVNTRUwyIC8gVEJTU0VMMgorKiBSZXYuIDIuNCwgQWRkZWQgVkxEIGJpdHMgaW4gU1ZTIG1vZHVsZQorKiBSZXYuIDIuNSwgUmVtb3ZlZCBkZWZpbml0aW9ucyBmb3IgQlRSRVNFVAorKiBSZXYuIDIuNiwgYWRkZWQgZGVmaW5pdGlvbnMgZm9yIEludGVycnVwdCBWZWN0b3JzIHh4SVYKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDQzeAorI2RlZmluZSBfX21zcDQzMHg0M3gKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBJRSAgICAgICAgICAgICAgICAgICBJRTEgICAgICAgICAgICAvKiBVQVJUMCBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFVSWElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElFMCAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFUwSUZHICAgICAgICAgICAgICAgICAgSUZHMSAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEZsYWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVJYSUZHMCAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYSUZHMCAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoTUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1vZHVsZSBFbmFibGUgMSAqLworI2RlZmluZSBVME1FICAgICAgICAgICAgICAgICAgIE1FMSAgICAgICAgICAgIC8qIFVBUlQwIE1vZHVsZSBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYRTAgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYRTAgICAgICAgICAgICAgICAgICAoMHg4MCkKKyNkZWZpbmUgVVNQSUUwICAgICAgICAgICAgICAgICAoMHg0MCkKKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBCVElFICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgICAgICgweDgwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDUvNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ2X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA1SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgSW5wdXQgKi8KK1NGUl84QklUKFA1T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgT3V0cHV0ICovCitTRlJfOEJJVChQNURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDVTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJBU0lDIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CVF9fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChCVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiQlQiICovCisjZGVmaW5lIEJUSVAwICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEJUSVAxICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIEJUSVAyICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEJURlJGUTAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJURlJGUTEgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEJURElWICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkNMSzIgPSBBQ0xLOjI1NiAqLworI2RlZmluZSBCVEhPTEQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEJUMSBpcyBoZWxkIGlmIHRoaXMgYml0IGlzIHNldCAqLworI2RlZmluZSBCVFNTRUwgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIGZCVCA9IGZNQ0xLIChtYWluIGNsb2NrKSAqLworCitTRlJfOEJJVChCVENOVDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMSAqLworU0ZSXzhCSVQoQlRDTlQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDIgKi8KKworLyogRnJlcXVlbmN5IG9mIHRoZSBCVENOVDIgY29kZWQgd2l0aCBCaXQgNSBhbmQgNyBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9BQ0xLICAgICAgICAgICgweDAwKQorI2RlZmluZSBCVF9mQ0xLMl9BQ0xLX0RJVjI1NiAgIChCVERJVikKKyNkZWZpbmUgQlRfZkNMSzJfTUNMSyAgICAgICAgICAoQlRTU0VMKQorCisvKiBJbnRlcnJ1cHQgaW50ZXJ2YWwgdGltZSBmSU5UIGNvZGVkIHdpdGggQml0cyAwLTIgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmSU5UID0gZkNMSzI6MiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNCAgICAgICAgICAoQlRJUDApICAgICAgICAvKiBmSU5UID0gZkNMSzI6NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY4ICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjE2ICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjE2ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjMyICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjMyICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjY0ICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjY0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjEyOCAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogZklOVCA9IGZDTEsyOjEyOCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyNTYgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogZklOVCA9IGZDTEsyOjI1NiAqLworLyogRnJlcXVlbmN5IG9mIExDRCBjb2RlZCB3aXRoIEJpdHMgMy00ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMzIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEX0RJVjY0ICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEX0RJVjEyOCAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYyNTYgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZBQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMUsgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfNTEyICAgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF8yNTYgICAgICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF8xMjggICAgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9Zk1DTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8zMUsgICAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiBmTUNMSzozMiAqLworI2RlZmluZSBCVF9mTENEXzE1XzVLICAgICAgIChCVFNTRUwrQlRGUkZRMCkgICAgICAgICAgLyogZk1DTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF83XzhLICAgICAgICAoQlRTU0VMK0JURlJGUTErQlRGUkZRMCkgIC8qIGZNQ0xLOjI1NiAqLworLyogd2l0aCBhc3N1bWVkIHZsdWVzIG9mIGZBQ0xLPTMyS0h6LCBmTUNMSz0xTUh6ICovCisvKiBmQlQ9ZkFDTEsgaXMgdGhvdWdodCBmb3IgbG9uZ2VyIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX0FETFlfMF8wNjQgICAgICAgICAgKDB4MDApICAgICAgICAgLyogMC4wNjRtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzEyNSAgICAgICAgICAoQlRJUDApICAgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzI1ICAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiAwLjI1bXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzUgICAgICAgICAgICAoQlRJUDErQlRJUDApICAvKiAwLjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xICAgICAgICAgICAgICAoQlRJUDIpICAgICAgICAvKiAxbXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yICAgICAgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiAybXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV80ICAgICAgICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiA0bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV84ICAgICAgICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIDhtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzE2ICAgICAgICAgICAgIChCVERJVikgICAgICAgIC8qIDE2bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzMyICAgICAgICAgICAgIChCVERJVitCVElQMCkgIC8qIDMybXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzY0ICAgICAgICAgICAgIChCVERJVitCVElQMSkgIC8qIDY0bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEyNSAgICAgICAgIChCVERJVitCVElQMStCVElQMCkgICAgICAgLyogMTI1bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjUwICAgICAgICAgICAgKEJURElWK0JUSVAyKSAgLyogMjUwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNTAwICAgICAgICAgKEJURElWK0JUSVAyK0JUSVAwKSAgICAgICAvKiA1MDBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDEpICAgICAgIC8qIDEwMDBtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMStCVElQMCkgLyogMjAwMG1zICAgICAiICovCisvKiBmQ0xLMj1mTUNMSyAoMU1IeikgaXMgdGhvdWdodCBmb3Igc2hvcnQgaW50ZXJ2YWwgdGltZXMgKi8KKy8qIHRoZSB0aW1pbmcgZm9yIHNob3J0IGludGVydmFscyBpcyBtb3JlIHByZWNpc2UgdGhhbiBBQ0xLICovCisvKiBOT1RFICovCisvKiBCZSBzdXJlIHRoYXQgdGhlIFNDRlFDVEwtUmVnaXN0ZXIgaXMgc2V0IHRvIDAxRmggc28gdGhhdCBmTUNMSz0xTUh6ICovCisvKiBUb28gbG93IGludGVydmFsIHRpbWUgcmVzdWx0cyBpbiBpbnRlcnJ1cHRzIHRvbyBmcmVxdWVudCBmb3IgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUhICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDIgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogMC4wMDJtcyBpbnRlcnZhbCAgICAgICAqKiogaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwNCAgICAgICAgICAoQlRTU0VMK0JUSVAwKSAvKiAwLjAwNG1zICAgICIgICAgICAgICAgICoqKiB0b28gc2hvcnQgZm9yICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDggICAgICAgICAgKEJUU1NFTCtCVElQMSkgLyogMC4wMDhtcyAgICAiICAgICAgICAgICAqKiogaW50ZXJydXB0ICovCisjZGVmaW5lIEJUX01ETFlfMF8wMTYgICAgICAgKEJUU1NFTCtCVElQMStCVElQMCkgICAgICAvKiAwLjAxNm1zICAgICIgICAgICAgICAgICoqKiBoYW5kbGluZyAqLworI2RlZmluZSBCVF9NRExZXzBfMDMyICAgICAgICAgIChCVFNTRUwrQlRJUDIpIC8qIDAuMDMybXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMDY0ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDApICAgICAgLyogMC4wNjRtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8xMjUgICAgICAgKEJUU1NFTCtCVElQMitCVElQMSkgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzI1ICAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxK0JUSVAwKS8qIDAuMjVtcyAgICAgIiAqLworCisvKiBSZXNldC9Ib2xkIGNvZGVkIHdpdGggQml0cyA2LTcgaW4gQlQoMSlDVEwgKi8KKy8qIHRoaXMgaXMgZm9yIEJUICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxICAgICAgICAoQlRSRVNFVCkgICAgICAgICAgIC8qIEJUQ05UMSBpcyByZXNldCB3aGlsZSBCVFJFU0VUIGlzIHNldCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMV8yICAgICAgKEJUUkVTRVQrQlRESVYpICAgICAvKiBCVENOVDEgLkFORC4gQlRDTlQyIGFyZSByZXNldCB3aGlsZSB+IGlzIHNldCAqLworLyogdGhpcyBpcyBmb3IgQlQxICovCisjZGVmaW5lIEJUSE9MRF9DTlQxICAgICAgICAgICAgKEJUSE9MRCkgICAgICAgLyogQlRDTlQxIGlzIGhlbGQgd2hpbGUgQlRIT0xEIGlzIHNldCAqLworI2RlZmluZSBCVEhPTERfQ05UMV8yICAgICAgICAgIChCVEhPTEQrQlRESVYpIC8qIEJUMUNOVDEgLkFORC4gQlQxQ05UMiBhcmUgaGVsZCB3aGlsZSB+IGlzIHNldCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiAjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgMHg4MCAqLworLyogI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgIDB4ODAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTWVNURU0gQ0xPQ0ssIEZMTCsKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMTFBMVVNfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNDRkkwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMCAqLworI2RlZmluZSBGTl8yICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDEuNC0xMk1IeiovCisjZGVmaW5lIEZOXzMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMi4yLTE3TWh6Ki8KKyNkZWZpbmUgRk5fNCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBmRENPQ0xLID0gICAzLjItMjVNaHoqLworI2RlZmluZSBGTl84ICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgICAgNS00ME1oeiovCisjZGVmaW5lIEZMTEQwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDAgKi8KKyNkZWZpbmUgRkxMRDEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMSAqLworCisjZGVmaW5lIEZMTERfMSAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSAxICovCisjZGVmaW5lIEZMTERfMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSAyICovCisjZGVmaW5lIEZMTERfNCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSA0ICovCisjZGVmaW5lIEZMTERfOCAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSA4ICovCisKK1NGUl84QklUKFNDRkkxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMSAqLworU0ZSXzhCSVQoU0NGUUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworLyogU3lzdGVtIGNsb2NrIGZyZXF1ZW5jeSB2YWx1ZXMgZk1DTEsgY29kZWQgd2l0aCBCaXRzIDAtNiBpbiBTQ0ZRQ1RMICovCisvKiAjZGVmaW5lIFNDRlFfMzJLICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgIGZNQ0xLPTEqZkFDTEsgICAgICAgb25seSBhIHJhbmdlIGZyb20gKi8KKyNkZWZpbmUgU0NGUV82NEsgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBmTUNMSz0yKmZBQ0xLICAgICAgICAgIDErMSB0byAxMjcrMSBpcyBwb3NzaWJsZSAqLworI2RlZmluZSBTQ0ZRXzEyOEsgICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIGZNQ0xLPTQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8yNTZLICAgICAgICAgICAgICAoMHgwNykgICAgICAgICAvKiBmTUNMSz04KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNTEySyAgICAgICAgICAgICAgKDB4MEYpICAgICAgICAgLyogZk1DTEs9MTYqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8xTSAgICAgICAgICAgICAgICAoMHgxRikgICAgICAgICAvKiBmTUNMSz0zMipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzJNICAgICAgICAgICAgICAgICgweDNGKSAgICAgICAgIC8qIGZNQ0xLPTY0KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNE0gICAgICAgICAgICAgICAgKDB4N0YpICAgICAgICAgLyogZk1DTEs9MTI4KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfTSAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kdWxhdGlvbiBEaXNhYmxlICovCisKK1NGUl84QklUKEZMTF9DVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEwrIENvbnRyb2wgMCAqLworI2RlZmluZSBEQ09GICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIERDTyBGYXVsdCBGbGFnICovCisjZGVmaW5lIExGT0YgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTG93IEZyZXF1ZW5jeSBPc2NpbGxhdG9yIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgWFQxT0YgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDEgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDJPRiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgMiBGYXVsdCBGbGFnICovCisjZGVmaW5lIE9TQ0NBUDAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDAgKi8KKyNkZWZpbmUgT1NDQ0FQMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMSAqLworI2RlZmluZSBYVFNfRkxMICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIDE6IFNlbGVjdHMgaGlnaC1mcmVxLiBvc2NpbGxhdG9yICovCisjZGVmaW5lIERDT1BMVVMgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPKyBFbmFibGUgKi8KKworI2RlZmluZSBYQ0FQMFBGICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBYQ0FQMTBQRiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgWENBUDE0UEYgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIFhDQVAxOFBGICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworI2RlZmluZSBPU0NDQVBfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBPU0NDQVBfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzIgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIE9TQ0NBUF8zICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworCitTRlJfOEJJVChGTExfQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDEgKi8KKyNkZWZpbmUgRkxMX0RJVjAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMCAqLworI2RlZmluZSBGTExfRElWMSAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUGVyaXBoZXJhbCBNb2R1bGUgQ2xvY2sgU291cmNlICgwOiBEQ08sIDE6IFhUMikgKi8KKyNkZWZpbmUgU0VMTTAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxNMSAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciAyIChYVDIpIGRpc2FibGUgKi8KKyNkZWZpbmUgU01DTEtPRkYgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQZXJpcGhlcmFsIE1vZHVsZSBDbG9jayAoU01DTEspIGRpc2FibGUgKi8KKworI2RlZmluZSBGTExfRElWXzEgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSAxICovCisjZGVmaW5lIEZMTF9ESVZfMiAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDIgKi8KKyNkZWZpbmUgRkxMX0RJVl80ICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgNCAqLworI2RlZmluZSBGTExfRElWXzggICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA4ICovCisKKyNkZWZpbmUgU0VMTV9EQ08gICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTZWxlY3QgRENPIGZvciBDUFUgTUNMSyAqLworI2RlZmluZSBTRUxNX1hUMiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFNlbGVjdCBYVDIgZm9yIENQVSBNQ0xLICovCisjZGVmaW5lIFNFTE1fQSAgICAgICAgICAgICAgICAgKDB4MTgpICAgICAgICAgLyogU2VsZWN0IEEgKGZyb20gTEZYVDEpIGZvciBDUFUgTUNMSyAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAweDAyICovCisvKiAjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgMHgwMiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJyb3duLU91dCwgU3VwcGx5IFZvbHRhZ2UgU3VwZXJ2aXNpb24gKFNWUykKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NWU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNWU0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgQ29udHJvbCAqLworI2RlZmluZSBTVlNGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNWUyBGbGFnICovCisjZGVmaW5lIFNWU09QICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1ZTIG91dHB1dCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBTVlNPTiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN3aXRjaGVzIHRoZSBTVlMgb24vb2ZmICovCisjZGVmaW5lIFBPUk9OICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRW5hYmxlIFBPUiBHZW5lcmF0aW9uIGlmIExvdyBWb2x0YWdlICovCisjZGVmaW5lIFZMRDAgICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRDEgICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFZMRDIgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFZMRDMgICAgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgVkxET04gICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxET0ZGICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgVkxEXzFfOFYgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBMQ0QKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0xDRDRfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKExDRENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgQ29udHJvbCAqLworLyogdGhlIG5hbWVzIG9mIHRoZSBtb2RlIGJpdHMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBzcGVjICovCisjZGVmaW5lIExDRE9OICAgICAgICAgICAgICAgICAgKDB4MDEpCisvLyNkZWZpbmUgTENETE9XUiAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTENEU09OICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTENETVgwICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTENETVgxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTENEUDAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgTENEUDEgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgTENEUDIgICAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIERpc3BsYXkgbW9kZXMgY29kZWQgd2l0aCBCaXRzIDItNCAqLworI2RlZmluZSBMQ0RTVEFUSUMgICAgICAgICAgICAgIChMQ0RTT04pCisjZGVmaW5lIExDRDJNVVggICAgICAgICAgICAgICAgKExDRE1YMCtMQ0RTT04pCisjZGVmaW5lIExDRDNNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RTT04pCisjZGVmaW5lIExDRDRNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RNWDArTENEU09OKQorLyogR3JvdXAgc2VsZWN0IGNvZGUgd2l0aCBCaXRzIDUtNyAgICAgICAgICAgICAgICAgICAgIFNlZy5saW5lcyAgIERpZy5vdXRwdXQgKi8KKyNkZWZpbmUgTENEU0cwICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRFNHMF8xICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfMiAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzMgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF80ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNSAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzYgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF83ICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisvKiBOT1RFOiBZT1UgQ0FOIE9OTFkgVVNFIFRIRSAnUycgT1IgJ0cnIERFQ0xBUkFUSU9OUyBGT1IgQSBDT01NQU5EICovCisvKiBNT1YgICNMQ0RTRzBfMytMQ0RPRzJfNywmTENEQ1RMIEFDVFVBTFkgTUVBTlMgTU9WICAjTENEUDEsJkxDRENUTCEgKi8KKyNkZWZpbmUgTENET0cxXzcgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRE9HMl83ICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzNfNyAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c0XzcgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNV83ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzZfNyAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c3ICAgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HT0ZGICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisKKyNkZWZpbmUgTENETUVNXyAgICAgICAgICAgICAgICAoMHgwMDkxKSAgICAgICAvKiBMQ0QgTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoTENETUVNXykgICAgICAvKiBMQ0QgTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBMQ0RNRU1fKSAvKiBMQ0QgTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoTENETTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMSAqLworU0ZSXzhCSVQoTENETTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMiAqLworU0ZSXzhCSVQoTENETTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMyAqLworU0ZSXzhCSVQoTENETTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNCAqLworU0ZSXzhCSVQoTENETTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNSAqLworU0ZSXzhCSVQoTENETTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNiAqLworU0ZSXzhCSVQoTENETTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNyAqLworU0ZSXzhCSVQoTENETTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOCAqLworU0ZSXzhCSVQoTENETTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOSAqLworU0ZSXzhCSVQoTENETTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTAgKi8KK1NGUl84QklUKExDRE0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDExICovCitTRlJfOEJJVChMQ0RNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMiAqLworU0ZSXzhCSVQoTENETTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTMgKi8KK1NGUl84QklUKExDRE0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE0ICovCitTRlJfOEJJVChMQ0RNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNSAqLworU0ZSXzhCSVQoTENETTE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTYgKi8KK1NGUl84QklUKExDRE0xNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE3ICovCitTRlJfOEJJVChMQ0RNMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxOCAqLworU0ZSXzhCSVQoTENETTE5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTkgKi8KK1NGUl84QklUKExDRE0yMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIwICovCisKKyNkZWZpbmUgTENETUEgICAgICAgICAgICAgICAgICAoTENETTEwKSAgICAgICAvKiBMQ0QgTWVtb3J5IEEgKi8KKyNkZWZpbmUgTENETUIgICAgICAgICAgICAgICAgICAoTENETTExKSAgICAgICAvKiBMQ0QgTWVtb3J5IEIgKi8KKyNkZWZpbmUgTENETUMgICAgICAgICAgICAgICAgICAoTENETTEyKSAgICAgICAvKiBMQ0QgTWVtb3J5IEMgKi8KKyNkZWZpbmUgTENETUQgICAgICAgICAgICAgICAgICAoTENETTEzKSAgICAgICAvKiBMQ0QgTWVtb3J5IEQgKi8KKyNkZWZpbmUgTENETUUgICAgICAgICAgICAgICAgICAoTENETTE0KSAgICAgICAvKiBMQ0QgTWVtb3J5IEUgKi8KKyNkZWZpbmUgTENETUYgICAgICAgICAgICAgICAgICAoTENETTE1KSAgICAgICAvKiBMQ0QgTWVtb3J5IEYgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBVeENUTCAqLworI2RlZmluZSBQRU5BICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgUEVWICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQYXJpdHkgMDpvZGQgLyAxOmV2ZW4gKi8KKyNkZWZpbmUgU1BCICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBTdG9wIEJpdHMgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgQ0hBUiAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBEYXRhIDA6Ny1iaXRzIC8gMTo4LWJpdHMgKi8KKyNkZWZpbmUgTElTVEVOICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBMaXN0ZW4gbW9kZSAqLworI2RlZmluZSBTWU5DICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVBUlQgLyBTUEkgbW9kZSAqLworI2RlZmluZSBNTSAgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1hc3RlciBNb2RlIG9mZi9vbiAqLworI2RlZmluZSBTV1JTVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTQVJUIFNvZnR3YXJlIFJlc2V0ICovCisKKy8qIFV4VENUTCAqLworI2RlZmluZSBDS1BIICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFNQSTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgQ0tQTCAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBTU0VMMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBTU0VMMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBVUlhTRSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlY2VpdmUgU3RhcnQgZWRnZSBzZWxlY3QgKi8KKyNkZWZpbmUgVFhXQUtFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBUWCBXYWtlIHVwIG1vZGUgKi8KKyNkZWZpbmUgU1RDICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTUEk6IFNUQyBlbmFibGUgMDpvbiAvIDE6b2ZmICovCisjZGVmaW5lIFRYRVBUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVFggQnVmZmVyIGVtcHR5ICovCisKKy8qIFV4UkNUTCAqLworI2RlZmluZSBGRSAgICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEZyYW1lIEVycm9yICovCisjZGVmaW5lIFBFICAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IEVycm9yICovCisjZGVmaW5lIE9FICAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogT3ZlcnJ1biBFcnJvciAqLworI2RlZmluZSBCUksgICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJyZWFrIGRldGVjdGVkICovCisjZGVmaW5lIFVSWEVJRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUlggRXJyb3IgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVUlhXSUUgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJYIFdha2UgdXAgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBSWFdBS0UgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJYIFdha2UgdXAgZGV0ZWN0ICovCisjZGVmaW5lIFJYRVJSICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUlggRXJyb3IgRXJyb3IgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVCAwCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VQVJUMF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCitTRlJfOEJJVChVMFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVMFJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KK1NGUl84QklUKFUwTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFUwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVMFJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVTBUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworCisjZGVmaW5lIFVDVEwwICAgICAgICAgICAgICAgICAgVTBDVEwgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMCAgICAgICAgICAgICAgICAgVTBUQ1RMICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMCAgICAgICAgICAgICAgICAgVTBSQ1RMICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwwICAgICAgICAgICAgICAgICBVME1DVEwgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMCAgICAgICAgICAgICAgICAgIFUwQlIwICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTAgICAgICAgICAgICAgICAgICBVMEJSMSAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMCAgICAgICAgICAgICAgICAgVTBSWEJVRiAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjAgICAgICAgICAgICAgICAgIFUwVFhCVUYgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVEwwXyAgICAgICAgICAgICAgICAgVTBDVExfICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMF8gICAgICAgICAgICAgICAgVTBUQ1RMXyAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMF8gICAgICAgICAgICAgICAgVTBSQ1RMXyAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwwXyAgICAgICAgICAgICAgICBVME1DVExfICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMF8gICAgICAgICAgICAgICAgIFUwQlIwXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTBfICAgICAgICAgICAgICAgICBVMEJSMV8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMF8gICAgICAgICAgICAgICAgVTBSWEJVRl8gICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjBfICAgICAgICAgICAgICAgIFUwVFhCVUZfICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMCAgICAgICAgICAgICAgICAgVTBDVEwgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzAgICAgICAgICAgICAgICAgVTBUQ1RMICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzAgICAgICAgICAgICAgICAgVTBSQ1RMICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMCAgICAgICAgICAgICAgICBVME1DVEwgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzAgICAgICAgICAgICAgICAgIFUwQlIwICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8wICAgICAgICAgICAgICAgICBVMEJSMSAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzAgICAgICAgICAgICAgICAgVTBSWEJVRiAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8wICAgICAgICAgICAgICAgIFUwVFhCVUYgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMF8gICAgICAgICAgICAgICAgVTBDVExfICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzBfICAgICAgICAgICAgICAgVTBUQ1RMXyAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzBfICAgICAgICAgICAgICAgVTBSQ1RMXyAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMF8gICAgICAgICAgICAgICBVME1DVExfICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzBfICAgICAgICAgICAgICAgIFUwQlIwXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8wXyAgICAgICAgICAgICAgICBVMEJSMV8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzBfICAgICAgICAgICAgICAgVTBSWEJVRl8gICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8wXyAgICAgICAgICAgICAgIFUwVFhCVUZfICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBCMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEIzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRCSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDb250cm9sICovCitTRlJfMTZCSVQoVEJDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEJDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEJDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEJSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiAqLworU0ZSXzE2QklUKFRCQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQkNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEJDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRCQ0xHUlAxICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBUQkNMR1JQMCAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKyNkZWZpbmUgQ05UTDEgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAxICovCisjZGVmaW5lIENOVEwwICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMCAqLworI2RlZmluZSBUQlNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAxICovCisjZGVmaW5lIFRCU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDAgKi8KKyNkZWZpbmUgVEJDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBCIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEJJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEJJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgU0hSMSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFNIUjAgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworCisjZGVmaW5lIFRCU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBUQkNMSyAqLworI2RlZmluZSBUQlNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogQUNMSyAgKi8KKyNkZWZpbmUgVEJTU0VMXzIgICAgICAgICAgICAgICAoMioweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFNNQ0xLICovCisjZGVmaW5lIFRCU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBJTkNMSyAqLworI2RlZmluZSBDTlRMXzAgICAgICAgICAgICAgICAgICgwKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxNiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8xICAgICAgICAgICAgICAgICAoMSoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTIgYml0ICovCisjZGVmaW5lIENOVExfMiAgICAgICAgICAgICAgICAgKDIqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEwIGJpdCAqLworI2RlZmluZSBDTlRMXzMgICAgICAgICAgICAgICAgICgzKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAgOCBiaXQgKi8KKyNkZWZpbmUgU0hSXzAgICAgICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFNIUl8xICAgICAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBTSFJfMiAgICAgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgU0hSXzMgICAgICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworI2RlZmluZSBUQkNMR1JQXzAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgVEJDTEdSUF8xICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFRCQ0xHUlBfMiAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBUQkNMR1JQXzMgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisKKy8qIEFkZGl0aW9uYWwgVGltZXIgQiBDb250cm9sIFJlZ2lzdGVyIGJpdHMgYXJlIGRlZmluZWQgaW4gVGltZXIgQSAqLworCisjZGVmaW5lIENMTEQxICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIENMTEQwICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFIxICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgU0xTSFIwICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUl8wICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIFNMU0hSXzEgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgU0xTSFJfMiAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgU0xTSFJfMyAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKyNkZWZpbmUgQ0xMRF8wICAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBDTExEXzEgICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIENMTERfMiAgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIENMTERfMyAgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisvKiBUQjNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQklWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRCSVZfVEJDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEJDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEJDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRCSVZfMyAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl80ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzUgICAgICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwQykgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl9UQklGRyAgICAgICAgICAgICAoMHgwMDBFKSAgICAgICAvKiBUQklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29tcGFyYXRvciBBCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19DT01QQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChDQUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQ0FDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDIgKi8KK1NGUl84QklUKENBUEQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgUG9ydCBEaXNhYmxlICovCisKKyNkZWZpbmUgQ0FJRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIENBSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIENBSUVTICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBJbnQuIEVkZ2UgU2VsZWN0OiAwOnJpc2luZyAvIDE6ZmFsbGluZyAqLworI2RlZmluZSBDQU9OICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgZW5hYmxlICovCisjZGVmaW5lIENBUkVGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ0FSRUYxICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBDQVJTRUwgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIEVuYWJsZSAqLworI2RlZmluZSBDQUVYICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRXhjaGFuZ2UgSW5wdXRzICovCisKKyNkZWZpbmUgQ0FSRUZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMCA6IE9mZiAqLworI2RlZmluZSBDQVJFRl8xICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAxIDogMC4yNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMiA6IDAuNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMyA6IFZ0Ki8KKworI2RlZmluZSBDQU9VVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgT3V0cHV0ICovCisjZGVmaW5lIENBRiAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBFbmFibGUgT3V0cHV0IEZpbHRlciAqLworI2RlZmluZSBQMkNBMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0EwIDogMSAqLworI2RlZmluZSBQMkNBMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0ExIDogMSAqLworI2RlZmluZSBDQUNUTDI0ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBDQUNUTDI1ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBDQUNUTDI2ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBDQUNUTDI3ICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIENBUEQwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4wICovCisjZGVmaW5lIENBUEQxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4xICovCisjZGVmaW5lIENBUEQyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4yICovCisjZGVmaW5lIENBUEQzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4zICovCisjZGVmaW5lIENBUEQ0ICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC40ICovCisjZGVmaW5lIENBUEQ1ICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC41ICovCisjZGVmaW5lIENBUEQ2ICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC42ICovCisjZGVmaW5lIENBUEQ3ICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC43ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQURDMTIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0FEQzEyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChBREMxMkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChBREMxMkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChBREMxMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzE2QklUKEFEQzEySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl8xNkJJVChBREMxMklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KKworI2RlZmluZSBBREMxMk1FTV8gICAgICAgICAgICAgICgweDAxNDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgQURDMTJNRU0gICAgICAgICAgICAgICAoQURDMTJNRU1fKSAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIEFEQzEyTUVNICAgICAgICAgICAgICAgKChpbnQqKSAgICAgICAgQURDMTJNRU1fKSAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl8xNkJJVChBREMxMk1FTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAwICovCitTRlJfMTZCSVQoQURDMTJNRU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDIgKi8KK1NGUl8xNkJJVChBREMxMk1FTTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAzICovCitTRlJfMTZCSVQoQURDMTJNRU00KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNNSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDUgKi8KK1NGUl8xNkJJVChBREMxMk1FTTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA2ICovCitTRlJfMTZCSVQoQURDMTJNRU03KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNyAqLworU0ZSXzE2QklUKEFEQzEyTUVNOCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDggKi8KK1NGUl8xNkJJVChBREMxMk1FTTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA5ICovCitTRlJfMTZCSVQoQURDMTJNRU0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTAgKi8KK1NGUl8xNkJJVChBREMxMk1FTTExKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEyICovCitTRlJfMTZCSVQoQURDMTJNRU0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTMgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE0KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDE1ICovCisKKyNkZWZpbmUgQURDMTJNQ1RMXyAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIEFEQzEyTUNUTCAgICAgICAgICAgICAgKEFEQzEyTUNUTF8pICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBBREMxMk1DVEwgICAgICAgICAgICAgICgoY2hhciopICAgICAgIEFEQzEyTUNUTF8pIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoQURDMTJNQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDAgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxICovCitTRlJfOEJJVChBREMxMk1DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDMgKi8KK1NGUl84QklUKEFEQzEyTUNUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA0ICovCitTRlJfOEJJVChBREMxMk1DVEw1KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDYgKi8KK1NGUl84QklUKEFEQzEyTUNUTDcpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA3ICovCitTRlJfOEJJVChBREMxMk1DVEw4KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgOCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMOSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDkgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTEpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDExICovCitTRlJfOEJJVChBREMxMk1DVEwxMik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTIgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEzKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDE0ICovCitTRlJfOEJJVChBREMxMk1DVEwxNSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTUgKi8KKworLyogQURDMTJDVEwwICovCisjZGVmaW5lIEFEQzEyU0MgICAgICAgICAgICAgICAgKDB4MDAxKSAgICAgICAgLyogQURDMTIgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBFTkMgICAgICAgICAgICAgICAgICAgICgweDAwMikgICAgICAgIC8qIEFEQzEyIEVuYWJsZSBDb252ZXJzaW9uICovCisjZGVmaW5lIEFEQzEyVE9WSUUgICAgICAgICAgICAgKDB4MDA0KSAgICAgICAgLyogQURDMTIgVGltZXIgT3ZlcmZsb3cgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBBREMxMk9WSUUgICAgICAgICAgICAgICgweDAwOCkgICAgICAgIC8qIEFEQzEyIE92ZXJmbG93IGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQURDMTJPTiAgICAgICAgICAgICAgICAoMHgwMTApICAgICAgICAvKiBBREMxMiBPbi9lbmFibGUgKi8KKyNkZWZpbmUgUkVGT04gICAgICAgICAgICAgICAgICAoMHgwMjApICAgICAgICAvKiBBREMxMiBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgUkVGMl81ViAgICAgICAgICAgICAgICAoMHgwNDApICAgICAgICAvKiBBREMxMiBSZWYgMDoxLjVWIC8gMToyLjVWICovCisjZGVmaW5lIE1TQyAgICAgICAgICAgICAgICAgICAgKDB4MDgwKSAgICAgICAgLyogQURDMTIgTXVsdGlwbGUgU2FtcGxlQ29udmVyc2lvbiAqLworI2RlZmluZSBTSFQwMCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0hUMDEgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAxICovCisjZGVmaW5lIFNIVDAyICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMiAqLworI2RlZmluZSBTSFQwMyAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDMgKi8KKyNkZWZpbmUgU0hUMTAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAwICovCisjZGVmaW5lIFNIVDExICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMSBTZWxlY3QgMSAqLworI2RlZmluZSBTSFQxMiAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDIgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0hUMTMgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAzIFNlbGVjdCAzICovCisjZGVmaW5lIE1TSCAgICAgICAgICAgICAgICAgICAgKDB4MDgwKQorCisjZGVmaW5lIFNIVDBfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8yICAgICAgICAgICAgICAgICAoMioweDEwMHUpCisjZGVmaW5lIFNIVDBfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDB1KQorI2RlZmluZSBTSFQwXzQgICAgICAgICAgICAgICAgICg0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF81ICAgICAgICAgICAgICAgICAoNSoweDEwMHUpCisjZGVmaW5lIFNIVDBfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDB1KQorI2RlZmluZSBTSFQwXzcgICAgICAgICAgICAgICAgICg3KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF84ICAgICAgICAgICAgICAgICAoOCoweDEwMHUpCisjZGVmaW5lIFNIVDBfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEwICAgICAgICAgICAgICAgICgxMCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEzICAgICAgICAgICAgICAgICgxMyoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDB1KQorCisjZGVmaW5lIFNIVDFfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV80ICAgICAgICAgICAgICAgICAoNCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzUgICAgICAgICAgICAgICAgICg1KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV83ICAgICAgICAgICAgICAgICAoNyoweDEwMDB1KQorI2RlZmluZSBTSFQxXzggICAgICAgICAgICAgICAgICg4KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMCAgICAgICAgICAgICAgICAoMTAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMSAgICAgICAgICAgICAgICAoMTEqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMyAgICAgICAgICAgICAgICAoMTMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNCAgICAgICAgICAgICAgICAoMTQqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDAwdSkKKworLyogQURDMTJDVEwxICovCisjZGVmaW5lIEFEQzEyQlVTWSAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgQnVzeSAqLworI2RlZmluZSBDT05TRVEwICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ09OU0VRMSAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyU1NFTDAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyU1NFTDEgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMkRJVjEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJESVYyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAyICovCisjZGVmaW5lIElTU0ggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTIgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBTSFAgICAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFB1bHNlIE1vZGUgKi8KKyNkZWZpbmUgU0hTMCAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBTSFMxICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIENTVEFSVEFERDAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDAgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMSAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMSAqLworI2RlZmluZSBDU1RBUlRBREQyICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAyICovCisjZGVmaW5lIENTVEFSVEFERDMgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDMgKi8KKworI2RlZmluZSBDT05TRVFfMCAgICAgICAgICAgICAgICgwKjJ1KQorI2RlZmluZSBDT05TRVFfMSAgICAgICAgICAgICAgICgxKjJ1KQorI2RlZmluZSBDT05TRVFfMiAgICAgICAgICAgICAgICgyKjJ1KQorI2RlZmluZSBDT05TRVFfMyAgICAgICAgICAgICAgICgzKjJ1KQorI2RlZmluZSBBREMxMlNTRUxfMCAgICAgICAgICAgICgwKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMSAgICAgICAgICAgICgxKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMiAgICAgICAgICAgICgyKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMyAgICAgICAgICAgICgzKjh1KQorI2RlZmluZSBBREMxMkRJVl8wICAgICAgICAgICAgICgwKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8xICAgICAgICAgICAgICgxKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8yICAgICAgICAgICAgICgyKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8zICAgICAgICAgICAgICgzKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl80ICAgICAgICAgICAgICg0KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl81ICAgICAgICAgICAgICg1KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl82ICAgICAgICAgICAgICg2KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl83ICAgICAgICAgICAgICg3KjB4MjB1KQorI2RlZmluZSBTSFNfMCAgICAgICAgICAgICAgICAgICgwKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzEgICAgICAgICAgICAgICAgICAoMSoweDQwMHUpCisjZGVmaW5lIFNIU18yICAgICAgICAgICAgICAgICAgKDIqMHg0MDB1KQorI2RlZmluZSBTSFNfMyAgICAgICAgICAgICAgICAgICgzKjB4NDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMSAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8yICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzMgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNCAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF81ICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzYgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNyAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF84ICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzkgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTEgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTIgICAgICAgICAgICgxMioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTMgICAgICAgICAgICgxMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTQgICAgICAgICAgICgxNCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTUgICAgICAgICAgICgxNSoweDEwMDB1KQorCisvKiBBREMxMk1DVEx4ICovCisjZGVmaW5lIElOQ0gwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgSU5DSDEgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBJTkNIMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIElOQ0gzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDMgKi8KKyNkZWZpbmUgU1JFRjAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAwICovCisjZGVmaW5lIFNSRUYxICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMSAqLworI2RlZmluZSBTUkVGMiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDIgKi8KKyNkZWZpbmUgRU9TICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBFbmQgb2YgU2VxdWVuY2UgKi8KKworI2RlZmluZSBJTkNIXzAgICAgICAgICAgICAgICAgICgwKQorI2RlZmluZSBJTkNIXzEgICAgICAgICAgICAgICAgICgxKQorI2RlZmluZSBJTkNIXzIgICAgICAgICAgICAgICAgICgyKQorI2RlZmluZSBJTkNIXzMgICAgICAgICAgICAgICAgICgzKQorI2RlZmluZSBJTkNIXzQgICAgICAgICAgICAgICAgICg0KQorI2RlZmluZSBJTkNIXzUgICAgICAgICAgICAgICAgICg1KQorI2RlZmluZSBJTkNIXzYgICAgICAgICAgICAgICAgICg2KQorI2RlZmluZSBJTkNIXzcgICAgICAgICAgICAgICAgICg3KQorI2RlZmluZSBJTkNIXzggICAgICAgICAgICAgICAgICg4KQorI2RlZmluZSBJTkNIXzkgICAgICAgICAgICAgICAgICg5KQorI2RlZmluZSBJTkNIXzEwICAgICAgICAgICAgICAgICgxMCkKKyNkZWZpbmUgSU5DSF8xMSAgICAgICAgICAgICAgICAoMTEpCisjZGVmaW5lIElOQ0hfMTIgICAgICAgICAgICAgICAgKDEyKQorI2RlZmluZSBJTkNIXzEzICAgICAgICAgICAgICAgICgxMykKKyNkZWZpbmUgSU5DSF8xNCAgICAgICAgICAgICAgICAoMTQpCisjZGVmaW5lIElOQ0hfMTUgICAgICAgICAgICAgICAgKDE1KQorCisjZGVmaW5lIFNSRUZfMCAgICAgICAgICAgICAgICAgKDAqMHgxMHUpCisjZGVmaW5lIFNSRUZfMSAgICAgICAgICAgICAgICAgKDEqMHgxMHUpCisjZGVmaW5lIFNSRUZfMiAgICAgICAgICAgICAgICAgKDIqMHgxMHUpCisjZGVmaW5lIFNSRUZfMyAgICAgICAgICAgICAgICAgKDMqMHgxMHUpCisjZGVmaW5lIFNSRUZfNCAgICAgICAgICAgICAgICAgKDQqMHgxMHUpCisjZGVmaW5lIFNSRUZfNSAgICAgICAgICAgICAgICAgKDUqMHgxMHUpCisjZGVmaW5lIFNSRUZfNiAgICAgICAgICAgICAgICAgKDYqMHgxMHUpCisjZGVmaW5lIFNSRUZfNyAgICAgICAgICAgICAgICAgKDcqMHgxMHUpCisKKy8qIEFEQzEySVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgQURDMTJJVl9OT05FICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBBREMxMklWX0FEQzEyT1ZJRkcgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyT1ZJRkcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMlRPVklGRyAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMlRPVklGRyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMCAgICAgICgweDAwMDYpICAgICAgIC8qIEFEQzEySUZHMCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMSAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEySUZHMSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMiAgICAgICgweDAwMEEpICAgICAgIC8qIEFEQzEySUZHMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMyAgICAgICgweDAwMEMpICAgICAgIC8qIEFEQzEySUZHMyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNCAgICAgICgweDAwMEUpICAgICAgIC8qIEFEQzEySUZHNCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNSAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEySUZHNSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNiAgICAgICgweDAwMTIpICAgICAgIC8qIEFEQzEySUZHNiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNyAgICAgICgweDAwMTQpICAgICAgIC8qIEFEQzEySUZHNyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOCAgICAgICgweDAwMTYpICAgICAgIC8qIEFEQzEySUZHOCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOSAgICAgICgweDAwMTgpICAgICAgIC8qIEFEQzEySUZHOSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTAgICAgICgweDAwMUEpICAgICAgIC8qIEFEQzEySUZHMTAgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzExICAgICAoMHgwMDFDKSAgICAgICAvKiBBREMxMklGRzExICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMiAgICAgKDB4MDAxRSkgICAgICAgLyogQURDMTJJRkcxMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTMgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEySUZHMTMgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzE0ICAgICAoMHgwMDIyKSAgICAgICAvKiBBREMxMklGRzE0ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxNSAgICAgKDB4MDAyNCkgICAgICAgLyogQURDMTJJRkcxNSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGRTApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworI2RlZmluZSBCQVNJQ1RJTUVSX1ZFQ1RPUiAgICAgICAoMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLworLyojZGVmaW5lIEJBU0lDVElNRVJfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMCIpICAqLyAvKiAweEZGRTAgQmFzaWMgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgxICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUyIFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMSIpICAqLyAvKiAweEZGRTIgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIEFEQzEyX1ZFQ1RPUiAgICAgICAgICAgICg3ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIEFEQyAqLworLyojZGVmaW5lIEFEQzEyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNyIpICAqLyAvKiAweEZGRUUgQURDICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBUWF9WRUNUT1IgICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNBUlQwVFhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBSWF9WRUNUT1IgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBVU0FSVCAwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0FSVDBSWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtMiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTIsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4NDN4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4NDN4MS5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0M3gxLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUxY2RmZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4NDN4MS5oCkBAIC0wLDAgKzEsODc4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHg0M3gxIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuMQorKgorKiBSZXYuIDEuMCwgSW5pdGlhbCBWZXJzaW9uCisqIFJldi4gMS4xLCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4NDN4MQorI2RlZmluZSBfX21zcDQzMHg0M3gxCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFUwSUUgICAgICAgICAgICAgICAgICAgSUUxICAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBVUlhJRTAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhJRTAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBVMElGRyAgICAgICAgICAgICAgICAgIElGRzEgICAgICAgICAgIC8qIFVBUlQwIEludGVycnVwdCBGbGFnIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVSWElGRzAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElGRzAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKE1FMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNb2R1bGUgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBNRSAgICAgICAgICAgICAgICAgICBNRTEgICAgICAgICAgICAvKiBVQVJUMCBNb2R1bGUgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWEUwICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWEUwICAgICAgICAgICAgICAgICAgKDB4ODApCisjZGVmaW5lIFVTUElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAgICAoMHg4MCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCQVNJQyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQlRfXyAgICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIkJUIiAqLworI2RlZmluZSBCVElQMCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBCVElQMSAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBCVElQMiAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBCVEZSRlEwICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBCVEZSRlExICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBCVERJViAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZDTEsyID0gQUNMSzoyNTYgKi8KKyNkZWZpbmUgQlRIT0xEICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBCVDEgaXMgaGVsZCBpZiB0aGlzIGJpdCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRTU0VMICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBmQlQgPSBmTUNMSyAobWFpbiBjbG9jaykgKi8KKworU0ZSXzhCSVQoQlRDTlQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDEgKi8KK1NGUl84QklUKEJUQ05UMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAyICovCisKKy8qIEZyZXF1ZW5jeSBvZiB0aGUgQlRDTlQyIGNvZGVkIHdpdGggQml0IDUgYW5kIDcgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfQUNMSyAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgQlRfZkNMSzJfQUNMS19ESVYyNTYgICAoQlRESVYpCisjZGVmaW5lIEJUX2ZDTEsyX01DTEsgICAgICAgICAgKEJUU1NFTCkKKworLyogSW50ZXJydXB0IGludGVydmFsIHRpbWUgZklOVCBjb2RlZCB3aXRoIEJpdHMgMC0yIGluIEJUQ1RMICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZklOVCA9IGZDTEsyOjIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjQgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjQgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWOCAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiBmSU5UID0gZkNMSzI6OCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxNiAgICAgICAgIChCVElQMStCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjoxNiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYzMiAgICAgICAgIChCVElQMikgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjozMiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY2NCAgICAgICAgIChCVElQMitCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjo2NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxMjggICAgICAgIChCVElQMitCVElQMSkgIC8qIGZJTlQgPSBmQ0xLMjoxMjggKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMjU2ICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIGZJTlQgPSBmQ0xLMjoyNTYgKi8KKy8qIEZyZXF1ZW5jeSBvZiBMQ0QgY29kZWQgd2l0aCBCaXRzIDMtNCAqLworI2RlZmluZSBCVF9mTENEX0RJVjMyICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzozMiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVY2NCAgICAgICAgICAoQlRGUkZRMCkgICAgICAvKiBmTENEID0gZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYxMjggICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmTENEID0gZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMjU2ICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmTENEID0gZkFDTEs6MjU2ICovCisvKiBMQ0QgZnJlcXVlbmN5IHZhbHVlcyB3aXRoIGZCVD1mQUNMSyAqLworI2RlZmluZSBCVF9mTENEXzFLICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEXzUxMiAgICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZBQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfMjU2ICAgICAgICAgICAgKEJURlJGUTEpICAgICAgLyogZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfMTI4ICAgICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZNQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMzFLICAgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogZk1DTEs6MzIgKi8KKyNkZWZpbmUgQlRfZkxDRF8xNV81SyAgICAgICAoQlRTU0VMK0JURlJGUTApICAgICAgICAgIC8qIGZNQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfN184SyAgICAgICAgKEJUU1NFTCtCVEZSRlExK0JURlJGUTApICAvKiBmTUNMSzoyNTYgKi8KKy8qIHdpdGggYXNzdW1lZCB2bHVlcyBvZiBmQUNMSz0zMktIeiwgZk1DTEs9MU1IeiAqLworLyogZkJUPWZBQ0xLIGlzIHRob3VnaHQgZm9yIGxvbmdlciBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9BRExZXzBfMDY0ICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIDAuMDY0bXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX0FETFlfMF8xMjUgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF8yNSAgICAgICAgICAgKEJUSVAxKSAgICAgICAgLyogMC4yNW1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF81ICAgICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogMC41bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMSAgICAgICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogMW1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMiAgICAgICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogMm1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNCAgICAgICAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogNG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfOCAgICAgICAgICAgKEJUSVAyK0JUSVAxK0JUSVAwKSAgICAgICAvKiA4bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xNiAgICAgICAgICAgICAoQlRESVYpICAgICAgICAvKiAxNm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8zMiAgICAgICAgICAgICAoQlRESVYrQlRJUDApICAvKiAzMm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV82NCAgICAgICAgICAgICAoQlRESVYrQlRJUDEpICAvKiA2NG1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMjUgICAgICAgICAoQlRESVYrQlRJUDErQlRJUDApICAgICAgIC8qIDEyNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzI1MCAgICAgICAgICAgIChCVERJVitCVElQMikgIC8qIDI1MG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzUwMCAgICAgICAgIChCVERJVitCVElQMitCVElQMCkgICAgICAgLyogNTAwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxKSAgICAgICAvKiAxMDAwbXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDErQlRJUDApIC8qIDIwMDBtcyAgICAgIiAqLworLyogZkNMSzI9Zk1DTEsgKDFNSHopIGlzIHRob3VnaHQgZm9yIHNob3J0IGludGVydmFsIHRpbWVzICovCisvKiB0aGUgdGltaW5nIGZvciBzaG9ydCBpbnRlcnZhbHMgaXMgbW9yZSBwcmVjaXNlIHRoYW4gQUNMSyAqLworLyogTk9URSAqLworLyogQmUgc3VyZSB0aGF0IHRoZSBTQ0ZRQ1RMLVJlZ2lzdGVyIGlzIHNldCB0byAwMUZoIHNvIHRoYXQgZk1DTEs9MU1IeiAqLworLyogVG9vIGxvdyBpbnRlcnZhbCB0aW1lIHJlc3VsdHMgaW4gaW50ZXJydXB0cyB0b28gZnJlcXVlbnQgZm9yIHRoZSBwcm9jZXNzb3IgdG8gaGFuZGxlISAqLworI2RlZmluZSBCVF9NRExZXzBfMDAyICAgICAgICAgIChCVFNTRUwpICAgICAgIC8qIDAuMDAybXMgaW50ZXJ2YWwgICAgICAgKioqIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDQgICAgICAgICAgKEJUU1NFTCtCVElQMCkgLyogMC4wMDRtcyAgICAiICAgICAgICAgICAqKiogdG9vIHNob3J0IGZvciAqLworI2RlZmluZSBCVF9NRExZXzBfMDA4ICAgICAgICAgIChCVFNTRUwrQlRJUDEpIC8qIDAuMDA4bXMgICAgIiAgICAgICAgICAgKioqIGludGVycnVwdCAqLworI2RlZmluZSBCVF9NRExZXzBfMDE2ICAgICAgIChCVFNTRUwrQlRJUDErQlRJUDApICAgICAgLyogMC4wMTZtcyAgICAiICAgICAgICAgICAqKiogaGFuZGxpbmcgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAzMiAgICAgICAgICAoQlRTU0VMK0JUSVAyKSAvKiAwLjAzMm1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzA2NCAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAwKSAgICAgIC8qIDAuMDY0bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMTI1ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDEpICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8yNSAgICAgICAgKEJUU1NFTCtCVElQMitCVElQMStCVElQMCkvKiAwLjI1bXMgICAgICIgKi8KKworLyogUmVzZXQvSG9sZCBjb2RlZCB3aXRoIEJpdHMgNi03IGluIEJUKDEpQ1RMICovCisvKiB0aGlzIGlzIGZvciBCVCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMSAgICAgICAgKEJUUkVTRVQpICAgICAgICAgICAvKiBCVENOVDEgaXMgcmVzZXQgd2hpbGUgQlRSRVNFVCBpcyBzZXQgKi8KKy8vI2RlZmluZSBCVFJFU0VUX0NOVDFfMiAgICAgIChCVFJFU0VUK0JURElWKSAgICAgLyogQlRDTlQxIC5BTkQuIEJUQ05UMiBhcmUgcmVzZXQgd2hpbGUgfiBpcyBzZXQgKi8KKy8qIHRoaXMgaXMgZm9yIEJUMSAqLworI2RlZmluZSBCVEhPTERfQ05UMSAgICAgICAgICAgIChCVEhPTEQpICAgICAgIC8qIEJUQ05UMSBpcyBoZWxkIHdoaWxlIEJUSE9MRCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDFfMiAgICAgICAgICAoQlRIT0xEK0JURElWKSAvKiBCVDFDTlQxIC5BTkQuIEJUMUNOVDIgYXJlIGhlbGQgd2hpbGUgfiBpcyBzZXQgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogI2RlZmluZSBCVElFICAgICAgICAgICAgICAgIDB4ODAgKi8KKy8qICNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAweDgwICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29tcGFyYXRvciBBCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19DT01QQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChDQUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQ0FDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDIgKi8KK1NGUl84QklUKENBUEQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgUG9ydCBEaXNhYmxlICovCisKKyNkZWZpbmUgQ0FJRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIENBSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIENBSUVTICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBJbnQuIEVkZ2UgU2VsZWN0OiAwOnJpc2luZyAvIDE6ZmFsbGluZyAqLworI2RlZmluZSBDQU9OICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgZW5hYmxlICovCisjZGVmaW5lIENBUkVGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ0FSRUYxICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBDQVJTRUwgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIEVuYWJsZSAqLworI2RlZmluZSBDQUVYICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRXhjaGFuZ2UgSW5wdXRzICovCisKKyNkZWZpbmUgQ0FSRUZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMCA6IE9mZiAqLworI2RlZmluZSBDQVJFRl8xICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAxIDogMC4yNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMiA6IDAuNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMyA6IFZ0Ki8KKworI2RlZmluZSBDQU9VVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgT3V0cHV0ICovCisjZGVmaW5lIENBRiAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBFbmFibGUgT3V0cHV0IEZpbHRlciAqLworI2RlZmluZSBQMkNBMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0EwIDogMSAqLworI2RlZmluZSBQMkNBMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0ExIDogMSAqLworI2RlZmluZSBDQUNUTDI0ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBDQUNUTDI1ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBDQUNUTDI2ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBDQUNUTDI3ICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIENBUEQwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4wICovCisjZGVmaW5lIENBUEQxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4xICovCisjZGVmaW5lIENBUEQyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4yICovCisjZGVmaW5lIENBUEQzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4zICovCisjZGVmaW5lIENBUEQ0ICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC40ICovCisjZGVmaW5lIENBUEQ1ICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC41ICovCisjZGVmaW5lIENBUEQ2ICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC42ICovCisjZGVmaW5lIENBUEQ3ICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC43ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTWVNURU0gQ0xPQ0ssIEZMTCsKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMTFBMVVNfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNDRkkwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMCAqLworI2RlZmluZSBGTl8yICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDEuNC0xMk1IeiovCisjZGVmaW5lIEZOXzMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMi4yLTE3TWh6Ki8KKyNkZWZpbmUgRk5fNCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBmRENPQ0xLID0gICAzLjItMjVNaHoqLworI2RlZmluZSBGTl84ICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgICAgNS00ME1oeiovCisjZGVmaW5lIEZMTEQwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDAgKi8KKyNkZWZpbmUgRkxMRDEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMSAqLworCisjZGVmaW5lIEZMTERfMSAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSAxICovCisjZGVmaW5lIEZMTERfMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSAyICovCisjZGVmaW5lIEZMTERfNCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSA0ICovCisjZGVmaW5lIEZMTERfOCAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSA4ICovCisKK1NGUl84QklUKFNDRkkxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMSAqLworU0ZSXzhCSVQoU0NGUUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworLyogU3lzdGVtIGNsb2NrIGZyZXF1ZW5jeSB2YWx1ZXMgZk1DTEsgY29kZWQgd2l0aCBCaXRzIDAtNiBpbiBTQ0ZRQ1RMICovCisvKiAjZGVmaW5lIFNDRlFfMzJLICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgIGZNQ0xLPTEqZkFDTEsgICAgICAgb25seSBhIHJhbmdlIGZyb20gKi8KKyNkZWZpbmUgU0NGUV82NEsgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBmTUNMSz0yKmZBQ0xLICAgICAgICAgIDErMSB0byAxMjcrMSBpcyBwb3NzaWJsZSAqLworI2RlZmluZSBTQ0ZRXzEyOEsgICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIGZNQ0xLPTQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8yNTZLICAgICAgICAgICAgICAoMHgwNykgICAgICAgICAvKiBmTUNMSz04KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNTEySyAgICAgICAgICAgICAgKDB4MEYpICAgICAgICAgLyogZk1DTEs9MTYqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8xTSAgICAgICAgICAgICAgICAoMHgxRikgICAgICAgICAvKiBmTUNMSz0zMipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzJNICAgICAgICAgICAgICAgICgweDNGKSAgICAgICAgIC8qIGZNQ0xLPTY0KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNE0gICAgICAgICAgICAgICAgKDB4N0YpICAgICAgICAgLyogZk1DTEs9MTI4KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfTSAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kdWxhdGlvbiBEaXNhYmxlICovCisKK1NGUl84QklUKEZMTF9DVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEwrIENvbnRyb2wgMCAqLworI2RlZmluZSBEQ09GICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIERDTyBGYXVsdCBGbGFnICovCisjZGVmaW5lIExGT0YgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTG93IEZyZXF1ZW5jeSBPc2NpbGxhdG9yIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgWFQxT0YgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDEgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDJPRiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgMiBGYXVsdCBGbGFnICovCisjZGVmaW5lIE9TQ0NBUDAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDAgKi8KKyNkZWZpbmUgT1NDQ0FQMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMSAqLworI2RlZmluZSBYVFNfRkxMICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIDE6IFNlbGVjdHMgaGlnaC1mcmVxLiBvc2NpbGxhdG9yICovCisjZGVmaW5lIERDT1BMVVMgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPKyBFbmFibGUgKi8KKworI2RlZmluZSBYQ0FQMFBGICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBYQ0FQMTBQRiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgWENBUDE0UEYgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIFhDQVAxOFBGICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworI2RlZmluZSBPU0NDQVBfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBPU0NDQVBfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzIgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIE9TQ0NBUF8zICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworCitTRlJfOEJJVChGTExfQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDEgKi8KKyNkZWZpbmUgRkxMX0RJVjAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMCAqLworI2RlZmluZSBGTExfRElWMSAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUGVyaXBoZXJhbCBNb2R1bGUgQ2xvY2sgU291cmNlICgwOiBEQ08sIDE6IFhUMikgKi8KKyNkZWZpbmUgU0VMTTAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxNMSAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciAyIChYVDIpIGRpc2FibGUgKi8KKyNkZWZpbmUgU01DTEtPRkYgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQZXJpcGhlcmFsIE1vZHVsZSBDbG9jayAoU01DTEspIGRpc2FibGUgKi8KKworI2RlZmluZSBGTExfRElWXzEgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSAxICovCisjZGVmaW5lIEZMTF9ESVZfMiAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDIgKi8KKyNkZWZpbmUgRkxMX0RJVl80ICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgNCAqLworI2RlZmluZSBGTExfRElWXzggICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA4ICovCisKKyNkZWZpbmUgU0VMTV9EQ08gICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTZWxlY3QgRENPIGZvciBDUFUgTUNMSyAqLworI2RlZmluZSBTRUxNX1hUMiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFNlbGVjdCBYVDIgZm9yIENQVSBNQ0xLICovCisjZGVmaW5lIFNFTE1fQSAgICAgICAgICAgICAgICAgKDB4MTgpICAgICAgICAgLyogU2VsZWN0IEEgKGZyb20gTEZYVDEpIGZvciBDUFUgTUNMSyAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAweDAyICovCisvKiAjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgMHgwMiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIExDRAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTENENF9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoTENEQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBDb250cm9sICovCisvKiB0aGUgbmFtZXMgb2YgdGhlIG1vZGUgYml0cyBhcmUgZGlmZmVyZW50IGZyb20gdGhlIHNwZWMgKi8KKyNkZWZpbmUgTENET04gICAgICAgICAgICAgICAgICAoMHgwMSkKKy8vI2RlZmluZSBMQ0RMT1dSICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBMQ0RTT04gICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBMQ0RNWDAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBMQ0RNWDEgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBMQ0RQMCAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBMQ0RQMSAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBMQ0RQMiAgICAgICAgICAgICAgICAgICgweDgwKQorLyogRGlzcGxheSBtb2RlcyBjb2RlZCB3aXRoIEJpdHMgMi00ICovCisjZGVmaW5lIExDRFNUQVRJQyAgICAgICAgICAgICAgKExDRFNPTikKKyNkZWZpbmUgTENEMk1VWCAgICAgICAgICAgICAgICAoTENETVgwK0xDRFNPTikKKyNkZWZpbmUgTENEM01VWCAgICAgICAgICAgICAgICAoTENETVgxK0xDRFNPTikKKyNkZWZpbmUgTENENE1VWCAgICAgICAgICAgICAgICAoTENETVgxK0xDRE1YMCtMQ0RTT04pCisvKiBHcm91cCBzZWxlY3QgY29kZSB3aXRoIEJpdHMgNS03ICAgICAgICAgICAgICAgICAgICAgU2VnLmxpbmVzICAgRGlnLm91dHB1dCAqLworI2RlZmluZSBMQ0RTRzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIC0tLS0tLS0tLSAgIFBvcnQgT25seSAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgTENEU0cwXzEgICAgICAgICAgICAgICAoTENEUDApICAgICAgICAvKiBTMCAgLSBTMTUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF8yICAgICAgICAgICAgICAgKExDRFAxKSAgICAgICAgLyogUzAgIC0gUzE5ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfMyAgICAgICAgICAgICAgIChMQ0RQMStMQ0RQMCkgIC8qIFMwICAtIFMyMyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzQgICAgICAgICAgICAgICAoTENEUDIpICAgICAgICAvKiBTMCAgLSBTMjcgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF81ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAwKSAgLyogUzAgIC0gUzMxICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNiAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMSkgIC8qIFMwICAtIFMzNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzcgICAgICAgICAgICAoTENEUDIrTENEUDErTENEUDApICAgICAgIC8qIFMwICAtIFMzOSAgIHNlZSBEYXRhc2hlZXQgKi8KKy8qIE5PVEU6IFlPVSBDQU4gT05MWSBVU0UgVEhFICdTJyBPUiAnRycgREVDTEFSQVRJT05TIEZPUiBBIENPTU1BTkQgKi8KKy8qIE1PViAgI0xDRFNHMF8zK0xDRE9HMl83LCZMQ0RDVEwgQUNUVUFMWSBNRUFOUyBNT1YgICNMQ0RQMSwmTENEQ1RMISAqLworI2RlZmluZSBMQ0RPRzFfNyAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIC0tLS0tLS0tLSAgIFBvcnQgT25seSAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgTENET0cyXzcgICAgICAgICAgICAgICAoTENEUDApICAgICAgICAvKiBTMCAgLSBTMTUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HM183ICAgICAgICAgICAgICAgKExDRFAxKSAgICAgICAgLyogUzAgIC0gUzE5ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzRfNyAgICAgICAgICAgICAgIChMQ0RQMStMQ0RQMCkgIC8qIFMwICAtIFMyMyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c1XzcgICAgICAgICAgICAgICAoTENEUDIpICAgICAgICAvKiBTMCAgLSBTMjcgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNl83ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAwKSAgLyogUzAgIC0gUzMxICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzcgICAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMSkgIC8qIFMwICAtIFMzNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0dPRkYgICAgICAgICAgICAoTENEUDIrTENEUDErTENEUDApICAgICAgIC8qIFMwICAtIFMzOSAgIHNlZSBEYXRhc2hlZXQgKi8KKworI2RlZmluZSBMQ0RNRU1fICAgICAgICAgICAgICAgICgweDAwOTEpICAgICAgIC8qIExDRCBNZW1vcnkgKi8KKyNpZmRlZiBfX0FTTV9IRUFERVJfXworI2RlZmluZSBMQ0RNRU0gICAgICAgICAgICAgICAgIChMQ0RNRU1fKSAgICAgIC8qIExDRCBNZW1vcnkgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBMQ0RNRU0gICAgICAgICAgICAgICAgICgoY2hhciopICAgICAgIExDRE1FTV8pIC8qIExDRCBNZW1vcnkgKGZvciBDKSAqLworI2VuZGlmCitTRlJfOEJJVChMQ0RNMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxICovCitTRlJfOEJJVChMQ0RNMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAyICovCitTRlJfOEJJVChMQ0RNMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAzICovCitTRlJfOEJJVChMQ0RNNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA0ICovCitTRlJfOEJJVChMQ0RNNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA1ICovCitTRlJfOEJJVChMQ0RNNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA2ICovCitTRlJfOEJJVChMQ0RNNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA3ICovCitTRlJfOEJJVChMQ0RNOCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA4ICovCitTRlJfOEJJVChMQ0RNOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA5ICovCitTRlJfOEJJVChMQ0RNMTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMCAqLworU0ZSXzhCSVQoTENETTExKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTEgKi8KK1NGUl84QklUKExDRE0xMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEyICovCitTRlJfOEJJVChMQ0RNMTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMyAqLworU0ZSXzhCSVQoTENETTE0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTQgKi8KK1NGUl84QklUKExDRE0xNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE1ICovCitTRlJfOEJJVChMQ0RNMTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNiAqLworU0ZSXzhCSVQoTENETTE3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTcgKi8KK1NGUl84QklUKExDRE0xOCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE4ICovCitTRlJfOEJJVChMQ0RNMTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxOSAqLworU0ZSXzhCSVQoTENETTIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMjAgKi8KKworI2RlZmluZSBMQ0RNQSAgICAgICAgICAgICAgICAgIChMQ0RNMTApICAgICAgIC8qIExDRCBNZW1vcnkgQSAqLworI2RlZmluZSBMQ0RNQiAgICAgICAgICAgICAgICAgIChMQ0RNMTEpICAgICAgIC8qIExDRCBNZW1vcnkgQiAqLworI2RlZmluZSBMQ0RNQyAgICAgICAgICAgICAgICAgIChMQ0RNMTIpICAgICAgIC8qIExDRCBNZW1vcnkgQyAqLworI2RlZmluZSBMQ0RNRCAgICAgICAgICAgICAgICAgIChMQ0RNMTMpICAgICAgIC8qIExDRCBNZW1vcnkgRCAqLworI2RlZmluZSBMQ0RNRSAgICAgICAgICAgICAgICAgIChMQ0RNMTQpICAgICAgIC8qIExDRCBNZW1vcnkgRSAqLworI2RlZmluZSBMQ0RNRiAgICAgICAgICAgICAgICAgIChMQ0RNMTUpICAgICAgIC8qIExDRCBNZW1vcnkgRiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDUvNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ2X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA1SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgSW5wdXQgKi8KK1NGUl84QklUKFA1T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgT3V0cHV0ICovCitTRlJfOEJJVChQNURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDVTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJyb3duLU91dCwgU3VwcGx5IFZvbHRhZ2UgU3VwZXJ2aXNpb24gKFNWUykKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NWU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNWU0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgQ29udHJvbCAqLworI2RlZmluZSBTVlNGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNWUyBGbGFnICovCisjZGVmaW5lIFNWU09QICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1ZTIG91dHB1dCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBTVlNPTiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN3aXRjaGVzIHRoZSBTVlMgb24vb2ZmICovCisjZGVmaW5lIFBPUk9OICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRW5hYmxlIFBPUiBHZW5lcmF0aW9uIGlmIExvdyBWb2x0YWdlICovCisjZGVmaW5lIFZMRDAgICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRDEgICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFZMRDIgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFZMRDMgICAgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgVkxET04gICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxET0ZGICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgVkxEXzFfOFYgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEIzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQjNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQlIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCICovCitTRlJfMTZCSVQoVEJDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRCQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQkNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEJDTEdSUDEgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFRCQ0xHUlAwICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworI2RlZmluZSBDTlRMMSAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDEgKi8KKyNkZWZpbmUgQ05UTDAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAwICovCisjZGVmaW5lIFRCU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDEgKi8KKyNkZWZpbmUgVEJTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMCAqLworI2RlZmluZSBUQkNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEIgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQklFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQklGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBTSFIxICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgU0hSMCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisKKyNkZWZpbmUgVEJTU0VMXzAgICAgICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFRCQ0xLICovCisjZGVmaW5lIFRCU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBBQ0xLICAqLworI2RlZmluZSBUQlNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogU01DTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzMgICAgICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IElOQ0xLICovCisjZGVmaW5lIENOVExfMCAgICAgICAgICAgICAgICAgKDAqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDE2IGJpdCAqLworI2RlZmluZSBDTlRMXzEgICAgICAgICAgICAgICAgICgxKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8yICAgICAgICAgICAgICAgICAoMioweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTAgYml0ICovCisjZGVmaW5lIENOVExfMyAgICAgICAgICAgICAgICAgKDMqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6ICA4IGJpdCAqLworI2RlZmluZSBTSFJfMCAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgU0hSXzEgICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFNIUl8yICAgICAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBTSFJfMyAgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisjZGVmaW5lIFRCQ0xHUlBfMCAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBUQkNMR1JQXzEgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgVEJDTEdSUF8yICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFRCQ0xHUlBfMyAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKworLyogQWRkaXRpb25hbCBUaW1lciBCIENvbnRyb2wgUmVnaXN0ZXIgYml0cyBhcmUgZGVmaW5lZCBpbiBUaW1lciBBICovCisKKyNkZWZpbmUgQ0xMRDEgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgQ0xMRDAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUjEgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBTTFNIUjAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSXzAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgU0xTSFJfMSAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBTTFNIUl8yICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBTTFNIUl8zICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworI2RlZmluZSBDTExEXzAgICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIENMTERfMSAgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgQ0xMRF8yICAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgQ0xMRF8zICAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKy8qIFRCM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRCSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQkNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl9UQkNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQkNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEJJVl8zICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzQgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNSAgICAgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl82ICAgICAgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWX1RCSUZHICAgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFRCSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVXhDVEwgKi8KKyNkZWZpbmUgUEVOQSAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBQYXJpdHkgZW5hYmxlICovCisjZGVmaW5lIFBFViAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IDA6b2RkIC8gMTpldmVuICovCisjZGVmaW5lIFNQQiAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogU3RvcCBCaXRzIDA6b25lIC8gMTogdHdvICovCisjZGVmaW5lIENIQVIgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogRGF0YSAwOjctYml0cyAvIDE6OC1iaXRzICovCisjZGVmaW5lIExJU1RFTiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTGlzdGVuIG1vZGUgKi8KKyNkZWZpbmUgU1lOQyAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVQVJUIC8gU1BJIG1vZGUgKi8KKyNkZWZpbmUgTU0gICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNYXN0ZXIgTW9kZSBvZmYvb24gKi8KKyNkZWZpbmUgU1dSU1QgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0FSVCBTb2Z0d2FyZSBSZXNldCAqLworCisvKiBVeFRDVEwgKi8KKyNkZWZpbmUgQ0tQSCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTUEk6IENsb2NrIFBoYXNlICovCisjZGVmaW5lIENLUEwgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ2xvY2sgUG9sYXJpdHkgKi8KKyNkZWZpbmUgU1NFTDEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1NFTDAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVVJYU0UgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSZWNlaXZlIFN0YXJ0IGVkZ2Ugc2VsZWN0ICovCisjZGVmaW5lIFRYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVFggV2FrZSB1cCBtb2RlICovCisjZGVmaW5lIFNUQyAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1BJOiBTVEMgZW5hYmxlIDA6b24gLyAxOm9mZiAqLworI2RlZmluZSBUWEVQVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRYIEJ1ZmZlciBlbXB0eSAqLworCisvKiBVeFJDVEwgKi8KKyNkZWZpbmUgRkUgICAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBGcmFtZSBFcnJvciAqLworI2RlZmluZSBQRSAgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSBFcnJvciAqLworI2RlZmluZSBPRSAgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE92ZXJydW4gRXJyb3IgKi8KKyNkZWZpbmUgQlJLICAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBkZXRlY3RlZCAqLworI2RlZmluZSBVUlhFSUUgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJYIEVycm9yIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVVJYV0lFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSWCBXYWtlIHVwIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgUlhXQUtFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSWCBXYWtlIHVwIGRldGVjdCAqLworI2RlZmluZSBSWEVSUiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJYIEVycm9yIEVycm9yICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQgMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVUFSVDBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCitTRlJfOEJJVChVME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFUwQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVMEJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFUwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKworI2RlZmluZSBVQ1RMMCAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDAgICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDAgICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMCAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDAgICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwICAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjAgICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwICAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMMF8gICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDBfICAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDBfICAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMF8gICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDBfICAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwXyAgICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjBfICAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwXyAgICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMCAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMCAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzBfICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wXyAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wXyAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzBfICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wXyAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMF8gICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wXyAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMF8gICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIEJBU0lDVElNRVJfVkVDVE9SICAgICAgICgwICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIEJhc2ljIFRpbWVyICovCisvKiNkZWZpbmUgQkFTSUNUSU1FUl9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDEgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICg0ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU4IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNCIpICAqLyAvKiAweEZGRTggUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkExX1ZFQ1RPUiAgICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQSBUaW1lciBBIENDMS0yLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNSIpICAqLyAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICg2ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNBUlQwVFhfVkVDVE9SICAgICAgICAgKDggKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVVNBUlQgMCBUcmFuc21pdCAqLworLyojZGVmaW5lIFVTQVJUMFRYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOCIpICAqLyAvKiAweEZGRjAgVVNBUlQgMCBUcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNBUlQwUlhfVkVDVE9SICAgICAgICAgKDkgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjIgVVNBUlQgMCBSZWNlaXZlICovCisvKiNkZWZpbmUgVVNBUlQwUlhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA5IikgICovIC8qIDB4RkZGMiBVU0FSVCAwIFJlY2VpdmUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQ09NUEFSQVRPUkFfVkVDVE9SICAgICAgKDExICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovCisvKiNkZWZpbmUgQ09NUEFSQVRPUkFfSVNSKGZ1bmMpICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDExIikgICovIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQjFfVkVDVE9SICAgICAgICAgICgxMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTIsIFRCICovCisvKiNkZWZpbmUgVElNRVJCMV9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEyIikgICovIC8qIDB4RkZGOCBUaW1lciBCIENDMS0yLCBUQiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMF9WRUNUT1IgICAgICAgICAgKDEzICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUkIwX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTMiKSAgKi8gLyogMHhGRkZBIFRpbWVyIEIgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBOTUlfVkVDVE9SICAgICAgICAgICAgICAoMTQgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8KKy8qI2RlZmluZSBOTUlfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTQiKSAgKi8gLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVRfVkVDVE9SICAgICAgICAgICAgKDE1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovCisvKiNkZWZpbmUgUkVTRVRfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE1IikgICovIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDQzeDEgKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0NHguaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4NDR4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y2YTY4MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4NDR4LmgKQEAgLTAsMCArMSwxMTk4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHg0NHggZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMi42CisqCisqIFJldi4gMS4xLCBFbmNsb3NlIGFsbCAjZGVmaW5lIHN0YXRlbWVudHMgd2l0aCBwYXJlbnRoZXNlcworKiBSZXYuIDEuMiwgRGVmaW5lZCB2ZWN0b3JzIGZvciBVU0FSVCAoaW4gYWRkaXRpb24gdG8gVUFSVCkKKyogUmV2LiAxLjMsIEFkZGVkIFVTQVJUIHNwZWNpYWwgZnVuY3Rpb24gbGFiZWxzIChVeE1FLCBVeElFLCBVeElGRykKKyogUmV2LiAxLjQsIFJlbW92ZWQgaW5jb3JyZWN0IGxhYmVsICdCVFJFU0VUJworKiAgICAgICAgICAgQWRkZWQgbWlzc2luZyBsYWJlbHMgZm9yIEZMTAorKiBSZXYuIDIuMSwgRml4ZWQgZGVmaW5pdGlvbiBvZiBGTExfRElWMCBhbmQgRkxMX0RJVjEKKyogICAgICAgICAgIEFsaWdubWVudCBvZiBkZWZpbnRpb25zIGluIFVzZXJzIEd1aWRlIGFuZCBvZiB2ZXJzaW9uIG51bWJlcnMKKyogUmV2LiAyLjExLFJlbW92ZWQgZGVmaW5pdGlvbiBvZiBMQ0RMT1dSIChub3QgYXZhaWxhYmxlIGF0IDR4eCBkZXZpY2VzKQorKiBSZXYuIDIuMiwgRml4ZWQgdHlwZSBpbiBBREMxMiBiaXQgZGVmaW5pdGlvbnMgKHJlcGxhY2VkIEFEQzEwIHdpdGggQURDMTIpCisqIFJldi4gMi4zLCBSZW1vdmVkIHVudXNlZCBkZWYgb2YgVEFTU0VMMiAvIFRCU1NFTDIKKyogUmV2LiAyLjQsIEFkZGVkIFZMRCBiaXRzIGluIFNWUyBtb2R1bGUKKyogUmV2LiAyLjUsIFJlbW92ZWQgZGVmaW5pdGlvbnMgZm9yIEJUUkVTRVQKKyogUmV2LiAyLjYsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHg0NHgKKyNkZWZpbmUgX19tc3A0MzB4NDR4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFUwSUUgICAgICAgICAgICAgICAgICAgSUUxICAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBVUlhJRTAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhJRTAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBVMElGRyAgICAgICAgICAgICAgICAgIElGRzEgICAgICAgICAgIC8qIFVBUlQwIEludGVycnVwdCBGbGFnIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVSWElGRzAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElGRzAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKE1FMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNb2R1bGUgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBNRSAgICAgICAgICAgICAgICAgICBNRTEgICAgICAgICAgICAvKiBVQVJUMCBNb2R1bGUgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWEUwICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWEUwICAgICAgICAgICAgICAgICAgKDB4ODApCisjZGVmaW5lIFVTUElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVTFJRSAgICAgICAgICAgICAgICAgICBJRTIgICAgICAgICAgICAvKiBVQVJUMSBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWElFMSAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVUWElFMSAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKElGRzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAyICovCisjZGVmaW5lIFUxSUZHICAgICAgICAgICAgICAgICAgSUZHMiAgICAgICAgICAgLyogVUFSVDEgSW50ZXJydXB0IEZsYWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYSUZHMSAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVRYSUZHMSAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoTUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1vZHVsZSBFbmFibGUgMiAqLworI2RlZmluZSBVMU1FICAgICAgICAgICAgICAgICAgIE1FMiAgICAgICAgICAgIC8qIFVBUlQxIE1vZHVsZSBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYRTEgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVRYRTEgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVVNQSUUxICAgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBIQVJEV0FSRSBNVUxUSVBMSUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19NUFlfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoTVBZKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTVBZUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQ1MpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChPUDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl8xNkJJVChSRVNMTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl8xNkJJVChSRVNISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgSGlnaCBXb3JkICovCitTRlJfMTZCSVQoU1VNRVhUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VtIEV4dGVuZCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDUvNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ2X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA1SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgSW5wdXQgKi8KK1NGUl84QklUKFA1T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgT3V0cHV0ICovCitTRlJfOEJJVChQNURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDVTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJBU0lDIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CVF9fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChCVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiQlQiICovCisjZGVmaW5lIEJUSVAwICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEJUSVAxICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIEJUSVAyICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEJURlJGUTAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJURlJGUTEgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEJURElWICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkNMSzIgPSBBQ0xLOjI1NiAqLworI2RlZmluZSBCVEhPTEQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEJUMSBpcyBoZWxkIGlmIHRoaXMgYml0IGlzIHNldCAqLworI2RlZmluZSBCVFNTRUwgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIGZCVCA9IGZNQ0xLIChtYWluIGNsb2NrKSAqLworCitTRlJfOEJJVChCVENOVDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMSAqLworU0ZSXzhCSVQoQlRDTlQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDIgKi8KKworLyogRnJlcXVlbmN5IG9mIHRoZSBCVENOVDIgY29kZWQgd2l0aCBCaXQgNSBhbmQgNyBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9BQ0xLICAgICAgICAgICgweDAwKQorI2RlZmluZSBCVF9mQ0xLMl9BQ0xLX0RJVjI1NiAgIChCVERJVikKKyNkZWZpbmUgQlRfZkNMSzJfTUNMSyAgICAgICAgICAoQlRTU0VMKQorCisvKiBJbnRlcnJ1cHQgaW50ZXJ2YWwgdGltZSBmSU5UIGNvZGVkIHdpdGggQml0cyAwLTIgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmSU5UID0gZkNMSzI6MiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNCAgICAgICAgICAoQlRJUDApICAgICAgICAvKiBmSU5UID0gZkNMSzI6NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY4ICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjE2ICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjE2ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjMyICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjMyICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjY0ICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjY0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjEyOCAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogZklOVCA9IGZDTEsyOjEyOCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyNTYgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogZklOVCA9IGZDTEsyOjI1NiAqLworLyogRnJlcXVlbmN5IG9mIExDRCBjb2RlZCB3aXRoIEJpdHMgMy00ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMzIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEX0RJVjY0ICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEX0RJVjEyOCAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYyNTYgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZBQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMUsgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfNTEyICAgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF8yNTYgICAgICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF8xMjggICAgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9Zk1DTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8zMUsgICAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiBmTUNMSzozMiAqLworI2RlZmluZSBCVF9mTENEXzE1XzVLICAgICAgIChCVFNTRUwrQlRGUkZRMCkgICAgICAgICAgLyogZk1DTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF83XzhLICAgICAgICAoQlRTU0VMK0JURlJGUTErQlRGUkZRMCkgIC8qIGZNQ0xLOjI1NiAqLworLyogd2l0aCBhc3N1bWVkIHZsdWVzIG9mIGZBQ0xLPTMyS0h6LCBmTUNMSz0xTUh6ICovCisvKiBmQlQ9ZkFDTEsgaXMgdGhvdWdodCBmb3IgbG9uZ2VyIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX0FETFlfMF8wNjQgICAgICAgICAgKDB4MDApICAgICAgICAgLyogMC4wNjRtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzEyNSAgICAgICAgICAoQlRJUDApICAgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzI1ICAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiAwLjI1bXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzUgICAgICAgICAgICAoQlRJUDErQlRJUDApICAvKiAwLjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xICAgICAgICAgICAgICAoQlRJUDIpICAgICAgICAvKiAxbXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yICAgICAgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiAybXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV80ICAgICAgICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiA0bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV84ICAgICAgICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIDhtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzE2ICAgICAgICAgICAgIChCVERJVikgICAgICAgIC8qIDE2bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzMyICAgICAgICAgICAgIChCVERJVitCVElQMCkgIC8qIDMybXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzY0ICAgICAgICAgICAgIChCVERJVitCVElQMSkgIC8qIDY0bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEyNSAgICAgICAgIChCVERJVitCVElQMStCVElQMCkgICAgICAgLyogMTI1bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjUwICAgICAgICAgICAgKEJURElWK0JUSVAyKSAgLyogMjUwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNTAwICAgICAgICAgKEJURElWK0JUSVAyK0JUSVAwKSAgICAgICAvKiA1MDBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDEpICAgICAgIC8qIDEwMDBtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMStCVElQMCkgLyogMjAwMG1zICAgICAiICovCisvKiBmQ0xLMj1mTUNMSyAoMU1IeikgaXMgdGhvdWdodCBmb3Igc2hvcnQgaW50ZXJ2YWwgdGltZXMgKi8KKy8qIHRoZSB0aW1pbmcgZm9yIHNob3J0IGludGVydmFscyBpcyBtb3JlIHByZWNpc2UgdGhhbiBBQ0xLICovCisvKiBOT1RFICovCisvKiBCZSBzdXJlIHRoYXQgdGhlIFNDRlFDVEwtUmVnaXN0ZXIgaXMgc2V0IHRvIDAxRmggc28gdGhhdCBmTUNMSz0xTUh6ICovCisvKiBUb28gbG93IGludGVydmFsIHRpbWUgcmVzdWx0cyBpbiBpbnRlcnJ1cHRzIHRvbyBmcmVxdWVudCBmb3IgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUhICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDIgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogMC4wMDJtcyBpbnRlcnZhbCAgICAgICAqKiogaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwNCAgICAgICAgICAoQlRTU0VMK0JUSVAwKSAvKiAwLjAwNG1zICAgICIgICAgICAgICAgICoqKiB0b28gc2hvcnQgZm9yICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDggICAgICAgICAgKEJUU1NFTCtCVElQMSkgLyogMC4wMDhtcyAgICAiICAgICAgICAgICAqKiogaW50ZXJydXB0ICovCisjZGVmaW5lIEJUX01ETFlfMF8wMTYgICAgICAgKEJUU1NFTCtCVElQMStCVElQMCkgICAgICAvKiAwLjAxNm1zICAgICIgICAgICAgICAgICoqKiBoYW5kbGluZyAqLworI2RlZmluZSBCVF9NRExZXzBfMDMyICAgICAgICAgIChCVFNTRUwrQlRJUDIpIC8qIDAuMDMybXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMDY0ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDApICAgICAgLyogMC4wNjRtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8xMjUgICAgICAgKEJUU1NFTCtCVElQMitCVElQMSkgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzI1ICAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxK0JUSVAwKS8qIDAuMjVtcyAgICAgIiAqLworCisvKiBSZXNldC9Ib2xkIGNvZGVkIHdpdGggQml0cyA2LTcgaW4gQlQoMSlDVEwgKi8KKy8qIHRoaXMgaXMgZm9yIEJUICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxICAgICAgICAoQlRSRVNFVCkgICAgICAgICAgIC8qIEJUQ05UMSBpcyByZXNldCB3aGlsZSBCVFJFU0VUIGlzIHNldCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMV8yICAgICAgKEJUUkVTRVQrQlRESVYpICAgICAvKiBCVENOVDEgLkFORC4gQlRDTlQyIGFyZSByZXNldCB3aGlsZSB+IGlzIHNldCAqLworLyogdGhpcyBpcyBmb3IgQlQxICovCisjZGVmaW5lIEJUSE9MRF9DTlQxICAgICAgICAgICAgKEJUSE9MRCkgICAgICAgLyogQlRDTlQxIGlzIGhlbGQgd2hpbGUgQlRIT0xEIGlzIHNldCAqLworI2RlZmluZSBCVEhPTERfQ05UMV8yICAgICAgICAgIChCVEhPTEQrQlRESVYpIC8qIEJUMUNOVDEgLkFORC4gQlQxQ05UMiBhcmUgaGVsZCB3aGlsZSB+IGlzIHNldCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiAjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgMHg4MCAqLworLyogI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgIDB4ODAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTWVNURU0gQ0xPQ0ssIEZMTCsKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMTFBMVVNfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNDRkkwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMCAqLworI2RlZmluZSBGTl8yICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDEuNC0xMk1IeiovCisjZGVmaW5lIEZOXzMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMi4yLTE3TWh6Ki8KKyNkZWZpbmUgRk5fNCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBmRENPQ0xLID0gICAzLjItMjVNaHoqLworI2RlZmluZSBGTl84ICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgICAgNS00ME1oeiovCisjZGVmaW5lIEZMTEQwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDAgKi8KKyNkZWZpbmUgRkxMRDEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMSAqLworCisjZGVmaW5lIEZMTERfMSAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSAxICovCisjZGVmaW5lIEZMTERfMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSAyICovCisjZGVmaW5lIEZMTERfNCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSA0ICovCisjZGVmaW5lIEZMTERfOCAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSA4ICovCisKK1NGUl84QklUKFNDRkkxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMSAqLworU0ZSXzhCSVQoU0NGUUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworLyogU3lzdGVtIGNsb2NrIGZyZXF1ZW5jeSB2YWx1ZXMgZk1DTEsgY29kZWQgd2l0aCBCaXRzIDAtNiBpbiBTQ0ZRQ1RMICovCisvKiAjZGVmaW5lIFNDRlFfMzJLICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgIGZNQ0xLPTEqZkFDTEsgICAgICAgb25seSBhIHJhbmdlIGZyb20gKi8KKyNkZWZpbmUgU0NGUV82NEsgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBmTUNMSz0yKmZBQ0xLICAgICAgICAgIDErMSB0byAxMjcrMSBpcyBwb3NzaWJsZSAqLworI2RlZmluZSBTQ0ZRXzEyOEsgICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIGZNQ0xLPTQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8yNTZLICAgICAgICAgICAgICAoMHgwNykgICAgICAgICAvKiBmTUNMSz04KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNTEySyAgICAgICAgICAgICAgKDB4MEYpICAgICAgICAgLyogZk1DTEs9MTYqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8xTSAgICAgICAgICAgICAgICAoMHgxRikgICAgICAgICAvKiBmTUNMSz0zMipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzJNICAgICAgICAgICAgICAgICgweDNGKSAgICAgICAgIC8qIGZNQ0xLPTY0KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNE0gICAgICAgICAgICAgICAgKDB4N0YpICAgICAgICAgLyogZk1DTEs9MTI4KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfTSAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kdWxhdGlvbiBEaXNhYmxlICovCisKK1NGUl84QklUKEZMTF9DVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEwrIENvbnRyb2wgMCAqLworI2RlZmluZSBEQ09GICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIERDTyBGYXVsdCBGbGFnICovCisjZGVmaW5lIExGT0YgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTG93IEZyZXF1ZW5jeSBPc2NpbGxhdG9yIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgWFQxT0YgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDEgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDJPRiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgMiBGYXVsdCBGbGFnICovCisjZGVmaW5lIE9TQ0NBUDAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDAgKi8KKyNkZWZpbmUgT1NDQ0FQMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMSAqLworI2RlZmluZSBYVFNfRkxMICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIDE6IFNlbGVjdHMgaGlnaC1mcmVxLiBvc2NpbGxhdG9yICovCisjZGVmaW5lIERDT1BMVVMgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPKyBFbmFibGUgKi8KKworI2RlZmluZSBYQ0FQMFBGICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBYQ0FQMTBQRiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgWENBUDE0UEYgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIFhDQVAxOFBGICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworI2RlZmluZSBPU0NDQVBfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBPU0NDQVBfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzIgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIE9TQ0NBUF8zICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworCitTRlJfOEJJVChGTExfQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDEgKi8KKyNkZWZpbmUgRkxMX0RJVjAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMCAqLworI2RlZmluZSBGTExfRElWMSAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUGVyaXBoZXJhbCBNb2R1bGUgQ2xvY2sgU291cmNlICgwOiBEQ08sIDE6IFhUMikgKi8KKyNkZWZpbmUgU0VMTTAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxNMSAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciAyIChYVDIpIGRpc2FibGUgKi8KKyNkZWZpbmUgU01DTEtPRkYgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQZXJpcGhlcmFsIE1vZHVsZSBDbG9jayAoU01DTEspIGRpc2FibGUgKi8KKworI2RlZmluZSBGTExfRElWXzEgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSAxICovCisjZGVmaW5lIEZMTF9ESVZfMiAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDIgKi8KKyNkZWZpbmUgRkxMX0RJVl80ICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgNCAqLworI2RlZmluZSBGTExfRElWXzggICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA4ICovCisKKyNkZWZpbmUgU0VMTV9EQ08gICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTZWxlY3QgRENPIGZvciBDUFUgTUNMSyAqLworI2RlZmluZSBTRUxNX1hUMiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFNlbGVjdCBYVDIgZm9yIENQVSBNQ0xLICovCisjZGVmaW5lIFNFTE1fQSAgICAgICAgICAgICAgICAgKDB4MTgpICAgICAgICAgLyogU2VsZWN0IEEgKGZyb20gTEZYVDEpIGZvciBDUFUgTUNMSyAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAweDAyICovCisvKiAjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgMHgwMiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJyb3duLU91dCwgU3VwcGx5IFZvbHRhZ2UgU3VwZXJ2aXNpb24gKFNWUykKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NWU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNWU0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgQ29udHJvbCAqLworI2RlZmluZSBTVlNGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNWUyBGbGFnICovCisjZGVmaW5lIFNWU09QICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1ZTIG91dHB1dCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBTVlNPTiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN3aXRjaGVzIHRoZSBTVlMgb24vb2ZmICovCisjZGVmaW5lIFBPUk9OICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRW5hYmxlIFBPUiBHZW5lcmF0aW9uIGlmIExvdyBWb2x0YWdlICovCisjZGVmaW5lIFZMRDAgICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRDEgICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFZMRDIgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFZMRDMgICAgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgVkxET04gICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxET0ZGICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgVkxEXzFfOFYgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBMQ0QKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0xDRDRfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKExDRENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgQ29udHJvbCAqLworLyogdGhlIG5hbWVzIG9mIHRoZSBtb2RlIGJpdHMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBzcGVjICovCisjZGVmaW5lIExDRE9OICAgICAgICAgICAgICAgICAgKDB4MDEpCisvLyNkZWZpbmUgTENETE9XUiAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTENEU09OICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTENETVgwICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTENETVgxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTENEUDAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgTENEUDEgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgTENEUDIgICAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIERpc3BsYXkgbW9kZXMgY29kZWQgd2l0aCBCaXRzIDItNCAqLworI2RlZmluZSBMQ0RTVEFUSUMgICAgICAgICAgICAgIChMQ0RTT04pCisjZGVmaW5lIExDRDJNVVggICAgICAgICAgICAgICAgKExDRE1YMCtMQ0RTT04pCisjZGVmaW5lIExDRDNNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RTT04pCisjZGVmaW5lIExDRDRNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RNWDArTENEU09OKQorLyogR3JvdXAgc2VsZWN0IGNvZGUgd2l0aCBCaXRzIDUtNyAgICAgICAgICAgICAgICAgICAgIFNlZy5saW5lcyAgIERpZy5vdXRwdXQgKi8KKyNkZWZpbmUgTENEU0cwICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRFNHMF8xICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfMiAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzMgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF80ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNSAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzYgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF83ICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisvKiBOT1RFOiBZT1UgQ0FOIE9OTFkgVVNFIFRIRSAnUycgT1IgJ0cnIERFQ0xBUkFUSU9OUyBGT1IgQSBDT01NQU5EICovCisvKiBNT1YgICNMQ0RTRzBfMytMQ0RPRzJfNywmTENEQ1RMIEFDVFVBTFkgTUVBTlMgTU9WICAjTENEUDEsJkxDRENUTCEgKi8KKyNkZWZpbmUgTENET0cxXzcgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRE9HMl83ICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzNfNyAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c0XzcgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNV83ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzZfNyAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c3ICAgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HT0ZGICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisKKyNkZWZpbmUgTENETUVNXyAgICAgICAgICAgICAgICAoMHgwMDkxKSAgICAgICAvKiBMQ0QgTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoTENETUVNXykgICAgICAvKiBMQ0QgTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBMQ0RNRU1fKSAvKiBMQ0QgTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoTENETTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMSAqLworU0ZSXzhCSVQoTENETTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMiAqLworU0ZSXzhCSVQoTENETTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMyAqLworU0ZSXzhCSVQoTENETTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNCAqLworU0ZSXzhCSVQoTENETTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNSAqLworU0ZSXzhCSVQoTENETTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNiAqLworU0ZSXzhCSVQoTENETTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNyAqLworU0ZSXzhCSVQoTENETTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOCAqLworU0ZSXzhCSVQoTENETTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOSAqLworU0ZSXzhCSVQoTENETTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTAgKi8KK1NGUl84QklUKExDRE0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDExICovCitTRlJfOEJJVChMQ0RNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMiAqLworU0ZSXzhCSVQoTENETTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTMgKi8KK1NGUl84QklUKExDRE0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE0ICovCitTRlJfOEJJVChMQ0RNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNSAqLworU0ZSXzhCSVQoTENETTE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTYgKi8KK1NGUl84QklUKExDRE0xNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE3ICovCitTRlJfOEJJVChMQ0RNMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxOCAqLworU0ZSXzhCSVQoTENETTE5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTkgKi8KK1NGUl84QklUKExDRE0yMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIwICovCisKKyNkZWZpbmUgTENETUEgICAgICAgICAgICAgICAgICAoTENETTEwKSAgICAgICAvKiBMQ0QgTWVtb3J5IEEgKi8KKyNkZWZpbmUgTENETUIgICAgICAgICAgICAgICAgICAoTENETTExKSAgICAgICAvKiBMQ0QgTWVtb3J5IEIgKi8KKyNkZWZpbmUgTENETUMgICAgICAgICAgICAgICAgICAoTENETTEyKSAgICAgICAvKiBMQ0QgTWVtb3J5IEMgKi8KKyNkZWZpbmUgTENETUQgICAgICAgICAgICAgICAgICAoTENETTEzKSAgICAgICAvKiBMQ0QgTWVtb3J5IEQgKi8KKyNkZWZpbmUgTENETUUgICAgICAgICAgICAgICAgICAoTENETTE0KSAgICAgICAvKiBMQ0QgTWVtb3J5IEUgKi8KKyNkZWZpbmUgTENETUYgICAgICAgICAgICAgICAgICAoTENETTE1KSAgICAgICAvKiBMQ0QgTWVtb3J5IEYgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBVeENUTCAqLworI2RlZmluZSBQRU5BICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgUEVWICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQYXJpdHkgMDpvZGQgLyAxOmV2ZW4gKi8KKyNkZWZpbmUgU1BCICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBTdG9wIEJpdHMgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgQ0hBUiAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBEYXRhIDA6Ny1iaXRzIC8gMTo4LWJpdHMgKi8KKyNkZWZpbmUgTElTVEVOICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBMaXN0ZW4gbW9kZSAqLworI2RlZmluZSBTWU5DICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVBUlQgLyBTUEkgbW9kZSAqLworI2RlZmluZSBNTSAgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1hc3RlciBNb2RlIG9mZi9vbiAqLworI2RlZmluZSBTV1JTVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTQVJUIFNvZnR3YXJlIFJlc2V0ICovCisKKy8qIFV4VENUTCAqLworI2RlZmluZSBDS1BIICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFNQSTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgQ0tQTCAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBTU0VMMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBTU0VMMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBVUlhTRSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlY2VpdmUgU3RhcnQgZWRnZSBzZWxlY3QgKi8KKyNkZWZpbmUgVFhXQUtFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBUWCBXYWtlIHVwIG1vZGUgKi8KKyNkZWZpbmUgU1RDICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTUEk6IFNUQyBlbmFibGUgMDpvbiAvIDE6b2ZmICovCisjZGVmaW5lIFRYRVBUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVFggQnVmZmVyIGVtcHR5ICovCisKKy8qIFV4UkNUTCAqLworI2RlZmluZSBGRSAgICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEZyYW1lIEVycm9yICovCisjZGVmaW5lIFBFICAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IEVycm9yICovCisjZGVmaW5lIE9FICAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogT3ZlcnJ1biBFcnJvciAqLworI2RlZmluZSBCUksgICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJyZWFrIGRldGVjdGVkICovCisjZGVmaW5lIFVSWEVJRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUlggRXJyb3IgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVUlhXSUUgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJYIFdha2UgdXAgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBSWFdBS0UgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJYIFdha2UgdXAgZGV0ZWN0ICovCisjZGVmaW5lIFJYRVJSICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUlggRXJyb3IgRXJyb3IgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVCAwCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VQVJUMF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCitTRlJfOEJJVChVMFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVMFJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KK1NGUl84QklUKFUwTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFUwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVMFJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVTBUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworCisjZGVmaW5lIFVDVEwwICAgICAgICAgICAgICAgICAgVTBDVEwgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMCAgICAgICAgICAgICAgICAgVTBUQ1RMICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMCAgICAgICAgICAgICAgICAgVTBSQ1RMICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwwICAgICAgICAgICAgICAgICBVME1DVEwgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMCAgICAgICAgICAgICAgICAgIFUwQlIwICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTAgICAgICAgICAgICAgICAgICBVMEJSMSAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMCAgICAgICAgICAgICAgICAgVTBSWEJVRiAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjAgICAgICAgICAgICAgICAgIFUwVFhCVUYgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVEwwXyAgICAgICAgICAgICAgICAgVTBDVExfICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMF8gICAgICAgICAgICAgICAgVTBUQ1RMXyAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMF8gICAgICAgICAgICAgICAgVTBSQ1RMXyAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwwXyAgICAgICAgICAgICAgICBVME1DVExfICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMF8gICAgICAgICAgICAgICAgIFUwQlIwXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTBfICAgICAgICAgICAgICAgICBVMEJSMV8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMF8gICAgICAgICAgICAgICAgVTBSWEJVRl8gICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjBfICAgICAgICAgICAgICAgIFUwVFhCVUZfICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMCAgICAgICAgICAgICAgICAgVTBDVEwgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzAgICAgICAgICAgICAgICAgVTBUQ1RMICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzAgICAgICAgICAgICAgICAgVTBSQ1RMICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMCAgICAgICAgICAgICAgICBVME1DVEwgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzAgICAgICAgICAgICAgICAgIFUwQlIwICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8wICAgICAgICAgICAgICAgICBVMEJSMSAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzAgICAgICAgICAgICAgICAgVTBSWEJVRiAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8wICAgICAgICAgICAgICAgIFUwVFhCVUYgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMF8gICAgICAgICAgICAgICAgVTBDVExfICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzBfICAgICAgICAgICAgICAgVTBUQ1RMXyAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzBfICAgICAgICAgICAgICAgVTBSQ1RMXyAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMF8gICAgICAgICAgICAgICBVME1DVExfICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzBfICAgICAgICAgICAgICAgIFUwQlIwXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8wXyAgICAgICAgICAgICAgICBVMEJSMV8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzBfICAgICAgICAgICAgICAgVTBSWEJVRl8gICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8wXyAgICAgICAgICAgICAgIFUwVFhCVUZfICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQgMQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVUFSVDFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVTFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgQ29udHJvbCAqLworU0ZSXzhCSVQoVTFUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVTFSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgUmVjZWl2ZSBDb250cm9sICovCitTRlJfOEJJVChVMU1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFUxQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVMUJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVTFSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFUxVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKworI2RlZmluZSBVQ1RMMSAgICAgICAgICAgICAgICAgIFUxQ1RMICAgICAgICAgIC8qIFVTQVJUIDEgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDEgICAgICAgICAgICAgICAgIFUxVENUTCAgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDEgICAgICAgICAgICAgICAgIFUxUkNUTCAgICAgICAgIC8qIFVTQVJUIDEgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMSAgICAgICAgICAgICAgICAgVTFNQ1RMICAgICAgICAgLyogVVNBUlQgMSBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDEgICAgICAgICAgICAgICAgICBVMUJSMCAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjExICAgICAgICAgICAgICAgICAgVTFCUjEgICAgICAgICAgLyogVVNBUlQgMSBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjEgICAgICAgICAgICAgICAgIFUxUlhCVUYgICAgICAgIC8qIFVTQVJUIDEgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYxICAgICAgICAgICAgICAgICBVMVRYQlVGICAgICAgICAvKiBVU0FSVCAxIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMMV8gICAgICAgICAgICAgICAgIFUxQ1RMXyAgICAgICAgIC8qIFVTQVJUIDEgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDFfICAgICAgICAgICAgICAgIFUxVENUTF8gICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDFfICAgICAgICAgICAgICAgIFUxUkNUTF8gICAgICAgIC8qIFVTQVJUIDEgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMV8gICAgICAgICAgICAgICAgVTFNQ1RMXyAgICAgICAgLyogVVNBUlQgMSBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDFfICAgICAgICAgICAgICAgICBVMUJSMF8gICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjExXyAgICAgICAgICAgICAgICAgVTFCUjFfICAgICAgICAgLyogVVNBUlQgMSBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjFfICAgICAgICAgICAgICAgIFUxUlhCVUZfICAgICAgIC8qIFVTQVJUIDEgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYxXyAgICAgICAgICAgICAgICBVMVRYQlVGXyAgICAgICAvKiBVU0FSVCAxIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzEgICAgICAgICAgICAgICAgIFUxQ1RMICAgICAgICAgIC8qIFVTQVJUIDEgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8xICAgICAgICAgICAgICAgIFUxVENUTCAgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8xICAgICAgICAgICAgICAgIFUxUkNUTCAgICAgICAgIC8qIFVTQVJUIDEgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzEgICAgICAgICAgICAgICAgVTFNQ1RMICAgICAgICAgLyogVVNBUlQgMSBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8xICAgICAgICAgICAgICAgICBVMUJSMCAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMSAgICAgICAgICAgICAgICAgVTFCUjEgICAgICAgICAgLyogVVNBUlQgMSBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8xICAgICAgICAgICAgICAgIFUxUlhCVUYgICAgICAgIC8qIFVTQVJUIDEgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMSAgICAgICAgICAgICAgICBVMVRYQlVGICAgICAgICAvKiBVU0FSVCAxIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzFfICAgICAgICAgICAgICAgIFUxQ1RMXyAgICAgICAgIC8qIFVTQVJUIDEgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8xXyAgICAgICAgICAgICAgIFUxVENUTF8gICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8xXyAgICAgICAgICAgICAgIFUxUkNUTF8gICAgICAgIC8qIFVTQVJUIDEgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzFfICAgICAgICAgICAgICAgVTFNQ1RMXyAgICAgICAgLyogVVNBUlQgMSBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8xXyAgICAgICAgICAgICAgICBVMUJSMF8gICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMV8gICAgICAgICAgICAgICAgVTFCUjFfICAgICAgICAgLyogVVNBUlQgMSBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8xXyAgICAgICAgICAgICAgIFUxUlhCVUZfICAgICAgIC8qIFVTQVJUIDEgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMV8gICAgICAgICAgICAgICBVMVRYQlVGXyAgICAgICAvKiBVU0FSVCAxIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQUNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQUNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl84ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWX1RBSUZHICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQjcKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RCN19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ29udHJvbCAqLworU0ZSXzE2QklUKFRCQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRCQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRCQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRCQ0NUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMyAqLworU0ZSXzE2QklUKFRCQ0NUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgNCAqLworU0ZSXzE2QklUKFRCQ0NUTDUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgNSAqLworU0ZSXzE2QklUKFRCQ0NUTDYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgNiAqLworU0ZSXzE2QklUKFRCUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgKi8KK1NGUl8xNkJJVChUQkNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEJDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRCQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDIgKi8KK1NGUl8xNkJJVChUQkNDUjMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAzICovCitTRlJfMTZCSVQoVEJDQ1I0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgNCAqLworU0ZSXzE2QklUKFRCQ0NSNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDUgKi8KK1NGUl8xNkJJVChUQkNDUjYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSA2ICovCisKKyNkZWZpbmUgVEJDTEdSUDEgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFRCQ0xHUlAwICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworI2RlZmluZSBDTlRMMSAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDEgKi8KKyNkZWZpbmUgQ05UTDAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAwICovCisjZGVmaW5lIFRCU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDEgKi8KKyNkZWZpbmUgVEJTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMCAqLworI2RlZmluZSBUQkNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEIgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQklFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQklGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBTSFIxICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgU0hSMCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisKKyNkZWZpbmUgVEJTU0VMXzAgICAgICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFRCQ0xLICovCisjZGVmaW5lIFRCU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBBQ0xLICAqLworI2RlZmluZSBUQlNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogU01DTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzMgICAgICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IElOQ0xLICovCisjZGVmaW5lIENOVExfMCAgICAgICAgICAgICAgICAgKDAqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDE2IGJpdCAqLworI2RlZmluZSBDTlRMXzEgICAgICAgICAgICAgICAgICgxKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8yICAgICAgICAgICAgICAgICAoMioweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTAgYml0ICovCisjZGVmaW5lIENOVExfMyAgICAgICAgICAgICAgICAgKDMqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6ICA4IGJpdCAqLworI2RlZmluZSBTSFJfMCAgICAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgU0hSXzEgICAgICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFNIUl8yICAgICAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBTSFJfMyAgICAgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisjZGVmaW5lIFRCQ0xHUlBfMCAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBUQkNMR1JQXzEgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgVEJDTEdSUF8yICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFRCQ0xHUlBfMyAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKworLyogQWRkaXRpb25hbCBUaW1lciBCIENvbnRyb2wgUmVnaXN0ZXIgYml0cyBhcmUgZGVmaW5lZCBpbiBUaW1lciBBICovCisjZGVmaW5lIENMTEQxICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIENMTEQwICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFIxICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgU0xTSFIwICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUl8wICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIFNMU0hSXzEgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgU0xTSFJfMiAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgU0xTSFJfMyAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKyNkZWZpbmUgQ0xMRF8wICAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBDTExEXzEgICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIENMTERfMiAgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIENMTERfMyAgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisvKiBUQjdJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQklWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRCSVZfVEJDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEJDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEJDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1IzICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogVEJDQ1IzX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1I0ICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogVEJDQ1I0X0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1I1ICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEJDQ1IzX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1I2ICAgICAgICAgICAgKDB4MDAwQykgICAgICAgLyogVEJDQ1I0X0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJJRkcgICAgICAgICAgICAgKDB4MDAwRSkgICAgICAgLyogVEJJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0hfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvbXBhcmF0b3IgQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQ09NUEFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQ0FDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDEgKi8KK1NGUl84QklUKENBQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAyICovCitTRlJfOEJJVChDQVBEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIFBvcnQgRGlzYWJsZSAqLworCisjZGVmaW5lIENBSUZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBDQUlFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBDQUlFUyAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBFZGdlIFNlbGVjdDogMDpyaXNpbmcgLyAxOmZhbGxpbmcgKi8KKyNkZWZpbmUgQ0FPTiAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIGVuYWJsZSAqLworI2RlZmluZSBDQVJFRjAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENBUkVGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0FSU0VMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBFbmFibGUgKi8KKyNkZWZpbmUgQ0FFWCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIEV4Y2hhbmdlIElucHV0cyAqLworCisjZGVmaW5lIENBUkVGXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDAgOiBPZmYgKi8KKyNkZWZpbmUgQ0FSRUZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMSA6IDAuMjUqVmNjICovCisjZGVmaW5lIENBUkVGXzIgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDIgOiAwLjUqVmNjICovCisjZGVmaW5lIENBUkVGXzMgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDMgOiBWdCovCisKKyNkZWZpbmUgQ0FPVVQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIE91dHB1dCAqLworI2RlZmluZSBDQUYgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRW5hYmxlIE91dHB1dCBGaWx0ZXIgKi8KKyNkZWZpbmUgUDJDQTAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIENvbm5lY3QgRXh0ZXJuYWwgU2lnbmFsIHRvIENBMCA6IDEgKi8KKyNkZWZpbmUgUDJDQTEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIENvbm5lY3QgRXh0ZXJuYWwgU2lnbmFsIHRvIENBMSA6IDEgKi8KKyNkZWZpbmUgQ0FDVEwyNCAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQ0FDVEwyNSAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgQ0FDVEwyNiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgQ0FDVEwyNyAgICAgICAgICAgICAgICAoMHg4MCkKKworI2RlZmluZSBDQVBEMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMCAqLworI2RlZmluZSBDQVBEMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMSAqLworI2RlZmluZSBDQVBEMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMiAqLworI2RlZmluZSBDQVBEMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMyAqLworI2RlZmluZSBDQVBENCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNCAqLworI2RlZmluZSBDQVBENSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNSAqLworI2RlZmluZSBDQVBENiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNiAqLworI2RlZmluZSBDQVBENyAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEFEQzEyCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19BREMxMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoQURDMTJDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udHJvbCAwICovCitTRlJfMTZCSVQoQURDMTJDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udHJvbCAxICovCitTRlJfMTZCSVQoQURDMTJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl8xNkJJVChBREMxMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfMTZCSVQoQURDMTJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisKKyNkZWZpbmUgQURDMTJNRU1fICAgICAgICAgICAgICAoMHgwMTQwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIEFEQzEyTUVNICAgICAgICAgICAgICAgKEFEQzEyTUVNXykgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBBREMxMk1FTSAgICAgICAgICAgICAgICgoaW50KikgICAgICAgIEFEQzEyTUVNXykgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgKGZvciBDKSAqLworI2VuZGlmCitTRlJfMTZCSVQoQURDMTJNRU0wKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEgKi8KK1NGUl8xNkJJVChBREMxMk1FTTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAyICovCitTRlJfMTZCSVQoQURDMTJNRU0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMyAqLworU0ZSXzE2QklUKEFEQzEyTUVNNCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDQgKi8KK1NGUl8xNkJJVChBREMxMk1FTTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA1ICovCitTRlJfMTZCSVQoQURDMTJNRU02KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNiAqLworU0ZSXzE2QklUKEFEQzEyTUVNNyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDcgKi8KK1NGUl8xNkJJVChBREMxMk1FTTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA4ICovCitTRlJfMTZCSVQoQURDMTJNRU05KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgOSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTApOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEwICovCitTRlJfMTZCSVQoQURDMTJNRU0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTEgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMiAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTMpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEzICovCitTRlJfMTZCSVQoQURDMTJNRU0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTQgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNSAqLworCisjZGVmaW5lIEFEQzEyTUNUTF8gICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKi8KKyNpZmRlZiBfX0FTTV9IRUFERVJfXworI2RlZmluZSBBREMxMk1DVEwgICAgICAgICAgICAgIChBREMxMk1DVExfKSAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgQURDMTJNQ1RMICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBBREMxMk1DVExfKSAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKEFEQzEyTUNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAwICovCitTRlJfOEJJVChBREMxMk1DVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDIgKi8KK1NGUl84QklUKEFEQzEyTUNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAzICovCitTRlJfOEJJVChBREMxMk1DVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDUgKi8KK1NGUl84QklUKEFEQzEyTUNUTDYpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA2ICovCitTRlJfOEJJVChBREMxMk1DVEw3KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMOCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDggKi8KK1NGUl84QklUKEFEQzEyTUNUTDkpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA5ICovCitTRlJfOEJJVChBREMxMk1DVEwxMCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTAgKi8KK1NGUl84QklUKEFEQzEyTUNUTDExKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTIpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEyICovCitTRlJfOEJJVChBREMxMk1DVEwxMyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTMgKi8KK1NGUl84QklUKEFEQzEyTUNUTDE0KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxNCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTUpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDE1ICovCisKKy8qIEFEQzEyQ1RMMCAqLworI2RlZmluZSBBREMxMlNDICAgICAgICAgICAgICAgICgweDAwMSkgICAgICAgIC8qIEFEQzEyIFN0YXJ0IENvbnZlcnNpb24gKi8KKyNkZWZpbmUgRU5DICAgICAgICAgICAgICAgICAgICAoMHgwMDIpICAgICAgICAvKiBBREMxMiBFbmFibGUgQ29udmVyc2lvbiAqLworI2RlZmluZSBBREMxMlRPVklFICAgICAgICAgICAgICgweDAwNCkgICAgICAgIC8qIEFEQzEyIFRpbWVyIE92ZXJmbG93IGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQURDMTJPVklFICAgICAgICAgICAgICAoMHgwMDgpICAgICAgICAvKiBBREMxMiBPdmVyZmxvdyBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIEFEQzEyT04gICAgICAgICAgICAgICAgKDB4MDEwKSAgICAgICAgLyogQURDMTIgT24vZW5hYmxlICovCisjZGVmaW5lIFJFRk9OICAgICAgICAgICAgICAgICAgKDB4MDIwKSAgICAgICAgLyogQURDMTIgUmVmZXJlbmNlIG9uICovCisjZGVmaW5lIFJFRjJfNVYgICAgICAgICAgICAgICAgKDB4MDQwKSAgICAgICAgLyogQURDMTIgUmVmIDA6MS41ViAvIDE6Mi41ViAqLworI2RlZmluZSBNU0MgICAgICAgICAgICAgICAgICAgICgweDA4MCkgICAgICAgIC8qIEFEQzEyIE11bHRpcGxlIFNhbXBsZUNvbnZlcnNpb24gKi8KKyNkZWZpbmUgU0hUMDAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAwICovCisjZGVmaW5lIFNIVDAxICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMSAqLworI2RlZmluZSBTSFQwMiAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0hUMDMgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAzICovCisjZGVmaW5lIFNIVDEwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMCAqLworI2RlZmluZSBTSFQxMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDEgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0hUMTIgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAyIFNlbGVjdCAyICovCisjZGVmaW5lIFNIVDEzICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMyBTZWxlY3QgMyAqLworI2RlZmluZSBNU0ggICAgICAgICAgICAgICAgICAgICgweDA4MCkKKworI2RlZmluZSBTSFQwXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xICAgICAgICAgICAgICAgICAoMSoweDEwMHUpCisjZGVmaW5lIFNIVDBfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDB1KQorI2RlZmluZSBTSFQwXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF80ICAgICAgICAgICAgICAgICAoNCoweDEwMHUpCisjZGVmaW5lIFNIVDBfNSAgICAgICAgICAgICAgICAgKDUqMHgxMDB1KQorI2RlZmluZSBTSFQwXzYgICAgICAgICAgICAgICAgICg2KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF83ICAgICAgICAgICAgICAgICAoNyoweDEwMHUpCisjZGVmaW5lIFNIVDBfOCAgICAgICAgICAgICAgICAgKDgqMHgxMDB1KQorI2RlZmluZSBTSFQwXzkgICAgICAgICAgICAgICAgICg5KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMCAgICAgICAgICAgICAgICAoMTAqMHgxMDB1KQorI2RlZmluZSBTSFQwXzExICAgICAgICAgICAgICAgICgxMSoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTIgICAgICAgICAgICAgICAgKDEyKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMyAgICAgICAgICAgICAgICAoMTMqMHgxMDB1KQorI2RlZmluZSBTSFQwXzE0ICAgICAgICAgICAgICAgICgxNCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTUgICAgICAgICAgICAgICAgKDE1KjB4MTAwdSkKKworI2RlZmluZSBTSFQxXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KQorI2RlZmluZSBTSFQxXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNCAgICAgICAgICAgICAgICAgKDQqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV81ICAgICAgICAgICAgICAgICAoNSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzYgICAgICAgICAgICAgICAgICg2KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNyAgICAgICAgICAgICAgICAgKDcqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV84ICAgICAgICAgICAgICAgICAoOCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzkgICAgICAgICAgICAgICAgICg5KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTAgICAgICAgICAgICAgICAgKDEwKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTIgICAgICAgICAgICAgICAgKDEyKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTMgICAgICAgICAgICAgICAgKDEzKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTUgICAgICAgICAgICAgICAgKDE1KjB4MTAwMHUpCisKKy8qIEFEQzEyQ1RMMSAqLworI2RlZmluZSBBREMxMkJVU1kgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEyIEJ1c3kgKi8KKyNkZWZpbmUgQ09OU0VRMCAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENPTlNFUTEgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTZXF1ZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMlNTRUwwICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEyIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMlNTRUwxICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEyIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMkRJVjAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTJESVYxICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMiAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMiAqLworI2RlZmluZSBJU1NIICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEyIEludmVydCBTYW1wbGUgSG9sZCBTaWduYWwgKi8KKyNkZWZpbmUgU0hQICAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBQdWxzZSBNb2RlICovCisjZGVmaW5lIFNIUzAgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTIgU2FtcGxlL0hvbGQgU291cmNlIDAgKi8KKyNkZWZpbmUgU0hTMSAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMSAqLworI2RlZmluZSBDU1RBUlRBREQwICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAwICovCisjZGVmaW5lIENTVEFSVEFERDEgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDEgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMiAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMiAqLworI2RlZmluZSBDU1RBUlRBREQzICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAzICovCisKKyNkZWZpbmUgQ09OU0VRXzAgICAgICAgICAgICAgICAoMCoydSkKKyNkZWZpbmUgQ09OU0VRXzEgICAgICAgICAgICAgICAoMSoydSkKKyNkZWZpbmUgQ09OU0VRXzIgICAgICAgICAgICAgICAoMioydSkKKyNkZWZpbmUgQ09OU0VRXzMgICAgICAgICAgICAgICAoMyoydSkKKyNkZWZpbmUgQURDMTJTU0VMXzAgICAgICAgICAgICAoMCo4dSkKKyNkZWZpbmUgQURDMTJTU0VMXzEgICAgICAgICAgICAoMSo4dSkKKyNkZWZpbmUgQURDMTJTU0VMXzIgICAgICAgICAgICAoMio4dSkKKyNkZWZpbmUgQURDMTJTU0VMXzMgICAgICAgICAgICAoMyo4dSkKKyNkZWZpbmUgQURDMTJESVZfMCAgICAgICAgICAgICAoMCoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfMSAgICAgICAgICAgICAoMSoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfMiAgICAgICAgICAgICAoMioweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfMyAgICAgICAgICAgICAoMyoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNCAgICAgICAgICAgICAoNCoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNSAgICAgICAgICAgICAoNSoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNiAgICAgICAgICAgICAoNioweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNyAgICAgICAgICAgICAoNyoweDIwdSkKKyNkZWZpbmUgU0hTXzAgICAgICAgICAgICAgICAgICAoMCoweDQwMHUpCisjZGVmaW5lIFNIU18xICAgICAgICAgICAgICAgICAgKDEqMHg0MDB1KQorI2RlZmluZSBTSFNfMiAgICAgICAgICAgICAgICAgICgyKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzMgICAgICAgICAgICAgICAgICAoMyoweDQwMHUpCisjZGVmaW5lIENTVEFSVEFERF8wICAgICAgICAgICAgKDAqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEgICAgICAgICAgICAoMSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMiAgICAgICAgICAgICgyKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8zICAgICAgICAgICAgKDMqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzQgICAgICAgICAgICAoNCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNSAgICAgICAgICAgICg1KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF82ICAgICAgICAgICAgKDYqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzcgICAgICAgICAgICAoNyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfOCAgICAgICAgICAgICg4KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF85ICAgICAgICAgICAgKDkqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEwICAgICAgICAgICAoMTAqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzExICAgICAgICAgICAoMTEqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEyICAgICAgICAgICAoMTIqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEzICAgICAgICAgICAoMTMqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzE0ICAgICAgICAgICAoMTQqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzE1ICAgICAgICAgICAoMTUqMHgxMDAwdSkKKworLyogQURDMTJNQ1RMeCAqLworI2RlZmluZSBJTkNIMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIElOQ0gxICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgSU5DSDIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMiAqLworI2RlZmluZSBJTkNIMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAzICovCisjZGVmaW5lIFNSRUYwICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMCAqLworI2RlZmluZSBTUkVGMSAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDEgKi8KKyNkZWZpbmUgU1JFRjIgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAyICovCisjZGVmaW5lIEVPUyAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgRW5kIG9mIFNlcXVlbmNlICovCisKKyNkZWZpbmUgSU5DSF8wICAgICAgICAgICAgICAgICAoMCkKKyNkZWZpbmUgSU5DSF8xICAgICAgICAgICAgICAgICAoMSkKKyNkZWZpbmUgSU5DSF8yICAgICAgICAgICAgICAgICAoMikKKyNkZWZpbmUgSU5DSF8zICAgICAgICAgICAgICAgICAoMykKKyNkZWZpbmUgSU5DSF80ICAgICAgICAgICAgICAgICAoNCkKKyNkZWZpbmUgSU5DSF81ICAgICAgICAgICAgICAgICAoNSkKKyNkZWZpbmUgSU5DSF82ICAgICAgICAgICAgICAgICAoNikKKyNkZWZpbmUgSU5DSF83ICAgICAgICAgICAgICAgICAoNykKKyNkZWZpbmUgSU5DSF84ICAgICAgICAgICAgICAgICAoOCkKKyNkZWZpbmUgSU5DSF85ICAgICAgICAgICAgICAgICAoOSkKKyNkZWZpbmUgSU5DSF8xMCAgICAgICAgICAgICAgICAoMTApCisjZGVmaW5lIElOQ0hfMTEgICAgICAgICAgICAgICAgKDExKQorI2RlZmluZSBJTkNIXzEyICAgICAgICAgICAgICAgICgxMikKKyNkZWZpbmUgSU5DSF8xMyAgICAgICAgICAgICAgICAoMTMpCisjZGVmaW5lIElOQ0hfMTQgICAgICAgICAgICAgICAgKDE0KQorI2RlZmluZSBJTkNIXzE1ICAgICAgICAgICAgICAgICgxNSkKKworI2RlZmluZSBTUkVGXzAgICAgICAgICAgICAgICAgICgwKjB4MTB1KQorI2RlZmluZSBTUkVGXzEgICAgICAgICAgICAgICAgICgxKjB4MTB1KQorI2RlZmluZSBTUkVGXzIgICAgICAgICAgICAgICAgICgyKjB4MTB1KQorI2RlZmluZSBTUkVGXzMgICAgICAgICAgICAgICAgICgzKjB4MTB1KQorI2RlZmluZSBTUkVGXzQgICAgICAgICAgICAgICAgICg0KjB4MTB1KQorI2RlZmluZSBTUkVGXzUgICAgICAgICAgICAgICAgICg1KjB4MTB1KQorI2RlZmluZSBTUkVGXzYgICAgICAgICAgICAgICAgICg2KjB4MTB1KQorI2RlZmluZSBTUkVGXzcgICAgICAgICAgICAgICAgICg3KjB4MTB1KQorCisvKiBBREMxMklWIERlZmluaXRpb25zICovCisjZGVmaW5lIEFEQzEySVZfTk9ORSAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMk9WSUZHICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMk9WSUZHICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJUT1ZJRkcgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTJUT1ZJRkcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzAgICAgICAoMHgwMDA2KSAgICAgICAvKiBBREMxMklGRzAgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMklGRzEgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzIgICAgICAoMHgwMDBBKSAgICAgICAvKiBBREMxMklGRzIgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzMgICAgICAoMHgwMDBDKSAgICAgICAvKiBBREMxMklGRzMgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzQgICAgICAoMHgwMDBFKSAgICAgICAvKiBBREMxMklGRzQgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzUgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMklGRzUgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzYgICAgICAoMHgwMDEyKSAgICAgICAvKiBBREMxMklGRzYgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzcgICAgICAoMHgwMDE0KSAgICAgICAvKiBBREMxMklGRzcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzggICAgICAoMHgwMDE2KSAgICAgICAvKiBBREMxMklGRzggKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzkgICAgICAoMHgwMDE4KSAgICAgICAvKiBBREMxMklGRzkgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEwICAgICAoMHgwMDFBKSAgICAgICAvKiBBREMxMklGRzEwICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMSAgICAgKDB4MDAxQykgICAgICAgLyogQURDMTJJRkcxMSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTIgICAgICgweDAwMUUpICAgICAgIC8qIEFEQzEySUZHMTIgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEzICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMklGRzEzICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxNCAgICAgKDB4MDAyMikgICAgICAgLyogQURDMTJJRkcxNCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTUgICAgICgweDAwMjQpICAgICAgIC8qIEFEQzEySUZHMTUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgQkFTSUNUSU1FUl9WRUNUT1IgICAgICAgKDAgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTAgQmFzaWMgVGltZXIgKi8KKy8qI2RlZmluZSBCQVNJQ1RJTUVSX0lTUihmdW5jKSAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDAiKSAgKi8gLyogMHhGRkUwIEJhc2ljIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDEiKSAgKi8gLyogMHhGRkUyIFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNBUlQxVFhfVkVDVE9SICAgICAgICAgKDIgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgVVNBUlQgMSBUcmFuc21pdCAqLworLyojZGVmaW5lIFVTQVJUMVRYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMiIpICAqLyAvKiAweEZGRTQgVVNBUlQgMSBUcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNBUlQxUlhfVkVDVE9SICAgICAgICAgKDMgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTYgVVNBUlQgMSBSZWNlaXZlICovCisvKiNkZWZpbmUgVVNBUlQxUlhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAzIikgICovIC8qIDB4RkZFNiBVU0FSVCAxIFJlY2VpdmUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICg0ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU4IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNCIpICAqLyAvKiAweEZGRTggUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkExX1ZFQ1RPUiAgICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQSBUaW1lciBBIENDMS0yLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNSIpICAqLyAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICg2ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQURDMTJfVkVDVE9SICAgICAgICAgICAgKDcgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUUgQURDICovCisvKiNkZWZpbmUgQURDMTJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA3IikgICovIC8qIDB4RkZFRSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFRYX1ZFQ1RPUiAgICAgICAgICg4ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFVTQVJUIDAgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0FSVDBUWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFVTQVJUIDAgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFJYX1ZFQ1RPUiAgICAgICAgICg5ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQVJUMFJYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVVNBUlQgMCBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIENPTVBBUkFUT1JBX1ZFQ1RPUiAgICAgICgxMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLworLyojZGVmaW5lIENPTVBBUkFUT1JBX0lTUihmdW5jKSAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMSIpICAqLyAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIxX1ZFQ1RPUiAgICAgICAgICAoMTIgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGOCBUaW1lciBCIENDMS02LCBUQiAqLworLyojZGVmaW5lIFRJTUVSQjFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMiIpICAqLyAvKiAweEZGRjggVGltZXIgQiBDQzEtNiwgVEIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQjBfVkVDVE9SICAgICAgICAgICgxMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZBIFRpbWVyIEIgQ0MwICovCisvKiNkZWZpbmUgVElNRVJCMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEzIikgICovIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRW5kIG9mIE1vZHVsZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogZXh0ZXJuICJDIiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX21zcDQzMHg0NHggKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0N3gzLmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDQ3eDMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzhjZGQxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0N3gzLmgKQEAgLTAsMCArMSwxMzM5IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHg0N3gzIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuMgorKgorKiBSZXYuIDEuMCwgU2V0dXAKKyogUmV2LiAxLjEsIGFkZGVkIEZDVEw0IFJlZ2lzdGVyCisqIFJldi4gMS4yLCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4NDd4MworI2RlZmluZSBfX21zcDQzMHg0N3gzCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEZsYXNoIEFjY2VzcyBWaW9sYXRpb24gSW50ZXJydXB0IEVuYWJsZSAqLworCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdEVCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgUE9SSUZHICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBQb3dlciBPbiBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSU1RJRkcgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlc2V0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBGbGFnICovCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVUMwSUUgICAgICAgICAgICAgICAgICBJRTIKKyNkZWZpbmUgVUNBMFJYSUUgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVUNBMFRYSUUgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVUNCMFJYSUUgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVUNCMFRYSUUgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgVUMwSUZHICAgICAgICAgICAgICAgICBJRkcyCisjZGVmaW5lIFVDQTBSWElGRyAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTBUWElGRyAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjBSWElGRyAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjBUWElGRyAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJUSUZHICAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKFVDMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIDEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVQ0ExUlhJRSAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0ExVFhJRSAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IxUlhJRSAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IxVFhJRSAgICAgICAgICAgICAgICgweDA4KQorCitTRlJfOEJJVChVQzFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSVNDSSAxIEludGVycnVwdCBGbGFncyAqLworI2RlZmluZSBVQ0ExUlhJRkcgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0ExVFhJRkcgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IxUlhJRkcgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IxVFhJRkcgICAgICAgICAgICAgICgweDA4KQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJBU0lDIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CVF9fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChCVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiQlQiICovCisjZGVmaW5lIEJUSVAwICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEJUSVAxICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIEJUSVAyICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEJURlJGUTAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJURlJGUTEgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEJURElWICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkNMSzIgPSBBQ0xLOjI1NiAqLworI2RlZmluZSBCVEhPTEQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEJUMSBpcyBoZWxkIGlmIHRoaXMgYml0IGlzIHNldCAqLworI2RlZmluZSBCVFNTRUwgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIGZCVCA9IGZNQ0xLIChtYWluIGNsb2NrKSAqLworCitTRlJfOEJJVChCVENOVDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMSAqLworU0ZSXzhCSVQoQlRDTlQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDIgKi8KKworLyogRnJlcXVlbmN5IG9mIHRoZSBCVENOVDIgY29kZWQgd2l0aCBCaXQgNSBhbmQgNyBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9BQ0xLICAgICAgICAgICgweDAwKQorI2RlZmluZSBCVF9mQ0xLMl9BQ0xLX0RJVjI1NiAgIChCVERJVikKKyNkZWZpbmUgQlRfZkNMSzJfTUNMSyAgICAgICAgICAoQlRTU0VMKQorCisvKiBJbnRlcnJ1cHQgaW50ZXJ2YWwgdGltZSBmSU5UIGNvZGVkIHdpdGggQml0cyAwLTIgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmSU5UID0gZkNMSzI6MiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNCAgICAgICAgICAoQlRJUDApICAgICAgICAvKiBmSU5UID0gZkNMSzI6NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY4ICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjE2ICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjE2ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjMyICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjMyICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjY0ICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjY0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjEyOCAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogZklOVCA9IGZDTEsyOjEyOCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyNTYgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogZklOVCA9IGZDTEsyOjI1NiAqLworLyogRnJlcXVlbmN5IG9mIExDRCBjb2RlZCB3aXRoIEJpdHMgMy00ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMzIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEX0RJVjY0ICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEX0RJVjEyOCAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYyNTYgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZBQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMUsgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfNTEyICAgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF8yNTYgICAgICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF8xMjggICAgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9Zk1DTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8zMUsgICAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiBmTUNMSzozMiAqLworI2RlZmluZSBCVF9mTENEXzE1XzVLICAgICAgIChCVFNTRUwrQlRGUkZRMCkgICAgICAgICAgLyogZk1DTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF83XzhLICAgICAgICAoQlRTU0VMK0JURlJGUTErQlRGUkZRMCkgIC8qIGZNQ0xLOjI1NiAqLworLyogd2l0aCBhc3N1bWVkIHZsdWVzIG9mIGZBQ0xLPTMyS0h6LCBmTUNMSz0xTUh6ICovCisvKiBmQlQ9ZkFDTEsgaXMgdGhvdWdodCBmb3IgbG9uZ2VyIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX0FETFlfMF8wNjQgICAgICAgICAgKDB4MDApICAgICAgICAgLyogMC4wNjRtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzEyNSAgICAgICAgICAoQlRJUDApICAgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzI1ICAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiAwLjI1bXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzUgICAgICAgICAgICAoQlRJUDErQlRJUDApICAvKiAwLjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xICAgICAgICAgICAgICAoQlRJUDIpICAgICAgICAvKiAxbXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yICAgICAgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiAybXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV80ICAgICAgICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiA0bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV84ICAgICAgICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIDhtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzE2ICAgICAgICAgICAgIChCVERJVikgICAgICAgIC8qIDE2bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzMyICAgICAgICAgICAgIChCVERJVitCVElQMCkgIC8qIDMybXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzY0ICAgICAgICAgICAgIChCVERJVitCVElQMSkgIC8qIDY0bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEyNSAgICAgICAgIChCVERJVitCVElQMStCVElQMCkgICAgICAgLyogMTI1bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjUwICAgICAgICAgICAgKEJURElWK0JUSVAyKSAgLyogMjUwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNTAwICAgICAgICAgKEJURElWK0JUSVAyK0JUSVAwKSAgICAgICAvKiA1MDBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDEpICAgICAgIC8qIDEwMDBtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMStCVElQMCkgLyogMjAwMG1zICAgICAiICovCisvKiBmQ0xLMj1mTUNMSyAoMU1IeikgaXMgdGhvdWdodCBmb3Igc2hvcnQgaW50ZXJ2YWwgdGltZXMgKi8KKy8qIHRoZSB0aW1pbmcgZm9yIHNob3J0IGludGVydmFscyBpcyBtb3JlIHByZWNpc2UgdGhhbiBBQ0xLICovCisvKiBOT1RFICovCisvKiBCZSBzdXJlIHRoYXQgdGhlIFNDRlFDVEwtUmVnaXN0ZXIgaXMgc2V0IHRvIDAxRmggc28gdGhhdCBmTUNMSz0xTUh6ICovCisvKiBUb28gbG93IGludGVydmFsIHRpbWUgcmVzdWx0cyBpbiBpbnRlcnJ1cHRzIHRvbyBmcmVxdWVudCBmb3IgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUhICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDIgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogMC4wMDJtcyBpbnRlcnZhbCAgICAgICAqKiogaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwNCAgICAgICAgICAoQlRTU0VMK0JUSVAwKSAvKiAwLjAwNG1zICAgICIgICAgICAgICAgICoqKiB0b28gc2hvcnQgZm9yICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDggICAgICAgICAgKEJUU1NFTCtCVElQMSkgLyogMC4wMDhtcyAgICAiICAgICAgICAgICAqKiogaW50ZXJydXB0ICovCisjZGVmaW5lIEJUX01ETFlfMF8wMTYgICAgICAgKEJUU1NFTCtCVElQMStCVElQMCkgICAgICAvKiAwLjAxNm1zICAgICIgICAgICAgICAgICoqKiBoYW5kbGluZyAqLworI2RlZmluZSBCVF9NRExZXzBfMDMyICAgICAgICAgIChCVFNTRUwrQlRJUDIpIC8qIDAuMDMybXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMDY0ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDApICAgICAgLyogMC4wNjRtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8xMjUgICAgICAgKEJUU1NFTCtCVElQMitCVElQMSkgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzI1ICAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxK0JUSVAwKS8qIDAuMjVtcyAgICAgIiAqLworCisvKiBSZXNldC9Ib2xkIGNvZGVkIHdpdGggQml0cyA2LTcgaW4gQlQoMSlDVEwgKi8KKy8qIHRoaXMgaXMgZm9yIEJUICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxICAgICAgICAoQlRSRVNFVCkgICAgICAgICAgIC8qIEJUQ05UMSBpcyByZXNldCB3aGlsZSBCVFJFU0VUIGlzIHNldCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMV8yICAgICAgKEJUUkVTRVQrQlRESVYpICAgICAvKiBCVENOVDEgLkFORC4gQlRDTlQyIGFyZSByZXNldCB3aGlsZSB+IGlzIHNldCAqLworLyogdGhpcyBpcyBmb3IgQlQxICovCisjZGVmaW5lIEJUSE9MRF9DTlQxICAgICAgICAgICAgKEJUSE9MRCkgICAgICAgLyogQlRDTlQxIGlzIGhlbGQgd2hpbGUgQlRIT0xEIGlzIHNldCAqLworI2RlZmluZSBCVEhPTERfQ05UMV8yICAgICAgICAgIChCVEhPTEQrQlRESVYpIC8qIEJUMUNOVDEgLkFORC4gQlQxQ05UMiBhcmUgaGVsZCB3aGlsZSB+IGlzIHNldCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiAjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgMHg4MCAqLworLyogI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgIDB4ODAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NPTVBBX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTAgOiAxICovCisjZGVmaW5lIFAyQ0ExICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTEgOiAxICovCisjZGVmaW5lIENBQ1RMMjQgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIENBQ1RMMjUgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIENBQ1RMMjYgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIENBQ1RMMjcgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgQ0FQRDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjAgKi8KKyNkZWZpbmUgQ0FQRDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjEgKi8KKyNkZWZpbmUgQ0FQRDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjIgKi8KKyNkZWZpbmUgQ0FQRDMgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjMgKi8KKyNkZWZpbmUgQ0FQRDQgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjQgKi8KKyNkZWZpbmUgQ0FQRDUgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjUgKi8KKyNkZWZpbmUgQ0FQRDYgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjYgKi8KKyNkZWZpbmUgQ0FQRDcgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0gyX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworU0ZSXzE2QklUKEZDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgNCAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgRUVJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBFbmFibGUgRXJhc2UgSW50ZXJydXB0cyAqLworI2RlZmluZSBFRUlFWCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEVuYWJsZSBFbWVyZ2VuY3kgSW50ZXJydXB0IEV4aXQgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworI2RlZmluZSBMT0NLQSAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNlZ21lbnQgQSBMb2NrIGJpdDogcmVhZCA9IDEgLSBTZWdtZW50IGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBGQUlMICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIExhc3QgUHJvZ3JhbSBvciBFcmFzZSBmYWlsZWQgKi8KKworI2RlZmluZSBNR1IwICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIE1hcmdpbmFsIHJlYWQgMCBtb2RlLiAqLworI2RlZmluZSBNR1IxICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE1hcmdpbmFsIHJlYWQgMSBtb2RlLiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNZU1RFTSBDTE9DSywgRkxMKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxMUExVU19fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0NGSTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAwICovCisjZGVmaW5lIEZOXzIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMS40LTEyTUh6Ki8KKyNkZWZpbmUgRk5fMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBmRENPQ0xLID0gICAyLjItMTdNaHoqLworI2RlZmluZSBGTl80ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDMuMi0yNU1oeiovCisjZGVmaW5lIEZOXzggICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkRDT0NMSyA9ICAgICA1LTQwTWh6Ki8KKyNkZWZpbmUgRkxMRDAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMCAqLworI2RlZmluZSBGTExEMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAxICovCisKKyNkZWZpbmUgRkxMRF8xICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDEgKi8KKyNkZWZpbmUgRkxMRF8yICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDIgKi8KKyNkZWZpbmUgRkxMRF80ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDQgKi8KKyNkZWZpbmUgRkxMRF84ICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDggKi8KKworU0ZSXzhCSVQoU0NGSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAxICovCitTRlJfOEJJVChTQ0ZRQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCisvKiBTeXN0ZW0gY2xvY2sgZnJlcXVlbmN5IHZhbHVlcyBmTUNMSyBjb2RlZCB3aXRoIEJpdHMgMC02IGluIFNDRlFDVEwgKi8KKy8qICNkZWZpbmUgU0NGUV8zMksgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgZk1DTEs9MSpmQUNMSyAgICAgICBvbmx5IGEgcmFuZ2UgZnJvbSAqLworI2RlZmluZSBTQ0ZRXzY0SyAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIGZNQ0xLPTIqZkFDTEsgICAgICAgICAgMSsxIHRvIDEyNysxIGlzIHBvc3NpYmxlICovCisjZGVmaW5lIFNDRlFfMTI4SyAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogZk1DTEs9NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzI1NksgICAgICAgICAgICAgICgweDA3KSAgICAgICAgIC8qIGZNQ0xLPTgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV81MTJLICAgICAgICAgICAgICAoMHgwRikgICAgICAgICAvKiBmTUNMSz0xNipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzFNICAgICAgICAgICAgICAgICgweDFGKSAgICAgICAgIC8qIGZNQ0xLPTMyKmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMk0gICAgICAgICAgICAgICAgKDB4M0YpICAgICAgICAgLyogZk1DTEs9NjQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV80TSAgICAgICAgICAgICAgICAoMHg3RikgICAgICAgICAvKiBmTUNMSz0xMjgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV9NICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2R1bGF0aW9uIERpc2FibGUgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAwICovCisjZGVmaW5lIERDT0YgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRENPIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgTEZPRiAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMb3cgRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFPRiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgMSBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMk9GICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciAyIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgT1NDQ0FQMCAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBPU0NDQVAxICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIFhUU19GTEwgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogMTogU2VsZWN0cyBoaWdoLWZyZXEuIG9zY2lsbGF0b3IgKi8KKyNkZWZpbmUgRENPUExVUyAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBEQ08rIEVuYWJsZSAqLworCisjZGVmaW5lIFhDQVAwUEYgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMHBmICovCisjZGVmaW5lIFhDQVAxMFBGICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTBwZiAqLworI2RlZmluZSBYQ0FQMTRQRiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE0cGYgKi8KKyNkZWZpbmUgWENBUDE4UEYgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxOHBmICovCisjZGVmaW5lIE9TQ0NBUF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMHBmICovCisjZGVmaW5lIE9TQ0NBUF8xICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTBwZiAqLworI2RlZmluZSBPU0NDQVBfMiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE0cGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxOHBmICovCisKK1NGUl84QklUKEZMTF9DVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEwrIENvbnRyb2wgMSAqLworI2RlZmluZSBGTExfRElWMCAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyAwICovCisjZGVmaW5lIEZMTF9ESVYxICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIDEgKi8KKyNkZWZpbmUgU0VMUyAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBQZXJpcGhlcmFsIE1vZHVsZSBDbG9jayBTb3VyY2UgKDA6IERDTywgMTogWFQyKSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgWFQyT0ZGICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDIgKFhUMikgZGlzYWJsZSAqLworI2RlZmluZSBTTUNMS09GRiAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBlcmlwaGVyYWwgTW9kdWxlIENsb2NrIChTTUNMSykgZGlzYWJsZSAqLworCisjZGVmaW5lIEZMTF9ESVZfMSAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDEgKi8KKyNkZWZpbmUgRkxMX0RJVl8yICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMiAqLworI2RlZmluZSBGTExfRElWXzQgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA0ICovCisjZGVmaW5lIEZMTF9ESVZfOCAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDggKi8KKworI2RlZmluZSBTRUxNX0RDTyAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNlbGVjdCBEQ08gZm9yIENQVSBNQ0xLICovCisjZGVmaW5lIFNFTE1fWFQyICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogU2VsZWN0IFhUMiBmb3IgQ1BVIE1DTEsgKi8KKyNkZWZpbmUgU0VMTV9BICAgICAgICAgICAgICAgICAoMHgxOCkgICAgICAgICAvKiBTZWxlY3QgQSAoZnJvbSBMRlhUMSkgZm9yIENQVSBNQ0xLICovCisKK1NGUl84QklUKEZMTF9DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEwrIENvbnRyb2wgMiAqLworCisjZGVmaW5lIFhUMlMwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgKi8KKyNkZWZpbmUgWFQyUzEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiAqLworCisjZGVmaW5lIFhUMlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgOiAwLjQgLSAxIE1IeiAqLworI2RlZmluZSBYVDJTXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgWFQyIDogMSAtIDQgTUh6ICovCisjZGVmaW5lIFhUMlNfMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAyIGZvciBYVDIgOiAyIC0gMTYgTUh6ICovCisjZGVmaW5lIFhUMlNfMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTW9kZSAzIGZvciBYVDIgOiBEaWdpdGFsIGlucHV0IHNpZ25hbCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAweDAyICovCisvKiAjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgMHgwMiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIExDRF9BCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19MQ0RfQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChMQ0RBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEX0EgQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBMQ0RPTiAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBMQ0RTT04gICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBMQ0RNWDAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBMQ0RNWDEgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBMQ0RGUkVRMCAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBMQ0RGUkVRMSAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBMQ0RGUkVRMiAgICAgICAgICAgICAgICgweDgwKQorLyogRGlzcGxheSBtb2RlcyBjb2RlZCB3aXRoIEJpdHMgMi00ICovCisjZGVmaW5lIExDRFNUQVRJQyAgICAgICAgICAgICAgKExDRFNPTikKKyNkZWZpbmUgTENEMk1VWCAgICAgICAgICAgICAgICAoTENETVgwK0xDRFNPTikKKyNkZWZpbmUgTENEM01VWCAgICAgICAgICAgICAgICAoTENETVgxK0xDRFNPTikKKyNkZWZpbmUgTENENE1VWCAgICAgICAgICAgICAgICAoTENETVgxK0xDRE1YMCtMQ0RTT04pCisvKiBGcmVxdWVuY3kgc2VsZWN0IGNvZGUgd2l0aCBCaXRzIDUtNyAqLworI2RlZmluZSBMQ0RGUkVRXzMyICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgMzIgKi8KKyNkZWZpbmUgTENERlJFUV82NCAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDY0ICovCisjZGVmaW5lIExDREZSRVFfOTYgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSA5NiAqLworI2RlZmluZSBMQ0RGUkVRXzEyOCAgICAgICAgICAgICgweDYwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgMTI4ICovCisjZGVmaW5lIExDREZSRVFfMTkyICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSAxOTIgKi8KKyNkZWZpbmUgTENERlJFUV8yNTYgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDI1NiAqLworI2RlZmluZSBMQ0RGUkVRXzM4NCAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgMzg0ICovCisjZGVmaW5lIExDREZSRVFfNTEyICAgICAgICAgICAgKDB4RTApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSA1MTIgKi8KKworU0ZSXzhCSVQoTENEQVBDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIFBvcnQgQ29udHJvbCBSZWdpc3RlciAwICovCisjZGVmaW5lIExDRFMwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTENEIFNlZ21lbnQgIDAgdG8gIDMgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTNCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIExDRCBTZWdtZW50ICA0IHRvICA3IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzggICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBMQ0QgU2VnbWVudCAgOCB0byAxMSBFbmFibGUuICovCisjZGVmaW5lIExDRFMxMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTENEIFNlZ21lbnQgMTIgdG8gMTUgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMTYgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDE2IHRvIDE5IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzIwICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBMQ0QgU2VnbWVudCAyMCB0byAyMyBFbmFibGUuICovCisjZGVmaW5lIExDRFMyNCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTENEIFNlZ21lbnQgMjQgdG8gMjcgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMjggICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDI4IHRvIDMxIEVuYWJsZS4gKi8KKworU0ZSXzhCSVQoTENEQVBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIFBvcnQgQ29udHJvbCBSZWdpc3RlciAxICovCisjZGVmaW5lIExDRFMzMiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTENEIFNlZ21lbnQgMzIgdG8gMzUgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMzYgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDM2IHRvIDM5IEVuYWJsZS4gKi8KKworU0ZSXzhCSVQoTENEQVZDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIFZvbHRhZ2UgQ29udHJvbCBSZWdpc3RlciAwICovCisjZGVmaW5lIExDRDJCICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogU2VsZWN0cyAxLzIgYmlhcy4gKi8KKyNkZWZpbmUgVkxDRFJFRjAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTZWxlY3RzIHJlZmVyZW5jZSB2b2x0YWdlIGZvciByZWd1bGF0ZWQgY2hhcmdlIHB1bXA6IDAgKi8KKyNkZWZpbmUgVkxDRFJFRjEgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZWxlY3RzIHJlZmVyZW5jZSB2b2x0YWdlIGZvciByZWd1bGF0ZWQgY2hhcmdlIHB1bXA6IDEgKi8KKyNkZWZpbmUgTENEQ1BFTiAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBMQ0QgVm9sdGFnZSBDaGFyZ2UgUHVtcCBFbmFibGUuICovCisjZGVmaW5lIFZMQ0RFWFQgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogU2VsZWN0IGV4dGVybmFsIHNvdXJjZSBmb3IgVkxDRC4gKi8KKyNkZWZpbmUgTENEUkVYVCAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBTZWxlY3RzIGV4dGVybmFsIGNvbm5lY3Rpb25zIGZvciBMQ0QgbWlkIHZvbHRhZ2VzLiAqLworI2RlZmluZSBMQ0RSMDNFWFQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFNlbGVjdHMgZXh0ZXJuYWwgY29ubmVjdGlvbiBmb3IgbG93ZXN0IExDRCB2b2x0YWdlLiAqLworCisvKiBSZWZlcmVuY2Ugdm9sdGFnZSBzb3VyY2Ugc2VsZWN0IGZvciB0aGUgcmVndWxhdGVkIGNoYXJnZSBwdW1wICovCisjZGVmaW5lIFZMQ0RSRUZfMCAgICAgICAgICAgICAgKDA8PDEpICAgICAgICAgLyogSW50ZXJuYWwgKi8KKyNkZWZpbmUgVkxDRFJFRl8xICAgICAgICAgICAgICAoMTw8MSkgICAgICAgICAvKiBFeHRlcm5hbCAqLworI2RlZmluZSBWTENEUkVGXzIgICAgICAgICAgICAgICgyPDwxKSAgICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFZMQ0RSRUZfMyAgICAgICAgICAgICAgKDM8PDEpICAgICAgICAgLyogUmVzZXJ2ZWQgKi8KKworU0ZSXzhCSVQoTENEQVZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIFZvbHRhZ2UgQ29udHJvbCBSZWdpc3RlciAxICovCisjZGVmaW5lIFZMQ0QwICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVkxDRCBzZWxlY3Q6IDAgKi8KKyNkZWZpbmUgVkxDRDEgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBWTENEIHNlbGVjdDogMSAqLworI2RlZmluZSBWTENEMiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFZMQ0Qgc2VsZWN0OiAyICovCisjZGVmaW5lIFZMQ0QzICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVkxDRCBzZWxlY3Q6IDMgKi8KKworLyogQ2hhcmdlIHB1bXAgdm9sdGFnZSBzZWxlY3Rpb25zICovCisjZGVmaW5lIFZMQ0RfMCAgICAgICAgICAgICAgICAgKDA8PDEpICAgICAgICAgLyogQ2hhcmdlIHB1bXAgZGlzYWJsZWQgKi8KKyNkZWZpbmUgVkxDRF8xICAgICAgICAgICAgICAgICAoMTw8MSkgICAgICAgICAvKiBWTENEID0gMi42MFYgKi8KKyNkZWZpbmUgVkxDRF8yICAgICAgICAgICAgICAgICAoMjw8MSkgICAgICAgICAvKiBWTENEID0gMi42NlYgKi8KKyNkZWZpbmUgVkxDRF8zICAgICAgICAgICAgICAgICAoMzw8MSkgICAgICAgICAvKiBWTENEID0gMi43MlYgKi8KKyNkZWZpbmUgVkxDRF80ICAgICAgICAgICAgICAgICAoNDw8MSkgICAgICAgICAvKiBWTENEID0gMi43OFYgKi8KKyNkZWZpbmUgVkxDRF81ICAgICAgICAgICAgICAgICAoNTw8MSkgICAgICAgICAvKiBWTENEID0gMi44NFYgKi8KKyNkZWZpbmUgVkxDRF82ICAgICAgICAgICAgICAgICAoNjw8MSkgICAgICAgICAvKiBWTENEID0gMi45MFYgKi8KKyNkZWZpbmUgVkxDRF83ICAgICAgICAgICAgICAgICAoNzw8MSkgICAgICAgICAvKiBWTENEID0gMi45NlYgKi8KKyNkZWZpbmUgVkxDRF84ICAgICAgICAgICAgICAgICAoODw8MSkgICAgICAgICAvKiBWTENEID0gMy4wMlYgKi8KKyNkZWZpbmUgVkxDRF85ICAgICAgICAgICAgICAgICAoOTw8MSkgICAgICAgICAvKiBWTENEID0gMy4wOFYgKi8KKyNkZWZpbmUgVkxDRF8xMCAgICAgICAgICAgICAgICAoMTA8PDEpICAgICAgICAvKiBWTENEID0gMy4xNFYgKi8KKyNkZWZpbmUgVkxDRF8xMSAgICAgICAgICAgICAgICAoMTE8PDEpICAgICAgICAvKiBWTENEID0gMy4yMFYgKi8KKyNkZWZpbmUgVkxDRF8xMiAgICAgICAgICAgICAgICAoMTI8PDEpICAgICAgICAvKiBWTENEID0gMy4yNlYgKi8KKyNkZWZpbmUgVkxDRF8xMyAgICAgICAgICAgICAgICAoMTI8PDEpICAgICAgICAvKiBWTENEID0gMy4zMlYgKi8KKyNkZWZpbmUgVkxDRF8xNCAgICAgICAgICAgICAgICAoMTM8PDEpICAgICAgICAvKiBWTENEID0gMy4zOFYgKi8KKyNkZWZpbmUgVkxDRF8xNSAgICAgICAgICAgICAgICAoMTU8PDEpICAgICAgICAvKiBWTENEID0gMy40NFYgKi8KKworI2RlZmluZSBWTENEX0RJU0FCTEVEICAgICAgICAgICgwPDwxKSAgICAgICAgIC8qIENoYXJnZSBwdW1wIGRpc2FibGVkICovCisjZGVmaW5lIFZMQ0RfMl82MCAgICAgICAgICAgICAgKDE8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNjBWICovCisjZGVmaW5lIFZMQ0RfMl82NiAgICAgICAgICAgICAgKDI8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNjZWICovCisjZGVmaW5lIFZMQ0RfMl83MiAgICAgICAgICAgICAgKDM8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNzJWICovCisjZGVmaW5lIFZMQ0RfMl83OCAgICAgICAgICAgICAgKDQ8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNzhWICovCisjZGVmaW5lIFZMQ0RfMl84NCAgICAgICAgICAgICAgKDU8PDEpICAgICAgICAgLyogVkxDRCA9IDIuODRWICovCisjZGVmaW5lIFZMQ0RfMl85MCAgICAgICAgICAgICAgKDY8PDEpICAgICAgICAgLyogVkxDRCA9IDIuOTBWICovCisjZGVmaW5lIFZMQ0RfMl85NiAgICAgICAgICAgICAgKDc8PDEpICAgICAgICAgLyogVkxDRCA9IDIuOTZWICovCisjZGVmaW5lIFZMQ0RfM18wMiAgICAgICAgICAgICAgKDg8PDEpICAgICAgICAgLyogVkxDRCA9IDMuMDJWICovCisjZGVmaW5lIFZMQ0RfM18wOCAgICAgICAgICAgICAgKDk8PDEpICAgICAgICAgLyogVkxDRCA9IDMuMDhWICovCisjZGVmaW5lIFZMQ0RfM18xNCAgICAgICAgICAgICAgKDEwPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMTRWICovCisjZGVmaW5lIFZMQ0RfM18yMCAgICAgICAgICAgICAgKDExPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMjBWICovCisjZGVmaW5lIFZMQ0RfM18yNiAgICAgICAgICAgICAgKDEyPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMjZWICovCisjZGVmaW5lIFZMQ0RfM18zMiAgICAgICAgICAgICAgKDEyPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMzJWICovCisjZGVmaW5lIFZMQ0RfM18zOCAgICAgICAgICAgICAgKDEzPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMzhWICovCisjZGVmaW5lIFZMQ0RfM180NCAgICAgICAgICAgICAgKDE1PDwxKSAgICAgICAgLyogVkxDRCA9IDMuNDRWICovCisKKyNkZWZpbmUgTENETUVNXyAgICAgICAgICAgICAgICAoMHgwMDkxKSAgICAgICAvKiBMQ0QgTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoTENETUVNXykgICAgICAvKiBMQ0QgTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBMQ0RNRU1fKSAvKiBMQ0QgTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoTENETTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMSAqLworU0ZSXzhCSVQoTENETTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMiAqLworU0ZSXzhCSVQoTENETTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMyAqLworU0ZSXzhCSVQoTENETTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNCAqLworU0ZSXzhCSVQoTENETTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNSAqLworU0ZSXzhCSVQoTENETTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNiAqLworU0ZSXzhCSVQoTENETTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNyAqLworU0ZSXzhCSVQoTENETTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOCAqLworU0ZSXzhCSVQoTENETTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOSAqLworU0ZSXzhCSVQoTENETTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTAgKi8KK1NGUl84QklUKExDRE0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDExICovCitTRlJfOEJJVChMQ0RNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMiAqLworU0ZSXzhCSVQoTENETTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTMgKi8KK1NGUl84QklUKExDRE0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE0ICovCitTRlJfOEJJVChMQ0RNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNSAqLworU0ZSXzhCSVQoTENETTE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTYgKi8KK1NGUl84QklUKExDRE0xNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE3ICovCitTRlJfOEJJVChMQ0RNMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxOCAqLworU0ZSXzhCSVQoTENETTE5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTkgKi8KK1NGUl84QklUKExDRE0yMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIwICovCisKKyNkZWZpbmUgTENETUEgICAgICAgICAgICAgICAgICAoTENETTEwKSAgICAgICAvKiBMQ0QgTWVtb3J5IEEgKi8KKyNkZWZpbmUgTENETUIgICAgICAgICAgICAgICAgICAoTENETTExKSAgICAgICAvKiBMQ0QgTWVtb3J5IEIgKi8KKyNkZWZpbmUgTENETUMgICAgICAgICAgICAgICAgICAoTENETTEyKSAgICAgICAvKiBMQ0QgTWVtb3J5IEMgKi8KKyNkZWZpbmUgTENETUQgICAgICAgICAgICAgICAgICAoTENETTEzKSAgICAgICAvKiBMQ0QgTWVtb3J5IEQgKi8KKyNkZWZpbmUgTENETUUgICAgICAgICAgICAgICAgICAoTENETTE0KSAgICAgICAvKiBMQ0QgTWVtb3J5IEUgKi8KKyNkZWZpbmUgTENETUYgICAgICAgICAgICAgICAgICAoTENETTE1KSAgICAgICAvKiBMQ0QgTWVtb3J5IEYgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBIQVJEV0FSRSBNVUxUSVBMSUVSIDMyQml0CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19NUFkzMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChNUFlfQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE1QWVNfQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQvT3BlcmFuZCAxIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE1BQ19CKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKEJ5dGUgQWNjZXNzKSAqLworU0ZSXzhCSVQoTUFDU19CKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKEJ5dGUgQWNjZXNzKSAqLworU0ZSXzhCSVQoT1AyX0IpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9wZXJhbmQgMiAoQnl0ZSBBY2Nlc3MpICovCitTRlJfMTZCSVQoTVBZKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTVBZUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQ1MpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChPUDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl8xNkJJVChSRVNMTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl8xNkJJVChSRVNISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgSGlnaCBXb3JkICovCitTRlJfMTZCSVQoU1VNRVhUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VtIEV4dGVuZCAqLworCitTRlJfOEJJVChNUFkzMkxfQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIG11bHRpcGx5IC0gbG93IHdvcmQgKEJ5dGUgQWNjZXNzKSAqLworU0ZSXzhCSVQoTVBZMzJIX0IpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSAtIGhpZ2ggd29yZCAoQnl0ZSBBY2Nlc3MpICovCitTRlJfOEJJVChNUFlTMzJMX0IpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIHNpZ25lZCBtdWx0aXBseSAtIGxvdyB3b3JkIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE1QWVMzMkhfQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gc2lnbmVkIG11bHRpcGx5IC0gaGlnaCB3b3JkIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE1BQzMyTF9CKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGxvdyB3b3JkIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE1BQzMySF9CKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAoQnl0ZSBBY2Nlc3MpICovCitTRlJfOEJJVChNQUNTMzJMX0IpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIHNpZ25lZCBtdWx0aXBseSBhY2N1bXVsYXRlIC0gbG93IHdvcmQgKEJ5dGUgQWNjZXNzKSAqLworU0ZSXzhCSVQoTUFDUzMySF9CKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAoQnl0ZSBBY2Nlc3MpICovCitTRlJfOEJJVChPUDJMX0IpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMiAtIGxvdyB3b3JkIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE9QMkhfQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAyIC0gaGlnaCB3b3JkIChCeXRlIEFjY2VzcykgKi8KK1NGUl8xNkJJVChNUFkzMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE1QWTMySCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSAtIGhpZ2ggd29yZCAqLworU0ZSXzE2QklUKE1QWVMzMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE1QWVMzMkgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgLSBoaWdoIHdvcmQgKi8KK1NGUl8xNkJJVChNQUMzMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGxvdyB3b3JkICovCitTRlJfMTZCSVQoTUFDMzJIKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIG11bHRpcGx5IGFjY3VtdWxhdGUgLSBoaWdoIHdvcmQgKi8KK1NGUl8xNkJJVChNQUNTMzJMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gc2lnbmVkIG11bHRpcGx5IGFjY3VtdWxhdGUgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE1BQ1MzMkgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAqLworU0ZSXzE2QklUKE9QMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDIgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE9QMkgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDIgLSBoaWdoIHdvcmQgKi8KK1NGUl8xNkJJVChSRVMwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMngzMi1iaXQgcmVzdWx0IDAgLSBsZWFzdCBzaWduaWZpY2FudCB3b3JkICovCitTRlJfMTZCSVQoUkVTMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJ4MzItYml0IHJlc3VsdCAxICovCitTRlJfMTZCSVQoUkVTMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJ4MzItYml0IHJlc3VsdCAyICovCitTRlJfMTZCSVQoUkVTMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJ4MzItYml0IHJlc3VsdCAzIC0gbW9zdCBzaWduaWZpY2FudCB3b3JkICovCitTRlJfMTZCSVQoTVBZMzJDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogTVBZMzIgQ29udHJvbCBSZWdpc3RlciAwICovCisKKyNkZWZpbmUgTVBZQyAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXJyeSBvZiB0aGUgbXVsdGlwbGllciAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwMikgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIE1QWUZSQUMgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRnJhY3Rpb25hbCBtb2RlICovCisjZGVmaW5lIE1QWVNBVCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU2F0dXJhdGlvbiBtb2RlICovCisjZGVmaW5lIE1QWU0wICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlIEJpdDowICovCisjZGVmaW5lIE1QWU0xICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlIEJpdDoxICovCisjZGVmaW5lIE9QMV8zMiAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQml0LXdpZHRoIG9mIG9wZXJhbmQgMSAwOjE2Qml0IC8gMTozMkJpdCAqLworI2RlZmluZSBPUDJfMzIgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEJpdC13aWR0aCBvZiBvcGVyYW5kIDIgMDoxNkJpdCAvIDE6MzJCaXQgKi8KKyNkZWZpbmUgTVBZRExZV1JURU4gICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBEZWxheWVkIHdyaXRlIGVuYWJsZSAqLworI2RlZmluZSBNUFlETFkzMiAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERlbGF5ZWQgd3JpdGUgbW9kZSAqLworCisjZGVmaW5lIE1QWU1fMCAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlOiBNUFkgKi8KKyNkZWZpbmUgTVBZTV8xICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBNdWx0aXBsaWVyIG1vZGU6IE1QWVMgKi8KKyNkZWZpbmUgTVBZTV8yICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBNdWx0aXBsaWVyIG1vZGU6IE1BQyAqLworI2RlZmluZSBNUFlNXzMgICAgICAgICAgICAgICAgICgweDAwMzApICAgICAgIC8qIE11bHRpcGxpZXIgbW9kZTogTUFDUyAqLworI2RlZmluZSBNUFlNX19NUFkgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE11bHRpcGxpZXIgbW9kZTogTVBZICovCisjZGVmaW5lIE1QWU1fX01QWVMgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlOiBNUFlTICovCisjZGVmaW5lIE1QWU1fX01BQyAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlOiBNQUMgKi8KKyNkZWZpbmUgTVBZTV9fTUFDUyAgICAgICAgICAgICAoMHgwMDMwKSAgICAgICAvKiBNdWx0aXBsaWVyIG1vZGU6IE1BQ1MgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yIFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDFSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDJSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDNSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDRJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBJbnB1dCAqLworU0ZSXzhCSVQoUDRPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBPdXRwdXQgKi8KK1NGUl84QklUKFA0RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDRSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0NSBQdWxsIHVwIC8gUHVsbCBkb3duIFJlc2lzdG9ycworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDVJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBJbnB1dCAqLworU0ZSXzhCSVQoUDVPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBPdXRwdXQgKi8KK1NGUl84QklUKFA1RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDVSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0Ny84IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUN19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDhfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlRBX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA3SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgSW5wdXQgKi8KK1NGUl84QklUKFA3T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgT3V0cHV0ICovCitTRlJfOEJJVChQN0RJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA3IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDdTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNyBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFA3UkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgUmVzaXN0b3IgRW5hYmxlICovCisKK1NGUl84QklUKFA4SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggSW5wdXQgKi8KK1NGUl84QklUKFA4T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggT3V0cHV0ICovCitTRlJfOEJJVChQOERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA4IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDhTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgOCBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFA4UkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggUmVzaXN0b3IgRW5hYmxlICovCisKK1NGUl8xNkJJVChQQUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgSW5wdXQgKi8KK1NGUl8xNkJJVChQQU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgT3V0cHV0ICovCitTRlJfMTZCSVQoUEFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIERpcmVjdGlvbiAqLworU0ZSXzE2QklUKFBBU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBTZWxlY3Rpb24gKi8KK1NGUl8xNkJJVChQQVJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgUmVzaXN0b3IgRW5hYmxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDkvMTAgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ5X1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMTBfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlRCX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA5SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDkgSW5wdXQgKi8KK1NGUl84QklUKFA5T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDkgT3V0cHV0ICovCitTRlJfOEJJVChQOURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA5IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDlTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgOSBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFA5UkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDkgUmVzaXN0b3IgRW5hYmxlICovCisKK1NGUl84QklUKFAxMElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEwIElucHV0ICovCitTRlJfOEJJVChQMTBPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxMCBPdXRwdXQgKi8KK1NGUl84QklUKFAxMERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEwIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDEwU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMTAgU2VsZWN0aW9uICovCitTRlJfOEJJVChQMTBSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxMCBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzE2QklUKFBCSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBJbnB1dCAqLworU0ZSXzE2QklUKFBCT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBPdXRwdXQgKi8KK1NGUl8xNkJJVChQQkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEIgRGlyZWN0aW9uICovCitTRlJfMTZCSVQoUEJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBCIFNlbGVjdGlvbiAqLworU0ZSXzE2QklUKFBCUkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBSZXNpc3RvciBFbmFibGUgKi8KKyAgICAgICAgICAgICAgIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCcm93bi1PdXQsIFN1cHBseSBWb2x0YWdlIFN1cGVydmlzaW9uIChTVlMpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19TVlNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTVlNDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU1ZTIENvbnRyb2wgKi8KKyNkZWZpbmUgU1ZTRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTVlMgRmxhZyAqLworI2RlZmluZSBTVlNPUCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNWUyBvdXRwdXQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgU1ZTT04gICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTd2l0Y2hlcyB0aGUgU1ZTIG9uL29mZiAqLworI2RlZmluZSBQT1JPTiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEVuYWJsZSBQT1IgR2VuZXJhdGlvbiBpZiBMb3cgVm9sdGFnZSAqLworI2RlZmluZSBWTEQwICAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTEQxICAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBWTEQyICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBWTEQzICAgICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIFZMRE9OICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRE9GRiAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIFZMRF8xXzhWICAgICAgICAgICAgICAgKDB4MTApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU0QxNl9BMyAtIFNpZ21hIERlbHRhIDE2IEJpdAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfU0QxNl9BM19fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0QxNklOQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW5wdXQgQ29udHJvbCBSZWdpc3RlciBDaGFubmVsIDAgKi8KK1NGUl84QklUKFNEMTZJTkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAxICovCitTRlJfOEJJVChTRDE2SU5DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnB1dCBDb250cm9sIFJlZ2lzdGVyIENoYW5uZWwgMiAqLworU0ZSXzhCSVQoU0QxNlBSRTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgUHJlbG9hZCBSZWdpc3RlciBDaGFubmVsIDAgKi8KK1NGUl84QklUKFNEMTZQUkUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IFByZWxvYWQgUmVnaXN0ZXIgQ2hhbm5lbCAxICovCitTRlJfOEJJVChTRDE2UFJFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBQcmVsb2FkIFJlZ2lzdGVyIENoYW5uZWwgMiAqLworU0ZSXzhCSVQoU0QxNkNPTkYwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW50ZXJuYWwgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAwICovCitTRlJfOEJJVChTRDE2Q09ORjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcm5hbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDEgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUGxlYXNlIHVzZSBvbmx5IHRoZSByZWNvbW1lbmRlZCBzZXR0aW5ncyAqLworCitTRlJfMTZCSVQoU0QxNkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU2lnbWEgRGVsdGEgQURDIDE2IENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2Q0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMCBDb250cm9sIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDEgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAyIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2SVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2TUVNMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMCBDb252ZXJzaW9uIE1lbW9yeSAqLworU0ZSXzE2QklUKFNEMTZNRU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAxIENvbnZlcnNpb24gTWVtb3J5ICovCitTRlJfMTZCSVQoU0QxNk1FTTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDIgQ29udmVyc2lvbiBNZW1vcnkgKi8KKworLyogU0QxNklOQ1RMeCAqLworI2RlZmluZSBTRDE2SU5DSDAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgMCAqLworI2RlZmluZSBTRDE2SU5DSDEgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgMSAqLworI2RlZmluZSBTRDE2SU5DSDIgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgMiAqLworI2RlZmluZSBTRDE2R0FJTjAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZHQUlOMSAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkdBSU4yICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgMiAqLworI2RlZmluZSBTRDE2SU5URExZMCAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5IGFmdGVyIDEuQ29udmVyc2lvbiAwICovCisjZGVmaW5lIFNEMTZJTlRETFkxICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXkgYWZ0ZXIgMS5Db252ZXJzaW9uIDEgKi8KKworI2RlZmluZSBTRDE2R0FJTl8xICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMSAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMiAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjIgICovCisjZGVmaW5lIFNEMTZHQUlOXzQgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICo0ICAqLworI2RlZmluZSBTRDE2R0FJTl84ICAgICAgICAgICAgICgweDAwMTgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqOCAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMTYgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjE2ICovCisjZGVmaW5lIFNEMTZHQUlOXzMyICAgICAgICAgICAgKDB4MDAyOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICozMiAqLworCisjZGVmaW5lIFNEMTZJTkNIXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF8xICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfMiAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzMgICAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF80ICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNSAgICAgICAgICAgICAoMHgwMDA1KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IFZjYyBkaXZpZGVyICovCisjZGVmaW5lIFNEMTZJTkNIXzYgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBUZW1wICovCisjZGVmaW5lIFNEMTZJTkNIXzcgICAgICAgICAgICAgKDB4MDAwNykgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBPZmZzZXQgKi8KKworI2RlZmluZSBTRDE2SU5URExZXzAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDQuQ29udmVyc2lvbiAgKi8KKyNkZWZpbmUgU0QxNklOVERMWV8xICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheTogSW50LiBhZnRlciAzLkNvbnZlcnNpb24gICovCisjZGVmaW5lIFNEMTZJTlRETFlfMiAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgMi5Db252ZXJzaW9uICAqLworI2RlZmluZSBTRDE2SU5URExZXzMgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDEuQ29udmVyc2lvbiAgKi8KKworLyogU0QxNkNUTCAqLworI2RlZmluZSBTRDE2T1ZJRSAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgT3ZlcmZsb3cgSW50ZXJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFNEMTZSRUZPTiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBTd2l0Y2ggaW50ZXJuYWwgUmVmZXJlbmNlIG9uICovCisjZGVmaW5lIFNEMTZWTUlET04gICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBTd2l0Y2ggVm1pZCBCdWZmZXIgb24gKi8KKyNkZWZpbmUgU0QxNlNTRUwwICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRDE2U1NFTDEgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZESVYwICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZESVYxICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZMUCAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0QxNiBMb3cgUG93ZXIgTW9kZSBFbmFibGUgKi8KKyNkZWZpbmUgU0QxNlhESVYwICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBTRDE2WERJVjEgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIFNEMTYgMi5DbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisvLyNkZWZpbmUgU0QxNlhESVYyICAgICAgICAgICAoMHgwODAwKSAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IDIgKi8KKworI2RlZmluZSBTRDE2RElWXzAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzEgKi8KKyNkZWZpbmUgU0QxNkRJVl8xICAgICAgICAgICAgICAoU0QxNkRJVjApICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC8yICovCisjZGVmaW5lIFNEMTZESVZfMiAgICAgICAgICAgICAgKFNEMTZESVYxKSAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvNCAqLworI2RlZmluZSBTRDE2RElWXzMgICAgICAgICAgICAoU0QxNkRJVjArU0QxNkRJVjEpICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzggKi8KKworI2RlZmluZSBTRDE2WERJVl8wICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgMi5DbG9jayBEaXZpZGVyIFNlbGVjdCAvMSAqLworI2RlZmluZSBTRDE2WERJVl8xICAgICAgICAgICAgIChTRDE2WERJVjApICAgIC8qIFNEMTYgMi5DbG9jayBEaXZpZGVyIFNlbGVjdCAvMyAqLworI2RlZmluZSBTRDE2WERJVl8yICAgICAgICAgICAgIChTRDE2WERJVjEpICAgIC8qIFNEMTYgMi5DbG9jayBEaXZpZGVyIFNlbGVjdCAvMTYgKi8KKyNkZWZpbmUgU0QxNlhESVZfMyAgICAgICAgICAoU0QxNlhESVYwK1NEMTZYRElWMSkgIC8qIFNEMTYgMi5DbG9jayBEaXZpZGVyIFNlbGVjdCAvNDggKi8KKworI2RlZmluZSBTRDE2U1NFTF8wICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCBNQ0xLICAqLworI2RlZmluZSBTRDE2U1NFTF8xICAgICAgICAgICAgIChTRDE2U1NFTDApICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCBTTUNMSyAqLworI2RlZmluZSBTRDE2U1NFTF8yICAgICAgICAgICAgIChTRDE2U1NFTDEpICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCBBQ0xLICAqLworI2RlZmluZSBTRDE2U1NFTF8zICAgICAgICAgICAoU0QxNlNTRUwwK1NEMTZTU0VMMSkgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCBUQUNMSyAqLworCisvKiBTRDE2Q0NUTHggKi8KKyNkZWZpbmUgU0QxNkdSUCAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTRDE2IEdyb3VwaW5nIG9mIENoYW5uZWxzOiAwOk9mZi8xOk9uICovCisjZGVmaW5lIFNEMTZTQyAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBTdGFydCBDb252ZXJzaW9uICovCisjZGVmaW5lIFNEMTZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgU0QxNklFICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFNEMTZERiAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggRGF0YSBGb3JtYXQ6IDA6VW5pcG9sYXIvMTpCaXBvbGFyICovCisjZGVmaW5lIFNEMTZPVklGRyAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlcmZsb3cgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgU0QxNkxTQkFDQyAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBBY2Nlc3MgTFNCIG9mIEFEQyAqLworI2RlZmluZSBTRDE2TFNCVE9HICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IFRvZ2dsZSBMU0IgT3V0cHV0IG9mIEFEQyAqLworI2RlZmluZSBTRDE2T1NSMCAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAwICovCisjZGVmaW5lIFNEMTZPU1IxICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDEgKi8KKyNkZWZpbmUgU0QxNlNOR0wgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBTaW5nbGUgQ29udmVyc2lvbiBPbi9PZmYgKi8KKyNkZWZpbmUgU0QxNlhPU1IgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBFeHRlbmRlZCBPdmVyU2FtcGxpbmcgUmF0aW8gKi8KKyNkZWZpbmUgU0QxNlVOSSAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBCaXBvbGFyKDApIC8gVW5pcG9sYXIoMSkgTW9kZSAqLworCisjZGVmaW5lIFNEMTZPU1JfMTAyNCAgICAgICAgKFNEMTZPU1IwK1NEMTZYT1NSKSAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDEwMjQgKi8KKyNkZWZpbmUgU0QxNk9TUl81MTIgICAgICAgICAgICAoU0QxNlhPU1IpICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gNTEyICovCisjZGVmaW5lIFNEMTZPU1JfMjU2ICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDI1NiAqLworI2RlZmluZSBTRDE2T1NSXzEyOCAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAxMjggKi8KKyNkZWZpbmUgU0QxNk9TUl82NCAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gIDY0ICovCisjZGVmaW5lIFNEMTZPU1JfMzIgICAgICAgICAgICAgKDB4MDMwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvICAzMiAqLworCisvKiBTRDE2SVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgU0QxNklWX05PTkUgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBTRDE2SVZfU0QxNk9WSUZHICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTZPVklGRyAqLworI2RlZmluZSBTRDE2SVZfU0QxNk1FTTAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTZNRU0wIFNEMTZJRkcgKi8KKyNkZWZpbmUgU0QxNklWX1NEMTZNRU0xICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTRDE2TUVNMSBTRDE2SUZHICovCisjZGVmaW5lIFNEMTZJVl9TRDE2TUVNMiAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNk1FTTIgU0QxNklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQUNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQUNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl84ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWX1RBSUZHICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQjMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RCM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ29udHJvbCAqLworU0ZSXzE2QklUKFRCQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRCQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRCQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRCUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgKi8KK1NGUl8xNkJJVChUQkNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEJDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRCQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQkNMR1JQMSAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgVEJDTEdSUDAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisjZGVmaW5lIENOVEwxICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMSAqLworI2RlZmluZSBDTlRMMCAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDAgKi8KKyNkZWZpbmUgVEJTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMSAqLworI2RlZmluZSBUQlNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAwICovCisjZGVmaW5lIFRCQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQiBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRCSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRCSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIFNIUjEgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBTSFIwICAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKworI2RlZmluZSBUQlNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogVEJDTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzEgICAgICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IEFDTEsgICovCisjZGVmaW5lIFRCU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBTTUNMSyAqLworI2RlZmluZSBUQlNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogSU5DTEsgKi8KKyNkZWZpbmUgQ05UTF8wICAgICAgICAgICAgICAgICAoMCoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTYgYml0ICovCisjZGVmaW5lIENOVExfMSAgICAgICAgICAgICAgICAgKDEqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEyIGJpdCAqLworI2RlZmluZSBDTlRMXzIgICAgICAgICAgICAgICAgICgyKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMCBiaXQgKi8KKyNkZWZpbmUgQ05UTF8zICAgICAgICAgICAgICAgICAoMyoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogIDggYml0ICovCisjZGVmaW5lIFNIUl8wICAgICAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBTSFJfMSAgICAgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgU0hSXzIgICAgICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFNIUl8zICAgICAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKyNkZWZpbmUgVEJDTEdSUF8wICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFRCQ0xHUlBfMSAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBUQkNMR1JQXzIgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgVEJDTEdSUF8zICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworCisvKiBBZGRpdGlvbmFsIFRpbWVyIEIgQ29udHJvbCBSZWdpc3RlciBiaXRzIGFyZSBkZWZpbmVkIGluIFRpbWVyIEEgKi8KKworI2RlZmluZSBDTExEMSAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBDTExEMCAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSMSAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIFNMU0hSMCAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFJfMCAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBTTFNIUl8xICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIFNMU0hSXzIgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIFNMU0hSXzMgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisjZGVmaW5lIENMTERfMCAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgQ0xMRF8xICAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBDTExEXzIgICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBDTExEXzMgICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworLyogVEIzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEJJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQklWX1RCQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRCQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRCQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQklWXzMgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl81ICAgICAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzYgICAgICAgICAgICAgICAgICgweDAwMEMpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfVEJJRkcgICAgICAgICAgICAgKDB4MDAwRSkgICAgICAgLyogVEJJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0NJCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0NJX18gICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9BQjBfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0NJX0FCMV9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVUNBMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0EwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0EwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0EwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IwSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMFNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgVHJhbnNtaXQgQnVmZmVyICovCisvKiBOb3RlOiBEZXZpY2VzIHdpdGggU0QxNiBoYXZlIHRoZSBuZXh0IHR3byByZWdpc3RlcnMgb24gYSBkaWZmZXJlbnQgYWRkcmVzcyAqLworU0ZSXzE2QklUKFVDQjBJMkNPQSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgSTJDIE93biBBZGRyZXNzICovCitTRlJfMTZCSVQoVUNCMEkyQ1NBKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgU2xhdmUgQWRkcmVzcyAqLworCitTRlJfOEJJVChVQ0ExQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQTFDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNBMUJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQTFCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0ExTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTFTVEFUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIFN0YXR1cyBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNBMVJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTFUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIFRyYW5zbWl0IEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNBMUFCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgTElOIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTFJUlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIElyREEgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBMUlSUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgSXJEQSBSZWNlaXZlIENvbnRyb2wgKi8KKworCisKK1NGUl84QklUKFVDQjFDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVUNCMUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfOEJJVChVQ0IxQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVUNCMUJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFVDQjFJMkNJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEkyQyBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IxU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQjFSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0IxVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl8xNkJJVChVQ0IxSTJDT0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEkyQyBPd24gQWRkcmVzcyAqLworU0ZSXzE2QklUKFVDQjFJMkNTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgSTJDIFNsYXZlIEFkZHJlc3MgKi8KKworLy8gVUFSVC1Nb2RlIEJpdHMKKyNkZWZpbmUgVUNQRU4gICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5IGVuYWJsZSAqLworI2RlZmluZSBVQ1BBUiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBQYXJpdHkgICAgIDA6b2RkIC8gMTpldmVuICovCisjZGVmaW5lIFVDTVNCICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IE1TQiBmaXJzdCAgMDpMU0IgLyAxOk1TQiAqLworI2RlZmluZSBVQzdCSVQgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBEYXRhIEJpdHMgIDA6OC1iaXRzIC8gMTo3LWJpdHMgKi8KKyNkZWZpbmUgVUNTUEIgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogU3RvcCBCaXRzICAwOm9uZSAvIDE6IHR3byAqLworI2RlZmluZSBVQ01PREUxICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBVU0NJIE1vZGUgMSAqLworI2RlZmluZSBVQ01PREUwICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBVU0NJIE1vZGUgMCAqLworI2RlZmluZSBVQ1NZTkMgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFN5bmMtTW9kZSAgMDpVQVJULU1vZGUgLyAxOlNQSS1Nb2RlICovCisKKy8vIFNQSS1Nb2RlIEJpdHMKKyNkZWZpbmUgVUNDS1BIICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQaGFzZSAqLworI2RlZmluZSBVQ0NLUEwgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IENsb2NrIFBvbGFyaXR5ICovCisjZGVmaW5lIFVDTVNUICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy4gTW9kZTogTWFzdGVyIFNlbGVjdCAqLworCisvLyBJMkMtTW9kZSBCaXRzCisjZGVmaW5lIFVDQTEwICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogMTAtYml0IEFkZHJlc3MgTW9kZSAqLworI2RlZmluZSBVQ1NMQTEwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIDEwLWJpdCBTbGF2ZSBBZGRyZXNzIE1vZGUgKi8KKyNkZWZpbmUgVUNNTSAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNdWx0aS1NYXN0ZXIgRW52aXJvbm1lbnQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNNT0RFXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBVU0NJIE1vZGU6IDAgKi8KKyNkZWZpbmUgVUNNT0RFXzEgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTeW5jLiBNb2RlOiBVU0NJIE1vZGU6IDEgKi8KKyNkZWZpbmUgVUNNT0RFXzIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBVU0NJIE1vZGU6IDIgKi8KKyNkZWZpbmUgVUNNT0RFXzMgICAgICAgICAgICAgICAoMHgwNikgICAgICAgICAvKiBTeW5jLiBNb2RlOiBVU0NJIE1vZGU6IDMgKi8KKworLy8gVUFSVC1Nb2RlIEJpdHMKKyNkZWZpbmUgVUNTU0VMMSAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFVDU1NFTDAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBVQ1JYRUlFICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFJYIEVycm9yIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVUNCUktJRSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBpbnRlcnJ1cHQgZW5hYmxlICovICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgVUNET1JNICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBEb3JtYW50IChTbGVlcCkgTW9kZSAqLworI2RlZmluZSBVQ1RYQUREUiAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNlbmQgbmV4dCBEYXRhIGFzIEFkZHJlc3MgKi8KKyNkZWZpbmUgVUNUWEJSSyAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBCcmVhayAqLworI2RlZmluZSBVQ1NXUlNUICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTQ0kgU29mdHdhcmUgUmVzZXQgKi8KKworLy8gU1BJLU1vZGUgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDEwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDA4KSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDA0KSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworCisvLyBJMkMtTW9kZSBCaXRzCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MjApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDVFIgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVHJhbnNtaXQvUmVjZWl2ZSBTZWxlY3QvRmxhZyAqLworI2RlZmluZSBVQ1RYTkFDSyAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFRyYW5zbWl0IE5BQ0sgKi8KKyNkZWZpbmUgVUNUWFNUUCAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBUcmFuc21pdCBTVE9QICovCisjZGVmaW5lIFVDVFhTVFQgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVHJhbnNtaXQgU1RBUlQgKi8KKyNkZWZpbmUgVUNTU0VMXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAwICovCisjZGVmaW5lIFVDU1NFTF8xICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMSAqLworI2RlZmluZSBVQ1NTRUxfMiAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDIgKi8KKyNkZWZpbmUgVUNTU0VMXzMgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAzICovCisKKyNkZWZpbmUgVUNCUkYzICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDMgKi8KKyNkZWZpbmUgVUNCUkYyICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDIgKi8KKyNkZWZpbmUgVUNCUkYxICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUkYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNCUlMyICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJTMSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMSAqLworI2RlZmluZSBVQ0JSUzAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNPUzE2ICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIDE2LXRpbWVzIE92ZXJzYW1wbGluZyBlbmFibGUgKi8KKworI2RlZmluZSBVQ0JSRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogMCAqLworI2RlZmluZSBVQ0JSRl8xICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogMSAqLworI2RlZmluZSBVQ0JSRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogMyAqLworI2RlZmluZSBVQ0JSRl80ICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogNCAqLworI2RlZmluZSBVQ0JSRl81ICAgICAgICAgICAgICAgICgweDUwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSRl82ICAgICAgICAgICAgICAgICgweDYwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogNiAqLworI2RlZmluZSBVQ0JSRl83ICAgICAgICAgICAgICAgICgweDcwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogNyAqLworI2RlZmluZSBVQ0JSRl84ICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogOCAqLworI2RlZmluZSBVQ0JSRl85ICAgICAgICAgICAgICAgICgweDkwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogOSAqLworI2RlZmluZSBVQ0JSRl8xMCAgICAgICAgICAgICAgICgweEEwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogQSAqLworI2RlZmluZSBVQ0JSRl8xMSAgICAgICAgICAgICAgICgweEIwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogQiAqLworI2RlZmluZSBVQ0JSRl8xMiAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogQyAqLworI2RlZmluZSBVQ0JSRl8xMyAgICAgICAgICAgICAgICgweEQwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogRCAqLworI2RlZmluZSBVQ0JSRl8xNCAgICAgICAgICAgICAgICgweEUwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogRSAqLworI2RlZmluZSBVQ0JSRl8xNSAgICAgICAgICAgICAgICgweEYwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogRiAqLworCisjZGVmaW5lIFVDQlJTXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMCAqLworI2RlZmluZSBVQ0JSU18xICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUlNfMiAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAyICovCisjZGVmaW5lIFVDQlJTXzMgICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMyAqLworI2RlZmluZSBVQ0JSU180ICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUlNfNSAgICAgICAgICAgICAgICAoMHgwQSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA1ICovCisjZGVmaW5lIFVDQlJTXzYgICAgICAgICAgICAgICAgKDB4MEMpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNiAqLworI2RlZmluZSBVQ0JSU183ICAgICAgICAgICAgICAgICgweDBFKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKworI2RlZmluZSBVQ0xJU1RFTiAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTQ0kgTGlzdGVuIG1vZGUgKi8KKyNkZWZpbmUgVUNGRSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZyYW1lIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNPRSAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIE92ZXJydW4gRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ1BFICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFVTQ0kgUGFyaXR5IEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNCUksgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIEJyZWFrIHJlY2VpdmVkICovCisjZGVmaW5lIFVDUlhFUlIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBSWCBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQUREUiAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVVNDSSBBZGRyZXNzIHJlY2VpdmVkIEZsYWcgKi8KKyNkZWZpbmUgVUNCVVNZICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIEJ1c3kgRmxhZyAqLworI2RlZmluZSBVQ0lETEUgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgSWRsZSBsaW5lIGRldGVjdGVkIEZsYWcgKi8KKworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDgwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDQwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDEwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ05BQ0tJRSAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE5BQ0sgQ29uZGl0aW9uIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVUNTVFBJRSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTVE9QIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RUSUUgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1RBUlQgQ29uZGl0aW9uIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVUNBTElFICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBMb3N0IGludGVycnVwdCBlbmFibGUgKi8KKworI2RlZmluZSBVQ1NDTExPVyAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFNDTCBsb3cgKi8KKyNkZWZpbmUgVUNHQyAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBHZW5lcmFsIENhbGwgYWRkcmVzcyByZWNlaXZlZCBGbGFnICovCisjZGVmaW5lIFVDQkJVU1kgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnVzIEJ1c3kgRmxhZyAqLworI2RlZmluZSBVQ05BQ0tJRkcgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE5BSyBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFBJRkcgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTVE9QIENvbmRpdGlvbiBpbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBVQ1NUVElGRyAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBVQ0FMSUZHICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEFyYml0cmF0aW9uIExvc3QgaW50ZXJydXB0IEZsYWcgKi8KKworI2RlZmluZSBVQ0lSVFhQTDUgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDUgKi8KKyNkZWZpbmUgVUNJUlRYUEw0ICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCA0ICovCisjZGVmaW5lIFVDSVJUWFBMMyAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMyAqLworI2RlZmluZSBVQ0lSVFhQTDIgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDIgKi8KKyNkZWZpbmUgVUNJUlRYUEwxICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAxICovCisjZGVmaW5lIFVDSVJUWFBMMCAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMCAqLworI2RlZmluZSBVQ0lSVFhDTEsgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgQ2xvY2sgU2VsZWN0ICovCisjZGVmaW5lIFVDSVJFTiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogSVJEQSBFbmNvZGVyL0RlY29kZXIgZW5hYmxlICovCisKKyNkZWZpbmUgVUNJUlJYRkw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJSWEZMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSUlhGTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlJYRkwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJSWEZMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSUlhGTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlJYUEwgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgSW5wdXQgUG9sYXJpdHkgKi8KKyNkZWZpbmUgVUNJUlJYRkUgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIGVuYWJsZSAqLworCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4ODApICAgIC8qIHJlc2VydmVkICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4NDApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDREVMSU0xICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQnJlYWsgU3luYyBEZWxpbWl0ZXIgMSAqLworI2RlZmluZSBVQ0RFTElNMCAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDAgKi8KKyNkZWZpbmUgVUNTVE9FICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBTeW5jLUZpZWxkIFRpbWVvdXQgZXJyb3IgKi8KKyNkZWZpbmUgVUNCVE9FICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBCcmVhayBUaW1lb3V0IGVycm9yICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MDIpICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDQUJERU4gICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXV0byBCYXVkIFJhdGUgZGV0ZWN0IGVuYWJsZSAqLworCisjZGVmaW5lIFVDR0NFTiAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogSTJDIEdlbmVyYWwgQ2FsbCBlbmFibGUgKi8KKyNkZWZpbmUgVUNPQTkgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOSAqLworI2RlZmluZSBVQ09BOCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDT0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDcgKi8KKyNkZWZpbmUgVUNPQTYgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNiAqLworI2RlZmluZSBVQ09BNSAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDT0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDQgKi8KKyNkZWZpbmUgVUNPQTMgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMyAqLworI2RlZmluZSBVQ09BMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAyICovCisjZGVmaW5lIFVDT0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDEgKi8KKyNkZWZpbmUgVUNPQTAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMCAqLworCisjZGVmaW5lIFVDU0E5ICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgOSAqLworI2RlZmluZSBVQ1NBOCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDggKi8KKyNkZWZpbmUgVUNTQTcgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDU0E2ICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNiAqLworI2RlZmluZSBVQ1NBNSAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDUgKi8KKyNkZWZpbmUgVUNTQTQgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDU0EzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMyAqLworI2RlZmluZSBVQ1NBMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDIgKi8KKyNkZWZpbmUgVUNTQTEgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAxICovCisjZGVmaW5lIFVDU0EwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGRTApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworCisjZGVmaW5lIEJBU0lDVElNRVJfVkVDVE9SICAgICAgICgwICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIEJhc2ljIFRpbWVyIC8gUlRDICovCisvKiNkZWZpbmUgQkFTSUNUSU1FUl9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAvIFJUQyAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDEgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjFUWF9WRUNUT1IgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFVTQ0kgQTEvQjEgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0NJQUIxVFhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDIiKSAgKi8gLyogMHhGRkU0IFVTQ0kgQTEvQjEgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjFSWF9WRUNUT1IgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFVTQ0kgQTEvQjEgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQ0lBQjFSWF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgVVNDSSBBMS9CMSBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFNEMTZBX1ZFQ1RPUiAgICAgICAgICAgICg3ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIEFEQyAqLworLyojZGVmaW5lIFNEMTZBX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNyIpICAqLyAvKiAweEZGRUUgQURDICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwVFhfVkVDVE9SICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBVU0NJIEEwL0IwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNDSUFCMFRYX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBVU0NJIEEwL0IwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwUlhfVkVDVE9SICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBVU0NJIEEwL0IwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0NJQUIwUlhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFVTQ0kgQTAvQjAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtMiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTIsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDQ3eDMgKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0N3g0LmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweDQ3eDQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWFlMGQ4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg0N3g0LmgKQEAgLTAsMCArMSwxMzQ0IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHg0N3g0IGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuMgorKgorKiBSZXYuIDEuMCwgU2V0dXAKKyogUmV2LiAxLjEsIGFkZGVkIEZDVEw0IFJlZ2lzdGVyCisqIFJldi4gMS4yLCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4NDd4NAorI2RlZmluZSBfX21zcDQzMHg0N3g0CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgTk1JSUUgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBOTUkgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEZsYXNoIEFjY2VzcyBWaW9sYXRpb24gSW50ZXJydXB0IEVuYWJsZSAqLworCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFdEVCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9zYy4gRmF1bHQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgUE9SSUZHICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBQb3dlciBPbiBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSU1RJRkcgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlc2V0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTk1JIEludGVycnVwdCBGbGFnICovCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgVUMwSUUgICAgICAgICAgICAgICAgICBJRTIKKyNkZWZpbmUgVUNBMFJYSUUgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgVUNBMFRYSUUgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgVUNCMFJYSUUgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgVUNCMFRYSUUgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgVUMwSUZHICAgICAgICAgICAgICAgICBJRkcyCisjZGVmaW5lIFVDQTBSWElGRyAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIFVDQTBUWElGRyAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIFVDQjBSWElGRyAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIFVDQjBUWElGRyAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJUSUZHICAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKFVDMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIDEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVQ0ExUlhJRSAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0ExVFhJRSAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IxUlhJRSAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IxVFhJRSAgICAgICAgICAgICAgICgweDA4KQorCitTRlJfOEJJVChVQzFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSVNDSSAxIEludGVycnVwdCBGbGFncyAqLworI2RlZmluZSBVQ0ExUlhJRkcgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0ExVFhJRkcgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IxUlhJRkcgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IxVFhJRkcgICAgICAgICAgICAgICgweDA4KQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJBU0lDIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CVF9fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChCVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiQlQiICovCisjZGVmaW5lIEJUSVAwICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEJUSVAxICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIEJUSVAyICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEJURlJGUTAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJURlJGUTEgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEJURElWICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkNMSzIgPSBBQ0xLOjI1NiAqLworI2RlZmluZSBCVEhPTEQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEJUMSBpcyBoZWxkIGlmIHRoaXMgYml0IGlzIHNldCAqLworI2RlZmluZSBCVFNTRUwgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIGZCVCA9IGZNQ0xLIChtYWluIGNsb2NrKSAqLworCitTRlJfOEJJVChCVENOVDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMSAqLworU0ZSXzhCSVQoQlRDTlQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDIgKi8KKworLyogRnJlcXVlbmN5IG9mIHRoZSBCVENOVDIgY29kZWQgd2l0aCBCaXQgNSBhbmQgNyBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9BQ0xLICAgICAgICAgICgweDAwKQorI2RlZmluZSBCVF9mQ0xLMl9BQ0xLX0RJVjI1NiAgIChCVERJVikKKyNkZWZpbmUgQlRfZkNMSzJfTUNMSyAgICAgICAgICAoQlRTU0VMKQorCisvKiBJbnRlcnJ1cHQgaW50ZXJ2YWwgdGltZSBmSU5UIGNvZGVkIHdpdGggQml0cyAwLTIgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmSU5UID0gZkNMSzI6MiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNCAgICAgICAgICAoQlRJUDApICAgICAgICAvKiBmSU5UID0gZkNMSzI6NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY4ICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjE2ICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjE2ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjMyICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjMyICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjY0ICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjY0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjEyOCAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogZklOVCA9IGZDTEsyOjEyOCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyNTYgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogZklOVCA9IGZDTEsyOjI1NiAqLworLyogRnJlcXVlbmN5IG9mIExDRCBjb2RlZCB3aXRoIEJpdHMgMy00ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMzIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEX0RJVjY0ICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEX0RJVjEyOCAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYyNTYgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZBQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMUsgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfNTEyICAgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF8yNTYgICAgICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF8xMjggICAgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9Zk1DTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8zMUsgICAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiBmTUNMSzozMiAqLworI2RlZmluZSBCVF9mTENEXzE1XzVLICAgICAgIChCVFNTRUwrQlRGUkZRMCkgICAgICAgICAgLyogZk1DTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF83XzhLICAgICAgICAoQlRTU0VMK0JURlJGUTErQlRGUkZRMCkgIC8qIGZNQ0xLOjI1NiAqLworLyogd2l0aCBhc3N1bWVkIHZsdWVzIG9mIGZBQ0xLPTMyS0h6LCBmTUNMSz0xTUh6ICovCisvKiBmQlQ9ZkFDTEsgaXMgdGhvdWdodCBmb3IgbG9uZ2VyIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX0FETFlfMF8wNjQgICAgICAgICAgKDB4MDApICAgICAgICAgLyogMC4wNjRtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzEyNSAgICAgICAgICAoQlRJUDApICAgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzI1ICAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiAwLjI1bXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzUgICAgICAgICAgICAoQlRJUDErQlRJUDApICAvKiAwLjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xICAgICAgICAgICAgICAoQlRJUDIpICAgICAgICAvKiAxbXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yICAgICAgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiAybXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV80ICAgICAgICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiA0bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV84ICAgICAgICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIDhtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzE2ICAgICAgICAgICAgIChCVERJVikgICAgICAgIC8qIDE2bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzMyICAgICAgICAgICAgIChCVERJVitCVElQMCkgIC8qIDMybXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzY0ICAgICAgICAgICAgIChCVERJVitCVElQMSkgIC8qIDY0bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEyNSAgICAgICAgIChCVERJVitCVElQMStCVElQMCkgICAgICAgLyogMTI1bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjUwICAgICAgICAgICAgKEJURElWK0JUSVAyKSAgLyogMjUwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNTAwICAgICAgICAgKEJURElWK0JUSVAyK0JUSVAwKSAgICAgICAvKiA1MDBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDEpICAgICAgIC8qIDEwMDBtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMStCVElQMCkgLyogMjAwMG1zICAgICAiICovCisvKiBmQ0xLMj1mTUNMSyAoMU1IeikgaXMgdGhvdWdodCBmb3Igc2hvcnQgaW50ZXJ2YWwgdGltZXMgKi8KKy8qIHRoZSB0aW1pbmcgZm9yIHNob3J0IGludGVydmFscyBpcyBtb3JlIHByZWNpc2UgdGhhbiBBQ0xLICovCisvKiBOT1RFICovCisvKiBCZSBzdXJlIHRoYXQgdGhlIFNDRlFDVEwtUmVnaXN0ZXIgaXMgc2V0IHRvIDAxRmggc28gdGhhdCBmTUNMSz0xTUh6ICovCisvKiBUb28gbG93IGludGVydmFsIHRpbWUgcmVzdWx0cyBpbiBpbnRlcnJ1cHRzIHRvbyBmcmVxdWVudCBmb3IgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUhICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDIgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogMC4wMDJtcyBpbnRlcnZhbCAgICAgICAqKiogaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwNCAgICAgICAgICAoQlRTU0VMK0JUSVAwKSAvKiAwLjAwNG1zICAgICIgICAgICAgICAgICoqKiB0b28gc2hvcnQgZm9yICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDggICAgICAgICAgKEJUU1NFTCtCVElQMSkgLyogMC4wMDhtcyAgICAiICAgICAgICAgICAqKiogaW50ZXJydXB0ICovCisjZGVmaW5lIEJUX01ETFlfMF8wMTYgICAgICAgKEJUU1NFTCtCVElQMStCVElQMCkgICAgICAvKiAwLjAxNm1zICAgICIgICAgICAgICAgICoqKiBoYW5kbGluZyAqLworI2RlZmluZSBCVF9NRExZXzBfMDMyICAgICAgICAgIChCVFNTRUwrQlRJUDIpIC8qIDAuMDMybXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMDY0ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDApICAgICAgLyogMC4wNjRtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8xMjUgICAgICAgKEJUU1NFTCtCVElQMitCVElQMSkgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzI1ICAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxK0JUSVAwKS8qIDAuMjVtcyAgICAgIiAqLworCisvKiBSZXNldC9Ib2xkIGNvZGVkIHdpdGggQml0cyA2LTcgaW4gQlQoMSlDVEwgKi8KKy8qIHRoaXMgaXMgZm9yIEJUICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxICAgICAgICAoQlRSRVNFVCkgICAgICAgICAgIC8qIEJUQ05UMSBpcyByZXNldCB3aGlsZSBCVFJFU0VUIGlzIHNldCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMV8yICAgICAgKEJUUkVTRVQrQlRESVYpICAgICAvKiBCVENOVDEgLkFORC4gQlRDTlQyIGFyZSByZXNldCB3aGlsZSB+IGlzIHNldCAqLworLyogdGhpcyBpcyBmb3IgQlQxICovCisjZGVmaW5lIEJUSE9MRF9DTlQxICAgICAgICAgICAgKEJUSE9MRCkgICAgICAgLyogQlRDTlQxIGlzIGhlbGQgd2hpbGUgQlRIT0xEIGlzIHNldCAqLworI2RlZmluZSBCVEhPTERfQ05UMV8yICAgICAgICAgIChCVEhPTEQrQlRESVYpIC8qIEJUMUNOVDEgLkFORC4gQlQxQ05UMiBhcmUgaGVsZCB3aGlsZSB+IGlzIHNldCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiAjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgMHg4MCAqLworLyogI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgIDB4ODAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NPTVBBX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTAgOiAxICovCisjZGVmaW5lIFAyQ0ExICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTEgOiAxICovCisjZGVmaW5lIENBQ1RMMjQgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIENBQ1RMMjUgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIENBQ1RMMjYgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIENBQ1RMMjcgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgQ0FQRDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjAgKi8KKyNkZWZpbmUgQ0FQRDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjEgKi8KKyNkZWZpbmUgQ0FQRDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjIgKi8KKyNkZWZpbmUgQ0FQRDMgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjMgKi8KKyNkZWZpbmUgQ0FQRDQgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjQgKi8KKyNkZWZpbmUgQ0FQRDUgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjUgKi8KKyNkZWZpbmUgQ0FQRDYgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjYgKi8KKyNkZWZpbmUgQ0FQRDcgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0gyX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworU0ZSXzE2QklUKEZDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgNCAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgRUVJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBFbmFibGUgRXJhc2UgSW50ZXJydXB0cyAqLworI2RlZmluZSBFRUlFWCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEVuYWJsZSBFbWVyZ2VuY3kgSW50ZXJydXB0IEV4aXQgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworI2RlZmluZSBMT0NLQSAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNlZ21lbnQgQSBMb2NrIGJpdDogcmVhZCA9IDEgLSBTZWdtZW50IGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBGQUlMICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIExhc3QgUHJvZ3JhbSBvciBFcmFzZSBmYWlsZWQgKi8KKworI2RlZmluZSBNR1IwICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIE1hcmdpbmFsIHJlYWQgMCBtb2RlLiAqLworI2RlZmluZSBNR1IxICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE1hcmdpbmFsIHJlYWQgMSBtb2RlLiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNZU1RFTSBDTE9DSywgRkxMKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxMUExVU19fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0NGSTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAwICovCisjZGVmaW5lIEZOXzIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMS40LTEyTUh6Ki8KKyNkZWZpbmUgRk5fMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBmRENPQ0xLID0gICAyLjItMTdNaHoqLworI2RlZmluZSBGTl80ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDMuMi0yNU1oeiovCisjZGVmaW5lIEZOXzggICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkRDT0NMSyA9ICAgICA1LTQwTWh6Ki8KKyNkZWZpbmUgRkxMRDAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMCAqLworI2RlZmluZSBGTExEMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAxICovCisKKyNkZWZpbmUgRkxMRF8xICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDEgKi8KKyNkZWZpbmUgRkxMRF8yICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDIgKi8KKyNkZWZpbmUgRkxMRF80ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDQgKi8KKyNkZWZpbmUgRkxMRF84ICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDggKi8KKworU0ZSXzhCSVQoU0NGSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAxICovCitTRlJfOEJJVChTQ0ZRQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCisvKiBTeXN0ZW0gY2xvY2sgZnJlcXVlbmN5IHZhbHVlcyBmTUNMSyBjb2RlZCB3aXRoIEJpdHMgMC02IGluIFNDRlFDVEwgKi8KKy8qICNkZWZpbmUgU0NGUV8zMksgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgZk1DTEs9MSpmQUNMSyAgICAgICBvbmx5IGEgcmFuZ2UgZnJvbSAqLworI2RlZmluZSBTQ0ZRXzY0SyAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIGZNQ0xLPTIqZkFDTEsgICAgICAgICAgMSsxIHRvIDEyNysxIGlzIHBvc3NpYmxlICovCisjZGVmaW5lIFNDRlFfMTI4SyAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogZk1DTEs9NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzI1NksgICAgICAgICAgICAgICgweDA3KSAgICAgICAgIC8qIGZNQ0xLPTgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV81MTJLICAgICAgICAgICAgICAoMHgwRikgICAgICAgICAvKiBmTUNMSz0xNipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzFNICAgICAgICAgICAgICAgICgweDFGKSAgICAgICAgIC8qIGZNQ0xLPTMyKmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMk0gICAgICAgICAgICAgICAgKDB4M0YpICAgICAgICAgLyogZk1DTEs9NjQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV80TSAgICAgICAgICAgICAgICAoMHg3RikgICAgICAgICAvKiBmTUNMSz0xMjgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV9NICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2R1bGF0aW9uIERpc2FibGUgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAwICovCisjZGVmaW5lIERDT0YgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRENPIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgTEZPRiAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMb3cgRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFPRiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgMSBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMk9GICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciAyIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgT1NDQ0FQMCAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBPU0NDQVAxICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIFhUU19GTEwgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogMTogU2VsZWN0cyBoaWdoLWZyZXEuIG9zY2lsbGF0b3IgKi8KKyNkZWZpbmUgRENPUExVUyAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBEQ08rIEVuYWJsZSAqLworCisjZGVmaW5lIFhDQVAwUEYgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMHBmICovCisjZGVmaW5lIFhDQVAxMFBGICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTBwZiAqLworI2RlZmluZSBYQ0FQMTRQRiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE0cGYgKi8KKyNkZWZpbmUgWENBUDE4UEYgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxOHBmICovCisjZGVmaW5lIE9TQ0NBUF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMHBmICovCisjZGVmaW5lIE9TQ0NBUF8xICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTBwZiAqLworI2RlZmluZSBPU0NDQVBfMiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE0cGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxOHBmICovCisKK1NGUl84QklUKEZMTF9DVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEwrIENvbnRyb2wgMSAqLworI2RlZmluZSBGTExfRElWMCAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyAwICovCisjZGVmaW5lIEZMTF9ESVYxICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIDEgKi8KKyNkZWZpbmUgU0VMUyAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBQZXJpcGhlcmFsIE1vZHVsZSBDbG9jayBTb3VyY2UgKDA6IERDTywgMTogWFQyKSAqLworI2RlZmluZSBTRUxNMCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgWFQyT0ZGICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDIgKFhUMikgZGlzYWJsZSAqLworI2RlZmluZSBTTUNMS09GRiAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBlcmlwaGVyYWwgTW9kdWxlIENsb2NrIChTTUNMSykgZGlzYWJsZSAqLworCisjZGVmaW5lIEZMTF9ESVZfMSAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDEgKi8KKyNkZWZpbmUgRkxMX0RJVl8yICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMiAqLworI2RlZmluZSBGTExfRElWXzQgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA0ICovCisjZGVmaW5lIEZMTF9ESVZfOCAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDggKi8KKworI2RlZmluZSBTRUxNX0RDTyAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFNlbGVjdCBEQ08gZm9yIENQVSBNQ0xLICovCisjZGVmaW5lIFNFTE1fWFQyICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogU2VsZWN0IFhUMiBmb3IgQ1BVIE1DTEsgKi8KKyNkZWZpbmUgU0VMTV9BICAgICAgICAgICAgICAgICAoMHgxOCkgICAgICAgICAvKiBTZWxlY3QgQSAoZnJvbSBMRlhUMSkgZm9yIENQVSBNQ0xLICovCisKK1NGUl84QklUKEZMTF9DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEwrIENvbnRyb2wgMiAqLworCisjZGVmaW5lIFhUMlMwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgKi8KKyNkZWZpbmUgWFQyUzEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2RlIDEgZm9yIFhUMiAqLworCisjZGVmaW5lIFhUMlNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTW9kZSAwIGZvciBYVDIgOiAwLjQgLSAxIE1IeiAqLworI2RlZmluZSBYVDJTXzEgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE1vZGUgMSBmb3IgWFQyIDogMSAtIDQgTUh6ICovCisjZGVmaW5lIFhUMlNfMiAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kZSAyIGZvciBYVDIgOiAyIC0gMTYgTUh6ICovCisjZGVmaW5lIFhUMlNfMyAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTW9kZSAzIGZvciBYVDIgOiBEaWdpdGFsIGlucHV0IHNpZ25hbCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAweDAyICovCisvKiAjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgMHgwMiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIExDRF9BCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19MQ0RfQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChMQ0RBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEX0EgQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBMQ0RPTiAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBMQ0RTT04gICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBMQ0RNWDAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBMQ0RNWDEgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBMQ0RGUkVRMCAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBMQ0RGUkVRMSAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBMQ0RGUkVRMiAgICAgICAgICAgICAgICgweDgwKQorLyogRGlzcGxheSBtb2RlcyBjb2RlZCB3aXRoIEJpdHMgMi00ICovCisjZGVmaW5lIExDRFNUQVRJQyAgICAgICAgICAgICAgKExDRFNPTikKKyNkZWZpbmUgTENEMk1VWCAgICAgICAgICAgICAgICAoTENETVgwK0xDRFNPTikKKyNkZWZpbmUgTENEM01VWCAgICAgICAgICAgICAgICAoTENETVgxK0xDRFNPTikKKyNkZWZpbmUgTENENE1VWCAgICAgICAgICAgICAgICAoTENETVgxK0xDRE1YMCtMQ0RTT04pCisvKiBGcmVxdWVuY3kgc2VsZWN0IGNvZGUgd2l0aCBCaXRzIDUtNyAqLworI2RlZmluZSBMQ0RGUkVRXzMyICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgMzIgKi8KKyNkZWZpbmUgTENERlJFUV82NCAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDY0ICovCisjZGVmaW5lIExDREZSRVFfOTYgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSA5NiAqLworI2RlZmluZSBMQ0RGUkVRXzEyOCAgICAgICAgICAgICgweDYwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgMTI4ICovCisjZGVmaW5lIExDREZSRVFfMTkyICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSAxOTIgKi8KKyNkZWZpbmUgTENERlJFUV8yNTYgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDI1NiAqLworI2RlZmluZSBMQ0RGUkVRXzM4NCAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgMzg0ICovCisjZGVmaW5lIExDREZSRVFfNTEyICAgICAgICAgICAgKDB4RTApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSA1MTIgKi8KKworU0ZSXzhCSVQoTENEQVBDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIFBvcnQgQ29udHJvbCBSZWdpc3RlciAwICovCisjZGVmaW5lIExDRFMwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTENEIFNlZ21lbnQgIDAgdG8gIDMgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTNCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIExDRCBTZWdtZW50ICA0IHRvICA3IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzggICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBMQ0QgU2VnbWVudCAgOCB0byAxMSBFbmFibGUuICovCisjZGVmaW5lIExDRFMxMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTENEIFNlZ21lbnQgMTIgdG8gMTUgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMTYgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDE2IHRvIDE5IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzIwICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBMQ0QgU2VnbWVudCAyMCB0byAyMyBFbmFibGUuICovCisjZGVmaW5lIExDRFMyNCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTENEIFNlZ21lbnQgMjQgdG8gMjcgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMjggICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDI4IHRvIDMxIEVuYWJsZS4gKi8KKworU0ZSXzhCSVQoTENEQVBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIFBvcnQgQ29udHJvbCBSZWdpc3RlciAxICovCisjZGVmaW5lIExDRFMzMiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogTENEIFNlZ21lbnQgMzIgdG8gMzUgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMzYgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDM2IHRvIDM5IEVuYWJsZS4gKi8KKworU0ZSXzhCSVQoTENEQVZDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIFZvbHRhZ2UgQ29udHJvbCBSZWdpc3RlciAwICovCisjZGVmaW5lIExDRDJCICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogU2VsZWN0cyAxLzIgYmlhcy4gKi8KKyNkZWZpbmUgVkxDRFJFRjAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTZWxlY3RzIHJlZmVyZW5jZSB2b2x0YWdlIGZvciByZWd1bGF0ZWQgY2hhcmdlIHB1bXA6IDAgKi8KKyNkZWZpbmUgVkxDRFJFRjEgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZWxlY3RzIHJlZmVyZW5jZSB2b2x0YWdlIGZvciByZWd1bGF0ZWQgY2hhcmdlIHB1bXA6IDEgKi8KKyNkZWZpbmUgTENEQ1BFTiAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBMQ0QgVm9sdGFnZSBDaGFyZ2UgUHVtcCBFbmFibGUuICovCisjZGVmaW5lIFZMQ0RFWFQgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogU2VsZWN0IGV4dGVybmFsIHNvdXJjZSBmb3IgVkxDRC4gKi8KKyNkZWZpbmUgTENEUkVYVCAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBTZWxlY3RzIGV4dGVybmFsIGNvbm5lY3Rpb25zIGZvciBMQ0QgbWlkIHZvbHRhZ2VzLiAqLworI2RlZmluZSBMQ0RSMDNFWFQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFNlbGVjdHMgZXh0ZXJuYWwgY29ubmVjdGlvbiBmb3IgbG93ZXN0IExDRCB2b2x0YWdlLiAqLworCisvKiBSZWZlcmVuY2Ugdm9sdGFnZSBzb3VyY2Ugc2VsZWN0IGZvciB0aGUgcmVndWxhdGVkIGNoYXJnZSBwdW1wICovCisjZGVmaW5lIFZMQ0RSRUZfMCAgICAgICAgICAgICAgKDA8PDEpICAgICAgICAgLyogSW50ZXJuYWwgKi8KKyNkZWZpbmUgVkxDRFJFRl8xICAgICAgICAgICAgICAoMTw8MSkgICAgICAgICAvKiBFeHRlcm5hbCAqLworI2RlZmluZSBWTENEUkVGXzIgICAgICAgICAgICAgICgyPDwxKSAgICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFZMQ0RSRUZfMyAgICAgICAgICAgICAgKDM8PDEpICAgICAgICAgLyogUmVzZXJ2ZWQgKi8KKworU0ZSXzhCSVQoTENEQVZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIFZvbHRhZ2UgQ29udHJvbCBSZWdpc3RlciAxICovCisjZGVmaW5lIFZMQ0QwICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVkxDRCBzZWxlY3Q6IDAgKi8KKyNkZWZpbmUgVkxDRDEgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBWTENEIHNlbGVjdDogMSAqLworI2RlZmluZSBWTENEMiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFZMQ0Qgc2VsZWN0OiAyICovCisjZGVmaW5lIFZMQ0QzICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVkxDRCBzZWxlY3Q6IDMgKi8KKworLyogQ2hhcmdlIHB1bXAgdm9sdGFnZSBzZWxlY3Rpb25zICovCisjZGVmaW5lIFZMQ0RfMCAgICAgICAgICAgICAgICAgKDA8PDEpICAgICAgICAgLyogQ2hhcmdlIHB1bXAgZGlzYWJsZWQgKi8KKyNkZWZpbmUgVkxDRF8xICAgICAgICAgICAgICAgICAoMTw8MSkgICAgICAgICAvKiBWTENEID0gMi42MFYgKi8KKyNkZWZpbmUgVkxDRF8yICAgICAgICAgICAgICAgICAoMjw8MSkgICAgICAgICAvKiBWTENEID0gMi42NlYgKi8KKyNkZWZpbmUgVkxDRF8zICAgICAgICAgICAgICAgICAoMzw8MSkgICAgICAgICAvKiBWTENEID0gMi43MlYgKi8KKyNkZWZpbmUgVkxDRF80ICAgICAgICAgICAgICAgICAoNDw8MSkgICAgICAgICAvKiBWTENEID0gMi43OFYgKi8KKyNkZWZpbmUgVkxDRF81ICAgICAgICAgICAgICAgICAoNTw8MSkgICAgICAgICAvKiBWTENEID0gMi44NFYgKi8KKyNkZWZpbmUgVkxDRF82ICAgICAgICAgICAgICAgICAoNjw8MSkgICAgICAgICAvKiBWTENEID0gMi45MFYgKi8KKyNkZWZpbmUgVkxDRF83ICAgICAgICAgICAgICAgICAoNzw8MSkgICAgICAgICAvKiBWTENEID0gMi45NlYgKi8KKyNkZWZpbmUgVkxDRF84ICAgICAgICAgICAgICAgICAoODw8MSkgICAgICAgICAvKiBWTENEID0gMy4wMlYgKi8KKyNkZWZpbmUgVkxDRF85ICAgICAgICAgICAgICAgICAoOTw8MSkgICAgICAgICAvKiBWTENEID0gMy4wOFYgKi8KKyNkZWZpbmUgVkxDRF8xMCAgICAgICAgICAgICAgICAoMTA8PDEpICAgICAgICAvKiBWTENEID0gMy4xNFYgKi8KKyNkZWZpbmUgVkxDRF8xMSAgICAgICAgICAgICAgICAoMTE8PDEpICAgICAgICAvKiBWTENEID0gMy4yMFYgKi8KKyNkZWZpbmUgVkxDRF8xMiAgICAgICAgICAgICAgICAoMTI8PDEpICAgICAgICAvKiBWTENEID0gMy4yNlYgKi8KKyNkZWZpbmUgVkxDRF8xMyAgICAgICAgICAgICAgICAoMTI8PDEpICAgICAgICAvKiBWTENEID0gMy4zMlYgKi8KKyNkZWZpbmUgVkxDRF8xNCAgICAgICAgICAgICAgICAoMTM8PDEpICAgICAgICAvKiBWTENEID0gMy4zOFYgKi8KKyNkZWZpbmUgVkxDRF8xNSAgICAgICAgICAgICAgICAoMTU8PDEpICAgICAgICAvKiBWTENEID0gMy40NFYgKi8KKworI2RlZmluZSBWTENEX0RJU0FCTEVEICAgICAgICAgICgwPDwxKSAgICAgICAgIC8qIENoYXJnZSBwdW1wIGRpc2FibGVkICovCisjZGVmaW5lIFZMQ0RfMl82MCAgICAgICAgICAgICAgKDE8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNjBWICovCisjZGVmaW5lIFZMQ0RfMl82NiAgICAgICAgICAgICAgKDI8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNjZWICovCisjZGVmaW5lIFZMQ0RfMl83MiAgICAgICAgICAgICAgKDM8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNzJWICovCisjZGVmaW5lIFZMQ0RfMl83OCAgICAgICAgICAgICAgKDQ8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNzhWICovCisjZGVmaW5lIFZMQ0RfMl84NCAgICAgICAgICAgICAgKDU8PDEpICAgICAgICAgLyogVkxDRCA9IDIuODRWICovCisjZGVmaW5lIFZMQ0RfMl85MCAgICAgICAgICAgICAgKDY8PDEpICAgICAgICAgLyogVkxDRCA9IDIuOTBWICovCisjZGVmaW5lIFZMQ0RfMl85NiAgICAgICAgICAgICAgKDc8PDEpICAgICAgICAgLyogVkxDRCA9IDIuOTZWICovCisjZGVmaW5lIFZMQ0RfM18wMiAgICAgICAgICAgICAgKDg8PDEpICAgICAgICAgLyogVkxDRCA9IDMuMDJWICovCisjZGVmaW5lIFZMQ0RfM18wOCAgICAgICAgICAgICAgKDk8PDEpICAgICAgICAgLyogVkxDRCA9IDMuMDhWICovCisjZGVmaW5lIFZMQ0RfM18xNCAgICAgICAgICAgICAgKDEwPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMTRWICovCisjZGVmaW5lIFZMQ0RfM18yMCAgICAgICAgICAgICAgKDExPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMjBWICovCisjZGVmaW5lIFZMQ0RfM18yNiAgICAgICAgICAgICAgKDEyPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMjZWICovCisjZGVmaW5lIFZMQ0RfM18zMiAgICAgICAgICAgICAgKDEyPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMzJWICovCisjZGVmaW5lIFZMQ0RfM18zOCAgICAgICAgICAgICAgKDEzPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMzhWICovCisjZGVmaW5lIFZMQ0RfM180NCAgICAgICAgICAgICAgKDE1PDwxKSAgICAgICAgLyogVkxDRCA9IDMuNDRWICovCisKKyNkZWZpbmUgTENETUVNXyAgICAgICAgICAgICAgICAoMHgwMDkxKSAgICAgICAvKiBMQ0QgTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoTENETUVNXykgICAgICAvKiBMQ0QgTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBMQ0RNRU1fKSAvKiBMQ0QgTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoTENETTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMSAqLworU0ZSXzhCSVQoTENETTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMiAqLworU0ZSXzhCSVQoTENETTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMyAqLworU0ZSXzhCSVQoTENETTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNCAqLworU0ZSXzhCSVQoTENETTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNSAqLworU0ZSXzhCSVQoTENETTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNiAqLworU0ZSXzhCSVQoTENETTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNyAqLworU0ZSXzhCSVQoTENETTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOCAqLworU0ZSXzhCSVQoTENETTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOSAqLworU0ZSXzhCSVQoTENETTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTAgKi8KK1NGUl84QklUKExDRE0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDExICovCitTRlJfOEJJVChMQ0RNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMiAqLworU0ZSXzhCSVQoTENETTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTMgKi8KK1NGUl84QklUKExDRE0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE0ICovCitTRlJfOEJJVChMQ0RNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNSAqLworU0ZSXzhCSVQoTENETTE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTYgKi8KK1NGUl84QklUKExDRE0xNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE3ICovCitTRlJfOEJJVChMQ0RNMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxOCAqLworU0ZSXzhCSVQoTENETTE5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTkgKi8KK1NGUl84QklUKExDRE0yMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIwICovCisKKyNkZWZpbmUgTENETUEgICAgICAgICAgICAgICAgICAoTENETTEwKSAgICAgICAvKiBMQ0QgTWVtb3J5IEEgKi8KKyNkZWZpbmUgTENETUIgICAgICAgICAgICAgICAgICAoTENETTExKSAgICAgICAvKiBMQ0QgTWVtb3J5IEIgKi8KKyNkZWZpbmUgTENETUMgICAgICAgICAgICAgICAgICAoTENETTEyKSAgICAgICAvKiBMQ0QgTWVtb3J5IEMgKi8KKyNkZWZpbmUgTENETUQgICAgICAgICAgICAgICAgICAoTENETTEzKSAgICAgICAvKiBMQ0QgTWVtb3J5IEQgKi8KKyNkZWZpbmUgTENETUUgICAgICAgICAgICAgICAgICAoTENETTE0KSAgICAgICAvKiBMQ0QgTWVtb3J5IEUgKi8KKyNkZWZpbmUgTENETUYgICAgICAgICAgICAgICAgICAoTENETTE1KSAgICAgICAvKiBMQ0QgTWVtb3J5IEYgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBIQVJEV0FSRSBNVUxUSVBMSUVSIDMyQml0CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19NUFkzMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChNUFlfQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE1QWVNfQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQvT3BlcmFuZCAxIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE1BQ19CKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKEJ5dGUgQWNjZXNzKSAqLworU0ZSXzhCSVQoTUFDU19CKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKEJ5dGUgQWNjZXNzKSAqLworU0ZSXzhCSVQoT1AyX0IpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9wZXJhbmQgMiAoQnl0ZSBBY2Nlc3MpICovCitTRlJfMTZCSVQoTVBZKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTVBZUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQ1MpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChPUDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl8xNkJJVChSRVNMTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl8xNkJJVChSRVNISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgSGlnaCBXb3JkICovCitTRlJfMTZCSVQoU1VNRVhUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VtIEV4dGVuZCAqLworCitTRlJfOEJJVChNUFkzMkxfQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIG11bHRpcGx5IC0gbG93IHdvcmQgKEJ5dGUgQWNjZXNzKSAqLworU0ZSXzhCSVQoTVBZMzJIX0IpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSAtIGhpZ2ggd29yZCAoQnl0ZSBBY2Nlc3MpICovCitTRlJfOEJJVChNUFlTMzJMX0IpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIHNpZ25lZCBtdWx0aXBseSAtIGxvdyB3b3JkIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE1QWVMzMkhfQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gc2lnbmVkIG11bHRpcGx5IC0gaGlnaCB3b3JkIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE1BQzMyTF9CKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGxvdyB3b3JkIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE1BQzMySF9CKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAoQnl0ZSBBY2Nlc3MpICovCitTRlJfOEJJVChNQUNTMzJMX0IpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIHNpZ25lZCBtdWx0aXBseSBhY2N1bXVsYXRlIC0gbG93IHdvcmQgKEJ5dGUgQWNjZXNzKSAqLworU0ZSXzhCSVQoTUFDUzMySF9CKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAoQnl0ZSBBY2Nlc3MpICovCitTRlJfOEJJVChPUDJMX0IpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMiAtIGxvdyB3b3JkIChCeXRlIEFjY2VzcykgKi8KK1NGUl84QklUKE9QMkhfQik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAyIC0gaGlnaCB3b3JkIChCeXRlIEFjY2VzcykgKi8KK1NGUl8xNkJJVChNUFkzMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE1QWTMySCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSAtIGhpZ2ggd29yZCAqLworU0ZSXzE2QklUKE1QWVMzMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE1QWVMzMkgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgLSBoaWdoIHdvcmQgKi8KK1NGUl8xNkJJVChNQUMzMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGxvdyB3b3JkICovCitTRlJfMTZCSVQoTUFDMzJIKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIG11bHRpcGx5IGFjY3VtdWxhdGUgLSBoaWdoIHdvcmQgKi8KK1NGUl8xNkJJVChNQUNTMzJMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gc2lnbmVkIG11bHRpcGx5IGFjY3VtdWxhdGUgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE1BQ1MzMkgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAqLworU0ZSXzE2QklUKE9QMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDIgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE9QMkgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDIgLSBoaWdoIHdvcmQgKi8KK1NGUl8xNkJJVChSRVMwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMngzMi1iaXQgcmVzdWx0IDAgLSBsZWFzdCBzaWduaWZpY2FudCB3b3JkICovCitTRlJfMTZCSVQoUkVTMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJ4MzItYml0IHJlc3VsdCAxICovCitTRlJfMTZCSVQoUkVTMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJ4MzItYml0IHJlc3VsdCAyICovCitTRlJfMTZCSVQoUkVTMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJ4MzItYml0IHJlc3VsdCAzIC0gbW9zdCBzaWduaWZpY2FudCB3b3JkICovCitTRlJfMTZCSVQoTVBZMzJDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogTVBZMzIgQ29udHJvbCBSZWdpc3RlciAwICovCisKKyNkZWZpbmUgTVBZQyAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXJyeSBvZiB0aGUgbXVsdGlwbGllciAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwMikgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIE1QWUZSQUMgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRnJhY3Rpb25hbCBtb2RlICovCisjZGVmaW5lIE1QWVNBVCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU2F0dXJhdGlvbiBtb2RlICovCisjZGVmaW5lIE1QWU0wICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlIEJpdDowICovCisjZGVmaW5lIE1QWU0xICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlIEJpdDoxICovCisjZGVmaW5lIE9QMV8zMiAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQml0LXdpZHRoIG9mIG9wZXJhbmQgMSAwOjE2Qml0IC8gMTozMkJpdCAqLworI2RlZmluZSBPUDJfMzIgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEJpdC13aWR0aCBvZiBvcGVyYW5kIDIgMDoxNkJpdCAvIDE6MzJCaXQgKi8KKyNkZWZpbmUgTVBZRExZV1JURU4gICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBEZWxheWVkIHdyaXRlIGVuYWJsZSAqLworI2RlZmluZSBNUFlETFkzMiAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERlbGF5ZWQgd3JpdGUgbW9kZSAqLworCisjZGVmaW5lIE1QWU1fMCAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlOiBNUFkgKi8KKyNkZWZpbmUgTVBZTV8xICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBNdWx0aXBsaWVyIG1vZGU6IE1QWVMgKi8KKyNkZWZpbmUgTVBZTV8yICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBNdWx0aXBsaWVyIG1vZGU6IE1BQyAqLworI2RlZmluZSBNUFlNXzMgICAgICAgICAgICAgICAgICgweDAwMzApICAgICAgIC8qIE11bHRpcGxpZXIgbW9kZTogTUFDUyAqLworI2RlZmluZSBNUFlNX19NUFkgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE11bHRpcGxpZXIgbW9kZTogTVBZICovCisjZGVmaW5lIE1QWU1fX01QWVMgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlOiBNUFlTICovCisjZGVmaW5lIE1QWU1fX01BQyAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlOiBNQUMgKi8KKyNkZWZpbmUgTVBZTV9fTUFDUyAgICAgICAgICAgICAoMHgwMDMwKSAgICAgICAvKiBNdWx0aXBsaWVyIG1vZGU6IE1BQ1MgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yIFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDFSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDJSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDNSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzhCSVQoUDRJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBJbnB1dCAqLworU0ZSXzhCSVQoUDRPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBPdXRwdXQgKi8KK1NGUl84QklUKFA0RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDRSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0NSBQdWxsIHVwIC8gUHVsbCBkb3duIFJlc2lzdG9ycworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDVJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBJbnB1dCAqLworU0ZSXzhCSVQoUDVPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBPdXRwdXQgKi8KK1NGUl84QklUKFA1RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUDVSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBSZXNpc3RvciBFbmFibGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0Ny84IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUN19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDhfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlRBX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA3SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgSW5wdXQgKi8KK1NGUl84QklUKFA3T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgT3V0cHV0ICovCitTRlJfOEJJVChQN0RJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA3IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDdTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNyBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFA3UkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgUmVzaXN0b3IgRW5hYmxlICovCisKK1NGUl84QklUKFA4SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggSW5wdXQgKi8KK1NGUl84QklUKFA4T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggT3V0cHV0ICovCitTRlJfOEJJVChQOERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA4IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDhTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgOCBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFA4UkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggUmVzaXN0b3IgRW5hYmxlICovCisKK1NGUl8xNkJJVChQQUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgSW5wdXQgKi8KK1NGUl8xNkJJVChQQU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgT3V0cHV0ICovCitTRlJfMTZCSVQoUEFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIERpcmVjdGlvbiAqLworU0ZSXzE2QklUKFBBU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBTZWxlY3Rpb24gKi8KK1NGUl8xNkJJVChQQVJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgUmVzaXN0b3IgRW5hYmxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDkvMTAgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ5X1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMTBfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlRCX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA5SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDkgSW5wdXQgKi8KK1NGUl84QklUKFA5T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDkgT3V0cHV0ICovCitTRlJfOEJJVChQOURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA5IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDlTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgOSBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFA5UkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDkgUmVzaXN0b3IgRW5hYmxlICovCisKK1NGUl84QklUKFAxMElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEwIElucHV0ICovCitTRlJfOEJJVChQMTBPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxMCBPdXRwdXQgKi8KK1NGUl84QklUKFAxMERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEwIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDEwU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMTAgU2VsZWN0aW9uICovCitTRlJfOEJJVChQMTBSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxMCBSZXNpc3RvciBFbmFibGUgKi8KKworU0ZSXzE2QklUKFBCSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBJbnB1dCAqLworU0ZSXzE2QklUKFBCT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBPdXRwdXQgKi8KK1NGUl8xNkJJVChQQkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEIgRGlyZWN0aW9uICovCitTRlJfMTZCSVQoUEJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBCIFNlbGVjdGlvbiAqLworU0ZSXzE2QklUKFBCUkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBSZXNpc3RvciBFbmFibGUgKi8KKyAgICAgICAgICAgICAgIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCcm93bi1PdXQsIFN1cHBseSBWb2x0YWdlIFN1cGVydmlzaW9uIChTVlMpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19TVlNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTVlNDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU1ZTIENvbnRyb2wgKi8KKyNkZWZpbmUgU1ZTRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTVlMgRmxhZyAqLworI2RlZmluZSBTVlNPUCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNWUyBvdXRwdXQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgU1ZTT04gICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTd2l0Y2hlcyB0aGUgU1ZTIG9uL29mZiAqLworI2RlZmluZSBQT1JPTiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEVuYWJsZSBQT1IgR2VuZXJhdGlvbiBpZiBMb3cgVm9sdGFnZSAqLworI2RlZmluZSBWTEQwICAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTEQxICAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBWTEQyICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBWTEQzICAgICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIFZMRE9OICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRE9GRiAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIFZMRF8xXzhWICAgICAgICAgICAgICAgKDB4MTApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU0QxNl9BNCAtIFNpZ21hIERlbHRhIDE2IEJpdAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfU0QxNl9BNF9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0QxNklOQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW5wdXQgQ29udHJvbCBSZWdpc3RlciBDaGFubmVsIDAgKi8KK1NGUl84QklUKFNEMTZJTkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAxICovCitTRlJfOEJJVChTRDE2SU5DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnB1dCBDb250cm9sIFJlZ2lzdGVyIENoYW5uZWwgMiAqLworU0ZSXzhCSVQoU0QxNklOQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW5wdXQgQ29udHJvbCBSZWdpc3RlciBDaGFubmVsIDMgKi8KK1NGUl84QklUKFNEMTZQUkUwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IFByZWxvYWQgUmVnaXN0ZXIgQ2hhbm5lbCAwICovCitTRlJfOEJJVChTRDE2UFJFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBQcmVsb2FkIFJlZ2lzdGVyIENoYW5uZWwgMSAqLworU0ZSXzhCSVQoU0QxNlBSRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgUHJlbG9hZCBSZWdpc3RlciBDaGFubmVsIDIgKi8KK1NGUl84QklUKFNEMTZQUkUzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IFByZWxvYWQgUmVnaXN0ZXIgQ2hhbm5lbCAzICovCitTRlJfOEJJVChTRDE2Q09ORjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcm5hbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFNEMTZDT05GMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVybmFsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQbGVhc2UgdXNlIG9ubHkgdGhlIHJlY29tbWVuZGVkIHNldHRpbmdzICovCisKK1NGUl8xNkJJVChTRDE2Q1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTaWdtYSBEZWx0YSBBREMgMTYgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAwIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2Q0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMSBDb250cm9sIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDIgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZDQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAzIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2SVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2TUVNMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMCBDb252ZXJzaW9uIE1lbW9yeSAqLworU0ZSXzE2QklUKFNEMTZNRU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAxIENvbnZlcnNpb24gTWVtb3J5ICovCitTRlJfMTZCSVQoU0QxNk1FTTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDIgQ29udmVyc2lvbiBNZW1vcnkgKi8KK1NGUl8xNkJJVChTRDE2TUVNMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMyBDb252ZXJzaW9uIE1lbW9yeSAqLworCisvKiBTRDE2SU5DVEx4ICovCisjZGVmaW5lIFNEMTZJTkNIMCAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZJTkNIMSAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZJTkNIMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAyICovCisjZGVmaW5lIFNEMTZHQUlOMCAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNkdBSU4xICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgMSAqLworI2RlZmluZSBTRDE2R0FJTjIgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAyICovCisjZGVmaW5lIFNEMTZJTlRETFkwICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXkgYWZ0ZXIgMS5Db252ZXJzaW9uIDAgKi8KKyNkZWZpbmUgU0QxNklOVERMWTEgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheSBhZnRlciAxLkNvbnZlcnNpb24gMSAqLworCisjZGVmaW5lIFNEMTZHQUlOXzEgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICoxICAqLworI2RlZmluZSBTRDE2R0FJTl8yICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMiAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fNCAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjQgICovCisjZGVmaW5lIFNEMTZHQUlOXzggICAgICAgICAgICAgKDB4MDAxOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICo4ICAqLworI2RlZmluZSBTRDE2R0FJTl8xNiAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMTYgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMzIgICAgICAgICAgICAoMHgwMDI4KSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjMyICovCisKKyNkZWZpbmUgU0QxNklOQ0hfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzEgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF8yICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfMyAgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzQgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF81ICAgICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgVmNjIGRpdmlkZXIgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNiAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IFRlbXAgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNyAgICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IE9mZnNldCAqLworCisjZGVmaW5lIFNEMTZJTlRETFlfMCAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgNC5Db252ZXJzaW9uICAqLworI2RlZmluZSBTRDE2SU5URExZXzEgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDMuQ29udmVyc2lvbiAgKi8KKyNkZWZpbmUgU0QxNklOVERMWV8yICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheTogSW50LiBhZnRlciAyLkNvbnZlcnNpb24gICovCisjZGVmaW5lIFNEMTZJTlRETFlfMyAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgMS5Db252ZXJzaW9uICAqLworCisvKiBTRDE2Q1RMICovCisjZGVmaW5lIFNEMTZPVklFICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBPdmVyZmxvdyBJbnRlcnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgU0QxNlJFRk9OICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IFN3aXRjaCBpbnRlcm5hbCBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgU0QxNlZNSURPTiAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IFN3aXRjaCBWbWlkIEJ1ZmZlciBvbiAqLworI2RlZmluZSBTRDE2U1NFTDAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZTU0VMMSAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkRJVjAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNkRJVjEgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkxQICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTRDE2IExvdyBQb3dlciBNb2RlIEVuYWJsZSAqLworI2RlZmluZSBTRDE2WERJVjAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNEMTYgMi5DbG9jayBEaXZpZGVyIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZYRElWMSAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKy8vI2RlZmluZSBTRDE2WERJVjIgICAgICAgICAgICgweDA4MDApICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgMiAqLworCisjZGVmaW5lIFNEMTZESVZfMCAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvMSAqLworI2RlZmluZSBTRDE2RElWXzEgICAgICAgICAgICAgIChTRDE2RElWMCkgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzIgKi8KKyNkZWZpbmUgU0QxNkRJVl8yICAgICAgICAgICAgICAoU0QxNkRJVjEpICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC80ICovCisjZGVmaW5lIFNEMTZESVZfMyAgICAgICAgICAgIChTRDE2RElWMCtTRDE2RElWMSkgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvOCAqLworCisjZGVmaW5lIFNEMTZYRElWXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IC8xICovCisjZGVmaW5lIFNEMTZYRElWXzEgICAgICAgICAgICAgKFNEMTZYRElWMCkgICAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IC8zICovCisjZGVmaW5lIFNEMTZYRElWXzIgICAgICAgICAgICAgKFNEMTZYRElWMSkgICAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IC8xNiAqLworI2RlZmluZSBTRDE2WERJVl8zICAgICAgICAgIChTRDE2WERJVjArU0QxNlhESVYxKSAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IC80OCAqLworCisjZGVmaW5lIFNEMTZTU0VMXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IE1DTEsgICovCisjZGVmaW5lIFNEMTZTU0VMXzEgICAgICAgICAgICAgKFNEMTZTU0VMMCkgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IFNNQ0xLICovCisjZGVmaW5lIFNEMTZTU0VMXzIgICAgICAgICAgICAgKFNEMTZTU0VMMSkgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IEFDTEsgICovCisjZGVmaW5lIFNEMTZTU0VMXzMgICAgICAgICAgIChTRDE2U1NFTDArU0QxNlNTRUwxKSAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IFRBQ0xLICovCisKKy8qIFNEMTZDQ1RMeCAqLworI2RlZmluZSBTRDE2R1JQICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNEMTYgR3JvdXBpbmcgb2YgQ2hhbm5lbHM6IDA6T2ZmLzE6T24gKi8KKyNkZWZpbmUgU0QxNlNDICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTRDE2IFN0YXJ0IENvbnZlcnNpb24gKi8KKyNkZWZpbmUgU0QxNklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBTRDE2SUUgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgU0QxNkRGICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBEYXRhIEZvcm1hdDogMDpVbmlwb2xhci8xOkJpcG9sYXIgKi8KKyNkZWZpbmUgU0QxNk9WSUZHICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyZmxvdyBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBTRDE2TFNCQUNDICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEFjY2VzcyBMU0Igb2YgQURDICovCisjZGVmaW5lIFNEMTZMU0JUT0cgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggVG9nZ2xlIExTQiBPdXRwdXQgb2YgQURDICovCisjZGVmaW5lIFNEMTZPU1IwICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDAgKi8KKyNkZWZpbmUgU0QxNk9TUjEgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMSAqLworI2RlZmluZSBTRDE2U05HTCAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IFNpbmdsZSBDb252ZXJzaW9uIE9uL09mZiAqLworI2RlZmluZSBTRDE2WE9TUiAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEV4dGVuZGVkIE92ZXJTYW1wbGluZyBSYXRpbyAqLworI2RlZmluZSBTRDE2VU5JICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEJpcG9sYXIoMCkgLyBVbmlwb2xhcigxKSBNb2RlICovCisKKyNkZWZpbmUgU0QxNk9TUl8xMDI0ICAgICAgICAoU0QxNk9TUjArU0QxNlhPU1IpICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMTAyNCAqLworI2RlZmluZSBTRDE2T1NSXzUxMiAgICAgICAgICAgIChTRDE2WE9TUikgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyA1MTIgKi8KKyNkZWZpbmUgU0QxNk9TUl8yNTYgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMjU2ICovCisjZGVmaW5lIFNEMTZPU1JfMTI4ICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDEyOCAqLworI2RlZmluZSBTRDE2T1NSXzY0ICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAgNjQgKi8KKyNkZWZpbmUgU0QxNk9TUl8zMiAgICAgICAgICAgICAoMHgwMzAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gIDMyICovCisKKy8qIFNEMTZJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBTRDE2SVZfTk9ORSAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFNEMTZJVl9TRDE2T1ZJRkcgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNk9WSUZHICovCisjZGVmaW5lIFNEMTZJVl9TRDE2TUVNMCAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNk1FTTAgU0QxNklGRyAqLworI2RlZmluZSBTRDE2SVZfU0QxNk1FTTEgICAgICAgICgweDAwMDYpICAgICAgIC8qIFNEMTZNRU0xIFNEMTZJRkcgKi8KKyNkZWZpbmUgU0QxNklWX1NEMTZNRU0yICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2TUVNMiBTRDE2SUZHICovCisjZGVmaW5lIFNEMTZJVl9TRDE2TUVNMyAgICAgICAgKDB4MDAwQSkgICAgICAgLyogU0QxNk1FTTMgU0QxNklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQUNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQUNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl84ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWX1RBSUZHICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQjMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RCM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ29udHJvbCAqLworU0ZSXzE2QklUKFRCQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRCQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRCQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRCUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgKi8KK1NGUl8xNkJJVChUQkNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEJDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRCQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQkNMR1JQMSAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgVEJDTEdSUDAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAwICovCisjZGVmaW5lIENOVEwxICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMSAqLworI2RlZmluZSBDTlRMMCAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDAgKi8KKyNkZWZpbmUgVEJTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMSAqLworI2RlZmluZSBUQlNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAwICovCisjZGVmaW5lIFRCQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQiBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRCSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRCSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQiBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIFNIUjEgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBTSFIwICAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKworI2RlZmluZSBUQlNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogVEJDTEsgKi8KKyNkZWZpbmUgVEJTU0VMXzEgICAgICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IEFDTEsgICovCisjZGVmaW5lIFRCU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBTTUNMSyAqLworI2RlZmluZSBUQlNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogSU5DTEsgKi8KKyNkZWZpbmUgQ05UTF8wICAgICAgICAgICAgICAgICAoMCoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTYgYml0ICovCisjZGVmaW5lIENOVExfMSAgICAgICAgICAgICAgICAgKDEqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEyIGJpdCAqLworI2RlZmluZSBDTlRMXzIgICAgICAgICAgICAgICAgICgyKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMCBiaXQgKi8KKyNkZWZpbmUgQ05UTF8zICAgICAgICAgICAgICAgICAoMyoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogIDggYml0ICovCisjZGVmaW5lIFNIUl8wICAgICAgICAgICAgICAgICAgKDAqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBTSFJfMSAgICAgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDEgLSAzIGdyb3VwcyAoMS0yLCAzLTQsIDUtNikgKi8KKyNkZWZpbmUgU0hSXzIgICAgICAgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAyIC0gMiBncm91cHMgKDEtMywgNC02KSovCisjZGVmaW5lIFNIUl8zICAgICAgICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKyNkZWZpbmUgVEJDTEdSUF8wICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFRCQ0xHUlBfMSAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBUQkNMR1JQXzIgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgVEJDTEdSUF8zICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworCisvKiBBZGRpdGlvbmFsIFRpbWVyIEIgQ29udHJvbCBSZWdpc3RlciBiaXRzIGFyZSBkZWZpbmVkIGluIFRpbWVyIEEgKi8KKworI2RlZmluZSBDTExEMSAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBDTExEMCAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSMSAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIFNMU0hSMCAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFJfMCAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBTTFNIUl8xICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIFNMU0hSXzIgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIFNMU0hSXzMgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisjZGVmaW5lIENMTERfMCAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgQ0xMRF8xICAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBDTExEXzIgICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBDTExEXzMgICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworLyogVEIzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEJJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQklWX1RCQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRCQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRCQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQklWXzMgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl81ICAgICAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzYgICAgICAgICAgICAgICAgICgweDAwMEMpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfVEJJRkcgICAgICAgICAgICAgKDB4MDAwRSkgICAgICAgLyogVEJJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0NJCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0NJX18gICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9BQjBfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0NJX0FCMV9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVUNBMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0EwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0EwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0EwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IwSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMFNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgVHJhbnNtaXQgQnVmZmVyICovCisvKiBOb3RlOiBEZXZpY2VzIHdpdGggU0QxNiBoYXZlIHRoZSBuZXh0IHR3byByZWdpc3RlcnMgb24gYSBkaWZmZXJlbnQgYWRkcmVzcyAqLworU0ZSXzE2QklUKFVDQjBJMkNPQSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgSTJDIE93biBBZGRyZXNzICovCitTRlJfMTZCSVQoVUNCMEkyQ1NBKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgU2xhdmUgQWRkcmVzcyAqLworCitTRlJfOEJJVChVQ0ExQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQTFDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNBMUJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQTFCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0ExTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTFTVEFUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIFN0YXR1cyBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNBMVJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTFUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIFRyYW5zbWl0IEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNBMUFCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgTElOIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTFJUlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIElyREEgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBMUlSUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgSXJEQSBSZWNlaXZlIENvbnRyb2wgKi8KKworCisKK1NGUl84QklUKFVDQjFDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVUNCMUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfOEJJVChVQ0IxQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVUNCMUJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFVDQjFJMkNJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEkyQyBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IxU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQjFSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0IxVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl8xNkJJVChVQ0IxSTJDT0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEkyQyBPd24gQWRkcmVzcyAqLworU0ZSXzE2QklUKFVDQjFJMkNTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgSTJDIFNsYXZlIEFkZHJlc3MgKi8KKworLy8gVUFSVC1Nb2RlIEJpdHMKKyNkZWZpbmUgVUNQRU4gICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5IGVuYWJsZSAqLworI2RlZmluZSBVQ1BBUiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBQYXJpdHkgICAgIDA6b2RkIC8gMTpldmVuICovCisjZGVmaW5lIFVDTVNCICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IE1TQiBmaXJzdCAgMDpMU0IgLyAxOk1TQiAqLworI2RlZmluZSBVQzdCSVQgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBEYXRhIEJpdHMgIDA6OC1iaXRzIC8gMTo3LWJpdHMgKi8KKyNkZWZpbmUgVUNTUEIgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogU3RvcCBCaXRzICAwOm9uZSAvIDE6IHR3byAqLworI2RlZmluZSBVQ01PREUxICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBVU0NJIE1vZGUgMSAqLworI2RlZmluZSBVQ01PREUwICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBVU0NJIE1vZGUgMCAqLworI2RlZmluZSBVQ1NZTkMgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFN5bmMtTW9kZSAgMDpVQVJULU1vZGUgLyAxOlNQSS1Nb2RlICovCisKKy8vIFNQSS1Nb2RlIEJpdHMKKyNkZWZpbmUgVUNDS1BIICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQaGFzZSAqLworI2RlZmluZSBVQ0NLUEwgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IENsb2NrIFBvbGFyaXR5ICovCisjZGVmaW5lIFVDTVNUICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy4gTW9kZTogTWFzdGVyIFNlbGVjdCAqLworCisvLyBJMkMtTW9kZSBCaXRzCisjZGVmaW5lIFVDQTEwICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogMTAtYml0IEFkZHJlc3MgTW9kZSAqLworI2RlZmluZSBVQ1NMQTEwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIDEwLWJpdCBTbGF2ZSBBZGRyZXNzIE1vZGUgKi8KKyNkZWZpbmUgVUNNTSAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBNdWx0aS1NYXN0ZXIgRW52aXJvbm1lbnQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNNT0RFXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBVU0NJIE1vZGU6IDAgKi8KKyNkZWZpbmUgVUNNT0RFXzEgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTeW5jLiBNb2RlOiBVU0NJIE1vZGU6IDEgKi8KKyNkZWZpbmUgVUNNT0RFXzIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBVU0NJIE1vZGU6IDIgKi8KKyNkZWZpbmUgVUNNT0RFXzMgICAgICAgICAgICAgICAoMHgwNikgICAgICAgICAvKiBTeW5jLiBNb2RlOiBVU0NJIE1vZGU6IDMgKi8KKworLy8gVUFSVC1Nb2RlIEJpdHMKKyNkZWZpbmUgVUNTU0VMMSAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFVDU1NFTDAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBVQ1JYRUlFICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFJYIEVycm9yIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVUNCUktJRSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBpbnRlcnJ1cHQgZW5hYmxlICovICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgVUNET1JNICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBEb3JtYW50IChTbGVlcCkgTW9kZSAqLworI2RlZmluZSBVQ1RYQUREUiAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFNlbmQgbmV4dCBEYXRhIGFzIEFkZHJlc3MgKi8KKyNkZWZpbmUgVUNUWEJSSyAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBCcmVhayAqLworI2RlZmluZSBVQ1NXUlNUICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTQ0kgU29mdHdhcmUgUmVzZXQgKi8KKworLy8gU1BJLU1vZGUgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDEwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDA4KSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDA0KSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworCisvLyBJMkMtTW9kZSBCaXRzCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MjApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDVFIgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVHJhbnNtaXQvUmVjZWl2ZSBTZWxlY3QvRmxhZyAqLworI2RlZmluZSBVQ1RYTkFDSyAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFRyYW5zbWl0IE5BQ0sgKi8KKyNkZWZpbmUgVUNUWFNUUCAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBUcmFuc21pdCBTVE9QICovCisjZGVmaW5lIFVDVFhTVFQgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVHJhbnNtaXQgU1RBUlQgKi8KKyNkZWZpbmUgVUNTU0VMXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAwICovCisjZGVmaW5lIFVDU1NFTF8xICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMSAqLworI2RlZmluZSBVQ1NTRUxfMiAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDIgKi8KKyNkZWZpbmUgVUNTU0VMXzMgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAzICovCisKKyNkZWZpbmUgVUNCUkYzICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDMgKi8KKyNkZWZpbmUgVUNCUkYyICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDIgKi8KKyNkZWZpbmUgVUNCUkYxICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUkYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNCUlMyICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJTMSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMSAqLworI2RlZmluZSBVQ0JSUzAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNPUzE2ICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIDE2LXRpbWVzIE92ZXJzYW1wbGluZyBlbmFibGUgKi8KKworI2RlZmluZSBVQ0JSRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogMCAqLworI2RlZmluZSBVQ0JSRl8xICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogMSAqLworI2RlZmluZSBVQ0JSRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogMyAqLworI2RlZmluZSBVQ0JSRl80ICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogNCAqLworI2RlZmluZSBVQ0JSRl81ICAgICAgICAgICAgICAgICgweDUwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSRl82ICAgICAgICAgICAgICAgICgweDYwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogNiAqLworI2RlZmluZSBVQ0JSRl83ICAgICAgICAgICAgICAgICgweDcwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogNyAqLworI2RlZmluZSBVQ0JSRl84ICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogOCAqLworI2RlZmluZSBVQ0JSRl85ICAgICAgICAgICAgICAgICgweDkwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogOSAqLworI2RlZmluZSBVQ0JSRl8xMCAgICAgICAgICAgICAgICgweEEwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogQSAqLworI2RlZmluZSBVQ0JSRl8xMSAgICAgICAgICAgICAgICgweEIwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogQiAqLworI2RlZmluZSBVQ0JSRl8xMiAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogQyAqLworI2RlZmluZSBVQ0JSRl8xMyAgICAgICAgICAgICAgICgweEQwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogRCAqLworI2RlZmluZSBVQ0JSRl8xNCAgICAgICAgICAgICAgICgweEUwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogRSAqLworI2RlZmluZSBVQ0JSRl8xNSAgICAgICAgICAgICAgICgweEYwKSAgICAgICAgIC8qIFVTQ0kgRmlyc3QgU3RhZ2UgTW9kdWxhdGlvbjogRiAqLworCisjZGVmaW5lIFVDQlJTXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMCAqLworI2RlZmluZSBVQ0JSU18xICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUlNfMiAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAyICovCisjZGVmaW5lIFVDQlJTXzMgICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMyAqLworI2RlZmluZSBVQ0JSU180ICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUlNfNSAgICAgICAgICAgICAgICAoMHgwQSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA1ICovCisjZGVmaW5lIFVDQlJTXzYgICAgICAgICAgICAgICAgKDB4MEMpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNiAqLworI2RlZmluZSBVQ0JSU183ICAgICAgICAgICAgICAgICgweDBFKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKworI2RlZmluZSBVQ0xJU1RFTiAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTQ0kgTGlzdGVuIG1vZGUgKi8KKyNkZWZpbmUgVUNGRSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZyYW1lIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNPRSAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIE92ZXJydW4gRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ1BFICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFVTQ0kgUGFyaXR5IEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNCUksgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIEJyZWFrIHJlY2VpdmVkICovCisjZGVmaW5lIFVDUlhFUlIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBSWCBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQUREUiAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVVNDSSBBZGRyZXNzIHJlY2VpdmVkIEZsYWcgKi8KKyNkZWZpbmUgVUNCVVNZICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIEJ1c3kgRmxhZyAqLworI2RlZmluZSBVQ0lETEUgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgSWRsZSBsaW5lIGRldGVjdGVkIEZsYWcgKi8KKworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDgwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDQwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDEwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ05BQ0tJRSAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE5BQ0sgQ29uZGl0aW9uIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVUNTVFBJRSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTVE9QIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RUSUUgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1RBUlQgQ29uZGl0aW9uIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVUNBTElFICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBMb3N0IGludGVycnVwdCBlbmFibGUgKi8KKworI2RlZmluZSBVQ1NDTExPVyAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFNDTCBsb3cgKi8KKyNkZWZpbmUgVUNHQyAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBHZW5lcmFsIENhbGwgYWRkcmVzcyByZWNlaXZlZCBGbGFnICovCisjZGVmaW5lIFVDQkJVU1kgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnVzIEJ1c3kgRmxhZyAqLworI2RlZmluZSBVQ05BQ0tJRkcgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE5BSyBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFBJRkcgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTVE9QIENvbmRpdGlvbiBpbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBVQ1NUVElGRyAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBVQ0FMSUZHICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEFyYml0cmF0aW9uIExvc3QgaW50ZXJydXB0IEZsYWcgKi8KKworI2RlZmluZSBVQ0lSVFhQTDUgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDUgKi8KKyNkZWZpbmUgVUNJUlRYUEw0ICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCA0ICovCisjZGVmaW5lIFVDSVJUWFBMMyAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMyAqLworI2RlZmluZSBVQ0lSVFhQTDIgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDIgKi8KKyNkZWZpbmUgVUNJUlRYUEwxICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAxICovCisjZGVmaW5lIFVDSVJUWFBMMCAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMCAqLworI2RlZmluZSBVQ0lSVFhDTEsgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgQ2xvY2sgU2VsZWN0ICovCisjZGVmaW5lIFVDSVJFTiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogSVJEQSBFbmNvZGVyL0RlY29kZXIgZW5hYmxlICovCisKKyNkZWZpbmUgVUNJUlJYRkw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJSWEZMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSUlhGTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlJYRkwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJSWEZMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSUlhGTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlJYUEwgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgSW5wdXQgUG9sYXJpdHkgKi8KKyNkZWZpbmUgVUNJUlJYRkUgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIGVuYWJsZSAqLworCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4ODApICAgIC8qIHJlc2VydmVkICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4NDApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDREVMSU0xICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQnJlYWsgU3luYyBEZWxpbWl0ZXIgMSAqLworI2RlZmluZSBVQ0RFTElNMCAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDAgKi8KKyNkZWZpbmUgVUNTVE9FICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBTeW5jLUZpZWxkIFRpbWVvdXQgZXJyb3IgKi8KKyNkZWZpbmUgVUNCVE9FICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBCcmVhayBUaW1lb3V0IGVycm9yICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MDIpICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDQUJERU4gICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXV0byBCYXVkIFJhdGUgZGV0ZWN0IGVuYWJsZSAqLworCisjZGVmaW5lIFVDR0NFTiAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogSTJDIEdlbmVyYWwgQ2FsbCBlbmFibGUgKi8KKyNkZWZpbmUgVUNPQTkgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOSAqLworI2RlZmluZSBVQ09BOCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDT0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDcgKi8KKyNkZWZpbmUgVUNPQTYgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNiAqLworI2RlZmluZSBVQ09BNSAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDT0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDQgKi8KKyNkZWZpbmUgVUNPQTMgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMyAqLworI2RlZmluZSBVQ09BMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAyICovCisjZGVmaW5lIFVDT0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDEgKi8KKyNkZWZpbmUgVUNPQTAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMCAqLworCisjZGVmaW5lIFVDU0E5ICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgOSAqLworI2RlZmluZSBVQ1NBOCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDggKi8KKyNkZWZpbmUgVUNTQTcgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDU0E2ICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNiAqLworI2RlZmluZSBVQ1NBNSAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDUgKi8KKyNkZWZpbmUgVUNTQTQgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDU0EzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMyAqLworI2RlZmluZSBVQ1NBMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDIgKi8KKyNkZWZpbmUgVUNTQTEgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAxICovCisjZGVmaW5lIFVDU0EwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGRTApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworCisjZGVmaW5lIEJBU0lDVElNRVJfVkVDVE9SICAgICAgICgwICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIEJhc2ljIFRpbWVyIC8gUlRDICovCisvKiNkZWZpbmUgQkFTSUNUSU1FUl9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAvIFJUQyAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDEgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjFUWF9WRUNUT1IgICAgICAgICgyICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU0IFVTQ0kgQTEvQjEgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0NJQUIxVFhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDIiKSAgKi8gLyogMHhGRkU0IFVTQ0kgQTEvQjEgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjFSWF9WRUNUT1IgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFVTQ0kgQTEvQjEgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQ0lBQjFSWF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgVVNDSSBBMS9CMSBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFNEMTZBX1ZFQ1RPUiAgICAgICAgICAgICg3ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIEFEQyAqLworLyojZGVmaW5lIFNEMTZBX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNyIpICAqLyAvKiAweEZGRUUgQURDICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwVFhfVkVDVE9SICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBVU0NJIEEwL0IwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNDSUFCMFRYX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBVU0NJIEEwL0IwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJQUIwUlhfVkVDVE9SICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBVU0NJIEEwL0IwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0NJQUIwUlhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFVTQ0kgQTAvQjAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtMiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTIsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweDQ3eDQgKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHg1NHguaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4NTR4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBjNzhiMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4NTR4LmgKQEAgLTAsMCArMSwzNjI3IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHg1NHggZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMS40CisqCisqIFJldi4gMC4wLCBTZXR1cAorKiBSZXYuIDAuMSwgdXBkYXRlZCBQTU0gKG5vdyBjb250YWlucyBhbHJlYWR5IG5ldyBkZWZpbml0aW9ucyB3aXRoIHN3YXBwZWQgSUZHIGZsYWdzIGZvciBTVlNISUZHL1NWU0xJRkcKKyogUmV2LiAwLjIsIHVwZGF0ZWQgVVNDSS9JMkMgRmxhZ3MgKFVDQnhJRkcgbm90IHVzZWQgY29ycmVjdGx5KQorKiBSZXYuIDAuMywgY2hhbmdlZCBSVENFVklGRyB0byBSVENURVZJRkcgLyBjaGFuZ2VkIFJUSVYgdG8gUlRDSVYKKyogUmV2LiAwLjQsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqIFJldi4gMC41LCBjaGFuZ2VkICd2b2lkIF9fZGF0YTIwICogdm9sYXRpbGUnIGRlZmluaXRpb24KKyogUmV2LiAxLjAsIGZpeGVkIHdyb25nIGJpdCBkZWZpbml0aW9ucyBpbiBGTExDVEw3CisqIFJldi4gMS4xLCBmaXhlZCB3cm9uZyBkZWZpbml0aW9ucyBmb3Igc29tZSBQeERTIGFkZHJlc3NlcworKiBSZXYuIDEuMiwgZml4ZWQgd3JvbmcgYmFzZSBhZGRyZXNzIGZvciBSVEMKKyogUmV2LiAxLjMsIGZpeGVkIFNZU1JTVElWIERlZmluaXRpb25zCisqIFJldi4gMS40LCByZW1vdmVkIHNvbWUgdW51c2VkIERlZmluaXRpb25zIGZvciBQTU0KKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweDU0eAorI2RlZmluZSBfX21zcDQzMHg1NHgKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworLy8jZGVmaW5lIFNGUl8yMEJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCit0eXBlZGVmIHZvaWQgKCogX19TRlJfRkFSUFRSKSgpOworI2RlZmluZSBTRlJfMjBCSVQoYWRkcmVzcykgZXh0ZXJuIF9fU0ZSX0ZBUlBUUiBhZGRyZXNzCisjZGVmaW5lIFNGUl8zMkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgYWRkcmVzcworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFOREFSRCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQklUMCAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBCSVQxICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIEJJVDIgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgQklUMyAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBCSVQ0ICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIEJJVDUgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgQklUNiAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBCSVQ3ICAgICAgICAgICAgICAgICAgICgweDAwODApCisjZGVmaW5lIEJJVDggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgQklUOSAgICAgICAgICAgICAgICAgICAoMHgwMjAwKQorI2RlZmluZSBCSVRBICAgICAgICAgICAgICAgICAgICgweDA0MDApCisjZGVmaW5lIEJJVEIgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkKKyNkZWZpbmUgQklUQyAgICAgICAgICAgICAgICAgICAoMHgxMDAwKQorI2RlZmluZSBCSVREICAgICAgICAgICAgICAgICAgICgweDIwMDApCisjZGVmaW5lIEJJVEUgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkKKyNkZWZpbmUgQklURiAgICAgICAgICAgICAgICAgICAoMHg4MDAwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQVRVUyBSRUdJU1RFUiBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQyAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBaICAgICAgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIE4gICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgViAgICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBHSUUgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIENQVU9GRiAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgT1NDT0ZGICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBTQ0cwICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFNDRzEgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworLyogTG93IFBvd2VyIE1vZGVzIGNvZGVkIHdpdGggQml0cyA0LTcgaW4gU1IgKi8KKworI2lmZGVmIF9fQVNNX0hFQURFUl9fIC8qIEJlZ2luICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKyNkZWZpbmUgTFBNMCAgICAgICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xICAgICAgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMiAgICAgICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTMgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTQgICAgICAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorLyogRW5kICNkZWZpbmVzIGZvciBhc3NlbWJsZXIgKi8KKworI2Vsc2UgLyogQmVnaW4gI2RlZmluZXMgZm9yIEMgKi8KKyNkZWZpbmUgTFBNMF9iaXRzICAgICAgICAgICAgICAoQ1BVT0ZGKQorI2RlZmluZSBMUE0xX2JpdHMgICAgICAgICAgICAgIChTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNMl9iaXRzICAgICAgICAgICAgICAoU0NHMStDUFVPRkYpCisjZGVmaW5lIExQTTNfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTRfYml0cyAgICAgICAgICAgICAgKFNDRzErU0NHMCtPU0NPRkYrQ1BVT0ZGKQorCisjaW5jbHVkZSA8SW40MzAuaD4KKworI2RlZmluZSBMUE0wICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0wX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0wX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTBfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTEgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTFfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTFfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMV9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMiAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMl9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMl9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0yX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0zICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0zX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE0zX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTNfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTQgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTRfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSA0ICovCisjZGVmaW5lIExQTTRfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNNF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDQgKi8KKyNlbmRpZiAvKiBFbmQgI2RlZmluZXMgZm9yIEMgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDUFUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX01TUDQzMFhWMl9DUFVfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBpdCBoYXMgTVNQNDMwWFYyIENQVSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBBREMxMiBQTFVTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19BREMxMl9QTFVTX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoQURDMTJDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIrIENvbnRyb2wgMCAqLworU0ZSXzhCSVQoQURDMTJDVEwwX0wpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyKyBDb250cm9sIDAgKi8KK1NGUl84QklUKEFEQzEyQ1RMMF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMisgQ29udHJvbCAwICovCitTRlJfMTZCSVQoQURDMTJDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIrIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQURDMTJDVEwxX0wpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyKyBDb250cm9sIDEgKi8KK1NGUl84QklUKEFEQzEyQ1RMMV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMisgQ29udHJvbCAxICovCitTRlJfMTZCSVQoQURDMTJDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIrIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQURDMTJDVEwyX0wpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyKyBDb250cm9sIDIgKi8KK1NGUl84QklUKEFEQzEyQ1RMMl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMisgQ29udHJvbCAyICovCitTRlJfMTZCSVQoQURDMTJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIrIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChBREMxMklGR19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIrIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChBREMxMklGR19IKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIrIEludGVycnVwdCBGbGFnICovCitTRlJfMTZCSVQoQURDMTJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIrIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKEFEQzEySUVfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMisgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoQURDMTJJRV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyKyBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfMTZCSVQoQURDMTJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIrIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzhCSVQoQURDMTJJVl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyKyBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl84QklUKEFEQzEySVZfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMisgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisKK1NGUl8xNkJJVChBREMxMk1FTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAwICovCitTRlJfOEJJVChBREMxMk1FTTBfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMCAqLworU0ZSXzhCSVQoQURDMTJNRU0wX0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDAgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxICovCitTRlJfOEJJVChBREMxMk1FTTFfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMSAqLworU0ZSXzhCSVQoQURDMTJNRU0xX0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEgKi8KK1NGUl8xNkJJVChBREMxMk1FTTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAyICovCitTRlJfOEJJVChBREMxMk1FTTJfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMiAqLworU0ZSXzhCSVQoQURDMTJNRU0yX0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDIgKi8KK1NGUl8xNkJJVChBREMxMk1FTTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAzICovCitTRlJfOEJJVChBREMxMk1FTTNfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMyAqLworU0ZSXzhCSVQoQURDMTJNRU0zX0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDMgKi8KK1NGUl8xNkJJVChBREMxMk1FTTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA0ICovCitTRlJfOEJJVChBREMxMk1FTTRfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNCAqLworU0ZSXzhCSVQoQURDMTJNRU00X0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDQgKi8KK1NGUl8xNkJJVChBREMxMk1FTTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA1ICovCitTRlJfOEJJVChBREMxMk1FTTVfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNSAqLworU0ZSXzhCSVQoQURDMTJNRU01X0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDUgKi8KK1NGUl8xNkJJVChBREMxMk1FTTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA2ICovCitTRlJfOEJJVChBREMxMk1FTTZfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNiAqLworU0ZSXzhCSVQoQURDMTJNRU02X0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDYgKi8KK1NGUl8xNkJJVChBREMxMk1FTTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA3ICovCitTRlJfOEJJVChBREMxMk1FTTdfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNyAqLworU0ZSXzhCSVQoQURDMTJNRU03X0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDcgKi8KK1NGUl8xNkJJVChBREMxMk1FTTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA4ICovCitTRlJfOEJJVChBREMxMk1FTThfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgOCAqLworU0ZSXzhCSVQoQURDMTJNRU04X0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDggKi8KK1NGUl8xNkJJVChBREMxMk1FTTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA5ICovCitTRlJfOEJJVChBREMxMk1FTTlfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgOSAqLworU0ZSXzhCSVQoQURDMTJNRU05X0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDkgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMCAqLworU0ZSXzhCSVQoQURDMTJNRU0xMF9MKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEwICovCitTRlJfOEJJVChBREMxMk1FTTEwX0gpOyAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTAgKi8KK1NGUl8xNkJJVChBREMxMk1FTTExKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMSAqLworU0ZSXzhCSVQoQURDMTJNRU0xMV9MKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDExICovCitTRlJfOEJJVChBREMxMk1FTTExX0gpOyAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTEgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMiAqLworU0ZSXzhCSVQoQURDMTJNRU0xMl9MKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEyICovCitTRlJfOEJJVChBREMxMk1FTTEyX0gpOyAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTIgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMyAqLworU0ZSXzhCSVQoQURDMTJNRU0xM19MKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEzICovCitTRlJfOEJJVChBREMxMk1FTTEzX0gpOyAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTMgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE0KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNCAqLworU0ZSXzhCSVQoQURDMTJNRU0xNF9MKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDE0ICovCitTRlJfOEJJVChBREMxMk1FTTE0X0gpOyAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTQgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNSAqLworU0ZSXzhCSVQoQURDMTJNRU0xNV9MKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDE1ICovCitTRlJfOEJJVChBREMxMk1FTTE1X0gpOyAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTUgKi8KKyNkZWZpbmUgQURDMTJNRU1fICAgICAgICAgICAgICBBREMxMk1FTSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIEFEQzEyTUVNICAgICAgICAgICAgICAgQURDMTJNRU0wICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBBREMxMk1FTSAgICAgICAgICAgICAgICgoaW50KikgICAgICAgICZBREMxMk1FTTApIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorCitTRlJfOEJJVChBREMxMk1DVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEgKi8KK1NGUl84QklUKEFEQzEyTUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAyICovCitTRlJfOEJJVChBREMxMk1DVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDQgKi8KK1NGUl84QklUKEFEQzEyTUNUTDUpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA1ICovCitTRlJfOEJJVChBREMxMk1DVEw2KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDcgKi8KK1NGUl84QklUKEFEQzEyTUNUTDgpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA4ICovCitTRlJfOEJJVChBREMxMk1DVEw5KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgOSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTApOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEwICovCitTRlJfOEJJVChBREMxMk1DVEwxMSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTEgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEyKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTMpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEzICovCitTRlJfOEJJVChBREMxMk1DVEwxNCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTQgKi8KK1NGUl84QklUKEFEQzEyTUNUTDE1KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxNSAqLworI2RlZmluZSBBREMxMk1DVExfICAgICAgICAgICAgIEFEQzEyTUNUTCAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgQURDMTJNQ1RMICAgICAgICAgICAgICBBREMxMk1DVEwwICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIEFEQzEyTUNUTCAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgQURDMTJNQ1RMMCkgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKGZvciBDKSAqLworI2VuZGlmCisKKy8qIEFEQzEyQ1RMMCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgQURDMTJTQyAgICAgICAgICAgICAgICAoMHgwMDEpICAgICAgICAvKiBBREMxMiBTdGFydCBDb252ZXJzaW9uICovCisjZGVmaW5lIEFEQzEyRU5DICAgICAgICAgICAgICAgKDB4MDAyKSAgICAgICAgLyogQURDMTIgRW5hYmxlIENvbnZlcnNpb24gKi8KKyNkZWZpbmUgQURDMTJUT1ZJRSAgICAgICAgICAgICAoMHgwMDQpICAgICAgICAvKiBBREMxMiBUaW1lciBPdmVyZmxvdyBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIEFEQzEyT1ZJRSAgICAgICAgICAgICAgKDB4MDA4KSAgICAgICAgLyogQURDMTIgT3ZlcmZsb3cgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBBREMxMk9OICAgICAgICAgICAgICAgICgweDAxMCkgICAgICAgIC8qIEFEQzEyIE9uL2VuYWJsZSAqLworI2RlZmluZSBBREMxMlJFRk9OICAgICAgICAgICAgICgweDAyMCkgICAgICAgIC8qIEFEQzEyIFJlZmVyZW5jZSBvbiAqLworI2RlZmluZSBBREMxMlJFRjJfNVYgICAgICAgICAgICgweDA0MCkgICAgICAgIC8qIEFEQzEyIFJlZiAwOjEuNVYgLyAxOjIuNVYgKi8KKyNkZWZpbmUgQURDMTJNU0MgICAgICAgICAgICAgICAoMHgwODApICAgICAgICAvKiBBREMxMiBNdWx0aXBsZSBTYW1wbGVDb252ZXJzaW9uICovCisjZGVmaW5lIEFEQzEyU0hUMDAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMlNIVDAxICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJTSFQwMiAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAyICovCisjZGVmaW5lIEFEQzEyU0hUMDMgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMyAqLworI2RlZmluZSBBREMxMlNIVDEwICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTJTSFQxMSAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAxIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyU0hUMTIgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMiBTZWxlY3QgMiAqLworI2RlZmluZSBBREMxMlNIVDEzICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDMgU2VsZWN0IDMgKi8KKworLyogQURDMTJDVEwwIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBBREMxMlNDX0wgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEyIFN0YXJ0IENvbnZlcnNpb24gKi8KKyNkZWZpbmUgQURDMTJFTkNfTCAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBFbmFibGUgQ29udmVyc2lvbiAqLworI2RlZmluZSBBREMxMlRPVklFX0wgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyIFRpbWVyIE92ZXJmbG93IGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQURDMTJPVklFX0wgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMiBPdmVyZmxvdyBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIEFEQzEyT05fTCAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgT24vZW5hYmxlICovCisjZGVmaW5lIEFEQzEyUkVGT05fTCAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgUmVmZXJlbmNlIG9uICovCisjZGVmaW5lIEFEQzEyUkVGMl81Vl9MICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQURDMTIgUmVmIDA6MS41ViAvIDE6Mi41ViAqLworI2RlZmluZSBBREMxMk1TQ19MICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEFEQzEyIE11bHRpcGxlIFNhbXBsZUNvbnZlcnNpb24gKi8KKworLyogQURDMTJDVEwwIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBBREMxMlNIVDAwX0ggICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTJTSFQwMV9IICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyU0hUMDJfSCAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMiAqLworI2RlZmluZSBBREMxMlNIVDAzX0ggICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDMgKi8KKyNkZWZpbmUgQURDMTJTSFQxMF9IICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyU0hUMTFfSCAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMlNIVDEyX0ggICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDIgU2VsZWN0IDIgKi8KKyNkZWZpbmUgQURDMTJTSFQxM19IICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAzIFNlbGVjdCAzICovCisKKyNkZWZpbmUgQURDMTJTSFQwXzAgICAgICAgICAgICAoMCoweDEwMHUpCisjZGVmaW5lIEFEQzEyU0hUMF8xICAgICAgICAgICAgKDEqMHgxMDB1KQorI2RlZmluZSBBREMxMlNIVDBfMiAgICAgICAgICAgICgyKjB4MTAwdSkKKyNkZWZpbmUgQURDMTJTSFQwXzMgICAgICAgICAgICAoMyoweDEwMHUpCisjZGVmaW5lIEFEQzEyU0hUMF80ICAgICAgICAgICAgKDQqMHgxMDB1KQorI2RlZmluZSBBREMxMlNIVDBfNSAgICAgICAgICAgICg1KjB4MTAwdSkKKyNkZWZpbmUgQURDMTJTSFQwXzYgICAgICAgICAgICAoNioweDEwMHUpCisjZGVmaW5lIEFEQzEyU0hUMF83ICAgICAgICAgICAgKDcqMHgxMDB1KQorI2RlZmluZSBBREMxMlNIVDBfOCAgICAgICAgICAgICg4KjB4MTAwdSkKKyNkZWZpbmUgQURDMTJTSFQwXzkgICAgICAgICAgICAoOSoweDEwMHUpCisjZGVmaW5lIEFEQzEyU0hUMF8xMCAgICAgICAgICAgKDEwKjB4MTAwdSkKKyNkZWZpbmUgQURDMTJTSFQwXzExICAgICAgICAgICAoMTEqMHgxMDB1KQorI2RlZmluZSBBREMxMlNIVDBfMTIgICAgICAgICAgICgxMioweDEwMHUpCisjZGVmaW5lIEFEQzEyU0hUMF8xMyAgICAgICAgICAgKDEzKjB4MTAwdSkKKyNkZWZpbmUgQURDMTJTSFQwXzE0ICAgICAgICAgICAoMTQqMHgxMDB1KQorI2RlZmluZSBBREMxMlNIVDBfMTUgICAgICAgICAgICgxNSoweDEwMHUpCisKKyNkZWZpbmUgQURDMTJTSFQxXzAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBBREMxMlNIVDFfMSAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIEFEQzEyU0hUMV8yICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgQURDMTJTSFQxXzMgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBBREMxMlNIVDFfNCAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIEFEQzEyU0hUMV81ICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgQURDMTJTSFQxXzYgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBBREMxMlNIVDFfNyAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIEFEQzEyU0hUMV84ICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgQURDMTJTSFQxXzkgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBBREMxMlNIVDFfMTAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBBREMxMlNIVDFfMTEgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBBREMxMlNIVDFfMTIgICAgICAgICAgICgxMioweDEwMDB1KQorI2RlZmluZSBBREMxMlNIVDFfMTMgICAgICAgICAgICgxMyoweDEwMDB1KQorI2RlZmluZSBBREMxMlNIVDFfMTQgICAgICAgICAgICgxNCoweDEwMDB1KQorI2RlZmluZSBBREMxMlNIVDFfMTUgICAgICAgICAgICgxNSoweDEwMDB1KQorCisvKiBBREMxMkNUTDEgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIEFEQzEyQlVTWSAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgQnVzeSAqLworI2RlZmluZSBBREMxMkNPTlNFUTAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTJDT05TRVExICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyU1NFTDAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyU1NFTDEgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMkRJVjEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJESVYyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAyICovCisjZGVmaW5lIEFEQzEySVNTSCAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTIgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBBREMxMlNIUCAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFB1bHNlIE1vZGUgKi8KKyNkZWZpbmUgQURDMTJTSFMwICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBBREMxMlNIUzEgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIEFEQzEyQ1NUQVJUQUREMCAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDAgKi8KKyNkZWZpbmUgQURDMTJDU1RBUlRBREQxICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMSAqLworI2RlZmluZSBBREMxMkNTVEFSVEFERDIgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAyICovCisjZGVmaW5lIEFEQzEyQ1NUQVJUQUREMyAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDMgKi8KKworLyogQURDMTJDVEwxIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBBREMxMkJVU1lfTCAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEyIEJ1c3kgKi8KKyNkZWZpbmUgQURDMTJDT05TRVEwX0wgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyQ09OU0VRMV9MICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTZXF1ZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMlNTRUwwX0wgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEyIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMlNTRUwxX0wgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEyIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMkRJVjBfTCAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTJESVYxX0wgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMl9MICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMiAqLworCisvKiBBREMxMkNUTDEgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIEFEQzEySVNTSF9IICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBBREMxMlNIUF9IICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFB1bHNlIE1vZGUgKi8KKyNkZWZpbmUgQURDMTJTSFMwX0ggICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBBREMxMlNIUzFfSCAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIEFEQzEyQ1NUQVJUQUREMF9IICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDAgKi8KKyNkZWZpbmUgQURDMTJDU1RBUlRBREQxX0ggICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMSAqLworI2RlZmluZSBBREMxMkNTVEFSVEFERDJfSCAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAyICovCisjZGVmaW5lIEFEQzEyQ1NUQVJUQUREM19IICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDMgKi8KKworI2RlZmluZSBBREMxMkNPTlNFUV8wICAgICAgICAgICgwKjJ1KQorI2RlZmluZSBBREMxMkNPTlNFUV8xICAgICAgICAgICgxKjJ1KQorI2RlZmluZSBBREMxMkNPTlNFUV8yICAgICAgICAgICgyKjJ1KQorI2RlZmluZSBBREMxMkNPTlNFUV8zICAgICAgICAgICgzKjJ1KQorI2RlZmluZSBBREMxMlNTRUxfMCAgICAgICAgICAgICgwKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMSAgICAgICAgICAgICgxKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMiAgICAgICAgICAgICgyKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMyAgICAgICAgICAgICgzKjh1KQorI2RlZmluZSBBREMxMkRJVl8wICAgICAgICAgICAgICgwKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8xICAgICAgICAgICAgICgxKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8yICAgICAgICAgICAgICgyKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8zICAgICAgICAgICAgICgzKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl80ICAgICAgICAgICAgICg0KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl81ICAgICAgICAgICAgICg1KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl82ICAgICAgICAgICAgICg2KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl83ICAgICAgICAgICAgICg3KjB4MjB1KQorI2RlZmluZSBBREMxMlNIU18wICAgICAgICAgICAgICgwKjB4NDAwdSkKKyNkZWZpbmUgQURDMTJTSFNfMSAgICAgICAgICAgICAoMSoweDQwMHUpCisjZGVmaW5lIEFEQzEyU0hTXzIgICAgICAgICAgICAgKDIqMHg0MDB1KQorI2RlZmluZSBBREMxMlNIU18zICAgICAgICAgICAgICgzKjB4NDAwdSkKKyNkZWZpbmUgQURDMTJDU1RBUlRBRERfMCAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBBREMxMkNTVEFSVEFERF8xICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIEFEQzEyQ1NUQVJUQUREXzIgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgQURDMTJDU1RBUlRBRERfMyAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBBREMxMkNTVEFSVEFERF80ICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIEFEQzEyQ1NUQVJUQUREXzUgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgQURDMTJDU1RBUlRBRERfNiAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBBREMxMkNTVEFSVEFERF83ICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIEFEQzEyQ1NUQVJUQUREXzggICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgQURDMTJDU1RBUlRBRERfOSAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBBREMxMkNTVEFSVEFERF8xMCAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBBREMxMkNTVEFSVEFERF8xMSAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBBREMxMkNTVEFSVEFERF8xMiAgICAgICgxMioweDEwMDB1KQorI2RlZmluZSBBREMxMkNTVEFSVEFERF8xMyAgICAgICgxMyoweDEwMDB1KQorI2RlZmluZSBBREMxMkNTVEFSVEFERF8xNCAgICAgICgxNCoweDEwMDB1KQorI2RlZmluZSBBREMxMkNTVEFSVEFERF8xNSAgICAgICgxNSoweDEwMDB1KQorCisvKiBBREMxMkNUTDIgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIEFEQzEyUkVGQlVSU1QgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIrIFJlZmVyZW5jZSBCdXJzdCAqLworI2RlZmluZSBBREMxMlJFRk9VVCAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyKyBSZWZlcmVuY2UgT3V0ICovCisjZGVmaW5lIEFEQzEyU1IgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTIrIFNhbXBsaW5nIFJhdGUgKi8KKyNkZWZpbmUgQURDMTJERiAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMisgRGF0YSBGb3JtYXQgKi8KKyNkZWZpbmUgQURDMTJSRVMwICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMisgUmVzb2x1dGlvbiBCaXQ6IDAgKi8KKyNkZWZpbmUgQURDMTJSRVMxICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMisgUmVzb2x1dGlvbiBCaXQ6IDEgKi8KKyNkZWZpbmUgQURDMTJUQ09GRiAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMisgVGVtcGVyYXR1cmUgU2Vuc29yIE9mZiAqLworI2RlZmluZSBBREMxMlBESUYwICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEyKyBwcmVkaXZpZGVyIDA6LzEgICAxOi80ICovCisKKy8qIEFEQzEyQ1RMMiBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgQURDMTJSRUZCVVJTVF9MICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBBREMxMisgUmVmZXJlbmNlIEJ1cnN0ICovCisjZGVmaW5lIEFEQzEyUkVGT1VUX0wgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTIrIFJlZmVyZW5jZSBPdXQgKi8KKyNkZWZpbmUgQURDMTJTUl9MICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMisgU2FtcGxpbmcgUmF0ZSAqLworI2RlZmluZSBBREMxMkRGX0wgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEyKyBEYXRhIEZvcm1hdCAqLworI2RlZmluZSBBREMxMlJFUzBfTCAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEyKyBSZXNvbHV0aW9uIEJpdDogMCAqLworI2RlZmluZSBBREMxMlJFUzFfTCAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEyKyBSZXNvbHV0aW9uIEJpdDogMSAqLworI2RlZmluZSBBREMxMlRDT0ZGX0wgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEFEQzEyKyBUZW1wZXJhdHVyZSBTZW5zb3IgT2ZmICovCisKKy8qIEFEQzEyQ1RMMiBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgQURDMTJQRElGMF9IICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBBREMxMisgcHJlZGl2aWRlciAwOi8xICAgMTovNCAqLworCisjZGVmaW5lIEFEQzEyUkVTXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogQURDMTIrIFJlc29sdXRpb24gOiA4IEJpdCAqLworI2RlZmluZSBBREMxMlJFU18xICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEyKyBSZXNvbHV0aW9uIDogMTAgQml0ICovCisjZGVmaW5lIEFEQzEyUkVTXzIgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIrIFJlc29sdXRpb24gOiAxMiBCaXQgKi8KKyNkZWZpbmUgQURDMTJSRVNfMyAgICAgICAgICAgICAoMHgwMDMwKSAgICAgICAvKiBBREMxMisgUmVzb2x1dGlvbiA6IHJlc2VydmVkICovCisKKy8qIEFEQzEyTUNUTHggQ29udHJvbCBCaXRzICovCisjZGVmaW5lIEFEQzEySU5DSDAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgQURDMTJJTkNIMSAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBBREMxMklOQ0gyICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIEFEQzEySU5DSDMgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDMgKi8KKyNkZWZpbmUgQURDMTJTUkVGMCAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAwICovCisjZGVmaW5lIEFEQzEyU1JFRjEgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMSAqLworI2RlZmluZSBBREMxMlNSRUYyICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDIgKi8KKyNkZWZpbmUgQURDMTJFT1MgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBFbmQgb2YgU2VxdWVuY2UgKi8KKworLyogQURDMTJNQ1RMeCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgQURDMTJJTkNIMF9MICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBBREMxMklOQ0gxX0wgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIEFEQzEySU5DSDJfTCAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDIgKi8KKyNkZWZpbmUgQURDMTJJTkNIM19MICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMyAqLworI2RlZmluZSBBREMxMlNSRUYwX0wgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDAgKi8KKyNkZWZpbmUgQURDMTJTUkVGMV9MICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAxICovCisjZGVmaW5lIEFEQzEyU1JFRjJfTCAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMiAqLworI2RlZmluZSBBREMxMkVPU19MICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEFEQzEyIEVuZCBvZiBTZXF1ZW5jZSAqLworCisvKiBBREMxMk1DVEx4IENvbnRyb2wgQml0cyAqLworCisjZGVmaW5lIEFEQzEySU5DSF8wICAgICAgICAgICAgKDApCisjZGVmaW5lIEFEQzEySU5DSF8xICAgICAgICAgICAgKDEpCisjZGVmaW5lIEFEQzEySU5DSF8yICAgICAgICAgICAgKDIpCisjZGVmaW5lIEFEQzEySU5DSF8zICAgICAgICAgICAgKDMpCisjZGVmaW5lIEFEQzEySU5DSF80ICAgICAgICAgICAgKDQpCisjZGVmaW5lIEFEQzEySU5DSF81ICAgICAgICAgICAgKDUpCisjZGVmaW5lIEFEQzEySU5DSF82ICAgICAgICAgICAgKDYpCisjZGVmaW5lIEFEQzEySU5DSF83ICAgICAgICAgICAgKDcpCisjZGVmaW5lIEFEQzEySU5DSF84ICAgICAgICAgICAgKDgpCisjZGVmaW5lIEFEQzEySU5DSF85ICAgICAgICAgICAgKDkpCisjZGVmaW5lIEFEQzEySU5DSF8xMCAgICAgICAgICAgKDEwKQorI2RlZmluZSBBREMxMklOQ0hfMTEgICAgICAgICAgICgxMSkKKyNkZWZpbmUgQURDMTJJTkNIXzEyICAgICAgICAgICAoMTIpCisjZGVmaW5lIEFEQzEySU5DSF8xMyAgICAgICAgICAgKDEzKQorI2RlZmluZSBBREMxMklOQ0hfMTQgICAgICAgICAgICgxNCkKKyNkZWZpbmUgQURDMTJJTkNIXzE1ICAgICAgICAgICAoMTUpCisKKyNkZWZpbmUgQURDMTJTUkVGXzAgICAgICAgICAgICAoMCoweDEwdSkKKyNkZWZpbmUgQURDMTJTUkVGXzEgICAgICAgICAgICAoMSoweDEwdSkKKyNkZWZpbmUgQURDMTJTUkVGXzIgICAgICAgICAgICAoMioweDEwdSkKKyNkZWZpbmUgQURDMTJTUkVGXzMgICAgICAgICAgICAoMyoweDEwdSkKKyNkZWZpbmUgQURDMTJTUkVGXzQgICAgICAgICAgICAoNCoweDEwdSkKKyNkZWZpbmUgQURDMTJTUkVGXzUgICAgICAgICAgICAoNSoweDEwdSkKKyNkZWZpbmUgQURDMTJTUkVGXzYgICAgICAgICAgICAoNioweDEwdSkKKyNkZWZpbmUgQURDMTJTUkVGXzcgICAgICAgICAgICAoNyoweDEwdSkKKworLyogQURDMTJJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBBREMxMklWX05PTkUgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJPVklGRyAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTJPVklGRyAqLworI2RlZmluZSBBREMxMklWX0FEQzEyVE9WSUZHICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyVE9WSUZHICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcwICAgICAgKDB4MDAwNikgICAgICAgLyogQURDMTJJRkcwICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTJJRkcxICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcyICAgICAgKDB4MDAwQSkgICAgICAgLyogQURDMTJJRkcyICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkczICAgICAgKDB4MDAwQykgICAgICAgLyogQURDMTJJRkczICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc0ICAgICAgKDB4MDAwRSkgICAgICAgLyogQURDMTJJRkc0ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc1ICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTJJRkc1ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc2ICAgICAgKDB4MDAxMikgICAgICAgLyogQURDMTJJRkc2ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc3ICAgICAgKDB4MDAxNCkgICAgICAgLyogQURDMTJJRkc3ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc4ICAgICAgKDB4MDAxNikgICAgICAgLyogQURDMTJJRkc4ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkc5ICAgICAgKDB4MDAxOCkgICAgICAgLyogQURDMTJJRkc5ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMCAgICAgKDB4MDAxQSkgICAgICAgLyogQURDMTJJRkcxMCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTEgICAgICgweDAwMUMpICAgICAgIC8qIEFEQzEySUZHMTEgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEyICAgICAoMHgwMDFFKSAgICAgICAvKiBBREMxMklGRzEyICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMyAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTJJRkcxMyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTQgICAgICgweDAwMjIpICAgICAgIC8qIEFEQzEySUZHMTQgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzE1ICAgICAoMHgwMDI0KSAgICAgICAvKiBBREMxMklGRzE1ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENSQyBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19DUkNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoQ1JDREkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1JDIERhdGEgSW4gUmVnaXN0ZXIgKi8KK1NGUl84QklUKENSQ0RJX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDUkMgRGF0YSBJbiBSZWdpc3RlciAqLworU0ZSXzhCSVQoQ1JDRElfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENSQyBEYXRhIEluIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoQ1JDSU5JUkVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ1JDIEluaXRpYWxpc2F0aW9uIFJlZ2lzdGVyIGFuZCBSZXN1bHQgUmVnaXN0ZXIqLworU0ZSXzhCSVQoQ1JDSU5JUkVTX0wpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIENSQyBJbml0aWFsaXNhdGlvbiBSZWdpc3RlciBhbmQgUmVzdWx0IFJlZ2lzdGVyKi8KK1NGUl84QklUKENSQ0lOSVJFU19IKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBDUkMgSW5pdGlhbGlzYXRpb24gUmVnaXN0ZXIgYW5kIFJlc3VsdCBSZWdpc3RlciovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRE1BX1gKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0RNQVhfM19fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChETUFDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgTW9kdWxlIENvbnRyb2wgMCAqLworU0ZSXzhCSVQoRE1BQ1RMMF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBNb2R1bGUgQ29udHJvbCAwICovCitTRlJfOEJJVChETUFDVEwwX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIE1vZHVsZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChETUFDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgTW9kdWxlIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoRE1BQ1RMMV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBNb2R1bGUgQ29udHJvbCAxICovCitTRlJfOEJJVChETUFDVEwxX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIE1vZHVsZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChETUFDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgTW9kdWxlIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoRE1BQ1RMMl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBNb2R1bGUgQ29udHJvbCAyICovCitTRlJfOEJJVChETUFDVEwyX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIE1vZHVsZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChETUFDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgTW9kdWxlIENvbnRyb2wgMyAqLworU0ZSXzhCSVQoRE1BQ1RMM19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBNb2R1bGUgQ29udHJvbCAzICovCitTRlJfOEJJVChETUFDVEwzX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIE1vZHVsZSBDb250cm9sIDMgKi8KK1NGUl8xNkJJVChETUFDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgTW9kdWxlIENvbnRyb2wgNCAqLworU0ZSXzhCSVQoRE1BQ1RMNF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBNb2R1bGUgQ29udHJvbCA0ICovCitTRlJfOEJJVChETUFDVEw0X0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIE1vZHVsZSBDb250cm9sIDQgKi8KK1NGUl8xNkJJVChETUFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfOEJJVChETUFJVl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzhCSVQoRE1BSVZfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KKworU0ZSXzE2QklUKERNQTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgQ29udHJvbCAqLworU0ZSXzhCSVQoRE1BMENUTF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgQ29udHJvbCAqLworU0ZSXzhCSVQoRE1BMENUTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgQ29udHJvbCAqLworU0ZSXzIwQklUKERNQTBTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgU291cmNlIEFkZHJlc3MgKi8KK1NGUl8yMEJJVChETUEwREEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAwIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUEwU1opOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAwIFRyYW5zZmVyIFNpemUgKi8KK1NGUl84QklUKERNQTBTWl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAwIFRyYW5zZmVyIFNpemUgKi8KK1NGUl84QklUKERNQTBTWl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAwIFRyYW5zZmVyIFNpemUgKi8KKworU0ZSXzE2QklUKERNQTFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgQ29udHJvbCAqLworU0ZSXzhCSVQoRE1BMUNUTF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgQ29udHJvbCAqLworU0ZSXzhCSVQoRE1BMUNUTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgQ29udHJvbCAqLworU0ZSXzIwQklUKERNQTFTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgU291cmNlIEFkZHJlc3MgKi8KK1NGUl8yMEJJVChETUExREEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUExU1opOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIFRyYW5zZmVyIFNpemUgKi8KK1NGUl84QklUKERNQTFTWl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIFRyYW5zZmVyIFNpemUgKi8KK1NGUl84QklUKERNQTFTWl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIFRyYW5zZmVyIFNpemUgKi8KKworU0ZSXzE2QklUKERNQTJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgQ29udHJvbCAqLworU0ZSXzhCSVQoRE1BMkNUTF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgQ29udHJvbCAqLworU0ZSXzhCSVQoRE1BMkNUTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgQ29udHJvbCAqLworU0ZSXzIwQklUKERNQTJTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgU291cmNlIEFkZHJlc3MgKi8KK1NGUl8yMEJJVChETUEyREEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAyIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUEyU1opOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAyIFRyYW5zZmVyIFNpemUgKi8KK1NGUl84QklUKERNQTJTWl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAyIFRyYW5zZmVyIFNpemUgKi8KK1NGUl84QklUKERNQTJTWl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAyIFRyYW5zZmVyIFNpemUgKi8KKworLyogRE1BQ1RMMCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgRE1BMFRTRUwwICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMCAqLworI2RlZmluZSBETUEwVFNFTDEgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IGJpdCAxICovCisjZGVmaW5lIERNQTBUU0VMMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgYml0IDIgKi8KKyNkZWZpbmUgRE1BMFRTRUwzICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMyAqLworI2RlZmluZSBETUEwVFNFTDQgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IGJpdCA0ICovCisjZGVmaW5lIERNQTFUU0VMMCAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgRE1BMVRTRUwxICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBETUExVFNFTDIgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IGJpdCAyICovCisjZGVmaW5lIERNQTFUU0VMMyAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgYml0IDMgKi8KKyNkZWZpbmUgRE1BMVRTRUw0ICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCBiaXQgNCAqLworCisvKiBETUFDVEwwIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBETUEwVFNFTDBfTCAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IGJpdCAwICovCisjZGVmaW5lIERNQTBUU0VMMV9MICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgYml0IDEgKi8KKyNkZWZpbmUgRE1BMFRTRUwyX0wgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMiAqLworI2RlZmluZSBETUEwVFNFTDNfTCAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IGJpdCAzICovCisjZGVmaW5lIERNQTBUU0VMNF9MICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgYml0IDQgKi8KKworLyogRE1BQ1RMMCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgRE1BMVRTRUwwX0ggICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCBiaXQgMCAqLworI2RlZmluZSBETUExVFNFTDFfSCAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IGJpdCAxICovCisjZGVmaW5lIERNQTFUU0VMMl9IICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgYml0IDIgKi8KKyNkZWZpbmUgRE1BMVRTRUwzX0ggICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCBiaXQgMyAqLworI2RlZmluZSBETUExVFNFTDRfSCAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IGJpdCA0ICovCisKKy8qIERNQUNUTDAxIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBETUEyVFNFTDAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IGJpdCAwICovCisjZGVmaW5lIERNQTJUU0VMMSAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDEgKi8KKyNkZWZpbmUgRE1BMlRTRUwyICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCBiaXQgMiAqLworI2RlZmluZSBETUEyVFNFTDMgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IGJpdCAzICovCisjZGVmaW5lIERNQTJUU0VMNCAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDQgKi8KKworLyogRE1BQ1RMMDEgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIERNQTJUU0VMMF9MICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgRE1BMlRTRUwxX0wgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBETUEyVFNFTDJfTCAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IGJpdCAyICovCisjZGVmaW5lIERNQTJUU0VMM19MICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDMgKi8KKyNkZWZpbmUgRE1BMlRTRUw0X0wgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCBiaXQgNCAqLworCisvKiBETUFDVEwwMSBDb250cm9sIEJpdHMgKi8KKworLyogRE1BQ1RMNCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgRU5OTUkgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBFbmFibGUgTk1JIGludGVycnVwdGlvbiBvZiBETUEgKi8KKyNkZWZpbmUgUk9VTkRST0JJTiAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBSb3VuZC1Sb2JpbiBETUEgY2hhbm5lbCBwcmlvcml0aWVzICovCisjZGVmaW5lIERNQVJNV0RJUyAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogSW5oaWJpdGVkIERNQSB0cmFuc2ZlcnMgZHVyaW5nIHJlYWQtbW9kaWZ5LXdyaXRlIENQVSBvcGVyYXRpb25zICovCisKKy8qIERNQUNUTDQgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIEVOTk1JX0wgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRW5hYmxlIE5NSSBpbnRlcnJ1cHRpb24gb2YgRE1BICovCisjZGVmaW5lIFJPVU5EUk9CSU5fTCAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogUm91bmQtUm9iaW4gRE1BIGNoYW5uZWwgcHJpb3JpdGllcyAqLworI2RlZmluZSBETUFSTVdESVNfTCAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEluaGliaXRlZCBETUEgdHJhbnNmZXJzIGR1cmluZyByZWFkLW1vZGlmeS13cml0ZSBDUFUgb3BlcmF0aW9ucyAqLworCisvKiBETUFDVEw0IENvbnRyb2wgQml0cyAqLworCisvKiBETUF4Q1RMIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBETUFSRVEgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEluaXRpYXRlIERNQSB0cmFuc2ZlciB3aXRoIERNQVRTRUwgKi8KKyNkZWZpbmUgRE1BQUJPUlQgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBETUEgdHJhbnNmZXIgYWJvcnRlZCBieSBOTUkgKi8KKyNkZWZpbmUgRE1BSUUgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBETUEgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBETUFJRkcgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIERNQSBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBETUFFTiAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERNQSBlbmFibGUgKi8KKyNkZWZpbmUgRE1BTEVWRUwgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBETUEgbGV2ZWwgc2Vuc2l0aXZlIHRyaWdnZXIgc2VsZWN0ICovCisjZGVmaW5lIERNQVNSQ0JZVEUgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRE1BIHNvdXJjZSBieXRlICovCisjZGVmaW5lIERNQURTVEJZVEUgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRE1BIGRlc3RpbmF0aW9uIGJ5dGUgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUjAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCBiaXQgMCAqLworI2RlZmluZSBETUFTUkNJTkNSMSAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IGJpdCAxICovCisjZGVmaW5lIERNQURTVElOQ1IwICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCBiaXQgMCAqLworI2RlZmluZSBETUFEU1RJTkNSMSAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgYml0IDEgKi8KKyNkZWZpbmUgRE1BRFQwICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSBiaXQgMCAqLworI2RlZmluZSBETUFEVDEgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIGJpdCAxICovCisjZGVmaW5lIERNQURUMiAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgYml0IDIgKi8KKworLyogRE1BeENUTCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgRE1BUkVRX0wgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJbml0aWF0ZSBETUEgdHJhbnNmZXIgd2l0aCBETUFUU0VMICovCisjZGVmaW5lIERNQUFCT1JUX0wgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRE1BIHRyYW5zZmVyIGFib3J0ZWQgYnkgTk1JICovCisjZGVmaW5lIERNQUlFX0wgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRE1BIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgRE1BSUZHX0wgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBETUEgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgRE1BRU5fTCAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBETUEgZW5hYmxlICovCisjZGVmaW5lIERNQUxFVkVMX0wgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRE1BIGxldmVsIHNlbnNpdGl2ZSB0cmlnZ2VyIHNlbGVjdCAqLworI2RlZmluZSBETUFTUkNCWVRFX0wgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIERNQSBzb3VyY2UgYnl0ZSAqLworI2RlZmluZSBETUFEU1RCWVRFX0wgICAgICAgICAgICgweDAwODApICAgICAgIC8qIERNQSBkZXN0aW5hdGlvbiBieXRlICovCisKKy8qIERNQXhDVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIERNQVNSQ0lOQ1IwX0ggICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRE1BIHNvdXJjZSBpbmNyZW1lbnQgYml0IDAgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUjFfSCAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCBiaXQgMSAqLworI2RlZmluZSBETUFEU1RJTkNSMF9IICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgYml0IDAgKi8KKyNkZWZpbmUgRE1BRFNUSU5DUjFfSCAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IGJpdCAxICovCisjZGVmaW5lIERNQURUMF9IICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgYml0IDAgKi8KKyNkZWZpbmUgRE1BRFQxX0ggICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSBiaXQgMSAqLworI2RlZmluZSBETUFEVDJfSCAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIGJpdCAyICovCisKKyNkZWZpbmUgRE1BU1dEVyAgICAgICAgICAgICAgICAoMCoweDAwNDB1KSAgICAvKiBETUEgdHJhbnNmZXI6IHNvdXJjZSB3b3JkIHRvIGRlc3RpbmF0aW9uIHdvcmQgKi8KKyNkZWZpbmUgRE1BU0JEVyAgICAgICAgICAgICAgICAoMSoweDAwNDB1KSAgICAvKiBETUEgdHJhbnNmZXI6IHNvdXJjZSBieXRlIHRvIGRlc3RpbmF0aW9uIHdvcmQgKi8KKyNkZWZpbmUgRE1BU1dEQiAgICAgICAgICAgICAgICAoMioweDAwNDB1KSAgICAvKiBETUEgdHJhbnNmZXI6IHNvdXJjZSB3b3JkIHRvIGRlc3RpbmF0aW9uIGJ5dGUgKi8KKyNkZWZpbmUgRE1BU0JEQiAgICAgICAgICAgICAgICAoMyoweDAwNDB1KSAgICAvKiBETUEgdHJhbnNmZXI6IHNvdXJjZSBieXRlIHRvIGRlc3RpbmF0aW9uIGJ5dGUgKi8KKworI2RlZmluZSBETUFTUkNJTkNSXzAgICAgICAgICAgICgwKjB4MDEwMHUpICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IDA6IHNvdXJjZSBhZGRyZXNzIHVuY2hhbmdlZCAqLworI2RlZmluZSBETUFTUkNJTkNSXzEgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IDE6IHNvdXJjZSBhZGRyZXNzIHVuY2hhbmdlZCAqLworI2RlZmluZSBETUFTUkNJTkNSXzIgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IDI6IHNvdXJjZSBhZGRyZXNzIGRlY3JlbWVudGVkICovCisjZGVmaW5lIERNQVNSQ0lOQ1JfMyAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogRE1BIHNvdXJjZSBpbmNyZW1lbnQgMzogc291cmNlIGFkZHJlc3MgaW5jcmVtZW50ZWQgKi8KKworI2RlZmluZSBETUFEU1RJTkNSXzAgICAgICAgICAgICgwKjB4MDQwMHUpICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgMDogZGVzdGluYXRpb24gYWRkcmVzcyB1bmNoYW5nZWQgKi8KKyNkZWZpbmUgRE1BRFNUSU5DUl8xICAgICAgICAgICAoMSoweDA0MDB1KSAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IDE6IGRlc3RpbmF0aW9uIGFkZHJlc3MgdW5jaGFuZ2VkICovCisjZGVmaW5lIERNQURTVElOQ1JfMiAgICAgICAgICAgKDIqMHgwNDAwdSkgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCAyOiBkZXN0aW5hdGlvbiBhZGRyZXNzIGRlY3JlbWVudGVkICovCisjZGVmaW5lIERNQURTVElOQ1JfMyAgICAgICAgICAgKDMqMHgwNDAwdSkgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCAzOiBkZXN0aW5hdGlvbiBhZGRyZXNzIGluY3JlbWVudGVkICovCisKKyNkZWZpbmUgRE1BRFRfMCAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSAwOiBTaW5nbGUgdHJhbnNmZXIgKi8KKyNkZWZpbmUgRE1BRFRfMSAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSAxOiBCbG9jayB0cmFuc2ZlciAqLworI2RlZmluZSBETUFEVF8yICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDI6IEJ1cnN0LUJsb2NrIHRyYW5zZmVyICovCisjZGVmaW5lIERNQURUXzMgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgMzogQnVyc3QtQmxvY2sgdHJhbnNmZXIgKi8KKyNkZWZpbmUgRE1BRFRfNCAgICAgICAgICAgICAgICAoNCoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSA0OiBSZXBlYXRlZCBTaW5nbGUgdHJhbnNmZXIgKi8KKyNkZWZpbmUgRE1BRFRfNSAgICAgICAgICAgICAgICAoNSoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSA1OiBSZXBlYXRlZCBCbG9jayB0cmFuc2ZlciAqLworI2RlZmluZSBETUFEVF82ICAgICAgICAgICAgICAgICg2KjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDY6IFJlcGVhdGVkIEJ1cnN0LUJsb2NrIHRyYW5zZmVyICovCisjZGVmaW5lIERNQURUXzcgICAgICAgICAgICAgICAgKDcqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgNzogUmVwZWF0ZWQgQnVyc3QtQmxvY2sgdHJhbnNmZXIgKi8KKworLyogRE1BSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgRE1BSVZfTk9ORSAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBETUFJVl9ETUEwSUZHICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERNQTBJRkcqLworI2RlZmluZSBETUFJVl9ETUExSUZHICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQTFJRkcqLworI2RlZmluZSBETUFJVl9ETUEySUZHICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIERNQTJJRkcqLworCisjZGVmaW5lIERNQTBUU0VMXzAgICAgICAgICAgICAgKDAqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMDogIERNQV9SRVEgKHN3KSAqLworI2RlZmluZSBETUEwVFNFTF8xICAgICAgICAgICAgICgxKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcjBfQSAoVEEwQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzIgICAgICAgICAgICAgKDIqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMjogIFRpbWVyMF9BIChUQTBDQ1IyLklGRykgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMyAgICAgICAgICAgICAoMyoweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAzOiAgVGltZXIxX0EgKFRBMUNDUjAuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF80ICAgICAgICAgICAgICg0KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDQ6ICBUaW1lcjFfQSAoVEExQ0NSMi5JRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzUgICAgICAgICAgICAgKDUqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgNTogIFRpbWVyQiAoVEJDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMFRTRUxfNiAgICAgICAgICAgICAoNioweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCA2OiAgVGltZXJCIChUQkNDUjIuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF83ICAgICAgICAgICAgICg3KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDc6ICBSZXNlcnZlZCAqLworI2RlZmluZSBETUEwVFNFTF84ICAgICAgICAgICAgICg4KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDg6ICBSZXNlcnZlZCAqLworI2RlZmluZSBETUEwVFNFTF85ICAgICAgICAgICAgICg5KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDk6ICBSZXNlcnZlZCAqLworI2RlZmluZSBETUEwVFNFTF8xMCAgICAgICAgICAgICgxMCoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDEwOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEwVFNFTF8xMSAgICAgICAgICAgICgxMSoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDExOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEwVFNFTF8xMiAgICAgICAgICAgICgxMioweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDEyOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEwVFNFTF8xMyAgICAgICAgICAgICgxMyoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDEzOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEwVFNFTF8xNCAgICAgICAgICAgICgxNCoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE0OiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEwVFNFTF8xNSAgICAgICAgICAgICgxNSoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE1OiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEwVFNFTF8xNiAgICAgICAgICAgICgxNioweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE2OiBVU0NJQTAgcmVjZWl2ZSAqLworI2RlZmluZSBETUEwVFNFTF8xNyAgICAgICAgICAgICgxNyoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE3OiBVU0NJQTAgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMTggICAgICAgICAgICAoMTgqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAxODogVVNDSUIwIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMTkgICAgICAgICAgICAoMTkqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAxOTogVVNDSUIwIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTBUU0VMXzIwICAgICAgICAgICAgKDIwKjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMjA6IFVTQ0lBMSByZWNlaXZlICovCisjZGVmaW5lIERNQTBUU0VMXzIxICAgICAgICAgICAgKDIxKjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMjE6IFVTQ0lBMSB0cmFuc21pdCAqLworI2RlZmluZSBETUEwVFNFTF8yMiAgICAgICAgICAgICgyMioweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDIyOiBVU0NJQjEgcmVjZWl2ZSAqLworI2RlZmluZSBETUEwVFNFTF8yMyAgICAgICAgICAgICgyMyoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDIzOiBVU0NJQjEgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMjQgICAgICAgICAgICAoMjQqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAyNDogQURDMTJJRkd4ICovCisjZGVmaW5lIERNQTBUU0VMXzI1ICAgICAgICAgICAgKDI1KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMjU6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTBUU0VMXzI2ICAgICAgICAgICAgKDI2KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMjY6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTBUU0VMXzI3ICAgICAgICAgICAgKDI3KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMjc6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTBUU0VMXzI4ICAgICAgICAgICAgKDI4KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMjg6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTBUU0VMXzI5ICAgICAgICAgICAgKDI5KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMjk6IE11bHRpcGxpZXIgcmVhZHkgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMzAgICAgICAgICAgICAoMzAqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAzMDogcHJldmlvdXMgRE1BIGNoYW5uZWwgRE1BMklGRyAqLworI2RlZmluZSBETUEwVFNFTF8zMSAgICAgICAgICAgICgzMSoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDMxOiBleHQuIFRyaWdnZXIgKERNQUUwKSAqLworCisjZGVmaW5lIERNQTFUU0VMXzAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMDogIERNQV9SRVEgKHN3KSAqLworI2RlZmluZSBETUExVFNFTF8xICAgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcjBfQSAoVEEwQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTFUU0VMXzIgICAgICAgICAgICAgKDIqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjogIFRpbWVyMF9BIChUQTBDQ1IyLklGRykgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMyAgICAgICAgICAgICAoMyoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAzOiAgVGltZXIxX0EgKFRBMUNDUjAuSUZHKSAqLworI2RlZmluZSBETUExVFNFTF80ICAgICAgICAgICAgICg0KjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDQ6ICBUaW1lcjFfQSAoVEExQ0NSMi5JRkcpICovCisjZGVmaW5lIERNQTFUU0VMXzUgICAgICAgICAgICAgKDUqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgNTogIFRpbWVyQiAoVEJDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMVRTRUxfNiAgICAgICAgICAgICAoNioweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCA2OiAgVGltZXJCIChUQkNDUjIuSUZHKSAqLworI2RlZmluZSBETUExVFNFTF83ICAgICAgICAgICAgICg3KjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDc6ICBSZXNlcnZlZCAqLworI2RlZmluZSBETUExVFNFTF84ICAgICAgICAgICAgICg4KjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDg6ICBSZXNlcnZlZCAqLworI2RlZmluZSBETUExVFNFTF85ICAgICAgICAgICAgICg5KjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDk6ICBSZXNlcnZlZCAqLworI2RlZmluZSBETUExVFNFTF8xMCAgICAgICAgICAgICgxMCoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDEwOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUExVFNFTF8xMSAgICAgICAgICAgICgxMSoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDExOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUExVFNFTF8xMiAgICAgICAgICAgICgxMioweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDEyOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUExVFNFTF8xMyAgICAgICAgICAgICgxMyoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDEzOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUExVFNFTF8xNCAgICAgICAgICAgICgxNCoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE0OiBSZXNlcnZlZCAqLworI2RlZmluZSBETUExVFNFTF8xNSAgICAgICAgICAgICgxNSoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE1OiBSZXNlcnZlZCAqLworI2RlZmluZSBETUExVFNFTF8xNiAgICAgICAgICAgICgxNioweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE2OiBVU0NJQTAgcmVjZWl2ZSAqLworI2RlZmluZSBETUExVFNFTF8xNyAgICAgICAgICAgICgxNyoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE3OiBVU0NJQTAgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMTggICAgICAgICAgICAoMTgqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAxODogVVNDSUIwIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMTkgICAgICAgICAgICAoMTkqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAxOTogVVNDSUIwIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTFUU0VMXzIwICAgICAgICAgICAgKDIwKjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjA6IFVTQ0lBMSByZWNlaXZlICovCisjZGVmaW5lIERNQTFUU0VMXzIxICAgICAgICAgICAgKDIxKjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjE6IFVTQ0lBMSB0cmFuc21pdCAqLworI2RlZmluZSBETUExVFNFTF8yMiAgICAgICAgICAgICgyMioweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDIyOiBVU0NJQjEgcmVjZWl2ZSAqLworI2RlZmluZSBETUExVFNFTF8yMyAgICAgICAgICAgICgyMyoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDIzOiBVU0NJQjEgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMjQgICAgICAgICAgICAoMjQqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAyNDogQURDMTJJRkd4ICovCisjZGVmaW5lIERNQTFUU0VMXzI1ICAgICAgICAgICAgKDI1KjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjU6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTFUU0VMXzI2ICAgICAgICAgICAgKDI2KjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjY6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTFUU0VMXzI3ICAgICAgICAgICAgKDI3KjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjc6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTFUU0VMXzI4ICAgICAgICAgICAgKDI4KjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjg6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTFUU0VMXzI5ICAgICAgICAgICAgKDI5KjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjk6IE11bHRpcGxpZXIgcmVhZHkgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMzAgICAgICAgICAgICAoMzAqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAzMDogcHJldmlvdXMgRE1BIGNoYW5uZWwgRE1BMElGRyAqLworI2RlZmluZSBETUExVFNFTF8zMSAgICAgICAgICAgICgzMSoweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDMxOiBleHQuIFRyaWdnZXIgKERNQUUwKSAqLworCisjZGVmaW5lIERNQTJUU0VMXzAgICAgICAgICAgICAgKDAqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMDogIERNQV9SRVEgKHN3KSAqLworI2RlZmluZSBETUEyVFNFTF8xICAgICAgICAgICAgICgxKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcjBfQSAoVEEwQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTJUU0VMXzIgICAgICAgICAgICAgKDIqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMjogIFRpbWVyMF9BIChUQTBDQ1IyLklGRykgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMyAgICAgICAgICAgICAoMyoweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAzOiAgVGltZXIxX0EgKFRBMUNDUjAuSUZHKSAqLworI2RlZmluZSBETUEyVFNFTF80ICAgICAgICAgICAgICg0KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDQ6ICBUaW1lcjFfQSAoVEExQ0NSMi5JRkcpICovCisjZGVmaW5lIERNQTJUU0VMXzUgICAgICAgICAgICAgKDUqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgNTogIFRpbWVyQiAoVEJDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMlRTRUxfNiAgICAgICAgICAgICAoNioweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA2OiAgVGltZXJCIChUQkNDUjIuSUZHKSAqLworI2RlZmluZSBETUEyVFNFTF83ICAgICAgICAgICAgICg3KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDc6ICBSZXNlcnZlZCAqLworI2RlZmluZSBETUEyVFNFTF84ICAgICAgICAgICAgICg4KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDg6ICBSZXNlcnZlZCAqLworI2RlZmluZSBETUEyVFNFTF85ICAgICAgICAgICAgICg5KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDk6ICBSZXNlcnZlZCAqLworI2RlZmluZSBETUEyVFNFTF8xMCAgICAgICAgICAgICgxMCoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDEwOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEyVFNFTF8xMSAgICAgICAgICAgICgxMSoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDExOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEyVFNFTF8xMiAgICAgICAgICAgICgxMioweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDEyOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEyVFNFTF8xMyAgICAgICAgICAgICgxMyoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDEzOiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEyVFNFTF8xNCAgICAgICAgICAgICgxNCoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDE0OiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEyVFNFTF8xNSAgICAgICAgICAgICgxNSoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDE1OiBSZXNlcnZlZCAqLworI2RlZmluZSBETUEyVFNFTF8xNiAgICAgICAgICAgICgxNioweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDE2OiBVU0NJQTAgcmVjZWl2ZSAqLworI2RlZmluZSBETUEyVFNFTF8xNyAgICAgICAgICAgICgxNyoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDE3OiBVU0NJQTAgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTggICAgICAgICAgICAoMTgqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxODogVVNDSUIwIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTkgICAgICAgICAgICAoMTkqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxOTogVVNDSUIwIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTJUU0VMXzIwICAgICAgICAgICAgKDIwKjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMjA6IFVTQ0lBMSByZWNlaXZlICovCisjZGVmaW5lIERNQTJUU0VMXzIxICAgICAgICAgICAgKDIxKjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMjE6IFVTQ0lBMSB0cmFuc21pdCAqLworI2RlZmluZSBETUEyVFNFTF8yMiAgICAgICAgICAgICgyMioweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDIyOiBVU0NJQjEgcmVjZWl2ZSAqLworI2RlZmluZSBETUEyVFNFTF8yMyAgICAgICAgICAgICgyMyoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDIzOiBVU0NJQjEgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMjQgICAgICAgICAgICAoMjQqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAyNDogQURDMTJJRkd4ICovCisjZGVmaW5lIERNQTJUU0VMXzI1ICAgICAgICAgICAgKDI1KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMjU6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTJUU0VMXzI2ICAgICAgICAgICAgKDI2KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMjY6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTJUU0VMXzI3ICAgICAgICAgICAgKDI3KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMjc6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTJUU0VMXzI4ICAgICAgICAgICAgKDI4KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMjg6IFJlc2VydmVkICovCisjZGVmaW5lIERNQTJUU0VMXzI5ICAgICAgICAgICAgKDI5KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMjk6IE11bHRpcGxpZXIgcmVhZHkgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMzAgICAgICAgICAgICAoMzAqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAzMDogcHJldmlvdXMgRE1BIGNoYW5uZWwgRE1BMUlGRyAqLworI2RlZmluZSBETUEyVFNFTF8zMSAgICAgICAgICAgICgzMSoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDMxOiBleHQuIFRyaWdnZXIgKERNQUUwKSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfOEJJVChGQ1RMMV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfOEJJVChGQ1RMMV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCisvL3NmcmJ3ICAgIEZDVEwyICAgICAgICAgICAgICAgKDB4MDE0MikgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworU0ZSXzhCSVQoRkNUTDNfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworU0ZSXzhCSVQoRkNUTDNfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworU0ZSXzE2QklUKEZDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgNCAqLworU0ZSXzhCSVQoRkNUTDRfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgNCAqLworU0ZSXzhCSVQoRkNUTDRfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgNCAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisvKiBGQ1RMMSBDb250cm9sIEJpdHMgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDEpICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIEVFSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRW5hYmxlIEVyYXNlIEludGVycnVwdHMgKi8KKyNkZWZpbmUgRUVJRVggICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBFbmFibGUgRW1lcmdlbmN5IEludGVycnVwdCBFeGl0ICovCisjZGVmaW5lIFNXUlQgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU21hcnQgV3JpdGUgZW5hYmxlICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKy8qIEZDVEwxIENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwMSkgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIEVSQVNFX0wgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBU19MICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgRUVJX0wgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBFbmFibGUgRXJhc2UgSW50ZXJydXB0cyAqLworI2RlZmluZSBFRUlFWF9MICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEVuYWJsZSBFbWVyZ2VuY3kgSW50ZXJydXB0IEV4aXQgKi8KKyNkZWZpbmUgU1dSVF9MICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTbWFydCBXcml0ZSBlbmFibGUgKi8KKyNkZWZpbmUgV1JUX0wgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlRfTCAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworLyogRkNUTDEgQ29udHJvbCBCaXRzICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDAxKSAgLyogUmVzZXJ2ZWQgKi8KKworLyogRkNUTDMgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKyNkZWZpbmUgTE9DS0EgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTZWdtZW50IEEgTG9jayBiaXQ6IHJlYWQgPSAxIC0gU2VnbWVudCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRkFJTCAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBMYXN0IFByb2dyYW0gb3IgRXJhc2UgZmFpbGVkICovCisKKy8qIEZDVEwzIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBCVVNZX0wgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZVl9MICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGR19MICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVF9MICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DS19MICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYX0wgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisjZGVmaW5lIExPQ0tBX0wgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU2VnbWVudCBBIExvY2sgYml0OiByZWFkID0gMSAtIFNlZ21lbnQgaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEZBSUxfTCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogTGFzdCBQcm9ncmFtIG9yIEVyYXNlIGZhaWxlZCAqLworCisvKiBGQ1RMMyBDb250cm9sIEJpdHMgKi8KKworLyogRkNUTDQgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFZQRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVm9sdGFnZSBDaGFuZ2VkIGR1cmluZyBQcm9ncmFtIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgTUdSMCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBNYXJnaW5hbCByZWFkIDAgbW9kZS4gKi8KKyNkZWZpbmUgTUdSMSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBNYXJnaW5hbCByZWFkIDEgbW9kZS4gKi8KKyNkZWZpbmUgTE9DS0lORk8gICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBMb2NrIElORk8gTWVtb3J5IGJpdDogcmVhZCA9IDEgLSBTZWdtZW50IGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworCisvKiBGQ1RMNCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgVlBFX0wgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBWb2x0YWdlIENoYW5nZWQgZHVyaW5nIFByb2dyYW0gRXJyb3IgRmxhZyAqLworI2RlZmluZSBNR1IwX0wgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIE1hcmdpbmFsIHJlYWQgMCBtb2RlLiAqLworI2RlZmluZSBNR1IxX0wgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE1hcmdpbmFsIHJlYWQgMSBtb2RlLiAqLworI2RlZmluZSBMT0NLSU5GT19MICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIExvY2sgSU5GTyBNZW1vcnkgYml0OiByZWFkID0gMSAtIFNlZ21lbnQgaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisKKy8qIEZDVEw0IENvbnRyb2wgQml0cyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEhBUkRXQVJFIE1VTFRJUExJRVIgMzJCaXQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX01QWTMyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChNUFkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl84QklUKE1QWV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl84QklUKE1QWV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNUFlTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQvT3BlcmFuZCAxICovCitTRlJfOEJJVChNUFlTX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzhCSVQoTVBZU19IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl84QklUKE1BQ19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl84QklUKE1BQ19IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUNTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQgYW5kIEFjY3VtdWxhdGUvT3BlcmFuZCAxICovCitTRlJfOEJJVChNQUNTX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzhCSVQoTUFDU19IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChPUDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl84QklUKE9QMl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl84QklUKE9QMl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl8xNkJJVChSRVNMTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl84QklUKFJFU0xPX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl84QklUKFJFU0xPX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl8xNkJJVChSRVNISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgSGlnaCBXb3JkICovCitTRlJfOEJJVChSRVNISV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IEhpZ2ggV29yZCAqLworU0ZSXzhCSVQoUkVTSElfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlc3VsdCBIaWdoIFdvcmQgKi8KK1NGUl8xNkJJVChTVU1FWFQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTdW0gRXh0ZW5kICovCitTRlJfOEJJVChTVU1FWFRfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VtIEV4dGVuZCAqLworU0ZSXzhCSVQoU1VNRVhUX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN1bSBFeHRlbmQgKi8KKworU0ZSXzE2QklUKE1QWTMyTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSAtIGxvdyB3b3JkICovCitTRlJfOEJJVChNUFkzMkxfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIG11bHRpcGx5IC0gbG93IHdvcmQgKi8KK1NGUl84QklUKE1QWTMyTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE1QWTMySCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSAtIGhpZ2ggd29yZCAqLworU0ZSXzhCSVQoTVBZMzJIX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSAtIGhpZ2ggd29yZCAqLworU0ZSXzhCSVQoTVBZMzJIX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSAtIGhpZ2ggd29yZCAqLworU0ZSXzE2QklUKE1QWVMzMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgLSBsb3cgd29yZCAqLworU0ZSXzhCSVQoTVBZUzMyTF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgLSBsb3cgd29yZCAqLworU0ZSXzhCSVQoTVBZUzMyTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE1QWVMzMkgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgLSBoaWdoIHdvcmQgKi8KK1NGUl84QklUKE1QWVMzMkhfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gc2lnbmVkIG11bHRpcGx5IC0gaGlnaCB3b3JkICovCitTRlJfOEJJVChNUFlTMzJIX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIHNpZ25lZCBtdWx0aXBseSAtIGhpZ2ggd29yZCAqLworU0ZSXzE2QklUKE1BQzMyTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSBhY2N1bXVsYXRlIC0gbG93IHdvcmQgKi8KK1NGUl84QklUKE1BQzMyTF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGxvdyB3b3JkICovCitTRlJfOEJJVChNQUMzMkxfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIG11bHRpcGx5IGFjY3VtdWxhdGUgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE1BQzMySCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSBhY2N1bXVsYXRlIC0gaGlnaCB3b3JkICovCitTRlJfOEJJVChNQUMzMkhfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIG11bHRpcGx5IGFjY3VtdWxhdGUgLSBoaWdoIHdvcmQgKi8KK1NGUl84QklUKE1BQzMySF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAqLworU0ZSXzE2QklUKE1BQ1MzMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGxvdyB3b3JkICovCitTRlJfOEJJVChNQUNTMzJMX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIHNpZ25lZCBtdWx0aXBseSBhY2N1bXVsYXRlIC0gbG93IHdvcmQgKi8KK1NGUl84QklUKE1BQ1MzMkxfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gc2lnbmVkIG11bHRpcGx5IGFjY3VtdWxhdGUgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE1BQ1MzMkgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAqLworU0ZSXzhCSVQoTUFDUzMySF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAqLworU0ZSXzhCSVQoTUFDUzMySF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAqLworU0ZSXzE2QklUKE9QMkwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDIgLSBsb3cgd29yZCAqLworU0ZSXzhCSVQoT1AyTF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDIgLSBsb3cgd29yZCAqLworU0ZSXzhCSVQoT1AyTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDIgLSBsb3cgd29yZCAqLworU0ZSXzE2QklUKE9QMkgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDIgLSBoaWdoIHdvcmQgKi8KK1NGUl84QklUKE9QMkhfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAyIC0gaGlnaCB3b3JkICovCitTRlJfOEJJVChPUDJIX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMiAtIGhpZ2ggd29yZCAqLworU0ZSXzE2QklUKFJFUzApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyeDMyLWJpdCByZXN1bHQgMCAtIGxlYXN0IHNpZ25pZmljYW50IHdvcmQgKi8KK1NGUl84QklUKFJFUzBfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMngzMi1iaXQgcmVzdWx0IDAgLSBsZWFzdCBzaWduaWZpY2FudCB3b3JkICovCitTRlJfOEJJVChSRVMwX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJ4MzItYml0IHJlc3VsdCAwIC0gbGVhc3Qgc2lnbmlmaWNhbnQgd29yZCAqLworU0ZSXzE2QklUKFJFUzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyeDMyLWJpdCByZXN1bHQgMSAqLworU0ZSXzhCSVQoUkVTMV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyeDMyLWJpdCByZXN1bHQgMSAqLworU0ZSXzhCSVQoUkVTMV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyeDMyLWJpdCByZXN1bHQgMSAqLworU0ZSXzE2QklUKFJFUzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyeDMyLWJpdCByZXN1bHQgMiAqLworU0ZSXzhCSVQoUkVTMl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyeDMyLWJpdCByZXN1bHQgMiAqLworU0ZSXzhCSVQoUkVTMl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyeDMyLWJpdCByZXN1bHQgMiAqLworU0ZSXzE2QklUKFJFUzMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyeDMyLWJpdCByZXN1bHQgMyAtIG1vc3Qgc2lnbmlmaWNhbnQgd29yZCAqLworU0ZSXzhCSVQoUkVTM19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyeDMyLWJpdCByZXN1bHQgMyAtIG1vc3Qgc2lnbmlmaWNhbnQgd29yZCAqLworU0ZSXzhCSVQoUkVTM19IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMyeDMyLWJpdCByZXN1bHQgMyAtIG1vc3Qgc2lnbmlmaWNhbnQgd29yZCAqLworU0ZSXzE2QklUKE1QWTMyQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1QWTMyIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoTVBZMzJDVEwwX0wpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1QWTMyIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoTVBZMzJDVEwwX0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1QWTMyIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworCisjZGVmaW5lIE1QWV9CICAgICAgICAgICAgICAgICAgTVBZX0wgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxIChCeXRlIEFjY2VzcykgKi8KKyNkZWZpbmUgTVBZU19CICAgICAgICAgICAgICAgICBNUFlTX0wgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQvT3BlcmFuZCAxIChCeXRlIEFjY2VzcykgKi8KKyNkZWZpbmUgTUFDX0IgICAgICAgICAgICAgICAgICBNQUNfTCAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKEJ5dGUgQWNjZXNzKSAqLworI2RlZmluZSBNQUNTX0IgICAgICAgICAgICAgICAgIE1BQ1NfTCAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKEJ5dGUgQWNjZXNzKSAqLworI2RlZmluZSBPUDJfQiAgICAgICAgICAgICAgICAgIE9QMl9MICAgICAgICAgIC8qIE9wZXJhbmQgMiAoQnl0ZSBBY2Nlc3MpICovCisjZGVmaW5lIE1QWTMyTF9CICAgICAgICAgICAgICAgTVBZMzJMX0wgICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIG11bHRpcGx5IC0gbG93IHdvcmQgKEJ5dGUgQWNjZXNzKSAqLworI2RlZmluZSBNUFkzMkhfQiAgICAgICAgICAgICAgIE1QWTMySF9MICAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBtdWx0aXBseSAtIGhpZ2ggd29yZCAoQnl0ZSBBY2Nlc3MpICovCisjZGVmaW5lIE1QWVMzMkxfQiAgICAgICAgICAgICAgTVBZUzMyTF9MICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIHNpZ25lZCBtdWx0aXBseSAtIGxvdyB3b3JkIChCeXRlIEFjY2VzcykgKi8KKyNkZWZpbmUgTVBZUzMySF9CICAgICAgICAgICAgICBNUFlTMzJIX0wgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gc2lnbmVkIG11bHRpcGx5IC0gaGlnaCB3b3JkIChCeXRlIEFjY2VzcykgKi8KKyNkZWZpbmUgTUFDMzJMX0IgICAgICAgICAgICAgICBNQUMzMkxfTCAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGxvdyB3b3JkIChCeXRlIEFjY2VzcykgKi8KKyNkZWZpbmUgTUFDMzJIX0IgICAgICAgICAgICAgICBNQUMzMkhfTCAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAxIC0gbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAoQnl0ZSBBY2Nlc3MpICovCisjZGVmaW5lIE1BQ1MzMkxfQiAgICAgICAgICAgICAgTUFDUzMyTF9MICAgICAgLyogMzItYml0IG9wZXJhbmQgMSAtIHNpZ25lZCBtdWx0aXBseSBhY2N1bXVsYXRlIC0gbG93IHdvcmQgKEJ5dGUgQWNjZXNzKSAqLworI2RlZmluZSBNQUNTMzJIX0IgICAgICAgICAgICAgIE1BQ1MzMkhfTCAgICAgIC8qIDMyLWJpdCBvcGVyYW5kIDEgLSBzaWduZWQgbXVsdGlwbHkgYWNjdW11bGF0ZSAtIGhpZ2ggd29yZCAoQnl0ZSBBY2Nlc3MpICovCisjZGVmaW5lIE9QMkxfQiAgICAgICAgICAgICAgICAgT1AyTF9MICAgICAgICAgLyogMzItYml0IG9wZXJhbmQgMiAtIGxvdyB3b3JkIChCeXRlIEFjY2VzcykgKi8KKyNkZWZpbmUgT1AySF9CICAgICAgICAgICAgICAgICBPUDJIX0wgICAgICAgICAvKiAzMi1iaXQgb3BlcmFuZCAyIC0gaGlnaCB3b3JkIChCeXRlIEFjY2VzcykgKi8KKworLyogTVBZMzJDVEwwIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBNUFlDICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcnJ5IG9mIHRoZSBtdWx0aXBsaWVyICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDAyKSAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgTVBZRlJBQyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGcmFjdGlvbmFsIG1vZGUgKi8KKyNkZWZpbmUgTVBZU0FUICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTYXR1cmF0aW9uIG1vZGUgKi8KKyNkZWZpbmUgTVBZTTAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBNdWx0aXBsaWVyIG1vZGUgQml0OjAgKi8KKyNkZWZpbmUgTVBZTTEgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBNdWx0aXBsaWVyIG1vZGUgQml0OjEgKi8KKyNkZWZpbmUgT1AxXzMyICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBCaXQtd2lkdGggb2Ygb3BlcmFuZCAxIDA6MTZCaXQgLyAxOjMyQml0ICovCisjZGVmaW5lIE9QMl8zMiAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQml0LXdpZHRoIG9mIG9wZXJhbmQgMiAwOjE2Qml0IC8gMTozMkJpdCAqLworI2RlZmluZSBNUFlETFlXUlRFTiAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIERlbGF5ZWQgd3JpdGUgZW5hYmxlICovCisjZGVmaW5lIE1QWURMWTMyICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogRGVsYXllZCB3cml0ZSBtb2RlICovCisKKy8qIE1QWTMyQ1RMMCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgTVBZQ19MICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXJyeSBvZiB0aGUgbXVsdGlwbGllciAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwMikgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIE1QWUZSQUNfTCAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRnJhY3Rpb25hbCBtb2RlICovCisjZGVmaW5lIE1QWVNBVF9MICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU2F0dXJhdGlvbiBtb2RlICovCisjZGVmaW5lIE1QWU0wX0wgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlIEJpdDowICovCisjZGVmaW5lIE1QWU0xX0wgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlIEJpdDoxICovCisjZGVmaW5lIE9QMV8zMl9MICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQml0LXdpZHRoIG9mIG9wZXJhbmQgMSAwOjE2Qml0IC8gMTozMkJpdCAqLworI2RlZmluZSBPUDJfMzJfTCAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEJpdC13aWR0aCBvZiBvcGVyYW5kIDIgMDoxNkJpdCAvIDE6MzJCaXQgKi8KKworLyogTVBZMzJDVEwwIENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwMikgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIE1QWURMWVdSVEVOX0ggICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGVsYXllZCB3cml0ZSBlbmFibGUgKi8KKyNkZWZpbmUgTVBZRExZMzJfSCAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBEZWxheWVkIHdyaXRlIG1vZGUgKi8KKworI2RlZmluZSBNUFlNXzAgICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE11bHRpcGxpZXIgbW9kZTogTVBZICovCisjZGVmaW5lIE1QWU1fMSAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlOiBNUFlTICovCisjZGVmaW5lIE1QWU1fMiAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlOiBNQUMgKi8KKyNkZWZpbmUgTVBZTV8zICAgICAgICAgICAgICAgICAoMHgwMDMwKSAgICAgICAvKiBNdWx0aXBsaWVyIG1vZGU6IE1BQ1MgKi8KKyNkZWZpbmUgTVBZTV9fTVBZICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBNdWx0aXBsaWVyIG1vZGU6IE1QWSAqLworI2RlZmluZSBNUFlNX19NUFlTICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIE11bHRpcGxpZXIgbW9kZTogTVBZUyAqLworI2RlZmluZSBNUFlNX19NQUMgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE11bHRpcGxpZXIgbW9kZTogTUFDICovCisjZGVmaW5lIE1QWU1fX01BQ1MgICAgICAgICAgICAgKDB4MDAzMCkgICAgICAgLyogTXVsdGlwbGllciBtb2RlOiBNQUNTICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDEvMiBQdWxsIHVwIC8gUHVsbCBkb3duIFJlc2lzdG9ycworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDFfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQyX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUQV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoUEFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIElucHV0ICovCitTRlJfOEJJVChQQUlOX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIElucHV0ICovCitTRlJfOEJJVChQQUlOX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIElucHV0ICovCitTRlJfMTZCSVQoUEFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIE91dHB1dCAqLworU0ZSXzhCSVQoUEFPVVRfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBPdXRwdXQgKi8KK1NGUl84QklUKFBBT1VUX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgT3V0cHV0ICovCitTRlJfMTZCSVQoUEFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUEFESVJfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFBBRElSX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgRGlyZWN0aW9uICovCitTRlJfMTZCSVQoUEFSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIFJlc2lzdG9yIEVuYWJsZSAqLworU0ZSXzhCSVQoUEFSRU5fTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBSZXNpc3RvciBFbmFibGUgKi8KK1NGUl84QklUKFBBUkVOX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgUmVzaXN0b3IgRW5hYmxlICovCitTRlJfMTZCSVQoUEFEUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCitTRlJfOEJJVChQQURTX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCitTRlJfOEJJVChQQURTX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCitTRlJfMTZCSVQoUEFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUEFTRUxfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFBBU0VMX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgU2VsZWN0aW9uICovCitTRlJfMTZCSVQoUEFJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUEFJRVNfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFBBSUVTX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfMTZCSVQoUEFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFBBSUVfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUEFJRV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfMTZCSVQoUEFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQQUlGR19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQQUlGR19IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIEludGVycnVwdCBGbGFnICovCisKKworU0ZSXzE2QklUKFAxSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChQMklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisjZGVmaW5lIFAxSU4gICAgICAgICAgICAgICAgICAgKFBBSU5fTCkgICAgICAgLyogUG9ydCAxIElucHV0ICovCisjZGVmaW5lIFAxT1VUICAgICAgICAgICAgICAgICAgKFBBT1VUX0wpICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworI2RlZmluZSBQMURJUiAgICAgICAgICAgICAgICAgIChQQURJUl9MKSAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KKyNkZWZpbmUgUDFSRU4gICAgICAgICAgICAgICAgICAoUEFSRU5fTCkgICAgICAvKiBQb3J0IDEgUmVzaXN0b3IgRW5hYmxlICovCisjZGVmaW5lIFAxRFMgICAgICAgICAgICAgICAgICAgKFBBRFNfTCkgICAgICAgLyogUG9ydCAxIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCisjZGVmaW5lIFAxU0VMICAgICAgICAgICAgICAgICAgKFBBU0VMX0wpICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworI2RlZmluZSBQMUlFUyAgICAgICAgICAgICAgICAgIChQQUlFU19MKSAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KKyNkZWZpbmUgUDFJRSAgICAgICAgICAgICAgICAgICAoUEFJRV9MKSAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBQMUlGRyAgICAgICAgICAgICAgICAgIChQQUlGR19MKSAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRmxhZyAqLworCisvL0RlZmluaXRpb25zIGZvciBQMUlWCisjZGVmaW5lIFAxSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgUDFJVl9QMUlGRzAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBQMUlWIFAxSUZHLjAgKi8KKyNkZWZpbmUgUDFJVl9QMUlGRzEgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQMUlWIFAxSUZHLjEgKi8KKyNkZWZpbmUgUDFJVl9QMUlGRzIgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBQMUlWIFAxSUZHLjIgKi8KKyNkZWZpbmUgUDFJVl9QMUlGRzMgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBQMUlWIFAxSUZHLjMgKi8KKyNkZWZpbmUgUDFJVl9QMUlGRzQgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBQMUlWIFAxSUZHLjQgKi8KKyNkZWZpbmUgUDFJVl9QMUlGRzUgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBQMUlWIFAxSUZHLjUgKi8KKyNkZWZpbmUgUDFJVl9QMUlGRzYgICAgICAgICAgICAoMHgwMDBFKSAgICAgICAvKiBQMUlWIFAxSUZHLjYgKi8KKyNkZWZpbmUgUDFJVl9QMUlGRzcgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBQMUlWIFAxSUZHLjcgKi8KKworI2RlZmluZSBQMklOICAgICAgICAgICAgICAgICAgIChQQUlOX0gpICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworI2RlZmluZSBQMk9VVCAgICAgICAgICAgICAgICAgIChQQU9VVF9IKSAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KKyNkZWZpbmUgUDJESVIgICAgICAgICAgICAgICAgICAoUEFESVJfSCkgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCisjZGVmaW5lIFAyUkVOICAgICAgICAgICAgICAgICAgKFBBUkVOX0gpICAgICAgLyogUG9ydCAyIFJlc2lzdG9yIEVuYWJsZSAqLworI2RlZmluZSBQMkRTICAgICAgICAgICAgICAgICAgIChQQURTX0gpICAgICAgIC8qIFBvcnQgMiBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworI2RlZmluZSBQMlNFTCAgICAgICAgICAgICAgICAgIChQQVNFTF9IKSAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKyNkZWZpbmUgUDJJRVMgICAgICAgICAgICAgICAgICAoUEFJRVNfSCkgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCisjZGVmaW5lIFAySUUgICAgICAgICAgICAgICAgICAgKFBBSUVfSCkgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgUDJJRkcgICAgICAgICAgICAgICAgICAoUEFJRkdfSCkgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KKworLy9EZWZpbml0aW9ucyBmb3IgUDJJVgorI2RlZmluZSBQMklWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFAySVZfUDJJRkcwICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogUDJJViBQMklGRy4wICovCisjZGVmaW5lIFAySVZfUDJJRkcxICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUDJJViBQMklGRy4xICovCisjZGVmaW5lIFAySVZfUDJJRkcyICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUDJJViBQMklGRy4yICovCisjZGVmaW5lIFAySVZfUDJJRkczICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUDJJViBQMklGRy4zICovCisjZGVmaW5lIFAySVZfUDJJRkc0ICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogUDJJViBQMklGRy40ICovCisjZGVmaW5lIFAySVZfUDJJRkc1ICAgICAgICAgICAgKDB4MDAwQykgICAgICAgLyogUDJJViBQMklGRy41ICovCisjZGVmaW5lIFAySVZfUDJJRkc2ICAgICAgICAgICAgKDB4MDAwRSkgICAgICAgLyogUDJJViBQMklGRy42ICovCisjZGVmaW5lIFAySVZfUDJJRkc3ICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogUDJJViBQMklGRy43ICovCisKKyAgICAgICAgICAgICAgICAgICAgCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQzLzQgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQzX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNF9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVEJfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFBCSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBJbnB1dCAqLworU0ZSXzhCSVQoUEJJTl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBJbnB1dCAqLworU0ZSXzhCSVQoUEJJTl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBJbnB1dCAqLworU0ZSXzE2QklUKFBCT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBPdXRwdXQgKi8KK1NGUl84QklUKFBCT1VUX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEIgT3V0cHV0ICovCitTRlJfOEJJVChQQk9VVF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBCIE91dHB1dCAqLworU0ZSXzE2QklUKFBCRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFBCRElSX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQQkRJUl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBCIERpcmVjdGlvbiAqLworU0ZSXzE2QklUKFBCUkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBSZXNpc3RvciBFbmFibGUgKi8KK1NGUl84QklUKFBCUkVOX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEIgUmVzaXN0b3IgRW5hYmxlICovCitTRlJfOEJJVChQQlJFTl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBCIFJlc2lzdG9yIEVuYWJsZSAqLworU0ZSXzE2QklUKFBCRFMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworU0ZSXzhCSVQoUEJEU19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworU0ZSXzhCSVQoUEJEU19IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworU0ZSXzE2QklUKFBCU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFBCU0VMX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEIgU2VsZWN0aW9uICovCitTRlJfOEJJVChQQlNFTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBCIFNlbGVjdGlvbiAqLworCisKKyNkZWZpbmUgUDNJTiAgICAgICAgICAgICAgICAgICAoUEJJTl9MKSAgICAgICAvKiBQb3J0IDMgSW5wdXQgKi8KKyNkZWZpbmUgUDNPVVQgICAgICAgICAgICAgICAgICAoUEJPVVRfTCkgICAgICAvKiBQb3J0IDMgT3V0cHV0ICovCisjZGVmaW5lIFAzRElSICAgICAgICAgICAgICAgICAgKFBCRElSX0wpICAgICAgLyogUG9ydCAzIERpcmVjdGlvbiAqLworI2RlZmluZSBQM1JFTiAgICAgICAgICAgICAgICAgIChQQlJFTl9MKSAgICAgIC8qIFBvcnQgMyBSZXNpc3RvciBFbmFibGUgKi8KKyNkZWZpbmUgUDNEUyAgICAgICAgICAgICAgICAgICAoUEJEU19MKSAgICAgICAvKiBQb3J0IDMgUmVzaXN0b3IgRHJpdmUgU3RyZW5naHQgKi8KKyNkZWZpbmUgUDNTRUwgICAgICAgICAgICAgICAgICAoUEJTRUxfTCkgICAgICAvKiBQb3J0IDMgU2VsZWN0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgUDRJTiAgICAgICAgICAgICAgICAgICAoUEJJTl9IKSAgICAgICAvKiBQb3J0IDQgSW5wdXQgKi8KKyNkZWZpbmUgUDRPVVQgICAgICAgICAgICAgICAgICAoUEJPVVRfSCkgICAgICAvKiBQb3J0IDQgT3V0cHV0ICovCisjZGVmaW5lIFA0RElSICAgICAgICAgICAgICAgICAgKFBCRElSX0gpICAgICAgLyogUG9ydCA0IERpcmVjdGlvbiAqLworI2RlZmluZSBQNFJFTiAgICAgICAgICAgICAgICAgIChQQlJFTl9IKSAgICAgIC8qIFBvcnQgNCBSZXNpc3RvciBFbmFibGUgKi8KKyNkZWZpbmUgUDREUyAgICAgICAgICAgICAgICAgICAoUEJEU19IKSAgICAgICAvKiBQb3J0IDQgUmVzaXN0b3IgRHJpdmUgU3RyZW5naHQgKi8KKyNkZWZpbmUgUDRTRUwgICAgICAgICAgICAgICAgICAoUEJTRUxfSCkgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDUvNiBQdWxsIHVwIC8gUHVsbCBkb3duIFJlc2lzdG9ycworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ2X1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUQ19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoUENJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBDIElucHV0ICovCitTRlJfOEJJVChQQ0lOX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBDIElucHV0ICovCitTRlJfOEJJVChQQ0lOX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBDIElucHV0ICovCitTRlJfMTZCSVQoUENPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBDIE91dHB1dCAqLworU0ZSXzhCSVQoUENPVVRfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQyBPdXRwdXQgKi8KK1NGUl84QklUKFBDT1VUX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEMgT3V0cHV0ICovCitTRlJfMTZCSVQoUENESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBDIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUENESVJfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQyBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFBDRElSX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEMgRGlyZWN0aW9uICovCitTRlJfMTZCSVQoUENSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBDIFJlc2lzdG9yIEVuYWJsZSAqLworU0ZSXzhCSVQoUENSRU5fTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQyBSZXNpc3RvciBFbmFibGUgKi8KK1NGUl84QklUKFBDUkVOX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEMgUmVzaXN0b3IgRW5hYmxlICovCitTRlJfMTZCSVQoUENEUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBDIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCitTRlJfOEJJVChQQ0RTX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBDIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCitTRlJfOEJJVChQQ0RTX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBDIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCitTRlJfMTZCSVQoUENTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBDIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUENTRUxfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQyBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFBDU0VMX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEMgU2VsZWN0aW9uICovCisKKworI2RlZmluZSBQNUlOICAgICAgICAgICAgICAgICAgIChQQ0lOX0wpICAgICAgIC8qIFBvcnQgNSBJbnB1dCAqLworI2RlZmluZSBQNU9VVCAgICAgICAgICAgICAgICAgIChQQ09VVF9MKSAgICAgIC8qIFBvcnQgNSBPdXRwdXQgKi8KKyNkZWZpbmUgUDVESVIgICAgICAgICAgICAgICAgICAoUENESVJfTCkgICAgICAvKiBQb3J0IDUgRGlyZWN0aW9uICovCisjZGVmaW5lIFA1UkVOICAgICAgICAgICAgICAgICAgKFBDUkVOX0wpICAgICAgLyogUG9ydCA1IFJlc2lzdG9yIEVuYWJsZSAqLworI2RlZmluZSBQNURTICAgICAgICAgICAgICAgICAgIChQQ0RTX0wpICAgICAgIC8qIFBvcnQgNSBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworI2RlZmluZSBQNVNFTCAgICAgICAgICAgICAgICAgIChQQ1NFTF9MKSAgICAgIC8qIFBvcnQgNSBTZWxlY3Rpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBQNklOICAgICAgICAgICAgICAgICAgIChQQ0lOX0gpICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworI2RlZmluZSBQNk9VVCAgICAgICAgICAgICAgICAgIChQQ09VVF9IKSAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KKyNkZWZpbmUgUDZESVIgICAgICAgICAgICAgICAgICAoUENESVJfSCkgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCisjZGVmaW5lIFA2UkVOICAgICAgICAgICAgICAgICAgKFBDUkVOX0gpICAgICAgLyogUG9ydCA2IFJlc2lzdG9yIEVuYWJsZSAqLworI2RlZmluZSBQNkRTICAgICAgICAgICAgICAgICAgIChQQ0RTX0gpICAgICAgIC8qIFBvcnQgNiBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworI2RlZmluZSBQNlNFTCAgICAgICAgICAgICAgICAgIChQQ1NFTF9IKSAgICAgIC8qIFBvcnQgNiBTZWxlY3Rpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0Ny84IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUN19SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDhfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlREX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChQRElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEQgSW5wdXQgKi8KK1NGUl84QklUKFBESU5fTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEQgSW5wdXQgKi8KK1NGUl84QklUKFBESU5fSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEQgSW5wdXQgKi8KK1NGUl8xNkJJVChQRE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEQgT3V0cHV0ICovCitTRlJfOEJJVChQRE9VVF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBEIE91dHB1dCAqLworU0ZSXzhCSVQoUERPVVRfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRCBPdXRwdXQgKi8KK1NGUl8xNkJJVChQRERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEQgRGlyZWN0aW9uICovCitTRlJfOEJJVChQRERJUl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBEIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUERESVJfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRCBEaXJlY3Rpb24gKi8KK1NGUl8xNkJJVChQRFJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEQgUmVzaXN0b3IgRW5hYmxlICovCitTRlJfOEJJVChQRFJFTl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBEIFJlc2lzdG9yIEVuYWJsZSAqLworU0ZSXzhCSVQoUERSRU5fSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRCBSZXNpc3RvciBFbmFibGUgKi8KK1NGUl8xNkJJVChQRERTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEQgUmVzaXN0b3IgRHJpdmUgU3RyZW5naHQgKi8KK1NGUl84QklUKFBERFNfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEQgUmVzaXN0b3IgRHJpdmUgU3RyZW5naHQgKi8KK1NGUl84QklUKFBERFNfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEQgUmVzaXN0b3IgRHJpdmUgU3RyZW5naHQgKi8KK1NGUl8xNkJJVChQRFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEQgU2VsZWN0aW9uICovCitTRlJfOEJJVChQRFNFTF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBEIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUERTRUxfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRCBTZWxlY3Rpb24gKi8KKworCisjZGVmaW5lIFA3SU4gICAgICAgICAgICAgICAgICAgKFBESU5fTCkgICAgICAgLyogUG9ydCA3IElucHV0ICovCisjZGVmaW5lIFA3T1VUICAgICAgICAgICAgICAgICAgKFBET1VUX0wpICAgICAgLyogUG9ydCA3IE91dHB1dCAqLworI2RlZmluZSBQN0RJUiAgICAgICAgICAgICAgICAgIChQRERJUl9MKSAgICAgIC8qIFBvcnQgNyBEaXJlY3Rpb24gKi8KKyNkZWZpbmUgUDdSRU4gICAgICAgICAgICAgICAgICAoUERSRU5fTCkgICAgICAvKiBQb3J0IDcgUmVzaXN0b3IgRW5hYmxlICovCisjZGVmaW5lIFA3RFMgICAgICAgICAgICAgICAgICAgKFBERFNfTCkgICAgICAgLyogUG9ydCA3IFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCisjZGVmaW5lIFA3U0VMICAgICAgICAgICAgICAgICAgKFBEU0VMX0wpICAgICAgLyogUG9ydCA3IFNlbGVjdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFA4SU4gICAgICAgICAgICAgICAgICAgKFBESU5fSCkgICAgICAgLyogUG9ydCA4IElucHV0ICovCisjZGVmaW5lIFA4T1VUICAgICAgICAgICAgICAgICAgKFBET1VUX0gpICAgICAgLyogUG9ydCA4IE91dHB1dCAqLworI2RlZmluZSBQOERJUiAgICAgICAgICAgICAgICAgIChQRERJUl9IKSAgICAgIC8qIFBvcnQgOCBEaXJlY3Rpb24gKi8KKyNkZWZpbmUgUDhSRU4gICAgICAgICAgICAgICAgICAoUERSRU5fSCkgICAgICAvKiBQb3J0IDggUmVzaXN0b3IgRW5hYmxlICovCisjZGVmaW5lIFA4RFMgICAgICAgICAgICAgICAgICAgKFBERFNfSCkgICAgICAgLyogUG9ydCA4IFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCisjZGVmaW5lIFA4U0VMICAgICAgICAgICAgICAgICAgKFBEU0VMX0gpICAgICAgLyogUG9ydCA4IFNlbGVjdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQ5LzEwIFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUOV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDEwX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JURV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoUEVJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBFIElucHV0ICovCitTRlJfOEJJVChQRUlOX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBFIElucHV0ICovCitTRlJfOEJJVChQRUlOX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBFIElucHV0ICovCitTRlJfMTZCSVQoUEVPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBFIE91dHB1dCAqLworU0ZSXzhCSVQoUEVPVVRfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRSBPdXRwdXQgKi8KK1NGUl84QklUKFBFT1VUX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEUgT3V0cHV0ICovCitTRlJfMTZCSVQoUEVESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBFIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUEVESVJfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFBFRElSX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEUgRGlyZWN0aW9uICovCitTRlJfMTZCSVQoUEVSRU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBFIFJlc2lzdG9yIEVuYWJsZSAqLworU0ZSXzhCSVQoUEVSRU5fTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRSBSZXNpc3RvciBFbmFibGUgKi8KK1NGUl84QklUKFBFUkVOX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEUgUmVzaXN0b3IgRW5hYmxlICovCitTRlJfMTZCSVQoUEVEUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBFIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCitTRlJfOEJJVChQRURTX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBFIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCitTRlJfOEJJVChQRURTX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBFIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCitTRlJfMTZCSVQoUEVTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBFIFNlbGVjdGlvbiAqLworU0ZSXzhCSVQoUEVTRUxfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRSBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFBFU0VMX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEUgU2VsZWN0aW9uICovCisKKworI2RlZmluZSBQOUlOICAgICAgICAgICAgICAgICAgIChQRUlOX0wpICAgICAgIC8qIFBvcnQgOSBJbnB1dCAqLworI2RlZmluZSBQOU9VVCAgICAgICAgICAgICAgICAgIChQRU9VVF9MKSAgICAgIC8qIFBvcnQgOSBPdXRwdXQgKi8KKyNkZWZpbmUgUDlESVIgICAgICAgICAgICAgICAgICAoUEVESVJfTCkgICAgICAvKiBQb3J0IDkgRGlyZWN0aW9uICovCisjZGVmaW5lIFA5UkVOICAgICAgICAgICAgICAgICAgKFBFUkVOX0wpICAgICAgLyogUG9ydCA5IFJlc2lzdG9yIEVuYWJsZSAqLworI2RlZmluZSBQOURTICAgICAgICAgICAgICAgICAgIChQRURTX0wpICAgICAgIC8qIFBvcnQgOSBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworI2RlZmluZSBQOVNFTCAgICAgICAgICAgICAgICAgIChQRVNFTF9MKSAgICAgIC8qIFBvcnQgOSBTZWxlY3Rpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBQMTBJTiAgICAgICAgICAgICAgICAgIChQRUlOX0gpICAgICAgIC8qIFBvcnQgMTAgSW5wdXQgKi8KKyNkZWZpbmUgUDEwT1VUICAgICAgICAgICAgICAgICAoUEVPVVRfSCkgICAgICAvKiBQb3J0IDEwIE91dHB1dCAqLworI2RlZmluZSBQMTBESVIgICAgICAgICAgICAgICAgIChQRURJUl9IKSAgICAgIC8qIFBvcnQgMTAgRGlyZWN0aW9uICovCisjZGVmaW5lIFAxMFJFTiAgICAgICAgICAgICAgICAgKFBFUkVOX0gpICAgICAgLyogUG9ydCAxMCBSZXNpc3RvciBFbmFibGUgKi8KKyNkZWZpbmUgUDEwRFMgICAgICAgICAgICAgICAgICAoUEVEU19IKSAgICAgICAvKiBQb3J0IDEwIFJlc2lzdG9yIERyaXZlIFN0cmVuZ2h0ICovCisjZGVmaW5lIFAxMFNFTCAgICAgICAgICAgICAgICAgKFBFU0VMX0gpICAgICAgLyogUG9ydCAxMCBTZWxlY3Rpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MTEgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxMV9SX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVEZfUl9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFBGSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRiBJbnB1dCAqLworU0ZSXzhCSVQoUEZJTl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRiBJbnB1dCAqLworU0ZSXzhCSVQoUEZJTl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRiBJbnB1dCAqLworU0ZSXzE2QklUKFBGT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRiBPdXRwdXQgKi8KK1NGUl84QklUKFBGT1VUX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEYgT3V0cHV0ICovCitTRlJfOEJJVChQRk9VVF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBGIE91dHB1dCAqLworU0ZSXzE2QklUKFBGRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFBGRElSX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQRkRJUl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBGIERpcmVjdGlvbiAqLworU0ZSXzE2QklUKFBGUkVOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRiBSZXNpc3RvciBFbmFibGUgKi8KK1NGUl84QklUKFBGUkVOX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEYgUmVzaXN0b3IgRW5hYmxlICovCitTRlJfOEJJVChQRlJFTl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBGIFJlc2lzdG9yIEVuYWJsZSAqLworU0ZSXzE2QklUKFBGRFMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRiBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworU0ZSXzhCSVQoUEZEU19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRiBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworU0ZSXzhCSVQoUEZEU19IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRiBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworU0ZSXzE2QklUKFBGU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgRiBTZWxlY3Rpb24gKi8KK1NGUl84QklUKFBGU0VMX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEYgU2VsZWN0aW9uICovCitTRlJfOEJJVChQRlNFTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBGIFNlbGVjdGlvbiAqLworCisKKyNkZWZpbmUgUDExSU4gICAgICAgICAgICAgICAgICAoUEZJTl9MKSAgICAgICAvKiBQb3J0IDExIElucHV0ICovCisjZGVmaW5lIFAxMU9VVCAgICAgICAgICAgICAgICAgKFBGT1VUX0wpICAgICAgLyogUG9ydCAxMSBPdXRwdXQgKi8KKyNkZWZpbmUgUDExRElSICAgICAgICAgICAgICAgICAoUEZESVJfTCkgICAgICAvKiBQb3J0IDExIERpcmVjdGlvbiAqLworI2RlZmluZSBQMTFSRU4gICAgICAgICAgICAgICAgIChQRlJFTl9MKSAgICAgIC8qIFBvcnQgMTEgUmVzaXN0b3IgRW5hYmxlICovCisjZGVmaW5lIFAxMURTICAgICAgICAgICAgICAgICAgKFBGRFNfTCkgICAgICAgLyogUG9ydCAxMSBSZXNpc3RvciBEcml2ZSBTdHJlbmdodCAqLworI2RlZmluZSBQMTFTRUwgICAgICAgICAgICAgICAgIChQRlNFTF9MKSAgICAgIC8qIFBvcnQgMTEgU2VsZWN0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydEogUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlRKX1JfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChQSklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEogSW5wdXQgKi8KK1NGUl84QklUKFBKSU5fTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEogSW5wdXQgKi8KK1NGUl84QklUKFBKSU5fSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEogSW5wdXQgKi8KK1NGUl8xNkJJVChQSk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEogT3V0cHV0ICovCitTRlJfOEJJVChQSk9VVF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBKIE91dHB1dCAqLworU0ZSXzhCSVQoUEpPVVRfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgSiBPdXRwdXQgKi8KK1NGUl8xNkJJVChQSkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEogRGlyZWN0aW9uICovCitTRlJfOEJJVChQSkRJUl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBKIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUEpESVJfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgSiBEaXJlY3Rpb24gKi8KK1NGUl8xNkJJVChQSlJFTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEogUmVzaXN0b3IgRW5hYmxlICovCitTRlJfOEJJVChQSlJFTl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBKIFJlc2lzdG9yIEVuYWJsZSAqLworU0ZSXzhCSVQoUEpSRU5fSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgSiBSZXNpc3RvciBFbmFibGUgKi8KK1NGUl8xNkJJVChQSkRTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEogUmVzaXN0b3IgRHJpdmUgU3RyZW5naHQgKi8KK1NGUl84QklUKFBKRFNfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEogUmVzaXN0b3IgRHJpdmUgU3RyZW5naHQgKi8KK1NGUl84QklUKFBKRFNfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEogUmVzaXN0b3IgRHJpdmUgU3RyZW5naHQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQTU0gLSBQb3dlciBNYW5hZ2VtZW50IFN5c3RlbQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE1NX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFBNTUNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBNTSBDb250cm9sIDAgKi8KK1NGUl84QklUKFBNTUNUTDBfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQTU0gQ29udHJvbCAwICovCitTRlJfOEJJVChQTU1DVEwwX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUE1NIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFBNTUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBNTSBDb250cm9sIDEgKi8KK1NGUl84QklUKFBNTUNUTDFfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQTU0gQ29udHJvbCAxICovCitTRlJfOEJJVChQTU1DVEwxX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUE1NIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFNWU01IQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNWUyBhbmQgU1ZNIGhpZ2ggc2lkZSBjb250cm9sIHJlZ2lzdGVyICovCitTRlJfOEJJVChTVlNNSENUTF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU1ZTIGFuZCBTVk0gaGlnaCBzaWRlIGNvbnRyb2wgcmVnaXN0ZXIgKi8KK1NGUl84QklUKFNWU01IQ1RMX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgY29udHJvbCByZWdpc3RlciAqLworU0ZSXzE2QklUKFNWU01MQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNWUyBhbmQgU1ZNIGxvdyBzaWRlIGNvbnRyb2wgcmVnaXN0ZXIgKi8KK1NGUl84QklUKFNWU01MQ1RMX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgYW5kIFNWTSBsb3cgc2lkZSBjb250cm9sIHJlZ2lzdGVyICovCitTRlJfOEJJVChTVlNNTENUTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgY29udHJvbCByZWdpc3RlciAqLworU0ZSXzE2QklUKFNWU01JTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNWU0lOIGFuZCBTVlNPVVQgY29udHJvbCByZWdpc3RlciAqLworU0ZSXzhCSVQoU1ZTTUlPX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNWU0lOIGFuZCBTVlNPVVQgY29udHJvbCByZWdpc3RlciAqLworU0ZSXzhCSVQoU1ZTTUlPX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNWU0lOIGFuZCBTVlNPVVQgY29udHJvbCByZWdpc3RlciAqLworU0ZSXzE2QklUKFBNTUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBNTSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUE1NSUZHX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBNTSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUE1NSUZHX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBNTSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzE2QklUKFBNTVJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBNTSBhbmQgUkVTRVQgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUE1NUklFX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBNTSBhbmQgUkVTRVQgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUE1NUklFX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBNTSBhbmQgUkVTRVQgSW50ZXJydXB0IEVuYWJsZSAqLworCisjZGVmaW5lIFBNTVBXICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogUE1NIFJlZ2lzdGVyIFdyaXRlIFBhc3N3b3JkICovCisKKy8qIFBNTUNUTDAgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFBNTUNPUkVWMCAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogUE1NIENvcmUgVm9sdGFnZSBCaXQ6IDAgKi8KKyNkZWZpbmUgUE1NQ09SRVYxICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBQTU0gQ29yZSBWb2x0YWdlIEJpdDogMSAqLworI2RlZmluZSBQTU1TV0JPUiAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBNTSBTb2Z0d2FyZSBCT1IgKi8KKyNkZWZpbmUgUE1NU1dQT1IgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBQTU0gU29mdHdhcmUgUE9SICovCisjZGVmaW5lIFBNTVJFR09GRiAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogUE1NIFR1cm4gUmVndWxhdG9yIG9mZiAqLworI2RlZmluZSBQTU1IUE1SRSAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFBNTSBHbG9iYWwgSGlnaCBQb3dlciBNb2R1bGUgUmVxdWVzdCBFbmFibGUgKi8KKworLyogUE1NQ1RMMCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgUE1NQ09SRVYwX0wgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBQTU0gQ29yZSBWb2x0YWdlIEJpdDogMCAqLworI2RlZmluZSBQTU1DT1JFVjFfTCAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFBNTSBDb3JlIFZvbHRhZ2UgQml0OiAxICovCisjZGVmaW5lIFBNTVNXQk9SX0wgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUE1NIFNvZnR3YXJlIEJPUiAqLworI2RlZmluZSBQTU1TV1BPUl9MICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFBNTSBTb2Z0d2FyZSBQT1IgKi8KKyNkZWZpbmUgUE1NUkVHT0ZGX0wgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBQTU0gVHVybiBSZWd1bGF0b3Igb2ZmICovCisjZGVmaW5lIFBNTUhQTVJFX0wgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogUE1NIEdsb2JhbCBIaWdoIFBvd2VyIE1vZHVsZSBSZXF1ZXN0IEVuYWJsZSAqLworCisvKiBQTU1DVEwwIENvbnRyb2wgQml0cyAqLworCisjZGVmaW5lIFBNTUNPUkVWXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogUE1NIENvcmUgVm9sdGFnZSAwICgxLjM1VikgKi8KKyNkZWZpbmUgUE1NQ09SRVZfMSAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBQTU0gQ29yZSBWb2x0YWdlIDEgKDEuNTVWKSAqLworI2RlZmluZSBQTU1DT1JFVl8yICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFBNTSBDb3JlIFZvbHRhZ2UgMiAoMS43NVYpICovCisjZGVmaW5lIFBNTUNPUkVWXzMgICAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogUE1NIENvcmUgVm9sdGFnZSAzICgxLjg1VikgKi8KKworLyogUE1NQ1RMMSBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgUE1NUkVGTUQgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBQTU0gUmVmZXJlbmNlIE1vZGUgKi8KKyNkZWZpbmUgUE1NQ01EMCAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBQTU0gVm9sdGFnZSBSZWd1bGF0b3IgQ3VycmVudCBNb2RlIEJpdDogMCAqLworI2RlZmluZSBQTU1DTUQxICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFBNTSBWb2x0YWdlIFJlZ3VsYXRvciBDdXJyZW50IE1vZGUgQml0OiAxICovCisKKy8qIFBNTUNUTDEgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFBNTVJFRk1EX0wgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogUE1NIFJlZmVyZW5jZSBNb2RlICovCisjZGVmaW5lIFBNTUNNRDBfTCAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogUE1NIFZvbHRhZ2UgUmVndWxhdG9yIEN1cnJlbnQgTW9kZSBCaXQ6IDAgKi8KKyNkZWZpbmUgUE1NQ01EMV9MICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBQTU0gVm9sdGFnZSBSZWd1bGF0b3IgQ3VycmVudCBNb2RlIEJpdDogMSAqLworCisvKiBQTU1DVEwxIENvbnRyb2wgQml0cyAqLworCisvKiBTVlNNSENUTCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgU1ZTTUhSUkwwICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIEJpdDogMCAqLworI2RlZmluZSBTVlNNSFJSTDEgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNWUyBhbmQgU1ZNIGhpZ2ggc2lkZSBSZXNldCBSZWxlYXNlIFZvbHRhZ2UgTGV2ZWwgQml0OiAxICovCisjZGVmaW5lIFNWU01IUlJMMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU1ZTIGFuZCBTVk0gaGlnaCBzaWRlIFJlc2V0IFJlbGVhc2UgVm9sdGFnZSBMZXZlbCBCaXQ6IDIgKi8KKyNkZWZpbmUgU1ZTTUhETFlTVCAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgZGVsYXkgc3RhdHVzICovCisjZGVmaW5lIFNWU0hNRCAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1ZTIGhpZ2ggc2lkZSBtb2RlICovCisjZGVmaW5lIFNWU01IRVZNICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU1ZTIGFuZCBTVk0gaGlnaCBzaWRlIGV2ZW50IG1hc2sgKi8KKyNkZWZpbmUgU1ZTTUhBQ0UgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgYXV0byBjb250cm9sIGVuYWJsZSAqLworI2RlZmluZSBTVlNIUlZMMCAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFNWUyBoaWdoIHNpZGUgcmVzZXQgdm9sdGFnZSBsZXZlbCBCaXQ6IDAgKi8KKyNkZWZpbmUgU1ZTSFJWTDEgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTVlMgaGlnaCBzaWRlIHJlc2V0IHZvbHRhZ2UgbGV2ZWwgQml0OiAxICovCisjZGVmaW5lIFNWU0hFICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogU1ZTIGhpZ2ggc2lkZSBlbmFibGUgKi8KKyNkZWZpbmUgU1ZTSEZQICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBTVlMgaGlnaCBzaWRlIGZ1bGwgcGVyZm9ybWFjZSBtb2RlICovCisjZGVmaW5lIFNWTUhPVlBFICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogU1ZNIGhpZ2ggc2lkZSBvdmVyLXZvbHRhZ2UgZW5hYmxlICovCisjZGVmaW5lIFNWTUhFICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogU1ZNIGhpZ2ggc2lkZSBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNSEZQICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBTVk0gaGlnaCBzaWRlIGZ1bGwgcGVyZm9ybWFjZSBtb2RlICovCisKKy8qIFNWU01IQ1RMIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBTVlNNSFJSTDBfTCAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNWUyBhbmQgU1ZNIGhpZ2ggc2lkZSBSZXNldCBSZWxlYXNlIFZvbHRhZ2UgTGV2ZWwgQml0OiAwICovCisjZGVmaW5lIFNWU01IUlJMMV9MICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU1ZTIGFuZCBTVk0gaGlnaCBzaWRlIFJlc2V0IFJlbGVhc2UgVm9sdGFnZSBMZXZlbCBCaXQ6IDEgKi8KKyNkZWZpbmUgU1ZTTUhSUkwyX0wgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIEJpdDogMiAqLworI2RlZmluZSBTVlNNSERMWVNUX0wgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNWUyBhbmQgU1ZNIGhpZ2ggc2lkZSBkZWxheSBzdGF0dXMgKi8KKyNkZWZpbmUgU1ZTSE1EX0wgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTVlMgaGlnaCBzaWRlIG1vZGUgKi8KKyNkZWZpbmUgU1ZTTUhFVk1fTCAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgZXZlbnQgbWFzayAqLworI2RlZmluZSBTVlNNSEFDRV9MICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFNWUyBhbmQgU1ZNIGhpZ2ggc2lkZSBhdXRvIGNvbnRyb2wgZW5hYmxlICovCisKKy8qIFNWU01IQ1RMIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBTVlNIUlZMMF9IICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNWUyBoaWdoIHNpZGUgcmVzZXQgdm9sdGFnZSBsZXZlbCBCaXQ6IDAgKi8KKyNkZWZpbmUgU1ZTSFJWTDFfSCAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTVlMgaGlnaCBzaWRlIHJlc2V0IHZvbHRhZ2UgbGV2ZWwgQml0OiAxICovCisjZGVmaW5lIFNWU0hFX0ggICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU1ZTIGhpZ2ggc2lkZSBlbmFibGUgKi8KKyNkZWZpbmUgU1ZTSEZQX0ggICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTVlMgaGlnaCBzaWRlIGZ1bGwgcGVyZm9ybWFjZSBtb2RlICovCisjZGVmaW5lIFNWTUhPVlBFX0ggICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1ZNIGhpZ2ggc2lkZSBvdmVyLXZvbHRhZ2UgZW5hYmxlICovCisjZGVmaW5lIFNWTUhFX0ggICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU1ZNIGhpZ2ggc2lkZSBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNSEZQX0ggICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTVk0gaGlnaCBzaWRlIGZ1bGwgcGVyZm9ybWFjZSBtb2RlICovCisKKyNkZWZpbmUgU1ZTTUhSUkxfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDAgKi8KKyNkZWZpbmUgU1ZTTUhSUkxfMSAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDEgKi8KKyNkZWZpbmUgU1ZTTUhSUkxfMiAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDIgKi8KKyNkZWZpbmUgU1ZTTUhSUkxfMyAgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDMgKi8KKyNkZWZpbmUgU1ZTTUhSUkxfNCAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDQgKi8KKyNkZWZpbmUgU1ZTTUhSUkxfNSAgICAgICAgICAgICAoMHgwMDA1KSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDUgKi8KKyNkZWZpbmUgU1ZTTUhSUkxfNiAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDYgKi8KKyNkZWZpbmUgU1ZTTUhSUkxfNyAgICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDcgKi8KKworI2RlZmluZSBTVlNIUlZMXzAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNWUyBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDAgKi8KKyNkZWZpbmUgU1ZTSFJWTF8xICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTVlMgaGlnaCBzaWRlIFJlc2V0IFJlbGVhc2UgVm9sdGFnZSBMZXZlbCAxICovCisjZGVmaW5lIFNWU0hSVkxfMiAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogU1ZTIGhpZ2ggc2lkZSBSZXNldCBSZWxlYXNlIFZvbHRhZ2UgTGV2ZWwgMiAqLworI2RlZmluZSBTVlNIUlZMXzMgICAgICAgICAgICAgICgweDAzMDApICAgICAgIC8qIFNWUyBoaWdoIHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDMgKi8KKworLyogU1ZTTUxDVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFNWU01MUlJMMCAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIEJpdDogMCAqLworI2RlZmluZSBTVlNNTFJSTDEgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNWUyBhbmQgU1ZNIGxvdyBzaWRlIFJlc2V0IFJlbGVhc2UgVm9sdGFnZSBMZXZlbCBCaXQ6IDEgKi8KKyNkZWZpbmUgU1ZTTUxSUkwyICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTVlMgYW5kIFNWTSBsb3cgc2lkZSBSZXNldCBSZWxlYXNlIFZvbHRhZ2UgTGV2ZWwgQml0OiAyICovCisjZGVmaW5lIFNWU01MRExZU1QgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgZGVsYXkgc3RhdHVzICovCisjZGVmaW5lIFNWU0xNRCAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1ZTIGxvdyBzaWRlIG1vZGUgKi8KKyNkZWZpbmUgU1ZTTUxFVk0gICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTVlMgYW5kIFNWTSBsb3cgc2lkZSBldmVudCBtYXNrICovCisjZGVmaW5lIFNWU01MQUNFICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgYXV0byBjb250cm9sIGVuYWJsZSAqLworI2RlZmluZSBTVlNMUlZMMCAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFNWUyBsb3cgc2lkZSByZXNldCB2b2x0YWdlIGxldmVsIEJpdDogMCAqLworI2RlZmluZSBTVlNMUlZMMSAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNWUyBsb3cgc2lkZSByZXNldCB2b2x0YWdlIGxldmVsIEJpdDogMSAqLworI2RlZmluZSBTVlNMRSAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIFNWUyBsb3cgc2lkZSBlbmFibGUgKi8KKyNkZWZpbmUgU1ZTTEZQICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBTVlMgbG93IHNpZGUgZnVsbCBwZXJmb3JtYWNlIG1vZGUgKi8KKyNkZWZpbmUgU1ZNTE9WUEUgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBTVk0gbG93IHNpZGUgb3Zlci12b2x0YWdlIGVuYWJsZSAqLworI2RlZmluZSBTVk1MRSAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFNWTSBsb3cgc2lkZSBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNTEZQICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBTVk0gbG93IHNpZGUgZnVsbCBwZXJmb3JtYWNlIG1vZGUgKi8KKworLyogU1ZTTUxDVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFNWU01MUlJMMF9MICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIEJpdDogMCAqLworI2RlZmluZSBTVlNNTFJSTDFfTCAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNWUyBhbmQgU1ZNIGxvdyBzaWRlIFJlc2V0IFJlbGVhc2UgVm9sdGFnZSBMZXZlbCBCaXQ6IDEgKi8KKyNkZWZpbmUgU1ZTTUxSUkwyX0wgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTVlMgYW5kIFNWTSBsb3cgc2lkZSBSZXNldCBSZWxlYXNlIFZvbHRhZ2UgTGV2ZWwgQml0OiAyICovCisjZGVmaW5lIFNWU01MRExZU1RfTCAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgZGVsYXkgc3RhdHVzICovCisjZGVmaW5lIFNWU0xNRF9MICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1ZTIGxvdyBzaWRlIG1vZGUgKi8KKyNkZWZpbmUgU1ZTTUxFVk1fTCAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTVlMgYW5kIFNWTSBsb3cgc2lkZSBldmVudCBtYXNrICovCisjZGVmaW5lIFNWU01MQUNFX0wgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgYXV0byBjb250cm9sIGVuYWJsZSAqLworCisvKiBTVlNNTENUTCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgU1ZTTFJWTDBfSCAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTVlMgbG93IHNpZGUgcmVzZXQgdm9sdGFnZSBsZXZlbCBCaXQ6IDAgKi8KKyNkZWZpbmUgU1ZTTFJWTDFfSCAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTVlMgbG93IHNpZGUgcmVzZXQgdm9sdGFnZSBsZXZlbCBCaXQ6IDEgKi8KKyNkZWZpbmUgU1ZTTEVfSCAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTVlMgbG93IHNpZGUgZW5hYmxlICovCisjZGVmaW5lIFNWU0xGUF9IICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU1ZTIGxvdyBzaWRlIGZ1bGwgcGVyZm9ybWFjZSBtb2RlICovCisjZGVmaW5lIFNWTUxPVlBFX0ggICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1ZNIGxvdyBzaWRlIG92ZXItdm9sdGFnZSBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNTEVfSCAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTVk0gbG93IHNpZGUgZW5hYmxlICovCisjZGVmaW5lIFNWTUxGUF9IICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU1ZNIGxvdyBzaWRlIGZ1bGwgcGVyZm9ybWFjZSBtb2RlICovCisKKyNkZWZpbmUgU1ZTTUxSUkxfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTVlMgYW5kIFNWTSBsb3cgc2lkZSBSZXNldCBSZWxlYXNlIFZvbHRhZ2UgTGV2ZWwgMCAqLworI2RlZmluZSBTVlNNTFJSTF8xICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNWUyBhbmQgU1ZNIGxvdyBzaWRlIFJlc2V0IFJlbGVhc2UgVm9sdGFnZSBMZXZlbCAxICovCisjZGVmaW5lIFNWU01MUlJMXzIgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDIgKi8KKyNkZWZpbmUgU1ZTTUxSUkxfMyAgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBTVlMgYW5kIFNWTSBsb3cgc2lkZSBSZXNldCBSZWxlYXNlIFZvbHRhZ2UgTGV2ZWwgMyAqLworI2RlZmluZSBTVlNNTFJSTF80ICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNWUyBhbmQgU1ZNIGxvdyBzaWRlIFJlc2V0IFJlbGVhc2UgVm9sdGFnZSBMZXZlbCA0ICovCisjZGVmaW5lIFNWU01MUlJMXzUgICAgICAgICAgICAgKDB4MDAwNSkgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDUgKi8KKyNkZWZpbmUgU1ZTTUxSUkxfNiAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTVlMgYW5kIFNWTSBsb3cgc2lkZSBSZXNldCBSZWxlYXNlIFZvbHRhZ2UgTGV2ZWwgNiAqLworI2RlZmluZSBTVlNNTFJSTF83ICAgICAgICAgICAgICgweDAwMDcpICAgICAgIC8qIFNWUyBhbmQgU1ZNIGxvdyBzaWRlIFJlc2V0IFJlbGVhc2UgVm9sdGFnZSBMZXZlbCA3ICovCisKKyNkZWZpbmUgU1ZTTFJWTF8wICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTVlMgbG93IHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDAgKi8KKyNkZWZpbmUgU1ZTTFJWTF8xICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTVlMgbG93IHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDEgKi8KKyNkZWZpbmUgU1ZTTFJWTF8yICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTVlMgbG93IHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDIgKi8KKyNkZWZpbmUgU1ZTTFJWTF8zICAgICAgICAgICAgICAoMHgwMzAwKSAgICAgICAvKiBTVlMgbG93IHNpZGUgUmVzZXQgUmVsZWFzZSBWb2x0YWdlIExldmVsIDMgKi8KKworLyogU1ZTTUlPIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBTVk1MT0UgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNWTSBsb3cgc2lkZSBvdXRwdXQgZW5hYmxlICovCisjZGVmaW5lIFNWTUxWTFJPRSAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1ZNIGxvdyBzaWRlIHZvbHRhZ2UgbGV2ZWwgcmVhY2hlZCBvdXRwdXQgZW5hYmxlICovCisjZGVmaW5lIFNWTU9VVFBPTCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU1ZNT1VUIHBpbiBwb2xhcml0eSAqLworI2RlZmluZSBTVk1IT0UgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIFNWTSBoaWdoIHNpZGUgb3V0cHV0IGVuYWJsZSAqLworI2RlZmluZSBTVk1IVkxST0UgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIFNWTSBoaWdoIHNpZGUgdm9sdGFnZSBsZXZlbCByZWFjaGVkIG91dHB1dCBlbmFibGUgKi8KKworLyogU1ZTTUlPIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBTVk1MT0VfTCAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNWTSBsb3cgc2lkZSBvdXRwdXQgZW5hYmxlICovCisjZGVmaW5lIFNWTUxWTFJPRV9MICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1ZNIGxvdyBzaWRlIHZvbHRhZ2UgbGV2ZWwgcmVhY2hlZCBvdXRwdXQgZW5hYmxlICovCisjZGVmaW5lIFNWTU9VVFBPTF9MICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU1ZNT1VUIHBpbiBwb2xhcml0eSAqLworCisvKiBTVlNNSU8gQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFNWTUhPRV9IICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU1ZNIGhpZ2ggc2lkZSBvdXRwdXQgZW5hYmxlICovCisjZGVmaW5lIFNWTUhWTFJPRV9IICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1ZNIGhpZ2ggc2lkZSB2b2x0YWdlIGxldmVsIHJlYWNoZWQgb3V0cHV0IGVuYWJsZSAqLworCisvKiBQTU1JRkcgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFNWU01MRExZSUZHICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgRGVsYXkgZXhwaXJlZCBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBTVk1MSUZHICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNWTSBsb3cgc2lkZSBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBTVk1MVkxSSUZHICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNWTSBsb3cgc2lkZSBWb2x0YWdlIExldmVsIFJlYWNoZWQgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgU1ZTTUhETFlJRkcgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgRGVsYXkgZXhwaXJlZCBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBTVk1ISUZHICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNWTSBoaWdoIHNpZGUgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgU1ZNSFZMUklGRyAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTVk0gaGlnaCBzaWRlIFZvbHRhZ2UgTGV2ZWwgUmVhY2hlZCBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBQTU1CT1JJRkcgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFBNTSBTb2Z0d2FyZSBCT1IgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgUE1NUlNUSUZHICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBQTU0gUkVTRVQgcGluIGludGVycnVwdCBmbGFnICovCisjZGVmaW5lIFBNTVBPUklGRyAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogUE1NIFNvZnR3YXJlIFBPUiBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBTVlNISUZHICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIFNWUyBsb3cgc2lkZSBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBTVlNMSUZHICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFNWUyBoaWdoIHNpZGUgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgUE1NUlNUTFBNNUlGRyAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBMUE01IGluZGljYXRpb24gRmxhZyAqLworCisvKiBQTU1JRkcgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFNWU01MRExZSUZHX0wgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU1ZTIGFuZCBTVk0gbG93IHNpZGUgRGVsYXkgZXhwaXJlZCBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBTVk1MSUZHX0wgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNWTSBsb3cgc2lkZSBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBTVk1MVkxSSUZHX0wgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNWTSBsb3cgc2lkZSBWb2x0YWdlIExldmVsIFJlYWNoZWQgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgU1ZTTUhETFlJRkdfTCAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTVlMgYW5kIFNWTSBoaWdoIHNpZGUgRGVsYXkgZXhwaXJlZCBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBTVk1ISUZHX0wgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNWTSBoaWdoIHNpZGUgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgU1ZNSFZMUklGR19MICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTVk0gaGlnaCBzaWRlIFZvbHRhZ2UgTGV2ZWwgUmVhY2hlZCBpbnRlcnJ1cHQgZmxhZyAqLworCisvKiBQTU1JRkcgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFBNTUJPUklGR19IICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogUE1NIFNvZnR3YXJlIEJPUiBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBQTU1SU1RJRkdfSCAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFBNTSBSRVNFVCBwaW4gaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgUE1NUE9SSUZHX0ggICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQTU0gU29mdHdhcmUgUE9SIGludGVycnVwdCBmbGFnICovCisjZGVmaW5lIFNWU0hJRkdfSCAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1ZTIGxvdyBzaWRlIGludGVycnVwdCBmbGFnICovCisjZGVmaW5lIFNWU0xJRkdfSCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU1ZTIGhpZ2ggc2lkZSBpbnRlcnJ1cHQgZmxhZyAqLworI2RlZmluZSBQTU1SU1RMUE01SUZHX0ggICAgICAgICgweDAwODApICAgICAgIC8qIExQTTUgaW5kaWNhdGlvbiBGbGFnICovCisKKy8qIFBNTUlFIGFuZCBSRVNFVCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgU1ZTTUxETFlJRSAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTVlMgYW5kIFNWTSBsb3cgc2lkZSBEZWxheSBleHBpcmVkIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNTElFICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTVk0gbG93IHNpZGUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBTVk1MVkxSSUUgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNWTSBsb3cgc2lkZSBWb2x0YWdlIExldmVsIFJlYWNoZWQgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBTVlNNSERMWUlFICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNWUyBhbmQgU1ZNIGhpZ2ggc2lkZSBEZWxheSBleHBpcmVkIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNSElFICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTVk0gaGlnaCBzaWRlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNSFZMUklFICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTVk0gaGlnaCBzaWRlIFZvbHRhZ2UgTGV2ZWwgUmVhY2hlZCBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFNWU0xQRSAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU1ZTIGxvdyBzaWRlIFBPUiBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNTFZMUlBFICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTVk0gbG93IHNpZGUgVm9sdGFnZSBMZXZlbCByZWFjaGVkIFBPUiBlbmFibGUgKi8KKyNkZWZpbmUgU1ZTSFBFICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBTVlMgaGlnaCBzaWRlIFBPUiBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNSFZMUlBFICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBTVk0gaGlnaCBzaWRlIFZvbHRhZ2UgTGV2ZWwgcmVhY2hlZCBQT1IgZW5hYmxlICovCisKKy8qIFBNTUlFIGFuZCBSRVNFVCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgU1ZTTUxETFlJRV9MICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTVlMgYW5kIFNWTSBsb3cgc2lkZSBEZWxheSBleHBpcmVkIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNTElFX0wgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTVk0gbG93IHNpZGUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBTVk1MVkxSSUVfTCAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNWTSBsb3cgc2lkZSBWb2x0YWdlIExldmVsIFJlYWNoZWQgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBTVlNNSERMWUlFX0wgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNWUyBhbmQgU1ZNIGhpZ2ggc2lkZSBEZWxheSBleHBpcmVkIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNSElFX0wgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTVk0gaGlnaCBzaWRlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgU1ZNSFZMUklFX0wgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTVk0gaGlnaCBzaWRlIFZvbHRhZ2UgTGV2ZWwgUmVhY2hlZCBpbnRlcnJ1cHQgZW5hYmxlICovCisKKy8qIFBNTUlFIGFuZCBSRVNFVCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgU1ZTTFBFX0ggICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTVlMgbG93IHNpZGUgUE9SIGVuYWJsZSAqLworI2RlZmluZSBTVk1MVkxSUEVfSCAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNWTSBsb3cgc2lkZSBWb2x0YWdlIExldmVsIHJlYWNoZWQgUE9SIGVuYWJsZSAqLworI2RlZmluZSBTVlNIUEVfSCAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNWUyBoaWdoIHNpZGUgUE9SIGVuYWJsZSAqLworI2RlZmluZSBTVk1IVkxSUEVfSCAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNWTSBoaWdoIHNpZGUgVm9sdGFnZSBMZXZlbCByZWFjaGVkIFBPUiBlbmFibGUgKi8KKworLyogUG93ZXIgTW9kZSA1IENvbnRyb2wgQml0cyAqLworI2RlZmluZSBMT0NLSU9fTCAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIExvY2sgSS9PIHBpbiBjb25maWd1cmF0aW9uIHVwb24gZW50cnkvZXhpdCB0by9mcm9tIExQTTUgKi8KKworLyogUG93ZXIgTW9kZSA1IENvbnRyb2wgQml0cyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBSQU0gQ29udHJvbCBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19SQ19fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoUkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmFtIENvbnRyb2xsZXIgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzhCSVQoUkNDVEwwX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJhbSBDb250cm9sbGVyIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFJDQ1RMMF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSYW0gQ29udHJvbGxlciBDb250cm9sIFJlZ2lzdGVyICovCisKKy8qIFJDQ1RMMCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgUkNSUzBPRkYgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBSQU0gQ29udHJvbGxlciBSQU0gU2VjdG9yIDAgT2ZmICovCisjZGVmaW5lIFJDUlMxT0ZGICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogUkFNIENvbnRyb2xsZXIgUkFNIFNlY3RvciAxIE9mZiAqLworI2RlZmluZSBSQ1JTMk9GRiAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFJBTSBDb250cm9sbGVyIFJBTSBTZWN0b3IgMiBPZmYgKi8KKyNkZWZpbmUgUkNSUzNPRkYgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSQU0gQ29udHJvbGxlciBSQU0gU2VjdG9yIDMgT2ZmICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDEwKSAgLyogUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMjApICAvKiBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA0MCkgIC8qIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgLyogUmVzZXJ2ZWQgKi8KKworLyogUkNDVEwwIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBSQ1JTME9GRl9MICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFJBTSBDb250cm9sbGVyIFJBTSBTZWN0b3IgMCBPZmYgKi8KKyNkZWZpbmUgUkNSUzFPRkZfTCAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBSQU0gQ29udHJvbGxlciBSQU0gU2VjdG9yIDEgT2ZmICovCisjZGVmaW5lIFJDUlMyT0ZGX0wgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUkFNIENvbnRyb2xsZXIgUkFNIFNlY3RvciAyIE9mZiAqLworI2RlZmluZSBSQ1JTM09GRl9MICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJBTSBDb250cm9sbGVyIFJBTSBTZWN0b3IgMyBPZmYgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMTApICAvKiBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAyMCkgIC8qIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDQwKSAgLyogUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwODApICAvKiBSZXNlcnZlZCAqLworCisvKiBSQ0NUTDAgQ29udHJvbCBCaXRzICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDEwKSAgLyogUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMjApICAvKiBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA0MCkgIC8qIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgLyogUmVzZXJ2ZWQgKi8KKworI2RlZmluZSBSQ0tFWSAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUmVhbCBUaW1lIENsb2NrCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19SVENfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoUlRDQ1RMMDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lciBDb250cm9sIDAvMSAqLworU0ZSXzhCSVQoUlRDQ1RMMDFfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZXIgQ29udHJvbCAwLzEgKi8KK1NGUl84QklUKFJUQ0NUTDAxX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWVyIENvbnRyb2wgMC8xICovCitTRlJfMTZCSVQoUlRDQ1RMMjMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lciBDb250cm9sIDIvMyAqLworU0ZSXzhCSVQoUlRDQ1RMMjNfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZXIgQ29udHJvbCAyLzMgKi8KK1NGUl84QklUKFJUQ0NUTDIzX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWVyIENvbnRyb2wgMi8zICovCitTRlJfMTZCSVQoUlRDUFMwQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lciBQcmVzY2FsZSBUaW1lciAwIENvbnRyb2wgKi8KK1NGUl84QklUKFJUQ1BTMENUTF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWVyIFByZXNjYWxlIFRpbWVyIDAgQ29udHJvbCAqLworU0ZSXzhCSVQoUlRDUFMwQ1RMX0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZXIgUHJlc2NhbGUgVGltZXIgMCBDb250cm9sICovCitTRlJfMTZCSVQoUlRDUFMxQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lciBQcmVzY2FsZSBUaW1lciAxIENvbnRyb2wgKi8KK1NGUl84QklUKFJUQ1BTMUNUTF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWVyIFByZXNjYWxlIFRpbWVyIDEgQ29udHJvbCAqLworU0ZSXzhCSVQoUlRDUFMxQ1RMX0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZXIgUHJlc2NhbGUgVGltZXIgMSBDb250cm9sICovCitTRlJfMTZCSVQoUlRDUFMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lciBQcmVzY2FsZSBUaW1lciBDb250cm9sICovCitTRlJfOEJJVChSVENQU19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lciBQcmVzY2FsZSBUaW1lciBDb250cm9sICovCitTRlJfOEJJVChSVENQU19IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lciBQcmVzY2FsZSBUaW1lciBDb250cm9sICovCitTRlJfMTZCSVQoUlRDSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lIENsb2NrIEludGVycnVwdCBWZWN0b3IgKi8KK1NGUl8xNkJJVChSVENUSU0wKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgVGltZSAwICovCitTRlJfOEJJVChSVENUSU0wX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lIENsb2NrIFRpbWUgMCAqLworU0ZSXzhCSVQoUlRDVElNMF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZSBDbG9jayBUaW1lIDAgKi8KK1NGUl8xNkJJVChSVENUSU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgVGltZSAxICovCitTRlJfOEJJVChSVENUSU0xX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lIENsb2NrIFRpbWUgMSAqLworU0ZSXzhCSVQoUlRDVElNMV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZSBDbG9jayBUaW1lIDEgKi8KK1NGUl8xNkJJVChSVENEQVRFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgRGF0ZSAqLworU0ZSXzhCSVQoUlRDREFURV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZSBDbG9jayBEYXRlICovCitTRlJfOEJJVChSVENEQVRFX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lIENsb2NrIERhdGUgKi8KK1NGUl8xNkJJVChSVENZRUFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgWWVhciAqLworU0ZSXzhCSVQoUlRDWUVBUl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZSBDbG9jayBZZWFyICovCitTRlJfOEJJVChSVENZRUFSX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lIENsb2NrIFllYXIgKi8KK1NGUl8xNkJJVChSVENBTUlOSFIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgQWxhcm0gTWluL0hvdXIgKi8KK1NGUl84QklUKFJUQ0FNSU5IUl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgQWxhcm0gTWluL0hvdXIgKi8KK1NGUl84QklUKFJUQ0FNSU5IUl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgQWxhcm0gTWluL0hvdXIgKi8KK1NGUl8xNkJJVChSVENBRE9XREFZKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgQWxhcm0gZGF5IG9mIHdlZWsvZGF5ICovCitTRlJfOEJJVChSVENBRE9XREFZX0wpOyAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lIENsb2NrIEFsYXJtIGRheSBvZiB3ZWVrL2RheSAqLworU0ZSXzhCSVQoUlRDQURPV0RBWV9IKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZSBDbG9jayBBbGFybSBkYXkgb2Ygd2Vlay9kYXkgKi8KKworI2RlZmluZSBSVENDVEwwICAgICAgICAgICAgICAgIFJUQ0NUTDAxX0wgICAgIC8qIFJlYWwgVGltZSBDbG9jayBDb250cm9sIDAgKi8KKyNkZWZpbmUgUlRDQ1RMMSAgICAgICAgICAgICAgICBSVENDVEwwMV9IICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgQ29udHJvbCAxICovCisjZGVmaW5lIFJUQ0NUTDIgICAgICAgICAgICAgICAgUlRDQ1RMMjNfTCAgICAgLyogUmVhbCBUaW1lIENsb2NrIENvbnRyb2wgMiAqLworI2RlZmluZSBSVENDVEwzICAgICAgICAgICAgICAgIFJUQ0NUTDIzX0ggICAgIC8qIFJlYWwgVGltZSBDbG9jayBDb250cm9sIDMgKi8KKyNkZWZpbmUgUlRDTlQxMiAgICAgICAgICAgICAgICBSVENUSU0wCisjZGVmaW5lIFJUQ05UMzQgICAgICAgICAgICAgICAgUlRDVElNMQorI2RlZmluZSBSVENOVDEgICAgICAgICAgICAgICAgIFJUQ1RJTTBfTAorI2RlZmluZSBSVENOVDIgICAgICAgICAgICAgICAgIFJUQ1RJTTBfSAorI2RlZmluZSBSVENOVDMgICAgICAgICAgICAgICAgIFJUQ1RJTTFfTAorI2RlZmluZSBSVENOVDQgICAgICAgICAgICAgICAgIFJUQ1RJTTFfSAorI2RlZmluZSBSVENTRUMgICAgICAgICAgICAgICAgIFJUQ1RJTTBfTAorI2RlZmluZSBSVENNSU4gICAgICAgICAgICAgICAgIFJUQ1RJTTBfSAorI2RlZmluZSBSVENIT1VSICAgICAgICAgICAgICAgIFJUQ1RJTTFfTAorI2RlZmluZSBSVENET1cgICAgICAgICAgICAgICAgIFJUQ1RJTTFfSAorI2RlZmluZSBSVENEQVkgICAgICAgICAgICAgICAgIFJUQ0RBVEVfTAorI2RlZmluZSBSVENNT04gICAgICAgICAgICAgICAgIFJUQ0RBVEVfSAorI2RlZmluZSBSVENZRUFSTCAgICAgICAgICAgICAgIFJUQ1lFQVJfTAorI2RlZmluZSBSVENZRUFSSCAgICAgICAgICAgICAgIFJUQ1lFQVJfSAorCisvKiBSVENDVEwwMSBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgUlRDQkNEICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBSVEMgQkNEICAwOkJpbmFyeSAvIDE6QkNEICovCisjZGVmaW5lIFJUQ0hPTEQgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogUlRDIEhvbGQgKi8KKyNkZWZpbmUgUlRDTU9ERSAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBSVEMgTW9kZSAwOkNvdW50ZXIgLyAxOiBDYWxlbmRhciAqLworI2RlZmluZSBSVENSRFkgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIFJUQyBSZWFkeSAqLworI2RlZmluZSBSVENTU0VMMSAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIFJUQyBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgUlRDU1NFTDAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBSVEMgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFJUQ1RFVjEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogUlRDIFRpbWUgRXZlbnQgMSAqLworI2RlZmluZSBSVENURVYwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFJUQyBUaW1lIEV2ZW50IDAgKi8KKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBSVENURVZJRSAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFJUQyBUaW1lIEV2ZW50IEludGVycnVwdCBFbmFibGUgRmxhZyAqLworI2RlZmluZSBSVENBSUUgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFJUQyBBbGFybSBJbnRlcnJ1cHQgRW5hYmxlIEZsYWcgKi8KKyNkZWZpbmUgUlRDUkRZSUUgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBSVEMgUmVhZHkgSW50ZXJydXB0IEVuYWJsZSBGbGFnICovCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgUlRDVEVWSUZHICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBSVEMgVGltZSBFdmVudCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSVENBSUZHICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFJUQyBBbGFybSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSVENSRFlJRkcgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFJUQyBSZWFkeSBJbnRlcnJ1cHQgRmxhZyAqLworCisvKiBSVENDVEwwMSBDb250cm9sIEJpdHMgKi8KKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBSVENURVZJRV9MICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFJUQyBUaW1lIEV2ZW50IEludGVycnVwdCBFbmFibGUgRmxhZyAqLworI2RlZmluZSBSVENBSUVfTCAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFJUQyBBbGFybSBJbnRlcnJ1cHQgRW5hYmxlIEZsYWcgKi8KKyNkZWZpbmUgUlRDUkRZSUVfTCAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBSVEMgUmVhZHkgSW50ZXJydXB0IEVuYWJsZSBGbGFnICovCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgUlRDVEVWSUZHX0wgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBSVEMgVGltZSBFdmVudCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSVENBSUZHX0wgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFJUQyBBbGFybSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBSVENSRFlJRkdfTCAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFJUQyBSZWFkeSBJbnRlcnJ1cHQgRmxhZyAqLworCisvKiBSVENDVEwwMSBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgUlRDQkNEX0ggICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBSVEMgQkNEICAwOkJpbmFyeSAvIDE6QkNEICovCisjZGVmaW5lIFJUQ0hPTERfSCAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogUlRDIEhvbGQgKi8KKyNkZWZpbmUgUlRDTU9ERV9IICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBSVEMgTW9kZSAwOkNvdW50ZXIgLyAxOiBDYWxlbmRhciAqLworI2RlZmluZSBSVENSRFlfSCAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFJUQyBSZWFkeSAqLworI2RlZmluZSBSVENTU0VMMV9IICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJUQyBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgUlRDU1NFTDBfSCAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBSVEMgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFJUQ1RFVjFfSCAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogUlRDIFRpbWUgRXZlbnQgMSAqLworI2RlZmluZSBSVENURVYwX0ggICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFJUQyBUaW1lIEV2ZW50IDAgKi8KKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDgwKQorLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwMDgpCisKKyNkZWZpbmUgUlRDU1NFTF8wICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBSVEMgU291cmNlIFNlbGVjdCBBQ0xLICovCisjZGVmaW5lIFJUQ1NTRUxfMSAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogUlRDIFNvdXJjZSBTZWxlY3QgU01DTEsgKi8KKyNkZWZpbmUgUlRDU1NFTF8yICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBSVEMgU291cmNlIFNlbGVjdCBSVDFQUyAqLworI2RlZmluZSBSVENTU0VMXzMgICAgICAgICAgICAgICgweDBDMDApICAgICAgIC8qIFJUQyBTb3VyY2UgU2VsZWN0IFJUMVBTICovCisjZGVmaW5lIFJUQ1NTRUxfX0FDTEsgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogUlRDIFNvdXJjZSBTZWxlY3QgQUNMSyAqLworI2RlZmluZSBSVENTU0VMX19TTUNMSyAgICAgICAgICgweDA0MDApICAgICAgIC8qIFJUQyBTb3VyY2UgU2VsZWN0IFNNQ0xLICovCisjZGVmaW5lIFJUQ1NTRUxfX1JUMVBTICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogUlRDIFNvdXJjZSBTZWxlY3QgUlQxUFMgKi8KKyNkZWZpbmUgUlRDVEVWXzAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBSVEMgVGltZSBFdmVudDogMCAoTWluLiBjaGFuZ2VkKSAqLworI2RlZmluZSBSVENURVZfMSAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFJUQyBUaW1lIEV2ZW50OiAxIChIb3VyIGNoYW5nZWQpICovCisjZGVmaW5lIFJUQ1RFVl8yICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogUlRDIFRpbWUgRXZlbnQ6IDIgKDEyOjAwIGNoYW5nZWQpICovCisjZGVmaW5lIFJUQ1RFVl8zICAgICAgICAgICAgICAgKDB4MDMwMCkgICAgICAgLyogUlRDIFRpbWUgRXZlbnQ6IDMgKDAwOjAwIGNoYW5nZWQpICovCisjZGVmaW5lIFJUQ1RFVl9fTUlOICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogUlRDIFRpbWUgRXZlbnQ6IDAgKE1pbi4gY2hhbmdlZCkgKi8KKyNkZWZpbmUgUlRDVEVWX19IT1VSICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBSVEMgVGltZSBFdmVudDogMSAoSG91ciBjaGFuZ2VkKSAqLworI2RlZmluZSBSVENURVZfXzEyMDAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFJUQyBUaW1lIEV2ZW50OiAyICgxMjowMCBjaGFuZ2VkKSAqLworI2RlZmluZSBSVENURVZfXzAwMDAgICAgICAgICAgICgweDAzMDApICAgICAgIC8qIFJUQyBUaW1lIEV2ZW50OiAzICgwMDowMCBjaGFuZ2VkKSAqLworCisvKiBSVENDVEwyMyBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgUlRDQ0FMRjEgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gRnJlcXVlbmN5IEJpdCAxICovCisjZGVmaW5lIFJUQ0NBTEYwICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogUlRDIENhbGlicmF0aW9uIEZyZXF1ZW5jeSBCaXQgMCAqLworI2RlZmluZSBSVENDQUxTICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFJUQyBDYWxpYnJhdGlvbiBTaWduICovCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgUlRDQ0FMNSAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gQml0IDUgKi8KKyNkZWZpbmUgUlRDQ0FMNCAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gQml0IDQgKi8KKyNkZWZpbmUgUlRDQ0FMMyAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gQml0IDMgKi8KKyNkZWZpbmUgUlRDQ0FMMiAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gQml0IDIgKi8KKyNkZWZpbmUgUlRDQ0FMMSAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gQml0IDEgKi8KKyNkZWZpbmUgUlRDQ0FMMCAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gQml0IDAgKi8KKworLyogUlRDQ1RMMjMgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFJUQ0NBTFNfTCAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogUlRDIENhbGlicmF0aW9uIFNpZ24gKi8KKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBSVENDQUw1X0wgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFJUQyBDYWxpYnJhdGlvbiBCaXQgNSAqLworI2RlZmluZSBSVENDQUw0X0wgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFJUQyBDYWxpYnJhdGlvbiBCaXQgNCAqLworI2RlZmluZSBSVENDQUwzX0wgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJUQyBDYWxpYnJhdGlvbiBCaXQgMyAqLworI2RlZmluZSBSVENDQUwyX0wgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFJUQyBDYWxpYnJhdGlvbiBCaXQgMiAqLworI2RlZmluZSBSVENDQUwxX0wgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFJUQyBDYWxpYnJhdGlvbiBCaXQgMSAqLworI2RlZmluZSBSVENDQUwwX0wgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFJUQyBDYWxpYnJhdGlvbiBCaXQgMCAqLworCisvKiBSVENDVEwyMyBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgUlRDQ0FMRjFfSCAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gRnJlcXVlbmN5IEJpdCAxICovCisjZGVmaW5lIFJUQ0NBTEYwX0ggICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogUlRDIENhbGlicmF0aW9uIEZyZXF1ZW5jeSBCaXQgMCAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwNDApCisKKyNkZWZpbmUgUlRDQ0FMRl8wICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gRnJlcXVlbmN5OiBObyBPdXRwdXQgKi8KKyNkZWZpbmUgUlRDQ0FMRl8xICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gRnJlcXVlbmN5OiA1MTIgSHogKi8KKyNkZWZpbmUgUlRDQ0FMRl8yICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gRnJlcXVlbmN5OiAyNTYgSHogKi8KKyNkZWZpbmUgUlRDQ0FMRl8zICAgICAgICAgICAgICAoMHgwMzAwKSAgICAgICAvKiBSVEMgQ2FsaWJyYXRpb24gRnJlcXVlbmN5OiAxIEh6ICovCisKKy8qIFJUQ1BTMENUTCBDb250cm9sIEJpdHMgKi8KKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHg4MDAwKQorI2RlZmluZSBSVDBTU0VMICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIFNvdXJjZSBTZWxlY3QgMDpBQ0xLIC8gMTpTTUNMSyAqLworI2RlZmluZSBSVDBQU0RJVjIgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIENsb2NrIERpdmlkZSBCaXQ6IDIgKi8KKyNkZWZpbmUgUlQwUFNESVYxICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBDbG9jayBEaXZpZGUgQml0OiAxICovCisjZGVmaW5lIFJUMFBTRElWMCAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDAgQ2xvY2sgRGl2aWRlIEJpdDogMCAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDA0MDApCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgUlQwUFNIT0xEICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBIb2xkICovCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDA4MCkKKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDQwKQorLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFJUMElQMiAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDAgSW50ZXJydXB0IEludGVydmFsIEJpdDogMiAqLworI2RlZmluZSBSVDBJUDEgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIEludGVycnVwdCBJbnRlcnZhbCBCaXQ6IDEgKi8KKyNkZWZpbmUgUlQwSVAwICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBJbnRlcnJ1cHQgSW50ZXJ2YWwgQml0OiAwICovCisjZGVmaW5lIFJUMFBTSUUgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDAgSW50ZXJydXB0IEVuYWxiZSBGbGFnICovCisjZGVmaW5lIFJUMFBTSUZHICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDAgSW50ZXJydXB0IEZsYWcgKi8KKworLyogUlRDUFMwQ1RMIENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDgwMDApCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDQwMCkKKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMjAwKQorLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwODApCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDA0MCkKKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBSVDBJUDJfTCAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIEludGVycnVwdCBJbnRlcnZhbCBCaXQ6IDIgKi8KKyNkZWZpbmUgUlQwSVAxX0wgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBJbnRlcnJ1cHQgSW50ZXJ2YWwgQml0OiAxICovCisjZGVmaW5lIFJUMElQMF9MICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDAgSW50ZXJydXB0IEludGVydmFsIEJpdDogMCAqLworI2RlZmluZSBSVDBQU0lFX0wgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIEludGVycnVwdCBFbmFsYmUgRmxhZyAqLworI2RlZmluZSBSVDBQU0lGR19MICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIEludGVycnVwdCBGbGFnICovCisKKy8qIFJUQ1BTMENUTCBDb250cm9sIEJpdHMgKi8KKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHg4MDAwKQorI2RlZmluZSBSVDBTU0VMX0ggICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIFNvdXJjZSBTZWxlY3QgMDpBQ0xLIC8gMTpTTUNMSyAqLworI2RlZmluZSBSVDBQU0RJVjJfSCAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIENsb2NrIERpdmlkZSBCaXQ6IDIgKi8KKyNkZWZpbmUgUlQwUFNESVYxX0ggICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBDbG9jayBEaXZpZGUgQml0OiAxICovCisjZGVmaW5lIFJUMFBTRElWMF9IICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDAgQ2xvY2sgRGl2aWRlIEJpdDogMCAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDA0MDApCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgUlQwUFNIT0xEX0ggICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBIb2xkICovCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDA4MCkKKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDQwKQorLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwMjApCisKKyNkZWZpbmUgUlQwSVBfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBJbnRlcnJ1cHQgSW50ZXJ2YWwgLzIgKi8KKyNkZWZpbmUgUlQwSVBfMSAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBJbnRlcnJ1cHQgSW50ZXJ2YWwgLzQgKi8KKyNkZWZpbmUgUlQwSVBfMiAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBJbnRlcnJ1cHQgSW50ZXJ2YWwgLzggKi8KKyNkZWZpbmUgUlQwSVBfMyAgICAgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBJbnRlcnJ1cHQgSW50ZXJ2YWwgLzE2ICovCisjZGVmaW5lIFJUMElQXzQgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDAgSW50ZXJydXB0IEludGVydmFsIC8zMiAqLworI2RlZmluZSBSVDBJUF81ICAgICAgICAgICAgICAgICgweDAwMTQpICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIEludGVycnVwdCBJbnRlcnZhbCAvNjQgKi8KKyNkZWZpbmUgUlQwSVBfNiAgICAgICAgICAgICAgICAoMHgwMDE4KSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBJbnRlcnJ1cHQgSW50ZXJ2YWwgLzEyOCAqLworI2RlZmluZSBSVDBJUF83ICAgICAgICAgICAgICAgICgweDAwMUMpICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIEludGVycnVwdCBJbnRlcnZhbCAvMjU2ICovCisKKyNkZWZpbmUgUlQwUFNESVZfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBDbG9jayBEaXZpZGUgLzIgKi8KKyNkZWZpbmUgUlQwUFNESVZfMSAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBDbG9jayBEaXZpZGUgLzQgKi8KKyNkZWZpbmUgUlQwUFNESVZfMiAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBDbG9jayBEaXZpZGUgLzggKi8KKyNkZWZpbmUgUlQwUFNESVZfMyAgICAgICAgICAgICAoMHgxODAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBDbG9jayBEaXZpZGUgLzE2ICovCisjZGVmaW5lIFJUMFBTRElWXzQgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDAgQ2xvY2sgRGl2aWRlIC8zMiAqLworI2RlZmluZSBSVDBQU0RJVl81ICAgICAgICAgICAgICgweDI4MDApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIENsb2NrIERpdmlkZSAvNjQgKi8KKyNkZWZpbmUgUlQwUFNESVZfNiAgICAgICAgICAgICAoMHgzMDAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMCBDbG9jayBEaXZpZGUgLzEyOCAqLworI2RlZmluZSBSVDBQU0RJVl83ICAgICAgICAgICAgICgweDM4MDApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAwIENsb2NrIERpdmlkZSAvMjU2ICovCisKKy8qIFJUQ1BTMUNUTCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgUlQxU1NFTDEgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBTb3VyY2UgU2VsZWN0IEJpdCAxICovCisjZGVmaW5lIFJUMVNTRUwwICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgU291cmNlIFNlbGVjdCBCaXQgMCAqLworI2RlZmluZSBSVDFQU0RJVjIgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAxIENsb2NrIERpdmlkZSBCaXQ6IDIgKi8KKyNkZWZpbmUgUlQxUFNESVYxICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBDbG9jayBEaXZpZGUgQml0OiAxICovCisjZGVmaW5lIFJUMVBTRElWMCAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgQ2xvY2sgRGl2aWRlIEJpdDogMCAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDA0MDApCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgUlQxUFNIT0xEICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBIb2xkICovCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDA4MCkKKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDQwKQorLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFJUMUlQMiAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgSW50ZXJydXB0IEludGVydmFsIEJpdDogMiAqLworI2RlZmluZSBSVDFJUDEgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAxIEludGVycnVwdCBJbnRlcnZhbCBCaXQ6IDEgKi8KKyNkZWZpbmUgUlQxSVAwICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBJbnRlcnJ1cHQgSW50ZXJ2YWwgQml0OiAwICovCisjZGVmaW5lIFJUMVBTSUUgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgSW50ZXJydXB0IEVuYWxiZSBGbGFnICovCisjZGVmaW5lIFJUMVBTSUZHICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgSW50ZXJydXB0IEZsYWcgKi8KKworLyogUlRDUFMxQ1RMIENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDA0MDApCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDIwMCkKKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDgwKQorLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwNDApCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgUlQxSVAyX0wgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBJbnRlcnJ1cHQgSW50ZXJ2YWwgQml0OiAyICovCisjZGVmaW5lIFJUMUlQMV9MICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgSW50ZXJydXB0IEludGVydmFsIEJpdDogMSAqLworI2RlZmluZSBSVDFJUDBfTCAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAxIEludGVycnVwdCBJbnRlcnZhbCBCaXQ6IDAgKi8KKyNkZWZpbmUgUlQxUFNJRV9MICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBJbnRlcnJ1cHQgRW5hbGJlIEZsYWcgKi8KKyNkZWZpbmUgUlQxUFNJRkdfTCAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBJbnRlcnJ1cHQgRmxhZyAqLworCisvKiBSVENQUzFDVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFJUMVNTRUwxX0ggICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgU291cmNlIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBSVDFTU0VMMF9IICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAxIFNvdXJjZSBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgUlQxUFNESVYyX0ggICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBDbG9jayBEaXZpZGUgQml0OiAyICovCisjZGVmaW5lIFJUMVBTRElWMV9IICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgQ2xvY2sgRGl2aWRlIEJpdDogMSAqLworI2RlZmluZSBSVDFQU0RJVjBfSCAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAxIENsb2NrIERpdmlkZSBCaXQ6IDAgKi8KKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwNDAwKQorLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIFJUMVBTSE9MRF9IICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgSG9sZCAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwODApCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDA0MCkKKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDIwKQorCisjZGVmaW5lIFJUMUlQXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgSW50ZXJydXB0IEludGVydmFsIC8yICovCisjZGVmaW5lIFJUMUlQXzEgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgSW50ZXJydXB0IEludGVydmFsIC80ICovCisjZGVmaW5lIFJUMUlQXzIgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgSW50ZXJydXB0IEludGVydmFsIC84ICovCisjZGVmaW5lIFJUMUlQXzMgICAgICAgICAgICAgICAgKDB4MDAwQykgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgSW50ZXJydXB0IEludGVydmFsIC8xNiAqLworI2RlZmluZSBSVDFJUF80ICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAxIEludGVycnVwdCBJbnRlcnZhbCAvMzIgKi8KKyNkZWZpbmUgUlQxSVBfNSAgICAgICAgICAgICAgICAoMHgwMDE0KSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBJbnRlcnJ1cHQgSW50ZXJ2YWwgLzY0ICovCisjZGVmaW5lIFJUMUlQXzYgICAgICAgICAgICAgICAgKDB4MDAxOCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgSW50ZXJydXB0IEludGVydmFsIC8xMjggKi8KKyNkZWZpbmUgUlQxSVBfNyAgICAgICAgICAgICAgICAoMHgwMDFDKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBJbnRlcnJ1cHQgSW50ZXJ2YWwgLzI1NiAqLworCisjZGVmaW5lIFJUMVBTRElWXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgQ2xvY2sgRGl2aWRlIC8yICovCisjZGVmaW5lIFJUMVBTRElWXzEgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgQ2xvY2sgRGl2aWRlIC80ICovCisjZGVmaW5lIFJUMVBTRElWXzIgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgQ2xvY2sgRGl2aWRlIC84ICovCisjZGVmaW5lIFJUMVBTRElWXzMgICAgICAgICAgICAgKDB4MTgwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgQ2xvY2sgRGl2aWRlIC8xNiAqLworI2RlZmluZSBSVDFQU0RJVl80ICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciAxIENsb2NrIERpdmlkZSAvMzIgKi8KKyNkZWZpbmUgUlQxUFNESVZfNSAgICAgICAgICAgICAoMHgyODAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBDbG9jayBEaXZpZGUgLzY0ICovCisjZGVmaW5lIFJUMVBTRElWXzYgICAgICAgICAgICAgKDB4MzAwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIDEgQ2xvY2sgRGl2aWRlIC8xMjggKi8KKyNkZWZpbmUgUlQxUFNESVZfNyAgICAgICAgICAgICAoMHgzODAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgMSBDbG9jayBEaXZpZGUgLzI1NiAqLworCisjZGVmaW5lIFJUMVNTRUxfMCAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIFNvdXJjZSBTZWxlY3QgQUNMSyAqLworI2RlZmluZSBSVDFTU0VMXzEgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFJUQyBQcmVzY2FsZSBUaW1lciBTb3VyY2UgU2VsZWN0IFNNQ0xLICovCisjZGVmaW5lIFJUMVNTRUxfMiAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogUlRDIFByZXNjYWxlIFRpbWVyIFNvdXJjZSBTZWxlY3QgUlQwUFMgKi8KKyNkZWZpbmUgUlQxU1NFTF8zICAgICAgICAgICAgICAoMHhDMDAwKSAgICAgICAvKiBSVEMgUHJlc2NhbGUgVGltZXIgU291cmNlIFNlbGVjdCBSVDBQUyAqLworCisvKiBSVEMgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgUlRDX05PTkUgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBSVENfUlRDUkRZSUZHICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFJUQyByZWFkeTogUlRDUkRZSUZHICovCisjZGVmaW5lIFJUQ19SVENURVZJRkcgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUlRDIGludGVydmFsIHRpbWVyOiBSVENURVZJRkcgKi8KKyNkZWZpbmUgUlRDX1JUQ0FJRkcgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSVEMgdXNlciBhbGFybTogUlRDQUlGRyAqLworI2RlZmluZSBSVENfUlQwUFNJRkcgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJUQyBwcmVzY2FsZXIgMDogUlQwUFNJRkcgKi8KKyNkZWZpbmUgUlRDX1JUMVBTSUZHICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBSVEMgcHJlc2NhbGVyIDE6IFJUMVBTSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU0ZSIC0gU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlciBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NGUl9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChTRlJJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KK1NGUl84QklUKFNGUklFMV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KK1NGUl84QklUKFNGUklFMV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKworLyogU0ZSSUUxIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFdEVCBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogT3NjIEZhdWx0IEVuYWJsZSAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFZNQUlFICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogVmFjYW50IE1lbW9yeSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTk1JIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQUNDVklFICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgVmlvbGF0aW9uIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgSk1CSU5JRSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBKVEFHIE1haWwgQm94IGlucHV0IEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgSk1CT1VUSUUgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBKVEFHIE1haWwgQm94IG91dHB1dCBJbnRlcnJ1cHQgRW5hYmxlICovCisKKyNkZWZpbmUgV0RUSUVfTCAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBXRFQgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPRklFX0wgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIE9zYyBGYXVsdCBFbmFibGUgKi8KKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWTUFJRV9MICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFZhY2FudCBNZW1vcnkgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBOTUlJRV9MICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIE5NSSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIEFDQ1ZJRV9MICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggQWNjZXNzIFZpb2xhdGlvbiBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIEpNQklOSUVfTCAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSlRBRyBNYWlsIEJveCBpbnB1dCBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIEpNQk9VVElFX0wgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSlRBRyBNYWlsIEJveCBvdXRwdXQgSW50ZXJydXB0IEVuYWJsZSAqLworCisvLyNkZWZpbmUgUmVzZXJ2ZWQgICAgICAgICAgKDB4MDAwNCkKKworU0ZSXzE2QklUKFNGUklGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDEgKi8KK1NGUl84QklUKFNGUklGRzFfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCitTRlJfOEJJVChTRlJJRkcxX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworLyogU0ZSSUZHMSBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBXRFQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBPc2MgRmF1bHQgRmxhZyAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFZNQUlGRyAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogVmFjYW50IE1lbW9yeSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBOTUlJRkcgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIE5NSSBJbnRlcnJ1cHQgRmxhZyAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEpNQklOSUZHICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSlRBRyBNYWlsIEJveCBpbnB1dCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBKTUJPVVRJRkcgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEpUQUcgTWFpbCBCb3ggb3V0cHV0IEludGVycnVwdCBGbGFnICovCisKKyNkZWZpbmUgV0RUSUZHX0wgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBXRFQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgT0ZJRkdfTCAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBPc2MgRmF1bHQgRmxhZyAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFZNQUlGR19MICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogVmFjYW50IE1lbW9yeSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBOTUlJRkdfTCAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIE5NSSBJbnRlcnJ1cHQgRmxhZyAqLworLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEpNQklOSUZHX0wgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSlRBRyBNYWlsIEJveCBpbnB1dCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBKTUJPVVRJRkdfTCAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEpUQUcgTWFpbCBCb3ggb3V0cHV0IEludGVycnVwdCBGbGFnICovCisKKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMDA0KQorLy8jZGVmaW5lIFJlc2VydmVkICAgICAgICAgICgweDAwMjApCisKK1NGUl8xNkJJVChTRlJSUENSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSRVNFVCBQaW4gQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzhCSVQoU0ZSUlBDUl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJFU0VUIFBpbiBDb250cm9sIFJlZ2lzdGVyICovCitTRlJfOEJJVChTRlJSUENSX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUkVTRVQgUGluIENvbnRyb2wgUmVnaXN0ZXIgKi8KKy8qIFNGUlJQQ1IgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFNZU05NSSAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogTk1JIHNlbGVjdCAqLworI2RlZmluZSBTWVNOTUlJRVMgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIE5NSSBlZGdlIHNlbGVjdCAqLworI2RlZmluZSBTWVNSU1RVUCAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFJFU0VUIFBpbiBwdWxsIGRvd24vdXAgc2VsZWN0ICovCisjZGVmaW5lIFNZU1JTVFJFICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUkVTRVQgUGluIFJlc2lzdG9yIGVuYWxiZSAqLworCisjZGVmaW5lIFNZU05NSV9MICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogTk1JIHNlbGVjdCAqLworI2RlZmluZSBTWVNOTUlJRVNfTCAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIE5NSSBlZGdlIHNlbGVjdCAqLworI2RlZmluZSBTWVNSU1RVUF9MICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFJFU0VUIFBpbiBwdWxsIGRvd24vdXAgc2VsZWN0ICovCisjZGVmaW5lIFNZU1JTVFJFX0wgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUkVTRVQgUGluIFJlc2lzdG9yIGVuYWxiZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNZUyAtIFN5c3RlbSBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NZU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChTWVNDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gY29udHJvbCAqLworU0ZSXzhCSVQoU1lTQ1RMX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBjb250cm9sICovCitTRlJfOEJJVChTWVNDVExfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIGNvbnRyb2wgKi8KK1NGUl8xNkJJVChTWVNCU0xDKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCb290IHN0cmFwIGNvbmZpZ3VyYXRpb24gYXJlYSAqLworU0ZSXzhCSVQoU1lTQlNMQ19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJvb3Qgc3RyYXAgY29uZmlndXJhdGlvbiBhcmVhICovCitTRlJfOEJJVChTWVNCU0xDX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQm9vdCBzdHJhcCBjb25maWd1cmF0aW9uIGFyZWEgKi8KK1NGUl8xNkJJVChTWVNBUkIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIEFyYml0cmF0aW9uIGNvbmZpZ3VyYXRpb24gKi8KK1NGUl84QklUKFNZU0FSQl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIEFyYml0cmF0aW9uIGNvbmZpZ3VyYXRpb24gKi8KK1NGUl84QklUKFNZU0FSQl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIEFyYml0cmF0aW9uIGNvbmZpZ3VyYXRpb24gKi8KK1NGUl8xNkJJVChTWVNKTUJDKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIG1haWxib3ggY29udHJvbCAqLworU0ZSXzhCSVQoU1lTSk1CQ19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEpUQUcgbWFpbGJveCBjb250cm9sICovCitTRlJfOEJJVChTWVNKTUJDX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSlRBRyBtYWlsYm94IGNvbnRyb2wgKi8KK1NGUl8xNkJJVChTWVNKTUJJMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIG1haWxib3ggaW5wdXQgMCAqLworU0ZSXzhCSVQoU1lTSk1CSTBfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEpUQUcgbWFpbGJveCBpbnB1dCAwICovCitTRlJfOEJJVChTWVNKTUJJMF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogSlRBRyBtYWlsYm94IGlucHV0IDAgKi8KK1NGUl8xNkJJVChTWVNKTUJJMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIG1haWxib3ggaW5wdXQgMSAqLworU0ZSXzhCSVQoU1lTSk1CSTFfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEpUQUcgbWFpbGJveCBpbnB1dCAxICovCitTRlJfOEJJVChTWVNKTUJJMV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogSlRBRyBtYWlsYm94IGlucHV0IDEgKi8KK1NGUl8xNkJJVChTWVNKTUJPMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIG1haWxib3ggb3V0cHV0IDAgKi8KK1NGUl84QklUKFNZU0pNQk8wX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIG1haWxib3ggb3V0cHV0IDAgKi8KK1NGUl84QklUKFNZU0pNQk8wX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIG1haWxib3ggb3V0cHV0IDAgKi8KK1NGUl8xNkJJVChTWVNKTUJPMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIG1haWxib3ggb3V0cHV0IDEgKi8KK1NGUl84QklUKFNZU0pNQk8xX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIG1haWxib3ggb3V0cHV0IDEgKi8KK1NGUl84QklUKFNZU0pNQk8xX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBKVEFHIG1haWxib3ggb3V0cHV0IDEgKi8KKworU0ZSXzE2QklUKFNZU0JFUlJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJ1cyBFcnJvciB2ZWN0b3IgZ2VuZXJhdG9yICovCitTRlJfOEJJVChTWVNCRVJSSVZfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQnVzIEVycm9yIHZlY3RvciBnZW5lcmF0b3IgKi8KK1NGUl84QklUKFNZU0JFUlJJVl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBCdXMgRXJyb3IgdmVjdG9yIGdlbmVyYXRvciAqLworU0ZSXzE2QklUKFNZU1VOSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVzZXIgTk1JIHZlY3RvciBnZW5lcmF0b3IgKi8KK1NGUl84QklUKFNZU1VOSVZfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVc2VyIE5NSSB2ZWN0b3IgZ2VuZXJhdG9yICovCitTRlJfOEJJVChTWVNVTklWX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVXNlciBOTUkgdmVjdG9yIGdlbmVyYXRvciAqLworU0ZSXzE2QklUKFNZU1NOSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBOTUkgdmVjdG9yIGdlbmVyYXRvciAqLworU0ZSXzhCSVQoU1lTU05JVl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBOTUkgdmVjdG9yIGdlbmVyYXRvciAqLworU0ZSXzhCSVQoU1lTU05JVl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBOTUkgdmVjdG9yIGdlbmVyYXRvciAqLworU0ZSXzE2QklUKFNZU1JTVElWKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlc2V0IHZlY3RvciBnZW5lcmF0b3IgKi8KK1NGUl84QklUKFNZU1JTVElWX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXNldCB2ZWN0b3IgZ2VuZXJhdG9yICovCitTRlJfOEJJVChTWVNSU1RJVl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzZXQgdmVjdG9yIGdlbmVyYXRvciAqLworCisvKiBTWVNDVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFNZU1JJVkVDVCAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU1lTIC0gUkFNIGJhc2VkIGludGVycnVwdCB2ZWN0b3JzICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDAyKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgU1lTUE1NUEUgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTWVMgLSBQTU0gYWNjZXNzIHByb3RlY3QgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDgpICAvKiBTWVMgLSBSZXNlcnZlZCAqLworI2RlZmluZSBTWVNCU0xJTkQgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNZUyAtIFRDSy9SU1QgaW5kaWNhdGlvbiBkZXRlY3RlZCAqLworI2RlZmluZSBTWVNKVEFHUElOICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNZUyAtIERlZGljYXRlZCBKVEFHIHBpbnMgZW5hYmxlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA0MCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAxMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDIwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwNDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MTAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgyMDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4ODAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisKKy8qIFNZU0NUTCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgU1lTUklWRUNUX0wgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTWVMgLSBSQU0gYmFzZWQgaW50ZXJydXB0IHZlY3RvcnMgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDIpICAvKiBTWVMgLSBSZXNlcnZlZCAqLworI2RlZmluZSBTWVNQTU1QRV9MICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNZUyAtIFBNTSBhY2Nlc3MgcHJvdGVjdCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwOCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisjZGVmaW5lIFNZU0JTTElORF9MICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1lTIC0gVENLL1JTVCBpbmRpY2F0aW9uIGRldGVjdGVkICovCisjZGVmaW5lIFNZU0pUQUdQSU5fTCAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU1lTIC0gRGVkaWNhdGVkIEpUQUcgcGlucyBlbmFibGVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDQwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwODApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDEwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMjAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA0MDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDgwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgxMDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDIwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4NDAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKworLyogU1lTQ1RMIENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwMikgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDA4KSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwNDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA4MCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMTAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAyMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDEwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg0MDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDgwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworCisvKiBTWVNCU0xDIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBTWVNCU0xTSVpFMCAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNZUyAtIEJTTCBQcm90ZWN0aW9uIFNpemUgMCAqLworI2RlZmluZSBTWVNCU0xTSVpFMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNZUyAtIEJTTCBQcm90ZWN0aW9uIFNpemUgMSAqLworI2RlZmluZSBTWVNCU0xSICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNZUyAtIFJBTSBhc3NpZ25lZCB0byBCU0wgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDgpICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAxMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDIwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwNDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA4MCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMTAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAyMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDEwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisjZGVmaW5lIFNZU0JTTE9GRiAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogU1lTIC0gQlNMIE1lbWVvcnkgZGlzYWJsZWQgKi8KKyNkZWZpbmUgU1lTQlNMUEUgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBTWVMgLSBCU0wgTWVtb3J5IHByb3RlY3Rpb24gZW5hbGJlZCAqLworCisvKiBTWVNCU0xDIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBTWVNCU0xTSVpFMF9MICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNZUyAtIEJTTCBQcm90ZWN0aW9uIFNpemUgMCAqLworI2RlZmluZSBTWVNCU0xTSVpFMV9MICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNZUyAtIEJTTCBQcm90ZWN0aW9uIFNpemUgMSAqLworI2RlZmluZSBTWVNCU0xSX0wgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNZUyAtIFJBTSBhc3NpZ25lZCB0byBCU0wgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDgpICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAxMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDIwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwNDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA4MCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMTAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAyMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDEwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisKKy8qIFNZU0JTTEMgQ29udHJvbCBCaXRzICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDA4KSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMTApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAyMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDQwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwODApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDEwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMjAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA0MDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDgwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgxMDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDIwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworI2RlZmluZSBTWVNCU0xPRkZfSCAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNZUyAtIEJTTCBNZW1lb3J5IGRpc2FibGVkICovCisjZGVmaW5lIFNZU0JTTFBFX0ggICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU1lTIC0gQlNMIE1lbW9yeSBwcm90ZWN0aW9uIGVuYWxiZWQgKi8KKworLyogU1lTSk1CQyBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgSk1CSU4wRkcgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTWVMgLSBJbmNvbWluZyBKVEFHIE1haWxib3ggMCBGbGFnICovCisjZGVmaW5lIEpNQklOMUZHICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU1lTIC0gSW5jb21pbmcgSlRBRyBNYWlsYm94IDEgRmxhZyAqLworI2RlZmluZSBKTUJPVVQwRkcgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNZUyAtIE91dGdvaW5nIEpUQUcgTWFpbGJveCAwIEZsYWcgKi8KKyNkZWZpbmUgSk1CT1VUMUZHICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTWVMgLSBPdXRnb2luZyBKVEFHIE1haWxib3ggMSBGbGFnICovCisjZGVmaW5lIEpNQk1PREUgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU1lTIC0gSk1CIDE2LzMyIEJpdCBNb2RlICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDIwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgSk1CQ0xSME9GRiAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTWVMgLSBJbmNvbWluZyBKVEFHIE1haWxib3ggMCBGbGFnIGF1dG8tY2xlYXIgZGlzYWxiZSAqLworI2RlZmluZSBKTUJDTFIxT0ZGICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFNZUyAtIEluY29taW5nIEpUQUcgTWFpbGJveCAxIEZsYWcgYXV0by1jbGVhciBkaXNhbGJlICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMTAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAyMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDEwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg0MDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDgwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworCisvKiBTWVNKTUJDIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBKTUJJTjBGR19MICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNZUyAtIEluY29taW5nIEpUQUcgTWFpbGJveCAwIEZsYWcgKi8KKyNkZWZpbmUgSk1CSU4xRkdfTCAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTWVMgLSBJbmNvbWluZyBKVEFHIE1haWxib3ggMSBGbGFnICovCisjZGVmaW5lIEpNQk9VVDBGR19MICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU1lTIC0gT3V0Z29pbmcgSlRBRyBNYWlsYm94IDAgRmxhZyAqLworI2RlZmluZSBKTUJPVVQxRkdfTCAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNZUyAtIE91dGdvaW5nIEpUQUcgTWFpbGJveCAxIEZsYWcgKi8KKyNkZWZpbmUgSk1CTU9ERV9MICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTWVMgLSBKTUIgMTYvMzIgQml0IE1vZGUgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMjApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworI2RlZmluZSBKTUJDTFIwT0ZGX0wgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNZUyAtIEluY29taW5nIEpUQUcgTWFpbGJveCAwIEZsYWcgYXV0by1jbGVhciBkaXNhbGJlICovCisjZGVmaW5lIEpNQkNMUjFPRkZfTCAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU1lTIC0gSW5jb21pbmcgSlRBRyBNYWlsYm94IDEgRmxhZyBhdXRvLWNsZWFyIGRpc2FsYmUgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAxMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDIwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwNDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MTAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgyMDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4ODAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisKKy8qIFNZU0pNQkMgQ29udHJvbCBCaXRzICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDIwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAxMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDIwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwNDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MTAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgyMDAwKSAgLyogU1lTIC0gUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAvKiBTWVMgLSBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4ODAwMCkgIC8qIFNZUyAtIFJlc2VydmVkICovCisKKy8qIFNZU1VOSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgU1lTVU5JVl9OT05FICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBTWVNVTklWX05NSUlGRyAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNZU1VOSVYgOiBOTUlJRkcgKi8KKyNkZWZpbmUgU1lTVU5JVl9PRklGRyAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTWVNVTklWIDogT3NjLiBGYWlsIC0gT0ZJRkcgKi8KKyNkZWZpbmUgU1lTVU5JVl9BQ0NWSUZHICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTWVNVTklWIDogQWNjZXNzIFZpb2xhdGlvbiAtIEFDQ1ZJRkcgKi8KKyNkZWZpbmUgU1lTVU5JVl9TWVNCRVJSSVYgICAgICAoMHgwMDA4KSAgICAgICAvKiBTWVNVTklWIDogQnVzIEVycm9yIC0gU1lTQkVSUklWICovCisKKy8qIFNZU1NOSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgU1lTU05JVl9OT05FICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBTWVNTTklWX1NWTUxJRkcgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNZU1NOSVYgOiBTVk1MSUZHICovCisjZGVmaW5lIFNZU1NOSVZfU1ZNSElGRyAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU1lTU05JViA6IFNWTUhJRkcgKi8KKyNkZWZpbmUgU1lTU05JVl9ETFlMSUZHICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTWVNTTklWIDogRExZTElGRyAqLworI2RlZmluZSBTWVNTTklWX0RMWUhJRkcgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNZU1NOSVYgOiBETFlISUZHICovCisjZGVmaW5lIFNZU1NOSVZfVk1BSUZHICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogU1lTU05JViA6IFZNQUlGRyAqLworI2RlZmluZSBTWVNTTklWX0pNQklOSUZHICAgICAgICgweDAwMEMpICAgICAgIC8qIFNZU1NOSVYgOiBKTUJJTklGRyAqLworI2RlZmluZSBTWVNTTklWX0pNQk9VVElGRyAgICAgICgweDAwMEUpICAgICAgIC8qIFNZU1NOSVYgOiBKTUJPVVRJRkcgKi8KKyNkZWZpbmUgU1lTU05JVl9WTFJMSUZHICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTWVNTTklWIDogVkxSTElGRyAqLworI2RlZmluZSBTWVNTTklWX1ZMUkhJRkcgICAgICAgICgweDAwMTIpICAgICAgIC8qIFNZU1NOSVYgOiBWTFJISUZHICovCisKKy8qIFNZU1JTVElWIERlZmluaXRpb25zICovCisjZGVmaW5lIFNZU1JTVElWX05PTkUgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgU1lTUlNUSVZfQk9SICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTWVNSU1RJViA6IEJPUiAqLworI2RlZmluZSBTWVNSU1RJVl9SU1ROTUkgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNZU1JTVElWIDogUlNUL05NSSAqLworI2RlZmluZSBTWVNSU1RJVl9ET0JPUiAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFNZU1JTVElWIDogRG8gQk9SICovCisjZGVmaW5lIFNZU1JTVElWX1BPUlRXVSAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU1lTUlNUSVYgOiBQb3J0IFdha2UgVXAgKi8KKyNkZWZpbmUgU1lTUlNUSVZfU0VDWVYgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBTWVNSU1RJViA6IFNlY3VyaXR5IHZpb2xhdGlvbiAqLworI2RlZmluZSBTWVNSU1RJVl9TVlNMICAgICAgICAgICgweDAwMEMpICAgICAgIC8qIFNZU1JTVElWIDogU1ZTTCAqLworI2RlZmluZSBTWVNSU1RJVl9TVlNIICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFNZU1JTVElWIDogU1ZTSCAqLworI2RlZmluZSBTWVNSU1RJVl9TVk1MX09WUCAgICAgICgweDAwMTApICAgICAgIC8qIFNZU1JTVElWIDogU1ZNTF9PVlAgKi8KKyNkZWZpbmUgU1lTUlNUSVZfU1ZNSF9PVlAgICAgICAoMHgwMDEyKSAgICAgICAvKiBTWVNSU1RJViA6IFNWTUhfT1ZQICovCisjZGVmaW5lIFNZU1JTVElWX0RPUE9SICAgICAgICAgKDB4MDAxNCkgICAgICAgLyogU1lTUlNUSVYgOiBEbyBQT1IgKi8KKyNkZWZpbmUgU1lTUlNUSVZfV0RUVE8gICAgICAgICAoMHgwMDE2KSAgICAgICAvKiBTWVNSU1RJViA6IFdEVCBUaW1lIG91dCAqLworI2RlZmluZSBTWVNSU1RJVl9XRFRLRVkgICAgICAgICgweDAwMTgpICAgICAgIC8qIFNZU1JTVElWIDogV0RUS0VZIHZpb2xhdGlvbiAqLworI2RlZmluZSBTWVNSU1RJVl9LRVlWICAgICAgICAgICgweDAwMUEpICAgICAgIC8qIFNZU1JTVElWIDogRmxhc2ggS2V5IHZpb2xhdGlvbiAqLworI2RlZmluZSBTWVNSU1RJVl9QTExVTCAgICAgICAgICgweDAwMUMpICAgICAgIC8qIFNZU1JTVElWIDogUExMIHVubG9jayAqLworI2RlZmluZSBTWVNSU1RJVl9QRVJGICAgICAgICAgICgweDAwMUUpICAgICAgIC8qIFNZU1JTVElWIDogcGVyaXBoZXJhbC9jb25maWcgYXJlYSBmZXRjaCAqLworI2RlZmluZSBTWVNSU1RJVl9QU1NLRVkgICAgICAgICgweDAwMjApICAgICAgIC8qIFNZU1JTVElWIDogUFNTS0VZIHZpb2xhdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyMF9BNQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVDBBNV9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorU0ZSXzE2QklUKFRBMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDb250cm9sICovCitTRlJfOEJJVChUQTBDVExfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0E1IENvbnRyb2wgKi8KK1NGUl84QklUKFRBMENUTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTUgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBMENDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfOEJJVChUQTBDQ1RMMF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0E1IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl84QklUKFRBMENDVEwwX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBMENDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfOEJJVChUQTBDQ1RMMV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0E1IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl84QklUKFRBMENDVEwxX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBMENDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfOEJJVChUQTBDQ1RMMl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0E1IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl84QklUKFRBMENDVEwyX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBMENDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAzICovCitTRlJfOEJJVChUQTBDQ1RMM19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0E1IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDMgKi8KK1NGUl84QklUKFRBMENDVEwzX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMyAqLworU0ZSXzE2QklUKFRBMENDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA0ICovCitTRlJfOEJJVChUQTBDQ1RMNF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0E1IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDQgKi8KK1NGUl84QklUKFRBMENDVEw0X0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgNCAqLworU0ZSXzE2QklUKFRBMFIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSAqLworU0ZSXzhCSVQoVEEwUl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSAqLworU0ZSXzhCSVQoVEEwUl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSAqLworU0ZSXzE2QklUKFRBMENDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzhCSVQoVEEwQ0NSMF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzhCSVQoVEEwQ0NSMF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBMENDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzhCSVQoVEEwQ0NSMV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzhCSVQoVEEwQ0NSMV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBMENDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMiAqLworU0ZSXzhCSVQoVEEwQ0NSMl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMiAqLworU0ZSXzhCSVQoVEEwQ0NSMl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMiAqLworU0ZSXzE2QklUKFRBMENDUjMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMyAqLworU0ZSXzhCSVQoVEEwQ0NSM19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMyAqLworU0ZSXzhCSVQoVEEwQ0NSM19IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgMyAqLworU0ZSXzE2QklUKFRBMENDUjQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgNCAqLworU0ZSXzhCSVQoVEEwQ0NSNF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgNCAqLworU0ZSXzhCSVQoVEEwQ0NSNF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBDYXB0dXJlL0NvbXBhcmUgNCAqLworU0ZSXzE2QklUKFRBMElWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BNSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl84QklUKFRBMElWX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTUgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfOEJJVChUQTBJVl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0E1IEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBMEVYMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BMyBFeHBhbnNpb24gUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVEEwRVgwX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BMyBFeHBhbnNpb24gUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVEEwRVgwX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BMyBFeHBhbnNpb24gUmVnaXN0ZXIgMCAqLworCisvKiBUQXhDVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKy8qIFRBeENUTCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgSUQxX0wgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDBfTCAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMV9MICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzBfTCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFJfTCAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRV9MICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGR19MICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisvKiBUQXhDVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFRBU1NFTDFfSCAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMF9IICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisjZGVmaW5lIE1DX19TVE9QICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DX19VUCAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DX19DT05USU5PVVMgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfX1VQRE9XTiAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfXzEgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF9fMiAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEX180ICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfXzggICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfX1RBQ0xLICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF9fQUNMSyAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMX19TTUNMSyAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfX0lOQ0xLICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKy8qIFRBeENUTHggQ29udHJvbCBCaXRzICovCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisvKiBUQXhDVEx4IENvbnRyb2wgQml0cyAqLworI2RlZmluZSBPVVRNT0QyX0wgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMV9MICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDBfTCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFX0wgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSV9MICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVF9MICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1ZfTCAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHX0wgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKy8qIFRBeENUTHggQ29udHJvbCBCaXRzICovCisjZGVmaW5lIENNMV9IICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wX0ggICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMV9IICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzBfSCAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDU19IICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0lfSCAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQX0ggICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQXhFWDAgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFRBSURFWDAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiBCaXQ6IDAgKi8KKyNkZWZpbmUgVEFJREVYMSAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIElucHV0IGRpdmlkZXIgZXhwYW5zaW9uIEJpdDogMSAqLworI2RlZmluZSBUQUlERVgyICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgSW5wdXQgZGl2aWRlciBleHBhbnNpb24gQml0OiAyICovCisKKy8qIFRBeEVYMCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgVEFJREVYMF9MICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIElucHV0IGRpdmlkZXIgZXhwYW5zaW9uIEJpdDogMCAqLworI2RlZmluZSBUQUlERVgxX0wgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgSW5wdXQgZGl2aWRlciBleHBhbnNpb24gQml0OiAxICovCisjZGVmaW5lIFRBSURFWDJfTCAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiBCaXQ6IDIgKi8KKworLyogVEF4RVgwIENvbnRyb2wgQml0cyAqLworCisjZGVmaW5lIFRBSURFWF8wICAgICAgICAgICAgICAgKDAqMHgwMDAxdSkgICAgLyogVGltZXIgQSBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC8xICovCisjZGVmaW5lIFRBSURFWF8xICAgICAgICAgICAgICAgKDEqMHgwMDAxdSkgICAgLyogVGltZXIgQSBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC8yICovCisjZGVmaW5lIFRBSURFWF8yICAgICAgICAgICAgICAgKDIqMHgwMDAxdSkgICAgLyogVGltZXIgQSBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC8zICovCisjZGVmaW5lIFRBSURFWF8zICAgICAgICAgICAgICAgKDMqMHgwMDAxdSkgICAgLyogVGltZXIgQSBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC80ICovCisjZGVmaW5lIFRBSURFWF80ICAgICAgICAgICAgICAgKDQqMHgwMDAxdSkgICAgLyogVGltZXIgQSBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC81ICovCisjZGVmaW5lIFRBSURFWF81ICAgICAgICAgICAgICAgKDUqMHgwMDAxdSkgICAgLyogVGltZXIgQSBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC82ICovCisjZGVmaW5lIFRBSURFWF82ICAgICAgICAgICAgICAgKDYqMHgwMDAxdSkgICAgLyogVGltZXIgQSBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC83ICovCisjZGVmaW5lIFRBSURFWF83ICAgICAgICAgICAgICAgKDcqMHgwMDAxdSkgICAgLyogVGltZXIgQSBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC84ICovCisKKy8qIFQwQTVJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQTBJVl9OT05FICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBMElWX1RBMENDUjEgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEEwQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQTBJVl9UQTBDQ1IyICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBMENDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEEwSVZfVEEwQ0NSMyAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBUQTBDQ1IzX0NDSUZHICovCisjZGVmaW5lIFRBMElWX1RBMENDUjQgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogVEEwQ0NSNF9DQ0lGRyAqLworI2RlZmluZSBUQTBJVl81ICAgICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBMElWXzYgICAgICAgICAgICAgICAgKDB4MDAwQykgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEEwSVZfVEEwSUZHICAgICAgICAgICAoMHgwMDBFKSAgICAgICAvKiBUQTBJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lcjFfQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1QxQTNfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQTFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ29udHJvbCAqLworU0ZSXzhCSVQoVEExQ1RMX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BMyBDb250cm9sICovCitTRlJfOEJJVChUQTFDVExfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0EzIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQTFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzhCSVQoVEExQ0NUTDBfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BMyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfOEJJVChUQTFDQ1RMMF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0EzIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQTFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoVEExQ0NUTDFfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BMyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfOEJJVChUQTFDQ1RMMV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0EzIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQTFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoVEExQ0NUTDJfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BMyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfOEJJVChUQTFDQ1RMMl9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0EzIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQTFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgKi8KK1NGUl84QklUKFRBMVJfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgKi8KK1NGUl84QklUKFRBMVJfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgKi8KK1NGUl8xNkJJVChUQTFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl84QklUKFRBMUNDUjBfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl84QklUKFRBMUNDUjBfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQTFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl84QklUKFRBMUNDUjFfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl84QklUKFRBMUNDUjFfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQTFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIDIgKi8KK1NGUl84QklUKFRBMUNDUjJfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIDIgKi8KK1NGUl84QklUKFRBMUNDUjJfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgQ2FwdHVyZS9Db21wYXJlIDIgKi8KK1NGUl8xNkJJVChUQTFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfOEJJVChUQTFJVl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0EzIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzhCSVQoVEExSVZfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BMyBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQTFFWDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgRXhwYW5zaW9uIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFRBMUVYMF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgRXhwYW5zaW9uIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFRBMUVYMF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTMgRXhwYW5zaW9uIFJlZ2lzdGVyIDAgKi8KKworLyogQml0cyBhcmUgYWxyZWFkeSBkZWZpbmVkIHdpdGhpbiB0aGUgVGltZXIwX0F4ICovCisKKy8qIFQxQTNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQTFJVl9OT05FICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBMUlWX1RBMUNDUjEgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEExQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQTFJVl9UQTFDQ1IyICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBMUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEExSVZfMyAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQTFJVl80ICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBMUlWXzUgICAgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEExSVZfNiAgICAgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQTFJVl9UQTFJRkcgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFRBMUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEI3CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQjdfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ29udHJvbCAqLworU0ZSXzhCSVQoVEJDVExfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENvbnRyb2wgKi8KK1NGUl84QklUKFRCQ1RMX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDb250cm9sICovCitTRlJfMTZCSVQoVEJDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzhCSVQoVEJDQ1RMMF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl84QklUKFRCQ0NUTDBfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEJDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoVEJDQ1RMMV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl84QklUKFRCQ0NUTDFfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEJDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoVEJDQ1RMMl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl84QklUKFRCQ0NUTDJfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEJDQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMyAqLworU0ZSXzhCSVQoVEJDQ1RMM19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDMgKi8KK1NGUl84QklUKFRCQ0NUTDNfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAzICovCitTRlJfMTZCSVQoVEJDQ1RMNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgNCAqLworU0ZSXzhCSVQoVEJDQ1RMNF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDQgKi8KK1NGUl84QklUKFRCQ0NUTDRfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA0ICovCitTRlJfMTZCSVQoVEJDQ1RMNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgNSAqLworU0ZSXzhCSVQoVEJDQ1RMNV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDUgKi8KK1NGUl84QklUKFRCQ0NUTDVfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA1ICovCitTRlJfMTZCSVQoVEJDQ1RMNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgNiAqLworU0ZSXzhCSVQoVEJDQ1RMNl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDYgKi8KK1NGUl84QklUKFRCQ0NUTDZfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA2ICovCitTRlJfMTZCSVQoVEJSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgKi8KK1NGUl84QklUKFRCUl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyAqLworU0ZSXzhCSVQoVEJSX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3ICovCitTRlJfMTZCSVQoVEJDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl84QklUKFRCQ0NSMF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzhCSVQoVEJDQ1IwX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEJDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl84QklUKFRCQ0NSMV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzhCSVQoVEJDQ1IxX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEJDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIDIgKi8KK1NGUl84QklUKFRCQ0NSMl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgMiAqLworU0ZSXzhCSVQoVEJDQ1IyX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSAyICovCitTRlJfMTZCSVQoVEJDQ1IzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIDMgKi8KK1NGUl84QklUKFRCQ0NSM19MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgMyAqLworU0ZSXzhCSVQoVEJDQ1IzX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSAzICovCitTRlJfMTZCSVQoVEJDQ1I0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIDQgKi8KK1NGUl84QklUKFRCQ0NSNF9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgNCAqLworU0ZSXzhCSVQoVEJDQ1I0X0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSA0ICovCitTRlJfMTZCSVQoVEJDQ1I1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIDUgKi8KK1NGUl84QklUKFRCQ0NSNV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgNSAqLworU0ZSXzhCSVQoVEJDQ1I1X0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSA1ICovCitTRlJfMTZCSVQoVEJDQ1I2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgQ2FwdHVyZS9Db21wYXJlIDYgKi8KK1NGUl84QklUKFRCQ0NSNl9MKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBDYXB0dXJlL0NvbXBhcmUgNiAqLworU0ZSXzhCSVQoVEJDQ1I2X0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IENhcHR1cmUvQ29tcGFyZSA2ICovCitTRlJfMTZCSVQoVEJFWDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgRXhwYW5zaW9uIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFRCRVgwX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcl9CNyBFeHBhbnNpb24gUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVEJFWDBfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyX0I3IEV4cGFuc2lvbiBSZWdpc3RlciAwICovCitTRlJfMTZCSVQoVEJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfOEJJVChUQklWX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfOEJJVChUQklWX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXJfQjcgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisKKy8qIFRCQ1RMIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBUQkNMR1JQMSAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFRpbWVyX0I3IENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFRCQ0xHUlAwICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXJfQjcgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKyNkZWZpbmUgQ05UTDEgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAxICovCisjZGVmaW5lIENOVEwwICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMCAqLworI2RlZmluZSBUQlNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAxICovCisjZGVmaW5lIFRCU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDAgKi8KKyNkZWZpbmUgVEJDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lcl9CNyBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRCSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXJfQjcgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQklGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyX0I3IGludGVycnVwdCBmbGFnICovCisKKy8qIFRCQ1RMIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBUQkNMUl9MICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyX0I3IGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEJJRV9MICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lcl9CNyBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRCSUZHX0wgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXJfQjcgaW50ZXJydXB0IGZsYWcgKi8KKworLyogVEJDVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFRCQ0xHUlAxX0ggICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXJfQjcgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgVEJDTEdSUDBfSCAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lcl9CNyBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworI2RlZmluZSBDTlRMMV9IICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENvdW50ZXIgbGVuZ2h0IDEgKi8KKyNkZWZpbmUgQ05UTDBfSCAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAwICovCisjZGVmaW5lIFRCU1NFTDFfSCAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2xvY2sgc291cmNlIDEgKi8KKyNkZWZpbmUgVEJTU0VMMF9IICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDbG9jayBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNIUjEgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXJfQjcgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDEgKi8KKyNkZWZpbmUgU0hSMCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBUaW1lcl9CNyBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworCisjZGVmaW5lIFRCU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBUQkNMSyAqLworI2RlZmluZSBUQlNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogQUNMSyAgKi8KKyNkZWZpbmUgVEJTU0VMXzIgICAgICAgICAgICAgICAoMioweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFNNQ0xLICovCisjZGVmaW5lIFRCU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBJTkNMSyAqLworI2RlZmluZSBDTlRMXzAgICAgICAgICAgICAgICAgICgwKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxNiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8xICAgICAgICAgICAgICAgICAoMSoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTIgYml0ICovCisjZGVmaW5lIENOVExfMiAgICAgICAgICAgICAgICAgKDIqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEwIGJpdCAqLworI2RlZmluZSBDTlRMXzMgICAgICAgICAgICAgICAgICgzKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAgOCBiaXQgKi8KKyNkZWZpbmUgU0hSXzAgICAgICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lcl9CNyBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBTSFJfMSAgICAgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyX0I3IEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFNIUl8yICAgICAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXJfQjcgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgU0hSXzMgICAgICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lcl9CNyBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKyNkZWZpbmUgVEJDTEdSUF8wICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lcl9CNyBHcm91cDogMCAtIGluZGl2aWR1YWxseSAqLworI2RlZmluZSBUQkNMR1JQXzEgICAgICAgICAgICAgICgxKjB4MjAwMHUpICAgIC8qIFRpbWVyX0I3IEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFRCQ0xHUlBfMiAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXJfQjcgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgVEJDTEdSUF8zICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lcl9CNyBHcm91cDogMyAtIDEgZ3JvdXAgKGFsbCkgKi8KKyNkZWZpbmUgVEJTU0VMX19UQUNMSyAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lcl9CNyBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEJTU0VMX19BQ0xLICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lcl9CNyBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEJTU0VMX19TTUNMSyAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lcl9CNyBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEJTU0VMX19JTkNMSyAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lcl9CNyBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKyNkZWZpbmUgQ05UTF9fMTYgICAgICAgICAgICAgICAoMCoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTYgYml0ICovCisjZGVmaW5lIENOVExfXzEyICAgICAgICAgICAgICAgKDEqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEyIGJpdCAqLworI2RlZmluZSBDTlRMX18xMCAgICAgICAgICAgICAgICgyKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxMCBiaXQgKi8KKyNkZWZpbmUgQ05UTF9fOCAgICAgICAgICAgICAgICAoMyoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogIDggYml0ICovCisKKy8qIEFkZGl0aW9uYWwgVGltZXIgQiBDb250cm9sIFJlZ2lzdGVyIGJpdHMgYXJlIGRlZmluZWQgaW4gVGltZXIgQSAqLworLyogVEJDVEx4IENvbnRyb2wgQml0cyAqLworI2RlZmluZSBDTExEMSAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBDTExEMCAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisvKiBUQkNUTHggQ29udHJvbCBCaXRzICovCisKKy8qIFRCQ1RMeCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgQ0xMRDFfSCAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgQ0xMRDBfSCAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUjEgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBTTFNIUjAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSXzAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgU0xTSFJfMSAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBTTFNIUl8yICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBTTFNIUl8zICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworI2RlZmluZSBDTExEXzAgICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIENMTERfMSAgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgQ0xMRF8yICAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgQ0xMRF8zICAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKy8qIFRCRVgwIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBUQklERVgwICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyX0I3IElucHV0IGRpdmlkZXIgZXhwYW5zaW9uIEJpdDogMCAqLworI2RlZmluZSBUQklERVgxICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyX0I3IElucHV0IGRpdmlkZXIgZXhwYW5zaW9uIEJpdDogMSAqLworI2RlZmluZSBUQklERVgyICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyX0I3IElucHV0IGRpdmlkZXIgZXhwYW5zaW9uIEJpdDogMiAqLworCisvKiBUQkVYMCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgVEJJREVYMF9MICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lcl9CNyBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiBCaXQ6IDAgKi8KKyNkZWZpbmUgVEJJREVYMV9MICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lcl9CNyBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiBCaXQ6IDEgKi8KKyNkZWZpbmUgVEJJREVYMl9MICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lcl9CNyBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiBCaXQ6IDIgKi8KKworLyogVEJFWDAgQ29udHJvbCBCaXRzICovCisKKyNkZWZpbmUgVEJJREVYXzAgICAgICAgICAgICAgICAoMCoweDAwMDF1KSAgICAvKiBUaW1lcl9CNyBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC8xICovCisjZGVmaW5lIFRCSURFWF8xICAgICAgICAgICAgICAgKDEqMHgwMDAxdSkgICAgLyogVGltZXJfQjcgSW5wdXQgZGl2aWRlciBleHBhbnNpb24gOiAvMiAqLworI2RlZmluZSBUQklERVhfMiAgICAgICAgICAgICAgICgyKjB4MDAwMXUpICAgIC8qIFRpbWVyX0I3IElucHV0IGRpdmlkZXIgZXhwYW5zaW9uIDogLzMgKi8KKyNkZWZpbmUgVEJJREVYXzMgICAgICAgICAgICAgICAoMyoweDAwMDF1KSAgICAvKiBUaW1lcl9CNyBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC80ICovCisjZGVmaW5lIFRCSURFWF80ICAgICAgICAgICAgICAgKDQqMHgwMDAxdSkgICAgLyogVGltZXJfQjcgSW5wdXQgZGl2aWRlciBleHBhbnNpb24gOiAvNSAqLworI2RlZmluZSBUQklERVhfNSAgICAgICAgICAgICAgICg1KjB4MDAwMXUpICAgIC8qIFRpbWVyX0I3IElucHV0IGRpdmlkZXIgZXhwYW5zaW9uIDogLzYgKi8KKyNkZWZpbmUgVEJJREVYXzYgICAgICAgICAgICAgICAoNioweDAwMDF1KSAgICAvKiBUaW1lcl9CNyBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC83ICovCisjZGVmaW5lIFRCSURFWF83ICAgICAgICAgICAgICAgKDcqMHgwMDAxdSkgICAgLyogVGltZXJfQjcgSW5wdXQgZGl2aWRlciBleHBhbnNpb24gOiAvOCAqLworI2RlZmluZSBUQklERVhfXzEgICAgICAgICAgICAgICgwKjB4MDAwMXUpICAgIC8qIFRpbWVyX0I3IElucHV0IGRpdmlkZXIgZXhwYW5zaW9uIDogLzEgKi8KKyNkZWZpbmUgVEJJREVYX18yICAgICAgICAgICAgICAoMSoweDAwMDF1KSAgICAvKiBUaW1lcl9CNyBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC8yICovCisjZGVmaW5lIFRCSURFWF9fMyAgICAgICAgICAgICAgKDIqMHgwMDAxdSkgICAgLyogVGltZXJfQjcgSW5wdXQgZGl2aWRlciBleHBhbnNpb24gOiAvMyAqLworI2RlZmluZSBUQklERVhfXzQgICAgICAgICAgICAgICgzKjB4MDAwMXUpICAgIC8qIFRpbWVyX0I3IElucHV0IGRpdmlkZXIgZXhwYW5zaW9uIDogLzQgKi8KKyNkZWZpbmUgVEJJREVYX181ICAgICAgICAgICAgICAoNCoweDAwMDF1KSAgICAvKiBUaW1lcl9CNyBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC81ICovCisjZGVmaW5lIFRCSURFWF9fNiAgICAgICAgICAgICAgKDUqMHgwMDAxdSkgICAgLyogVGltZXJfQjcgSW5wdXQgZGl2aWRlciBleHBhbnNpb24gOiAvNiAqLworI2RlZmluZSBUQklERVhfXzcgICAgICAgICAgICAgICg2KjB4MDAwMXUpICAgIC8qIFRpbWVyX0I3IElucHV0IGRpdmlkZXIgZXhwYW5zaW9uIDogLzcgKi8KKyNkZWZpbmUgVEJJREVYX184ICAgICAgICAgICAgICAoNyoweDAwMDF1KSAgICAvKiBUaW1lcl9CNyBJbnB1dCBkaXZpZGVyIGV4cGFuc2lvbiA6IC84ICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVTklGSUVEIENMT0NLIFNZU1RFTQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVUNTX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFVDU0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDUyBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDU0NUTDBfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ1MgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ1NDVEwwX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNTIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzE2QklUKFVDU0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDUyBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDU0NUTDFfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ1MgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfOEJJVChVQ1NDVEwxX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNTIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzE2QklUKFVDU0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDUyBDb250cm9sIFJlZ2lzdGVyIDIgKi8KK1NGUl84QklUKFVDU0NUTDJfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ1MgQ29udHJvbCBSZWdpc3RlciAyICovCitTRlJfOEJJVChVQ1NDVEwyX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNTIENvbnRyb2wgUmVnaXN0ZXIgMiAqLworU0ZSXzE2QklUKFVDU0NUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDUyBDb250cm9sIFJlZ2lzdGVyIDMgKi8KK1NGUl84QklUKFVDU0NUTDNfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ1MgQ29udHJvbCBSZWdpc3RlciAzICovCitTRlJfOEJJVChVQ1NDVEwzX0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNTIENvbnRyb2wgUmVnaXN0ZXIgMyAqLworU0ZSXzE2QklUKFVDU0NUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDUyBDb250cm9sIFJlZ2lzdGVyIDQgKi8KK1NGUl84QklUKFVDU0NUTDRfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ1MgQ29udHJvbCBSZWdpc3RlciA0ICovCitTRlJfOEJJVChVQ1NDVEw0X0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNTIENvbnRyb2wgUmVnaXN0ZXIgNCAqLworU0ZSXzE2QklUKFVDU0NUTDUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDUyBDb250cm9sIFJlZ2lzdGVyIDUgKi8KK1NGUl84QklUKFVDU0NUTDVfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ1MgQ29udHJvbCBSZWdpc3RlciA1ICovCitTRlJfOEJJVChVQ1NDVEw1X0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNTIENvbnRyb2wgUmVnaXN0ZXIgNSAqLworU0ZSXzE2QklUKFVDU0NUTDYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDUyBDb250cm9sIFJlZ2lzdGVyIDYgKi8KK1NGUl84QklUKFVDU0NUTDZfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ1MgQ29udHJvbCBSZWdpc3RlciA2ICovCitTRlJfOEJJVChVQ1NDVEw2X0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNTIENvbnRyb2wgUmVnaXN0ZXIgNiAqLworU0ZSXzE2QklUKFVDU0NUTDcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDUyBDb250cm9sIFJlZ2lzdGVyIDcgKi8KK1NGUl84QklUKFVDU0NUTDdfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ1MgQ29udHJvbCBSZWdpc3RlciA3ICovCitTRlJfOEJJVChVQ1NDVEw3X0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNTIENvbnRyb2wgUmVnaXN0ZXIgNyAqLworU0ZSXzE2QklUKFVDU0NUTDgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVDUyBDb250cm9sIFJlZ2lzdGVyIDggKi8KK1NGUl84QklUKFVDU0NUTDhfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVQ1MgQ29udHJvbCBSZWdpc3RlciA4ICovCitTRlJfOEJJVChVQ1NDVEw4X0gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVUNTIENvbnRyb2wgUmVnaXN0ZXIgOCAqLworCisvKiBVQ1NDVEwwIENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwMSkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDIpICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDA0KSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBNT0QwICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIE1vZHVsYXRpb24gQml0IENvdW50ZXIgQml0IDogMCAqLworI2RlZmluZSBNT0QxICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIE1vZHVsYXRpb24gQml0IENvdW50ZXIgQml0IDogMSAqLworI2RlZmluZSBNT0QyICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE1vZHVsYXRpb24gQml0IENvdW50ZXIgQml0IDogMiAqLworI2RlZmluZSBNT0QzICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE1vZHVsYXRpb24gQml0IENvdW50ZXIgQml0IDogMyAqLworI2RlZmluZSBNT0Q0ICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE1vZHVsYXRpb24gQml0IENvdW50ZXIgQml0IDogNCAqLworI2RlZmluZSBEQ08wICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIERDTyBUQVAgQml0IDogMCAqLworI2RlZmluZSBEQ08xICAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERDTyBUQVAgQml0IDogMSAqLworI2RlZmluZSBEQ08yICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIERDTyBUQVAgQml0IDogMiAqLworI2RlZmluZSBEQ08zICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIERDTyBUQVAgQml0IDogMyAqLworI2RlZmluZSBEQ080ICAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIERDTyBUQVAgQml0IDogNCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEwwIENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwMSkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDIpICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDA0KSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBNT0QwX0wgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIE1vZHVsYXRpb24gQml0IENvdW50ZXIgQml0IDogMCAqLworI2RlZmluZSBNT0QxX0wgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIE1vZHVsYXRpb24gQml0IENvdW50ZXIgQml0IDogMSAqLworI2RlZmluZSBNT0QyX0wgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE1vZHVsYXRpb24gQml0IENvdW50ZXIgQml0IDogMiAqLworI2RlZmluZSBNT0QzX0wgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE1vZHVsYXRpb24gQml0IENvdW50ZXIgQml0IDogMyAqLworI2RlZmluZSBNT0Q0X0wgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE1vZHVsYXRpb24gQml0IENvdW50ZXIgQml0IDogNCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEwwIENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwMSkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDIpICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDA0KSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBEQ08wX0ggICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERDTyBUQVAgQml0IDogMCAqLworI2RlZmluZSBEQ08xX0ggICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERDTyBUQVAgQml0IDogMSAqLworI2RlZmluZSBEQ08yX0ggICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERDTyBUQVAgQml0IDogMiAqLworI2RlZmluZSBEQ08zX0ggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIERDTyBUQVAgQml0IDogMyAqLworI2RlZmluZSBEQ080X0ggICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERDTyBUQVAgQml0IDogNCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEwxIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBESVNNT0QgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpc2FibGUgTW9kdWxhdGlvbiAqLworI2RlZmluZSBEQ09SICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERDTyBFeHRlcm5hbCBSZXNpc3RvciBTZWxlY3QgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDQpICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDA4KSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBEQ09SU0VMMCAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERDTyBGcmVxLiBSYW5nZSBTZWxlY3QgQml0IDogMCAqLworI2RlZmluZSBEQ09SU0VMMSAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIERDTyBGcmVxLiBSYW5nZSBTZWxlY3QgQml0IDogMSAqLworI2RlZmluZSBEQ09SU0VMMiAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIERDTyBGcmVxLiBSYW5nZSBTZWxlY3QgQml0IDogMiAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA4MCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAxMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMjAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgxMDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEwxIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBESVNNT0RfTCAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpc2FibGUgTW9kdWxhdGlvbiAqLworI2RlZmluZSBEQ09SX0wgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERDTyBFeHRlcm5hbCBSZXNpc3RvciBTZWxlY3QgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDQpICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDA4KSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBEQ09SU0VMMF9MICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERDTyBGcmVxLiBSYW5nZSBTZWxlY3QgQml0IDogMCAqLworI2RlZmluZSBEQ09SU0VMMV9MICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIERDTyBGcmVxLiBSYW5nZSBTZWxlY3QgQml0IDogMSAqLworI2RlZmluZSBEQ09SU0VMMl9MICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIERDTyBGcmVxLiBSYW5nZSBTZWxlY3QgQml0IDogMiAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA4MCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAxMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMjAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgxMDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEwxIENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwNCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDgpICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDEwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAyMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwNDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDgwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDEwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgyMDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4NDAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDgwMDApICAgIC8qIFJFU0VSVkVEICovCisKKyNkZWZpbmUgRENPUlNFTF8wICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBEQ08gUlNFTCAwICovCisjZGVmaW5lIERDT1JTRUxfMSAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRENPIFJTRUwgMSAqLworI2RlZmluZSBEQ09SU0VMXzIgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIERDTyBSU0VMIDIgKi8KKyNkZWZpbmUgRENPUlNFTF8zICAgICAgICAgICAgICAoMHgwMDMwKSAgICAgICAvKiBEQ08gUlNFTCAzICovCisjZGVmaW5lIERDT1JTRUxfNCAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRENPIFJTRUwgNCAqLworI2RlZmluZSBEQ09SU0VMXzUgICAgICAgICAgICAgICgweDAwNTApICAgICAgIC8qIERDTyBSU0VMIDUgKi8KKyNkZWZpbmUgRENPUlNFTF82ICAgICAgICAgICAgICAoMHgwMDYwKSAgICAgICAvKiBEQ08gUlNFTCA2ICovCisjZGVmaW5lIERDT1JTRUxfNyAgICAgICAgICAgICAgKDB4MDA3MCkgICAgICAgLyogRENPIFJTRUwgNyAqLworCisvKiBVQ1NDVEwyIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBGTExOMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogMCAqLworI2RlZmluZSBGTExOMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogMSAqLworI2RlZmluZSBGTExOMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogMiAqLworI2RlZmluZSBGTExOMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogMyAqLworI2RlZmluZSBGTExONCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogNCAqLworI2RlZmluZSBGTExONSAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogNSAqLworI2RlZmluZSBGTExONiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogNiAqLworI2RlZmluZSBGTExONyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogNyAqLworI2RlZmluZSBGTExOOCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogOCAqLworI2RlZmluZSBGTExOOSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogOSAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAgIC8qIFJFU0VSVkVEICovCisjZGVmaW5lIEZMTEQwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDAgKi8KKyNkZWZpbmUgRkxMRDEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMSAqLworI2RlZmluZSBGTExEMiAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAxICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEwyIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBGTExOMF9MICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogMCAqLworI2RlZmluZSBGTExOMV9MICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogMSAqLworI2RlZmluZSBGTExOMl9MICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogMiAqLworI2RlZmluZSBGTExOM19MICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogMyAqLworI2RlZmluZSBGTExONF9MICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogNCAqLworI2RlZmluZSBGTExONV9MICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogNSAqLworI2RlZmluZSBGTExONl9MICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogNiAqLworI2RlZmluZSBGTExON19MICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogNyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEwyIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBGTExOOF9IICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogOCAqLworI2RlZmluZSBGTExOOV9IICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZMTCBNdWx0aXBpZXIgQml0IDogOSAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAgIC8qIFJFU0VSVkVEICovCisjZGVmaW5lIEZMTEQwX0ggICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDAgKi8KKyNkZWZpbmUgRkxMRDFfSCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMSAqLworI2RlZmluZSBGTExEMl9IICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAxICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisjZGVmaW5lIEZMTERfMCAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiAxICovCisjZGVmaW5lIEZMTERfMSAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiAyICovCisjZGVmaW5lIEZMTERfMiAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiA0ICovCisjZGVmaW5lIEZMTERfMyAgICAgICAgICAgICAgICAgKDB4MzAwMCkgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiA4ICovCisjZGVmaW5lIEZMTERfNCAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiAxNiAqLworI2RlZmluZSBGTExEXzUgICAgICAgICAgICAgICAgICgweDUwMDApICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gMzIgKi8KKyNkZWZpbmUgRkxMRF82ICAgICAgICAgICAgICAgICAoMHg2MDAwKSAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIDMyICovCisjZGVmaW5lIEZMTERfNyAgICAgICAgICAgICAgICAgKDB4NzAwMCkgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiAzMiAqLworI2RlZmluZSBGTExEX18xICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMSAqLworI2RlZmluZSBGTExEX18yICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMiAqLworI2RlZmluZSBGTExEX180ICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgNCAqLworI2RlZmluZSBGTExEX184ICAgICAgICAgICAgICAgICgweDMwMDApICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgOCAqLworI2RlZmluZSBGTExEX18xNiAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMTYgKi8KKyNkZWZpbmUgRkxMRF9fMzIgICAgICAgICAgICAgICAoMHg1MDAwKSAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDMyICovCisKKy8qIFVDU0NUTDMgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIEZMTFJFRkRJVjAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogUmVmZXJlbmNlIERpdmlkZXIgQml0IDogMCAqLworI2RlZmluZSBGTExSRUZESVYxICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFJlZmVyZW5jZSBEaXZpZGVyIEJpdCA6IDEgKi8KKyNkZWZpbmUgRkxMUkVGRElWMiAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBSZWZlcmVuY2UgRGl2aWRlciBCaXQgOiAyICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDA4KSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBTRUxSRUYwICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEZMTCBSZWZlcmVuY2UgQ2xvY2sgU2VsZWN0IEJpdCA6IDAgKi8KKyNkZWZpbmUgU0VMUkVGMSAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGTEwgUmVmZXJlbmNlIENsb2NrIFNlbGVjdCBCaXQgOiAxICovCisjZGVmaW5lIFNFTFJFRjIgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRkxMIFJlZmVyZW5jZSBDbG9jayBTZWxlY3QgQml0IDogMiAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA4MCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAxMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMjAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgxMDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEwzIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBGTExSRUZESVYwX0wgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFJlZmVyZW5jZSBEaXZpZGVyIEJpdCA6IDAgKi8KKyNkZWZpbmUgRkxMUkVGRElWMV9MICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBSZWZlcmVuY2UgRGl2aWRlciBCaXQgOiAxICovCisjZGVmaW5lIEZMTFJFRkRJVjJfTCAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUmVmZXJlbmNlIERpdmlkZXIgQml0IDogMiAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwOCkgICAgLyogUkVTRVJWRUQgKi8KKyNkZWZpbmUgU0VMUkVGMF9MICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBGTEwgUmVmZXJlbmNlIENsb2NrIFNlbGVjdCBCaXQgOiAwICovCisjZGVmaW5lIFNFTFJFRjFfTCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRkxMIFJlZmVyZW5jZSBDbG9jayBTZWxlY3QgQml0IDogMSAqLworI2RlZmluZSBTRUxSRUYyX0wgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZMTCBSZWZlcmVuY2UgQ2xvY2sgU2VsZWN0IEJpdCA6IDIgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwODApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMTAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDIwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA0MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MTAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDIwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg0MDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4ODAwMCkgICAgLyogUkVTRVJWRUQgKi8KKworLyogVUNTQ1RMMyBDb250cm9sIEJpdHMgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDgpICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDEwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAyMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwNDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDgwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDEwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgyMDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4NDAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDgwMDApICAgIC8qIFJFU0VSVkVEICovCisKKyNkZWZpbmUgRkxMUkVGRElWXzAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBSZWZlcmVuY2UgRGl2aWRlcjogZihMRkNMSykvMSAqLworI2RlZmluZSBGTExSRUZESVZfMSAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFJlZmVyZW5jZSBEaXZpZGVyOiBmKExGQ0xLKS8yICovCisjZGVmaW5lIEZMTFJFRkRJVl8yICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogUmVmZXJlbmNlIERpdmlkZXI6IGYoTEZDTEspLzQgKi8KKyNkZWZpbmUgRkxMUkVGRElWXzMgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBSZWZlcmVuY2UgRGl2aWRlcjogZihMRkNMSykvOCAqLworI2RlZmluZSBGTExSRUZESVZfNCAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFJlZmVyZW5jZSBEaXZpZGVyOiBmKExGQ0xLKS8xMiAqLworI2RlZmluZSBGTExSRUZESVZfNSAgICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIFJlZmVyZW5jZSBEaXZpZGVyOiBmKExGQ0xLKS8xNiAqLworI2RlZmluZSBGTExSRUZESVZfNiAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlZmVyZW5jZSBEaXZpZGVyOiBmKExGQ0xLKS8xNiAqLworI2RlZmluZSBGTExSRUZESVZfNyAgICAgICAgICAgICgweDAwMDcpICAgICAgIC8qIFJlZmVyZW5jZSBEaXZpZGVyOiBmKExGQ0xLKS8xNiAqLworI2RlZmluZSBGTExSRUZESVZfXzEgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFJlZmVyZW5jZSBEaXZpZGVyOiBmKExGQ0xLKS8xICovCisjZGVmaW5lIEZMTFJFRkRJVl9fMiAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogUmVmZXJlbmNlIERpdmlkZXI6IGYoTEZDTEspLzIgKi8KKyNkZWZpbmUgRkxMUkVGRElWX180ICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBSZWZlcmVuY2UgRGl2aWRlcjogZihMRkNMSykvNCAqLworI2RlZmluZSBGTExSRUZESVZfXzggICAgICAgICAgICgweDAwMDMpICAgICAgIC8qIFJlZmVyZW5jZSBEaXZpZGVyOiBmKExGQ0xLKS84ICovCisjZGVmaW5lIEZMTFJFRkRJVl9fMTIgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUmVmZXJlbmNlIERpdmlkZXI6IGYoTEZDTEspLzEyICovCisjZGVmaW5lIEZMTFJFRkRJVl9fMTYgICAgICAgICAgKDB4MDAwNSkgICAgICAgLyogUmVmZXJlbmNlIERpdmlkZXI6IGYoTEZDTEspLzE2ICovCisjZGVmaW5lIFNFTFJFRl8wICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRkxMIFJlZmVyZW5jZSBDbG9jayBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxSRUZfMSAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEZMTCBSZWZlcmVuY2UgQ2xvY2sgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0VMUkVGXzIgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGTEwgUmVmZXJlbmNlIENsb2NrIFNlbGVjdCAyICovCisjZGVmaW5lIFNFTFJFRl8zICAgICAgICAgICAgICAgKDB4MDAzMCkgICAgICAgLyogRkxMIFJlZmVyZW5jZSBDbG9jayBTZWxlY3QgMyAqLworI2RlZmluZSBTRUxSRUZfNCAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZMTCBSZWZlcmVuY2UgQ2xvY2sgU2VsZWN0IDQgKi8KKyNkZWZpbmUgU0VMUkVGXzUgICAgICAgICAgICAgICAoMHgwMDUwKSAgICAgICAvKiBGTEwgUmVmZXJlbmNlIENsb2NrIFNlbGVjdCA1ICovCisjZGVmaW5lIFNFTFJFRl82ICAgICAgICAgICAgICAgKDB4MDA2MCkgICAgICAgLyogRkxMIFJlZmVyZW5jZSBDbG9jayBTZWxlY3QgNiAqLworI2RlZmluZSBTRUxSRUZfNyAgICAgICAgICAgICAgICgweDAwNzApICAgICAgIC8qIEZMTCBSZWZlcmVuY2UgQ2xvY2sgU2VsZWN0IDcgKi8KKyNkZWZpbmUgU0VMUkVGX19YVDFDTEsgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IFhUMUNMSyAqLworI2RlZmluZSBTRUxSRUZfX1ZMT0NMSyAgICAgICAgICgweDAwMTApICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgVkxPQ0xLICovCisjZGVmaW5lIFNFTFJFRl9fUkVGT0NMSyAgICAgICAgKDB4MDAyMCkgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSBSRUZPQ0xLICovCisjZGVmaW5lIFNFTFJFRl9fWFQyQ0xLICAgICAgICAgKDB4MDA1MCkgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSBYVDJDTEsgKi8KKworLyogVUNTQ1RMNCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgU0VMTTAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgQml0OiAwICovCisjZGVmaW5lIFNFTE0xICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IEJpdDogMSAqLworI2RlZmluZSBTRUxNMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCBCaXQ6IDIgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDgpICAgIC8qIFJFU0VSVkVEICovCisjZGVmaW5lIFNFTFMwICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCBCaXQ6IDAgKi8KKyNkZWZpbmUgU0VMUzEgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IEJpdDogMSAqLworI2RlZmluZSBTRUxTMiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgQml0OiAyICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBTRUxBMCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFDTEsgU291cmNlIFNlbGVjdCBCaXQ6IDAgKi8KKyNkZWZpbmUgU0VMQTEgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBQ0xLIFNvdXJjZSBTZWxlY3QgQml0OiAxICovCisjZGVmaW5lIFNFTEEyICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQUNMSyBTb3VyY2UgU2VsZWN0IEJpdDogMiAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDgwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDEwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgyMDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4NDAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDgwMDApICAgIC8qIFJFU0VSVkVEICovCisKKy8qIFVDU0NUTDQgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFNFTE0wX0wgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IEJpdDogMCAqLworI2RlZmluZSBTRUxNMV9MICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCBCaXQ6IDEgKi8KKyNkZWZpbmUgU0VMTTJfTCAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgQml0OiAyICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDA4KSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBTRUxTMF9MICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgQml0OiAwICovCisjZGVmaW5lIFNFTFMxX0wgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCBCaXQ6IDEgKi8KKyNkZWZpbmUgU0VMUzJfTCAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IEJpdDogMiAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA4MCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgxMDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEw0IENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwOCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwODApICAgIC8qIFJFU0VSVkVEICovCisjZGVmaW5lIFNFTEEwX0ggICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQUNMSyBTb3VyY2UgU2VsZWN0IEJpdDogMCAqLworI2RlZmluZSBTRUxBMV9IICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFDTEsgU291cmNlIFNlbGVjdCBCaXQ6IDEgKi8KKyNkZWZpbmUgU0VMQTJfSCAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBQ0xLIFNvdXJjZSBTZWxlY3QgQml0OiAyICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MTAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDIwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg0MDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4ODAwMCkgICAgLyogUkVTRVJWRUQgKi8KKworI2RlZmluZSBTRUxNXzAgICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNFTE1fMSAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0VMTV8yICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMiAqLworI2RlZmluZSBTRUxNXzMgICAgICAgICAgICAgICAgICgweDAwMDMpICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAzICovCisjZGVmaW5lIFNFTE1fNCAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDQgKi8KKyNkZWZpbmUgU0VMTV81ICAgICAgICAgICAgICAgICAoMHgwMDA1KSAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgNSAqLworI2RlZmluZSBTRUxNXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCA2ICovCisjZGVmaW5lIFNFTE1fNyAgICAgICAgICAgICAgICAgKDB4MDAwNykgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDcgKi8KKyNkZWZpbmUgU0VMTV9fWFQxQ0xLICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgWFQxQ0xLICovCisjZGVmaW5lIFNFTE1fX1ZMT0NMSyAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IFZMT0NMSyAqLworI2RlZmluZSBTRUxNX19SRUZPQ0xLICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCBSRUZPQ0xLICovCisjZGVmaW5lIFNFTE1fX0RDT0NMSyAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IERDT0NMSyAqLworI2RlZmluZSBTRUxNX19EQ09DTEtESVYgICAgICAgICgweDAwMDQpICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCBEQ09DTEtESVYgKi8KKyNkZWZpbmUgU0VMTV9fWFQyQ0xLICAgICAgICAgICAoMHgwMDA1KSAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgWFQyQ0xLICovCisKKyNkZWZpbmUgU0VMU18wICAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0VMU18xICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0VMU18yICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0VMU18zICAgICAgICAgICAgICAgICAoMHgwMDMwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDMgKi8KKyNkZWZpbmUgU0VMU180ICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDQgKi8KKyNkZWZpbmUgU0VMU181ICAgICAgICAgICAgICAgICAoMHgwMDUwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDUgKi8KKyNkZWZpbmUgU0VMU182ICAgICAgICAgICAgICAgICAoMHgwMDYwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDYgKi8KKyNkZWZpbmUgU0VMU183ICAgICAgICAgICAgICAgICAoMHgwMDcwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IDcgKi8KKyNkZWZpbmUgU0VMU19fWFQxQ0xLICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IFhUMUNMSyAqLworI2RlZmluZSBTRUxTX19WTE9DTEsgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgVkxPQ0xLICovCisjZGVmaW5lIFNFTFNfX1JFRk9DTEsgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCBSRUZPQ0xLICovCisjZGVmaW5lIFNFTFNfX0RDT0NMSyAgICAgICAgICAgKDB4MDAzMCkgICAgICAgLyogU01DTEsgU291cmNlIFNlbGVjdCBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMU19fRENPQ0xLRElWICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgU2VsZWN0IERDT0NMS0RJViAqLworI2RlZmluZSBTRUxTX19YVDJDTEsgICAgICAgICAgICgweDAwNTApICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBTZWxlY3QgWFQyQ0xLICovCisKKyNkZWZpbmUgU0VMQV8wICAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBBQ0xLIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxBXzEgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFDTEsgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFNFTEFfMiAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQUNMSyBTb3VyY2UgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0VMQV8zICAgICAgICAgICAgICAgICAoMHgwMzAwKSAgICAgICAvKiBBQ0xLIFNvdXJjZSBTZWxlY3QgMyAqLworI2RlZmluZSBTRUxBXzQgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIEFDTEsgU291cmNlIFNlbGVjdCA0ICovCisjZGVmaW5lIFNFTEFfNSAgICAgICAgICAgICAgICAgKDB4MDUwMCkgICAgICAgLyogQUNMSyBTb3VyY2UgU2VsZWN0IDUgKi8KKyNkZWZpbmUgU0VMQV82ICAgICAgICAgICAgICAgICAoMHgwNjAwKSAgICAgICAvKiBBQ0xLIFNvdXJjZSBTZWxlY3QgNiAqLworI2RlZmluZSBTRUxBXzcgICAgICAgICAgICAgICAgICgweDA3MDApICAgICAgIC8qIEFDTEsgU291cmNlIFNlbGVjdCA3ICovCisjZGVmaW5lIFNFTEFfX1hUMUNMSyAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogQUNMSyBTb3VyY2UgU2VsZWN0IFhUMUNMSyAqLworI2RlZmluZSBTRUxBX19WTE9DTEsgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFDTEsgU291cmNlIFNlbGVjdCBWTE9DTEsgKi8KKyNkZWZpbmUgU0VMQV9fUkVGT0NMSyAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBQ0xLIFNvdXJjZSBTZWxlY3QgUkVGT0NMSyAqLworI2RlZmluZSBTRUxBX19EQ09DTEsgICAgICAgICAgICgweDAzMDApICAgICAgIC8qIEFDTEsgU291cmNlIFNlbGVjdCBEQ09DTEsgKi8KKyNkZWZpbmUgU0VMQV9fRENPQ0xLRElWICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBQ0xLIFNvdXJjZSBTZWxlY3QgRENPQ0xLRElWICovCisjZGVmaW5lIFNFTEFfX1hUMkNMSyAgICAgICAgICAgKDB4MDUwMCkgICAgICAgLyogQUNMSyBTb3VyY2UgU2VsZWN0IFhUMkNMSyAqLworCisvKiBVQ1NDVEw1IENvbnRyb2wgQml0cyAqLworI2RlZmluZSBESVZNMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIE1DTEsgRGl2aWRlciBCaXQ6IDAgKi8KKyNkZWZpbmUgRElWTTEgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBNQ0xLIERpdmlkZXIgQml0OiAxICovCisjZGVmaW5lIERJVk0yICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogTUNMSyBEaXZpZGVyIEJpdDogMiAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAwOCkgICAgLyogUkVTRVJWRUQgKi8KKyNkZWZpbmUgRElWUzAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTTUNMSyBEaXZpZGVyIEJpdDogMCAqLworI2RlZmluZSBESVZTMSAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgQml0OiAxICovCisjZGVmaW5lIERJVlMyICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU01DTEsgRGl2aWRlciBCaXQ6IDIgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwODApICAgIC8qIFJFU0VSVkVEICovCisjZGVmaW5lIERJVkEwICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQUNMSyBEaXZpZGVyIEJpdDogMCAqLworI2RlZmluZSBESVZBMSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFDTEsgRGl2aWRlciBCaXQ6IDEgKi8KKyNkZWZpbmUgRElWQTIgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBQ0xLIERpdmlkZXIgQml0OiAyICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBESVZQQTAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFDTEsgZnJvbSBQaW4gRGl2aWRlciBCaXQ6IDAgKi8KKyNkZWZpbmUgRElWUEExICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIERpdmlkZXIgQml0OiAxICovCisjZGVmaW5lIERJVlBBMiAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQUNMSyBmcm9tIFBpbiBEaXZpZGVyIEJpdDogMiAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4ODAwMCkgICAgLyogUkVTRVJWRUQgKi8KKworLyogVUNTQ1RMNSBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgRElWTTBfTCAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBNQ0xLIERpdmlkZXIgQml0OiAwICovCisjZGVmaW5lIERJVk0xX0wgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogTUNMSyBEaXZpZGVyIEJpdDogMSAqLworI2RlZmluZSBESVZNMl9MICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIE1DTEsgRGl2aWRlciBCaXQ6IDIgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDgpICAgIC8qIFJFU0VSVkVEICovCisjZGVmaW5lIERJVlMwX0wgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU01DTEsgRGl2aWRlciBCaXQ6IDAgKi8KKyNkZWZpbmUgRElWUzFfTCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTTUNMSyBEaXZpZGVyIEJpdDogMSAqLworI2RlZmluZSBESVZTMl9MICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNNQ0xLIERpdmlkZXIgQml0OiAyICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDgwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDgwMDApICAgIC8qIFJFU0VSVkVEICovCisKKy8qIFVDU0NUTDUgQ29udHJvbCBCaXRzICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDA4KSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA4MCkgICAgLyogUkVTRVJWRUQgKi8KKyNkZWZpbmUgRElWQTBfSCAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBBQ0xLIERpdmlkZXIgQml0OiAwICovCisjZGVmaW5lIERJVkExX0ggICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQUNMSyBEaXZpZGVyIEJpdDogMSAqLworI2RlZmluZSBESVZBMl9IICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFDTEsgRGl2aWRlciBCaXQ6IDIgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAgIC8qIFJFU0VSVkVEICovCisjZGVmaW5lIERJVlBBMF9IICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQUNMSyBmcm9tIFBpbiBEaXZpZGVyIEJpdDogMCAqLworI2RlZmluZSBESVZQQTFfSCAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFDTEsgZnJvbSBQaW4gRGl2aWRlciBCaXQ6IDEgKi8KKyNkZWZpbmUgRElWUEEyX0ggICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIERpdmlkZXIgQml0OiAyICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisjZGVmaW5lIERJVk1fMCAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTUNMSyBTb3VyY2UgRGl2aWRlciAwICovCisjZGVmaW5lIERJVk1fMSAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogTUNMSyBTb3VyY2UgRGl2aWRlciAxICovCisjZGVmaW5lIERJVk1fMiAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogTUNMSyBTb3VyY2UgRGl2aWRlciAyICovCisjZGVmaW5lIERJVk1fMyAgICAgICAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogTUNMSyBTb3VyY2UgRGl2aWRlciAzICovCisjZGVmaW5lIERJVk1fNCAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogTUNMSyBTb3VyY2UgRGl2aWRlciA0ICovCisjZGVmaW5lIERJVk1fNSAgICAgICAgICAgICAgICAgKDB4MDAwNSkgICAgICAgLyogTUNMSyBTb3VyY2UgRGl2aWRlciA1ICovCisjZGVmaW5lIERJVk1fNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogTUNMSyBTb3VyY2UgRGl2aWRlciA2ICovCisjZGVmaW5lIERJVk1fNyAgICAgICAgICAgICAgICAgKDB4MDAwNykgICAgICAgLyogTUNMSyBTb3VyY2UgRGl2aWRlciA3ICovCisjZGVmaW5lIERJVk1fXzEgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTUNMSyBTb3VyY2UgRGl2aWRlciBmKE1DTEspLzEgKi8KKyNkZWZpbmUgRElWTV9fMiAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBNQ0xLIFNvdXJjZSBEaXZpZGVyIGYoTUNMSykvMiAqLworI2RlZmluZSBESVZNX180ICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIE1DTEsgU291cmNlIERpdmlkZXIgZihNQ0xLKS80ICovCisjZGVmaW5lIERJVk1fXzggICAgICAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogTUNMSyBTb3VyY2UgRGl2aWRlciBmKE1DTEspLzggKi8KKyNkZWZpbmUgRElWTV9fMTYgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBNQ0xLIFNvdXJjZSBEaXZpZGVyIGYoTUNMSykvMTYgKi8KKyNkZWZpbmUgRElWTV9fMzIgICAgICAgICAgICAgICAoMHgwMDA1KSAgICAgICAvKiBNQ0xLIFNvdXJjZSBEaXZpZGVyIGYoTUNMSykvMzIgKi8KKworI2RlZmluZSBESVZTXzAgICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWU18xICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgRGl2aWRlciAxICovCisjZGVmaW5lIERJVlNfMiAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU01DTEsgU291cmNlIERpdmlkZXIgMiAqLworI2RlZmluZSBESVZTXzMgICAgICAgICAgICAgICAgICgweDAwMzApICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBEaXZpZGVyIDMgKi8KKyNkZWZpbmUgRElWU180ICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgRGl2aWRlciA0ICovCisjZGVmaW5lIERJVlNfNSAgICAgICAgICAgICAgICAgKDB4MDA1MCkgICAgICAgLyogU01DTEsgU291cmNlIERpdmlkZXIgNSAqLworI2RlZmluZSBESVZTXzYgICAgICAgICAgICAgICAgICgweDAwNjApICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBEaXZpZGVyIDYgKi8KKyNkZWZpbmUgRElWU183ICAgICAgICAgICAgICAgICAoMHgwMDcwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgRGl2aWRlciA3ICovCisjZGVmaW5lIERJVlNfXzEgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU01DTEsgU291cmNlIERpdmlkZXIgZihTTUNMSykvMSAqLworI2RlZmluZSBESVZTX18yICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBEaXZpZGVyIGYoU01DTEspLzIgKi8KKyNkZWZpbmUgRElWU19fNCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTTUNMSyBTb3VyY2UgRGl2aWRlciBmKFNNQ0xLKS80ICovCisjZGVmaW5lIERJVlNfXzggICAgICAgICAgICAgICAgKDB4MDAzMCkgICAgICAgLyogU01DTEsgU291cmNlIERpdmlkZXIgZihTTUNMSykvOCAqLworI2RlZmluZSBESVZTX18xNiAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNNQ0xLIFNvdXJjZSBEaXZpZGVyIGYoU01DTEspLzE2ICovCisjZGVmaW5lIERJVlNfXzMyICAgICAgICAgICAgICAgKDB4MDA1MCkgICAgICAgLyogU01DTEsgU291cmNlIERpdmlkZXIgZihTTUNMSykvMzIgKi8KKworI2RlZmluZSBESVZBXzAgICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEFDTEsgU291cmNlIERpdmlkZXIgMCAqLworI2RlZmluZSBESVZBXzEgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFDTEsgU291cmNlIERpdmlkZXIgMSAqLworI2RlZmluZSBESVZBXzIgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFDTEsgU291cmNlIERpdmlkZXIgMiAqLworI2RlZmluZSBESVZBXzMgICAgICAgICAgICAgICAgICgweDAzMDApICAgICAgIC8qIEFDTEsgU291cmNlIERpdmlkZXIgMyAqLworI2RlZmluZSBESVZBXzQgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIEFDTEsgU291cmNlIERpdmlkZXIgNCAqLworI2RlZmluZSBESVZBXzUgICAgICAgICAgICAgICAgICgweDA1MDApICAgICAgIC8qIEFDTEsgU291cmNlIERpdmlkZXIgNSAqLworI2RlZmluZSBESVZBXzYgICAgICAgICAgICAgICAgICgweDA2MDApICAgICAgIC8qIEFDTEsgU291cmNlIERpdmlkZXIgNiAqLworI2RlZmluZSBESVZBXzcgICAgICAgICAgICAgICAgICgweDA3MDApICAgICAgIC8qIEFDTEsgU291cmNlIERpdmlkZXIgNyAqLworI2RlZmluZSBESVZBX18xICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEFDTEsgU291cmNlIERpdmlkZXIgZihBQ0xLKS8xICovCisjZGVmaW5lIERJVkFfXzIgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQUNMSyBTb3VyY2UgRGl2aWRlciBmKEFDTEspLzIgKi8KKyNkZWZpbmUgRElWQV9fNCAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBQ0xLIFNvdXJjZSBEaXZpZGVyIGYoQUNMSykvNCAqLworI2RlZmluZSBESVZBX184ICAgICAgICAgICAgICAgICgweDAzMDApICAgICAgIC8qIEFDTEsgU291cmNlIERpdmlkZXIgZihBQ0xLKS84ICovCisjZGVmaW5lIERJVkFfXzE2ICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQUNMSyBTb3VyY2UgRGl2aWRlciBmKEFDTEspLzE2ICovCisjZGVmaW5lIERJVkFfXzMyICAgICAgICAgICAgICAgKDB4MDUwMCkgICAgICAgLyogQUNMSyBTb3VyY2UgRGl2aWRlciBmKEFDTEspLzMyICovCisKKyNkZWZpbmUgRElWUEFfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIFNvdXJjZSBEaXZpZGVyIDAgKi8KKyNkZWZpbmUgRElWUEFfMSAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIFNvdXJjZSBEaXZpZGVyIDEgKi8KKyNkZWZpbmUgRElWUEFfMiAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIFNvdXJjZSBEaXZpZGVyIDIgKi8KKyNkZWZpbmUgRElWUEFfMyAgICAgICAgICAgICAgICAoMHgzMDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIFNvdXJjZSBEaXZpZGVyIDMgKi8KKyNkZWZpbmUgRElWUEFfNCAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIFNvdXJjZSBEaXZpZGVyIDQgKi8KKyNkZWZpbmUgRElWUEFfNSAgICAgICAgICAgICAgICAoMHg1MDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIFNvdXJjZSBEaXZpZGVyIDUgKi8KKyNkZWZpbmUgRElWUEFfNiAgICAgICAgICAgICAgICAoMHg2MDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIFNvdXJjZSBEaXZpZGVyIDYgKi8KKyNkZWZpbmUgRElWUEFfNyAgICAgICAgICAgICAgICAoMHg3MDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIFNvdXJjZSBEaXZpZGVyIDcgKi8KKyNkZWZpbmUgRElWUEFfXzEgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIFNvdXJjZSBEaXZpZGVyIGYoQUNMSykvMSAqLworI2RlZmluZSBESVZQQV9fMiAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFDTEsgZnJvbSBQaW4gU291cmNlIERpdmlkZXIgZihBQ0xLKS8yICovCisjZGVmaW5lIERJVlBBX180ICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQUNMSyBmcm9tIFBpbiBTb3VyY2UgRGl2aWRlciBmKEFDTEspLzQgKi8KKyNkZWZpbmUgRElWUEFfXzggICAgICAgICAgICAgICAoMHgzMDAwKSAgICAgICAvKiBBQ0xLIGZyb20gUGluIFNvdXJjZSBEaXZpZGVyIGYoQUNMSykvOCAqLworI2RlZmluZSBESVZQQV9fMTYgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFDTEsgZnJvbSBQaW4gU291cmNlIERpdmlkZXIgZihBQ0xLKS8xNiAqLworI2RlZmluZSBESVZQQV9fMzIgICAgICAgICAgICAgICgweDUwMDApICAgICAgIC8qIEFDTEsgZnJvbSBQaW4gU291cmNlIERpdmlkZXIgZihBQ0xLKS8zMiAqLworCisvKiBVQ1NDVEw2IENvbnRyb2wgQml0cyAqLworI2RlZmluZSBYVDFPRkYgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgMSAoWFQxKSBkaXNhYmxlICovCisjZGVmaW5lIFNNQ0xLT0ZGICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU01DTEsgT2ZmICovCisjZGVmaW5lIFhDQVAwICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogWElOL1hPVVQgQ2FwIEJpdDogMCAqLworI2RlZmluZSBYQ0FQMSAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFhJTi9YT1VUIENhcCBCaXQ6IDEgKi8KKyNkZWZpbmUgWFQxQllQQVNTICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBYVDEgYnlwYXNzIG1vZGUgOiAwOiBpbnRlcm5hbCAxOnNvdXJjZWQgZnJvbSBleHRlcm5hbCBwaW4gKi8KKyNkZWZpbmUgWFRTICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiAxOiBTZWxlY3RzIGhpZ2gtZnJlcS4gb3NjaWxsYXRvciAqLworI2RlZmluZSBYVDFEUklWRTAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFhUMSBEcml2ZSBMZXZlbCBtb2RlIEJpdCAwICovCisjZGVmaW5lIFhUMURSSVZFMSAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogWFQxIERyaXZlIExldmVsIG1vZGUgQml0IDEgKi8KKyNkZWZpbmUgWFQyT0ZGICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDIgKFhUMikgZGlzYWJsZSAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDIwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA0MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBYVDJCWVBBU1MgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIFhUMiBieXBhc3MgbW9kZSA6IDA6IGludGVybmFsIDE6c291cmNlZCBmcm9tIGV4dGVybmFsIHBpbiAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKyNkZWZpbmUgWFQyRFJJVkUwICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBYVDIgRHJpdmUgTGV2ZWwgbW9kZSBCaXQgMCAqLworI2RlZmluZSBYVDJEUklWRTEgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIFhUMiBEcml2ZSBMZXZlbCBtb2RlIEJpdCAxICovCisKKy8qIFVDU0NUTDYgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFhUMU9GRl9MICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciAxIChYVDEpIGRpc2FibGUgKi8KKyNkZWZpbmUgU01DTEtPRkZfTCAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTTUNMSyBPZmYgKi8KKyNkZWZpbmUgWENBUDBfTCAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBYSU4vWE9VVCBDYXAgQml0OiAwICovCisjZGVmaW5lIFhDQVAxX0wgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogWElOL1hPVVQgQ2FwIEJpdDogMSAqLworI2RlZmluZSBYVDFCWVBBU1NfTCAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFhUMSBieXBhc3MgbW9kZSA6IDA6IGludGVybmFsIDE6c291cmNlZCBmcm9tIGV4dGVybmFsIHBpbiAqLworI2RlZmluZSBYVFNfTCAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIDE6IFNlbGVjdHMgaGlnaC1mcmVxLiBvc2NpbGxhdG9yICovCisjZGVmaW5lIFhUMURSSVZFMF9MICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogWFQxIERyaXZlIExldmVsIG1vZGUgQml0IDAgKi8KKyNkZWZpbmUgWFQxRFJJVkUxX0wgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBYVDEgRHJpdmUgTGV2ZWwgbW9kZSBCaXQgMSAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDIwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA0MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKworLyogVUNTQ1RMNiBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgWFQyT0ZGX0ggICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDIgKFhUMikgZGlzYWJsZSAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDIwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA0MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBYVDJCWVBBU1NfSCAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFhUMiBieXBhc3MgbW9kZSA6IDA6IGludGVybmFsIDE6c291cmNlZCBmcm9tIGV4dGVybmFsIHBpbiAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKyNkZWZpbmUgWFQyRFJJVkUwX0ggICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBYVDIgRHJpdmUgTGV2ZWwgbW9kZSBCaXQgMCAqLworI2RlZmluZSBYVDJEUklWRTFfSCAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFhUMiBEcml2ZSBMZXZlbCBtb2RlIEJpdCAxICovCisKKyNkZWZpbmUgWENBUF8wICAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBYQ0FQXzEgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIFhDQVBfMiAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogWElOL1hPVVQgQ2FwIDIgKi8KKyNkZWZpbmUgWENBUF8zICAgICAgICAgICAgICAgICAoMHgwMDBDKSAgICAgICAvKiBYSU4vWE9VVCBDYXAgMyAqLworI2RlZmluZSBYVDFEUklWRV8wICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFhUMSBEcml2ZSBMZXZlbCBtb2RlOiAwICovCisjZGVmaW5lIFhUMURSSVZFXzEgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogWFQxIERyaXZlIExldmVsIG1vZGU6IDEgKi8KKyNkZWZpbmUgWFQxRFJJVkVfMiAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBYVDEgRHJpdmUgTGV2ZWwgbW9kZTogMiAqLworI2RlZmluZSBYVDFEUklWRV8zICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIFhUMSBEcml2ZSBMZXZlbCBtb2RlOiAzICovCisjZGVmaW5lIFhUMkRSSVZFXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogWFQyIERyaXZlIExldmVsIG1vZGU6IDAgKi8KKyNkZWZpbmUgWFQyRFJJVkVfMSAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBYVDIgRHJpdmUgTGV2ZWwgbW9kZTogMSAqLworI2RlZmluZSBYVDJEUklWRV8yICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIFhUMiBEcml2ZSBMZXZlbCBtb2RlOiAyICovCisjZGVmaW5lIFhUMkRSSVZFXzMgICAgICAgICAgICAgKDB4QzAwMCkgICAgICAgLyogWFQyIERyaXZlIExldmVsIG1vZGU6IDMgKi8KKworLyogVUNTQ1RMNyBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgRENPRkZHICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEQ08gRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFMRk9GRkcgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFhUMSBMb3cgRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFIRk9GRkcgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFhUMSBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDEgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDJPRkZHICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgMiBGYXVsdCBGbGFnICovCisjZGVmaW5lIEZMTFVMSUZHICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRkxMIFVubG9jayBJbnRlcnJ1cHQgRmxhZyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAyMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwNDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBGTExVTkxPQ0swICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEZMTCBVbmxvY2sgQml0IDAgKi8KKyNkZWZpbmUgRkxMVU5MT0NLMSAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBGTEwgVW5sb2NrIEJpdCAxICovCisjZGVmaW5lIEZMTFVOTE9DS0hJUzAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogRkxMIFVubG9jayBIaXN0b3J5IEJpdCAwICovCisjZGVmaW5lIEZMTFVOTE9DS0hJUzEgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogRkxMIFVubG9jayBIaXN0b3J5IEJpdCAxICovCisjZGVmaW5lIEZMTFVMSUUgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogRkxMIFVubG9jayBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIEZMTFdBUk5FTiAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogRkxMIFdhcm5pbmcgRW5hYmxlICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg0MDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4ODAwMCkgICAgLyogUkVTRVJWRUQgKi8KKworLyogVUNTQ1RMNyBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgRENPRkZHX0wgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEQ08gRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFMRk9GRkdfTCAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFhUMSBMb3cgRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFIRk9GRkdfTCAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFhUMSBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDEgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDJPRkZHX0wgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgMiBGYXVsdCBGbGFnICovCisjZGVmaW5lIEZMTFVMSUZHX0wgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRkxMIFVubG9jayBJbnRlcnJ1cHQgRmxhZyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAyMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwNDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4NDAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDgwMDApICAgIC8qIFJFU0VSVkVEICovCisKKy8qIFVDU0NUTDcgQ29udHJvbCBCaXRzICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDIwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA0MCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwODApICAgIC8qIFJFU0VSVkVEICovCisjZGVmaW5lIEZMTFVOTE9DSzBfSCAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRkxMIFVubG9jayBCaXQgMCAqLworI2RlZmluZSBGTExVTkxPQ0sxX0ggICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZMTCBVbmxvY2sgQml0IDEgKi8KKyNkZWZpbmUgRkxMVU5MT0NLSElTMF9IICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGTEwgVW5sb2NrIEhpc3RvcnkgQml0IDAgKi8KKyNkZWZpbmUgRkxMVU5MT0NLSElTMV9IICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBGTEwgVW5sb2NrIEhpc3RvcnkgQml0IDEgKi8KKyNkZWZpbmUgRkxMVUxJRV9IICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBGTEwgVW5sb2NrIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgRkxMV0FSTkVOX0ggICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGTEwgV2FybmluZyBFbmFibGUgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEw4IENvbnRyb2wgQml0cyAqLworI2RlZmluZSBBQ0xLUkVRRU4gICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFDTEsgQ2xvY2sgUmVxdWVzdCBFbmFibGUgKi8KKyNkZWZpbmUgTUNMS1JFUUVOICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBNQ0xLIENsb2NrIFJlcXVlc3QgRW5hYmxlICovCisjZGVmaW5lIFNNQ0xLUkVRRU4gICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU01DTEsgQ2xvY2sgUmVxdWVzdCBFbmFibGUgKi8KKyNkZWZpbmUgTU9ET1NDUkVRRU4gICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBNT0RPU0MgQ2xvY2sgUmVxdWVzdCBFbmFibGUgKi8KKyNkZWZpbmUgSUZDTEtTRU4gICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBFbmFibGUgSW50ZXJmYWNlIENsb2NrIHNsb3cgZG93biBtZWNoYW5pc20gKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMjApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDQwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDA4MCkgICAgLyogUkVTRVJWRUQgKi8KKyNkZWZpbmUgU01DTEtfRlNFTiAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBFbmFibGUgZmFpbCBzYWZlIGVuYWJsZSBmb3IgU01DTEsgc291cmNlICovCisjZGVmaW5lIEFDTEtfRlNFTiAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogRW5hYmxlIGZhaWwgc2FmZSBlbmFibGUgZm9yIEFDTEsgc291cmNlICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwNDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDgwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDEwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgyMDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4NDAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDgwMDApICAgIC8qIFJFU0VSVkVEICovCisKKy8qIFVDU0NUTDggQ29udHJvbCBCaXRzICovCisjZGVmaW5lIEFDTEtSRVFFTl9MICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQUNMSyBDbG9jayBSZXF1ZXN0IEVuYWJsZSAqLworI2RlZmluZSBNQ0xLUkVRRU5fTCAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIE1DTEsgQ2xvY2sgUmVxdWVzdCBFbmFibGUgKi8KKyNkZWZpbmUgU01DTEtSRVFFTl9MICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTTUNMSyBDbG9jayBSZXF1ZXN0IEVuYWJsZSAqLworI2RlZmluZSBNT0RPU0NSRVFFTl9MICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIE1PRE9TQyBDbG9jayBSZXF1ZXN0IEVuYWJsZSAqLworI2RlZmluZSBJRkNMS1NFTl9MICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEVuYWJsZSBJbnRlcmZhY2UgQ2xvY2sgc2xvdyBkb3duIG1lY2hhbmlzbSAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAyMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwNDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDQwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA4MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgxMDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MjAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgICAvKiBSRVNFUlZFRCAqLworCisvKiBVQ1NDVEw4IENvbnRyb2wgQml0cyAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MDAyMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwNDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwMDgwKSAgICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBTTUNMS19GU0VOX0ggICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEVuYWJsZSBmYWlsIHNhZmUgZW5hYmxlIGZvciBTTUNMSyBzb3VyY2UgKi8KKyNkZWZpbmUgQUNMS19GU0VOX0ggICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgZmFpbCBzYWZlIGVuYWJsZSBmb3IgQUNMSyBzb3VyY2UgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDA0MDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgwODAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MTAwMCkgICAgLyogUkVTRVJWRUQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDIwMDApICAgIC8qIFJFU0VSVkVEICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg0MDAwKSAgICAvKiBSRVNFUlZFRCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4ODAwMCkgICAgLyogUkVTRVJWRUQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0NJCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0NJX18gICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9BQjBfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VU0NJX0FCMV9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VTQ0lfQUIyX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9BQjNfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFVDQTBDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVUNBMENUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfOEJJVChVQ0EwQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVUNBMEJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFVDQTBNQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBMFNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0EwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNBMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfOEJJVChVQ0EwQUJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBMSU4gQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBMElSVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgSXJEQSBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVQ0EwSVJSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJckRBIFJlY2VpdmUgQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBMElFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNBMElGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgSW50ZXJydXB0IEZsYWdzIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoVUNBMElWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJbnRlcnJ1cHQgVmVjdG9yIFJlZ2lzdGVyICovCisKKworCitTRlJfOEJJVChVQ0IwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQjBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0IwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl8xNkJJVChVQ0IwSTJDT0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBPd24gQWRkcmVzcyAqLworU0ZSXzhCSVQoVUNCMEkyQ09BX0wpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgSTJDIE93biBBZGRyZXNzICovCitTRlJfOEJJVChVQ0IwSTJDT0FfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IwSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBTbGF2ZSBBZGRyZXNzICovCitTRlJfOEJJVChVQ0IwSTJDU0FfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgU2xhdmUgQWRkcmVzcyAqLworU0ZSXzhCSVQoVUNCMEkyQ1NBX0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgSTJDIFNsYXZlIEFkZHJlc3MgKi8KK1NGUl84QklUKFVDQjBJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQjBJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEludGVycnVwdCBGbGFncyBSZWdpc3RlciAqLworU0ZSXzE2QklUKFVDQjBJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgSW50ZXJydXB0IFZlY3RvciBSZWdpc3RlciAqLworCitTRlJfOEJJVChVQ0ExQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQTFDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNBMUJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQTFCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0ExTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMSBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTFTVEFUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIFN0YXR1cyBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNBMVJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTFUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIFRyYW5zbWl0IEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNBMUFCQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgTElOIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTFJUlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIElyREEgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBMUlSUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgSXJEQSBSZWNlaXZlIENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEExIEludGVycnVwdCBGbGFncyBSZWdpc3RlciAqLworU0ZSXzE2QklUKFVDQTFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTEgSW50ZXJydXB0IFZlY3RvciBSZWdpc3RlciAqLworCisKKworU0ZSXzhCSVQoVUNCMUNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0IxQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQjFCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0IxQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNCMVNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IxUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMVRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfMTZCSVQoVUNCMUkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl84QklUKFVDQjFJMkNPQV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEkyQyBPd24gQWRkcmVzcyAqLworU0ZSXzhCSVQoVUNCMUkyQ09BX0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgSTJDIE93biBBZGRyZXNzICovCitTRlJfMTZCSVQoVUNCMUkyQ1NBKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBJMkMgU2xhdmUgQWRkcmVzcyAqLworU0ZSXzhCSVQoVUNCMUkyQ1NBX0wpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjEgSTJDIFNsYXZlIEFkZHJlc3MgKi8KK1NGUl84QklUKFVDQjFJMkNTQV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEkyQyBTbGF2ZSBBZGRyZXNzICovCitTRlJfOEJJVChVQ0IxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMSBJbnRlcnJ1cHQgRmxhZ3MgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChVQ0IxSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIxIEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8KKworU0ZSXzhCSVQoVUNBMkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTIgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0EyQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMiBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTJCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEyIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0EyQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMiBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBMk1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTIgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0EyU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMiBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTJSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEyIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0EyVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMiBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTJBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEyIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0EySVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMiBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTJJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEyIElyREEgUmVjZWl2ZSBDb250cm9sICovCitTRlJfOEJJVChVQ0EySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMiBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0EySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMiBJbnRlcnJ1cHQgRmxhZ3MgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChVQ0EySVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEyIEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8KKworCisKK1NGUl84QklUKFVDQjJDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIyIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVUNCMkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjIgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfOEJJVChVQ0IyQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMiBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVUNCMkJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjIgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFVDQjJTVEFUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIyIFN0YXR1cyBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMlJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjIgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFVDQjJUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIyIFRyYW5zbWl0IEJ1ZmZlciAqLworU0ZSXzE2QklUKFVDQjJJMkNPQSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjIgSTJDIE93biBBZGRyZXNzICovCitTRlJfOEJJVChVQ0IySTJDT0FfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMiBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl84QklUKFVDQjJJMkNPQV9IKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIyIEkyQyBPd24gQWRkcmVzcyAqLworU0ZSXzE2QklUKFVDQjJJMkNTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjIgSTJDIFNsYXZlIEFkZHJlc3MgKi8KK1NGUl84QklUKFVDQjJJMkNTQV9MKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIyIEkyQyBTbGF2ZSBBZGRyZXNzICovCitTRlJfOEJJVChVQ0IySTJDU0FfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMiBJMkMgU2xhdmUgQWRkcmVzcyAqLworU0ZSXzhCSVQoVUNCMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjIgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjIgSW50ZXJydXB0IEZsYWdzIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoVUNCMklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMiBJbnRlcnJ1cHQgVmVjdG9yIFJlZ2lzdGVyICovCisKK1NGUl84QklUKFVDQTNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEzIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoVUNBM0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTMgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfOEJJVChVQ0EzQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMyBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVUNBM0JSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTMgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFVDQTNNQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEzIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBM1NUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTMgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0EzUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMyBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNBM1RYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTMgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfOEJJVChVQ0EzQUJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMyBMSU4gQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBM0lSVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTMgSXJEQSBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVQ0EzSVJSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMyBJckRBIFJlY2VpdmUgQ29udHJvbCAqLworU0ZSXzhCSVQoVUNBM0lFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNBM0lGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTMgSW50ZXJydXB0IEZsYWdzIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoVUNBM0lWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMyBJbnRlcnJ1cHQgVmVjdG9yIFJlZ2lzdGVyICovCisKKworCitTRlJfOEJJVChVQ0IzQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMyBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIzIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCM0JSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjMgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjNCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIzIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IzU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMyBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQjNSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIzIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0IzVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMyBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl8xNkJJVChVQ0IzSTJDT0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIzIEkyQyBPd24gQWRkcmVzcyAqLworU0ZSXzhCSVQoVUNCM0kyQ09BX0wpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjMgSTJDIE93biBBZGRyZXNzICovCitTRlJfOEJJVChVQ0IzSTJDT0FfSCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMyBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IzSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIzIEkyQyBTbGF2ZSBBZGRyZXNzICovCitTRlJfOEJJVChVQ0IzSTJDU0FfTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMyBJMkMgU2xhdmUgQWRkcmVzcyAqLworU0ZSXzhCSVQoVUNCM0kyQ1NBX0gpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjMgSTJDIFNsYXZlIEFkZHJlc3MgKi8KK1NGUl84QklUKFVDQjNJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIzIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQjNJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIzIEludGVycnVwdCBGbGFncyBSZWdpc3RlciAqLworU0ZSXzE2QklUKFVDQjNJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjMgSW50ZXJydXB0IFZlY3RvciBSZWdpc3RlciAqLworCisvLyBVQ0F4Q1RMMCBVQVJULU1vZGUgQ29udHJvbCBCaXRzCisjZGVmaW5lIFVDUEVOICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgVUNQQVIgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5ICAgICAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBVQ01TQiAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBNU0IgZmlyc3QgIDA6TFNCIC8gMTpNU0IgKi8KKyNkZWZpbmUgVUM3QklUICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogRGF0YSBCaXRzICAwOjgtYml0cyAvIDE6Ny1iaXRzICovCisjZGVmaW5lIFVDU1BCICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFN0b3AgQml0cyAgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgVUNNT0RFMSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDEgKi8KKyNkZWZpbmUgVUNNT0RFMCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDAgKi8KKyNkZWZpbmUgVUNTWU5DICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTeW5jLU1vZGUgIDA6VUFSVC1Nb2RlIC8gMTpTUEktTW9kZSAqLworCisvLyBVQ3h4Q1RMMCBTUEktTW9kZSBDb250cm9sIEJpdHMKKyNkZWZpbmUgVUNDS1BIICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQaGFzZSAqLworI2RlZmluZSBVQ0NLUEwgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IENsb2NrIFBvbGFyaXR5ICovCisjZGVmaW5lIFVDTVNUICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy4gTW9kZTogTWFzdGVyIFNlbGVjdCAqLworCisvLyBVQ0J4Q1RMMCBJMkMtTW9kZSBDb250cm9sIEJpdHMKKyNkZWZpbmUgVUNBMTAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiAxMC1iaXQgQWRkcmVzcyBNb2RlICovCisjZGVmaW5lIFVDU0xBMTAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogMTAtYml0IFNsYXZlIEFkZHJlc3MgTW9kZSAqLworI2RlZmluZSBVQ01NICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE11bHRpLU1hc3RlciBFbnZpcm9ubWVudCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDEwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ01PREVfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IFVTQ0kgTW9kZTogMCAqLworI2RlZmluZSBVQ01PREVfMSAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IFVTQ0kgTW9kZTogMSAqLworI2RlZmluZSBVQ01PREVfMiAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IFVTQ0kgTW9kZTogMiAqLworI2RlZmluZSBVQ01PREVfMyAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IFVTQ0kgTW9kZTogMyAqLworCisvLyBVQ0F4Q1RMMSBVQVJULU1vZGUgQ29udHJvbCBCaXRzCisjZGVmaW5lIFVDU1NFTDEgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBVQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNSWEVJRSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQlJLSUUgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgaW50ZXJydXB0IGVuYWJsZSAqLyAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDRE9STSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRG9ybWFudCAoU2xlZXApIE1vZGUgKi8KKyNkZWZpbmUgVUNUWEFERFIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBBZGRyZXNzICovCisjZGVmaW5lIFVDVFhCUksgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VuZCBuZXh0IERhdGEgYXMgQnJlYWsgKi8KKyNkZWZpbmUgVUNTV1JTVCAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIFNvZnR3YXJlIFJlc2V0ICovCisKKy8vIFVDeHhDVEwxIFNQSS1Nb2RlIENvbnRyb2wgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDEwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDA4KSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDA0KSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworCisvLyBVQ0J4Q1RMMSBJMkMtTW9kZSBDb250cm9sIEJpdHMKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNUUiAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBUcmFuc21pdC9SZWNlaXZlIFNlbGVjdC9GbGFnICovCisjZGVmaW5lIFVDVFhOQUNLICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVHJhbnNtaXQgTkFDSyAqLworI2RlZmluZSBVQ1RYU1RQICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFRyYW5zbWl0IFNUT1AgKi8KKyNkZWZpbmUgVUNUWFNUVCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBUcmFuc21pdCBTVEFSVCAqLworI2RlZmluZSBVQ1NTRUxfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDAgKi8KKyNkZWZpbmUgVUNTU0VMXzEgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAxICovCisjZGVmaW5lIFVDU1NFTF8yICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMiAqLworI2RlZmluZSBVQ1NTRUxfMyAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDMgKi8KKworLyogVUNBeE1DVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFVDQlJGMyAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAzICovCisjZGVmaW5lIFVDQlJGMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDQlJGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDQlJTMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMiAqLworI2RlZmluZSBVQ0JSUzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUlMwICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDT1MxNiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSAxNi10aW1lcyBPdmVyc2FtcGxpbmcgZW5hYmxlICovCisKKyNkZWZpbmUgVUNCUkZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUkZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUkZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDIgKi8KKyNkZWZpbmUgVUNCUkZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUkZfNCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUkZfNSAgICAgICAgICAgICAgICAoMHg1MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDUgKi8KKyNkZWZpbmUgVUNCUkZfNiAgICAgICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUkZfNyAgICAgICAgICAgICAgICAoMHg3MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKyNkZWZpbmUgVUNCUkZfOCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDggKi8KKyNkZWZpbmUgVUNCUkZfOSAgICAgICAgICAgICAgICAoMHg5MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDkgKi8KKyNkZWZpbmUgVUNCUkZfMTAgICAgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEEgKi8KKyNkZWZpbmUgVUNCUkZfMTEgICAgICAgICAgICAgICAoMHhCMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEIgKi8KKyNkZWZpbmUgVUNCUkZfMTIgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEMgKi8KKyNkZWZpbmUgVUNCUkZfMTMgICAgICAgICAgICAgICAoMHhEMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEQgKi8KKyNkZWZpbmUgVUNCUkZfMTQgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEUgKi8KKyNkZWZpbmUgVUNCUkZfMTUgICAgICAgICAgICAgICAoMHhGMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEYgKi8KKworI2RlZmluZSBVQ0JSU18wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUlNfMSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAxICovCisjZGVmaW5lIFVDQlJTXzIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSU18zICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUlNfNCAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA0ICovCisjZGVmaW5lIFVDQlJTXzUgICAgICAgICAgICAgICAgKDB4MEEpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSU182ICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUlNfNyAgICAgICAgICAgICAgICAoMHgwRSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA3ICovCisKKy8qIFVDQXhTVEFUIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBVQ0xJU1RFTiAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFVTQ0kgTGlzdGVuIG1vZGUgKi8KKyNkZWZpbmUgVUNGRSAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZyYW1lIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNPRSAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIE92ZXJydW4gRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ1BFICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFVTQ0kgUGFyaXR5IEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNCUksgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIEJyZWFrIHJlY2VpdmVkICovCisjZGVmaW5lIFVDUlhFUlIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBSWCBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQUREUiAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogVVNDSSBBZGRyZXNzIHJlY2VpdmVkIEZsYWcgKi8KKyNkZWZpbmUgVUNCVVNZICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIEJ1c3kgRmxhZyAqLworI2RlZmluZSBVQ0lETEUgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgSWRsZSBsaW5lIGRldGVjdGVkIEZsYWcgKi8KKworLyogVUNCeFNUQVQgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFVDU0NMTE9XICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogU0NMIGxvdyAqLworI2RlZmluZSBVQ0dDICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEdlbmVyYWwgQ2FsbCBhZGRyZXNzIHJlY2VpdmVkIEZsYWcgKi8KKyNkZWZpbmUgVUNCQlVTWSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCdXMgQnVzeSBGbGFnICovCisKKy8qIFVDQXhJUlRDVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFVDSVJUWFBMNSAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggNSAqLworI2RlZmluZSBVQ0lSVFhQTDQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDQgKi8KKyNkZWZpbmUgVUNJUlRYUEwzICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAzICovCisjZGVmaW5lIFVDSVJUWFBMMiAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMiAqLworI2RlZmluZSBVQ0lSVFhQTDEgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDEgKi8KKyNkZWZpbmUgVUNJUlRYUEwwICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAwICovCisjZGVmaW5lIFVDSVJUWENMSyAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBDbG9jayBTZWxlY3QgKi8KKyNkZWZpbmUgVUNJUkVOICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBJUkRBIEVuY29kZXIvRGVjb2RlciBlbmFibGUgKi8KKworLyogVUNBeElSUkNUTCBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgVUNJUlJYRkw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJSWEZMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSUlhGTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlJYRkwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJSWEZMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSUlhGTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlJYUEwgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgSW5wdXQgUG9sYXJpdHkgKi8KKyNkZWZpbmUgVUNJUlJYRkUgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIGVuYWJsZSAqLworCisvKiBVQ0F4QUJDVEwgQ29udHJvbCBCaXRzICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4ODApICAgIC8qIHJlc2VydmVkICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4NDApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDREVMSU0xICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQnJlYWsgU3luYyBEZWxpbWl0ZXIgMSAqLworI2RlZmluZSBVQ0RFTElNMCAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDAgKi8KKyNkZWZpbmUgVUNTVE9FICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBTeW5jLUZpZWxkIFRpbWVvdXQgZXJyb3IgKi8KKyNkZWZpbmUgVUNCVE9FICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBCcmVhayBUaW1lb3V0IGVycm9yICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MDIpICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDQUJERU4gICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXV0byBCYXVkIFJhdGUgZGV0ZWN0IGVuYWJsZSAqLworCisvKiBVQ0J4STJDT0EgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFVDR0NFTiAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogSTJDIEdlbmVyYWwgQ2FsbCBlbmFibGUgKi8KKyNkZWZpbmUgVUNPQTkgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOSAqLworI2RlZmluZSBVQ09BOCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDT0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDcgKi8KKyNkZWZpbmUgVUNPQTYgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNiAqLworI2RlZmluZSBVQ09BNSAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDT0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDQgKi8KKyNkZWZpbmUgVUNPQTMgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMyAqLworI2RlZmluZSBVQ09BMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAyICovCisjZGVmaW5lIFVDT0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDEgKi8KKyNkZWZpbmUgVUNPQTAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMCAqLworCisvKiBVQ0J4STJDT0EgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFVDT0E3X0wgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDcgKi8KKyNkZWZpbmUgVUNPQTZfTCAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNiAqLworI2RlZmluZSBVQ09BNV9MICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDT0E0X0wgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDQgKi8KKyNkZWZpbmUgVUNPQTNfTCAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMyAqLworI2RlZmluZSBVQ09BMl9MICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAyICovCisjZGVmaW5lIFVDT0ExX0wgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDEgKi8KKyNkZWZpbmUgVUNPQTBfTCAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMCAqLworCisvKiBVQ0J4STJDT0EgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFVDR0NFTl9IICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIEdlbmVyYWwgQ2FsbCBlbmFibGUgKi8KKyNkZWZpbmUgVUNPQTlfSCAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOSAqLworI2RlZmluZSBVQ09BOF9IICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA4ICovCisKKy8qIFVDQnhJMkNTQSBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgVUNTQTkgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA5ICovCisjZGVmaW5lIFVDU0E4ICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgOCAqLworI2RlZmluZSBVQ1NBNyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDcgKi8KKyNkZWZpbmUgVUNTQTYgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA2ICovCisjZGVmaW5lIFVDU0E1ICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNSAqLworI2RlZmluZSBVQ1NBNCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDQgKi8KKyNkZWZpbmUgVUNTQTMgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAzICovCisjZGVmaW5lIFVDU0EyICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMiAqLworI2RlZmluZSBVQ1NBMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDEgKi8KKyNkZWZpbmUgVUNTQTAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAwICovCisKKy8qIFVDQnhJMkNTQSBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgVUNTQTdfTCAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDU0E2X0wgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNiAqLworI2RlZmluZSBVQ1NBNV9MICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDUgKi8KKyNkZWZpbmUgVUNTQTRfTCAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDU0EzX0wgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMyAqLworI2RlZmluZSBVQ1NBMl9MICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDIgKi8KKyNkZWZpbmUgVUNTQTFfTCAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAxICovCisjZGVmaW5lIFVDU0EwX0wgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMCAqLworCisvKiBVQ0J4STJDU0EgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFVDU0E5X0ggICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgOSAqLworI2RlZmluZSBVQ1NBOF9IICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDggKi8KKworLyogVUNBeElFIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBVQ1RYSUUgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFVTQ0kgVHJhbnNtaXQgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBVQ1JYSUUgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFVTQ0kgUmVjZWl2ZSBJbnRlcnJ1cHQgRW5hYmxlICovCisKKy8qIFVDQnhJRSBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgVUNOQUNLSUUgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBOQUNLIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQUxJRSAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQXJiaXRyYXRpb24gTG9zdCBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RQSUUgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ1NUVElFICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDVFhJRSAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVVNDSSBUcmFuc21pdCBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFVDUlhJRSAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVVNDSSBSZWNlaXZlIEludGVycnVwdCBFbmFibGUgKi8KKworLyogVUNBeElGRyBDb250cm9sIEJpdHMgKi8KKyNkZWZpbmUgVUNUWElGRyAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBVU0NJIFRyYW5zbWl0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDUlhJRkcgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVVNDSSBSZWNlaXZlIEludGVycnVwdCBGbGFnICovCisKKy8qIFVDQnhJRkcgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFVDTkFDS0lGRyAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogTkFLIENvbmRpdGlvbiBpbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBVQ0FMSUZHICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFyYml0cmF0aW9uIExvc3QgaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFBJRkcgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTVE9QIENvbmRpdGlvbiBpbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBVQ1NUVElGRyAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBVQ1RYSUZHICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFVTQ0kgVHJhbnNtaXQgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNSWElGRyAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBVU0NJIFJlY2VpdmUgSW50ZXJydXB0IEZsYWcgKi8KKworLyogVVNDSSBEZWZpbml0aW9ucyAqLworI2RlZmluZSBVU0NJX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFVTQ0lfVUNSWElGRyAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVVNDSSBVQ1JYSUZHICovCisjZGVmaW5lIFVTQ0lfVUNUWElGRyAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVVNDSSBVQ1RYSUZHICovCisjZGVmaW5lIFVTQ0lfSTJDX1VDQUxJRkcgICAgICAgKDB4MDAwMikgICAgICAgLyogVVNDSSBJMkMgTW9kZTogVUNBTElGRyAqLworI2RlZmluZSBVU0NJX0kyQ19VQ05BQ0tJRkcgICAgICgweDAwMDQpICAgICAgIC8qIFVTQ0kgSTJDIE1vZGU6IFVDTkFDS0lGRyAqLworI2RlZmluZSBVU0NJX0kyQ19VQ1NUVElGRyAgICAgICgweDAwMDYpICAgICAgIC8qIFVTQ0kgSTJDIE1vZGU6IFVDU1RUSUZHKi8KKyNkZWZpbmUgVVNDSV9JMkNfVUNTVFBJRkcgICAgICAoMHgwMDA4KSAgICAgICAvKiBVU0NJIEkyQyBNb2RlOiBVQ1NUUElGRyovCisjZGVmaW5lIFVTQ0lfSTJDX1VDUlhJRkcgICAgICAgKDB4MDAwQSkgICAgICAgLyogVVNDSSBJMkMgTW9kZTogVUNSWElGRyAqLworI2RlZmluZSBVU0NJX0kyQ19VQ1RYSUZHICAgICAgICgweDAwMEMpICAgICAgIC8qIFVTQ0kgSTJDIE1vZGU6IFVDVFhJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUiBBCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworU0ZSXzhCSVQoV0RUQ1RMX0wpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KK1NGUl84QklUKFdEVENUTF9IKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisvKiBXRFRDVEwgQ29udHJvbCBCaXRzICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogV0RUIC0gVGltZXIgSW50ZXJ2YWwgU2VsZWN0IDAgKi8KKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBXRFQgLSBUaW1lciBJbnRlcnZhbCBTZWxlY3QgMSAqLworI2RlZmluZSBXRFRJUzIgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFdEVCAtIFRpbWVyIEludGVydmFsIFNlbGVjdCAyICovCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV0RUIC0gVGltZXIgQ2xlYXIgKi8KKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBXRFQgLSBUaW1lciBNb2RlIFNlbGVjdCAqLworI2RlZmluZSBXRFRTU0VMMCAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFdEVCAtIFRpbWVyIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBXRFRTU0VMMSAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFdEVCAtIFRpbWVyIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFdEVCAtIFRpbWVyIGhvbGQgKi8KKworLyogV0RUQ1RMIENvbnRyb2wgQml0cyAqLworI2RlZmluZSBXRFRJUzBfTCAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFdEVCAtIFRpbWVyIEludGVydmFsIFNlbGVjdCAwICovCisjZGVmaW5lIFdEVElTMV9MICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogV0RUIC0gVGltZXIgSW50ZXJ2YWwgU2VsZWN0IDEgKi8KKyNkZWZpbmUgV0RUSVMyX0wgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBXRFQgLSBUaW1lciBJbnRlcnZhbCBTZWxlY3QgMiAqLworI2RlZmluZSBXRFRDTlRDTF9MICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdEVCAtIFRpbWVyIENsZWFyICovCisjZGVmaW5lIFdEVFRNU0VMX0wgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogV0RUIC0gVGltZXIgTW9kZSBTZWxlY3QgKi8KKyNkZWZpbmUgV0RUU1NFTDBfTCAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBXRFQgLSBUaW1lciBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgV0RUU1NFTDFfTCAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBXRFQgLSBUaW1lciBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgV0RUSE9MRF9MICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBXRFQgLSBUaW1lciBob2xkICovCisKKy8qIFdEVENUTCBDb250cm9sIEJpdHMgKi8KKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKyNkZWZpbmUgV0RUSVNfMCAgICAgICAgICAgICAgICAoMCoweDAwMDF1KSAgICAvKiBXRFQgLSBUaW1lciBJbnRlcnZhbCBTZWxlY3Q6IC8yRyAqLworI2RlZmluZSBXRFRJU18xICAgICAgICAgICAgICAgICgxKjB4MDAwMXUpICAgIC8qIFdEVCAtIFRpbWVyIEludGVydmFsIFNlbGVjdDogLzEyOE0gKi8KKyNkZWZpbmUgV0RUSVNfMiAgICAgICAgICAgICAgICAoMioweDAwMDF1KSAgICAvKiBXRFQgLSBUaW1lciBJbnRlcnZhbCBTZWxlY3Q6IC84MTkyayAqLworI2RlZmluZSBXRFRJU18zICAgICAgICAgICAgICAgICgzKjB4MDAwMXUpICAgIC8qIFdEVCAtIFRpbWVyIEludGVydmFsIFNlbGVjdDogLzUxMmsgKi8KKyNkZWZpbmUgV0RUSVNfNCAgICAgICAgICAgICAgICAoNCoweDAwMDF1KSAgICAvKiBXRFQgLSBUaW1lciBJbnRlcnZhbCBTZWxlY3Q6IC8zMmsgKi8KKyNkZWZpbmUgV0RUSVNfNSAgICAgICAgICAgICAgICAoNSoweDAwMDF1KSAgICAvKiBXRFQgLSBUaW1lciBJbnRlcnZhbCBTZWxlY3Q6IC84MTkyICovCisjZGVmaW5lIFdEVElTXzYgICAgICAgICAgICAgICAgKDYqMHgwMDAxdSkgICAgLyogV0RUIC0gVGltZXIgSW50ZXJ2YWwgU2VsZWN0OiAvNTEyICovCisjZGVmaW5lIFdEVElTXzcgICAgICAgICAgICAgICAgKDcqMHgwMDAxdSkgICAgLyogV0RUIC0gVGltZXIgSW50ZXJ2YWwgU2VsZWN0OiAvNjQgKi8KKyNkZWZpbmUgV0RUSVNfXzJHICAgICAgICAgICAgICAoMCoweDAwMDF1KSAgICAvKiBXRFQgLSBUaW1lciBJbnRlcnZhbCBTZWxlY3Q6IC8yRyAqLworI2RlZmluZSBXRFRJU19fMTI4TSAgICAgICAgICAgICgxKjB4MDAwMXUpICAgIC8qIFdEVCAtIFRpbWVyIEludGVydmFsIFNlbGVjdDogLzEyOE0gKi8KKyNkZWZpbmUgV0RUSVNfXzgxOTJLICAgICAgICAgICAoMioweDAwMDF1KSAgICAvKiBXRFQgLSBUaW1lciBJbnRlcnZhbCBTZWxlY3Q6IC84MTkyayAqLworI2RlZmluZSBXRFRJU19fNTEySyAgICAgICAgICAgICgzKjB4MDAwMXUpICAgIC8qIFdEVCAtIFRpbWVyIEludGVydmFsIFNlbGVjdDogLzUxMmsgKi8KKyNkZWZpbmUgV0RUSVNfXzMySyAgICAgICAgICAgICAoNCoweDAwMDF1KSAgICAvKiBXRFQgLSBUaW1lciBJbnRlcnZhbCBTZWxlY3Q6IC8zMmsgKi8KKyNkZWZpbmUgV0RUSVNfXzgxOTIgICAgICAgICAgICAoNSoweDAwMDF1KSAgICAvKiBXRFQgLSBUaW1lciBJbnRlcnZhbCBTZWxlY3Q6IC84MTkyICovCisjZGVmaW5lIFdEVElTX181MTIgICAgICAgICAgICAgKDYqMHgwMDAxdSkgICAgLyogV0RUIC0gVGltZXIgSW50ZXJ2YWwgU2VsZWN0OiAvNTEyICovCisjZGVmaW5lIFdEVElTX182NCAgICAgICAgICAgICAgKDcqMHgwMDAxdSkgICAgLyogV0RUIC0gVGltZXIgSW50ZXJ2YWwgU2VsZWN0OiAvNjQgKi8KKworI2RlZmluZSBXRFRTU0VMXzAgICAgICAgICAgICAgICgwKjB4MDAyMHUpICAgIC8qIFdEVCAtIFRpbWVyIENsb2NrIFNvdXJjZSBTZWxlY3Q6IFNNQ0xLICovCisjZGVmaW5lIFdEVFNTRUxfMSAgICAgICAgICAgICAgKDEqMHgwMDIwdSkgICAgLyogV0RUIC0gVGltZXIgQ2xvY2sgU291cmNlIFNlbGVjdDogQUNMSyAqLworI2RlZmluZSBXRFRTU0VMXzIgICAgICAgICAgICAgICgyKjB4MDAyMHUpICAgIC8qIFdEVCAtIFRpbWVyIENsb2NrIFNvdXJjZSBTZWxlY3Q6IFZMT19DTEsgKi8KKyNkZWZpbmUgV0RUU1NFTF8zICAgICAgICAgICAgICAoMyoweDAwMjB1KSAgICAvKiBXRFQgLSBUaW1lciBDbG9jayBTb3VyY2UgU2VsZWN0OiByZXNlcnZlZCAqLworI2RlZmluZSBXRFRTU0VMX19TTUxDSyAgICAgICAgICgwKjB4MDAyMHUpICAgIC8qIFdEVCAtIFRpbWVyIENsb2NrIFNvdXJjZSBTZWxlY3Q6IFNNQ0xLICovCisjZGVmaW5lIFdEVFNTRUxfX0FDTEsgICAgICAgICAgKDEqMHgwMDIwdSkgICAgLyogV0RUIC0gVGltZXIgQ2xvY2sgU291cmNlIFNlbGVjdDogQUNMSyAqLworI2RlZmluZSBXRFRTU0VMX19WTE8gICAgICAgICAgICgyKjB4MDAyMHUpICAgIC8qIFdEVCAtIFRpbWVyIENsb2NrIFNvdXJjZSBTZWxlY3Q6IFZMT19DTEsgKi8KKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzIpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMitXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMitXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMitXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMyK1dEVFNTRUwwKSAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMyK1dEVFNTRUwwK1dEVElTMCkgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMyK1dEVFNTRUwwK1dEVElTMSkgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMyK1dEVFNTRUwwK1dEVElTMStXRFRJUzApICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzIrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzIrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzIrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwwK1dEVElTMikgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwwK1dEVElTMitXRFRJUzApICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwwK1dEVElTMitXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwwK1dEVElTMitXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRjgwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjcHJhZ21hIGRpYWdfc3VwcHJlc3MgMTEwNyAKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICAgICAgICB2b2lkICogY29uc3QgVkVDVE9SX05BTUUobmFtZSkgPSAodm9pZCAqKShsb25nKSZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIFBMQUNFX0lOVEVSUlVQVChmdW5jKSAgICAgICAgIEVNSVRfUFJBR01BKENPREVfU0VDVElPTihmdW5jLCIudGV4dDpfaXNyIikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpICAgICAgIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfSU5URVJSVVBUKGZ1bmMpCisKKyNkZWZpbmUgUlRDX1ZFQ1RPUiAgICAgICAgICAgICAgKDQxICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRDIgUlRDICovCisvKiNkZWZpbmUgUlRDX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDQxIikgICovIC8qIDB4RkZEMiBSVEMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICg0MiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkQ0IFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQ0MiIpICAqLyAvKiAweEZGRDQgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJX0IzX1ZFQ1RPUiAgICAgICAgICAoNDMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZENiBVU0NJIEIzIFJlY2VpdmUvVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0NJX0IzX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50NDMiKSAgKi8gLyogMHhGRkQ2IFVTQ0kgQjMgUmVjZWl2ZS9UcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNDSV9BM19WRUNUT1IgICAgICAgICAgKDQ0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRDggVVNDSSBBMyBSZWNlaXZlL1RyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNDSV9BM19JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDQ0IikgICovIC8qIDB4RkZEOCBVU0NJIEEzIFJlY2VpdmUvVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lfQjFfVkVDVE9SICAgICAgICAgICg0NSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkRBIFVTQ0kgQjEgUmVjZWl2ZS9UcmFuc21pdCAqLworLyojZGVmaW5lIFVTQ0lfQjFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQ0NSIpICAqLyAvKiAweEZGREEgVVNDSSBCMSBSZWNlaXZlL1RyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJX0ExX1ZFQ1RPUiAgICAgICAgICAoNDYgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZEQyBVU0NJIEExIFJlY2VpdmUvVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0NJX0ExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50NDYiKSAgKi8gLyogMHhGRkRDIFVTQ0kgQTEgUmVjZWl2ZS9UcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDQ3ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGREUgUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDQ3IikgICovIC8qIDB4RkZERSBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSMV9BMV9WRUNUT1IgICAgICAgICg0OCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIFRpbWVyMV9BMyBDQzEtMiwgVEExICovCisvKiNkZWZpbmUgVElNRVIxX0ExX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDQ4IikgICovIC8qIDB4RkZFMCBUaW1lcjFfQTMgQ0MxLTIsIFRBMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVIxX0EwX1ZFQ1RPUiAgICAgICAgKDQ5ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgVGltZXIxX0EzIENDMCAqLworLyojZGVmaW5lIFRJTUVSMV9BMF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQ0OSIpICAqLyAvKiAweEZGRTIgVGltZXIxX0EzIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgRE1BX1ZFQ1RPUiAgICAgICAgICAgICAgKDUwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgRE1BICovCisvKiNkZWZpbmUgRE1BX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDUwIikgICovIC8qIDB4RkZFNCBETUEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lfQjJfVkVDVE9SICAgICAgICAgICg1MSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IFVTQ0kgQjIgUmVjZWl2ZS9UcmFuc21pdCAqLworLyojZGVmaW5lIFVTQ0lfQjJfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQ1MSIpICAqLyAvKiAweEZGRTYgVVNDSSBCMiBSZWNlaXZlL1RyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJX0EyX1ZFQ1RPUiAgICAgICAgICAoNTIgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBVU0NJIEEyIFJlY2VpdmUvVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0NJX0EyX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50NTIiKSAgKi8gLyogMHhGRkU4IFVTQ0kgQTIgUmVjZWl2ZS9UcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVIwX0ExX1ZFQ1RPUiAgICAgICAgKDUzICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIwX0E1IENDMS00LCBUQSAqLworLyojZGVmaW5lIFRJTUVSMF9BMV9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQ1MyIpICAqLyAvKiAweEZGRUEgVGltZXIwX0E1IENDMS00LCBUQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVIwX0EwX1ZFQ1RPUiAgICAgICAgKDU0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUMgVGltZXIwX0E1IENDMCAqLworLyojZGVmaW5lIFRJTUVSMF9BMF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQ1NCIpICAqLyAvKiAweEZGRUMgVGltZXIwX0E1IENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQURDMTJfVkVDVE9SICAgICAgICAgICAgKDU1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUUgQURDICovCisvKiNkZWZpbmUgQURDMTJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDU1IikgICovIC8qIDB4RkZFRSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lfQjBfVkVDVE9SICAgICAgICAgICg1NiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFVTQ0kgQjAgUmVjZWl2ZS9UcmFuc21pdCAqLworLyojZGVmaW5lIFVTQ0lfQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQ1NiIpICAqLyAvKiAweEZGRjAgVVNDSSBCMCBSZWNlaXZlL1RyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0NJX0EwX1ZFQ1RPUiAgICAgICAgICAoNTcgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBVU0NJIEEwIFJlY2VpdmUvVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0NJX0EwX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50NTciKSAgKi8gLyogMHhGRkYyIFVTQ0kgQTAgUmVjZWl2ZS9UcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDU4ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50NTgiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIxX1ZFQ1RPUiAgICAgICAgICAoNTkgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBUaW1lcl9CNyBDQzEtNiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50NTkiKSAgKi8gLyogMHhGRkY2IFRpbWVyX0I3IENDMS02LCBUQiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMF9WRUNUT1IgICAgICAgICAgKDYwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXJfQjcgQ0MwICovCisvKiNkZWZpbmUgVElNRVJCMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDYwIikgICovIC8qIDB4RkZGOCBUaW1lcl9CNyBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVOTUlfVkVDVE9SICAgICAgICAgICAgICg2MSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZBIFVzZXIgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgVU5NSV9JU1IoZnVuYykgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDYxIikgICovIC8qIDB4RkZGQSBVc2VyIE5vbi1tYXNrYWJsZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgU1lTTk1JX1ZFQ1RPUiAgICAgICAgICAgKDYyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgU3lzdGVtIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIFNZU05NSV9JU1IoZnVuYykgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQ2MiIpICAqLyAvKiAweEZGRkMgU3lzdGVtIE5vbi1tYXNrYWJsZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVRfVkVDVE9SICAgICAgICAgICAgKDYzICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovCisvKiNkZWZpbmUgUkVTRVRfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDYzIikgICovIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRW5kIG9mIE1vZHVsZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogZXh0ZXJuICJDIiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX21zcDQzMHg1NHggKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHhlNDJ4LmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweGU0MnguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGNiOTNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHhlNDJ4LmgKQEAgLTAsMCArMSwxMDUyIEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyoKKyogU3RhbmRhcmQgcmVnaXN0ZXIgYW5kIGJpdCBkZWZpbml0aW9ucyBmb3IgdGhlIFRleGFzIEluc3RydW1lbnRzCisqIE1TUDQzMCBtaWNyb2NvbnRyb2xsZXIuCisqCisqIFRoaXMgZmlsZSBzdXBwb3J0cyBhc3NlbWJsZXIgYW5kIEMgZGV2ZWxvcG1lbnQgZm9yCisqIE1TUDQzMHhFNDJ4IGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDIuNgorKgorKgorKiBSZXYuIDIuMSwgIEFsaWdubWVudCBvZiBkZWZpbnRpb25zIGluIFVzZXJzIEd1aWRlIGFuZCBvZiB2ZXJzaW9uIG51bWJlcnMKKyogUmV2LiAyLjIsICBBZGRlZCBuZXcgZGVmaW5pdGlvbnMgZm9yIEVTUDQzMAorKiBSZXYuIDIuMjEsIEZpeGVkIHN3YXAgb2YgbVNFVF9TVEFSVENVUlJfRlJBQyBhbmQgbVNFVF9TVEFSVENVUlJfRlJBQworKiBSZXYuIDIuMjIsIFJlbW92ZWQgZGVmaW5pdGlvbiBvZiBMQ0RMT1dSIChub3QgYXZhaWxhYmxlIGF0IDR4eCBkZXZpY2VzKQorKiAgICAgICAgICAgIEFkZGVkIGRlZmluaXRpb24gZm9yIG1JMlJEWQorKiBSZXYuIDIuMjMsIEZpeGVkIGJpdCBuYW1lcyBpbiBhY2NvcmRhbmNlIHRvIFVzZXJzIEd1aWRlCisqIFJldi4gMi4yNCwgQWRkZWQgU0QxNklOVERMWV94IGRlZmluaXRpb25zCisqIFJldi4gMi4yNCwgQWRkZWQgbVJFQURfSTIgZGVmaW5pdGlvbgorKiBSZXYuIDIuMywgUmVtb3ZlZCB1bnVzZWQgZGVmIG9mIFRBU1NFTDIKKyogUmV2LiAyLjQsIEFkZGVkIFZMRCBiaXRzIGluIFNWUyBtb2R1bGUKKyogUmV2LiAyLjUsIFJlbW92ZWQgZGVmaW5pdGlvbnMgZm9yIEJUUkVTRVQKKyogICAgICAgICAgIEZpeGVkIHR5cGUgZGVmaW5lIG9mIEFGRUNDVEwyCisqIFJldi4gMi42LCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4RTQyeAorI2RlZmluZSBfX21zcDQzMHhFNDJ4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFUwSUUgICAgICAgICAgICAgICAgICAgSUUxICAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBVUlhJRTAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBVVFhJRTAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBVMElGRyAgICAgICAgICAgICAgICAgIElGRzEgICAgICAgICAgIC8qIFVBUlQwIEludGVycnVwdCBGbGFnIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFVSWElGRzAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElGRzAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKE1FMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNb2R1bGUgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBNRSAgICAgICAgICAgICAgICAgICBNRTEgICAgICAgICAgICAvKiBVQVJUMCBNb2R1bGUgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFVSWEUwICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWEUwICAgICAgICAgICAgICAgICAgKDB4ODApCisjZGVmaW5lIFVTUElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAgICAoMHg4MCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQMklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIElucHV0ICovCitTRlJfOEJJVChQMk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIE91dHB1dCAqLworU0ZSXzhCSVQoUDJESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAySUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAyU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQkFTSUMgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0JUX18gICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKEJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJCVCIgKi8KKyNkZWZpbmUgQlRJUDAgICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgQlRJUDEgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgQlRJUDIgICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgQlRGUkZRMCAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgQlRGUkZRMSAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQlRESVYgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBmQ0xLMiA9IEFDTEs6MjU2ICovCisjZGVmaW5lIEJUSE9MRCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQlQxIGlzIGhlbGQgaWYgdGhpcyBiaXQgaXMgc2V0ICovCisjZGVmaW5lIEJUU1NFTCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogZkJUID0gZk1DTEsgKG1haW4gY2xvY2spICovCisKK1NGUl84QklUKEJUQ05UMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAxICovCitTRlJfOEJJVChCVENOVDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMiAqLworCisvKiBGcmVxdWVuY3kgb2YgdGhlIEJUQ05UMiBjb2RlZCB3aXRoIEJpdCA1IGFuZCA3IGluIEJUQ1RMICovCisjZGVmaW5lIEJUX2ZDTEsyX0FDTEsgICAgICAgICAgKDB4MDApCisjZGVmaW5lIEJUX2ZDTEsyX0FDTEtfRElWMjU2ICAgKEJURElWKQorI2RlZmluZSBCVF9mQ0xLMl9NQ0xLICAgICAgICAgIChCVFNTRUwpCisKKy8qIEludGVycnVwdCBpbnRlcnZhbCB0aW1lIGZJTlQgY29kZWQgd2l0aCBCaXRzIDAtMiBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjoyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY0ICAgICAgICAgIChCVElQMCkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjggICAgICAgICAgKEJUSVAxKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjggKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMTYgICAgICAgICAoQlRJUDErQlRJUDApICAvKiBmSU5UID0gZkNMSzI6MTYgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMzIgICAgICAgICAoQlRJUDIpICAgICAgICAvKiBmSU5UID0gZkNMSzI6MzIgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNjQgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiBmSU5UID0gZkNMSzI6NjQgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMTI4ICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiBmSU5UID0gZkNMSzI6MTI4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjI1NiAgICAgKEJUSVAyK0JUSVAxK0JUSVAwKSAgICAgICAvKiBmSU5UID0gZkNMSzI6MjU2ICovCisvKiBGcmVxdWVuY3kgb2YgTENEIGNvZGVkIHdpdGggQml0cyAzLTQgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYzMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmTENEID0gZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWNjQgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkxDRCA9IGZBQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMTI4ICAgICAgICAgKEJURlJGUTEpICAgICAgLyogZkxDRCA9IGZBQ0xLOjEyOCAqLworI2RlZmluZSBCVF9mTENEX0RJVjI1NiAgICAgIChCVEZSRlExK0JURlJGUTApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9ZkFDTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8xSyAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmQUNMSzozMiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkxDRF81MTIgICAgICAgICAgICAoQlRGUkZRMCkgICAgICAvKiBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEXzI1NiAgICAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZBQ0xLOjEyOCAqLworI2RlZmluZSBCVF9mTENEXzEyOCAgICAgICAgIChCVEZSRlExK0JURlJGUTApICAgICAgICAgLyogZkFDTEs6MjU2ICovCisvKiBMQ0QgZnJlcXVlbmN5IHZhbHVlcyB3aXRoIGZCVD1mTUNMSyAqLworI2RlZmluZSBCVF9mTENEXzMxSyAgICAgICAgICAgIChCVFNTRUwpICAgICAgIC8qIGZNQ0xLOjMyICovCisjZGVmaW5lIEJUX2ZMQ0RfMTVfNUsgICAgICAgKEJUU1NFTCtCVEZSRlEwKSAgICAgICAgICAvKiBmTUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEXzdfOEsgICAgICAgIChCVFNTRUwrQlRGUkZRMStCVEZSRlEwKSAgLyogZk1DTEs6MjU2ICovCisvKiB3aXRoIGFzc3VtZWQgdmx1ZXMgb2YgZkFDTEs9MzJLSHosIGZNQ0xLPTFNSHogKi8KKy8qIGZCVD1mQUNMSyBpcyB0aG91Z2h0IGZvciBsb25nZXIgaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzA2NCAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAwLjA2NG1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9BRExZXzBfMTI1ICAgICAgICAgIChCVElQMCkgICAgICAgIC8qIDAuMTI1bXMgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzBfMjUgICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIDAuMjVtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzBfNSAgICAgICAgICAgIChCVElQMStCVElQMCkgIC8qIDAuNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEgICAgICAgICAgICAgIChCVElQMikgICAgICAgIC8qIDFtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIgICAgICAgICAgICAgIChCVElQMitCVElQMCkgIC8qIDJtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzQgICAgICAgICAgICAgIChCVElQMitCVElQMSkgIC8qIDRtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzggICAgICAgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogOG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTYgICAgICAgICAgICAgKEJURElWKSAgICAgICAgLyogMTZtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMzIgICAgICAgICAgICAgKEJURElWK0JUSVAwKSAgLyogMzJtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNjQgICAgICAgICAgICAgKEJURElWK0JUSVAxKSAgLyogNjRtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTI1ICAgICAgICAgKEJURElWK0JUSVAxK0JUSVAwKSAgICAgICAvKiAxMjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yNTAgICAgICAgICAgICAoQlRESVYrQlRJUDIpICAvKiAyNTBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV81MDAgICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDApICAgICAgIC8qIDUwMG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMSkgICAgICAgLyogMTAwMG1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxK0JUSVAwKSAvKiAyMDAwbXMgICAgICIgKi8KKy8qIGZDTEsyPWZNQ0xLICgxTUh6KSBpcyB0aG91Z2h0IGZvciBzaG9ydCBpbnRlcnZhbCB0aW1lcyAqLworLyogdGhlIHRpbWluZyBmb3Igc2hvcnQgaW50ZXJ2YWxzIGlzIG1vcmUgcHJlY2lzZSB0aGFuIEFDTEsgKi8KKy8qIE5PVEUgKi8KKy8qIEJlIHN1cmUgdGhhdCB0aGUgU0NGUUNUTC1SZWdpc3RlciBpcyBzZXQgdG8gMDFGaCBzbyB0aGF0IGZNQ0xLPTFNSHogKi8KKy8qIFRvbyBsb3cgaW50ZXJ2YWwgdGltZSByZXN1bHRzIGluIGludGVycnVwdHMgdG9vIGZyZXF1ZW50IGZvciB0aGUgcHJvY2Vzc29yIHRvIGhhbmRsZSEgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwMiAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiAwLjAwMm1zIGludGVydmFsICAgICAgICoqKiBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9NRExZXzBfMDA0ICAgICAgICAgIChCVFNTRUwrQlRJUDApIC8qIDAuMDA0bXMgICAgIiAgICAgICAgICAgKioqIHRvbyBzaG9ydCBmb3IgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwOCAgICAgICAgICAoQlRTU0VMK0JUSVAxKSAvKiAwLjAwOG1zICAgICIgICAgICAgICAgICoqKiBpbnRlcnJ1cHQgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAxNiAgICAgICAoQlRTU0VMK0JUSVAxK0JUSVAwKSAgICAgIC8qIDAuMDE2bXMgICAgIiAgICAgICAgICAgKioqIGhhbmRsaW5nICovCisjZGVmaW5lIEJUX01ETFlfMF8wMzIgICAgICAgICAgKEJUU1NFTCtCVElQMikgLyogMC4wMzJtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8wNjQgICAgICAgKEJUU1NFTCtCVElQMitCVElQMCkgICAgICAvKiAwLjA2NG1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzEyNSAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxKSAgICAgIC8qIDAuMTI1bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMjUgICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDErQlRJUDApLyogMC4yNW1zICAgICAiICovCisKKy8qIFJlc2V0L0hvbGQgY29kZWQgd2l0aCBCaXRzIDYtNyBpbiBCVCgxKUNUTCAqLworLyogdGhpcyBpcyBmb3IgQlQgKi8KKy8vI2RlZmluZSBCVFJFU0VUX0NOVDEgICAgICAgIChCVFJFU0VUKSAgICAgICAgICAgLyogQlRDTlQxIGlzIHJlc2V0IHdoaWxlIEJUUkVTRVQgaXMgc2V0ICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxXzIgICAgICAoQlRSRVNFVCtCVERJVikgICAgIC8qIEJUQ05UMSAuQU5ELiBCVENOVDIgYXJlIHJlc2V0IHdoaWxlIH4gaXMgc2V0ICovCisvKiB0aGlzIGlzIGZvciBCVDEgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDEgICAgICAgICAgICAoQlRIT0xEKSAgICAgICAvKiBCVENOVDEgaXMgaGVsZCB3aGlsZSBCVEhPTEQgaXMgc2V0ICovCisjZGVmaW5lIEJUSE9MRF9DTlQxXzIgICAgICAgICAgKEJUSE9MRCtCVERJVikgLyogQlQxQ05UMSAuQU5ELiBCVDFDTlQyIGFyZSBoZWxkIHdoaWxlIH4gaXMgc2V0ICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MIEJJVFMgKi8KKy8qICNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAweDgwICovCisvKiAjZGVmaW5lIEJUSUZHICAgICAgICAgICAgICAgMHg4MCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNZU1RFTSBDTE9DSywgRkxMKyAoeDQxeCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMTFBMVVNfU01BTExfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNDRkkwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMCAqLworI2RlZmluZSBGTl8yICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDEuNC0xMk1IeiovCisjZGVmaW5lIEZOXzMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMi4yLTE3TWh6Ki8KKyNkZWZpbmUgRk5fNCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBmRENPQ0xLID0gICAzLjItMjVNaHoqLworI2RlZmluZSBGTl84ICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgICAgNS00ME1oeiovCisjZGVmaW5lIEZMTEQwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDAgKi8KKyNkZWZpbmUgRkxMRDEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMSAqLworCisjZGVmaW5lIEZMTERfMSAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSAxICovCisjZGVmaW5lIEZMTERfMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSAyICovCisjZGVmaW5lIEZMTERfNCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSA0ICovCisjZGVmaW5lIEZMTERfOCAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSA4ICovCisKK1NGUl84QklUKFNDRkkxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMSAqLworU0ZSXzhCSVQoU0NGUUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworLyogU3lzdGVtIGNsb2NrIGZyZXF1ZW5jeSB2YWx1ZXMgZk1DTEsgY29kZWQgd2l0aCBCaXRzIDAtNiBpbiBTQ0ZRQ1RMICovCisvKiAjZGVmaW5lIFNDRlFfMzJLICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgIGZNQ0xLPTEqZkFDTEsgICAgICAgb25seSBhIHJhbmdlIGZyb20gKi8KKyNkZWZpbmUgU0NGUV82NEsgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBmTUNMSz0yKmZBQ0xLICAgICAgICAgIDErMSB0byAxMjcrMSBpcyBwb3NzaWJsZSAqLworI2RlZmluZSBTQ0ZRXzEyOEsgICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIGZNQ0xLPTQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8yNTZLICAgICAgICAgICAgICAoMHgwNykgICAgICAgICAvKiBmTUNMSz04KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNTEySyAgICAgICAgICAgICAgKDB4MEYpICAgICAgICAgLyogZk1DTEs9MTYqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8xTSAgICAgICAgICAgICAgICAoMHgxRikgICAgICAgICAvKiBmTUNMSz0zMipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzJNICAgICAgICAgICAgICAgICgweDNGKSAgICAgICAgIC8qIGZNQ0xLPTY0KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNE0gICAgICAgICAgICAgICAgKDB4N0YpICAgICAgICAgLyogZk1DTEs9MTI4KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfTSAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kdWxhdGlvbiBEaXNhYmxlICovCisKK1NGUl84QklUKEZMTF9DVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEwrIENvbnRyb2wgMCAqLworI2RlZmluZSBEQ09GICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIERDTyBGYXVsdCBGbGFnICovCisjZGVmaW5lIExGT0YgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTG93IEZyZXF1ZW5jeSBPc2NpbGxhdG9yIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgWFQxT0YgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgT1NDQ0FQMCAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMCAqLworI2RlZmluZSBPU0NDQVAxICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAxICovCisjZGVmaW5lIFhUU19GTEwgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogMTogU2VsZWN0cyBoaWdoLWZyZXEuIG9zY2lsbGF0b3IgKi8KKyNkZWZpbmUgRENPUExVUyAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBEQ08rIEVuYWJsZSAqLworCisjZGVmaW5lIFhDQVAwUEYgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMHBmICovCisjZGVmaW5lIFhDQVAxMFBGICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTBwZiAqLworI2RlZmluZSBYQ0FQMTRQRiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE0cGYgKi8KKyNkZWZpbmUgWENBUDE4UEYgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxOHBmICovCisjZGVmaW5lIE9TQ0NBUF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMHBmICovCisjZGVmaW5lIE9TQ0NBUF8xICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTBwZiAqLworI2RlZmluZSBPU0NDQVBfMiAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE0cGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzMgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxOHBmICovCisKK1NGUl84QklUKEZMTF9DVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEwrIENvbnRyb2wgMSAqLworI2RlZmluZSBGTExfRElWMCAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyAwICovCisjZGVmaW5lIEZMTF9ESVYxICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIDEgKi8KKworI2RlZmluZSBGTExfRElWXzEgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSAxICovCisjZGVmaW5lIEZMTF9ESVZfMiAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDIgKi8KKyNkZWZpbmUgRkxMX0RJVl80ICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgNCAqLworI2RlZmluZSBGTExfRElWXzggICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA4ICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MIEJJVFMgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgIDB4MDIgKi8KKy8qICNkZWZpbmUgT0ZJRSAgICAgICAgICAgICAgICAweDAyICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQnJvd24tT3V0LCBTdXBwbHkgVm9sdGFnZSBTdXBlcnZpc2lvbiAoU1ZTKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfU1ZTX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU1ZTQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNWUyBDb250cm9sICovCisjZGVmaW5lIFNWU0ZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogU1ZTIEZsYWcgKi8KKyNkZWZpbmUgU1ZTT1AgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVlMgb3V0cHV0IChyZWFkIG9ubHkpICovCisjZGVmaW5lIFNWU09OICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3dpdGNoZXMgdGhlIFNWUyBvbi9vZmYgKi8KKyNkZWZpbmUgUE9ST04gICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBFbmFibGUgUE9SIEdlbmVyYXRpb24gaWYgTG93IFZvbHRhZ2UgKi8KKyNkZWZpbmUgVkxEMCAgICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxEMSAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgVkxEMiAgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVkxEMyAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworI2RlZmluZSBWTERPTiAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTERPRkYgICAgICAgICAgICAgICAgICgweDAwKQorI2RlZmluZSBWTERfMV84ViAgICAgICAgICAgICAgICgweDEwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIExDRAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTENENF9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoTENEQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBDb250cm9sICovCisvKiB0aGUgbmFtZXMgb2YgdGhlIG1vZGUgYml0cyBhcmUgZGlmZmVyZW50IGZyb20gdGhlIHNwZWMgKi8KKyNkZWZpbmUgTENET04gICAgICAgICAgICAgICAgICAoMHgwMSkKKy8vI2RlZmluZSBMQ0RMT1dSICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBMQ0RTT04gICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBMQ0RNWDAgICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBMQ0RNWDEgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBMQ0RQMCAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBMQ0RQMSAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBMQ0RQMiAgICAgICAgICAgICAgICAgICgweDgwKQorLyogRGlzcGxheSBtb2RlcyBjb2RlZCB3aXRoIEJpdHMgMi00ICovCisjZGVmaW5lIExDRFNUQVRJQyAgICAgICAgICAgICAgKExDRFNPTikKKyNkZWZpbmUgTENEMk1VWCAgICAgICAgICAgICAgICAoTENETVgwK0xDRFNPTikKKyNkZWZpbmUgTENEM01VWCAgICAgICAgICAgICAgICAoTENETVgxK0xDRFNPTikKKyNkZWZpbmUgTENENE1VWCAgICAgICAgICAgICAgICAoTENETVgxK0xDRE1YMCtMQ0RTT04pCisvKiBHcm91cCBzZWxlY3QgY29kZSB3aXRoIEJpdHMgNS03ICAgICAgICAgICAgICAgICAgICAgU2VnLmxpbmVzICAgRGlnLm91dHB1dCAqLworI2RlZmluZSBMQ0RTRzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIC0tLS0tLS0tLSAgIFBvcnQgT25seSAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgTENEU0cwXzEgICAgICAgICAgICAgICAoTENEUDApICAgICAgICAvKiBTMCAgLSBTMTUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF8yICAgICAgICAgICAgICAgKExDRFAxKSAgICAgICAgLyogUzAgIC0gUzE5ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfMyAgICAgICAgICAgICAgIChMQ0RQMStMQ0RQMCkgIC8qIFMwICAtIFMyMyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzQgICAgICAgICAgICAgICAoTENEUDIpICAgICAgICAvKiBTMCAgLSBTMjcgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF81ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAwKSAgLyogUzAgIC0gUzMxICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNiAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMSkgIC8qIFMwICAtIFMzNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzcgICAgICAgICAgICAoTENEUDIrTENEUDErTENEUDApICAgICAgIC8qIFMwICAtIFMzOSAgIHNlZSBEYXRhc2hlZXQgKi8KKy8qIE5PVEU6IFlPVSBDQU4gT05MWSBVU0UgVEhFICdTJyBPUiAnRycgREVDTEFSQVRJT05TIEZPUiBBIENPTU1BTkQgKi8KKy8qIE1PViAgI0xDRFNHMF8zK0xDRE9HMl83LCZMQ0RDVEwgQUNUVUFMWSBNRUFOUyBNT1YgICNMQ0RQMSwmTENEQ1RMISAqLworI2RlZmluZSBMQ0RPRzFfNyAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIC0tLS0tLS0tLSAgIFBvcnQgT25seSAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgTENET0cyXzcgICAgICAgICAgICAgICAoTENEUDApICAgICAgICAvKiBTMCAgLSBTMTUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HM183ICAgICAgICAgICAgICAgKExDRFAxKSAgICAgICAgLyogUzAgIC0gUzE5ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzRfNyAgICAgICAgICAgICAgIChMQ0RQMStMQ0RQMCkgIC8qIFMwICAtIFMyMyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c1XzcgICAgICAgICAgICAgICAoTENEUDIpICAgICAgICAvKiBTMCAgLSBTMjcgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNl83ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAwKSAgLyogUzAgIC0gUzMxICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzcgICAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMSkgIC8qIFMwICAtIFMzNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0dPRkYgICAgICAgICAgICAoTENEUDIrTENEUDErTENEUDApICAgICAgIC8qIFMwICAtIFMzOSAgIHNlZSBEYXRhc2hlZXQgKi8KKworI2RlZmluZSBMQ0RNRU1fICAgICAgICAgICAgICAgICgweDAwOTEpICAgICAgIC8qIExDRCBNZW1vcnkgKi8KKyNpZmRlZiBfX0FTTV9IRUFERVJfXworI2RlZmluZSBMQ0RNRU0gICAgICAgICAgICAgICAgIChMQ0RNRU1fKSAgICAgIC8qIExDRCBNZW1vcnkgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBMQ0RNRU0gICAgICAgICAgICAgICAgICgoY2hhciopICAgICAgIExDRE1FTV8pIC8qIExDRCBNZW1vcnkgKGZvciBDKSAqLworI2VuZGlmCitTRlJfOEJJVChMQ0RNMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxICovCitTRlJfOEJJVChMQ0RNMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAyICovCitTRlJfOEJJVChMQ0RNMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAzICovCitTRlJfOEJJVChMQ0RNNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA0ICovCitTRlJfOEJJVChMQ0RNNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA1ICovCitTRlJfOEJJVChMQ0RNNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA2ICovCitTRlJfOEJJVChMQ0RNNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA3ICovCitTRlJfOEJJVChMQ0RNOCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA4ICovCitTRlJfOEJJVChMQ0RNOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSA5ICovCitTRlJfOEJJVChMQ0RNMTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMCAqLworU0ZSXzhCSVQoTENETTExKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTEgKi8KK1NGUl84QklUKExDRE0xMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEyICovCitTRlJfOEJJVChMQ0RNMTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMyAqLworU0ZSXzhCSVQoTENETTE0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTQgKi8KK1NGUl84QklUKExDRE0xNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE1ICovCitTRlJfOEJJVChMQ0RNMTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNiAqLworU0ZSXzhCSVQoTENETTE3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTcgKi8KK1NGUl84QklUKExDRE0xOCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE4ICovCitTRlJfOEJJVChMQ0RNMTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxOSAqLworU0ZSXzhCSVQoTENETTIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMjAgKi8KKworI2RlZmluZSBMQ0RNQSAgICAgICAgICAgICAgICAgIChMQ0RNMTApICAgICAgIC8qIExDRCBNZW1vcnkgQSAqLworI2RlZmluZSBMQ0RNQiAgICAgICAgICAgICAgICAgIChMQ0RNMTEpICAgICAgIC8qIExDRCBNZW1vcnkgQiAqLworI2RlZmluZSBMQ0RNQyAgICAgICAgICAgICAgICAgIChMQ0RNMTIpICAgICAgIC8qIExDRCBNZW1vcnkgQyAqLworI2RlZmluZSBMQ0RNRCAgICAgICAgICAgICAgICAgIChMQ0RNMTMpICAgICAgIC8qIExDRCBNZW1vcnkgRCAqLworI2RlZmluZSBMQ0RNRSAgICAgICAgICAgICAgICAgIChMQ0RNMTQpICAgICAgIC8qIExDRCBNZW1vcnkgRSAqLworI2RlZmluZSBMQ0RNRiAgICAgICAgICAgICAgICAgIChMQ0RNMTUpICAgICAgIC8qIExDRCBNZW1vcnkgRiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQVJUCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFV4Q1RMICovCisjZGVmaW5lIFBFTkEgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogUGFyaXR5IGVuYWJsZSAqLworI2RlZmluZSBQRVYgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBTUEIgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFN0b3AgQml0cyAwOm9uZSAvIDE6IHR3byAqLworI2RlZmluZSBDSEFSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIERhdGEgMDo3LWJpdHMgLyAxOjgtYml0cyAqLworI2RlZmluZSBMSVNURU4gICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFNZTkMgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVUFSVCAvIFNQSSBtb2RlICovCisjZGVmaW5lIE1NICAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTWFzdGVyIE1vZGUgb2ZmL29uICovCisjZGVmaW5lIFNXUlNUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNBUlQgU29mdHdhcmUgUmVzZXQgKi8KKworLyogVXhUQ1RMICovCisjZGVmaW5lIENLUEggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU1BJOiBDbG9jayBQaGFzZSAqLworI2RlZmluZSBDS1BMICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENsb2NrIFBvbGFyaXR5ICovCisjZGVmaW5lIFNTRUwxICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFNTRUwwICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFVSWFNFICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUmVjZWl2ZSBTdGFydCBlZGdlIHNlbGVjdCAqLworI2RlZmluZSBUWFdBS0UgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFRYIFdha2UgdXAgbW9kZSAqLworI2RlZmluZSBTVEMgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNQSTogU1RDIGVuYWJsZSAwOm9uIC8gMTpvZmYgKi8KKyNkZWZpbmUgVFhFUFQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBUWCBCdWZmZXIgZW1wdHkgKi8KKworLyogVXhSQ1RMICovCisjZGVmaW5lIEZFICAgICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRnJhbWUgRXJyb3IgKi8KKyNkZWZpbmUgUEUgICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQYXJpdHkgRXJyb3IgKi8KKyNkZWZpbmUgT0UgICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPdmVycnVuIEVycm9yICovCisjZGVmaW5lIEJSSyAgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgZGV0ZWN0ZWQgKi8KKyNkZWZpbmUgVVJYRUlFICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVSWFdJRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUlggV2FrZSB1cCBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFJYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogUlggV2FrZSB1cCBkZXRlY3QgKi8KKyNkZWZpbmUgUlhFUlIgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBSWCBFcnJvciBFcnJvciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQVJUIDAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1VBUlQwX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFUwQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KK1NGUl84QklUKFUwVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFUwUkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBNQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworU0ZSXzhCSVQoVTBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KK1NGUl84QklUKFUwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisKKyNkZWZpbmUgVUNUTDAgICAgICAgICAgICAgICAgICBVMENUTCAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVEwwICAgICAgICAgICAgICAgICBVMFRDVEwgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVEwwICAgICAgICAgICAgICAgICBVMFJDVEwgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTDAgICAgICAgICAgICAgICAgIFUwTUNUTCAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjAwICAgICAgICAgICAgICAgICAgVTBCUjAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxMCAgICAgICAgICAgICAgICAgIFUwQlIxICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUYwICAgICAgICAgICAgICAgICBVMFJYQlVGICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGMCAgICAgICAgICAgICAgICAgVTBUWEJVRiAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTDBfICAgICAgICAgICAgICAgICBVMENUTF8gICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVEwwXyAgICAgICAgICAgICAgICBVMFRDVExfICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVEwwXyAgICAgICAgICAgICAgICBVMFJDVExfICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTDBfICAgICAgICAgICAgICAgIFUwTUNUTF8gICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjAwXyAgICAgICAgICAgICAgICAgVTBCUjBfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxMF8gICAgICAgICAgICAgICAgIFUwQlIxXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUYwXyAgICAgICAgICAgICAgICBVMFJYQlVGXyAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGMF8gICAgICAgICAgICAgICAgVTBUWEJVRl8gICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTF8wICAgICAgICAgICAgICAgICBVMENUTCAgICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVExfMCAgICAgICAgICAgICAgICBVMFRDVEwgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVExfMCAgICAgICAgICAgICAgICBVMFJDVEwgICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTF8wICAgICAgICAgICAgICAgIFUwTUNUTCAgICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjBfMCAgICAgICAgICAgICAgICAgVTBCUjAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxXzAgICAgICAgICAgICAgICAgIFUwQlIxICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUZfMCAgICAgICAgICAgICAgICBVMFJYQlVGICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGXzAgICAgICAgICAgICAgICAgVTBUWEJVRiAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKyNkZWZpbmUgVUNUTF8wXyAgICAgICAgICAgICAgICBVMENUTF8gICAgICAgICAvKiBVU0FSVCAwIENvbnRyb2wgKi8KKyNkZWZpbmUgVVRDVExfMF8gICAgICAgICAgICAgICBVMFRDVExfICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IENvbnRyb2wgKi8KKyNkZWZpbmUgVVJDVExfMF8gICAgICAgICAgICAgICBVMFJDVExfICAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQ29udHJvbCAqLworI2RlZmluZSBVTUNUTF8wXyAgICAgICAgICAgICAgIFUwTUNUTF8gICAgICAgIC8qIFVTQVJUIDAgTW9kdWxhdGlvbiBDb250cm9sICovCisjZGVmaW5lIFVCUjBfMF8gICAgICAgICAgICAgICAgVTBCUjBfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMCAqLworI2RlZmluZSBVQlIxXzBfICAgICAgICAgICAgICAgIFUwQlIxXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDEgKi8KKyNkZWZpbmUgUlhCVUZfMF8gICAgICAgICAgICAgICBVMFJYQlVGXyAgICAgICAvKiBVU0FSVCAwIFJlY2VpdmUgQnVmZmVyICovCisjZGVmaW5lIFRYQlVGXzBfICAgICAgICAgICAgICAgVTBUWEJVRl8gICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBCdWZmZXIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSEFSRFdBUkUgTVVMVElQTElFUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTVBZX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKE1QWSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1QWVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUNTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQgYW5kIEFjY3VtdWxhdGUvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoT1AyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT3BlcmFuZCAyICovCitTRlJfMTZCSVQoUkVTTE8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IExvdyBXb3JkICovCitTRlJfMTZCSVQoUkVTSEkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IEhpZ2ggV29yZCAqLworU0ZSXzE2QklUKFNVTUVYVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN1bSBFeHRlbmQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTRDE2IC0gU2lnbWEgRGVsdGEgMTYgQml0CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19TRDE2XzNfXyAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTRDE2SU5DVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnB1dCBDb250cm9sIFJlZ2lzdGVyIENoYW5uZWwgMCAqLworU0ZSXzhCSVQoU0QxNklOQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW5wdXQgQ29udHJvbCBSZWdpc3RlciBDaGFubmVsIDEgKi8KK1NGUl84QklUKFNEMTZJTkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAyICovCitTRlJfOEJJVChTRDE2UFJFMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBQcmVsb2FkIFJlZ2lzdGVyIENoYW5uZWwgMCAqLworU0ZSXzhCSVQoU0QxNlBSRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgUHJlbG9hZCBSZWdpc3RlciBDaGFubmVsIDEgKi8KK1NGUl84QklUKFNEMTZQUkUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IFByZWxvYWQgUmVnaXN0ZXIgQ2hhbm5lbCAyICovCitTRlJfOEJJVChTRDE2Q09ORjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcm5hbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFNEMTZDT05GMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVybmFsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQbGVhc2UgdXNlIG9ubHkgdGhlIHJlY29tbWVuZGVkIHNldHRpbmdzICovCisKK1NGUl8xNkJJVChTRDE2Q1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTaWdtYSBEZWx0YSBBREMgMTYgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAwIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2Q0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMSBDb250cm9sIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDIgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IFZlY3RvciBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZNRU0wKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAwIENvbnZlcnNpb24gTWVtb3J5ICovCitTRlJfMTZCSVQoU0QxNk1FTTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDEgQ29udmVyc2lvbiBNZW1vcnkgKi8KK1NGUl8xNkJJVChTRDE2TUVNMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMiBDb252ZXJzaW9uIE1lbW9yeSAqLworCisvKiBTRDE2SU5DVEx4IC0gQUZFSU5DVEx4ICovCisjZGVmaW5lIFNEMTZJTkNIMCAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZJTkNIMSAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZJTkNIMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAyICovCisjZGVmaW5lIFNEMTZHQUlOMCAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNkdBSU4xICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgMSAqLworI2RlZmluZSBTRDE2R0FJTjIgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAyICovCisjZGVmaW5lIFNEMTZJTlRETFkwICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXkgYWZ0ZXIgMS5Db252ZXJzaW9uIDAgKi8KKyNkZWZpbmUgU0QxNklOVERMWTEgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheSBhZnRlciAxLkNvbnZlcnNpb24gMSAqLworCisjZGVmaW5lIFNEMTZHQUlOXzEgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICoxICAqLworI2RlZmluZSBTRDE2R0FJTl8yICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMiAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fNCAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjQgICovCisjZGVmaW5lIFNEMTZHQUlOXzggICAgICAgICAgICAgKDB4MDAxOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICo4ICAqLworI2RlZmluZSBTRDE2R0FJTl8xNiAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMTYgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMzIgICAgICAgICAgICAoMHgwMDI4KSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjMyICovCisKKyNkZWZpbmUgU0QxNklOQ0hfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzEgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF8yICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfMyAgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzQgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF81ICAgICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNiAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IFRlbXAgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNyAgICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IE9mZnNldCAqLworCisjZGVmaW5lIFNEMTZJTlRETFlfMCAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgNC5Db252ZXJzaW9uICAqLworI2RlZmluZSBTRDE2SU5URExZXzEgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDMuQ29udmVyc2lvbiAgKi8KKyNkZWZpbmUgU0QxNklOVERMWV8yICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheTogSW50LiBhZnRlciAyLkNvbnZlcnNpb24gICovCisjZGVmaW5lIFNEMTZJTlRETFlfMyAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgMS5Db252ZXJzaW9uICAqLworCisvKiBTRDE2Q1RMIC0gQUZFQ1RMICovCisjZGVmaW5lIFNEMTZPVklFICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBPdmVyZmxvdyBJbnRlcnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgU0QxNlJFRk9OICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IFN3aXRjaCBpbnRlcm5hbCBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgU0QxNlZNSURPTiAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IFN3aXRjaCBWbWlkIEJ1ZmZlciBvbiAqLworI2RlZmluZSBTRDE2U1NFTDAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZTU0VMMSAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkRJVjAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNkRJVjEgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkxQICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTRDE2IExvdyBQb3dlciBNb2RlIEVuYWJsZSAqLworCisjZGVmaW5lIFNEMTZESVZfMCAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvMSAqLworI2RlZmluZSBTRDE2RElWXzEgICAgICAgICAgICAgIChTRDE2RElWMCkgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzIgKi8KKyNkZWZpbmUgU0QxNkRJVl8yICAgICAgICAgICAgICAoU0QxNkRJVjEpICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC80ICovCisjZGVmaW5lIFNEMTZESVZfMyAgICAgICAgICAgIChTRDE2RElWMCtTRDE2RElWMSkgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvOCAqLworCisjZGVmaW5lIFNEMTZTU0VMXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IE1DTEsgICovCisjZGVmaW5lIFNEMTZTU0VMXzEgICAgICAgICAgICAgKFNEMTZTU0VMMCkgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IFNNQ0xLICovCisjZGVmaW5lIFNEMTZTU0VMXzIgICAgICAgICAgICAgKFNEMTZTU0VMMSkgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IEFDTEsgICovCisjZGVmaW5lIFNEMTZTU0VMXzMgICAgICAgICAgIChTRDE2U1NFTDArU0QxNlNTRUwxKSAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IFRBQ0xLICovCisKKy8qIFNEMTZDQ1RMeCAtIEFGRUNDVEx4ICovCisjZGVmaW5lIFNEMTZHUlAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBHcm91cGluZyBvZiBDaGFubmVsczogMDpPZmYvMTpPbiAqLworI2RlZmluZSBTRDE2U0MgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBTRDE2SUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFNEMTZJRSAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBTRDE2REYgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IERhdGEgRm9ybWF0OiAwOlVuaXBvbGFyLzE6Qmlwb2xhciAqLworI2RlZmluZSBTRDE2T1ZJRkcgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJmbG93IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFNEMTZMU0JBQ0MgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggQWNjZXNzIExTQiBvZiBBREMgKi8KKyNkZWZpbmUgU0QxNkxTQlRPRyAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBUb2dnbGUgTFNCIE91dHB1dCBvZiBBREMgKi8KKyNkZWZpbmUgU0QxNk9TUjAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMCAqLworI2RlZmluZSBTRDE2T1NSMSAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAxICovCisjZGVmaW5lIFNEMTZTTkdMICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggU2luZ2xlIENvbnZlcnNpb24gT24vT2ZmICovCisKKyNkZWZpbmUgU0QxNk9TUl8yNTYgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMjU2ICovCisjZGVmaW5lIFNEMTZPU1JfMTI4ICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDEyOCAqLworI2RlZmluZSBTRDE2T1NSXzY0ICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAgNjQgKi8KKyNkZWZpbmUgU0QxNk9TUl8zMiAgICAgICAgICAgICAoMHgwMzAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gIDMyICovCisKKy8qIFNEMTZJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBTRDE2SVZfTk9ORSAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFNEMTZJVl9TRDE2T1ZJRkcgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNk9WSUZHICovCisjZGVmaW5lIFNEMTZJVl9TRDE2TUVNMCAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNk1FTTAgU0QxNklGRyAqLworI2RlZmluZSBTRDE2SVZfU0QxNk1FTTEgICAgICAgICgweDAwMDYpICAgICAgIC8qIFNEMTZNRU0xIFNEMTZJRkcgKi8KKyNkZWZpbmUgU0QxNklWX1NEMTZNRU0yICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2TUVNMiBTRDE2SUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRVNQNDMwRQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRVNQNDMwRV9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworI2RlZmluZSBBRkVJTkNUTDAgICAgICAgICAgICAgIFNEMTZJTkNUTDAgICAgIC8qIEFGRSBJbnB1dCBDb250cm9sIFJlZ2lzdGVyIENoYW5uZWwgMCAqLworI2RlZmluZSBBRkVJTkNUTDEgICAgICAgICAgICAgIFNEMTZJTkNUTDEgICAgIC8qIEFGRSBJbnB1dCBDb250cm9sIFJlZ2lzdGVyIENoYW5uZWwgMSAqLworI2RlZmluZSBBRkVJTkNUTDIgICAgICAgICAgICAgIFNEMTZJTkNUTDIgICAgIC8qIEFGRSBJbnB1dCBDb250cm9sIFJlZ2lzdGVyIENoYW5uZWwgMiAqLworI2RlZmluZSBBRkVDVEwgICAgICAgICAgICAgICAgIFNEMTZDVEwgICAgICAgIC8qIEFuYWxvZyBGcm9udCBFbmQgQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBBRkVDQ1RMMCAgICAgICAgICAgICAgIFNEMTZDQ1RMMCAgICAgIC8qIEFGRSBDaGFubmVsIDAgQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBBRkVDQ1RMMSAgICAgICAgICAgICAgIFNEMTZDQ1RMMSAgICAgIC8qIEFGRSBDaGFubmVsIDEgQ29udHJvbCBSZWdpc3RlciAqLworI2RlZmluZSBBRkVDQ1RMMiAgICAgICAgICAgICAgIFNEMTZDQ1RMMiAgICAgIC8qIEFGRSBDaGFubmVsIDIgQ29udHJvbCBSZWdpc3RlciAqLworCitTRlJfMTZCSVQoRVNQQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChNQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNYWlsYm94IENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChNQklOMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbmNvbWluZyBNYWlsYm94IDAgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChNQklOMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbmNvbWluZyBNYWlsYm94IDEgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChNQk9VVDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPdXRnb2luZyBNYWlsYm94IDAgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChNQk9VVDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPdXRnb2luZyBNYWlsYm94IDEgUmVnaXN0ZXIgKi8KKworU0ZSXzE2QklUKEVTUDQzMF9TVEFUMCk7ICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMCAqLworU0ZSXzE2QklUKEVTUDQzMF9TVEFUMSk7ICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMSAqLworU0ZSXzE2QklUKFdBVkVGU1YxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMiAqLworU0ZSXzE2QklUKFJFVDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMyAqLworU0ZSXzE2QklUKFJFVDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgNCAqLworU0ZSXzE2QklUKFdBVkVGU0kxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgNSAqLworU0ZSXzE2QklUKFdBVkVGU0kyKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgNiAqLworU0ZSXzE2QklUKFJFVDcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgNyAqLworU0ZSXzE2QklUKEFDVEVORVJHWTFfTE8pOyAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgOCAqLworU0ZSXzE2QklUKEFDVEVORVJHWTFfSEkpOyAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgOSAqLworU0ZSXzE2QklUKEFDVEVORVJHWTJfTE8pOyAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMTAgKi8KK1NGUl8xNkJJVChBQ1RFTkVSR1kyX0hJKTsgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDExICovCitTRlJfMTZCSVQoUkVBQ1RFTkVSR1lfTE8pOyAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxMiAqLworU0ZSXzE2QklUKFJFQUNURU5FUkdZX0hJKTsgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMTMgKi8KK1NGUl8xNkJJVChBUFBFTkVSR1lfTE8pOyAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDE0ICovCitTRlJfMTZCSVQoQVBQRU5FUkdZX0hJKTsgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxNSAqLworU0ZSXzE2QklUKEFDVEVOU1BFUjFfTE8pOyAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMTYgKi8KK1NGUl8xNkJJVChBQ1RFTlNQRVIxX0hJKTsgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDE3ICovCitTRlJfMTZCSVQoQUNURU5TUEVSMl9MTyk7ICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxOCAqLworU0ZSXzE2QklUKEFDVEVOU1BFUjJfSEkpOyAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMTkgKi8KK1NGUl8xNkJJVChQT1dFUkZDVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDIwICovCitTRlJfMTZCSVQoQ0FQSU5EKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyMSAqLworU0ZSXzE2QklUKE1BSU5TUEVSSU9EKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMjIgKi8KK1NGUl8xNkJJVChWMVJNUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDIzICovCitTRlJfMTZCSVQoSVJNU19MTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyNCAqLworU0ZSXzE2QklUKElSTVNfSEkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMjUgKi8KK1NGUl8xNkJJVChWUEVBSyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDI2ICovCitTRlJfMTZCSVQoSVBFQUspOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyNyAqLworU0ZSXzE2QklUKExJTkVDWUNMQ05UX0xPKTsgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMjggKi8KK1NGUl8xNkJJVChMSU5FQ1lDTENOVF9ISSk7ICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDI5ICovCitTRlJfMTZCSVQoTk1CTUVBU19MTyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAzMCAqLworU0ZSXzE2QklUKE5NQk1FQVNfSEkpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMzEgKi8KKworI2RlZmluZSBSRVQwICAgICAgICAgICAgICAgICAgIEVTUDQzMF9TVEFUMCAgIC8qIFNUQVRVUzAgb2YgRVNQNDMwICovCisjZGVmaW5lIFJFVDEgICAgICAgICAgICAgICAgICAgRVNQNDMwX1NUQVQxICAgLyogU1RBVFVTMSBvZiBFU1A0MzAgKi8KKyNkZWZpbmUgUkVUMiAgICAgICAgICAgICAgICAgICBXQVZFRlNWMSAgICAgICAvKiBXYXZlZm9ybSBTYW1wbGUgVjEgb2Zmc2V0IGNvcnJlY3RlZCovCisjZGVmaW5lIFJFVDUgICAgICAgICAgICAgICAgICAgV0FWRUZTSTEgICAgICAgLyogV2F2ZWZvcm0gU2FtcGxlIEkxIG9mZnNldCBjb3JyZWN0ZWQqLworI2RlZmluZSBSRVQ2ICAgICAgICAgICAgICAgICAgIFdBVkVGU0kyICAgICAgIC8qIFdhdmVmb3JtIFNhbXBsZSBJMiBvZmZzZXQgY29ycmVjdGVkKi8KKyNkZWZpbmUgUkVUOCAgICAgICAgICAgICAgICAgICBBQ1RFTkVSR1kxX0xPICAvKiBBY3RpdmUgZW5lcmd5IEkxIExvdyBXb3JkICovCisjZGVmaW5lIFJFVDkgICAgICAgICAgICAgICAgICAgQUNURU5FUkdZMV9ISSAgLyogQWN0aXZlIGVuZXJneSBJMSBIaWdoIFdvcmQgKi8KKyNkZWZpbmUgUkVUMTAgICAgICAgICAgICAgICAgICBBQ1RFTkVSR1kyX0xPICAvKiBBY3RpdmUgZW5lcmd5IEkyIExvdyBXb3JkICovCisjZGVmaW5lIFJFVDExICAgICAgICAgICAgICAgICAgQUNURU5FUkdZMl9ISSAgLyogQWN0aXZlIGVuZXJneSBJMiBIaWdoIFdvcmQqLworI2RlZmluZSBSRVQxMiAgICAgICAgICAgICAgICAgIFJFQUNURU5FUkdZX0xPIC8qIFJlYWN0aXZlIGVuZXJneSBMb3cgV29yZCAqLworI2RlZmluZSBSRVQxMyAgICAgICAgICAgICAgICAgIFJFQUNURU5FUkdZX0hJIC8qIFJlYWN0aXZlIGVuZXJneSBIaWdoIFdvcmQgKi8KKyNkZWZpbmUgUkVUMTQgICAgICAgICAgICAgICAgICBBUFBFTkVSR1lfTE8gICAvKiBBcHBhcmVudCBlbmVyZ3kgTG93IFdvcmQgKi8KKyNkZWZpbmUgUkVUMTUgICAgICAgICAgICAgICAgICBBUFBFTkVSR1lfSEkgICAvKiBBcHBhcmVudCBlbmVyZ3kgSGlnaCBXb3JkICovCisjZGVmaW5lIFJFVDE2ICAgICAgICAgICAgICAgICAgQUNURU5TUEVSMV9MTyAgLyogQWN0aXZlIGVuZXJneSBJMSBmb3IgbGFzdCBtYWlucyBwZXJpb2QgTG93IFdvcmQgKi8KKyNkZWZpbmUgUkVUMTcgICAgICAgICAgICAgICAgICBBQ1RFTlNQRVIxX0hJICAvKiBBY3RpdmUgZW5lcmd5IEkxIGZvciBsYXN0IG1haW5zIHBlcmlvZCBIaWdoIFdvcmQgKi8KKyNkZWZpbmUgUkVUMTggICAgICAgICAgICAgICAgICBBQ1RFTlNQRVIyX0xPICAvKiBBY3RpdmUgZW5lcmd5IEkyIGZvciBsYXN0IG1haW5zIHBlcmlvZCBMb3cgV29yZCAqLworI2RlZmluZSBSRVQxOSAgICAgICAgICAgICAgICAgIEFDVEVOU1BFUjJfSEkgIC8qIEFjdGl2ZSBlbmVyZ3kgSTIgZm9yIGxhc3QgbWFpbnMgcGVyaW9kIEhpZ2ggV29yZCAqLworI2RlZmluZSBSRVQyMCAgICAgICAgICAgICAgICAgIFBPV0VSRkNUICAgICAgIC8qIFBvd2VyIGZhY3RvciAqLworI2RlZmluZSBSRVQyMSAgICAgICAgICAgICAgICAgIENBUElORCAgICAgICAgIC8qIFBvd2VyIGZhY3RvcjogbmVnOiBpbmR1Y3RpdmUgcG9zOiBjYXAuIChMb3dCeXRlKSovCisjZGVmaW5lIFJFVDIyICAgICAgICAgICAgICAgICAgTUFJTlNQRVJJT0QgICAgLyogTWFpbnMgcGVyaW9kICovCisjZGVmaW5lIFJFVDIzICAgICAgICAgICAgICAgICAgVjFSTVMgICAgICAgICAgLyogVm9sdGFnZSBSTVMgVjEgdmFsdWUgbGFzdCBzZWNvbmQgKi8KKyNkZWZpbmUgUkVUMjQgICAgICAgICAgICAgICAgICBJUk1TX0xPICAgICAgICAvKiBDdXJyZW50IFJNUyB2YWx1ZSBsYXN0IHNlY29uZCBJMSBJMiBMb3cgV29yZCAqLworI2RlZmluZSBSRVQyNSAgICAgICAgICAgICAgICAgIElSTVNfSEkgICAgICAgIC8qIEN1cnJlbnQgUk1TIHZhbHVlIGxhc3Qgc2Vjb25kIEkxIEkyIEhpZ2ggV29yZCAqLworI2RlZmluZSBSRVQyNiAgICAgICAgICAgICAgICAgIFZQRUFLICAgICAgICAgIC8qIFZvbHRhZ2UgVjEgYWJzb2x1dGUgcGVhayB2YWx1ZSAqLworI2RlZmluZSBSRVQyNyAgICAgICAgICAgICAgICAgIElQRUFLICAgICAgICAgIC8qIEN1cnJlbnQgYWJzb2x1dGUgcGVhayB2YWx1ZSBJMSBJMiAqLworI2RlZmluZSBSRVQyOCAgICAgICAgICAgICAgICAgIExJTkVDWUNMQ05UX0xPIC8qIExpbmUgY3ljbGUgY291bnRlciBMb3cgV29yZCAqLworI2RlZmluZSBSRVQyOSAgICAgICAgICAgICAgICAgIExJTkVDWUNMQ05UX0hJIC8qIExpbmUgY3ljbGUgY291bnRlciBIaWdoIFdvcmQgKi8KKyNkZWZpbmUgUkVUMzAgICAgICAgICAgICAgICAgICBOTUJNRUFTX0xPICAgICAvKiBOdW1iZXIgb2YgTWVhc3VyZW1lbnRzIGZvciBDUFUgc2lnbmFsIExvdyBXb3JkICovCisjZGVmaW5lIFJFVDMxICAgICAgICAgICAgICAgICAgTk1CTUVBU19ISSAgICAgLyogTnVtYmVyIG9mIE1lYXN1cmVtZW50cyBmb3IgQ1BVIHNpZ25hbCBIaWdoIFdvcmQgKi8KKworLyogRVNQQ1RMICovCisjZGVmaW5lIEVTUEVOICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRVNQNDMwIE1vZHVsZSBlbmFibGUgKi8KKyNkZWZpbmUgRVNQU1VTUCAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFU1A0MzAgTW9kdWxlIHN1c3BlbmQgKi8KKyNkZWZpbmUgSVJFUSAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBOT1Qgc3VwcG9ydGVkIGJ5IGN1cnJlbnQgRVNQNDMwIFNvZnR3YXJlICovCisKKy8qIFJFVDAgLSBTdGF0dXMwIEZsYWdzICovCisjZGVmaW5lIFdGU1JEWUZHICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogTmV3IHdhdmVmb3JtIFNhbXBsZXMgcmVhZHkgRmxhZyAqLworI2RlZmluZSBJMkdUSTFGRyAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEN1cnJlbnQgSTIgZ3JlYXRlciB0aGVuIEkxIEZsYWcgKi8KKyNkZWZpbmUgSUxSRUFDSEVERkcgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJbnRlcnJ1cHQgbGV2ZWwgcmVhY2hlZCBGbGFnICovCisjZGVmaW5lIEVOUkRZRkcgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogTmV3IEVuZXJneSB2YWx1ZXMgcmVhZHkgRmxhZyAqLworI2RlZmluZSBaWExERkcgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFplcm8gQ3Jvc3Npbmcgb2YgVjEgRmxhZyAobGVhZGluZyBlZGdlKSAqLworI2RlZmluZSBaWFRSRkcgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFplcm8gQ3Jvc3Npbmcgb2YgVjEgRmxhZyAodHJhaWxpbmcgZWRnZSkgKi8KKyNkZWZpbmUgQ0FMUkRZRkcgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBDYWxpYnJhdGlvbiB2YWx1ZXMgcmVhZHkgRmxhZyAqLworI2RlZmluZSBUQU1QRkcgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRhbXBlcmluZyBPY2N1cmVkIEZsYWcgKi8KKyNkZWZpbmUgTkVHRU5GRyAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBOZWdhdGl2IEVuZXJneSBGbGFnICovCisjZGVmaW5lIFZEUk9QRkcgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVm9sdGFnZSBkcm9wIG9jY3VyZWQgRmxhZyAqLworI2RlZmluZSBWUEVBS0ZHICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIFZvbHRhZ2UgZXhjZWVkIFZQZWFrIGxldmVsIEZsYWcgKi8KKyNkZWZpbmUgSTFQRUFLRkcgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDdXJyZW50IGV4Y2VlZCBJMVBlYWsgbGV2ZWwgRmxhZyAqLworI2RlZmluZSBJMlBFQUtGRyAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEN1cnJlbnQgZXhjZWVkIEkyUGVhayBsZXZlbCBGbGFnICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgKDB4ODAwMCkgIC8qIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgKDB4ODAwMCkgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIEFDVElWRUZHICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogTWVhc3VyZW1lbnQgb3IgQ2FsaWJyYXRpb24gcnVubmluZyBGbGFnICovCisKKy8qIE1CQ1RMICovCisjZGVmaW5lIElOMElGRyAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSW5jb21pbmcgTWFpbCAwIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIElOMUlGRyAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSW5jb21pbmcgTWFpbCAxIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE9VVDBGRyAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogT3V0Z29pbmcgTWFpbCAwIEZsYWcgKi8KKyNkZWZpbmUgT1VUMUZHICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBPdXRnb2luZyBNYWlsIDEgRmxhZyAqLworI2RlZmluZSBJTjBJRSAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEluY29taW5nIE1haWwgMCBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIElOMUlFICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogSW5jb21pbmcgTWFpbCAxIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0xSME9GRiAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTd2l0Y2ggb2ZmIGF1dG9tYXRpYyBjbGVhciBvZiBJTjBJRkcgKi8KKyNkZWZpbmUgQ0xSMU9GRiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTd2l0Y2ggb2ZmIGF1dG9tYXRpYyBjbGVhciBvZiBJTjFJRkcgKi8KKyNkZWZpbmUgT1VUMElGRyAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBPdXRnb2luZyBNYWlsIDAgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgT1VUMUlGRyAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBPdXRnb2luZyBNYWlsIDEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgT1VUMElFICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBPdXRnb2luZyBNYWlsIDAgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPVVQxSUUgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIE91dGdvaW5nIE1haWwgMSBJbnRlcnJ1cHQgRW5hYmxlICovCisKKy8qIE1lc3NhZ2VzIHRvIEVTUCAqLworI2RlZmluZSBtUkVTRVQgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFJlc3RhcnQgRVNQNDMwIFNvZnR3YXJlICovCisjZGVmaW5lIG1TRVRfTU9ERSAgICAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogU2V0IE9wZXJhdGlvbiBNb2RlIGZvciBFU1A0MzAgU29mdHdhcmUgKi8KKyNkZWZpbmUgbUNMUl9FVkVOVCAgICAgICAgICAgICAoMHgwMDA1KSAgICAgICAvKiBDbGVhciBGbGFncyBmb3IgRVNQNDMwIFNvZnR3YXJlICovCisjZGVmaW5lIG1JTklUICAgICAgICAgICAgICAgICAgKDB4MDAwNykgICAgICAgLyogSW5pdGlhbGl6ZSBFU1A0MzAgU29mdHdhcmUgKi8KKyNkZWZpbmUgbVRFTVAgICAgICAgICAgICAgICAgICAoMHgwMDA5KSAgICAgICAvKiBSZXF1ZXN0IFRlbXAuIE1lYXN1cmVtZW50IGZyb20gRVNQNDMwIFNvZnR3YXJlICovCisjZGVmaW5lIG1TV1ZFUlNJT04gICAgICAgICAgICAgKDB4MDAwQikgICAgICAgLyogUmVxdWVzdCBzb2Z0d2FyZSB2ZXJzaW9uIG9mIEVTUDQzMCAqLworI2RlZmluZSBtUkVBRF9QQVJBTSAgICAgICAgICAgICgweDAwMEQpICAgICAgIC8qIFJlcXVlc3QgdG8gcmVhZCB0aGUgcGFyYW1ldGVyIHdpdGggbm8uIJNQYXJhbWV0ZXIgTm8ulCAqLworI2RlZmluZSBtUkVBRF9JMiAgICAgICAgICAgICAgICgweDAwMEYpICAgICAgIC8qIFJlcXVlc3QgdG8gcmVhZCB0aGUgSTIgQ2hhbm5lbCAob25seSBpZiBub3QgdXNlZCkgKi8KKworI2RlZmluZSBtU0VUX0NUUkwwICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNldCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KKyNkZWZpbmUgbVNFVF9DVFJMMSAgICAgICAgICAgICAoMHgwMjAyKSAgICAgICAvKiBTZXQgQ29udHJvbCBSZWdpc3RlciAxICovCisjZGVmaW5lIG1TRVRfRVZFTlQgICAgICAgICAgICAgKDB4MDIwNCkgICAgICAgLyogU2V0IHdoaWNoIEV2ZW5ldHMgc2hvdWxkIGNhdXNlIGFuIG1lc3NhZ2UgKi8KKyNkZWZpbmUgbVNFVF9QSEFTRUNPUlIxICAgICAgICAoMHgwMjA2KSAgICAgICAvKiBTZXQgUGhhc2UgQ29ycmVjdGlvbiBmbyBJMSAqLworI2RlZmluZSBtU0VUX1BIQVNFQ09SUjIgICAgICAgICgweDAyMDgpICAgICAgIC8qIFNldCBQaGFzZSBDb3JyZWN0aW9uIGZvIEkyICovCisjZGVmaW5lIG1TRVRfVjFPRkZTRVQgICAgICAgICAgKDB4MDIwQSkgICAgICAgLyogU2V0IE9mZnNldCBmb3IgVjEgKi8KKyNkZWZpbmUgbVNFVF9JMU9GRlNFVCAgICAgICAgICAoMHgwMjBDKSAgICAgICAvKiBTZXQgT2Zmc2V0IGZvciBJMSAqLworI2RlZmluZSBtU0VUX0kyT0ZGU0VUICAgICAgICAgICgweDAyMEUpICAgICAgIC8qIFNldCBPZmZzZXQgZm9yIEkyICovCisjZGVmaW5lIG1TRVRfQURBUFRJMSAgICAgICAgICAgKDB4MDIxMCkgICAgICAgLyogU2V0IEFkYXB0aW9uIGZhY3RvciBmb3IgSTEgKi8KKyNkZWZpbmUgbVNFVF9BREFQVEkyICAgICAgICAgICAoMHgwMjEyKSAgICAgICAvKiBTZXQgQWRhcHRpb24gZmFjdG9yIGZvciBJMiAqLworI2RlZmluZSBtU0VUX0dBSU5DT1JSMSAgICAgICAgICgweDAyMTQpICAgICAgIC8qIFNldCBHYWluIENvcnJlY3Rpb24gZm9yIFBvd2VyIFAxICovCisjZGVmaW5lIG1TRVRfUE9GRlNFVDFfTE8gICAgICAgKDB4MDIxNikgICAgICAgLyogU2V0IFBvd2VyIE9mZnNldCBmb3IgUG93ZXIgUDEgKi8KKyNkZWZpbmUgbVNFVF9QT0ZGU0VUMV9ISSAgICAgICAoMHgwMjE4KSAgICAgICAvKiBTZXQgUG93ZXIgT2Zmc2V0IGZvciBQb3dlciBQMSAqLworI2RlZmluZSBtU0VUX0dBSU5DT1JSMiAgICAgICAgICgweDAyMUEpICAgICAgIC8qIFNldCBHYWluIENvcnJlY3Rpb24gZm9yIFBvd2VyIFAyICovCisjZGVmaW5lIG1TRVRfUE9GRlNFVDJfTE8gICAgICAgKDB4MDIxQykgICAgICAgLyogU2V0IFBvd2VyIE9mZnNldCBmb3IgUG93ZXIgUDIgKi8KKyNkZWZpbmUgbVNFVF9QT0ZGU0VUMl9ISSAgICAgICAoMHgwMjFFKSAgICAgICAvKiBTZXQgUG93ZXIgT2Zmc2V0IGZvciBQb3dlciBQMiAqLworI2RlZmluZSBtU0VUX0lOVFJQVExFVkxfTE8gICAgICgweDAyMjApICAgICAgIC8qIFNldCBJbnRlcnJ1cHQgTGV2ZWwgKi8KKyNkZWZpbmUgbVNFVF9JTlRSUFRMRVZMX0hJICAgICAoMHgwMjIyKSAgICAgICAvKiBTZXQgSW50ZXJydXB0IExldmVsICovCisjZGVmaW5lIG1TRVRfQ0FMQ1lDTENOVCAgICAgICAgKDB4MDIyNCkgICAgICAgLyogU2V0IG51bWJlciBvZiBtYWluIGN5Y2xlcyBmb3IgY2FsaWJyYXRpb24gKi8KKyNkZWZpbmUgbVNFVF9TVEFSVENVUlJfRlJBQyAgICAoMHgwMjI2KSAgICAgICAvKiBTZXQgc3RhcnQgY3VycmVudCBmcmFjdGlvbmFsIFBhcnQqLworI2RlZmluZSBtU0VUX1NUQVJUQ1VSUl9JTlQgICAgICgweDAyMjgpICAgICAgIC8qIFNldCBzdGFydCBjdXJyZW50IGludGVnZXIgUGFydCovCisjZGVmaW5lIG1TRVRfTk9NRlJFUSAgICAgICAgICAgKDB4MDIyQSkgICAgICAgLyogU2V0IG5vbWluYWwgbWFpbiBmcmVxdWVuY3kgKi8KKyNkZWZpbmUgbVNFVF9WRFJPUENZQ0xTICAgICAgICAoMHgwMjJDKSAgICAgICAvKiBTZXQgY3lsY2VzIGZvciBWRHJvcCBkZXRlY3Rpb24gKi8KKyNkZWZpbmUgbVNFVF9SQVRJT1RBTVAgICAgICAgICAoMHgwMjJFKSAgICAgICAvKiBTZXQgcmF0aW8gZm9yIHRhbXBlciBkZXRlY3Rpb24gKi8KKyNkZWZpbmUgbVNFVF9JVEFNUCAgICAgICAgICAgICAoMHgwMjMwKSAgICAgICAvKiBTZXQgbWluaW11bSBjdXJyZW50IGZvciB0YW1wZXIgZGV0ZWN0aW9uICovCisjZGVmaW5lIG1TRVRfVkRST1BMRVZFTCAgICAgICAgKDB4MDIzMikgICAgICAgLyogU2V0IGxldmVsIGZvciBWRHJvcCBkZXRlY3Rpb24gKi8KKyNkZWZpbmUgbVNFVF9WUEVBS0xFVkVMICAgICAgICAoMHgwMjM0KSAgICAgICAvKiBTZXQgbGV2ZWwgZm9yIFZQZWFrIGRldGVjdGlvbiAqLworI2RlZmluZSBtU0VUX0lQRUFLTEVWRUwgICAgICAgICgweDAyMzYpICAgICAgIC8qIFNldCBsZXZlbCBmb3IgSVBlYWsgZGV0ZWN0aW9uICovCisjZGVmaW5lIG1TRVRfRENSRU1QRVIgICAgICAgICAgKDB4MDIzOCkgICAgICAgLyogU2V0IG51bWJlciBvZiBwZXJpb2RzIGZvciBEQy1yZW1vdmFsICovCisKKy8qIEZsYWdzIGZvciBtU0VUX0NUUkwwICovCisjZGVmaW5lIENVUlJfSTIgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogMDogTm8gSTIgcGF0aCwgb25seSBJMSBwYXRoIGlzIHVzZWQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTogSTIgcGF0aCBpbXBsZW1lbnRlZCAoQ1QsIGRjLXRvbCBDVCBvciBzaHVudCkgKi8KKyNkZWZpbmUgQ1VSUl9JMSAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAwOiBDdXJyZW50IHRyYW5zZm9ybWVyLCBkYy10b2wgQ1Qgb3Igc2h1bnQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTogUm9nb3dza2kgY29pbCAobm90IHlldCBpbXBsZW1lbnRlZCkgKi8KKyNkZWZpbmUgTUIgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJbnRycHQgdG8gQ1BVOiAwOiBlbmVyZ3kgbGV2ZWwgIDE6ICNtZWFzdXJlbWVudHMgKi8KKyNkZWZpbmUgTkUwICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBOZWcuIGVuZXJneSB0cmVhdG1lbnQ6ICAgICAgMDA6IGNsZWFyIG5lZy4gZW5lcmd5ICovCisjZGVmaW5lIE5FMSAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogMDE6IHVzZSBhYnNvbHV0ZSBlbmVyZ3kgICAxMDogdXNlIGVuZXJneSBhcyBpdCBpcyAqLworI2RlZmluZSBEQ1JFTV9WMSAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIERDIHJlbW92YWwgZm9yIFYxOiAgMDogb2ZmICAxOiBvbiAqLworI2RlZmluZSBEQ1JFTV9JMSAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIERDIHJlbW92YWwgZm9yIEkxOiAgMDogb2ZmICAxOiBvbiAqLworI2RlZmluZSBEQ1JFTV9JMiAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIERDIHJlbW92YWwgZm9yIEkyOiAgMDogb2ZmICAxOiBvbiAqLworCisvKiBNZXNzYWdlcyBmcm9tIEVTUCAqLworI2RlZmluZSBtRVZFTlQgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEV2ZW50IFN0YXR1cyBGbGFnIGZvciBFU1A0MzAgU29mdHdhcmUgKi8KKyNkZWZpbmUgbVRFTVBSRFkgICAgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBUZW1wZXJhdHVyZSBtZWFzdXJlbWVudCBjb21wbGV0ZWQgYW5kIGluIE1CSU4xICovCisjZGVmaW5lIG1TV1JEWSAgICAgICAgICAgICAgICAgKDB4MDAwNSkgICAgICAgLyogU29mdHdhcmUgdmVyc2lvbiBpbiBNQklOMSAqLworI2RlZmluZSBtUEFSQU1SRFkgICAgICAgICAgICAgICgweDAwMDcpICAgICAgIC8qIFBhcmFtZXRlciByZXF1ZXN0ZWQgYnkgbVJFQURfUEFSQU0gcmV0dXJuZWQgaW4gTUJJTjEgICovCisjZGVmaW5lIG1QQVJBTVNFVCAgICAgICAgICAgICAgKDB4MDAwOSkgICAgICAgLyogUGFyYW1ldGVyIGhhcyBiZWVuIHNldCAqLworI2RlZmluZSBtSTJSRFkgICAgICAgICAgICAgICAgICgweDAwMEIpICAgICAgIC8qIEkyIHZhbHVlIHJlYWR5ICovCisKKy8qIEVWRU5UOiBFdmVudCBNZXNzYWdlIEVuYWJsZSBCaXRzICovCisjZGVmaW5lIFdGU1JEWU1FICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogTmV3IHdhdmVmb3JtIFNhbXBsZXMgcmVhZHkgKi8KKyNkZWZpbmUgSTJHVEkxTUUgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDdXJyZW50IEkyIGdyZWF0ZXIgdGhlbiBJMSAqLworI2RlZmluZSBJTFJFQUNIRURNRSAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEludGVycnVwdCBsZXZlbCByZWFjaGVkICovCisjZGVmaW5lIEVOUkRZTUUgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogTmV3IEVuZXJneSB2YWx1ZXMgcmVhZHkgKi8KKyNkZWZpbmUgWlhMRE1FICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBaZXJvIENyb3NzaW5nIG9mIFYxIChsZWFkaW5nIGVkZ2UpICovCisjZGVmaW5lIFpYVFJNRSAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogWmVybyBDcm9zc2luZyBvZiBWMSAodHJhaWxpbmcgZWRnZSkgKi8KKyNkZWZpbmUgQ0FMUkRZTUUgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBDYWxpYnJhdGlvbiB2YWx1ZXMgcmVhZHkgKi8KKyNkZWZpbmUgVEFNUE1FICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUYW1wZXJpbmcgT2NjdXJlZCAqLworI2RlZmluZSBORUdFTk1FICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIE5lZ2F0aXYgRW5lcmd5ICovCisjZGVmaW5lIFZEUk9QTUUgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVm9sdGFnZSBkcm9wIG9jY3VyZWQgKi8KKyNkZWZpbmUgVlBFQUtNRSAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBWb2x0YWdlIGV4Y2VlZCBWUGVhayBsZXZlbCAqLworI2RlZmluZSBJMVBFQUtNRSAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEN1cnJlbnQgZXhjZWVkIEkxUGVhayBsZXZlbCAqLworI2RlZmluZSBJMlBFQUtNRSAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEN1cnJlbnQgZXhjZWVkIEkyUGVhayBsZXZlbCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4ODAwMCkgIC8qIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHg4MDAwKSAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgQUNUSVZFTUUgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBNZWFzdXJlbWVudCBvZiBDYWxpYnJhdGlvbiBydW5uaW5nICovCisKKy8qIEVTUCBNb2RlcyAqLworI2RlZmluZSBtb2RlSURMRSAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNldCBNb2RlOiBJZGxlIE1vZGUgKi8KKyNkZWZpbmUgbW9kZUNBTElCUkFUSU9OICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTZXQgTW9kZTogQ2FsaWJyYXRpb24gTW9kZSAqLworI2RlZmluZSBtb2RlTUVBU1VSRSAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNldCBNb2RlOiBNZWFzdXJlIE1vZGUgKi8KKyNkZWZpbmUgbW9kZVJFU0VUICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTZXQgTW9kZTogUmVzZXQgYW5kIFJlc3RhcnQgdGhlIEVTUDQzMCBtb2R1bGUgKi8KKyNkZWZpbmUgbW9kZUlOSVQgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTZXQgTW9kZTogSW5pdGlhbGl6ZSBFU1A0MzAgbW9kdWxlICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIEJBU0lDVElNRVJfVkVDVE9SICAgICAgICgwICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIEJhc2ljIFRpbWVyICovCisvKiNkZWZpbmUgQkFTSUNUSU1FUl9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDEgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICg0ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU4IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNCIpICAqLyAvKiAweEZGRTggUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkExX1ZFQ1RPUiAgICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQSBUaW1lciBBIENDMS0yLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNSIpICAqLyAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICg2ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA2IikgICovIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNBUlQwVFhfVkVDVE9SICAgICAgICAgKDggKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjAgVVNBUlQgMCBUcmFuc21pdCAqLworLyojZGVmaW5lIFVTQVJUMFRYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOCIpICAqLyAvKiAweEZGRjAgVVNBUlQgMCBUcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNBUlQwUlhfVkVDVE9SICAgICAgICAgKDkgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjIgVVNBUlQgMCBSZWNlaXZlICovCisvKiNkZWZpbmUgVVNBUlQwUlhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA5IikgICovIC8qIDB4RkZGMiBVU0FSVCAwIFJlY2VpdmUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFdEVF9WRUNUT1IgICAgICAgICAgICAgICgxMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovCisvKiNkZWZpbmUgV0RUX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEwIikgICovIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworI2RlZmluZSBTRDE2X1ZFQ1RPUiAgICAgICAgICAgICAoMTIgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGOCBTaWdtYSBEZWx0YSBBREMgKi8KKy8qI2RlZmluZSBTRDE2X0lTUihmdW5jKSAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFNpZ21hIERlbHRhIEFEQyAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgRVNQNDMwX1ZFQ1RPUiAgICAgICAgICAgKDEzICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkEgRVNQNDMwIE1haWxib3ggKi8KKy8qI2RlZmluZSBFU1A0MzBfSVNSKGZ1bmMpICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTMiKSAgKi8gLyogMHhGRkZBIEVTUDQzMCBNYWlsYm94ICovIC8qIENDRSBWMiBTdHlsZSAqLworCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4RTQyeCAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweGU0MngyLmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweGU0MngyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDFmMThiZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4ZTQyeDIuaApAQCAtMCwwICsxLDEwMjggQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweEU0MngyIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDAuOQorKgorKgorKiBSZXYuIDEuMCwgIEluaXRpYWwgVmVyc2lvbgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4RTQyeDIKKyNkZWZpbmUgX19tc3A0MzB4RTQyeDIKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBJRSAgICAgICAgICAgICAgICAgICBJRTEgICAgICAgICAgICAvKiBVQVJUMCBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFVSWElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElFMCAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFUwSUZHICAgICAgICAgICAgICAgICAgSUZHMSAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEZsYWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVJYSUZHMCAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYSUZHMCAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoTUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1vZHVsZSBFbmFibGUgMSAqLworI2RlZmluZSBVME1FICAgICAgICAgICAgICAgICAgIE1FMSAgICAgICAgICAgIC8qIFVBUlQwIE1vZHVsZSBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYRTAgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYRTAgICAgICAgICAgICAgICAgICAoMHg4MCkKKyNkZWZpbmUgVVNQSUUwICAgICAgICAgICAgICAgICAoMHg0MCkKKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBCVElFICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgICAgICgweDgwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCQVNJQyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQlRfXyAgICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIkJUIiAqLworI2RlZmluZSBCVElQMCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBCVElQMSAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBCVElQMiAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBCVEZSRlEwICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBCVEZSRlExICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBCVERJViAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZDTEsyID0gQUNMSzoyNTYgKi8KKyNkZWZpbmUgQlRIT0xEICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBCVDEgaXMgaGVsZCBpZiB0aGlzIGJpdCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRTU0VMICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBmQlQgPSBmTUNMSyAobWFpbiBjbG9jaykgKi8KKworU0ZSXzhCSVQoQlRDTlQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDEgKi8KK1NGUl84QklUKEJUQ05UMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAyICovCisKKy8qIEZyZXF1ZW5jeSBvZiB0aGUgQlRDTlQyIGNvZGVkIHdpdGggQml0IDUgYW5kIDcgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfQUNMSyAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgQlRfZkNMSzJfQUNMS19ESVYyNTYgICAoQlRESVYpCisjZGVmaW5lIEJUX2ZDTEsyX01DTEsgICAgICAgICAgKEJUU1NFTCkKKworLyogSW50ZXJydXB0IGludGVydmFsIHRpbWUgZklOVCBjb2RlZCB3aXRoIEJpdHMgMC0yIGluIEJUQ1RMICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZklOVCA9IGZDTEsyOjIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjQgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjQgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWOCAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiBmSU5UID0gZkNMSzI6OCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxNiAgICAgICAgIChCVElQMStCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjoxNiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYzMiAgICAgICAgIChCVElQMikgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjozMiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY2NCAgICAgICAgIChCVElQMitCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjo2NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxMjggICAgICAgIChCVElQMitCVElQMSkgIC8qIGZJTlQgPSBmQ0xLMjoxMjggKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMjU2ICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIGZJTlQgPSBmQ0xLMjoyNTYgKi8KKy8qIEZyZXF1ZW5jeSBvZiBMQ0QgY29kZWQgd2l0aCBCaXRzIDMtNCAqLworI2RlZmluZSBCVF9mTENEX0RJVjMyICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzozMiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVY2NCAgICAgICAgICAoQlRGUkZRMCkgICAgICAvKiBmTENEID0gZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYxMjggICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmTENEID0gZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMjU2ICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmTENEID0gZkFDTEs6MjU2ICovCisvKiBMQ0QgZnJlcXVlbmN5IHZhbHVlcyB3aXRoIGZCVD1mQUNMSyAqLworI2RlZmluZSBCVF9mTENEXzFLICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEXzUxMiAgICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZBQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfMjU2ICAgICAgICAgICAgKEJURlJGUTEpICAgICAgLyogZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfMTI4ICAgICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZNQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMzFLICAgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogZk1DTEs6MzIgKi8KKyNkZWZpbmUgQlRfZkxDRF8xNV81SyAgICAgICAoQlRTU0VMK0JURlJGUTApICAgICAgICAgIC8qIGZNQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfN184SyAgICAgICAgKEJUU1NFTCtCVEZSRlExK0JURlJGUTApICAvKiBmTUNMSzoyNTYgKi8KKy8qIHdpdGggYXNzdW1lZCB2bHVlcyBvZiBmQUNMSz0zMktIeiwgZk1DTEs9MU1IeiAqLworLyogZkJUPWZBQ0xLIGlzIHRob3VnaHQgZm9yIGxvbmdlciBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9BRExZXzBfMDY0ICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIDAuMDY0bXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX0FETFlfMF8xMjUgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF8yNSAgICAgICAgICAgKEJUSVAxKSAgICAgICAgLyogMC4yNW1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF81ICAgICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogMC41bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMSAgICAgICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogMW1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMiAgICAgICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogMm1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNCAgICAgICAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogNG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfOCAgICAgICAgICAgKEJUSVAyK0JUSVAxK0JUSVAwKSAgICAgICAvKiA4bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xNiAgICAgICAgICAgICAoQlRESVYpICAgICAgICAvKiAxNm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8zMiAgICAgICAgICAgICAoQlRESVYrQlRJUDApICAvKiAzMm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV82NCAgICAgICAgICAgICAoQlRESVYrQlRJUDEpICAvKiA2NG1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMjUgICAgICAgICAoQlRESVYrQlRJUDErQlRJUDApICAgICAgIC8qIDEyNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzI1MCAgICAgICAgICAgIChCVERJVitCVElQMikgIC8qIDI1MG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzUwMCAgICAgICAgIChCVERJVitCVElQMitCVElQMCkgICAgICAgLyogNTAwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxKSAgICAgICAvKiAxMDAwbXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDErQlRJUDApIC8qIDIwMDBtcyAgICAgIiAqLworLyogZkNMSzI9Zk1DTEsgKDFNSHopIGlzIHRob3VnaHQgZm9yIHNob3J0IGludGVydmFsIHRpbWVzICovCisvKiB0aGUgdGltaW5nIGZvciBzaG9ydCBpbnRlcnZhbHMgaXMgbW9yZSBwcmVjaXNlIHRoYW4gQUNMSyAqLworLyogTk9URSAqLworLyogQmUgc3VyZSB0aGF0IHRoZSBTQ0ZRQ1RMLVJlZ2lzdGVyIGlzIHNldCB0byAwMUZoIHNvIHRoYXQgZk1DTEs9MU1IeiAqLworLyogVG9vIGxvdyBpbnRlcnZhbCB0aW1lIHJlc3VsdHMgaW4gaW50ZXJydXB0cyB0b28gZnJlcXVlbnQgZm9yIHRoZSBwcm9jZXNzb3IgdG8gaGFuZGxlISAqLworI2RlZmluZSBCVF9NRExZXzBfMDAyICAgICAgICAgIChCVFNTRUwpICAgICAgIC8qIDAuMDAybXMgaW50ZXJ2YWwgICAgICAgKioqIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDQgICAgICAgICAgKEJUU1NFTCtCVElQMCkgLyogMC4wMDRtcyAgICAiICAgICAgICAgICAqKiogdG9vIHNob3J0IGZvciAqLworI2RlZmluZSBCVF9NRExZXzBfMDA4ICAgICAgICAgIChCVFNTRUwrQlRJUDEpIC8qIDAuMDA4bXMgICAgIiAgICAgICAgICAgKioqIGludGVycnVwdCAqLworI2RlZmluZSBCVF9NRExZXzBfMDE2ICAgICAgIChCVFNTRUwrQlRJUDErQlRJUDApICAgICAgLyogMC4wMTZtcyAgICAiICAgICAgICAgICAqKiogaGFuZGxpbmcgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAzMiAgICAgICAgICAoQlRTU0VMK0JUSVAyKSAvKiAwLjAzMm1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzA2NCAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAwKSAgICAgIC8qIDAuMDY0bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMTI1ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDEpICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8yNSAgICAgICAgKEJUU1NFTCtCVElQMitCVElQMStCVElQMCkvKiAwLjI1bXMgICAgICIgKi8KKworLyogUmVzZXQvSG9sZCBjb2RlZCB3aXRoIEJpdHMgNi03IGluIEJUKDEpQ1RMICovCisvKiB0aGlzIGlzIGZvciBCVCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMSAgICAgICAgKEJUUkVTRVQpICAgICAgICAgICAvKiBCVENOVDEgaXMgcmVzZXQgd2hpbGUgQlRSRVNFVCBpcyBzZXQgKi8KKy8vI2RlZmluZSBCVFJFU0VUX0NOVDFfMiAgICAgIChCVFJFU0VUK0JURElWKSAgICAgLyogQlRDTlQxIC5BTkQuIEJUQ05UMiBhcmUgcmVzZXQgd2hpbGUgfiBpcyBzZXQgKi8KKy8qIHRoaXMgaXMgZm9yIEJUMSAqLworI2RlZmluZSBCVEhPTERfQ05UMSAgICAgICAgICAgIChCVEhPTEQpICAgICAgIC8qIEJUQ05UMSBpcyBoZWxkIHdoaWxlIEJUSE9MRCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDFfMiAgICAgICAgICAoQlRIT0xEK0JURElWKSAvKiBCVDFDTlQxIC5BTkQuIEJUMUNOVDIgYXJlIGhlbGQgd2hpbGUgfiBpcyBzZXQgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogI2RlZmluZSBCVElFICAgICAgICAgICAgICAgIDB4ODAgKi8KKy8qICNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAweDgwICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1lTVEVNIENMT0NLLCBGTEwrICh4NDF4KQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxMUExVU19TTUFMTF9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0NGSTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAwICovCisjZGVmaW5lIEZOXzIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMS40LTEyTUh6Ki8KKyNkZWZpbmUgRk5fMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBmRENPQ0xLID0gICAyLjItMTdNaHoqLworI2RlZmluZSBGTl80ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDMuMi0yNU1oeiovCisjZGVmaW5lIEZOXzggICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkRDT0NMSyA9ICAgICA1LTQwTWh6Ki8KKyNkZWZpbmUgRkxMRDAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMCAqLworI2RlZmluZSBGTExEMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAxICovCisKKyNkZWZpbmUgRkxMRF8xICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDEgKi8KKyNkZWZpbmUgRkxMRF8yICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDIgKi8KKyNkZWZpbmUgRkxMRF80ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDQgKi8KKyNkZWZpbmUgRkxMRF84ICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDggKi8KKworU0ZSXzhCSVQoU0NGSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAxICovCitTRlJfOEJJVChTQ0ZRQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCisvKiBTeXN0ZW0gY2xvY2sgZnJlcXVlbmN5IHZhbHVlcyBmTUNMSyBjb2RlZCB3aXRoIEJpdHMgMC02IGluIFNDRlFDVEwgKi8KKy8qICNkZWZpbmUgU0NGUV8zMksgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgZk1DTEs9MSpmQUNMSyAgICAgICBvbmx5IGEgcmFuZ2UgZnJvbSAqLworI2RlZmluZSBTQ0ZRXzY0SyAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIGZNQ0xLPTIqZkFDTEsgICAgICAgICAgMSsxIHRvIDEyNysxIGlzIHBvc3NpYmxlICovCisjZGVmaW5lIFNDRlFfMTI4SyAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogZk1DTEs9NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzI1NksgICAgICAgICAgICAgICgweDA3KSAgICAgICAgIC8qIGZNQ0xLPTgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV81MTJLICAgICAgICAgICAgICAoMHgwRikgICAgICAgICAvKiBmTUNMSz0xNipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzFNICAgICAgICAgICAgICAgICgweDFGKSAgICAgICAgIC8qIGZNQ0xLPTMyKmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMk0gICAgICAgICAgICAgICAgKDB4M0YpICAgICAgICAgLyogZk1DTEs9NjQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV80TSAgICAgICAgICAgICAgICAoMHg3RikgICAgICAgICAvKiBmTUNMSz0xMjgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV9NICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2R1bGF0aW9uIERpc2FibGUgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAwICovCisjZGVmaW5lIERDT0YgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRENPIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgTEZPRiAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMb3cgRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFPRiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBPU0NDQVAwICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIE9TQ0NBUDEgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgWFRTX0ZMTCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxOiBTZWxlY3RzIGhpZ2gtZnJlcS4gb3NjaWxsYXRvciAqLworI2RlZmluZSBEQ09QTFVTICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTysgRW5hYmxlICovCisKKyNkZWZpbmUgWENBUDBQRiAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgWENBUDEwUEYgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIFhDQVAxNFBGICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBYQ0FQMThQRiAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzEgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIE9TQ0NBUF8yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBPU0NDQVBfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAxICovCisjZGVmaW5lIEZMTF9ESVYwICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIDAgKi8KKyNkZWZpbmUgRkxMX0RJVjEgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMSAqLworCisjZGVmaW5lIEZMTF9ESVZfMSAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDEgKi8KKyNkZWZpbmUgRkxMX0RJVl8yICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMiAqLworI2RlZmluZSBGTExfRElWXzQgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA0ICovCisjZGVmaW5lIEZMTF9ESVZfOCAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDggKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgMHgwMiAqLworLyogI2RlZmluZSBPRklFICAgICAgICAgICAgICAgIDB4MDIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCcm93bi1PdXQsIFN1cHBseSBWb2x0YWdlIFN1cGVydmlzaW9uIChTVlMpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19TVlNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTVlNDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU1ZTIENvbnRyb2wgKi8KKyNkZWZpbmUgU1ZTRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTVlMgRmxhZyAqLworI2RlZmluZSBTVlNPUCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNWUyBvdXRwdXQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgU1ZTT04gICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTd2l0Y2hlcyB0aGUgU1ZTIG9uL29mZiAqLworI2RlZmluZSBQT1JPTiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEVuYWJsZSBQT1IgR2VuZXJhdGlvbiBpZiBMb3cgVm9sdGFnZSAqLworI2RlZmluZSBWTEQwICAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTEQxICAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBWTEQyICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBWTEQzICAgICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIFZMRE9OICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRE9GRiAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIFZMRF8xXzhWICAgICAgICAgICAgICAgKDB4MTApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogTENECisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19MQ0Q0X18gICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChMQ0RDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIENvbnRyb2wgKi8KKy8qIHRoZSBuYW1lcyBvZiB0aGUgbW9kZSBiaXRzIGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgc3BlYyAqLworI2RlZmluZSBMQ0RPTiAgICAgICAgICAgICAgICAgICgweDAxKQorLy8jZGVmaW5lIExDRExPV1IgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIExDRFNPTiAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIExDRE1YMCAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIExDRE1YMSAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIExDRFAwICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIExDRFAxICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIExDRFAyICAgICAgICAgICAgICAgICAgKDB4ODApCisvKiBEaXNwbGF5IG1vZGVzIGNvZGVkIHdpdGggQml0cyAyLTQgKi8KKyNkZWZpbmUgTENEU1RBVElDICAgICAgICAgICAgICAoTENEU09OKQorI2RlZmluZSBMQ0QyTVVYICAgICAgICAgICAgICAgIChMQ0RNWDArTENEU09OKQorI2RlZmluZSBMQ0QzTVVYICAgICAgICAgICAgICAgIChMQ0RNWDErTENEU09OKQorI2RlZmluZSBMQ0Q0TVVYICAgICAgICAgICAgICAgIChMQ0RNWDErTENETVgwK0xDRFNPTikKKy8qIEdyb3VwIHNlbGVjdCBjb2RlIHdpdGggQml0cyA1LTcgICAgICAgICAgICAgICAgICAgICBTZWcubGluZXMgICBEaWcub3V0cHV0ICovCisjZGVmaW5lIExDRFNHMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogLS0tLS0tLS0tICAgUG9ydCBPbmx5IChkZWZhdWx0KSAqLworI2RlZmluZSBMQ0RTRzBfMSAgICAgICAgICAgICAgIChMQ0RQMCkgICAgICAgIC8qIFMwICAtIFMxNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzIgICAgICAgICAgICAgICAoTENEUDEpICAgICAgICAvKiBTMCAgLSBTMTkgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF8zICAgICAgICAgICAgICAgKExDRFAxK0xDRFAwKSAgLyogUzAgIC0gUzIzICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNCAgICAgICAgICAgICAgIChMQ0RQMikgICAgICAgIC8qIFMwICAtIFMyNyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzUgICAgICAgICAgICAgICAoTENEUDIrTENEUDApICAvKiBTMCAgLSBTMzEgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF82ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAxKSAgLyogUzAgIC0gUzM1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNyAgICAgICAgICAgIChMQ0RQMitMQ0RQMStMQ0RQMCkgICAgICAgLyogUzAgIC0gUzM5ICAgc2VlIERhdGFzaGVldCAqLworLyogTk9URTogWU9VIENBTiBPTkxZIFVTRSBUSEUgJ1MnIE9SICdHJyBERUNMQVJBVElPTlMgRk9SIEEgQ09NTUFORCAqLworLyogTU9WICAjTENEU0cwXzMrTENET0cyXzcsJkxDRENUTCBBQ1RVQUxZIE1FQU5TIE1PViAgI0xDRFAxLCZMQ0RDVEwhICovCisjZGVmaW5lIExDRE9HMV83ICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogLS0tLS0tLS0tICAgUG9ydCBPbmx5IChkZWZhdWx0KSAqLworI2RlZmluZSBMQ0RPRzJfNyAgICAgICAgICAgICAgIChMQ0RQMCkgICAgICAgIC8qIFMwICAtIFMxNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0czXzcgICAgICAgICAgICAgICAoTENEUDEpICAgICAgICAvKiBTMCAgLSBTMTkgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNF83ICAgICAgICAgICAgICAgKExDRFAxK0xDRFAwKSAgLyogUzAgIC0gUzIzICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzVfNyAgICAgICAgICAgICAgIChMQ0RQMikgICAgICAgIC8qIFMwICAtIFMyNyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c2XzcgICAgICAgICAgICAgICAoTENEUDIrTENEUDApICAvKiBTMCAgLSBTMzEgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNyAgICAgICAgICAgICAgICAgKExDRFAyK0xDRFAxKSAgLyogUzAgIC0gUzM1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPR09GRiAgICAgICAgICAgIChMQ0RQMitMQ0RQMStMQ0RQMCkgICAgICAgLyogUzAgIC0gUzM5ICAgc2VlIERhdGFzaGVldCAqLworCisjZGVmaW5lIExDRE1FTV8gICAgICAgICAgICAgICAgKDB4MDA5MSkgICAgICAgLyogTENEIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKExDRE1FTV8pICAgICAgLyogTENEIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgTENETUVNXykgLyogTENEIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKExDRE0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEgKi8KK1NGUl84QklUKExDRE0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIgKi8KK1NGUl84QklUKExDRE0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDMgKi8KK1NGUl84QklUKExDRE00KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDQgKi8KK1NGUl84QklUKExDRE01KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDUgKi8KK1NGUl84QklUKExDRE02KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDYgKi8KK1NGUl84QklUKExDRE03KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDcgKi8KK1NGUl84QklUKExDRE04KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDggKi8KK1NGUl84QklUKExDRE05KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDkgKi8KK1NGUl84QklUKExDRE0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEwICovCitTRlJfOEJJVChMQ0RNMTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMSAqLworU0ZSXzhCSVQoTENETTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTIgKi8KK1NGUl84QklUKExDRE0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEzICovCitTRlJfOEJJVChMQ0RNMTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNCAqLworU0ZSXzhCSVQoTENETTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTUgKi8KK1NGUl84QklUKExDRE0xNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE2ICovCitTRlJfOEJJVChMQ0RNMTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNyAqLworU0ZSXzhCSVQoTENETTE4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTggKi8KK1NGUl84QklUKExDRE0xOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE5ICovCitTRlJfOEJJVChMQ0RNMjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAyMCAqLworCisjZGVmaW5lIExDRE1BICAgICAgICAgICAgICAgICAgKExDRE0xMCkgICAgICAgLyogTENEIE1lbW9yeSBBICovCisjZGVmaW5lIExDRE1CICAgICAgICAgICAgICAgICAgKExDRE0xMSkgICAgICAgLyogTENEIE1lbW9yeSBCICovCisjZGVmaW5lIExDRE1DICAgICAgICAgICAgICAgICAgKExDRE0xMikgICAgICAgLyogTENEIE1lbW9yeSBDICovCisjZGVmaW5lIExDRE1EICAgICAgICAgICAgICAgICAgKExDRE0xMykgICAgICAgLyogTENEIE1lbW9yeSBEICovCisjZGVmaW5lIExDRE1FICAgICAgICAgICAgICAgICAgKExDRE0xNCkgICAgICAgLyogTENEIE1lbW9yeSBFICovCisjZGVmaW5lIExDRE1GICAgICAgICAgICAgICAgICAgKExDRE0xNSkgICAgICAgLyogTENEIE1lbW9yeSBGICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVXhDVEwgKi8KKyNkZWZpbmUgUEVOQSAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBQYXJpdHkgZW5hYmxlICovCisjZGVmaW5lIFBFViAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IDA6b2RkIC8gMTpldmVuICovCisjZGVmaW5lIFNQQiAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogU3RvcCBCaXRzIDA6b25lIC8gMTogdHdvICovCisjZGVmaW5lIENIQVIgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogRGF0YSAwOjctYml0cyAvIDE6OC1iaXRzICovCisjZGVmaW5lIExJU1RFTiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTGlzdGVuIG1vZGUgKi8KKyNkZWZpbmUgU1lOQyAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVQVJUIC8gU1BJIG1vZGUgKi8KKyNkZWZpbmUgTU0gICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNYXN0ZXIgTW9kZSBvZmYvb24gKi8KKyNkZWZpbmUgU1dSU1QgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0FSVCBTb2Z0d2FyZSBSZXNldCAqLworCisvKiBVeFRDVEwgKi8KKyNkZWZpbmUgQ0tQSCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTUEk6IENsb2NrIFBoYXNlICovCisjZGVmaW5lIENLUEwgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ2xvY2sgUG9sYXJpdHkgKi8KKyNkZWZpbmUgU1NFTDEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1NFTDAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVVJYU0UgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSZWNlaXZlIFN0YXJ0IGVkZ2Ugc2VsZWN0ICovCisjZGVmaW5lIFRYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVFggV2FrZSB1cCBtb2RlICovCisjZGVmaW5lIFNUQyAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1BJOiBTVEMgZW5hYmxlIDA6b24gLyAxOm9mZiAqLworI2RlZmluZSBUWEVQVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRYIEJ1ZmZlciBlbXB0eSAqLworCisvKiBVeFJDVEwgKi8KKyNkZWZpbmUgRkUgICAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBGcmFtZSBFcnJvciAqLworI2RlZmluZSBQRSAgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSBFcnJvciAqLworI2RlZmluZSBPRSAgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE92ZXJydW4gRXJyb3IgKi8KKyNkZWZpbmUgQlJLICAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBkZXRlY3RlZCAqLworI2RlZmluZSBVUlhFSUUgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJYIEVycm9yIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVVJYV0lFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSWCBXYWtlIHVwIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgUlhXQUtFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSWCBXYWtlIHVwIGRldGVjdCAqLworI2RlZmluZSBSWEVSUiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJYIEVycm9yIEVycm9yICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQgMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVUFSVDBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCitTRlJfOEJJVChVME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFUwQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVMEJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFUwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKworI2RlZmluZSBVQ1RMMCAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDAgICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDAgICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMCAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDAgICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwICAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjAgICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwICAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMMF8gICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDBfICAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDBfICAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMF8gICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDBfICAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwXyAgICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjBfICAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwXyAgICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMCAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMCAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzBfICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wXyAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wXyAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzBfICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wXyAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMF8gICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wXyAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMF8gICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQUNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQUNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl84ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWX1RBSUZHICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBIQVJEV0FSRSBNVUxUSVBMSUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19NUFlfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoTVBZKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTVBZUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQ1MpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChPUDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl8xNkJJVChSRVNMTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl8xNkJJVChSRVNISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgSGlnaCBXb3JkICovCitTRlJfMTZCSVQoU1VNRVhUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VtIEV4dGVuZCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNEMTYgLSBTaWdtYSBEZWx0YSAxNiBCaXQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NEMTZfMl9fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNEMTZJTkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAwICovCitTRlJfOEJJVChTRDE2SU5DVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnB1dCBDb250cm9sIFJlZ2lzdGVyIENoYW5uZWwgMSAqLworU0ZSXzhCSVQoU0QxNlBSRTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgUHJlbG9hZCBSZWdpc3RlciBDaGFubmVsIDAgKi8KK1NGUl84QklUKFNEMTZQUkUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IFByZWxvYWQgUmVnaXN0ZXIgQ2hhbm5lbCAxICovCitTRlJfOEJJVChTRDE2Q09ORjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcm5hbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFNEMTZDT05GMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVybmFsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQbGVhc2UgdXNlIG9ubHkgdGhlIHJlY29tbWVuZGVkIHNldHRpbmdzICovCisKK1NGUl8xNkJJVChTRDE2Q1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTaWdtYSBEZWx0YSBBREMgMTYgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAwIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2Q0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMSBDb250cm9sIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgVmVjdG9yIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNk1FTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDAgQ29udmVyc2lvbiBNZW1vcnkgKi8KK1NGUl8xNkJJVChTRDE2TUVNMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMSBDb252ZXJzaW9uIE1lbW9yeSAqLworCisvKiBTRDE2SU5DVEx4IC0gQUZFSU5DVEx4ICovCisjZGVmaW5lIFNEMTZJTkNIMCAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZJTkNIMSAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZJTkNIMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAyICovCisjZGVmaW5lIFNEMTZHQUlOMCAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNkdBSU4xICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgMSAqLworI2RlZmluZSBTRDE2R0FJTjIgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAyICovCisjZGVmaW5lIFNEMTZJTlRETFkwICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXkgYWZ0ZXIgMS5Db252ZXJzaW9uIDAgKi8KKyNkZWZpbmUgU0QxNklOVERMWTEgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheSBhZnRlciAxLkNvbnZlcnNpb24gMSAqLworCisjZGVmaW5lIFNEMTZHQUlOXzEgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICoxICAqLworI2RlZmluZSBTRDE2R0FJTl8yICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMiAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fNCAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjQgICovCisjZGVmaW5lIFNEMTZHQUlOXzggICAgICAgICAgICAgKDB4MDAxOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICo4ICAqLworI2RlZmluZSBTRDE2R0FJTl8xNiAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMTYgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMzIgICAgICAgICAgICAoMHgwMDI4KSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjMyICovCisKKyNkZWZpbmUgU0QxNklOQ0hfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzEgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF8yICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfMyAgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzQgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF81ICAgICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNiAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IFRlbXAgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNyAgICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IE9mZnNldCAqLworCisjZGVmaW5lIFNEMTZJTlRETFlfMCAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgNC5Db252ZXJzaW9uICAqLworI2RlZmluZSBTRDE2SU5URExZXzEgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDMuQ29udmVyc2lvbiAgKi8KKyNkZWZpbmUgU0QxNklOVERMWV8yICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheTogSW50LiBhZnRlciAyLkNvbnZlcnNpb24gICovCisjZGVmaW5lIFNEMTZJTlRETFlfMyAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgMS5Db252ZXJzaW9uICAqLworCisvKiBTRDE2Q1RMIC0gQUZFQ1RMICovCisjZGVmaW5lIFNEMTZPVklFICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBPdmVyZmxvdyBJbnRlcnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgU0QxNlJFRk9OICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IFN3aXRjaCBpbnRlcm5hbCBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgU0QxNlZNSURPTiAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IFN3aXRjaCBWbWlkIEJ1ZmZlciBvbiAqLworI2RlZmluZSBTRDE2U1NFTDAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZTU0VMMSAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkRJVjAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNkRJVjEgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkxQICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTRDE2IExvdyBQb3dlciBNb2RlIEVuYWJsZSAqLworCisjZGVmaW5lIFNEMTZESVZfMCAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvMSAqLworI2RlZmluZSBTRDE2RElWXzEgICAgICAgICAgICAgIChTRDE2RElWMCkgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzIgKi8KKyNkZWZpbmUgU0QxNkRJVl8yICAgICAgICAgICAgICAoU0QxNkRJVjEpICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC80ICovCisjZGVmaW5lIFNEMTZESVZfMyAgICAgICAgICAgIChTRDE2RElWMCtTRDE2RElWMSkgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvOCAqLworCisjZGVmaW5lIFNEMTZTU0VMXzAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IE1DTEsgICovCisjZGVmaW5lIFNEMTZTU0VMXzEgICAgICAgICAgICAgKFNEMTZTU0VMMCkgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IFNNQ0xLICovCisjZGVmaW5lIFNEMTZTU0VMXzIgICAgICAgICAgICAgKFNEMTZTU0VMMSkgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IEFDTEsgICovCisjZGVmaW5lIFNEMTZTU0VMXzMgICAgICAgICAgIChTRDE2U1NFTDArU0QxNlNTRUwxKSAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IFRBQ0xLICovCisKKy8qIFNEMTZDQ1RMeCAtIEFGRUNDVEx4ICovCisjZGVmaW5lIFNEMTZHUlAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBHcm91cGluZyBvZiBDaGFubmVsczogMDpPZmYvMTpPbiAqLworI2RlZmluZSBTRDE2U0MgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBTRDE2SUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFNEMTZJRSAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBTRDE2REYgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IERhdGEgRm9ybWF0OiAwOlVuaXBvbGFyLzE6Qmlwb2xhciAqLworI2RlZmluZSBTRDE2T1ZJRkcgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJmbG93IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFNEMTZMU0JBQ0MgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggQWNjZXNzIExTQiBvZiBBREMgKi8KKyNkZWZpbmUgU0QxNkxTQlRPRyAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBUb2dnbGUgTFNCIE91dHB1dCBvZiBBREMgKi8KKyNkZWZpbmUgU0QxNk9TUjAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMCAqLworI2RlZmluZSBTRDE2T1NSMSAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAxICovCisjZGVmaW5lIFNEMTZTTkdMICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggU2luZ2xlIENvbnZlcnNpb24gT24vT2ZmICovCisKKyNkZWZpbmUgU0QxNk9TUl8yNTYgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMjU2ICovCisjZGVmaW5lIFNEMTZPU1JfMTI4ICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDEyOCAqLworI2RlZmluZSBTRDE2T1NSXzY0ICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAgNjQgKi8KKyNkZWZpbmUgU0QxNk9TUl8zMiAgICAgICAgICAgICAoMHgwMzAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gIDMyICovCisKKy8qIFNEMTZJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBTRDE2SVZfTk9ORSAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFNEMTZJVl9TRDE2T1ZJRkcgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNk9WSUZHICovCisjZGVmaW5lIFNEMTZJVl9TRDE2TUVNMCAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNk1FTTAgU0QxNklGRyAqLworI2RlZmluZSBTRDE2SVZfU0QxNk1FTTEgICAgICAgICgweDAwMDYpICAgICAgIC8qIFNEMTZNRU0xIFNEMTZJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFU1A0MzBFCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19FU1A0MzBFX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCisjZGVmaW5lIEFGRUlOQ1RMMCAgICAgICAgICAgICAgU0QxNklOQ1RMMCAgICAgLyogQUZFIElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAwICovCisjZGVmaW5lIEFGRUlOQ1RMMSAgICAgICAgICAgICAgU0QxNklOQ1RMMSAgICAgLyogQUZFIElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAxICovCisjZGVmaW5lIEFGRUNUTCAgICAgICAgICAgICAgICAgU0QxNkNUTCAgICAgICAgLyogQW5hbG9nIEZyb250IEVuZCBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIEFGRUNDVEwwICAgICAgICAgICAgICAgU0QxNkNDVEwwICAgICAgLyogQUZFIENoYW5uZWwgMCBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIEFGRUNDVEwxICAgICAgICAgICAgICAgU0QxNkNDVEwxICAgICAgLyogQUZFIENoYW5uZWwgMSBDb250cm9sIFJlZ2lzdGVyICovCisKK1NGUl8xNkJJVChFU1BDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKE1CQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1haWxib3ggQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKE1CSU4wKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEluY29taW5nIE1haWxib3ggMCBSZWdpc3RlciAqLworU0ZSXzE2QklUKE1CSU4xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEluY29taW5nIE1haWxib3ggMSBSZWdpc3RlciAqLworU0ZSXzE2QklUKE1CT1VUMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE91dGdvaW5nIE1haWxib3ggMCBSZWdpc3RlciAqLworU0ZSXzE2QklUKE1CT1VUMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE91dGdvaW5nIE1haWxib3ggMSBSZWdpc3RlciAqLworCitTRlJfMTZCSVQoRVNQNDMwX1NUQVQwKTsgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAwICovCitTRlJfMTZCSVQoRVNQNDMwX1NUQVQxKTsgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxICovCitTRlJfMTZCSVQoV0FWRUZTVjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyICovCitTRlJfMTZCSVQoUkVUMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAzICovCitTRlJfMTZCSVQoUkVUNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA0ICovCitTRlJfMTZCSVQoV0FWRUZTSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA1ICovCitTRlJfMTZCSVQoUkVUNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA3ICovCitTRlJfMTZCSVQoQUNURU5FUkdZMV9MTyk7ICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA4ICovCitTRlJfMTZCSVQoQUNURU5FUkdZMV9ISSk7ICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA5ICovCitTRlJfMTZCSVQoUkVBQ1RFTkVSR1lfTE8pOyAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxMiAqLworU0ZSXzE2QklUKFJFQUNURU5FUkdZX0hJKTsgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMTMgKi8KK1NGUl8xNkJJVChBUFBFTkVSR1lfTE8pOyAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDE0ICovCitTRlJfMTZCSVQoQVBQRU5FUkdZX0hJKTsgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxNSAqLworU0ZSXzE2QklUKEFDVEVOU1BFUjFfTE8pOyAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMTYgKi8KK1NGUl8xNkJJVChBQ1RFTlNQRVIxX0hJKTsgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDE3ICovCitTRlJfMTZCSVQoSVJNU18yX0xPKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxOCAqLworU0ZSXzE2QklUKElSTVNfMl9ISSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMTkgKi8KK1NGUl8xNkJJVChQT1dFUkZDVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDIwICovCisvL2NvbnN0IHNmcncgUkVTRVJWRUQgICAgICAgICAoMHgwMUVBKSAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyMSAqLworU0ZSXzE2QklUKE1BSU5TUEVSSU9EKTsgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMjIgKi8KK1NGUl8xNkJJVChWMVJNUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDIzICovCitTRlJfMTZCSVQoSVJNU19MTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyNCAqLworU0ZSXzE2QklUKElSTVNfSEkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMjUgKi8KK1NGUl8xNkJJVChWUEVBSyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDI2ICovCitTRlJfMTZCSVQoSVBFQUspOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyNyAqLworU0ZSXzE2QklUKExJTkVDWUNMQ05UX0xPKTsgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMjggKi8KK1NGUl8xNkJJVChMSU5FQ1lDTENOVF9ISSk7ICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDI5ICovCitTRlJfMTZCSVQoTk1CTUVBU19MTyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAzMCAqLworU0ZSXzE2QklUKE5NQk1FQVNfSEkpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMzEgKi8KKworI2RlZmluZSBSRVQwICAgICAgICAgICAgICAgICAgIEVTUDQzMF9TVEFUMCAgIC8qIFNUQVRVUzAgb2YgRVNQNDMwICovCisjZGVmaW5lIFJFVDEgICAgICAgICAgICAgICAgICAgRVNQNDMwX1NUQVQxICAgLyogU1RBVFVTMSBvZiBFU1A0MzAgKi8KKyNkZWZpbmUgUkVUMiAgICAgICAgICAgICAgICAgICBXQVZFRlNWMSAgICAgICAvKiBXYXZlZm9ybSBTYW1wbGUgVjEgb2Zmc2V0IGNvcnJlY3RlZCovCisjZGVmaW5lIFJFVDUgICAgICAgICAgICAgICAgICAgV0FWRUZTSTEgICAgICAgLyogV2F2ZWZvcm0gU2FtcGxlIEkxIG9mZnNldCBjb3JyZWN0ZWQqLworLy8jZGVmaW5lIFJFVDYgICAgICAgICAgUkVTRVJWRUQgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgUkVUOCAgICAgICAgICAgICAgICAgICBBQ1RFTkVSR1kxX0xPICAvKiBBY3RpdmUgZW5lcmd5IEkxIExvdyBXb3JkICovCisjZGVmaW5lIFJFVDkgICAgICAgICAgICAgICAgICAgQUNURU5FUkdZMV9ISSAgLyogQWN0aXZlIGVuZXJneSBJMSBIaWdoIFdvcmQgKi8KKy8vI2RlZmluZSBSRVQxMCAgICAgICAgICBSRVNFUlZFRCAgICAgICAvKiBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFVDExICAgICAgICAgIFJFU0VSVkVEICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFJFVDEyICAgICAgICAgICAgICAgICAgUkVBQ1RFTkVSR1lfTE8gLyogUmVhY3RpdmUgZW5lcmd5IExvdyBXb3JkICovCisjZGVmaW5lIFJFVDEzICAgICAgICAgICAgICAgICAgUkVBQ1RFTkVSR1lfSEkgLyogUmVhY3RpdmUgZW5lcmd5IEhpZ2ggV29yZCAqLworI2RlZmluZSBSRVQxNCAgICAgICAgICAgICAgICAgIEFQUEVORVJHWV9MTyAgIC8qIEFwcGFyZW50IGVuZXJneSBMb3cgV29yZCAqLworI2RlZmluZSBSRVQxNSAgICAgICAgICAgICAgICAgIEFQUEVORVJHWV9ISSAgIC8qIEFwcGFyZW50IGVuZXJneSBIaWdoIFdvcmQgKi8KKyNkZWZpbmUgUkVUMTYgICAgICAgICAgICAgICAgICBBQ1RFTlNQRVIxX0xPICAvKiBBY3RpdmUgZW5lcmd5IEkxIGZvciBsYXN0IG1haW5zIHBlcmlvZCBMb3cgV29yZCAqLworI2RlZmluZSBSRVQxNyAgICAgICAgICAgICAgICAgIEFDVEVOU1BFUjFfSEkgIC8qIEFjdGl2ZSBlbmVyZ3kgSTEgZm9yIGxhc3QgbWFpbnMgcGVyaW9kIEhpZ2ggV29yZCAqLworI2RlZmluZSBSRVQxOCAgICAgICAgICAgICAgICAgIElSTVNfMl9MTyAgICAgIC8qIEN1cnJlbnQgUk1TIHZhbHVlIGxhc3Qgc2Vjb25kIEkxIExvdyBXb3JkICovCisjZGVmaW5lIFJFVDE5ICAgICAgICAgICAgICAgICAgSVJNU18yX0hJICAgICAgLyogQ3VycmVudCBSTVMgdmFsdWUgbGFzdCBzZWNvbmQgSTEgSGlnaCBXb3JkICovCisjZGVmaW5lIFJFVDIwICAgICAgICAgICAgICAgICAgUE9XRVJGQ1QgICAgICAgLyogUG93ZXIgZmFjdG9yICovCisvLyNkZWZpbmUgUkVUMjEgICAgICAgICAgUkVTRVJWRUQgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgUkVUMjIgICAgICAgICAgICAgICAgICBNQUlOU1BFUklPRCAgICAvKiBNYWlucyBwZXJpb2QgKi8KKyNkZWZpbmUgUkVUMjMgICAgICAgICAgICAgICAgICBWMVJNUyAgICAgICAgICAvKiBWb2x0YWdlIFJNUyBWMSB2YWx1ZSBsYXN0IHNlY29uZCAqLworI2RlZmluZSBSRVQyNCAgICAgICAgICAgICAgICAgIElSTVNfTE8gICAgICAgIC8qIEN1cnJlbnQgUk1TIHZhbHVlIGxhc3Qgc2Vjb25kIEkxIExvdyBXb3JkICovCisjZGVmaW5lIFJFVDI1ICAgICAgICAgICAgICAgICAgSVJNU19ISSAgICAgICAgLyogQ3VycmVudCBSTVMgdmFsdWUgbGFzdCBzZWNvbmQgSTEgSGlnaCBXb3JkICovCisjZGVmaW5lIFJFVDI2ICAgICAgICAgICAgICAgICAgVlBFQUsgICAgICAgICAgLyogVm9sdGFnZSBWMSBhYnNvbHV0ZSBwZWFrIHZhbHVlICovCisjZGVmaW5lIFJFVDI3ICAgICAgICAgICAgICAgICAgSVBFQUsgICAgICAgICAgLyogQ3VycmVudCBhYnNvbHV0ZSBwZWFrIHZhbHVlIEkxICovCisjZGVmaW5lIFJFVDI4ICAgICAgICAgICAgICAgICAgTElORUNZQ0xDTlRfTE8gLyogTGluZSBjeWNsZSBjb3VudGVyIExvdyBXb3JkICovCisjZGVmaW5lIFJFVDI5ICAgICAgICAgICAgICAgICAgTElORUNZQ0xDTlRfSEkgLyogTGluZSBjeWNsZSBjb3VudGVyIEhpZ2ggV29yZCAqLworI2RlZmluZSBSRVQzMCAgICAgICAgICAgICAgICAgIE5NQk1FQVNfTE8gICAgIC8qIE51bWJlciBvZiBNZWFzdXJlbWVudHMgZm9yIENQVSBzaWduYWwgTG93IFdvcmQgKi8KKyNkZWZpbmUgUkVUMzEgICAgICAgICAgICAgICAgICBOTUJNRUFTX0hJICAgICAvKiBOdW1iZXIgb2YgTWVhc3VyZW1lbnRzIGZvciBDUFUgc2lnbmFsIEhpZ2ggV29yZCAqLworCisvKiBFU1BDVEwgKi8KKyNkZWZpbmUgRVNQRU4gICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBFU1A0MzAgTW9kdWxlIGVuYWJsZSAqLworI2RlZmluZSBFU1BTVVNQICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVTUDQzMCBNb2R1bGUgc3VzcGVuZCAqLworI2RlZmluZSBJUkVRICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIE5PVCBzdXBwb3J0ZWQgYnkgY3VycmVudCBFU1A0MzAgU29mdHdhcmUgKi8KKworLyogUkVUMCAtIFN0YXR1czAgRmxhZ3MgKi8KKyNkZWZpbmUgV0ZTUkRZRkcgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBOZXcgd2F2ZWZvcm0gU2FtcGxlcyByZWFkeSBGbGFnICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgKDB4MDAwMikgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIElMUkVBQ0hFREZHICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogSW50ZXJydXB0IGxldmVsIHJlYWNoZWQgRmxhZyAqLworI2RlZmluZSBFTlJEWUZHICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIE5ldyBFbmVyZ3kgdmFsdWVzIHJlYWR5IEZsYWcgKi8KKyNkZWZpbmUgWlhMREZHICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBaZXJvIENyb3NzaW5nIG9mIFYxIEZsYWcgKGxlYWRpbmcgZWRnZSkgKi8KKyNkZWZpbmUgWlhUUkZHICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBaZXJvIENyb3NzaW5nIG9mIFYxIEZsYWcgKHRyYWlsaW5nIGVkZ2UpICovCisjZGVmaW5lIENBTFJEWUZHICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQ2FsaWJyYXRpb24gdmFsdWVzIHJlYWR5IEZsYWcgKi8KKyNkZWZpbmUgVEFNUEZHICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUYW1wZXJpbmcgT2NjdXJlZCBGbGFnICovCisjZGVmaW5lIE5FR0VORkcgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogTmVnYXRpdiBFbmVyZ3kgRmxhZyAqLworI2RlZmluZSBWRFJPUEZHICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFZvbHRhZ2UgZHJvcCBvY2N1cmVkIEZsYWcgKi8KKyNkZWZpbmUgVlBFQUtGRyAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBWb2x0YWdlIGV4Y2VlZCBWUGVhayBsZXZlbCBGbGFnICovCisjZGVmaW5lIEkxUEVBS0ZHICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ3VycmVudCBleGNlZWQgSTFQZWFrIGxldmVsIEZsYWcgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAoMHgxMDAwKSAgLyogUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAoMHgyMDAwKSAgLyogUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAoMHg0MDAwKSAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgQUNUSVZFRkcgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBNZWFzdXJlbWVudCBvciBDYWxpYnJhdGlvbiBydW5uaW5nIEZsYWcgKi8KKworLyogUkVUMSAtIFN0YXR1czEgRmxhZ3MgKi8KKyNkZWZpbmUgSUxORUdGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBOZWdhdGl2ZSBJbnRlcnJ1cHQgbGV2ZWwgcmVhY2hlZCBGbGFnICovCisjZGVmaW5lIFZQRUFLTkVHRkcgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTmVnYXRpdmUgVm9sdGFnZSBleGNlZWQgVlBlYWsgbGV2ZWwgRmxhZyAqLworI2RlZmluZSBJMVBFQUtORUdGRyAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIE5lZ2F0aXZlIEN1cnJlbnQgZXhjZWVkIEkxUGVhayBsZXZlbCBGbGFnICovCisKKy8qIE1CQ1RMICovCisjZGVmaW5lIElOMElGRyAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSW5jb21pbmcgTWFpbCAwIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIElOMUlGRyAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSW5jb21pbmcgTWFpbCAxIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIE9VVDBGRyAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogT3V0Z29pbmcgTWFpbCAwIEZsYWcgKi8KKyNkZWZpbmUgT1VUMUZHICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBPdXRnb2luZyBNYWlsIDEgRmxhZyAqLworI2RlZmluZSBJTjBJRSAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEluY29taW5nIE1haWwgMCBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIElOMUlFICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogSW5jb21pbmcgTWFpbCAxIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0xSME9GRiAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTd2l0Y2ggb2ZmIGF1dG9tYXRpYyBjbGVhciBvZiBJTjBJRkcgKi8KKyNkZWZpbmUgQ0xSMU9GRiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTd2l0Y2ggb2ZmIGF1dG9tYXRpYyBjbGVhciBvZiBJTjFJRkcgKi8KKyNkZWZpbmUgT1VUMElGRyAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBPdXRnb2luZyBNYWlsIDAgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgT1VUMUlGRyAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBPdXRnb2luZyBNYWlsIDEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgT1VUMElFICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBPdXRnb2luZyBNYWlsIDAgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBPVVQxSUUgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIE91dGdvaW5nIE1haWwgMSBJbnRlcnJ1cHQgRW5hYmxlICovCisKKy8qIE1lc3NhZ2VzIHRvIEVTUCAqLworI2RlZmluZSBtUkVTRVQgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFJlc3RhcnQgRVNQNDMwIFNvZnR3YXJlICovCisjZGVmaW5lIG1TRVRfTU9ERSAgICAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogU2V0IE9wZXJhdGlvbiBNb2RlIGZvciBFU1A0MzAgU29mdHdhcmUgKi8KKyNkZWZpbmUgbUNMUl9FVkVOVCAgICAgICAgICAgICAoMHgwMDA1KSAgICAgICAvKiBDbGVhciBGbGFncyBmb3IgRVNQNDMwIFNvZnR3YXJlICovCisjZGVmaW5lIG1JTklUICAgICAgICAgICAgICAgICAgKDB4MDAwNykgICAgICAgLyogSW5pdGlhbGl6ZSBFU1A0MzAgU29mdHdhcmUgKi8KKyNkZWZpbmUgbVRFTVAgICAgICAgICAgICAgICAgICAoMHgwMDA5KSAgICAgICAvKiBSZXF1ZXN0IFRlbXAuIE1lYXN1cmVtZW50IGZyb20gRVNQNDMwIFNvZnR3YXJlICovCisjZGVmaW5lIG1TV1ZFUlNJT04gICAgICAgICAgICAgKDB4MDAwQikgICAgICAgLyogUmVxdWVzdCBzb2Z0d2FyZSB2ZXJzaW9uIG9mIEVTUDQzMCAqLworI2RlZmluZSBtUkVBRF9QQVJBTSAgICAgICAgICAgICgweDAwMEQpICAgICAgIC8qIFJlcXVlc3QgdG8gcmVhZCB0aGUgcGFyYW1ldGVyIHdpdGggbm8uIJNQYXJhbWV0ZXIgTm8ulCAqLworCisjZGVmaW5lIG1TRVRfQ1RSTDAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogU2V0IENvbnRyb2wgUmVnaXN0ZXIgMCAqLworI2RlZmluZSBtU0VUX0NUUkwxICAgICAgICAgICAgICgweDAyMDIpICAgICAgIC8qIFNldCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KKyNkZWZpbmUgbVNFVF9FVkVOVCAgICAgICAgICAgICAoMHgwMjA0KSAgICAgICAvKiBTZXQgd2hpY2ggRXZlbmV0cyBzaG91bGQgY2F1c2UgYW4gbWVzc2FnZSAqLworI2RlZmluZSBtU0VUX1BIQVNFQ09SUjEgICAgICAgICgweDAyMDYpICAgICAgIC8qIFNldCBQaGFzZSBDb3JyZWN0aW9uIGZvIEkxICovCisjZGVmaW5lIG1TRVRfVjFPRkZTRVQgICAgICAgICAgKDB4MDIwQSkgICAgICAgLyogU2V0IE9mZnNldCBmb3IgVjEgKi8KKyNkZWZpbmUgbVNFVF9JMU9GRlNFVCAgICAgICAgICAoMHgwMjBDKSAgICAgICAvKiBTZXQgT2Zmc2V0IGZvciBJMSAqLworI2RlZmluZSBtU0VUX0FEQVBUSTEgICAgICAgICAgICgweDAyMTApICAgICAgIC8qIFNldCBBZGFwdGlvbiBmYWN0b3IgZm9yIEkxICovCisjZGVmaW5lIG1TRVRfR0FJTkNPUlIxICAgICAgICAgKDB4MDIxNCkgICAgICAgLyogU2V0IEdhaW4gQ29ycmVjdGlvbiBmb3IgUG93ZXIgUDEgKi8KKyNkZWZpbmUgbVNFVF9QT0ZGU0VUMV9MTyAgICAgICAoMHgwMjE2KSAgICAgICAvKiBTZXQgUG93ZXIgT2Zmc2V0IGZvciBQb3dlciBQMSAqLworI2RlZmluZSBtU0VUX1BPRkZTRVQxX0hJICAgICAgICgweDAyMTgpICAgICAgIC8qIFNldCBQb3dlciBPZmZzZXQgZm9yIFBvd2VyIFAxICovCisjZGVmaW5lIG1TRVRfSU5UUlBUTEVWTF9MTyAgICAgKDB4MDIyMCkgICAgICAgLyogU2V0IEludGVycnVwdCBMZXZlbCAqLworI2RlZmluZSBtU0VUX0lOVFJQVExFVkxfSEkgICAgICgweDAyMjIpICAgICAgIC8qIFNldCBJbnRlcnJ1cHQgTGV2ZWwgKi8KKyNkZWZpbmUgbVNFVF9DQUxDWUNMQ05UICAgICAgICAoMHgwMjI0KSAgICAgICAvKiBTZXQgbnVtYmVyIG9mIG1haW4gY3ljbGVzIGZvciBjYWxpYnJhdGlvbiAqLworI2RlZmluZSBtU0VUX1NUQVJUQ1VSUl9GUkFDICAgICgweDAyMjYpICAgICAgIC8qIFNldCBzdGFydCBjdXJyZW50IGZyYWN0aW9uYWwgUGFydCovCisjZGVmaW5lIG1TRVRfU1RBUlRDVVJSX0lOVCAgICAgKDB4MDIyOCkgICAgICAgLyogU2V0IHN0YXJ0IGN1cnJlbnQgaW50ZWdlciBQYXJ0Ki8KKyNkZWZpbmUgbVNFVF9OT01GUkVRICAgICAgICAgICAoMHgwMjJBKSAgICAgICAvKiBTZXQgbm9taW5hbCBtYWluIGZyZXF1ZW5jeSAqLworI2RlZmluZSBtU0VUX1ZEUk9QQ1lDTFMgICAgICAgICgweDAyMkMpICAgICAgIC8qIFNldCBjeWxjZXMgZm9yIFZEcm9wIGRldGVjdGlvbiAqLworI2RlZmluZSBtU0VUX1JBVElPVEFNUCAgICAgICAgICgweDAyMkUpICAgICAgIC8qIFNldCByYXRpbyBmb3IgdGFtcGVyIGRldGVjdGlvbiAqLworI2RlZmluZSBtU0VUX0lUQU1QICAgICAgICAgICAgICgweDAyMzApICAgICAgIC8qIFNldCBtaW5pbXVtIGN1cnJlbnQgZm9yIHRhbXBlciBkZXRlY3Rpb24gKi8KKyNkZWZpbmUgbVNFVF9WRFJPUExFVkVMICAgICAgICAoMHgwMjMyKSAgICAgICAvKiBTZXQgbGV2ZWwgZm9yIFZEcm9wIGRldGVjdGlvbiAqLworI2RlZmluZSBtU0VUX1ZQRUFLTEVWRUwgICAgICAgICgweDAyMzQpICAgICAgIC8qIFNldCBsZXZlbCBmb3IgVlBlYWsgZGV0ZWN0aW9uICovCisjZGVmaW5lIG1TRVRfSVBFQUtMRVZFTCAgICAgICAgKDB4MDIzNikgICAgICAgLyogU2V0IGxldmVsIGZvciBJUGVhayBkZXRlY3Rpb24gKi8KKyNkZWZpbmUgbVNFVF9EQ1JFTVBFUiAgICAgICAgICAoMHgwMjM4KSAgICAgICAvKiBTZXQgbnVtYmVyIG9mIHBlcmlvZHMgZm9yIERDLXJlbW92YWwgKi8KKworI2RlZmluZSBtU0VUX0RFTFRBVjFNQVggICAgICAgICgweDAyM0EpICAgICAgIC8qIFNldCBtYXguIGNoYW5nZSBvZiBWMSBpZiBWMUZJTFRFUiA9MSAgKi8KKyNkZWZpbmUgbVNFVF9DT1JSQ09NUCAgICAgICAgICAoMHgwMjNDKSAgICAgICAvKiBTZXQgQ29tbW9uIE1vZGUgUmVqZWN0aW9uIHJhdGlvICovCisjZGVmaW5lIG1TRVRfRkFEQ1UgICAgICAgICAgICAgKDB4MDIzRSkgICAgICAgLyogU2V0IEFEQyBzYW1wbGluZyBmcmVxdWVuY3kgZkFEQyAqLworCisvKiBGbGFncyBmb3IgbVNFVF9DVFJMMCAqLworI2RlZmluZSBDVVJSX0kxICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIDA6IEN1cnJlbnQgdHJhbnNmb3JtZXIsIGRjLXRvbCBDVCBvciBzaHVudCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxOiBSb2dvd3NraSBjb2lsIChub3QgeWV0IGltcGxlbWVudGVkKSAqLworI2RlZmluZSBNQiAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEludHJwdCB0byBDUFU6IDA6IGVuZXJneSBsZXZlbCAgMTogI21lYXN1cmVtZW50cyAqLworI2RlZmluZSBORTAgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIE5lZy4gZW5lcmd5IHRyZWF0bWVudDogICAgICAwMDogY2xlYXIgbmVnLiBlbmVyZ3kgKi8KKyNkZWZpbmUgTkUxICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiAwMTogdXNlIGFic29sdXRlIGVuZXJneSAgIDEwOiB1c2UgZW5lcmd5IGFzIGl0IGlzICovCisjZGVmaW5lIERDUkVNX1YxICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogREMgcmVtb3ZhbCBmb3IgVjE6ICAwOiBvZmYgIDE6IG9uICovCisjZGVmaW5lIERDUkVNX0kxICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogREMgcmVtb3ZhbCBmb3IgSTE6ICAwOiBvZmYgIDE6IG9uICovCisjZGVmaW5lIFYxRklMVEVSICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogRW5hYmxlIG9uIFYxIFNwaWtlIEZpbHRlcjogIDA6IG9mZiAgMTogb24gKi8KKworLyogTWVzc2FnZXMgZnJvbSBFU1AgKi8KKyNkZWZpbmUgbUVWRU5UICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBFdmVudCBTdGF0dXMgRmxhZyBmb3IgRVNQNDMwIFNvZnR3YXJlICovCisjZGVmaW5lIG1URU1QUkRZICAgICAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogVGVtcGVyYXR1cmUgbWVhc3VyZW1lbnQgY29tcGxldGVkIGFuZCBpbiBNQklOMSAqLworI2RlZmluZSBtU1dSRFkgICAgICAgICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIFNvZnR3YXJlIHZlcnNpb24gaW4gTUJJTjEgKi8KKyNkZWZpbmUgbVBBUkFNUkRZICAgICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBQYXJhbWV0ZXIgcmVxdWVzdGVkIGJ5IG1SRUFEX1BBUkFNIHJldHVybmVkIGluIE1CSU4xICAqLworI2RlZmluZSBtUEFSQU1TRVQgICAgICAgICAgICAgICgweDAwMDkpICAgICAgIC8qIFBhcmFtZXRlciBoYXMgYmVlbiBzZXQgKi8KKworLyogRVZFTlQ6IEV2ZW50IE1lc3NhZ2UgRW5hYmxlIEJpdHMgKi8KKyNkZWZpbmUgV0ZTUkRZTUUgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBOZXcgd2F2ZWZvcm0gU2FtcGxlcyByZWFkeSAqLworI2RlZmluZSBJTFJFQUNIRURNRSAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEludGVycnVwdCBsZXZlbCByZWFjaGVkICovCisjZGVmaW5lIEVOUkRZTUUgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogTmV3IEVuZXJneSB2YWx1ZXMgcmVhZHkgKi8KKyNkZWZpbmUgWlhMRE1FICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBaZXJvIENyb3NzaW5nIG9mIFYxIChsZWFkaW5nIGVkZ2UpICovCisjZGVmaW5lIFpYVFJNRSAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogWmVybyBDcm9zc2luZyBvZiBWMSAodHJhaWxpbmcgZWRnZSkgKi8KKyNkZWZpbmUgQ0FMUkRZTUUgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBDYWxpYnJhdGlvbiB2YWx1ZXMgcmVhZHkgKi8KKyNkZWZpbmUgVEFNUE1FICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUYW1wZXJpbmcgT2NjdXJlZCAqLworI2RlZmluZSBORUdFTk1FICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIE5lZ2F0aXYgRW5lcmd5ICovCisjZGVmaW5lIFZEUk9QTUUgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVm9sdGFnZSBkcm9wIG9jY3VyZWQgKi8KKyNkZWZpbmUgVlBFQUtNRSAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBWb2x0YWdlIGV4Y2VlZCBWUGVhayBsZXZlbCAqLworI2RlZmluZSBJMVBFQUtNRSAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEN1cnJlbnQgZXhjZWVkIEkxUGVhayBsZXZlbCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4MTAwMCkgIC8qIFJlc2VydmVkICovCisvLyNkZWZpbmUgUkVTRVJWRUQgICAgICAgICAgICAoMHgyMDAwKSAgLyogUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDQwMDApICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBBQ1RJVkVNRSAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIE1lYXN1cmVtZW50IG9mIENhbGlicmF0aW9uIHJ1bm5pbmcgKi8KKworLyogRVNQIE1vZGVzICovCisjZGVmaW5lIG1vZGVJRExFICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU2V0IE1vZGU6IElkbGUgTW9kZSAqLworI2RlZmluZSBtb2RlQ0FMSUJSQVRJT04gICAgICAgICgweDAwMDIpICAgICAgIC8qIFNldCBNb2RlOiBDYWxpYnJhdGlvbiBNb2RlICovCisjZGVmaW5lIG1vZGVNRUFTVVJFICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU2V0IE1vZGU6IE1lYXN1cmUgTW9kZSAqLworI2RlZmluZSBtb2RlUkVTRVQgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFNldCBNb2RlOiBSZXNldCBhbmQgUmVzdGFydCB0aGUgRVNQNDMwIG1vZHVsZSAqLworI2RlZmluZSBtb2RlSU5JVCAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNldCBNb2RlOiBJbml0aWFsaXplIEVTUDQzMCBtb2R1bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBJbnRlcnJ1cHQgVmVjdG9ycyAob2Zmc2V0IGZyb20gMHhGRkUwKQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgdm9pZCAoKiBjb25zdCBWRUNUT1JfTkFNRShuYW1lKSkodm9pZCkgPSAmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pIEVNSVRfUFJBR01BKERBVEFfU0VDVElPTih2ZWN0b3Isc2VjdGlvbikpCisjZGVmaW5lIElTUl9WRUNUT1IoZnVuYyxvZmZzZXQpIENSRUFURV9WRUNUT1IoZnVuYyk7IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUExBQ0VfVkVDVE9SKFZFQ1RPUl9OQU1FKGZ1bmMpLCBvZmZzZXQpCisKKyNkZWZpbmUgQkFTSUNUSU1FUl9WRUNUT1IgICAgICAgKDAgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTAgQmFzaWMgVGltZXIgKi8KKy8qI2RlZmluZSBCQVNJQ1RJTUVSX0lTUihmdW5jKSAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDAiKSAgKi8gLyogMHhGRkUwIEJhc2ljIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDEiKSAgKi8gLyogMHhGRkUyIFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDFfVkVDVE9SICAgICAgICAgICAgKDQgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTggUG9ydCAxICovCisvKiNkZWZpbmUgUE9SVDFfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA0IikgICovIC8qIDB4RkZFOCBQb3J0IDEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTFfVkVDVE9SICAgICAgICAgICg1ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovCisvKiNkZWZpbmUgVElNRVJBMV9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA1IikgICovIC8qIDB4RkZFQSBUaW1lciBBIENDMS0yLCBUQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMF9WRUNUT1IgICAgICAgICAgKDYgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUkEwX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDYiKSAgKi8gLyogMHhGRkVDIFRpbWVyIEEgQ0MwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBUWF9WRUNUT1IgICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNBUlQwVFhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBSWF9WRUNUT1IgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBVU0FSVCAwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0FSVDBSWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworCisjZGVmaW5lIFNEMTZfVkVDVE9SICAgICAgICAgICAgICgxMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY4IFNpZ21hIERlbHRhIEFEQyAqLworLyojZGVmaW5lIFNEMTZfSVNSKGZ1bmMpICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMiIpICAqLyAvKiAweEZGRjggU2lnbWEgRGVsdGEgQURDICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBFU1A0MzBfVkVDVE9SICAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBFU1A0MzAgTWFpbGJveCAqLworLyojZGVmaW5lIEVTUDQzMF9JU1IoZnVuYykgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgRVNQNDMwIE1haWxib3ggKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDE0ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE0IikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgxNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRW5kIG9mIE1vZHVsZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogZXh0ZXJuICJDIiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX21zcDQzMHhFNDJ4MiAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweGU0MnhhLmggYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweGU0MnhhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU3NDRiNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4ZTQyeGEuaApAQCAtMCwwICsxLDEwNTYgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweEU0MnhBIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuMgorKgorKgorKiBSZXYuIDEuMCwgIEluaXRpYWwgVmVyc2lvbgorKiBSZXYuIDEuMSwgIERlZmluaXRpb24gb2YgQ0FQSU5EIHJlbW92ZWQKKyogUmV2LiAxLjIsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHhFNDJ4CisjZGVmaW5lIF9fbXNwNDMweEU0MngKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBJRSAgICAgICAgICAgICAgICAgICBJRTEgICAgICAgICAgICAvKiBVQVJUMCBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFVSWElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElFMCAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFUwSUZHICAgICAgICAgICAgICAgICAgSUZHMSAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEZsYWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVJYSUZHMCAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYSUZHMCAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoTUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1vZHVsZSBFbmFibGUgMSAqLworI2RlZmluZSBVME1FICAgICAgICAgICAgICAgICAgIE1FMSAgICAgICAgICAgIC8qIFVBUlQwIE1vZHVsZSBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYRTAgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYRTAgICAgICAgICAgICAgICAgICAoMHg4MCkKKyNkZWZpbmUgVVNQSUUwICAgICAgICAgICAgICAgICAoMHg0MCkKKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBCVElFICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgICAgICgweDgwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCQVNJQyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQlRfXyAgICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIkJUIiAqLworI2RlZmluZSBCVElQMCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBCVElQMSAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBCVElQMiAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBCVEZSRlEwICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBCVEZSRlExICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBCVERJViAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZDTEsyID0gQUNMSzoyNTYgKi8KKyNkZWZpbmUgQlRIT0xEICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBCVDEgaXMgaGVsZCBpZiB0aGlzIGJpdCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRTU0VMICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBmQlQgPSBmTUNMSyAobWFpbiBjbG9jaykgKi8KKworU0ZSXzhCSVQoQlRDTlQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDEgKi8KK1NGUl84QklUKEJUQ05UMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAyICovCisKKy8qIEZyZXF1ZW5jeSBvZiB0aGUgQlRDTlQyIGNvZGVkIHdpdGggQml0IDUgYW5kIDcgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfQUNMSyAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgQlRfZkNMSzJfQUNMS19ESVYyNTYgICAoQlRESVYpCisjZGVmaW5lIEJUX2ZDTEsyX01DTEsgICAgICAgICAgKEJUU1NFTCkKKworLyogSW50ZXJydXB0IGludGVydmFsIHRpbWUgZklOVCBjb2RlZCB3aXRoIEJpdHMgMC0yIGluIEJUQ1RMICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZklOVCA9IGZDTEsyOjIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjQgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjQgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWOCAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiBmSU5UID0gZkNMSzI6OCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxNiAgICAgICAgIChCVElQMStCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjoxNiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYzMiAgICAgICAgIChCVElQMikgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjozMiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY2NCAgICAgICAgIChCVElQMitCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjo2NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxMjggICAgICAgIChCVElQMitCVElQMSkgIC8qIGZJTlQgPSBmQ0xLMjoxMjggKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMjU2ICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIGZJTlQgPSBmQ0xLMjoyNTYgKi8KKy8qIEZyZXF1ZW5jeSBvZiBMQ0QgY29kZWQgd2l0aCBCaXRzIDMtNCAqLworI2RlZmluZSBCVF9mTENEX0RJVjMyICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzozMiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVY2NCAgICAgICAgICAoQlRGUkZRMCkgICAgICAvKiBmTENEID0gZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYxMjggICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmTENEID0gZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMjU2ICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmTENEID0gZkFDTEs6MjU2ICovCisvKiBMQ0QgZnJlcXVlbmN5IHZhbHVlcyB3aXRoIGZCVD1mQUNMSyAqLworI2RlZmluZSBCVF9mTENEXzFLICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEXzUxMiAgICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZBQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfMjU2ICAgICAgICAgICAgKEJURlJGUTEpICAgICAgLyogZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfMTI4ICAgICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZNQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMzFLICAgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogZk1DTEs6MzIgKi8KKyNkZWZpbmUgQlRfZkxDRF8xNV81SyAgICAgICAoQlRTU0VMK0JURlJGUTApICAgICAgICAgIC8qIGZNQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfN184SyAgICAgICAgKEJUU1NFTCtCVEZSRlExK0JURlJGUTApICAvKiBmTUNMSzoyNTYgKi8KKy8qIHdpdGggYXNzdW1lZCB2bHVlcyBvZiBmQUNMSz0zMktIeiwgZk1DTEs9MU1IeiAqLworLyogZkJUPWZBQ0xLIGlzIHRob3VnaHQgZm9yIGxvbmdlciBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9BRExZXzBfMDY0ICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIDAuMDY0bXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX0FETFlfMF8xMjUgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF8yNSAgICAgICAgICAgKEJUSVAxKSAgICAgICAgLyogMC4yNW1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF81ICAgICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogMC41bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMSAgICAgICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogMW1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMiAgICAgICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogMm1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNCAgICAgICAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogNG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfOCAgICAgICAgICAgKEJUSVAyK0JUSVAxK0JUSVAwKSAgICAgICAvKiA4bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xNiAgICAgICAgICAgICAoQlRESVYpICAgICAgICAvKiAxNm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8zMiAgICAgICAgICAgICAoQlRESVYrQlRJUDApICAvKiAzMm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV82NCAgICAgICAgICAgICAoQlRESVYrQlRJUDEpICAvKiA2NG1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMjUgICAgICAgICAoQlRESVYrQlRJUDErQlRJUDApICAgICAgIC8qIDEyNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzI1MCAgICAgICAgICAgIChCVERJVitCVElQMikgIC8qIDI1MG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzUwMCAgICAgICAgIChCVERJVitCVElQMitCVElQMCkgICAgICAgLyogNTAwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxKSAgICAgICAvKiAxMDAwbXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDErQlRJUDApIC8qIDIwMDBtcyAgICAgIiAqLworLyogZkNMSzI9Zk1DTEsgKDFNSHopIGlzIHRob3VnaHQgZm9yIHNob3J0IGludGVydmFsIHRpbWVzICovCisvKiB0aGUgdGltaW5nIGZvciBzaG9ydCBpbnRlcnZhbHMgaXMgbW9yZSBwcmVjaXNlIHRoYW4gQUNMSyAqLworLyogTk9URSAqLworLyogQmUgc3VyZSB0aGF0IHRoZSBTQ0ZRQ1RMLVJlZ2lzdGVyIGlzIHNldCB0byAwMUZoIHNvIHRoYXQgZk1DTEs9MU1IeiAqLworLyogVG9vIGxvdyBpbnRlcnZhbCB0aW1lIHJlc3VsdHMgaW4gaW50ZXJydXB0cyB0b28gZnJlcXVlbnQgZm9yIHRoZSBwcm9jZXNzb3IgdG8gaGFuZGxlISAqLworI2RlZmluZSBCVF9NRExZXzBfMDAyICAgICAgICAgIChCVFNTRUwpICAgICAgIC8qIDAuMDAybXMgaW50ZXJ2YWwgICAgICAgKioqIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDQgICAgICAgICAgKEJUU1NFTCtCVElQMCkgLyogMC4wMDRtcyAgICAiICAgICAgICAgICAqKiogdG9vIHNob3J0IGZvciAqLworI2RlZmluZSBCVF9NRExZXzBfMDA4ICAgICAgICAgIChCVFNTRUwrQlRJUDEpIC8qIDAuMDA4bXMgICAgIiAgICAgICAgICAgKioqIGludGVycnVwdCAqLworI2RlZmluZSBCVF9NRExZXzBfMDE2ICAgICAgIChCVFNTRUwrQlRJUDErQlRJUDApICAgICAgLyogMC4wMTZtcyAgICAiICAgICAgICAgICAqKiogaGFuZGxpbmcgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAzMiAgICAgICAgICAoQlRTU0VMK0JUSVAyKSAvKiAwLjAzMm1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzA2NCAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAwKSAgICAgIC8qIDAuMDY0bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMTI1ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDEpICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8yNSAgICAgICAgKEJUU1NFTCtCVElQMitCVElQMStCVElQMCkvKiAwLjI1bXMgICAgICIgKi8KKworLyogUmVzZXQvSG9sZCBjb2RlZCB3aXRoIEJpdHMgNi03IGluIEJUKDEpQ1RMICovCisvKiB0aGlzIGlzIGZvciBCVCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMSAgICAgICAgKEJUUkVTRVQpICAgICAgICAgICAvKiBCVENOVDEgaXMgcmVzZXQgd2hpbGUgQlRSRVNFVCBpcyBzZXQgKi8KKy8vI2RlZmluZSBCVFJFU0VUX0NOVDFfMiAgICAgIChCVFJFU0VUK0JURElWKSAgICAgLyogQlRDTlQxIC5BTkQuIEJUQ05UMiBhcmUgcmVzZXQgd2hpbGUgfiBpcyBzZXQgKi8KKy8qIHRoaXMgaXMgZm9yIEJUMSAqLworI2RlZmluZSBCVEhPTERfQ05UMSAgICAgICAgICAgIChCVEhPTEQpICAgICAgIC8qIEJUQ05UMSBpcyBoZWxkIHdoaWxlIEJUSE9MRCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDFfMiAgICAgICAgICAoQlRIT0xEK0JURElWKSAvKiBCVDFDTlQxIC5BTkQuIEJUMUNOVDIgYXJlIGhlbGQgd2hpbGUgfiBpcyBzZXQgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogI2RlZmluZSBCVElFICAgICAgICAgICAgICAgIDB4ODAgKi8KKy8qICNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAweDgwICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1lTVEVNIENMT0NLLCBGTEwrICh4NDF4KQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxMUExVU19TTUFMTF9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0NGSTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAwICovCisjZGVmaW5lIEZOXzIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMS40LTEyTUh6Ki8KKyNkZWZpbmUgRk5fMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBmRENPQ0xLID0gICAyLjItMTdNaHoqLworI2RlZmluZSBGTl80ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDMuMi0yNU1oeiovCisjZGVmaW5lIEZOXzggICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkRDT0NMSyA9ICAgICA1LTQwTWh6Ki8KKyNkZWZpbmUgRkxMRDAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMCAqLworI2RlZmluZSBGTExEMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAxICovCisKKyNkZWZpbmUgRkxMRF8xICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDEgKi8KKyNkZWZpbmUgRkxMRF8yICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDIgKi8KKyNkZWZpbmUgRkxMRF80ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDQgKi8KKyNkZWZpbmUgRkxMRF84ICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDggKi8KKworU0ZSXzhCSVQoU0NGSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAxICovCitTRlJfOEJJVChTQ0ZRQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCisvKiBTeXN0ZW0gY2xvY2sgZnJlcXVlbmN5IHZhbHVlcyBmTUNMSyBjb2RlZCB3aXRoIEJpdHMgMC02IGluIFNDRlFDVEwgKi8KKy8qICNkZWZpbmUgU0NGUV8zMksgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgZk1DTEs9MSpmQUNMSyAgICAgICBvbmx5IGEgcmFuZ2UgZnJvbSAqLworI2RlZmluZSBTQ0ZRXzY0SyAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIGZNQ0xLPTIqZkFDTEsgICAgICAgICAgMSsxIHRvIDEyNysxIGlzIHBvc3NpYmxlICovCisjZGVmaW5lIFNDRlFfMTI4SyAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogZk1DTEs9NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzI1NksgICAgICAgICAgICAgICgweDA3KSAgICAgICAgIC8qIGZNQ0xLPTgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV81MTJLICAgICAgICAgICAgICAoMHgwRikgICAgICAgICAvKiBmTUNMSz0xNipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzFNICAgICAgICAgICAgICAgICgweDFGKSAgICAgICAgIC8qIGZNQ0xLPTMyKmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMk0gICAgICAgICAgICAgICAgKDB4M0YpICAgICAgICAgLyogZk1DTEs9NjQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV80TSAgICAgICAgICAgICAgICAoMHg3RikgICAgICAgICAvKiBmTUNMSz0xMjgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV9NICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2R1bGF0aW9uIERpc2FibGUgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAwICovCisjZGVmaW5lIERDT0YgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRENPIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgTEZPRiAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMb3cgRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFPRiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBPU0NDQVAwICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIE9TQ0NBUDEgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgWFRTX0ZMTCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxOiBTZWxlY3RzIGhpZ2gtZnJlcS4gb3NjaWxsYXRvciAqLworI2RlZmluZSBEQ09QTFVTICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTysgRW5hYmxlICovCisKKyNkZWZpbmUgWENBUDBQRiAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgWENBUDEwUEYgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIFhDQVAxNFBGICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBYQ0FQMThQRiAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzEgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIE9TQ0NBUF8yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBPU0NDQVBfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAxICovCisjZGVmaW5lIEZMTF9ESVYwICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIDAgKi8KKyNkZWZpbmUgRkxMX0RJVjEgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMSAqLworCisjZGVmaW5lIEZMTF9ESVZfMSAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDEgKi8KKyNkZWZpbmUgRkxMX0RJVl8yICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMiAqLworI2RlZmluZSBGTExfRElWXzQgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA0ICovCisjZGVmaW5lIEZMTF9ESVZfOCAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDggKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgMHgwMiAqLworLyogI2RlZmluZSBPRklFICAgICAgICAgICAgICAgIDB4MDIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCcm93bi1PdXQsIFN1cHBseSBWb2x0YWdlIFN1cGVydmlzaW9uIChTVlMpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19TVlNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTVlNDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU1ZTIENvbnRyb2wgKi8KKyNkZWZpbmUgU1ZTRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTVlMgRmxhZyAqLworI2RlZmluZSBTVlNPUCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNWUyBvdXRwdXQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgU1ZTT04gICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTd2l0Y2hlcyB0aGUgU1ZTIG9uL29mZiAqLworI2RlZmluZSBQT1JPTiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEVuYWJsZSBQT1IgR2VuZXJhdGlvbiBpZiBMb3cgVm9sdGFnZSAqLworI2RlZmluZSBWTEQwICAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTEQxICAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBWTEQyICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBWTEQzICAgICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIFZMRE9OICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRE9GRiAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIFZMRF8xXzhWICAgICAgICAgICAgICAgKDB4MTApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogTENECisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19MQ0Q0X18gICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChMQ0RDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIENvbnRyb2wgKi8KKy8qIHRoZSBuYW1lcyBvZiB0aGUgbW9kZSBiaXRzIGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgc3BlYyAqLworI2RlZmluZSBMQ0RPTiAgICAgICAgICAgICAgICAgICgweDAxKQorLy8jZGVmaW5lIExDRExPV1IgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIExDRFNPTiAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIExDRE1YMCAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIExDRE1YMSAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIExDRFAwICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIExDRFAxICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIExDRFAyICAgICAgICAgICAgICAgICAgKDB4ODApCisvKiBEaXNwbGF5IG1vZGVzIGNvZGVkIHdpdGggQml0cyAyLTQgKi8KKyNkZWZpbmUgTENEU1RBVElDICAgICAgICAgICAgICAoTENEU09OKQorI2RlZmluZSBMQ0QyTVVYICAgICAgICAgICAgICAgIChMQ0RNWDArTENEU09OKQorI2RlZmluZSBMQ0QzTVVYICAgICAgICAgICAgICAgIChMQ0RNWDErTENEU09OKQorI2RlZmluZSBMQ0Q0TVVYICAgICAgICAgICAgICAgIChMQ0RNWDErTENETVgwK0xDRFNPTikKKy8qIEdyb3VwIHNlbGVjdCBjb2RlIHdpdGggQml0cyA1LTcgICAgICAgICAgICAgICAgICAgICBTZWcubGluZXMgICBEaWcub3V0cHV0ICovCisjZGVmaW5lIExDRFNHMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogLS0tLS0tLS0tICAgUG9ydCBPbmx5IChkZWZhdWx0KSAqLworI2RlZmluZSBMQ0RTRzBfMSAgICAgICAgICAgICAgIChMQ0RQMCkgICAgICAgIC8qIFMwICAtIFMxNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzIgICAgICAgICAgICAgICAoTENEUDEpICAgICAgICAvKiBTMCAgLSBTMTkgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF8zICAgICAgICAgICAgICAgKExDRFAxK0xDRFAwKSAgLyogUzAgIC0gUzIzICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNCAgICAgICAgICAgICAgIChMQ0RQMikgICAgICAgIC8qIFMwICAtIFMyNyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzUgICAgICAgICAgICAgICAoTENEUDIrTENEUDApICAvKiBTMCAgLSBTMzEgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF82ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAxKSAgLyogUzAgIC0gUzM1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNyAgICAgICAgICAgIChMQ0RQMitMQ0RQMStMQ0RQMCkgICAgICAgLyogUzAgIC0gUzM5ICAgc2VlIERhdGFzaGVldCAqLworLyogTk9URTogWU9VIENBTiBPTkxZIFVTRSBUSEUgJ1MnIE9SICdHJyBERUNMQVJBVElPTlMgRk9SIEEgQ09NTUFORCAqLworLyogTU9WICAjTENEU0cwXzMrTENET0cyXzcsJkxDRENUTCBBQ1RVQUxZIE1FQU5TIE1PViAgI0xDRFAxLCZMQ0RDVEwhICovCisjZGVmaW5lIExDRE9HMV83ICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogLS0tLS0tLS0tICAgUG9ydCBPbmx5IChkZWZhdWx0KSAqLworI2RlZmluZSBMQ0RPRzJfNyAgICAgICAgICAgICAgIChMQ0RQMCkgICAgICAgIC8qIFMwICAtIFMxNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0czXzcgICAgICAgICAgICAgICAoTENEUDEpICAgICAgICAvKiBTMCAgLSBTMTkgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNF83ICAgICAgICAgICAgICAgKExDRFAxK0xDRFAwKSAgLyogUzAgIC0gUzIzICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzVfNyAgICAgICAgICAgICAgIChMQ0RQMikgICAgICAgIC8qIFMwICAtIFMyNyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c2XzcgICAgICAgICAgICAgICAoTENEUDIrTENEUDApICAvKiBTMCAgLSBTMzEgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNyAgICAgICAgICAgICAgICAgKExDRFAyK0xDRFAxKSAgLyogUzAgIC0gUzM1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPR09GRiAgICAgICAgICAgIChMQ0RQMitMQ0RQMStMQ0RQMCkgICAgICAgLyogUzAgIC0gUzM5ICAgc2VlIERhdGFzaGVldCAqLworCisjZGVmaW5lIExDRE1FTV8gICAgICAgICAgICAgICAgKDB4MDA5MSkgICAgICAgLyogTENEIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKExDRE1FTV8pICAgICAgLyogTENEIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgTENETUVNXykgLyogTENEIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKExDRE0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEgKi8KK1NGUl84QklUKExDRE0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIgKi8KK1NGUl84QklUKExDRE0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDMgKi8KK1NGUl84QklUKExDRE00KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDQgKi8KK1NGUl84QklUKExDRE01KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDUgKi8KK1NGUl84QklUKExDRE02KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDYgKi8KK1NGUl84QklUKExDRE03KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDcgKi8KK1NGUl84QklUKExDRE04KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDggKi8KK1NGUl84QklUKExDRE05KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDkgKi8KK1NGUl84QklUKExDRE0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEwICovCitTRlJfOEJJVChMQ0RNMTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMSAqLworU0ZSXzhCSVQoTENETTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTIgKi8KK1NGUl84QklUKExDRE0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEzICovCitTRlJfOEJJVChMQ0RNMTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNCAqLworU0ZSXzhCSVQoTENETTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTUgKi8KK1NGUl84QklUKExDRE0xNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE2ICovCitTRlJfOEJJVChMQ0RNMTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNyAqLworU0ZSXzhCSVQoTENETTE4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTggKi8KK1NGUl84QklUKExDRE0xOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE5ICovCitTRlJfOEJJVChMQ0RNMjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAyMCAqLworCisjZGVmaW5lIExDRE1BICAgICAgICAgICAgICAgICAgKExDRE0xMCkgICAgICAgLyogTENEIE1lbW9yeSBBICovCisjZGVmaW5lIExDRE1CICAgICAgICAgICAgICAgICAgKExDRE0xMSkgICAgICAgLyogTENEIE1lbW9yeSBCICovCisjZGVmaW5lIExDRE1DICAgICAgICAgICAgICAgICAgKExDRE0xMikgICAgICAgLyogTENEIE1lbW9yeSBDICovCisjZGVmaW5lIExDRE1EICAgICAgICAgICAgICAgICAgKExDRE0xMykgICAgICAgLyogTENEIE1lbW9yeSBEICovCisjZGVmaW5lIExDRE1FICAgICAgICAgICAgICAgICAgKExDRE0xNCkgICAgICAgLyogTENEIE1lbW9yeSBFICovCisjZGVmaW5lIExDRE1GICAgICAgICAgICAgICAgICAgKExDRE0xNSkgICAgICAgLyogTENEIE1lbW9yeSBGICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVXhDVEwgKi8KKyNkZWZpbmUgUEVOQSAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBQYXJpdHkgZW5hYmxlICovCisjZGVmaW5lIFBFViAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IDA6b2RkIC8gMTpldmVuICovCisjZGVmaW5lIFNQQiAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogU3RvcCBCaXRzIDA6b25lIC8gMTogdHdvICovCisjZGVmaW5lIENIQVIgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogRGF0YSAwOjctYml0cyAvIDE6OC1iaXRzICovCisjZGVmaW5lIExJU1RFTiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTGlzdGVuIG1vZGUgKi8KKyNkZWZpbmUgU1lOQyAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBVQVJUIC8gU1BJIG1vZGUgKi8KKyNkZWZpbmUgTU0gICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBNYXN0ZXIgTW9kZSBvZmYvb24gKi8KKyNkZWZpbmUgU1dSU1QgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0FSVCBTb2Z0d2FyZSBSZXNldCAqLworCisvKiBVeFRDVEwgKi8KKyNkZWZpbmUgQ0tQSCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBTUEk6IENsb2NrIFBoYXNlICovCisjZGVmaW5lIENLUEwgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ2xvY2sgUG9sYXJpdHkgKi8KKyNkZWZpbmUgU1NFTDEgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU1NFTDAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVVJYU0UgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSZWNlaXZlIFN0YXJ0IGVkZ2Ugc2VsZWN0ICovCisjZGVmaW5lIFRYV0FLRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVFggV2FrZSB1cCBtb2RlICovCisjZGVmaW5lIFNUQyAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1BJOiBTVEMgZW5hYmxlIDA6b24gLyAxOm9mZiAqLworI2RlZmluZSBUWEVQVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFRYIEJ1ZmZlciBlbXB0eSAqLworCisvKiBVeFJDVEwgKi8KKyNkZWZpbmUgRkUgICAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBGcmFtZSBFcnJvciAqLworI2RlZmluZSBQRSAgICAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFBhcml0eSBFcnJvciAqLworI2RlZmluZSBPRSAgICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE92ZXJydW4gRXJyb3IgKi8KKyNkZWZpbmUgQlJLICAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBkZXRlY3RlZCAqLworI2RlZmluZSBVUlhFSUUgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJYIEVycm9yIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVVJYV0lFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBSWCBXYWtlIHVwIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgUlhXQUtFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBSWCBXYWtlIHVwIGRldGVjdCAqLworI2RlZmluZSBSWEVSUiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFJYIEVycm9yIEVycm9yICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNBUlQgMAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVUFSVDBfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworU0ZSXzhCSVQoVTBSQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCitTRlJfOEJJVChVME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KK1NGUl84QklUKFUwQlIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVMEJSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KK1NGUl84QklUKFUwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKworI2RlZmluZSBVQ1RMMCAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDAgICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDAgICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMCAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDAgICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwICAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjAgICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwICAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMMF8gICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTDBfICAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTDBfICAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMMF8gICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMDBfICAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjEwXyAgICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRjBfICAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUYwXyAgICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzAgICAgICAgICAgICAgICAgIFUwQ1RMICAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wICAgICAgICAgICAgICAgIFUwVENUTCAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wICAgICAgICAgICAgICAgIFUwUkNUTCAgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzAgICAgICAgICAgICAgICAgVTBNQ1RMICAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wICAgICAgICAgICAgICAgICBVMEJSMCAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMCAgICAgICAgICAgICAgICAgVTBCUjEgICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wICAgICAgICAgICAgICAgIFUwUlhCVUYgICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMCAgICAgICAgICAgICAgICBVMFRYQlVGICAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworI2RlZmluZSBVQ1RMXzBfICAgICAgICAgICAgICAgIFUwQ1RMXyAgICAgICAgIC8qIFVTQVJUIDAgQ29udHJvbCAqLworI2RlZmluZSBVVENUTF8wXyAgICAgICAgICAgICAgIFUwVENUTF8gICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQ29udHJvbCAqLworI2RlZmluZSBVUkNUTF8wXyAgICAgICAgICAgICAgIFUwUkNUTF8gICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBDb250cm9sICovCisjZGVmaW5lIFVNQ1RMXzBfICAgICAgICAgICAgICAgVTBNQ1RMXyAgICAgICAgLyogVVNBUlQgMCBNb2R1bGF0aW9uIENvbnRyb2wgKi8KKyNkZWZpbmUgVUJSMF8wXyAgICAgICAgICAgICAgICBVMEJSMF8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAwICovCisjZGVmaW5lIFVCUjFfMF8gICAgICAgICAgICAgICAgVTBCUjFfICAgICAgICAgLyogVVNBUlQgMCBCYXVkIFJhdGUgMSAqLworI2RlZmluZSBSWEJVRl8wXyAgICAgICAgICAgICAgIFUwUlhCVUZfICAgICAgIC8qIFVTQVJUIDAgUmVjZWl2ZSBCdWZmZXIgKi8KKyNkZWZpbmUgVFhCVUZfMF8gICAgICAgICAgICAgICBVMFRYQlVGXyAgICAgICAvKiBVU0FSVCAwIFRyYW5zbWl0IEJ1ZmZlciAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEEzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQUNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQUNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBICovCitTRlJfMTZCSVQoVEFDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRBQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQUNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUQTNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQUlWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRBSVZfVEFDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBSVZfVEFDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEFDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRBSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl84ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWX1RBSUZHICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRBSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBIQVJEV0FSRSBNVUxUSVBMSUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19NUFlfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoTVBZKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgVW5zaWduZWQvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoTVBZUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTXVsdGlwbHkgU2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkIGFuZCBBY2N1bXVsYXRlL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1BQ1MpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChPUDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPcGVyYW5kIDIgKi8KK1NGUl8xNkJJVChSRVNMTyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgTG93IFdvcmQgKi8KK1NGUl8xNkJJVChSRVNISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZXN1bHQgSGlnaCBXb3JkICovCitTRlJfMTZCSVQoU1VNRVhUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3VtIEV4dGVuZCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNEMTYgLSBTaWdtYSBEZWx0YSAxNiBCaXQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NEMTZfM19fICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNEMTZJTkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAwICovCitTRlJfOEJJVChTRDE2SU5DVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnB1dCBDb250cm9sIFJlZ2lzdGVyIENoYW5uZWwgMSAqLworU0ZSXzhCSVQoU0QxNklOQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW5wdXQgQ29udHJvbCBSZWdpc3RlciBDaGFubmVsIDIgKi8KK1NGUl84QklUKFNEMTZQUkUwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IFByZWxvYWQgUmVnaXN0ZXIgQ2hhbm5lbCAwICovCitTRlJfOEJJVChTRDE2UFJFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBQcmVsb2FkIFJlZ2lzdGVyIENoYW5uZWwgMSAqLworU0ZSXzhCSVQoU0QxNlBSRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgUHJlbG9hZCBSZWdpc3RlciBDaGFubmVsIDIgKi8KK1NGUl84QklUKFNEMTZDT05GMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVybmFsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoU0QxNkNPTkYxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgSW50ZXJuYWwgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAxICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBsZWFzZSB1c2Ugb25seSB0aGUgcmVjb21tZW5kZWQgc2V0dGluZ3MgKi8KKworU0ZSXzE2QklUKFNEMTZDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNpZ21hIERlbHRhIEFEQyAxNiBDb250cm9sIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDAgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAxIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2Q0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMiBDb250cm9sIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgVmVjdG9yIFJlZ2lzdGVyICovCitTRlJfMTZCSVQoU0QxNk1FTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBDaGFubmVsIDAgQ29udmVyc2lvbiBNZW1vcnkgKi8KK1NGUl8xNkJJVChTRDE2TUVNMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMSBDb252ZXJzaW9uIE1lbW9yeSAqLworU0ZSXzE2QklUKFNEMTZNRU0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAyIENvbnZlcnNpb24gTWVtb3J5ICovCisKKy8qIFNEMTZJTkNUTHggLSBBRkVJTkNUTHggKi8KKyNkZWZpbmUgU0QxNklOQ0gwICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNklOQ0gxICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNklOQ0gyICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IDIgKi8KKyNkZWZpbmUgU0QxNkdBSU4wICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgMCAqLworI2RlZmluZSBTRDE2R0FJTjEgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZHQUlOMiAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0QxNklOVERMWTAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheSBhZnRlciAxLkNvbnZlcnNpb24gMCAqLworI2RlZmluZSBTRDE2SU5URExZMSAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5IGFmdGVyIDEuQ29udmVyc2lvbiAxICovCisKKyNkZWZpbmUgU0QxNkdBSU5fMSAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjEgICovCisjZGVmaW5lIFNEMTZHQUlOXzIgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICoyICAqLworI2RlZmluZSBTRDE2R0FJTl80ICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqNCAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fOCAgICAgICAgICAgICAoMHgwMDE4KSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjggICovCisjZGVmaW5lIFNEMTZHQUlOXzE2ICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICoxNiAqLworI2RlZmluZSBTRDE2R0FJTl8zMiAgICAgICAgICAgICgweDAwMjgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMzIgKi8KKworI2RlZmluZSBTRDE2SU5DSF8wICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfMSAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzIgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF8zICAgICAgICAgICAgICgweDAwMDMpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgaW5wdXQgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNCAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IGlucHV0ICovCisjZGVmaW5lIFNEMTZJTkNIXzUgICAgICAgICAgICAgKDB4MDAwNSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBpbnB1dCAqLworI2RlZmluZSBTRDE2SU5DSF82ICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgVGVtcCAqLworI2RlZmluZSBTRDE2SU5DSF83ICAgICAgICAgICAgICgweDAwMDcpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgT2Zmc2V0ICovCisKKyNkZWZpbmUgU0QxNklOVERMWV8wICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheTogSW50LiBhZnRlciA0LkNvbnZlcnNpb24gICovCisjZGVmaW5lIFNEMTZJTlRETFlfMSAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgMy5Db252ZXJzaW9uICAqLworI2RlZmluZSBTRDE2SU5URExZXzIgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDIuQ29udmVyc2lvbiAgKi8KKyNkZWZpbmUgU0QxNklOVERMWV8zICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheTogSW50LiBhZnRlciAxLkNvbnZlcnNpb24gICovCisKKy8qIFNEMTZDVEwgLSBBRkVDVEwgKi8KKyNkZWZpbmUgU0QxNk9WSUUgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTRDE2IE92ZXJmbG93IEludGVydXB0IEVuYWJsZSAqLworI2RlZmluZSBTRDE2UkVGT04gICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgU3dpdGNoIGludGVybmFsIFJlZmVyZW5jZSBvbiAqLworI2RlZmluZSBTRDE2Vk1JRE9OICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgU3dpdGNoIFZtaWQgQnVmZmVyIG9uICovCisjZGVmaW5lIFNEMTZTU0VMMCAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNlNTRUwxICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBTRDE2RElWMCAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBTRDE2RElWMSAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMSAqLworI2RlZmluZSBTRDE2TFAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFNEMTYgTG93IFBvd2VyIE1vZGUgRW5hYmxlICovCisKKyNkZWZpbmUgU0QxNkRJVl8wICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC8xICovCisjZGVmaW5lIFNEMTZESVZfMSAgICAgICAgICAgICAgKFNEMTZESVYwKSAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvMiAqLworI2RlZmluZSBTRDE2RElWXzIgICAgICAgICAgICAgIChTRDE2RElWMSkgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzQgKi8KKyNkZWZpbmUgU0QxNkRJVl8zICAgICAgICAgICAgKFNEMTZESVYwK1NEMTZESVYxKSAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC84ICovCisKKyNkZWZpbmUgU0QxNlNTRUxfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgTUNMSyAgKi8KKyNkZWZpbmUgU0QxNlNTRUxfMSAgICAgICAgICAgICAoU0QxNlNTRUwwKSAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgU01DTEsgKi8KKyNkZWZpbmUgU0QxNlNTRUxfMiAgICAgICAgICAgICAoU0QxNlNTRUwxKSAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgQUNMSyAgKi8KKyNkZWZpbmUgU0QxNlNTRUxfMyAgICAgICAgICAgKFNEMTZTU0VMMCtTRDE2U1NFTDEpICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgVEFDTEsgKi8KKworLyogU0QxNkNDVEx4IC0gQUZFQ0NUTHggKi8KKyNkZWZpbmUgU0QxNkdSUCAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTRDE2IEdyb3VwaW5nIG9mIENoYW5uZWxzOiAwOk9mZi8xOk9uICovCisjZGVmaW5lIFNEMTZTQyAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBTdGFydCBDb252ZXJzaW9uICovCisjZGVmaW5lIFNEMTZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgU0QxNklFICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFNEMTZERiAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggRGF0YSBGb3JtYXQ6IDA6VW5pcG9sYXIvMTpCaXBvbGFyICovCisjZGVmaW5lIFNEMTZPVklGRyAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlcmZsb3cgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgU0QxNkxTQkFDQyAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBBY2Nlc3MgTFNCIG9mIEFEQyAqLworI2RlZmluZSBTRDE2TFNCVE9HICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IFRvZ2dsZSBMU0IgT3V0cHV0IG9mIEFEQyAqLworI2RlZmluZSBTRDE2T1NSMCAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAwICovCisjZGVmaW5lIFNEMTZPU1IxICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDEgKi8KKyNkZWZpbmUgU0QxNlNOR0wgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBTaW5nbGUgQ29udmVyc2lvbiBPbi9PZmYgKi8KKworI2RlZmluZSBTRDE2T1NSXzI1NiAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAyNTYgKi8KKyNkZWZpbmUgU0QxNk9TUl8xMjggICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMTI4ICovCisjZGVmaW5lIFNEMTZPU1JfNjQgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvICA2NCAqLworI2RlZmluZSBTRDE2T1NSXzMyICAgICAgICAgICAgICgweDAzMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAgMzIgKi8KKworLyogU0QxNklWIERlZmluaXRpb25zICovCisjZGVmaW5lIFNEMTZJVl9OT05FICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgU0QxNklWX1NEMTZPVklGRyAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTRDE2T1ZJRkcgKi8KKyNkZWZpbmUgU0QxNklWX1NEMTZNRU0wICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2TUVNMCBTRDE2SUZHICovCisjZGVmaW5lIFNEMTZJVl9TRDE2TUVNMSAgICAgICAgKDB4MDAwNikgICAgICAgLyogU0QxNk1FTTEgU0QxNklGRyAqLworI2RlZmluZSBTRDE2SVZfU0QxNk1FTTIgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTZNRU0yIFNEMTZJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFU1A0MzBFCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19FU1A0MzBFX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCisjZGVmaW5lIEFGRUlOQ1RMMCAgICAgICAgICAgICAgU0QxNklOQ1RMMCAgICAgLyogQUZFIElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAwICovCisjZGVmaW5lIEFGRUlOQ1RMMSAgICAgICAgICAgICAgU0QxNklOQ1RMMSAgICAgLyogQUZFIElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAxICovCisjZGVmaW5lIEFGRUlOQ1RMMiAgICAgICAgICAgICAgU0QxNklOQ1RMMiAgICAgLyogQUZFIElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAyICovCisjZGVmaW5lIEFGRUNUTCAgICAgICAgICAgICAgICAgU0QxNkNUTCAgICAgICAgLyogQW5hbG9nIEZyb250IEVuZCBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIEFGRUNDVEwwICAgICAgICAgICAgICAgU0QxNkNDVEwwICAgICAgLyogQUZFIENoYW5uZWwgMCBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIEFGRUNDVEwxICAgICAgICAgICAgICAgU0QxNkNDVEwxICAgICAgLyogQUZFIENoYW5uZWwgMSBDb250cm9sIFJlZ2lzdGVyICovCisjZGVmaW5lIEFGRUNDVEwyICAgICAgICAgICAgICAgU0QxNkNDVEwyICAgICAgLyogQUZFIENoYW5uZWwgMiBDb250cm9sIFJlZ2lzdGVyICovCisKK1NGUl8xNkJJVChFU1BDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKE1CQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1haWxib3ggQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKE1CSU4wKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEluY29taW5nIE1haWxib3ggMCBSZWdpc3RlciAqLworU0ZSXzE2QklUKE1CSU4xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEluY29taW5nIE1haWxib3ggMSBSZWdpc3RlciAqLworU0ZSXzE2QklUKE1CT1VUMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE91dGdvaW5nIE1haWxib3ggMCBSZWdpc3RlciAqLworU0ZSXzE2QklUKE1CT1VUMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE91dGdvaW5nIE1haWxib3ggMSBSZWdpc3RlciAqLworCitTRlJfMTZCSVQoRVNQNDMwX1NUQVQwKTsgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAwICovCitTRlJfMTZCSVQoRVNQNDMwX1NUQVQxKTsgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxICovCitTRlJfMTZCSVQoV0FWRUZTVjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyICovCitTRlJfMTZCSVQoUkVUMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAzICovCitTRlJfMTZCSVQoUkVUNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA0ICovCitTRlJfMTZCSVQoV0FWRUZTSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA1ICovCitTRlJfMTZCSVQoV0FWRUZTSTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA2ICovCitTRlJfMTZCSVQoUkVUNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA3ICovCitTRlJfMTZCSVQoQUNURU5FUkdZMV9MTyk7ICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA4ICovCitTRlJfMTZCSVQoQUNURU5FUkdZMV9ISSk7ICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSA5ICovCitTRlJfMTZCSVQoQUNURU5FUkdZMl9MTyk7ICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxMCAqLworU0ZSXzE2QklUKEFDVEVORVJHWTJfSEkpOyAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMTEgKi8KK1NGUl8xNkJJVChSRUFDVEVORVJHWV9MTyk7ICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDEyICovCitTRlJfMTZCSVQoUkVBQ1RFTkVSR1lfSEkpOyAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxMyAqLworU0ZSXzE2QklUKEFQUEVORVJHWV9MTyk7ICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMTQgKi8KK1NGUl8xNkJJVChBUFBFTkVSR1lfSEkpOyAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDE1ICovCitTRlJfMTZCSVQoQUNURU5TUEVSMV9MTyk7ICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxNiAqLworU0ZSXzE2QklUKEFDVEVOU1BFUjFfSEkpOyAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMTcgKi8KK1NGUl8xNkJJVChBQ1RFTlNQRVIyX0xPKTsgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDE4ICovCitTRlJfMTZCSVQoQUNURU5TUEVSMl9ISSk7ICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAxOSAqLworU0ZSXzE2QklUKFBPV0VSRkNUKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMjAgKi8KKy8vY29uc3Qgc2ZydyBSRVNFUlZFRCAgICAgICAgICgweDAxRUEpICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDIxICovCitTRlJfMTZCSVQoTUFJTlNQRVJJT0QpOyAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyMiAqLworU0ZSXzE2QklUKFYxUk1TKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMjMgKi8KK1NGUl8xNkJJVChJUk1TX0xPKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDI0ICovCitTRlJfMTZCSVQoSVJNU19ISSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyNSAqLworU0ZSXzE2QklUKFZQRUFLKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMjYgKi8KK1NGUl8xNkJJVChJUEVBSyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDI3ICovCitTRlJfMTZCSVQoTElORUNZQ0xDTlRfTE8pOyAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAyOCAqLworU0ZSXzE2QklUKExJTkVDWUNMQ05UX0hJKTsgICAgICAgICAgICAgICAgICAgIC8qIEVTUDQzMCBSZXR1cm4gVmFsdWUgMjkgKi8KK1NGUl8xNkJJVChOTUJNRUFTX0xPKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBFU1A0MzAgUmV0dXJuIFZhbHVlIDMwICovCitTRlJfMTZCSVQoTk1CTUVBU19ISSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogRVNQNDMwIFJldHVybiBWYWx1ZSAzMSAqLworCisjZGVmaW5lIFJFVDAgICAgICAgICAgICAgICAgICAgRVNQNDMwX1NUQVQwICAgLyogU1RBVFVTMCBvZiBFU1A0MzAgKi8KKyNkZWZpbmUgUkVUMSAgICAgICAgICAgICAgICAgICBFU1A0MzBfU1RBVDEgICAvKiBTVEFUVVMxIG9mIEVTUDQzMCAqLworI2RlZmluZSBSRVQyICAgICAgICAgICAgICAgICAgIFdBVkVGU1YxICAgICAgIC8qIFdhdmVmb3JtIFNhbXBsZSBWMSBvZmZzZXQgY29ycmVjdGVkKi8KKyNkZWZpbmUgUkVUNSAgICAgICAgICAgICAgICAgICBXQVZFRlNJMSAgICAgICAvKiBXYXZlZm9ybSBTYW1wbGUgSTEgb2Zmc2V0IGNvcnJlY3RlZCovCisjZGVmaW5lIFJFVDYgICAgICAgICAgICAgICAgICAgV0FWRUZTSTIgICAgICAgLyogV2F2ZWZvcm0gU2FtcGxlIEkyIG9mZnNldCBjb3JyZWN0ZWQqLworI2RlZmluZSBSRVQ4ICAgICAgICAgICAgICAgICAgIEFDVEVORVJHWTFfTE8gIC8qIEFjdGl2ZSBlbmVyZ3kgSTEgTG93IFdvcmQgKi8KKyNkZWZpbmUgUkVUOSAgICAgICAgICAgICAgICAgICBBQ1RFTkVSR1kxX0hJICAvKiBBY3RpdmUgZW5lcmd5IEkxIEhpZ2ggV29yZCAqLworI2RlZmluZSBSRVQxMCAgICAgICAgICAgICAgICAgIEFDVEVORVJHWTJfTE8gIC8qIEFjdGl2ZSBlbmVyZ3kgSTIgTG93IFdvcmQgKi8KKyNkZWZpbmUgUkVUMTEgICAgICAgICAgICAgICAgICBBQ1RFTkVSR1kyX0hJICAvKiBBY3RpdmUgZW5lcmd5IEkyIEhpZ2ggV29yZCovCisjZGVmaW5lIFJFVDEyICAgICAgICAgICAgICAgICAgUkVBQ1RFTkVSR1lfTE8gLyogUmVhY3RpdmUgZW5lcmd5IExvdyBXb3JkICovCisjZGVmaW5lIFJFVDEzICAgICAgICAgICAgICAgICAgUkVBQ1RFTkVSR1lfSEkgLyogUmVhY3RpdmUgZW5lcmd5IEhpZ2ggV29yZCAqLworI2RlZmluZSBSRVQxNCAgICAgICAgICAgICAgICAgIEFQUEVORVJHWV9MTyAgIC8qIEFwcGFyZW50IGVuZXJneSBMb3cgV29yZCAqLworI2RlZmluZSBSRVQxNSAgICAgICAgICAgICAgICAgIEFQUEVORVJHWV9ISSAgIC8qIEFwcGFyZW50IGVuZXJneSBIaWdoIFdvcmQgKi8KKyNkZWZpbmUgUkVUMTYgICAgICAgICAgICAgICAgICBBQ1RFTlNQRVIxX0xPICAvKiBBY3RpdmUgZW5lcmd5IEkxIGZvciBsYXN0IG1haW5zIHBlcmlvZCBMb3cgV29yZCAqLworI2RlZmluZSBSRVQxNyAgICAgICAgICAgICAgICAgIEFDVEVOU1BFUjFfSEkgIC8qIEFjdGl2ZSBlbmVyZ3kgSTEgZm9yIGxhc3QgbWFpbnMgcGVyaW9kIEhpZ2ggV29yZCAqLworI2RlZmluZSBSRVQxOCAgICAgICAgICAgICAgICAgIEFDVEVOU1BFUjJfTE8gIC8qIEFjdGl2ZSBlbmVyZ3kgSTIgZm9yIGxhc3QgbWFpbnMgcGVyaW9kIExvdyBXb3JkICovCisjZGVmaW5lIFJFVDE5ICAgICAgICAgICAgICAgICAgQUNURU5TUEVSMl9ISSAgLyogQWN0aXZlIGVuZXJneSBJMiBmb3IgbGFzdCBtYWlucyBwZXJpb2QgSGlnaCBXb3JkICovCisjZGVmaW5lIFJFVDIwICAgICAgICAgICAgICAgICAgUE9XRVJGQ1QgICAgICAgLyogUG93ZXIgZmFjdG9yICovCisvLyNkZWZpbmUgUkVUMjEgICAgICAgICAgUkVTRVJWRUQgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgUkVUMjIgICAgICAgICAgICAgICAgICBNQUlOU1BFUklPRCAgICAvKiBNYWlucyBwZXJpb2QgKi8KKyNkZWZpbmUgUkVUMjMgICAgICAgICAgICAgICAgICBWMVJNUyAgICAgICAgICAvKiBWb2x0YWdlIFJNUyBWMSB2YWx1ZSBsYXN0IHNlY29uZCAqLworI2RlZmluZSBSRVQyNCAgICAgICAgICAgICAgICAgIElSTVNfTE8gICAgICAgIC8qIEN1cnJlbnQgUk1TIHZhbHVlIGxhc3Qgc2Vjb25kIEkxIEkyIExvdyBXb3JkICovCisjZGVmaW5lIFJFVDI1ICAgICAgICAgICAgICAgICAgSVJNU19ISSAgICAgICAgLyogQ3VycmVudCBSTVMgdmFsdWUgbGFzdCBzZWNvbmQgSTEgSTIgSGlnaCBXb3JkICovCisjZGVmaW5lIFJFVDI2ICAgICAgICAgICAgICAgICAgVlBFQUsgICAgICAgICAgLyogVm9sdGFnZSBWMSBhYnNvbHV0ZSBwZWFrIHZhbHVlICovCisjZGVmaW5lIFJFVDI3ICAgICAgICAgICAgICAgICAgSVBFQUsgICAgICAgICAgLyogQ3VycmVudCBhYnNvbHV0ZSBwZWFrIHZhbHVlIEkxIEkyICovCisjZGVmaW5lIFJFVDI4ICAgICAgICAgICAgICAgICAgTElORUNZQ0xDTlRfTE8gLyogTGluZSBjeWNsZSBjb3VudGVyIExvdyBXb3JkICovCisjZGVmaW5lIFJFVDI5ICAgICAgICAgICAgICAgICAgTElORUNZQ0xDTlRfSEkgLyogTGluZSBjeWNsZSBjb3VudGVyIEhpZ2ggV29yZCAqLworI2RlZmluZSBSRVQzMCAgICAgICAgICAgICAgICAgIE5NQk1FQVNfTE8gICAgIC8qIE51bWJlciBvZiBNZWFzdXJlbWVudHMgZm9yIENQVSBzaWduYWwgTG93IFdvcmQgKi8KKyNkZWZpbmUgUkVUMzEgICAgICAgICAgICAgICAgICBOTUJNRUFTX0hJICAgICAvKiBOdW1iZXIgb2YgTWVhc3VyZW1lbnRzIGZvciBDUFUgc2lnbmFsIEhpZ2ggV29yZCAqLworCisvKiBFU1BDVEwgKi8KKyNkZWZpbmUgRVNQRU4gICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBFU1A0MzAgTW9kdWxlIGVuYWJsZSAqLworI2RlZmluZSBFU1BTVVNQICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVTUDQzMCBNb2R1bGUgc3VzcGVuZCAqLworI2RlZmluZSBJUkVRICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIE5PVCBzdXBwb3J0ZWQgYnkgY3VycmVudCBFU1A0MzAgU29mdHdhcmUgKi8KKworLyogUkVUMCAtIFN0YXR1czAgRmxhZ3MgKi8KKyNkZWZpbmUgV0ZTUkRZRkcgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBOZXcgd2F2ZWZvcm0gU2FtcGxlcyByZWFkeSBGbGFnICovCisjZGVmaW5lIEkyR1RJMUZHICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ3VycmVudCBJMiBncmVhdGVyIHRoZW4gSTEgRmxhZyAqLworI2RlZmluZSBJTFJFQUNIRURGRyAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEludGVycnVwdCBsZXZlbCByZWFjaGVkIEZsYWcgKi8KKyNkZWZpbmUgRU5SRFlGRyAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBOZXcgRW5lcmd5IHZhbHVlcyByZWFkeSBGbGFnICovCisjZGVmaW5lIFpYTERGRyAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogWmVybyBDcm9zc2luZyBvZiBWMSBGbGFnIChsZWFkaW5nIGVkZ2UpICovCisjZGVmaW5lIFpYVFJGRyAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogWmVybyBDcm9zc2luZyBvZiBWMSBGbGFnICh0cmFpbGluZyBlZGdlKSAqLworI2RlZmluZSBDQUxSRFlGRyAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIENhbGlicmF0aW9uIHZhbHVlcyByZWFkeSBGbGFnICovCisjZGVmaW5lIFRBTVBGRyAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGFtcGVyaW5nIE9jY3VyZWQgRmxhZyAqLworI2RlZmluZSBORUdFTkZHICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIE5lZ2F0aXYgRW5lcmd5IEZsYWcgKi8KKyNkZWZpbmUgVkRST1BGRyAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBWb2x0YWdlIGRyb3Agb2NjdXJlZCBGbGFnICovCisjZGVmaW5lIFZQRUFLRkcgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogVm9sdGFnZSBleGNlZWQgVlBlYWsgbGV2ZWwgRmxhZyAqLworI2RlZmluZSBJMVBFQUtGRyAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEN1cnJlbnQgZXhjZWVkIEkxUGVhayBsZXZlbCBGbGFnICovCisjZGVmaW5lIEkyUEVBS0ZHICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ3VycmVudCBleGNlZWQgSTJQZWFrIGxldmVsIEZsYWcgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAoMHg4MDAwKSAgLyogUmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAoMHg4MDAwKSAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgQUNUSVZFRkcgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBNZWFzdXJlbWVudCBvciBDYWxpYnJhdGlvbiBydW5uaW5nIEZsYWcgKi8KKworLyogUkVUMSAtIFN0YXR1czEgRmxhZ3MgKi8KKyNkZWZpbmUgSUxORUdGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBOZWdhdGl2ZSBJbnRlcnJ1cHQgbGV2ZWwgcmVhY2hlZCBGbGFnICovCisjZGVmaW5lIFZQRUFLTkVHRkcgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTmVnYXRpdmUgVm9sdGFnZSBleGNlZWQgVlBlYWsgbGV2ZWwgRmxhZyAqLworI2RlZmluZSBJMVBFQUtORUdGRyAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIE5lZ2F0aXZlIEN1cnJlbnQgZXhjZWVkIEkxUGVhayBsZXZlbCBGbGFnICovCisjZGVmaW5lIEkyUEVBS05FR0ZHICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogTmVnYXRpdmUgQ3VycmVudCBleGNlZWQgSTJQZWFrIGxldmVsIEZsYWcgKi8KKworLyogTUJDVEwgKi8KKyNkZWZpbmUgSU4wSUZHICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBJbmNvbWluZyBNYWlsIDAgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgSU4xSUZHICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBJbmNvbWluZyBNYWlsIDEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgT1VUMEZHICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBPdXRnb2luZyBNYWlsIDAgRmxhZyAqLworI2RlZmluZSBPVVQxRkcgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIE91dGdvaW5nIE1haWwgMSBGbGFnICovCisjZGVmaW5lIElOMElFICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSW5jb21pbmcgTWFpbCAwIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgSU4xSUUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJbmNvbWluZyBNYWlsIDEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBDTFIwT0ZGICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFN3aXRjaCBvZmYgYXV0b21hdGljIGNsZWFyIG9mIElOMElGRyAqLworI2RlZmluZSBDTFIxT0ZGICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFN3aXRjaCBvZmYgYXV0b21hdGljIGNsZWFyIG9mIElOMUlGRyAqLworI2RlZmluZSBPVVQwSUZHICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIE91dGdvaW5nIE1haWwgMCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBPVVQxSUZHICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIE91dGdvaW5nIE1haWwgMSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBPVVQwSUUgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIE91dGdvaW5nIE1haWwgMCBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIE9VVDFJRSAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogT3V0Z29pbmcgTWFpbCAxIEludGVycnVwdCBFbmFibGUgKi8KKworLyogTWVzc2FnZXMgdG8gRVNQICovCisjZGVmaW5lIG1SRVNFVCAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogUmVzdGFydCBFU1A0MzAgU29mdHdhcmUgKi8KKyNkZWZpbmUgbVNFVF9NT0RFICAgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBTZXQgT3BlcmF0aW9uIE1vZGUgZm9yIEVTUDQzMCBTb2Z0d2FyZSAqLworI2RlZmluZSBtQ0xSX0VWRU5UICAgICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIENsZWFyIEZsYWdzIGZvciBFU1A0MzAgU29mdHdhcmUgKi8KKyNkZWZpbmUgbUlOSVQgICAgICAgICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBJbml0aWFsaXplIEVTUDQzMCBTb2Z0d2FyZSAqLworI2RlZmluZSBtVEVNUCAgICAgICAgICAgICAgICAgICgweDAwMDkpICAgICAgIC8qIFJlcXVlc3QgVGVtcC4gTWVhc3VyZW1lbnQgZnJvbSBFU1A0MzAgU29mdHdhcmUgKi8KKyNkZWZpbmUgbVNXVkVSU0lPTiAgICAgICAgICAgICAoMHgwMDBCKSAgICAgICAvKiBSZXF1ZXN0IHNvZnR3YXJlIHZlcnNpb24gb2YgRVNQNDMwICovCisjZGVmaW5lIG1SRUFEX1BBUkFNICAgICAgICAgICAgKDB4MDAwRCkgICAgICAgLyogUmVxdWVzdCB0byByZWFkIHRoZSBwYXJhbWV0ZXIgd2l0aCBuby4gk1BhcmFtZXRlciBOby6UICovCisjZGVmaW5lIG1SRUFEX0kyICAgICAgICAgICAgICAgKDB4MDAwRikgICAgICAgLyogUmVxdWVzdCB0byByZWFkIHRoZSBJMiBDaGFubmVsIChvbmx5IGlmIG5vdCB1c2VkKSAqLworI2RlZmluZSBtUkVBRF9JMl9DT05UICAgICAgICAgICgweDAwMTEpICAgICAgIC8qIFJlcXVlc3QgdG8gcmVhZCB0aGUgSTIgQ2hhbm5lbCBpbiBjb250aW51ZXMgbW9kZSAob25seSBpZiBub3QgdXNlZCkgKi8KKyNkZWZpbmUgbUNNRF9TRVRfUkVTX1NDICAgICAgICAoMHgwMDE1KSAgICAgICAvKiBSZXF1ZXN0IHRvIFJlc2V0IGFuZCBTZXQgdGhlIFNEMTZTQyBiaXQgYXQgdGhlIG5leHQgemVybyBjcm9zc2luZyAqLworCisjZGVmaW5lIG1TRVRfQ1RSTDAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogU2V0IENvbnRyb2wgUmVnaXN0ZXIgMCAqLworI2RlZmluZSBtU0VUX0NUUkwxICAgICAgICAgICAgICgweDAyMDIpICAgICAgIC8qIFNldCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KKyNkZWZpbmUgbVNFVF9FVkVOVCAgICAgICAgICAgICAoMHgwMjA0KSAgICAgICAvKiBTZXQgd2hpY2ggRXZlbmV0cyBzaG91bGQgY2F1c2UgYW4gbWVzc2FnZSAqLworI2RlZmluZSBtU0VUX1BIQVNFQ09SUjEgICAgICAgICgweDAyMDYpICAgICAgIC8qIFNldCBQaGFzZSBDb3JyZWN0aW9uIGZvIEkxICovCisjZGVmaW5lIG1TRVRfUEhBU0VDT1JSMiAgICAgICAgKDB4MDIwOCkgICAgICAgLyogU2V0IFBoYXNlIENvcnJlY3Rpb24gZm8gSTIgKi8KKyNkZWZpbmUgbVNFVF9WMU9GRlNFVCAgICAgICAgICAoMHgwMjBBKSAgICAgICAvKiBTZXQgT2Zmc2V0IGZvciBWMSAqLworI2RlZmluZSBtU0VUX0kxT0ZGU0VUICAgICAgICAgICgweDAyMEMpICAgICAgIC8qIFNldCBPZmZzZXQgZm9yIEkxICovCisjZGVmaW5lIG1TRVRfSTJPRkZTRVQgICAgICAgICAgKDB4MDIwRSkgICAgICAgLyogU2V0IE9mZnNldCBmb3IgSTIgKi8KKyNkZWZpbmUgbVNFVF9BREFQVEkxICAgICAgICAgICAoMHgwMjEwKSAgICAgICAvKiBTZXQgQWRhcHRpb24gZmFjdG9yIGZvciBJMSAqLworI2RlZmluZSBtU0VUX0FEQVBUSTIgICAgICAgICAgICgweDAyMTIpICAgICAgIC8qIFNldCBBZGFwdGlvbiBmYWN0b3IgZm9yIEkyICovCisjZGVmaW5lIG1TRVRfR0FJTkNPUlIxICAgICAgICAgKDB4MDIxNCkgICAgICAgLyogU2V0IEdhaW4gQ29ycmVjdGlvbiBmb3IgUG93ZXIgUDEgKi8KKyNkZWZpbmUgbVNFVF9QT0ZGU0VUMV9MTyAgICAgICAoMHgwMjE2KSAgICAgICAvKiBTZXQgUG93ZXIgT2Zmc2V0IGZvciBQb3dlciBQMSAqLworI2RlZmluZSBtU0VUX1BPRkZTRVQxX0hJICAgICAgICgweDAyMTgpICAgICAgIC8qIFNldCBQb3dlciBPZmZzZXQgZm9yIFBvd2VyIFAxICovCisjZGVmaW5lIG1TRVRfR0FJTkNPUlIyICAgICAgICAgKDB4MDIxQSkgICAgICAgLyogU2V0IEdhaW4gQ29ycmVjdGlvbiBmb3IgUG93ZXIgUDIgKi8KKyNkZWZpbmUgbVNFVF9QT0ZGU0VUMl9MTyAgICAgICAoMHgwMjFDKSAgICAgICAvKiBTZXQgUG93ZXIgT2Zmc2V0IGZvciBQb3dlciBQMiAqLworI2RlZmluZSBtU0VUX1BPRkZTRVQyX0hJICAgICAgICgweDAyMUUpICAgICAgIC8qIFNldCBQb3dlciBPZmZzZXQgZm9yIFBvd2VyIFAyICovCisjZGVmaW5lIG1TRVRfSU5UUlBUTEVWTF9MTyAgICAgKDB4MDIyMCkgICAgICAgLyogU2V0IEludGVycnVwdCBMZXZlbCAqLworI2RlZmluZSBtU0VUX0lOVFJQVExFVkxfSEkgICAgICgweDAyMjIpICAgICAgIC8qIFNldCBJbnRlcnJ1cHQgTGV2ZWwgKi8KKyNkZWZpbmUgbVNFVF9DQUxDWUNMQ05UICAgICAgICAoMHgwMjI0KSAgICAgICAvKiBTZXQgbnVtYmVyIG9mIG1haW4gY3ljbGVzIGZvciBjYWxpYnJhdGlvbiAqLworI2RlZmluZSBtU0VUX1NUQVJUQ1VSUl9GUkFDICAgICgweDAyMjYpICAgICAgIC8qIFNldCBzdGFydCBjdXJyZW50IGZyYWN0aW9uYWwgUGFydCovCisjZGVmaW5lIG1TRVRfU1RBUlRDVVJSX0lOVCAgICAgKDB4MDIyOCkgICAgICAgLyogU2V0IHN0YXJ0IGN1cnJlbnQgaW50ZWdlciBQYXJ0Ki8KKyNkZWZpbmUgbVNFVF9OT01GUkVRICAgICAgICAgICAoMHgwMjJBKSAgICAgICAvKiBTZXQgbm9taW5hbCBtYWluIGZyZXF1ZW5jeSAqLworI2RlZmluZSBtU0VUX1ZEUk9QQ1lDTFMgICAgICAgICgweDAyMkMpICAgICAgIC8qIFNldCBjeWxjZXMgZm9yIFZEcm9wIGRldGVjdGlvbiAqLworI2RlZmluZSBtU0VUX1JBVElPVEFNUCAgICAgICAgICgweDAyMkUpICAgICAgIC8qIFNldCByYXRpbyBmb3IgdGFtcGVyIGRldGVjdGlvbiAqLworI2RlZmluZSBtU0VUX0lUQU1QICAgICAgICAgICAgICgweDAyMzApICAgICAgIC8qIFNldCBtaW5pbXVtIGN1cnJlbnQgZm9yIHRhbXBlciBkZXRlY3Rpb24gKi8KKyNkZWZpbmUgbVNFVF9WRFJPUExFVkVMICAgICAgICAoMHgwMjMyKSAgICAgICAvKiBTZXQgbGV2ZWwgZm9yIFZEcm9wIGRldGVjdGlvbiAqLworI2RlZmluZSBtU0VUX1ZQRUFLTEVWRUwgICAgICAgICgweDAyMzQpICAgICAgIC8qIFNldCBsZXZlbCBmb3IgVlBlYWsgZGV0ZWN0aW9uICovCisjZGVmaW5lIG1TRVRfSVBFQUtMRVZFTCAgICAgICAgKDB4MDIzNikgICAgICAgLyogU2V0IGxldmVsIGZvciBJUGVhayBkZXRlY3Rpb24gKi8KKyNkZWZpbmUgbVNFVF9EQ1JFTVBFUiAgICAgICAgICAoMHgwMjM4KSAgICAgICAvKiBTZXQgbnVtYmVyIG9mIHBlcmlvZHMgZm9yIERDLXJlbW92YWwgKi8KKworI2RlZmluZSBtU0VUX0RFTFRBVjFNQVggICAgICAgICgweDAyM0EpICAgICAgIC8qIFNldCBtYXguIGNoYW5nZSBvZiBWMSBpZiBWMUZJTFRFUiA9MSAgKi8KKyNkZWZpbmUgbVNFVF9DT1JSQ09NUCAgICAgICAgICAoMHgwMjNDKSAgICAgICAvKiBTZXQgQ29tbW9uIE1vZGUgUmVqZWN0aW9uIHJhdGlvICovCisjZGVmaW5lIG1TRVRfRkFEQ1UgICAgICAgICAgICAgKDB4MDIzRSkgICAgICAgLyogU2V0IEFEQyBzYW1wbGluZyBmcmVxdWVuY3kgZkFEQyAqLworCisvKiBGbGFncyBmb3IgbVNFVF9DVFJMMCAqLworI2RlZmluZSBDVVJSX0kyICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIDA6IE5vIEkyIHBhdGgsIG9ubHkgSTEgcGF0aCBpcyB1c2VkICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDE6IEkyIHBhdGggaW1wbGVtZW50ZWQgKENULCBkYy10b2wgQ1Qgb3Igc2h1bnQpICovCisjZGVmaW5lIENVUlJfSTEgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogMDogQ3VycmVudCB0cmFuc2Zvcm1lciwgZGMtdG9sIENUIG9yIHNodW50ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDE6IFJvZ293c2tpIGNvaWwgKG5vdCB5ZXQgaW1wbGVtZW50ZWQpICovCisjZGVmaW5lIE1CICAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogSW50cnB0IHRvIENQVTogMDogZW5lcmd5IGxldmVsICAxOiAjbWVhc3VyZW1lbnRzICovCisjZGVmaW5lIE5FMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogTmVnLiBlbmVyZ3kgdHJlYXRtZW50OiAgICAgIDAwOiBjbGVhciBuZWcuIGVuZXJneSAqLworI2RlZmluZSBORTEgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIDAxOiB1c2UgYWJzb2x1dGUgZW5lcmd5ICAgMTA6IHVzZSBlbmVyZ3kgYXMgaXQgaXMgKi8KKyNkZWZpbmUgRENSRU1fVjEgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBEQyByZW1vdmFsIGZvciBWMTogIDA6IG9mZiAgMTogb24gKi8KKyNkZWZpbmUgRENSRU1fSTEgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBEQyByZW1vdmFsIGZvciBJMTogIDA6IG9mZiAgMTogb24gKi8KKyNkZWZpbmUgRENSRU1fSTIgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBEQyByZW1vdmFsIGZvciBJMjogIDA6IG9mZiAgMTogb24gKi8KKyNkZWZpbmUgVjFGSUxURVIgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBFbmFibGUgb24gVjEgU3Bpa2UgRmlsdGVyOiAgMDogb2ZmICAxOiBvbiAqLworI2RlZmluZSBJMkNNUlIgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEVuYWJsZSBDTVJSIGZvciBJMjogIDA6IG9mZiAgMTogb24gKi8KKworLyogTWVzc2FnZXMgZnJvbSBFU1AgKi8KKyNkZWZpbmUgbUVWRU5UICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBFdmVudCBTdGF0dXMgRmxhZyBmb3IgRVNQNDMwIFNvZnR3YXJlICovCisjZGVmaW5lIG1URU1QUkRZICAgICAgICAgICAgICAgKDB4MDAwMykgICAgICAgLyogVGVtcGVyYXR1cmUgbWVhc3VyZW1lbnQgY29tcGxldGVkIGFuZCBpbiBNQklOMSAqLworI2RlZmluZSBtU1dSRFkgICAgICAgICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIFNvZnR3YXJlIHZlcnNpb24gaW4gTUJJTjEgKi8KKyNkZWZpbmUgbVBBUkFNUkRZICAgICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBQYXJhbWV0ZXIgcmVxdWVzdGVkIGJ5IG1SRUFEX1BBUkFNIHJldHVybmVkIGluIE1CSU4xICAqLworI2RlZmluZSBtUEFSQU1TRVQgICAgICAgICAgICAgICgweDAwMDkpICAgICAgIC8qIFBhcmFtZXRlciBoYXMgYmVlbiBzZXQgKi8KKyNkZWZpbmUgbUkyUkRZICAgICAgICAgICAgICAgICAoMHgwMDBCKSAgICAgICAvKiBJMiB2YWx1ZSByZWFkeSAqLworCisvKiBFVkVOVDogRXZlbnQgTWVzc2FnZSBFbmFibGUgQml0cyAqLworI2RlZmluZSBXRlNSRFlNRSAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIE5ldyB3YXZlZm9ybSBTYW1wbGVzIHJlYWR5ICovCisjZGVmaW5lIEkyR1RJMU1FICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ3VycmVudCBJMiBncmVhdGVyIHRoZW4gSTEgKi8KKyNkZWZpbmUgSUxSRUFDSEVETUUgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJbnRlcnJ1cHQgbGV2ZWwgcmVhY2hlZCAqLworI2RlZmluZSBFTlJEWU1FICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIE5ldyBFbmVyZ3kgdmFsdWVzIHJlYWR5ICovCisjZGVmaW5lIFpYTERNRSAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogWmVybyBDcm9zc2luZyBvZiBWMSAobGVhZGluZyBlZGdlKSAqLworI2RlZmluZSBaWFRSTUUgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFplcm8gQ3Jvc3Npbmcgb2YgVjEgKHRyYWlsaW5nIGVkZ2UpICovCisjZGVmaW5lIENBTFJEWU1FICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogQ2FsaWJyYXRpb24gdmFsdWVzIHJlYWR5ICovCisjZGVmaW5lIFRBTVBNRSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGFtcGVyaW5nIE9jY3VyZWQgKi8KKyNkZWZpbmUgTkVHRU5NRSAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBOZWdhdGl2IEVuZXJneSAqLworI2RlZmluZSBWRFJPUE1FICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFZvbHRhZ2UgZHJvcCBvY2N1cmVkICovCisjZGVmaW5lIFZQRUFLTUUgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogVm9sdGFnZSBleGNlZWQgVlBlYWsgbGV2ZWwgKi8KKyNkZWZpbmUgSTFQRUFLTUUgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDdXJyZW50IGV4Y2VlZCBJMVBlYWsgbGV2ZWwgKi8KKyNkZWZpbmUgSTJQRUFLTUUgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDdXJyZW50IGV4Y2VlZCBJMlBlYWsgbGV2ZWwgKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDgwMDApICAvKiBSZXNlcnZlZCAqLworLy8jZGVmaW5lIFJFU0VSVkVEICAgICAgICAgICAgKDB4ODAwMCkgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIEFDVElWRU1FICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogTWVhc3VyZW1lbnQgb2YgQ2FsaWJyYXRpb24gcnVubmluZyAqLworCisvKiBFU1AgTW9kZXMgKi8KKyNkZWZpbmUgbW9kZUlETEUgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTZXQgTW9kZTogSWRsZSBNb2RlICovCisjZGVmaW5lIG1vZGVDQUxJQlJBVElPTiAgICAgICAgKDB4MDAwMikgICAgICAgLyogU2V0IE1vZGU6IENhbGlicmF0aW9uIE1vZGUgKi8KKyNkZWZpbmUgbW9kZU1FQVNVUkUgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTZXQgTW9kZTogTWVhc3VyZSBNb2RlICovCisjZGVmaW5lIG1vZGVSRVNFVCAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogU2V0IE1vZGU6IFJlc2V0IGFuZCBSZXN0YXJ0IHRoZSBFU1A0MzAgbW9kdWxlICovCisjZGVmaW5lIG1vZGVJTklUICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU2V0IE1vZGU6IEluaXRpYWxpemUgRVNQNDMwIG1vZHVsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGRTApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworI2RlZmluZSBCQVNJQ1RJTUVSX1ZFQ1RPUiAgICAgICAoMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLworLyojZGVmaW5lIEJBU0lDVElNRVJfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMCIpICAqLyAvKiAweEZGRTAgQmFzaWMgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgxICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUyIFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMSIpICAqLyAvKiAweEZGRTIgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFRYX1ZFQ1RPUiAgICAgICAgICg4ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFVTQVJUIDAgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0FSVDBUWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDgiKSAgKi8gLyogMHhGRkYwIFVTQVJUIDAgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQVJUMFJYX1ZFQ1RPUiAgICAgICAgICg5ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQVJUMFJYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgVVNBUlQgMCBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMTAgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMCIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKyNkZWZpbmUgU0QxNl9WRUNUT1IgICAgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggU2lnbWEgRGVsdGEgQURDICovCisvKiNkZWZpbmUgU0QxNl9JU1IoZnVuYykgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEyIikgICovIC8qIDB4RkZGOCBTaWdtYSBEZWx0YSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIEVTUDQzMF9WRUNUT1IgICAgICAgICAgICgxMyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZBIEVTUDQzMCBNYWlsYm94ICovCisvKiNkZWZpbmUgRVNQNDMwX0lTUihmdW5jKSAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEzIikgICovIC8qIDB4RkZGQSBFU1A0MzAgTWFpbGJveCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworI2RlZmluZSBOTUlfVkVDVE9SICAgICAgICAgICAgICAoMTQgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8KKy8qI2RlZmluZSBOTUlfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTQiKSAgKi8gLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUkVTRVRfVkVDVE9SICAgICAgICAgICAgKDE1ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovCisvKiNkZWZpbmUgUkVTRVRfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE1IikgICovIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweEU0MnggKi8KKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHhnNDJ4MC5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHhnNDJ4MC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0NzkzZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweGc0MngwLmgKQEAgLTAsMCArMSw5MDEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweEc0MngwIGRldmljZXMuCisqCisqIFRleGFzIEluc3RydW1lbnRzLCBWZXJzaW9uIDEuMworKgorKgorKiBSZXYuIDEuMCwgSW5pdGFsIFNldHVwCisqIFJldi4gMS4xLCBBZGRlZCBzb21lIGRlZmluaXRvbnMgZm9yIExDRF9BIE1vZHVsZQorKiBSZXYuIDEuMiwgUmVtb3ZlZCBkZWZpbml0aW9ucyBmb3IgQlRSRVNFVAorKiBSZXYuIDEuMywgYWRkZWQgZGVmaW5pdGlvbnMgZm9yIEludGVycnVwdCBWZWN0b3JzIHh4SVYKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweEc0MngwCisjZGVmaW5lIF9fbXNwNDMweEc0MngwCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogV2F0Y2hkb2cgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBPc2MuIEZhdWx0IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFBPUklGRyAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUG93ZXIgT24gSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgUlNUSUZHICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSZXNldCBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBOTUlJRkcgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE5NSSBJbnRlcnJ1cHQgRmxhZyAqLworCitTRlJfOEJJVChJRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAyICovCisjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKElGRzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAyICovCisjZGVmaW5lIEJUSUZHICAgICAgICAgICAgICAgICAgKDB4ODApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogV0FUQ0hET0cgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1dEVF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChXRFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBXRFRTU0VMICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBXRFROTUkgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFdEVE5NSUVTICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgV0RUSE9MRCAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisjZGVmaW5lIFdEVFBXICAgICAgICAgICAgICAgICAgKDB4NUEwMCkKKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01ETFlfOCAgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzUgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQURMWV8xMDAwICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BRExZXzI1MCAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xXzkgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgLyogMS45bXMgICAiICovCisvKiBXYXRjaGRvZyBtb2RlIC0+IHJlc2V0IGFmdGVyIGV4cGlyZWQgdGltZSAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NUlNUXzMyICAgICAgICAgKFdEVFBXK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfNSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF8wNjQgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMjUwICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xNiAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAvKiAxLjltcyAgICIgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAweDAxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDEvMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAxSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW5wdXQgKi8KK1NGUl84QklUKFAxT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgT3V0cHV0ICovCitTRlJfOEJJVChQMURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDFJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQ1LzYKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ1X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQNUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IElucHV0ICovCitTRlJfOEJJVChQNU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IE91dHB1dCAqLworU0ZSXzhCSVQoUDVESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA1U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFA2SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgSW5wdXQgKi8KK1NGUl84QklUKFA2T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgT3V0cHV0ICovCitTRlJfOEJJVChQNkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDZTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCQVNJQyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQlRfXyAgICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIkJUIiAqLworI2RlZmluZSBCVElQMCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBCVElQMSAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBCVElQMiAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBCVEZSRlEwICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBCVEZSRlExICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBCVERJViAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZDTEsyID0gQUNMSzoyNTYgKi8KKyNkZWZpbmUgQlRIT0xEICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBCVDEgaXMgaGVsZCBpZiB0aGlzIGJpdCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRTU0VMICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBmQlQgPSBmTUNMSyAobWFpbiBjbG9jaykgKi8KKworU0ZSXzhCSVQoQlRDTlQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDEgKi8KK1NGUl84QklUKEJUQ05UMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAyICovCisKKy8qIEZyZXF1ZW5jeSBvZiB0aGUgQlRDTlQyIGNvZGVkIHdpdGggQml0IDUgYW5kIDcgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfQUNMSyAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgQlRfZkNMSzJfQUNMS19ESVYyNTYgICAoQlRESVYpCisjZGVmaW5lIEJUX2ZDTEsyX01DTEsgICAgICAgICAgKEJUU1NFTCkKKworLyogSW50ZXJydXB0IGludGVydmFsIHRpbWUgZklOVCBjb2RlZCB3aXRoIEJpdHMgMC0yIGluIEJUQ1RMICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZklOVCA9IGZDTEsyOjIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjQgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjQgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWOCAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiBmSU5UID0gZkNMSzI6OCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxNiAgICAgICAgIChCVElQMStCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjoxNiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYzMiAgICAgICAgIChCVElQMikgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjozMiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY2NCAgICAgICAgIChCVElQMitCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjo2NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxMjggICAgICAgIChCVElQMitCVElQMSkgIC8qIGZJTlQgPSBmQ0xLMjoxMjggKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMjU2ICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIGZJTlQgPSBmQ0xLMjoyNTYgKi8KKy8qIEZyZXF1ZW5jeSBvZiBMQ0QgY29kZWQgd2l0aCBCaXRzIDMtNCAqLworI2RlZmluZSBCVF9mTENEX0RJVjMyICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzozMiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVY2NCAgICAgICAgICAoQlRGUkZRMCkgICAgICAvKiBmTENEID0gZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYxMjggICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmTENEID0gZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMjU2ICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmTENEID0gZkFDTEs6MjU2ICovCisvKiBMQ0QgZnJlcXVlbmN5IHZhbHVlcyB3aXRoIGZCVD1mQUNMSyAqLworI2RlZmluZSBCVF9mTENEXzFLICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEXzUxMiAgICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZBQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfMjU2ICAgICAgICAgICAgKEJURlJGUTEpICAgICAgLyogZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfMTI4ICAgICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZNQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMzFLICAgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogZk1DTEs6MzIgKi8KKyNkZWZpbmUgQlRfZkxDRF8xNV81SyAgICAgICAoQlRTU0VMK0JURlJGUTApICAgICAgICAgIC8qIGZNQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfN184SyAgICAgICAgKEJUU1NFTCtCVEZSRlExK0JURlJGUTApICAvKiBmTUNMSzoyNTYgKi8KKy8qIHdpdGggYXNzdW1lZCB2bHVlcyBvZiBmQUNMSz0zMktIeiwgZk1DTEs9MU1IeiAqLworLyogZkJUPWZBQ0xLIGlzIHRob3VnaHQgZm9yIGxvbmdlciBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9BRExZXzBfMDY0ICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIDAuMDY0bXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX0FETFlfMF8xMjUgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF8yNSAgICAgICAgICAgKEJUSVAxKSAgICAgICAgLyogMC4yNW1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF81ICAgICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogMC41bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMSAgICAgICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogMW1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMiAgICAgICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogMm1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNCAgICAgICAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogNG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfOCAgICAgICAgICAgKEJUSVAyK0JUSVAxK0JUSVAwKSAgICAgICAvKiA4bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xNiAgICAgICAgICAgICAoQlRESVYpICAgICAgICAvKiAxNm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8zMiAgICAgICAgICAgICAoQlRESVYrQlRJUDApICAvKiAzMm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV82NCAgICAgICAgICAgICAoQlRESVYrQlRJUDEpICAvKiA2NG1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMjUgICAgICAgICAoQlRESVYrQlRJUDErQlRJUDApICAgICAgIC8qIDEyNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzI1MCAgICAgICAgICAgIChCVERJVitCVElQMikgIC8qIDI1MG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzUwMCAgICAgICAgIChCVERJVitCVElQMitCVElQMCkgICAgICAgLyogNTAwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxKSAgICAgICAvKiAxMDAwbXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDErQlRJUDApIC8qIDIwMDBtcyAgICAgIiAqLworLyogZkNMSzI9Zk1DTEsgKDFNSHopIGlzIHRob3VnaHQgZm9yIHNob3J0IGludGVydmFsIHRpbWVzICovCisvKiB0aGUgdGltaW5nIGZvciBzaG9ydCBpbnRlcnZhbHMgaXMgbW9yZSBwcmVjaXNlIHRoYW4gQUNMSyAqLworLyogTk9URSAqLworLyogQmUgc3VyZSB0aGF0IHRoZSBTQ0ZRQ1RMLVJlZ2lzdGVyIGlzIHNldCB0byAwMUZoIHNvIHRoYXQgZk1DTEs9MU1IeiAqLworLyogVG9vIGxvdyBpbnRlcnZhbCB0aW1lIHJlc3VsdHMgaW4gaW50ZXJydXB0cyB0b28gZnJlcXVlbnQgZm9yIHRoZSBwcm9jZXNzb3IgdG8gaGFuZGxlISAqLworI2RlZmluZSBCVF9NRExZXzBfMDAyICAgICAgICAgIChCVFNTRUwpICAgICAgIC8qIDAuMDAybXMgaW50ZXJ2YWwgICAgICAgKioqIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDQgICAgICAgICAgKEJUU1NFTCtCVElQMCkgLyogMC4wMDRtcyAgICAiICAgICAgICAgICAqKiogdG9vIHNob3J0IGZvciAqLworI2RlZmluZSBCVF9NRExZXzBfMDA4ICAgICAgICAgIChCVFNTRUwrQlRJUDEpIC8qIDAuMDA4bXMgICAgIiAgICAgICAgICAgKioqIGludGVycnVwdCAqLworI2RlZmluZSBCVF9NRExZXzBfMDE2ICAgICAgIChCVFNTRUwrQlRJUDErQlRJUDApICAgICAgLyogMC4wMTZtcyAgICAiICAgICAgICAgICAqKiogaGFuZGxpbmcgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAzMiAgICAgICAgICAoQlRTU0VMK0JUSVAyKSAvKiAwLjAzMm1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzA2NCAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAwKSAgICAgIC8qIDAuMDY0bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMTI1ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDEpICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8yNSAgICAgICAgKEJUU1NFTCtCVElQMitCVElQMStCVElQMCkvKiAwLjI1bXMgICAgICIgKi8KKworLyogUmVzZXQvSG9sZCBjb2RlZCB3aXRoIEJpdHMgNi03IGluIEJUKDEpQ1RMICovCisvKiB0aGlzIGlzIGZvciBCVCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMSAgICAgICAgKEJUUkVTRVQpICAgICAgICAgICAvKiBCVENOVDEgaXMgcmVzZXQgd2hpbGUgQlRSRVNFVCBpcyBzZXQgKi8KKy8vI2RlZmluZSBCVFJFU0VUX0NOVDFfMiAgICAgIChCVFJFU0VUK0JURElWKSAgICAgLyogQlRDTlQxIC5BTkQuIEJUQ05UMiBhcmUgcmVzZXQgd2hpbGUgfiBpcyBzZXQgKi8KKy8qIHRoaXMgaXMgZm9yIEJUMSAqLworI2RlZmluZSBCVEhPTERfQ05UMSAgICAgICAgICAgIChCVEhPTEQpICAgICAgIC8qIEJUQ05UMSBpcyBoZWxkIHdoaWxlIEJUSE9MRCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDFfMiAgICAgICAgICAoQlRIT0xEK0JURElWKSAvKiBCVDFDTlQxIC5BTkQuIEJUMUNOVDIgYXJlIGhlbGQgd2hpbGUgfiBpcyBzZXQgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogI2RlZmluZSBCVElFICAgICAgICAgICAgICAgIDB4ODAgKi8KKy8qICNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAweDgwICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1lTVEVNIENMT0NLLCBGTEwrICh4NDF4KQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxMUExVU19TTUFMTF9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0NGSTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAwICovCisjZGVmaW5lIEZOXzIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMS40LTEyTUh6Ki8KKyNkZWZpbmUgRk5fMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBmRENPQ0xLID0gICAyLjItMTdNaHoqLworI2RlZmluZSBGTl80ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDMuMi0yNU1oeiovCisjZGVmaW5lIEZOXzggICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkRDT0NMSyA9ICAgICA1LTQwTWh6Ki8KKyNkZWZpbmUgRkxMRDAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMCAqLworI2RlZmluZSBGTExEMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAxICovCisKKyNkZWZpbmUgRkxMRF8xICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDEgKi8KKyNkZWZpbmUgRkxMRF8yICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDIgKi8KKyNkZWZpbmUgRkxMRF80ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDQgKi8KKyNkZWZpbmUgRkxMRF84ICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDggKi8KKworU0ZSXzhCSVQoU0NGSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAxICovCitTRlJfOEJJVChTQ0ZRQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCisvKiBTeXN0ZW0gY2xvY2sgZnJlcXVlbmN5IHZhbHVlcyBmTUNMSyBjb2RlZCB3aXRoIEJpdHMgMC02IGluIFNDRlFDVEwgKi8KKy8qICNkZWZpbmUgU0NGUV8zMksgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgZk1DTEs9MSpmQUNMSyAgICAgICBvbmx5IGEgcmFuZ2UgZnJvbSAqLworI2RlZmluZSBTQ0ZRXzY0SyAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIGZNQ0xLPTIqZkFDTEsgICAgICAgICAgMSsxIHRvIDEyNysxIGlzIHBvc3NpYmxlICovCisjZGVmaW5lIFNDRlFfMTI4SyAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogZk1DTEs9NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzI1NksgICAgICAgICAgICAgICgweDA3KSAgICAgICAgIC8qIGZNQ0xLPTgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV81MTJLICAgICAgICAgICAgICAoMHgwRikgICAgICAgICAvKiBmTUNMSz0xNipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzFNICAgICAgICAgICAgICAgICgweDFGKSAgICAgICAgIC8qIGZNQ0xLPTMyKmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMk0gICAgICAgICAgICAgICAgKDB4M0YpICAgICAgICAgLyogZk1DTEs9NjQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV80TSAgICAgICAgICAgICAgICAoMHg3RikgICAgICAgICAvKiBmTUNMSz0xMjgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV9NICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2R1bGF0aW9uIERpc2FibGUgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAwICovCisjZGVmaW5lIERDT0YgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRENPIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgTEZPRiAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMb3cgRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFPRiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBPU0NDQVAwICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIE9TQ0NBUDEgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgWFRTX0ZMTCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxOiBTZWxlY3RzIGhpZ2gtZnJlcS4gb3NjaWxsYXRvciAqLworI2RlZmluZSBEQ09QTFVTICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTysgRW5hYmxlICovCisKKyNkZWZpbmUgWENBUDBQRiAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgWENBUDEwUEYgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIFhDQVAxNFBGICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBYQ0FQMThQRiAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzEgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIE9TQ0NBUF8yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBPU0NDQVBfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAxICovCisjZGVmaW5lIEZMTF9ESVYwICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIDAgKi8KKyNkZWZpbmUgRkxMX0RJVjEgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMSAqLworCisjZGVmaW5lIEZMTF9ESVZfMSAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDEgKi8KKyNkZWZpbmUgRkxMX0RJVl8yICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMiAqLworI2RlZmluZSBGTExfRElWXzQgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA0ICovCisjZGVmaW5lIEZMTF9ESVZfOCAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDggKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgMHgwMiAqLworLyogI2RlZmluZSBPRklFICAgICAgICAgICAgICAgIDB4MDIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBMQ0RfQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTENEX0FfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoTENEQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgTENET04gICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTENEU09OICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTENETVgwICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTENETVgxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTENERlJFUTAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgTENERlJFUTEgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgTENERlJFUTIgICAgICAgICAgICAgICAoMHg4MCkKKy8qIERpc3BsYXkgbW9kZXMgY29kZWQgd2l0aCBCaXRzIDItNCAqLworI2RlZmluZSBMQ0RTVEFUSUMgICAgICAgICAgICAgIChMQ0RTT04pCisjZGVmaW5lIExDRDJNVVggICAgICAgICAgICAgICAgKExDRE1YMCtMQ0RTT04pCisjZGVmaW5lIExDRDNNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RTT04pCisjZGVmaW5lIExDRDRNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RNWDArTENEU09OKQorLyogRnJlcXVlbmN5IHNlbGVjdCBjb2RlIHdpdGggQml0cyA1LTcgKi8KKyNkZWZpbmUgTENERlJFUV8zMiAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDMyICovCisjZGVmaW5lIExDREZSRVFfNjQgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSA2NCAqLworI2RlZmluZSBMQ0RGUkVRXzk2ICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgOTYgKi8KKyNkZWZpbmUgTENERlJFUV8xMjggICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDEyOCAqLworI2RlZmluZSBMQ0RGUkVRXzE5MiAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgMTkyICovCisjZGVmaW5lIExDREZSRVFfMjU2ICAgICAgICAgICAgKDB4QTApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSAyNTYgKi8KKyNkZWZpbmUgTENERlJFUV8zODQgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDM4NCAqLworI2RlZmluZSBMQ0RGUkVRXzUxMiAgICAgICAgICAgICgweEUwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgNTEyICovCisKK1NGUl84QklUKExDREFQQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBQb3J0IENvbnRyb2wgUmVnaXN0ZXIgMCAqLworI2RlZmluZSBMQ0RTMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIExDRCBTZWdtZW50ICAwIHRvICAzIEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzQgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMQ0QgU2VnbWVudCAgNCB0byAgNyBFbmFibGUuICovCisjZGVmaW5lIExDRFM4ICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogTENEIFNlZ21lbnQgIDggdG8gMTEgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMTIgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIExDRCBTZWdtZW50IDEyIHRvIDE1IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzE2ICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBMQ0QgU2VnbWVudCAxNiB0byAxOSBFbmFibGUuICovCisjZGVmaW5lIExDRFMyMCAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTENEIFNlZ21lbnQgMjAgdG8gMjMgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMjQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDI0IHRvIDI3IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzI4ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBMQ0QgU2VnbWVudCAyOCB0byAzMSBFbmFibGUuICovCisKK1NGUl84QklUKExDREFQQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBQb3J0IENvbnRyb2wgUmVnaXN0ZXIgMSAqLworI2RlZmluZSBMQ0RTMzIgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDMyIHRvIDM1IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzM2ICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMQ0QgU2VnbWVudCAzNiB0byAzOSBFbmFibGUuICovCisKK1NGUl84QklUKExDREFWQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBWb2x0YWdlIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworI2RlZmluZSBMQ0QyQiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNlbGVjdHMgMS8yIGJpYXMuICovCisjZGVmaW5lIFZMQ0RSRUYwICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VsZWN0cyByZWZlcmVuY2Ugdm9sdGFnZSBmb3IgcmVndWxhdGVkIGNoYXJnZSBwdW1wOiAwICovCisjZGVmaW5lIFZMQ0RSRUYxICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU2VsZWN0cyByZWZlcmVuY2Ugdm9sdGFnZSBmb3IgcmVndWxhdGVkIGNoYXJnZSBwdW1wOiAxICovCisjZGVmaW5lIExDRENQRU4gICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTENEIFZvbHRhZ2UgQ2hhcmdlIFB1bXAgRW5hYmxlLiAqLworI2RlZmluZSBWTENERVhUICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFNlbGVjdCBleHRlcm5hbCBzb3VyY2UgZm9yIFZMQ0QuICovCisjZGVmaW5lIExDRFJFWFQgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogU2VsZWN0cyBleHRlcm5hbCBjb25uZWN0aW9ucyBmb3IgTENEIG1pZCB2b2x0YWdlcy4gKi8KKyNkZWZpbmUgTENEUjAzRVhUICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTZWxlY3RzIGV4dGVybmFsIGNvbm5lY3Rpb24gZm9yIGxvd2VzdCBMQ0Qgdm9sdGFnZS4gKi8KKworLyogUmVmZXJlbmNlIHZvbHRhZ2Ugc291cmNlIHNlbGVjdCBmb3IgdGhlIHJlZ3VsYXRlZCBjaGFyZ2UgcHVtcCAqLworI2RlZmluZSBWTENEUkVGXzAgICAgICAgICAgICAgICgwPDwxKSAgICAgICAgIC8qIEludGVybmFsICovCisjZGVmaW5lIFZMQ0RSRUZfMSAgICAgICAgICAgICAgKDE8PDEpICAgICAgICAgLyogRXh0ZXJuYWwgKi8KKyNkZWZpbmUgVkxDRFJFRl8yICAgICAgICAgICAgICAoMjw8MSkgICAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBWTENEUkVGXzMgICAgICAgICAgICAgICgzPDwxKSAgICAgICAgIC8qIFJlc2VydmVkICovCisKK1NGUl84QklUKExDREFWQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBWb2x0YWdlIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworI2RlZmluZSBWTENEMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFZMQ0Qgc2VsZWN0OiAwICovCisjZGVmaW5lIFZMQ0QxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVkxDRCBzZWxlY3Q6IDEgKi8KKyNkZWZpbmUgVkxDRDIgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBWTENEIHNlbGVjdDogMiAqLworI2RlZmluZSBWTENEMyAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFZMQ0Qgc2VsZWN0OiAzICovCisKKy8qIENoYXJnZSBwdW1wIHZvbHRhZ2Ugc2VsZWN0aW9ucyAqLworI2RlZmluZSBWTENEXzAgICAgICAgICAgICAgICAgICgwPDwxKSAgICAgICAgIC8qIENoYXJnZSBwdW1wIGRpc2FibGVkICovCisjZGVmaW5lIFZMQ0RfMSAgICAgICAgICAgICAgICAgKDE8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNjBWICovCisjZGVmaW5lIFZMQ0RfMiAgICAgICAgICAgICAgICAgKDI8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNjZWICovCisjZGVmaW5lIFZMQ0RfMyAgICAgICAgICAgICAgICAgKDM8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNzJWICovCisjZGVmaW5lIFZMQ0RfNCAgICAgICAgICAgICAgICAgKDQ8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNzhWICovCisjZGVmaW5lIFZMQ0RfNSAgICAgICAgICAgICAgICAgKDU8PDEpICAgICAgICAgLyogVkxDRCA9IDIuODRWICovCisjZGVmaW5lIFZMQ0RfNiAgICAgICAgICAgICAgICAgKDY8PDEpICAgICAgICAgLyogVkxDRCA9IDIuOTBWICovCisjZGVmaW5lIFZMQ0RfNyAgICAgICAgICAgICAgICAgKDc8PDEpICAgICAgICAgLyogVkxDRCA9IDIuOTZWICovCisjZGVmaW5lIFZMQ0RfOCAgICAgICAgICAgICAgICAgKDg8PDEpICAgICAgICAgLyogVkxDRCA9IDMuMDJWICovCisjZGVmaW5lIFZMQ0RfOSAgICAgICAgICAgICAgICAgKDk8PDEpICAgICAgICAgLyogVkxDRCA9IDMuMDhWICovCisjZGVmaW5lIFZMQ0RfMTAgICAgICAgICAgICAgICAgKDEwPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMTRWICovCisjZGVmaW5lIFZMQ0RfMTEgICAgICAgICAgICAgICAgKDExPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMjBWICovCisjZGVmaW5lIFZMQ0RfMTIgICAgICAgICAgICAgICAgKDEyPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMjZWICovCisjZGVmaW5lIFZMQ0RfMTMgICAgICAgICAgICAgICAgKDEyPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMzJWICovCisjZGVmaW5lIFZMQ0RfMTQgICAgICAgICAgICAgICAgKDEzPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMzhWICovCisjZGVmaW5lIFZMQ0RfMTUgICAgICAgICAgICAgICAgKDE1PDwxKSAgICAgICAgLyogVkxDRCA9IDMuNDRWICovCisKKyNkZWZpbmUgVkxDRF9ESVNBQkxFRCAgICAgICAgICAoMDw8MSkgICAgICAgICAvKiBDaGFyZ2UgcHVtcCBkaXNhYmxlZCAqLworI2RlZmluZSBWTENEXzJfNjAgICAgICAgICAgICAgICgxPDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjYwViAqLworI2RlZmluZSBWTENEXzJfNjYgICAgICAgICAgICAgICgyPDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjY2ViAqLworI2RlZmluZSBWTENEXzJfNzIgICAgICAgICAgICAgICgzPDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjcyViAqLworI2RlZmluZSBWTENEXzJfNzggICAgICAgICAgICAgICg0PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjc4ViAqLworI2RlZmluZSBWTENEXzJfODQgICAgICAgICAgICAgICg1PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjg0ViAqLworI2RlZmluZSBWTENEXzJfOTAgICAgICAgICAgICAgICg2PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjkwViAqLworI2RlZmluZSBWTENEXzJfOTYgICAgICAgICAgICAgICg3PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjk2ViAqLworI2RlZmluZSBWTENEXzNfMDIgICAgICAgICAgICAgICg4PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAzLjAyViAqLworI2RlZmluZSBWTENEXzNfMDggICAgICAgICAgICAgICg5PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAzLjA4ViAqLworI2RlZmluZSBWTENEXzNfMTQgICAgICAgICAgICAgICgxMDw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjE0ViAqLworI2RlZmluZSBWTENEXzNfMjAgICAgICAgICAgICAgICgxMTw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjIwViAqLworI2RlZmluZSBWTENEXzNfMjYgICAgICAgICAgICAgICgxMjw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjI2ViAqLworI2RlZmluZSBWTENEXzNfMzIgICAgICAgICAgICAgICgxMjw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjMyViAqLworI2RlZmluZSBWTENEXzNfMzggICAgICAgICAgICAgICgxMzw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjM4ViAqLworI2RlZmluZSBWTENEXzNfNDQgICAgICAgICAgICAgICgxNTw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjQ0ViAqLworCisjZGVmaW5lIExDRE1FTV8gICAgICAgICAgICAgICAgKDB4MDA5MSkgICAgICAgLyogTENEIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKExDRE1FTV8pICAgICAgLyogTENEIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgTENETUVNXykgLyogTENEIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKExDRE0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEgKi8KK1NGUl84QklUKExDRE0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIgKi8KK1NGUl84QklUKExDRE0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDMgKi8KK1NGUl84QklUKExDRE00KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDQgKi8KK1NGUl84QklUKExDRE01KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDUgKi8KK1NGUl84QklUKExDRE02KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDYgKi8KK1NGUl84QklUKExDRE03KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDcgKi8KK1NGUl84QklUKExDRE04KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDggKi8KK1NGUl84QklUKExDRE05KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDkgKi8KK1NGUl84QklUKExDRE0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEwICovCitTRlJfOEJJVChMQ0RNMTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMSAqLworU0ZSXzhCSVQoTENETTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTIgKi8KK1NGUl84QklUKExDRE0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEzICovCitTRlJfOEJJVChMQ0RNMTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNCAqLworU0ZSXzhCSVQoTENETTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTUgKi8KK1NGUl84QklUKExDRE0xNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE2ICovCitTRlJfOEJJVChMQ0RNMTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNyAqLworU0ZSXzhCSVQoTENETTE4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTggKi8KK1NGUl84QklUKExDRE0xOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE5ICovCitTRlJfOEJJVChMQ0RNMjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAyMCAqLworCisjZGVmaW5lIExDRE1BICAgICAgICAgICAgICAgICAgKExDRE0xMCkgICAgICAgLyogTENEIE1lbW9yeSBBICovCisjZGVmaW5lIExDRE1CICAgICAgICAgICAgICAgICAgKExDRE0xMSkgICAgICAgLyogTENEIE1lbW9yeSBCICovCisjZGVmaW5lIExDRE1DICAgICAgICAgICAgICAgICAgKExDRE0xMikgICAgICAgLyogTENEIE1lbW9yeSBDICovCisjZGVmaW5lIExDRE1EICAgICAgICAgICAgICAgICAgKExDRE0xMykgICAgICAgLyogTENEIE1lbW9yeSBEICovCisjZGVmaW5lIExDRE1FICAgICAgICAgICAgICAgICAgKExDRE0xNCkgICAgICAgLyogTENEIE1lbW9yeSBFICovCisjZGVmaW5lIExDRE1GICAgICAgICAgICAgICAgICAgKExDRE0xNSkgICAgICAgLyogTENEIE1lbW9yeSBGICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxBU0hfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKEZDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKEZDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKEZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMQVNIIENvbnRyb2wgMyAqLworCisjZGVmaW5lIEZSS0VZICAgICAgICAgICAgICAgICAgKDB4OTYwMCkgICAgICAgLyogRmxhc2gga2V5IHJldHVybmVkIGJ5IHJlYWQgKi8KKyNkZWZpbmUgRldLRVkgICAgICAgICAgICAgICAgICAoMHhBNTAwKSAgICAgICAvKiBGbGFzaCBrZXkgZm9yIHdyaXRlICovCisjZGVmaW5lIEZYS0VZICAgICAgICAgICAgICAgICAgKDB4MzMwMCkgICAgICAgLyogZm9yIHVzZSB3aXRoIFhPUiBpbnN0cnVjdGlvbiAqLworCisjZGVmaW5lIEVSQVNFICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCBlcmFzZSAqLworI2RlZmluZSBNRVJBUyAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgV1JUICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCB3cml0ZSAqLworI2RlZmluZSBCTEtXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgU0VHV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBvbGQgZGVmaW5pdGlvbiAqLyAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisKKyNkZWZpbmUgRk4wICAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEaXZpZGUgRmxhc2ggY2xvY2sgYnkgMSB0byA2NCB1c2luZyBGTjAgdG8gRk41IGFjY29yZGluZyB0bzogKi8KKyNkZWZpbmUgRk4xICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiAgMzIqRk41ICsgMTYqRk40ICsgOCpGTjMgKyA0KkZOMiArIDIqRk4xICsgRk4wICsgMSAqLworI2lmbmRlZiBGTjIKKyNkZWZpbmUgRk4yICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2VuZGlmCisjaWZuZGVmIEZOMworI2RlZmluZSBGTjMgICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZW5kaWYKKyNpZm5kZWYgRk40CisjZGVmaW5lIEZONCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNlbmRpZgorI2RlZmluZSBGTjUgICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEZTU0VMMCAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDAgKi8gICAgICAgIC8qIHRvIGRpc3Rpbmd1aXNoIGZyb20gVVNBUlQgU1NFTHggKi8KKyNkZWZpbmUgRlNTRUwxICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMSAqLworCisjZGVmaW5lIEZTU0VMXzAgICAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAwIC0gQUNMSyAqLworI2RlZmluZSBGU1NFTF8xICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMSAtIE1DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBGU1NFTF8zICAgICAgICAgICAgICAgICgweDAwQzApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMyAtIFNNQ0xLICovCisKKyNkZWZpbmUgQlVTWSAgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBGbGFzaCBidXN5OiAxICovCisjZGVmaW5lIEtFWVYgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRmxhc2ggS2V5IHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIEFDQ1ZJRkcgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRmxhc2ggQWNjZXNzIHZpb2xhdGlvbiBmbGFnICovCisjZGVmaW5lIFdBSVQgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogV2FpdCBmbGFnIGZvciBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIExPQ0sgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogTG9jayBiaXQ6IDEgLSBGbGFzaCBpcyBsb2NrZWQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgRU1FWCAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBGbGFzaCBFbWVyZ2VuY3kgRXhpdCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNEMTZfQTEgLSBTaWdtYSBEZWx0YSAxNiBCaXQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NEMTZfQTFfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNEMTZJTkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IElucHV0IENvbnRyb2wgUmVnaXN0ZXIgQ2hhbm5lbCAwICovCitTRlJfOEJJVChTRDE2QUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBBbmFsb2cgSW5wdXQgRW5hYmxlIFJlZ2lzdGVyICovCitTRlJfOEJJVChTRDE2Q09ORjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0QxNiBJbnRlcm5hbCBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFNEMTZDT05GMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVybmFsIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQbGVhc2UgdXNlIG9ubHkgdGhlIHJlY29tbWVuZGVkIHNldHRpbmdzICovCisKK1NGUl8xNkJJVChTRDE2Q1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTaWdtYSBEZWx0YSBBREMgMTYgQ29udHJvbCBSZWdpc3RlciAqLworU0ZSXzE2QklUKFNEMTZDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNEMTYgQ2hhbm5lbCAwIENvbnRyb2wgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2SVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IEludGVycnVwdCBWZWN0b3IgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTRDE2TUVNMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTRDE2IENoYW5uZWwgMCBDb252ZXJzaW9uIE1lbW9yeSAqLworCisvKiBTRDE2QUUgKi8KKyNkZWZpbmUgU0QxNkFFMCAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTRDE2IEV4dGVybmFsIElucHV0IEVuYWJsZSAwICovCisjZGVmaW5lIFNEMTZBRTEgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBFeHRlcm5hbCBJbnB1dCBFbmFibGUgMSAqLworI2RlZmluZSBTRDE2QUUyICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgU0QxNkFFMyAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IEV4dGVybmFsIElucHV0IEVuYWJsZSAzICovCisjZGVmaW5lIFNEMTZBRTQgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0QxNiBFeHRlcm5hbCBJbnB1dCBFbmFibGUgNCAqLworI2RlZmluZSBTRDE2QUU1ICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgRXh0ZXJuYWwgSW5wdXQgRW5hYmxlIDUgKi8KKyNkZWZpbmUgU0QxNkFFNiAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IEV4dGVybmFsIElucHV0IEVuYWJsZSA2ICovCisjZGVmaW5lIFNEMTZBRTcgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0QxNiBFeHRlcm5hbCBJbnB1dCBFbmFibGUgNyAqLworCisvKiBTRDE2SU5DVEx4ICovCisjZGVmaW5lIFNEMTZJTkNIMCAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZJTkNIMSAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAxICovCisjZGVmaW5lIFNEMTZJTkNIMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCAyICovCisjZGVmaW5lIFNEMTZHQUlOMCAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNkdBSU4xICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgMSAqLworI2RlZmluZSBTRDE2R0FJTjIgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAyICovCisjZGVmaW5lIFNEMTZJTlRETFkwICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXkgYWZ0ZXIgMS5Db252ZXJzaW9uIDAgKi8KKyNkZWZpbmUgU0QxNklOVERMWTEgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheSBhZnRlciAxLkNvbnZlcnNpb24gMSAqLworCisjZGVmaW5lIFNEMTZHQUlOXzEgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICoxICAqLworI2RlZmluZSBTRDE2R0FJTl8yICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMiAgKi8KKyNkZWZpbmUgU0QxNkdBSU5fNCAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjQgICovCisjZGVmaW5lIFNEMTZHQUlOXzggICAgICAgICAgICAgKDB4MDAxOCkgICAgICAgLyogU0QxNiBJbnB1dCBQcmUtQW1wbGlmaWVyIEdhaW4gU2VsZWN0ICo4ICAqLworI2RlZmluZSBTRDE2R0FJTl8xNiAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgSW5wdXQgUHJlLUFtcGxpZmllciBHYWluIFNlbGVjdCAqMTYgKi8KKyNkZWZpbmUgU0QxNkdBSU5fMzIgICAgICAgICAgICAoMHgwMDI4KSAgICAgICAvKiBTRDE2IElucHV0IFByZS1BbXBsaWZpZXIgR2FpbiBTZWxlY3QgKjMyICovCisKKyNkZWZpbmUgU0QxNklOQ0hfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IEEwICovCisjZGVmaW5lIFNEMTZJTkNIXzEgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBBMSAqLworI2RlZmluZSBTRDE2SU5DSF8yICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgQTIgKi8KKyNkZWZpbmUgU0QxNklOQ0hfMyAgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IEEzICovCisjZGVmaW5lIFNEMTZJTkNIXzQgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0QxNiBJbnB1dCBDaGFubmVsIHNlbGVjdCBBNCAqLworI2RlZmluZSBTRDE2SU5DSF81ICAgICAgICAgICAgICgweDAwMDUpICAgICAgIC8qIFNEMTYgSW5wdXQgQ2hhbm5lbCBzZWxlY3QgVmNjIGRpdmlkZXIgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNiAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IFRlbXAgKi8KKyNkZWZpbmUgU0QxNklOQ0hfNyAgICAgICAgICAgICAoMHgwMDA3KSAgICAgICAvKiBTRDE2IElucHV0IENoYW5uZWwgc2VsZWN0IE9mZnNldCAqLworCisjZGVmaW5lIFNEMTZJTlRETFlfMCAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgNC5Db252ZXJzaW9uICAqLworI2RlZmluZSBTRDE2SU5URExZXzEgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNEMTYgSW50ZXJydXB0IERlbGF5OiBJbnQuIGFmdGVyIDMuQ29udmVyc2lvbiAgKi8KKyNkZWZpbmUgU0QxNklOVERMWV8yICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IEludGVycnVwdCBEZWxheTogSW50LiBhZnRlciAyLkNvbnZlcnNpb24gICovCisjZGVmaW5lIFNEMTZJTlRETFlfMyAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogU0QxNiBJbnRlcnJ1cHQgRGVsYXk6IEludC4gYWZ0ZXIgMS5Db252ZXJzaW9uICAqLworCisvKiBTRDE2Q1RMICovCisjZGVmaW5lIFNEMTZPVklFICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0QxNiBPdmVyZmxvdyBJbnRlcnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgU0QxNlJFRk9OICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTRDE2IFN3aXRjaCBpbnRlcm5hbCBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgU0QxNlZNSURPTiAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTRDE2IFN3aXRjaCBWbWlkIEJ1ZmZlciBvbiAqLworI2RlZmluZSBTRDE2U1NFTDAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZTU0VMMSAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0QxNiBDbG9jayBTb3VyY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkRJVjAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0QxNkRJVjEgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0QxNkxQICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTRDE2IExvdyBQb3dlciBNb2RlIEVuYWJsZSAqLworI2RlZmluZSBTRDE2WERJVjAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNEMTYgMi5DbG9jayBEaXZpZGVyIFNlbGVjdCAwICovCisjZGVmaW5lIFNEMTZYRElWMSAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogU0QxNiAyLkNsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKy8vI2RlZmluZSBTRDE2WERJVjIgICAgICAgICAgICgweDA4MDApICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgMiAqLworCisjZGVmaW5lIFNEMTZESVZfMCAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogU0QxNiBDbG9jayBEaXZpZGVyIFNlbGVjdCAvMSAqLworI2RlZmluZSBTRDE2RElWXzEgICAgICAgICAgICAgIChTRDE2RElWMCkgICAgIC8qIFNEMTYgQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzIgKi8KKyNkZWZpbmUgU0QxNkRJVl8yICAgICAgICAgICAgICAoU0QxNkRJVjEpICAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC80ICovCisjZGVmaW5lIFNEMTZESVZfMyAgICAgICAgICAgKFNEMTZESVYwK1NEMTZESVYxKSAgICAvKiBTRDE2IENsb2NrIERpdmlkZXIgU2VsZWN0IC84ICovCisKKyNkZWZpbmUgU0QxNlhESVZfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzEgKi8KKyNkZWZpbmUgU0QxNlhESVZfMSAgICAgICAgICAgICAoU0QxNlhESVYwKSAgICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzMgKi8KKyNkZWZpbmUgU0QxNlhESVZfMiAgICAgICAgICAgICAoU0QxNlhESVYxKSAgICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzE2ICovCisjZGVmaW5lIFNEMTZYRElWXzMgICAgICAgICAgKFNEMTZYRElWMCtTRDE2WERJVjEpICAvKiBTRDE2IDIuQ2xvY2sgRGl2aWRlciBTZWxlY3QgLzQ4ICovCisKKyNkZWZpbmUgU0QxNlNTRUxfMCAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgTUNMSyAgKi8KKyNkZWZpbmUgU0QxNlNTRUxfMSAgICAgICAgICAgICAoU0QxNlNTRUwwKSAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgU01DTEsgKi8KKyNkZWZpbmUgU0QxNlNTRUxfMiAgICAgICAgICAgICAoU0QxNlNTRUwxKSAgICAvKiBTRDE2IENsb2NrIFNvdXJjZSBTZWxlY3QgQUNMSyAgKi8KKyNkZWZpbmUgU0QxNlNTRUxfMyAgICAgICAgICAoU0QxNlNTRUwwK1NEMTZTU0VMMSkgIC8qIFNEMTYgQ2xvY2sgU291cmNlIFNlbGVjdCBUQUNMSyAqLworCisvKiBTRDE2Q0NUTHggKi8KKy8vI2RlZmluZSBSRVNFUlZFRCAgICAgICAgICAgICgweDAwMDEpICAvKiBSRVNFUlZFRCAqLworI2RlZmluZSBTRDE2U0MgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTYgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBTRDE2SUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFNEMTZJRSAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBTRDE2REYgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IERhdGEgRm9ybWF0OiAwOlVuaXBvbGFyLzE6Qmlwb2xhciAqLworI2RlZmluZSBTRDE2T1ZJRkcgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJmbG93IEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFNEMTZMU0JBQ0MgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggQWNjZXNzIExTQiBvZiBBREMgKi8KKyNkZWZpbmUgU0QxNkxTQlRPRyAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBUb2dnbGUgTFNCIE91dHB1dCBvZiBBREMgKi8KKyNkZWZpbmUgU0QxNk9TUjAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMCAqLworI2RlZmluZSBTRDE2T1NSMSAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAxICovCisjZGVmaW5lIFNEMTZTTkdMICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggU2luZ2xlIENvbnZlcnNpb24gT24vT2ZmICovCisjZGVmaW5lIFNEMTZYT1NSICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggRXh0ZW5kZWQgT3ZlclNhbXBsaW5nIFJhdGlvICovCisjZGVmaW5lIFNEMTZVTkkgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggQmlwb2xhcigwKSAvIFVuaXBvbGFyKDEpIE1vZGUgKi8KKyNkZWZpbmUgU0QxNkJVRjAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBTRDE2IENoYW5uZWwgeCBIaWdoIEltcGVkYW5jZSBJbnB1dCBCdWZmZXIgU2VsZWN0OiAwICovCisjZGVmaW5lIFNEMTZCVUYxICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogU0QxNiBDaGFubmVsIHggSGlnaCBJbXBlZGFuY2UgSW5wdXQgQnVmZmVyIFNlbGVjdDogMSAqLworI2RlZmluZSBTRDE2QlVGRyAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IEJ1ZmZlciBHYWluIDA6R2Fpbj0xIC8gMTpHYWluPTIgKi8KKworI2RlZmluZSBTRDE2T1NSXzEwMjQgICAgICAgIChTRDE2T1NSMCtTRDE2WE9TUikgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAxMDI0ICovCisjZGVmaW5lIFNEMTZPU1JfNTEyICAgICAgICAgICAgKFNEMTZYT1NSKSAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvIDUxMiAqLworI2RlZmluZSBTRDE2T1NSXzI1NiAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAyNTYgKi8KKyNkZWZpbmUgU0QxNk9TUl8xMjggICAgICAgICAgICAoU0QxNk9TUjApICAgICAvKiBTRDE2IENoYW5uZWwgeCBPdmVyU2FtcGxpbmcgUmF0aW8gMTI4ICovCisjZGVmaW5lIFNEMTZPU1JfNjQgICAgICAgICAgICAgKFNEMTZPU1IxKSAgICAgLyogU0QxNiBDaGFubmVsIHggT3ZlclNhbXBsaW5nIFJhdGlvICA2NCAqLworI2RlZmluZSBTRDE2T1NSXzMyICAgICAgICAgIChTRDE2T1NSMCtTRDE2T1NSMSkgICAgIC8qIFNEMTYgQ2hhbm5lbCB4IE92ZXJTYW1wbGluZyBSYXRpbyAgMzIgKi8KKworI2RlZmluZSBTRDE2QlVGXzAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNEMTYgSGlnaCBJbXAuIElucHV0IEJ1ZmZlcjogRGlzYWJsZWQgKi8KKyNkZWZpbmUgU0QxNkJVRl8xICAgICAgICAgICAgICAoU0QxNkJVRjApICAgICAvKiBTRDE2IEhpZ2ggSW1wLiBJbnB1dCBCdWZmZXI6IFNsb3cgKi8KKyNkZWZpbmUgU0QxNkJVRl8yICAgICAgICAgICAgICAoU0QxNkJVRjEpICAgICAvKiBTRDE2IEhpZ2ggSW1wLiBJbnB1dCBCdWZmZXI6IE1lZHVpbSAqLworI2RlZmluZSBTRDE2QlVGXzMgICAgICAgICAgIChTRDE2QlVGMCtTRDE2QlVGMSkgICAgIC8qIFNEMTYgSGlnaCBJbXAuIElucHV0IEJ1ZmZlcjogRmFzdCAqLworCisvKiBTRDE2SVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgU0QxNklWX05PTkUgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBTRDE2SVZfU0QxNk9WSUZHICAgICAgICgweDAwMDIpICAgICAgIC8qIFNEMTZPVklGRyAqLworI2RlZmluZSBTRDE2SVZfU0QxNk1FTTAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNEMTZNRU0wIFNEMTZJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBEQUMxMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfREFDMTJfMV9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKERBQzEyXzBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIERBQzEyXzAgQ29udHJvbCAqLworCisjZGVmaW5lIERBQzEyR1JQICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogREFDMTIgZ3JvdXAgKG5vdCB1c2VkKSAqLworI2RlZmluZSBEQUMxMkVOQyAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERBQzEyIGVuYWJsZSBjb252ZXJzaW9uICovCisjZGVmaW5lIERBQzEySUZHICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogREFDMTIgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgREFDMTJJRSAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBEQUMxMiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIERBQzEyREYgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogREFDMTIgZGF0YSBmb3JtYXQgKi8KKyNkZWZpbmUgREFDMTJBTVAwICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJBTVAxICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDEgKi8KKyNkZWZpbmUgREFDMTJBTVAyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDIgKi8KKyNkZWZpbmUgREFDMTJJUiAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBEQUMxMiBpbnB1dCByZWZlcmVuY2UgYW5kIG91dHB1dCByYW5nZSAqLworI2RlZmluZSBEQUMxMkNBTE9OICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERBQzEyIGNhbGlicmF0aW9uICovCisjZGVmaW5lIERBQzEyTFNFTDAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJMU0VMMSAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBEQUMxMlJFUyAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIERBQzEyIHJlc29sdXRpb24gKi8KKyNkZWZpbmUgREFDMTJTUkVGMCAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBEQUMxMiByZWZlcmVuY2UgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJTUkVGMSAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBEQUMxMiByZWZlcmVuY2UgYml0IDEgKi8KKyNkZWZpbmUgREFDMTJPUFMgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBEQUMxMiBPcGVyYXRpb24gQW1wLiAqLworCisjZGVmaW5lIERBQzEyQU1QXzAgICAgICAgICAgICAgKDAqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDA6IG9mZiwgICAgMy1zdGF0ZSAqLworI2RlZmluZSBEQUMxMkFNUF8xICAgICAgICAgICAgICgxKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAxOiBvZmYsICAgIG9mZiAqLworI2RlZmluZSBEQUMxMkFNUF8yICAgICAgICAgICAgICgyKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAyOiBsb3csICAgIGxvdyAqLworI2RlZmluZSBEQUMxMkFNUF8zICAgICAgICAgICAgICgzKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAzOiBsb3csICAgIG1lZGl1bSAqLworI2RlZmluZSBEQUMxMkFNUF80ICAgICAgICAgICAgICg0KjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciA0OiBsb3csICAgIGhpZ2ggKi8KKyNkZWZpbmUgREFDMTJBTVBfNSAgICAgICAgICAgICAoNSoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNTogbWVkaXVtLCBtZWRpdW0gKi8KKyNkZWZpbmUgREFDMTJBTVBfNiAgICAgICAgICAgICAoNioweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNjogbWVkaXVtLCBoaWdoICovCisjZGVmaW5lIERBQzEyQU1QXzcgICAgICAgICAgICAgKDcqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDc6IGhpZ2gsICAgaGlnaCAqLworCisjZGVmaW5lIERBQzEyTFNFTF8wICAgICAgICAgICAgKDAqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMDogZGlyZWN0ICovCisjZGVmaW5lIERBQzEyTFNFTF8xICAgICAgICAgICAgKDEqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMTogbGF0Y2hlZCB3aXRoIERBVCAqLworI2RlZmluZSBEQUMxMkxTRUxfMiAgICAgICAgICAgICgyKjB4MDQwMHUpICAgIC8qIERBQzEyIGxvYWQgc2VsZWN0IDI6IGxhdGNoZWQgd2l0aCBwb3MuIFRpbWVyX0EzLk9VVDEgKi8KKyNkZWZpbmUgREFDMTJMU0VMXzMgICAgICAgICAgICAoMyoweDA0MDB1KSAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCAzOiBsYXRjaGVkIHdpdGggcG9zLiBUaW1lcl9CNy5PVVQxICovCisKKyNkZWZpbmUgREFDMTJTUkVGXzAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMDogVnJlZisgKi8KKyNkZWZpbmUgREFDMTJTUkVGXzEgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMTogVnJlZisgKi8KKyNkZWZpbmUgREFDMTJTUkVGXzIgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMjogVmVyZWYrICovCisjZGVmaW5lIERBQzEyU1JFRl8zICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogREFDMTIgcmVmZXJlbmNlIDM6IFZlcmVmKyAqLworCitTRlJfMTZCSVQoREFDMTJfMERBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMCBEYXRhICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIE9wZXJhdGlvbmFsIEFtcGxpZmllcgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfT0FfMl9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoT0EwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9BMCBDb250cm9sIHJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKE9BMENUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPQTAgQ29udHJvbCByZWdpc3RlciAxICovCitTRlJfOEJJVChPQTFDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT0ExIENvbnRyb2wgcmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoT0ExQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9BMSBDb250cm9sIHJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFNXQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPQSAgQW5hbG9nIFN3aXRjaGVzIENvbnRyb2wgUmVnaXN0ZXIgKi8KKworI2RlZmluZSBPQVBNMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE9BeCBQb3dlciBtb2RlIHNlbGVjdCAwICovCisjZGVmaW5lIE9BUE0xICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0IDEgKi8KKyNkZWZpbmUgT0FQMCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBPQVAxICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE9BeCBOb24taW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIE9BTjAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogT0F4IEludmVydGluZyBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBPQU4xICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE9BeCBJbnZlcnRpbmcgaW5wdXQgc2VsZWN0IDEgKi8KKworI2RlZmluZSBPQVBNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE9BeCBQb3dlciBtb2RlIHNlbGVjdDogb2ZmICovCisjZGVmaW5lIE9BUE1fMSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0OiBzbG93ICovCisjZGVmaW5lIE9BUE1fMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0OiBtZWR1aW0gKi8KKyNkZWZpbmUgT0FQTV8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBPQXggUG93ZXIgbW9kZSBzZWxlY3Q6IGZhc3QgKi8KKyNkZWZpbmUgT0FQXzAgICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMDAgKi8KKyNkZWZpbmUgT0FQXzEgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMDEgKi8KKyNkZWZpbmUgT0FQXzIgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMTAgKi8KKyNkZWZpbmUgT0FQXzMgICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMTEgKi8KKyNkZWZpbmUgT0FOXzAgICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBPQXggSW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAwMCAqLworI2RlZmluZSBPQU5fMSAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE9BeCBJbnZlcnRpbmcgaW5wdXQgc2VsZWN0IDAxICovCisjZGVmaW5lIE9BTl8yICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogT0F4IEludmVydGluZyBpbnB1dCBzZWxlY3QgMTAgKi8KKyNkZWZpbmUgT0FOXzMgICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBPQXggSW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAxMSAqLworCisjZGVmaW5lIE9BQ0FMICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogT0F4IE9mZnNldCBDYWxpYnJhdGlvbiAqLworI2RlZmluZSBPQUZDMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbiBjb250cm9sIDAgKi8KKyNkZWZpbmUgT0FGQzEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBPQXggRnVuY3Rpb24gY29udHJvbCAxICovCisjZGVmaW5lIE9BRkMyICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogT0F4IEZ1bmN0aW9uIGNvbnRyb2wgMiAqLworCisjZGVmaW5lIE9BRkNfMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBHZW4uIFB1cnBvc2UgKi8KKyNkZWZpbmUgT0FGQ18xICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBPQXggRnVuY3Rpb246IFVuaXR5IGdhaW4gYnVmZmVyICovCisjZGVmaW5lIE9BRkNfMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBSZXNlcnZlZCAqLworI2RlZmluZSBPQUZDXzMgICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgT0FGQ180ICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggRnVuY3Rpb246IFJlc2VydmVkICovCisjZGVmaW5lIE9BRkNfNSAgICAgICAgICAgICAgICAgKDB4MTQpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBSZXNlcnZlZCAqLworI2RlZmluZSBPQUZDXzYgICAgICAgICAgICAgICAgICgweDE4KSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogSW52ZXJ0aW5nIFBHQSAqLworI2RlZmluZSBPQUZDXzcgICAgICAgICAgICAgICAgICgweDFDKSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogUmVzZXJ2ZWQgKi8KKworI2RlZmluZSBTV0NUTDAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE9BICBBbmFsb2cgU3dpdGNoIENvbnRyb2wgMCAqLworI2RlZmluZSBTV0NUTDEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9BICBBbmFsb2cgU3dpdGNoIENvbnRyb2wgMSAqLworI2RlZmluZSBTV0NUTDIgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE9BICBBbmFsb2cgU3dpdGNoIENvbnRyb2wgMiAqLworI2RlZmluZSBTV0NUTDMgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE9BICBBbmFsb2cgU3dpdGNoIENvbnRyb2wgMyAqLworI2RlZmluZSBTV0NUTDQgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE9BICBBbmFsb2cgU3dpdGNoIENvbnRyb2wgNCAqLworI2RlZmluZSBTV0NUTDUgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE9BICBBbmFsb2cgU3dpdGNoIENvbnRyb2wgNSAqLworI2RlZmluZSBTV0NUTDYgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE9BICBBbmFsb2cgU3dpdGNoIENvbnRyb2wgNiAqLworI2RlZmluZSBTV0NUTDcgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE9BICBBbmFsb2cgU3dpdGNoIENvbnRyb2wgNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEludGVycnVwdCBWZWN0b3JzIChvZmZzZXQgZnJvbSAweEZGRTApCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVkVDVE9SX05BTUUobmFtZSkgICAgICAgbmFtZSMjX3B0cgorI2RlZmluZSBFTUlUX1BSQUdNQSh4KSAgICAgICAgICBfUHJhZ21hKCN4KQorI2RlZmluZSBDUkVBVEVfVkVDVE9SKG5hbWUpICAgICB2b2lkICgqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpKSh2b2lkKSA9ICZuYW1lCisjZGVmaW5lIFBMQUNFX1ZFQ1RPUih2ZWN0b3Isc2VjdGlvbikgRU1JVF9QUkFHTUEoREFUQV9TRUNUSU9OKHZlY3RvcixzZWN0aW9uKSkKKyNkZWZpbmUgSVNSX1ZFQ1RPUihmdW5jLG9mZnNldCkgQ1JFQVRFX1ZFQ1RPUihmdW5jKTsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQTEFDRV9WRUNUT1IoVkVDVE9SX05BTUUoZnVuYyksIG9mZnNldCkKKworI2RlZmluZSBCQVNJQ1RJTUVSX1ZFQ1RPUiAgICAgICAoMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLworLyojZGVmaW5lIEJBU0lDVElNRVJfSVNSKGZ1bmMpICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMCIpICAqLyAvKiAweEZGRTAgQmFzaWMgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQyX1ZFQ1RPUiAgICAgICAgICAgICgxICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUyIFBvcnQgMiAqLworLyojZGVmaW5lIFBPUlQyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMSIpICAqLyAvKiAweEZGRTIgUG9ydCAyICovIC8qIENDRSBWMiBTdHlsZSAqLworCisjZGVmaW5lIERBQzEyX1ZFQ1RPUiAgICAgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IERBQyAxMiAqLworLyojZGVmaW5lIERBQzEyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgREFDIDEyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisKKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworCisjZGVmaW5lIFNEMTZfVkVDVE9SICAgICAgICAgICAgICgxMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY4IFNpZ21hIERlbHRhIEFEQyAqLworLyojZGVmaW5lIFNEMTZfSVNSKGZ1bmMpICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMiIpICAqLyAvKiAweEZGRjggU2lnbWEgRGVsdGEgQURDICovIC8qIENDRSBWMiBTdHlsZSAqLworCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBFbmQgb2YgTW9kdWxlcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAvKiBleHRlcm4gIkMiICovCisKKyNlbmRpZiAvKiAjaWZuZGVmIF9fbXNwNDMweEc0MngwICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4ZzQzeC5oIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3RpL2FwcHMvbXNwNDMwL21zcDQzMHhnNDN4LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTlhMWNiNQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4ZzQzeC5oCkBAIC0wLDAgKzEsMTI5NyBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIFN0YW5kYXJkIHJlZ2lzdGVyIGFuZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cworKiBNU1A0MzAgbWljcm9jb250cm9sbGVyLgorKgorKiBUaGlzIGZpbGUgc3VwcG9ydHMgYXNzZW1ibGVyIGFuZCBDIGRldmVsb3BtZW50IGZvcgorKiBNU1A0MzB4RzQzeCBkZXZpY2VzLgorKgorKiBUZXhhcyBJbnN0cnVtZW50cywgVmVyc2lvbiAyLjUKKyoKKyogUmV2LiAyLjAsICBGaXhlZCBzb21lIGFkZHJlc3Mgb2YgdGhlIE9QQU1QIHJlZ2lzdGVycworKiBSZXYuIDIuMSwgIEFsaWdubWVudCBvZiBkZWZpbnRpb25zIGluIFVzZXJzIEd1aWRlIGFuZCBvZiB2ZXJzaW9uIG51bWJlcnMKKyogUmV2LiAyLjIsICBGaXhlZCBzb21lIGRlZmludGlvbnMgb2YgdGhlIE9QQU1QIHJlZ2lzdGVycworKiBSZXYuIDIuMjEsIEFkZGVkIERBQzEyT1BTCisqIFJldi4gMi4yMiwgUmVtb3ZlZCBkZWZpbml0aW9uIG9mIExDRExPV1IgKG5vdCBhdmFpbGFibGUgYXQgNHh4IGRldmljZXMpCisqIFJldi4gMi4zLCBGaXhlZCB0eXBlIGluIEFEQzEyIGJpdCBkZWZpbml0aW9ucyAocmVwbGFjZWQgQURDMTAgd2l0aCBBREMxMikKKyogICAgICAgICAgIEFkZGVkIERNQSByZXF1ZXN0IGRlZmluaXRpb25zCisqIFJldi4gMi4zLCBDaGFuZ2VkIGRlZmluaXRpb24gaW4gT1BBTVAgc2VjdGlvbiB0byBhY2NvcmQgVXNlcnMgR3VpZGUKKyogUmV2LiAyLjEsIFJlbW92ZWQgZGVmaW5pdGlvbnMgZm9yIERNQSBjaGFubmVsIDEgKyAyCisqIFJldi4gMi4yLCBSZW1vdmVkIHVudXNlZCBkZWYgb2YgVEFTU0VMMiAvIFRCU1NFTDIKKyogUmV2LiAyLjMsIEFkZGVkIFZMRCBiaXRzIGluIFNWUyBtb2R1bGUKKyogUmV2LiAyLjQsIFJlbW92ZWQgZGVmaW5pdGlvbnMgZm9yIEJUUkVTRVQKKyogUmV2LiAyLjUsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmbmRlZiBfX21zcDQzMHhHNDN4CisjZGVmaW5lIF9fbXNwNDMweEc0M3gKKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiBQRVJJUEhFUkFMIEZJTEUgTUFQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKworLyogRXh0ZXJuYWwgcmVmZXJlbmNlcyByZXNvbHZlZCBieSBhIGRldmljZS1zcGVjaWZpYyBsaW5rZXIgY29tbWFuZCBmaWxlICovCisjZGVmaW5lIFNGUl84QklUKGFkZHJlc3MpICAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGNoYXIgYWRkcmVzcworI2RlZmluZSBTRlJfMTZCSVQoYWRkcmVzcykgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBpbnQgYWRkcmVzcworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEJJVDAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgQklUMSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBCSVQyICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIEJJVDMgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQklUNCAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBCSVQ1ICAgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIEJJVDYgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgQklUNyAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorI2RlZmluZSBCSVQ4ICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEJJVDkgICAgICAgICAgICAgICAgICAgKDB4MDIwMCkKKyNkZWZpbmUgQklUQSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKQorI2RlZmluZSBCSVRCICAgICAgICAgICAgICAgICAgICgweDA4MDApCisjZGVmaW5lIEJJVEMgICAgICAgICAgICAgICAgICAgKDB4MTAwMCkKKyNkZWZpbmUgQklURCAgICAgICAgICAgICAgICAgICAoMHgyMDAwKQorI2RlZmluZSBCSVRFICAgICAgICAgICAgICAgICAgICgweDQwMDApCisjZGVmaW5lIEJJVEYgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIEMgICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgWiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBOICAgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFYgICAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkKKyNkZWZpbmUgR0lFICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBDUFVPRkYgICAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIE9TQ09GRiAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgU0NHMCAgICAgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBTQ0cxICAgICAgICAgICAgICAgICAgICgweDAwODApCisKKy8qIExvdyBQb3dlciBNb2RlcyBjb2RlZCB3aXRoIEJpdHMgNC03IGluIFNSICovCisKKyNpZmRlZiBfX0FTTV9IRUFERVJfXyAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisjZGVmaW5lIExQTTAgICAgICAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMSAgICAgICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTIgICAgICAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00ICAgICAgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKy8qIEVuZCAjZGVmaW5lcyBmb3IgYXNzZW1ibGVyICovCisKKyNlbHNlIC8qIEJlZ2luICNkZWZpbmVzIGZvciBDICovCisjZGVmaW5lIExQTTBfYml0cyAgICAgICAgICAgICAgKENQVU9GRikKKyNkZWZpbmUgTFBNMV9iaXRzICAgICAgICAgICAgICAoU0NHMCtDUFVPRkYpCisjZGVmaW5lIExQTTJfYml0cyAgICAgICAgICAgICAgKFNDRzErQ1BVT0ZGKQorI2RlZmluZSBMUE0zX2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE00X2JpdHMgICAgICAgICAgICAgIChTQ0cxK1NDRzArT1NDT0ZGK0NQVU9GRikKKworI2luY2x1ZGUgPEluNDMwLmg+CisKKyNkZWZpbmUgTFBNMCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0wX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMCAqLworI2RlZmluZSBMUE0xICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0xX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0xX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTFfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAxICovCisjZGVmaW5lIExQTTIgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTJfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTJfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMl9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDIgKi8KKyNkZWZpbmUgTFBNMyAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNM19iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNM19FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0zX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMyAqLworI2RlZmluZSBMUE00ICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE00X2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgNCAqLworI2RlZmluZSBMUE00X0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTRfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSA0ICovCisjZW5kaWYgLyogRW5kICNkZWZpbmVzIGZvciBDICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogUEVSSVBIRVJBTCBGSUxFIE1BUAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1NGUl84QklUKElFMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDEgKi8KKyNkZWZpbmUgVTBJRSAgICAgICAgICAgICAgICAgICBJRTEgICAgICAgICAgICAvKiBVQVJUMCBJbnRlcnJ1cHQgRW5hYmxlIFJlZ2lzdGVyICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFVSWElFMCAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFVUWElFMCAgICAgICAgICAgICAgICAgKDB4ODApCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFUwSUZHICAgICAgICAgICAgICAgICAgSUZHMSAgICAgICAgICAgLyogVUFSVDAgSW50ZXJydXB0IEZsYWcgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTk1JSUZHICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVVJYSUZHMCAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYSUZHMCAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoTUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE1vZHVsZSBFbmFibGUgMSAqLworI2RlZmluZSBVME1FICAgICAgICAgICAgICAgICAgIE1FMSAgICAgICAgICAgIC8qIFVBUlQwIE1vZHVsZSBFbmFibGUgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgVVJYRTAgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgVVRYRTAgICAgICAgICAgICAgICAgICAoMHg4MCkKKyNkZWZpbmUgVVNQSUUwICAgICAgICAgICAgICAgICAoMHg0MCkKKworU0ZSXzhCSVQoSUUyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBCVElFICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgICAgICgweDgwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFdBVENIRE9HIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19XRFRfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoV0RUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2F0Y2hkb2cgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiV0RUIiAqLworI2RlZmluZSBXRFRJUzAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFdEVElTMSAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgV0RUU1NFTCAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBXRFRDTlRDTCAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIFdEVFRNU0VMICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgV0RUTk1JICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBXRFROTUlFUyAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIFdEVEhPTEQgICAgICAgICAgICAgICAgKDB4MDA4MCkKKworI2RlZmluZSBXRFRQVyAgICAgICAgICAgICAgICAgICgweDVBMDApCisKKy8qIFdEVC1pbnRlcnZhbCB0aW1lcyBbMW1zXSBjb2RlZCB3aXRoIEJpdHMgMC0yICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01ETFlfMzIgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NRExZXzggICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF81ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzA2NCAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTAwMCAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQURMWV8yNTAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzE2ICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMV85ICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgIC8qIDEuOW1zICAgIiAqLworLyogV2F0Y2hkb2cgbW9kZSAtPiByZXNldCBhZnRlciBleHBpcmVkIHRpbWUgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTVJTVF8zMiAgICAgICAgIChXRFRQVytXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01SU1RfOCAgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzUgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfMDY0ICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQVJTVF8xMDAwICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzI1MCAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTYgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xXzkgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgICAgICAgICAgLyogMS45bXMgICAiICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgV0RUSUUgICAgICAgICAgICAgICAweDAxICovCisvKiAjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgMHgwMSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQxX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQMUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIElucHV0ICovCitTRlJfOEJJVChQMU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIE91dHB1dCAqLworU0ZSXzhCSVQoUDFESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAxSUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAxSUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMUlFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAxU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFAySU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW5wdXQgKi8KK1NGUl84QklUKFAyT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgT3V0cHV0ICovCitTRlJfOEJJVChQMkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDJJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUM19fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDRfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDNJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBJbnB1dCAqLworU0ZSXzhCSVQoUDNPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBPdXRwdXQgKi8KK1NGUl84QklUKFAzRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgRGlyZWN0aW9uICovCitTRlJfOEJJVChQM1NFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNElOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IElucHV0ICovCitTRlJfOEJJVChQNE9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IE91dHB1dCAqLworU0ZSXzhCSVQoUDRESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA0U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDUvNgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDVfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ2X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA1SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgSW5wdXQgKi8KK1NGUl84QklUKFA1T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgT3V0cHV0ICovCitTRlJfOEJJVChQNURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDVTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDZJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBJbnB1dCAqLworU0ZSXzhCSVQoUDZPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBPdXRwdXQgKi8KK1NGUl84QklUKFA2RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJBU0lDIFRJTUVSCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19CVF9fICAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChCVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ29udHJvbCAqLworLyogVGhlIGJpdCBuYW1lcyBoYXZlIGJlZW4gcHJlZml4ZWQgd2l0aCAiQlQiICovCisjZGVmaW5lIEJUSVAwICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIEJUSVAxICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIEJUSVAyICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEJURlJGUTAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJURlJGUTEgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEJURElWICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkNMSzIgPSBBQ0xLOjI1NiAqLworI2RlZmluZSBCVEhPTEQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIEJUMSBpcyBoZWxkIGlmIHRoaXMgYml0IGlzIHNldCAqLworI2RlZmluZSBCVFNTRUwgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIGZCVCA9IGZNQ0xLIChtYWluIGNsb2NrKSAqLworCitTRlJfOEJJVChCVENOVDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMSAqLworU0ZSXzhCSVQoQlRDTlQyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDIgKi8KKworLyogRnJlcXVlbmN5IG9mIHRoZSBCVENOVDIgY29kZWQgd2l0aCBCaXQgNSBhbmQgNyBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9BQ0xLICAgICAgICAgICgweDAwKQorI2RlZmluZSBCVF9mQ0xLMl9BQ0xLX0RJVjI1NiAgIChCVERJVikKKyNkZWZpbmUgQlRfZkNMSzJfTUNMSyAgICAgICAgICAoQlRTU0VMKQorCisvKiBJbnRlcnJ1cHQgaW50ZXJ2YWwgdGltZSBmSU5UIGNvZGVkIHdpdGggQml0cyAwLTIgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmSU5UID0gZkNMSzI6MiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNCAgICAgICAgICAoQlRJUDApICAgICAgICAvKiBmSU5UID0gZkNMSzI6NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY4ICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjE2ICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjE2ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjMyICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjMyICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjY0ICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjY0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjEyOCAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogZklOVCA9IGZDTEsyOjEyOCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyNTYgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogZklOVCA9IGZDTEsyOjI1NiAqLworLyogRnJlcXVlbmN5IG9mIExDRCBjb2RlZCB3aXRoIEJpdHMgMy00ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMzIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkxDRCA9IGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEX0RJVjY0ICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzo2NCAqLworI2RlZmluZSBCVF9mTENEX0RJVjEyOCAgICAgICAgIChCVEZSRlExKSAgICAgIC8qIGZMQ0QgPSBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYyNTYgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZBQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMUsgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZkFDTEs6MzIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZMQ0RfNTEyICAgICAgICAgICAgKEJURlJGUTApICAgICAgLyogZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF8yNTYgICAgICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmQUNMSzoxMjggKi8KKyNkZWZpbmUgQlRfZkxDRF8xMjggICAgICAgICAoQlRGUkZRMStCVEZSRlEwKSAgICAgICAgIC8qIGZBQ0xLOjI1NiAqLworLyogTENEIGZyZXF1ZW5jeSB2YWx1ZXMgd2l0aCBmQlQ9Zk1DTEsgKi8KKyNkZWZpbmUgQlRfZkxDRF8zMUsgICAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiBmTUNMSzozMiAqLworI2RlZmluZSBCVF9mTENEXzE1XzVLICAgICAgIChCVFNTRUwrQlRGUkZRMCkgICAgICAgICAgLyogZk1DTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF83XzhLICAgICAgICAoQlRTU0VMK0JURlJGUTErQlRGUkZRMCkgIC8qIGZNQ0xLOjI1NiAqLworLyogd2l0aCBhc3N1bWVkIHZsdWVzIG9mIGZBQ0xLPTMyS0h6LCBmTUNMSz0xTUh6ICovCisvKiBmQlQ9ZkFDTEsgaXMgdGhvdWdodCBmb3IgbG9uZ2VyIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX0FETFlfMF8wNjQgICAgICAgICAgKDB4MDApICAgICAgICAgLyogMC4wNjRtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzEyNSAgICAgICAgICAoQlRJUDApICAgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzI1ICAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiAwLjI1bXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzUgICAgICAgICAgICAoQlRJUDErQlRJUDApICAvKiAwLjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xICAgICAgICAgICAgICAoQlRJUDIpICAgICAgICAvKiAxbXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yICAgICAgICAgICAgICAoQlRJUDIrQlRJUDApICAvKiAybXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV80ICAgICAgICAgICAgICAoQlRJUDIrQlRJUDEpICAvKiA0bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV84ICAgICAgICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIDhtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzE2ICAgICAgICAgICAgIChCVERJVikgICAgICAgIC8qIDE2bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzMyICAgICAgICAgICAgIChCVERJVitCVElQMCkgIC8qIDMybXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzY0ICAgICAgICAgICAgIChCVERJVitCVElQMSkgIC8qIDY0bXMgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEyNSAgICAgICAgIChCVERJVitCVElQMStCVElQMCkgICAgICAgLyogMTI1bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjUwICAgICAgICAgICAgKEJURElWK0JUSVAyKSAgLyogMjUwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNTAwICAgICAgICAgKEJURElWK0JUSVAyK0JUSVAwKSAgICAgICAvKiA1MDBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDEpICAgICAgIC8qIDEwMDBtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMStCVElQMCkgLyogMjAwMG1zICAgICAiICovCisvKiBmQ0xLMj1mTUNMSyAoMU1IeikgaXMgdGhvdWdodCBmb3Igc2hvcnQgaW50ZXJ2YWwgdGltZXMgKi8KKy8qIHRoZSB0aW1pbmcgZm9yIHNob3J0IGludGVydmFscyBpcyBtb3JlIHByZWNpc2UgdGhhbiBBQ0xLICovCisvKiBOT1RFICovCisvKiBCZSBzdXJlIHRoYXQgdGhlIFNDRlFDVEwtUmVnaXN0ZXIgaXMgc2V0IHRvIDAxRmggc28gdGhhdCBmTUNMSz0xTUh6ICovCisvKiBUb28gbG93IGludGVydmFsIHRpbWUgcmVzdWx0cyBpbiBpbnRlcnJ1cHRzIHRvbyBmcmVxdWVudCBmb3IgdGhlIHByb2Nlc3NvciB0byBoYW5kbGUhICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDIgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogMC4wMDJtcyBpbnRlcnZhbCAgICAgICAqKiogaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwNCAgICAgICAgICAoQlRTU0VMK0JUSVAwKSAvKiAwLjAwNG1zICAgICIgICAgICAgICAgICoqKiB0b28gc2hvcnQgZm9yICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDggICAgICAgICAgKEJUU1NFTCtCVElQMSkgLyogMC4wMDhtcyAgICAiICAgICAgICAgICAqKiogaW50ZXJydXB0ICovCisjZGVmaW5lIEJUX01ETFlfMF8wMTYgICAgICAgKEJUU1NFTCtCVElQMStCVElQMCkgICAgICAvKiAwLjAxNm1zICAgICIgICAgICAgICAgICoqKiBoYW5kbGluZyAqLworI2RlZmluZSBCVF9NRExZXzBfMDMyICAgICAgICAgIChCVFNTRUwrQlRJUDIpIC8qIDAuMDMybXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMDY0ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDApICAgICAgLyogMC4wNjRtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8xMjUgICAgICAgKEJUU1NFTCtCVElQMitCVElQMSkgICAgICAvKiAwLjEyNW1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzI1ICAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxK0JUSVAwKS8qIDAuMjVtcyAgICAgIiAqLworCisvKiBSZXNldC9Ib2xkIGNvZGVkIHdpdGggQml0cyA2LTcgaW4gQlQoMSlDVEwgKi8KKy8qIHRoaXMgaXMgZm9yIEJUICovCisvLyNkZWZpbmUgQlRSRVNFVF9DTlQxICAgICAgICAoQlRSRVNFVCkgICAgICAgICAgIC8qIEJUQ05UMSBpcyByZXNldCB3aGlsZSBCVFJFU0VUIGlzIHNldCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMV8yICAgICAgKEJUUkVTRVQrQlRESVYpICAgICAvKiBCVENOVDEgLkFORC4gQlRDTlQyIGFyZSByZXNldCB3aGlsZSB+IGlzIHNldCAqLworLyogdGhpcyBpcyBmb3IgQlQxICovCisjZGVmaW5lIEJUSE9MRF9DTlQxICAgICAgICAgICAgKEJUSE9MRCkgICAgICAgLyogQlRDTlQxIGlzIGhlbGQgd2hpbGUgQlRIT0xEIGlzIHNldCAqLworI2RlZmluZSBCVEhPTERfQ05UMV8yICAgICAgICAgIChCVEhPTEQrQlRESVYpIC8qIEJUMUNOVDEgLkFORC4gQlQxQ05UMiBhcmUgaGVsZCB3aGlsZSB+IGlzIHNldCAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiAjZGVmaW5lIEJUSUUgICAgICAgICAgICAgICAgMHg4MCAqLworLyogI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgIDB4ODAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTWVNURU0gQ0xPQ0ssIEZMTCsKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMTFBMVVNfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNDRkkwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMCAqLworI2RlZmluZSBGTl8yICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDEuNC0xMk1IeiovCisjZGVmaW5lIEZOXzMgICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMi4yLTE3TWh6Ki8KKyNkZWZpbmUgRk5fNCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBmRENPQ0xLID0gICAzLjItMjVNaHoqLworI2RlZmluZSBGTl84ICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgICAgNS00ME1oeiovCisjZGVmaW5lIEZMTEQwICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDAgKi8KKyNkZWZpbmUgRkxMRDEgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMSAqLworCisjZGVmaW5lIEZMTERfMSAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSAxICovCisjZGVmaW5lIEZMTERfMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSAyICovCisjZGVmaW5lIEZMTERfNCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSA0ICovCisjZGVmaW5lIEZMTERfOCAgICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogTXVsdGlwbHkgU2VsZWN0ZWQgTG9vcCBGcmVxLiBCeSA4ICovCisKK1NGUl84QklUKFNDRkkxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IEludGVncmF0b3IgMSAqLworU0ZSXzhCSVQoU0NGUUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgQ29udHJvbCAqLworLyogU3lzdGVtIGNsb2NrIGZyZXF1ZW5jeSB2YWx1ZXMgZk1DTEsgY29kZWQgd2l0aCBCaXRzIDAtNiBpbiBTQ0ZRQ1RMICovCisvKiAjZGVmaW5lIFNDRlFfMzJLICAgICAgICAgICAgMHgwMCAgICAgICAgICAgICAgICAgICAgICAgIGZNQ0xLPTEqZkFDTEsgICAgICAgb25seSBhIHJhbmdlIGZyb20gKi8KKyNkZWZpbmUgU0NGUV82NEsgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBmTUNMSz0yKmZBQ0xLICAgICAgICAgIDErMSB0byAxMjcrMSBpcyBwb3NzaWJsZSAqLworI2RlZmluZSBTQ0ZRXzEyOEsgICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIGZNQ0xLPTQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8yNTZLICAgICAgICAgICAgICAoMHgwNykgICAgICAgICAvKiBmTUNMSz04KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNTEySyAgICAgICAgICAgICAgKDB4MEYpICAgICAgICAgLyogZk1DTEs9MTYqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8xTSAgICAgICAgICAgICAgICAoMHgxRikgICAgICAgICAvKiBmTUNMSz0zMipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzJNICAgICAgICAgICAgICAgICgweDNGKSAgICAgICAgIC8qIGZNQ0xLPTY0KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfNE0gICAgICAgICAgICAgICAgKDB4N0YpICAgICAgICAgLyogZk1DTEs9MTI4KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfTSAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTW9kdWxhdGlvbiBEaXNhYmxlICovCisKK1NGUl84QklUKEZMTF9DVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEwrIENvbnRyb2wgMCAqLworI2RlZmluZSBEQ09GICAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIERDTyBGYXVsdCBGbGFnICovCisjZGVmaW5lIExGT0YgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogTG93IEZyZXF1ZW5jeSBPc2NpbGxhdG9yIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgWFQxT0YgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDEgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDJPRiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgMiBGYXVsdCBGbGFnICovCisjZGVmaW5lIE9TQ0NBUDAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDAgKi8KKyNkZWZpbmUgT1NDQ0FQMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4vWE9VVCBDYXAgMSAqLworI2RlZmluZSBYVFNfRkxMICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIDE6IFNlbGVjdHMgaGlnaC1mcmVxLiBvc2NpbGxhdG9yICovCisjZGVmaW5lIERDT1BMVVMgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogRENPKyBFbmFibGUgKi8KKworI2RlZmluZSBYQ0FQMFBGICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBYQ0FQMTBQRiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgWENBUDE0UEYgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIFhDQVAxOFBGICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworI2RlZmluZSBPU0NDQVBfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDBwZiAqLworI2RlZmluZSBPU0NDQVBfMSAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDEwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzIgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxNHBmICovCisjZGVmaW5lIE9TQ0NBUF8zICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMThwZiAqLworCitTRlJfOEJJVChGTExfQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDEgKi8KKyNkZWZpbmUgRkxMX0RJVjAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMCAqLworI2RlZmluZSBGTExfRElWMSAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyAxICovCisjZGVmaW5lIFNFTFMgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUGVyaXBoZXJhbCBNb2R1bGUgQ2xvY2sgU291cmNlICgwOiBEQ08sIDE6IFhUMikgKi8KKyNkZWZpbmUgU0VMTTAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBTRUxNMSAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE1DTEsgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIFhUMk9GRiAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciAyIChYVDIpIGRpc2FibGUgKi8KKyNkZWZpbmUgU01DTEtPRkYgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQZXJpcGhlcmFsIE1vZHVsZSBDbG9jayAoU01DTEspIGRpc2FibGUgKi8KKworI2RlZmluZSBGTExfRElWXzEgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSAxICovCisjZGVmaW5lIEZMTF9ESVZfMiAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDIgKi8KKyNkZWZpbmUgRkxMX0RJVl80ICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgNCAqLworI2RlZmluZSBGTExfRElWXzggICAgICAgICAgICAgICgweDAzKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA4ICovCisKKyNkZWZpbmUgU0VMTV9EQ08gICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBTZWxlY3QgRENPIGZvciBDUFUgTUNMSyAqLworI2RlZmluZSBTRUxNX1hUMiAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFNlbGVjdCBYVDIgZm9yIENQVSBNQ0xLICovCisjZGVmaW5lIFNFTE1fQSAgICAgICAgICAgICAgICAgKDB4MTgpICAgICAgICAgLyogU2VsZWN0IEEgKGZyb20gTEZYVDEpIGZvciBDUFUgTUNMSyAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCBCSVRTICovCisvKiBUaGVzZSB0d28gYml0cyBhcmUgZGVmaW5lZCBpbiB0aGUgU3BlY2lhbCBGdW5jdGlvbiBSZWdpc3RlcnMgKi8KKy8qICNkZWZpbmUgT0ZJRkcgICAgICAgICAgICAgICAweDAyICovCisvKiAjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgMHgwMiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJyb3duLU91dCwgU3VwcGx5IFZvbHRhZ2UgU3VwZXJ2aXNpb24gKFNWUykKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NWU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNWU0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgQ29udHJvbCAqLworI2RlZmluZSBTVlNGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNWUyBGbGFnICovCisjZGVmaW5lIFNWU09QICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1ZTIG91dHB1dCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBTVlNPTiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN3aXRjaGVzIHRoZSBTVlMgb24vb2ZmICovCisjZGVmaW5lIFBPUk9OICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRW5hYmxlIFBPUiBHZW5lcmF0aW9uIGlmIExvdyBWb2x0YWdlICovCisjZGVmaW5lIFZMRDAgICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRDEgICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFZMRDIgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFZMRDMgICAgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgVkxET04gICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxET0ZGICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgVkxEXzFfOFYgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBMQ0QKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0xDRDRfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKExDRENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgQ29udHJvbCAqLworLyogdGhlIG5hbWVzIG9mIHRoZSBtb2RlIGJpdHMgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBzcGVjICovCisjZGVmaW5lIExDRE9OICAgICAgICAgICAgICAgICAgKDB4MDEpCisvLyNkZWZpbmUgTENETE9XUiAgICAgICAgICAgICAoMHgwMikKKyNkZWZpbmUgTENEU09OICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTENETVgwICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTENETVgxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTENEUDAgICAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgTENEUDEgICAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgTENEUDIgICAgICAgICAgICAgICAgICAoMHg4MCkKKy8qIERpc3BsYXkgbW9kZXMgY29kZWQgd2l0aCBCaXRzIDItNCAqLworI2RlZmluZSBMQ0RTVEFUSUMgICAgICAgICAgICAgIChMQ0RTT04pCisjZGVmaW5lIExDRDJNVVggICAgICAgICAgICAgICAgKExDRE1YMCtMQ0RTT04pCisjZGVmaW5lIExDRDNNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RTT04pCisjZGVmaW5lIExDRDRNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RNWDArTENEU09OKQorLyogR3JvdXAgc2VsZWN0IGNvZGUgd2l0aCBCaXRzIDUtNyAgICAgICAgICAgICAgICAgICAgIFNlZy5saW5lcyAgIERpZy5vdXRwdXQgKi8KKyNkZWZpbmUgTENEU0cwICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRFNHMF8xICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfMiAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzMgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF80ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNSAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzYgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF83ICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisvKiBOT1RFOiBZT1UgQ0FOIE9OTFkgVVNFIFRIRSAnUycgT1IgJ0cnIERFQ0xBUkFUSU9OUyBGT1IgQSBDT01NQU5EICovCisvKiBNT1YgICNMQ0RTRzBfMytMQ0RPRzJfNywmTENEQ1RMIEFDVFVBTFkgTUVBTlMgTU9WICAjTENEUDEsJkxDRENUTCEgKi8KKyNkZWZpbmUgTENET0cxXzcgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAtLS0tLS0tLS0gICBQb3J0IE9ubHkgKGRlZmF1bHQpICovCisjZGVmaW5lIExDRE9HMl83ICAgICAgICAgICAgICAgKExDRFAwKSAgICAgICAgLyogUzAgIC0gUzE1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzNfNyAgICAgICAgICAgICAgIChMQ0RQMSkgICAgICAgIC8qIFMwICAtIFMxOSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c0XzcgICAgICAgICAgICAgICAoTENEUDErTENEUDApICAvKiBTMCAgLSBTMjMgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNV83ICAgICAgICAgICAgICAgKExDRFAyKSAgICAgICAgLyogUzAgIC0gUzI3ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzZfNyAgICAgICAgICAgICAgIChMQ0RQMitMQ0RQMCkgIC8qIFMwICAtIFMzMSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c3ICAgICAgICAgICAgICAgICAoTENEUDIrTENEUDEpICAvKiBTMCAgLSBTMzUgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HT0ZGICAgICAgICAgICAgKExDRFAyK0xDRFAxK0xDRFAwKSAgICAgICAvKiBTMCAgLSBTMzkgICBzZWUgRGF0YXNoZWV0ICovCisKKyNkZWZpbmUgTENETUVNXyAgICAgICAgICAgICAgICAoMHgwMDkxKSAgICAgICAvKiBMQ0QgTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoTENETUVNXykgICAgICAvKiBMQ0QgTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgTENETUVNICAgICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBMQ0RNRU1fKSAvKiBMQ0QgTWVtb3J5IChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoTENETTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMSAqLworU0ZSXzhCSVQoTENETTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMiAqLworU0ZSXzhCSVQoTENETTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMyAqLworU0ZSXzhCSVQoTENETTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNCAqLworU0ZSXzhCSVQoTENETTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNSAqLworU0ZSXzhCSVQoTENETTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNiAqLworU0ZSXzhCSVQoTENETTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgNyAqLworU0ZSXzhCSVQoTENETTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOCAqLworU0ZSXzhCSVQoTENETTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgOSAqLworU0ZSXzhCSVQoTENETTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTAgKi8KK1NGUl84QklUKExDRE0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDExICovCitTRlJfOEJJVChMQ0RNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMiAqLworU0ZSXzhCSVQoTENETTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTMgKi8KK1NGUl84QklUKExDRE0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE0ICovCitTRlJfOEJJVChMQ0RNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNSAqLworU0ZSXzhCSVQoTENETTE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTYgKi8KK1NGUl84QklUKExDRE0xNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE3ICovCitTRlJfOEJJVChMQ0RNMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxOCAqLworU0ZSXzhCSVQoTENETTE5KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTkgKi8KK1NGUl84QklUKExDRE0yMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIwICovCisKKyNkZWZpbmUgTENETUEgICAgICAgICAgICAgICAgICAoTENETTEwKSAgICAgICAvKiBMQ0QgTWVtb3J5IEEgKi8KKyNkZWZpbmUgTENETUIgICAgICAgICAgICAgICAgICAoTENETTExKSAgICAgICAvKiBMQ0QgTWVtb3J5IEIgKi8KKyNkZWZpbmUgTENETUMgICAgICAgICAgICAgICAgICAoTENETTEyKSAgICAgICAvKiBMQ0QgTWVtb3J5IEMgKi8KKyNkZWZpbmUgTENETUQgICAgICAgICAgICAgICAgICAoTENETTEzKSAgICAgICAvKiBMQ0QgTWVtb3J5IEQgKi8KKyNkZWZpbmUgTENETUUgICAgICAgICAgICAgICAgICAoTENETTE0KSAgICAgICAvKiBMQ0QgTWVtb3J5IEUgKi8KKyNkZWZpbmUgTENETUYgICAgICAgICAgICAgICAgICAoTENETTE1KSAgICAgICAvKiBMQ0QgTWVtb3J5IEYgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBVeENUTCAqLworI2RlZmluZSBQRU5BICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgUEVWICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQYXJpdHkgMDpvZGQgLyAxOmV2ZW4gKi8KKyNkZWZpbmUgU1BCICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBTdG9wIEJpdHMgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgQ0hBUiAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBEYXRhIDA6Ny1iaXRzIC8gMTo4LWJpdHMgKi8KKyNkZWZpbmUgTElTVEVOICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBMaXN0ZW4gbW9kZSAqLworI2RlZmluZSBTWU5DICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVBUlQgLyBTUEkgbW9kZSAqLworI2RlZmluZSBNTSAgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1hc3RlciBNb2RlIG9mZi9vbiAqLworI2RlZmluZSBTV1JTVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTQVJUIFNvZnR3YXJlIFJlc2V0ICovCisKKy8qIFV4VENUTCAqLworI2RlZmluZSBDS1BIICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFNQSTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgQ0tQTCAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBTU0VMMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBTU0VMMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBVUlhTRSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlY2VpdmUgU3RhcnQgZWRnZSBzZWxlY3QgKi8KKyNkZWZpbmUgVFhXQUtFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBUWCBXYWtlIHVwIG1vZGUgKi8KKyNkZWZpbmUgU1RDICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTUEk6IFNUQyBlbmFibGUgMDpvbiAvIDE6b2ZmICovCisjZGVmaW5lIFRYRVBUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVFggQnVmZmVyIGVtcHR5ICovCisKKy8qIFV4UkNUTCAqLworI2RlZmluZSBGRSAgICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEZyYW1lIEVycm9yICovCisjZGVmaW5lIFBFICAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IEVycm9yICovCisjZGVmaW5lIE9FICAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogT3ZlcnJ1biBFcnJvciAqLworI2RlZmluZSBCUksgICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJyZWFrIGRldGVjdGVkICovCisjZGVmaW5lIFVSWEVJRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUlggRXJyb3IgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVUlhXSUUgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJYIFdha2UgdXAgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBSWFdBS0UgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJYIFdha2UgdXAgZGV0ZWN0ICovCisjZGVmaW5lIFJYRVJSICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUlggRXJyb3IgRXJyb3IgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVCAwCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VQVJUMF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCitTRlJfOEJJVChVMFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVMFJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KK1NGUl84QklUKFUwTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFUwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVMFJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVTBUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworCisjZGVmaW5lIFVDVEwwICAgICAgICAgICAgICAgICAgVTBDVEwgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMCAgICAgICAgICAgICAgICAgVTBUQ1RMICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMCAgICAgICAgICAgICAgICAgVTBSQ1RMICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwwICAgICAgICAgICAgICAgICBVME1DVEwgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMCAgICAgICAgICAgICAgICAgIFUwQlIwICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTAgICAgICAgICAgICAgICAgICBVMEJSMSAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMCAgICAgICAgICAgICAgICAgVTBSWEJVRiAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjAgICAgICAgICAgICAgICAgIFUwVFhCVUYgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVEwwXyAgICAgICAgICAgICAgICAgVTBDVExfICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMF8gICAgICAgICAgICAgICAgVTBUQ1RMXyAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMF8gICAgICAgICAgICAgICAgVTBSQ1RMXyAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwwXyAgICAgICAgICAgICAgICBVME1DVExfICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMF8gICAgICAgICAgICAgICAgIFUwQlIwXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTBfICAgICAgICAgICAgICAgICBVMEJSMV8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMF8gICAgICAgICAgICAgICAgVTBSWEJVRl8gICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjBfICAgICAgICAgICAgICAgIFUwVFhCVUZfICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMCAgICAgICAgICAgICAgICAgVTBDVEwgICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzAgICAgICAgICAgICAgICAgVTBUQ1RMICAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzAgICAgICAgICAgICAgICAgVTBSQ1RMICAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMCAgICAgICAgICAgICAgICBVME1DVEwgICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzAgICAgICAgICAgICAgICAgIFUwQlIwICAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8wICAgICAgICAgICAgICAgICBVMEJSMSAgICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzAgICAgICAgICAgICAgICAgVTBSWEJVRiAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8wICAgICAgICAgICAgICAgIFUwVFhCVUYgICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMF8gICAgICAgICAgICAgICAgVTBDVExfICAgICAgICAgLyogVVNBUlQgMCBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzBfICAgICAgICAgICAgICAgVTBUQ1RMXyAgICAgICAgLyogVVNBUlQgMCBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzBfICAgICAgICAgICAgICAgVTBSQ1RMXyAgICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMF8gICAgICAgICAgICAgICBVME1DVExfICAgICAgICAvKiBVU0FSVCAwIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzBfICAgICAgICAgICAgICAgIFUwQlIwXyAgICAgICAgIC8qIFVTQVJUIDAgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8wXyAgICAgICAgICAgICAgICBVMEJSMV8gICAgICAgICAvKiBVU0FSVCAwIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzBfICAgICAgICAgICAgICAgVTBSWEJVRl8gICAgICAgLyogVVNBUlQgMCBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8wXyAgICAgICAgICAgICAgIFUwVFhCVUZfICAgICAgIC8qIFVTQVJUIDAgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1RBM19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQUlWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ29udHJvbCAqLworU0ZSXzE2QklUKFRBQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBQ0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworU0ZSXzE2QklUKFRBUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgKi8KK1NGUl8xNkJJVChUQUNDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEFDQ1IxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworU0ZSXzE2QklUKFRBQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworLyogQWx0ZXJuYXRlIHJlZ2lzdGVyIG5hbWVzICovCisjZGVmaW5lIENDVEwwICAgICAgICAgICAgICAgICAgVEFDQ1RMMCAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxICAgICAgICAgICAgICAgICAgVEFDQ1RMMSAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyICAgICAgICAgICAgICAgICAgVEFDQ1RMMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjAgICAgICAgICAgICAgICAgICAgVEFDQ1IwICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxICAgICAgICAgICAgICAgICAgIFRBQ0NSMSAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMiAgICAgICAgICAgICAgICAgICBUQUNDUjIgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisjZGVmaW5lIENDVEwwXyAgICAgICAgICAgICAgICAgVEFDQ1RMMF8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIENDVEwxXyAgICAgICAgICAgICAgICAgVEFDQ1RMMV8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIENDVEwyXyAgICAgICAgICAgICAgICAgVEFDQ1RMMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIENDUjBfICAgICAgICAgICAgICAgICAgVEFDQ1IwXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMCAqLworI2RlZmluZSBDQ1IxXyAgICAgICAgICAgICAgICAgIFRBQ0NSMV8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDEgKi8KKyNkZWZpbmUgQ0NSMl8gICAgICAgICAgICAgICAgICBUQUNDUjJfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAyICovCisKKyNkZWZpbmUgVEFTU0VMMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMCAqLworI2RlZmluZSBUQVNTRUwwICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAxICovCisjZGVmaW5lIElEMSAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDEgKi8KKyNkZWZpbmUgSUQwICAgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMCAqLworI2RlZmluZSBNQzEgICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDEgKi8KKyNkZWZpbmUgTUMwICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAwICovCisjZGVmaW5lIFRBQ0xSICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGNsZWFyICovCisjZGVmaW5lIFRBSUUgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEFJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBNQ18wICAgICAgICAgICAgICAgICAgICgwKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAwIC0gU3RvcCAqLworI2RlZmluZSBNQ18xICAgICAgICAgICAgICAgICAgICgxKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAxIC0gVXAgdG8gQ0NSMCAqLworI2RlZmluZSBNQ18yICAgICAgICAgICAgICAgICAgICgyKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAyIC0gQ29udGlub3VzIHVwICovCisjZGVmaW5lIE1DXzMgICAgICAgICAgICAgICAgICAgKDMqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDMgLSBVcC9Eb3duICovCisjZGVmaW5lIElEXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAwIC0gLzEgKi8KKyNkZWZpbmUgSURfMSAgICAgICAgICAgICAgICAgICAoMSoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDEgLSAvMiAqLworI2RlZmluZSBJRF8yICAgICAgICAgICAgICAgICAgICgyKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMiAtIC80ICovCisjZGVmaW5lIElEXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAzIC0gLzggKi8KKyNkZWZpbmUgVEFTU0VMXzAgICAgICAgICAgICAgICAoMCoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDAgLSBUQUNMSyAqLworI2RlZmluZSBUQVNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMSAtIEFDTEsgICovCisjZGVmaW5lIFRBU1NFTF8yICAgICAgICAgICAgICAgKDIqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzMgICAgICAgICAgICAgICAoMyoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDMgLSBJTkNMSyAqLworCisjZGVmaW5lIENNMSAgICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDEgKi8KKyNkZWZpbmUgQ00wICAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMCAqLworI2RlZmluZSBDQ0lTMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0NJUzAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAwICovCisjZGVmaW5lIFNDUyAgICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ2FwdHVyZSBzeWNocm9uaXplICovCisjZGVmaW5lIFNDQ0kgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogTGF0Y2hlZCBjYXB0dXJlIHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgQ0FQICAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGU6IDEgL0NvbXBhcmUgbW9kZSA6IDAgKi8KKyNkZWZpbmUgT1VUTU9EMiAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAyICovCisjZGVmaW5lIE9VVE1PRDEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMSAqLworI2RlZmluZSBPVVRNT0QwICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIE91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJRSAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBDQ0kgICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBPVVQgICAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFBXTSBPdXRwdXQgc2lnbmFsIGlmIG91dHB1dCBtb2RlIDAgKi8KKyNkZWZpbmUgQ09WICAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgb3ZlcmZsb3cgZmxhZyAqLworI2RlZmluZSBDQ0lGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE9VVE1PRF8wICAgICAgICAgICAgICAgKDAqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAwIC0gb3V0cHV0IG9ubHkgKi8KKyNkZWZpbmUgT1VUTU9EXzEgICAgICAgICAgICAgICAoMSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDEgLSBzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzIgICAgICAgICAgICAgICAoMioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDIgLSBQV00gdG9nZ2xlL3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF8zICAgICAgICAgICAgICAgKDMqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAzIC0gUFdNIHNldC9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfNCAgICAgICAgICAgICAgICg0KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNCAtIHRvZ2dsZSAqLworI2RlZmluZSBPVVRNT0RfNSAgICAgICAgICAgICAgICg1KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNSAtIFJlc2V0ICovCisjZGVmaW5lIE9VVE1PRF82ICAgICAgICAgICAgICAgKDYqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA2IC0gUFdNIHRvZ2dsZS9zZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzcgICAgICAgICAgICAgICAoNyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDcgLSBQV00gcmVzZXQvc2V0ICovCisjZGVmaW5lIENDSVNfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDAgLSBDQ0l4QSAqLworI2RlZmluZSBDQ0lTXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAxIC0gQ0NJeEIgKi8KKyNkZWZpbmUgQ0NJU18yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMiAtIEdORCAqLworI2RlZmluZSBDQ0lTXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAzIC0gVmNjICovCisjZGVmaW5lIENNXzAgICAgICAgICAgICAgICAgICAgKDAqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAwIC0gZGlzYWJsZWQgKi8KKyNkZWZpbmUgQ01fMSAgICAgICAgICAgICAgICAgICAoMSoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBwb3MuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMiAgICAgICAgICAgICAgICAgICAoMioweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBuZWcuIGVkZ2UgKi8KKyNkZWZpbmUgQ01fMyAgICAgICAgICAgICAgICAgICAoMyoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDEgLSBib3RoIGVkZ2VzICovCisKKy8qIFRBM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBSVZfTk9ORSAgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjEgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQUNDUjFfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl9UQUNDUjIgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUQUNDUjJfQ0NJRkcgKi8KKyNkZWZpbmUgVEFJVl82ICAgICAgICAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQUlWXzggICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfVEFJRkcgICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEFJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBCMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEIzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRCSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDb250cm9sICovCitTRlJfMTZCSVQoVEJDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEJDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEJDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEJSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiAqLworU0ZSXzE2QklUKFRCQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQkNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEJDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRCQ0xHUlAxICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBUQkNMR1JQMCAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKyNkZWZpbmUgQ05UTDEgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAxICovCisjZGVmaW5lIENOVEwwICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMCAqLworI2RlZmluZSBUQlNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAxICovCisjZGVmaW5lIFRCU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDAgKi8KKyNkZWZpbmUgVEJDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBCIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEJJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEJJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgU0hSMSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFNIUjAgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworCisjZGVmaW5lIFRCU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBUQkNMSyAqLworI2RlZmluZSBUQlNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogQUNMSyAgKi8KKyNkZWZpbmUgVEJTU0VMXzIgICAgICAgICAgICAgICAoMioweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFNNQ0xLICovCisjZGVmaW5lIFRCU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBJTkNMSyAqLworI2RlZmluZSBDTlRMXzAgICAgICAgICAgICAgICAgICgwKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxNiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8xICAgICAgICAgICAgICAgICAoMSoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTIgYml0ICovCisjZGVmaW5lIENOVExfMiAgICAgICAgICAgICAgICAgKDIqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEwIGJpdCAqLworI2RlZmluZSBDTlRMXzMgICAgICAgICAgICAgICAgICgzKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAgOCBiaXQgKi8KKyNkZWZpbmUgU0hSXzAgICAgICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFNIUl8xICAgICAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBTSFJfMiAgICAgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgU0hSXzMgICAgICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworI2RlZmluZSBUQkNMR1JQXzAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgVEJDTEdSUF8xICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFRCQ0xHUlBfMiAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBUQkNMR1JQXzMgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisKKy8qIEFkZGl0aW9uYWwgVGltZXIgQiBDb250cm9sIFJlZ2lzdGVyIGJpdHMgYXJlIGRlZmluZWQgaW4gVGltZXIgQSAqLworCisjZGVmaW5lIENMTEQxICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIENMTEQwICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFIxICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDEgKi8KKyNkZWZpbmUgU0xTSFIwICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmNlIDAgKi8KKworI2RlZmluZSBTTFNIUl8wICAgICAgICAgICAgICAgICgwKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAwIC0gaW1tZWRpYXRlICovCisjZGVmaW5lIFNMU0hSXzEgICAgICAgICAgICAgICAgKDEqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDEgLSBUQlIgY291bnRzIHRvIDAgKi8KKyNkZWZpbmUgU0xTSFJfMiAgICAgICAgICAgICAgICAoMioweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMiAtIHVwL2Rvd24gKi8KKyNkZWZpbmUgU0xTSFJfMyAgICAgICAgICAgICAgICAoMyoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMyAtIFRCUiBjb3VudHMgdG8gVEJDVEwwICovCisKKyNkZWZpbmUgQ0xMRF8wICAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBDTExEXzEgICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIENMTERfMiAgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIENMTERfMyAgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisvKiBUQjNJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBUQklWX05PTkUgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIFRCSVZfVEJDQ1IxICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogVEJDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRCSVZfVEJDQ1IyICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEJDQ1IyX0NDSUZHICovCisjZGVmaW5lIFRCSVZfMyAgICAgICAgICAgICAgICAgKDB4MDAwNikgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl80ICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBUQklWXzUgICAgICAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRCSVZfNiAgICAgICAgICAgICAgICAgKDB4MDAwQykgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEJJVl9UQklGRyAgICAgICAgICAgICAoMHgwMDBFKSAgICAgICAvKiBUQklGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBGbGFzaCBNZW1vcnkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTEFTSF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAxICovCitTRlJfMTZCSVQoRkNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAyICovCitTRlJfMTZCSVQoRkNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxBU0ggQ29udHJvbCAzICovCisKKyNkZWZpbmUgRlJLRVkgICAgICAgICAgICAgICAgICAoMHg5NjAwKSAgICAgICAvKiBGbGFzaCBrZXkgcmV0dXJuZWQgYnkgcmVhZCAqLworI2RlZmluZSBGV0tFWSAgICAgICAgICAgICAgICAgICgweEE1MDApICAgICAgIC8qIEZsYXNoIGtleSBmb3Igd3JpdGUgKi8KKyNkZWZpbmUgRlhLRVkgICAgICAgICAgICAgICAgICAoMHgzMzAwKSAgICAgICAvKiBmb3IgdXNlIHdpdGggWE9SIGluc3RydWN0aW9uICovCisKKyNkZWZpbmUgRVJBU0UgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IGVyYXNlICovCisjZGVmaW5lIE1FUkFTICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggbWFzcyBlcmFzZSAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQ29tcGFyYXRvciBBCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19DT01QQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChDQUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQ0FDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDIgKi8KK1NGUl84QklUKENBUEQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgUG9ydCBEaXNhYmxlICovCisKKyNkZWZpbmUgQ0FJRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBGbGFnICovCisjZGVmaW5lIENBSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIENBSUVTICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBJbnQuIEVkZ2UgU2VsZWN0OiAwOnJpc2luZyAvIDE6ZmFsbGluZyAqLworI2RlZmluZSBDQU9OICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgZW5hYmxlICovCisjZGVmaW5lIENBUkVGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ0FSRUYxICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBDQVJTRUwgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIEVuYWJsZSAqLworI2RlZmluZSBDQUVYICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRXhjaGFuZ2UgSW5wdXRzICovCisKKyNkZWZpbmUgQ0FSRUZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMCA6IE9mZiAqLworI2RlZmluZSBDQVJFRl8xICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAxIDogMC4yNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMiA6IDAuNSpWY2MgKi8KKyNkZWZpbmUgQ0FSRUZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMyA6IFZ0Ki8KKworI2RlZmluZSBDQU9VVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgT3V0cHV0ICovCisjZGVmaW5lIENBRiAgICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBFbmFibGUgT3V0cHV0IEZpbHRlciAqLworI2RlZmluZSBQMkNBMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0EwIDogMSAqLworI2RlZmluZSBQMkNBMSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgQ29ubmVjdCBFeHRlcm5hbCBTaWduYWwgdG8gQ0ExIDogMSAqLworI2RlZmluZSBDQUNUTDI0ICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBDQUNUTDI1ICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBDQUNUTDI2ICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBDQUNUTDI3ICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIENBUEQwICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4wICovCisjZGVmaW5lIENBUEQxICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4xICovCisjZGVmaW5lIENBUEQyICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4yICovCisjZGVmaW5lIENBUEQzICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC4zICovCisjZGVmaW5lIENBUEQ0ICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC40ICovCisjZGVmaW5lIENBUEQ1ICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC41ICovCisjZGVmaW5lIENBUEQ2ICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC42ICovCisjZGVmaW5lIENBUEQ3ICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBEaXNhYmxlIElucHV0IEJ1ZmZlciBvZiBQb3J0IFJlZ2lzdGVyIC43ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQURDMTIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0FEQzEyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChBREMxMkNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChBREMxMkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChBREMxMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzE2QklUKEFEQzEySUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl8xNkJJVChBREMxMklWKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KKworI2RlZmluZSBBREMxMk1FTV8gICAgICAgICAgICAgICgweDAxNDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5ICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgQURDMTJNRU0gICAgICAgICAgICAgICAoQURDMTJNRU1fKSAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIEFEQzEyTUVNICAgICAgICAgICAgICAgKChpbnQqKSAgICAgICAgQURDMTJNRU1fKSAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl8xNkJJVChBREMxMk1FTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAwICovCitTRlJfMTZCSVQoQURDMTJNRU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDIgKi8KK1NGUl8xNkJJVChBREMxMk1FTTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAzICovCitTRlJfMTZCSVQoQURDMTJNRU00KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNNSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDUgKi8KK1NGUl8xNkJJVChBREMxMk1FTTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA2ICovCitTRlJfMTZCSVQoQURDMTJNRU03KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNyAqLworU0ZSXzE2QklUKEFEQzEyTUVNOCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDggKi8KK1NGUl8xNkJJVChBREMxMk1FTTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA5ICovCitTRlJfMTZCSVQoQURDMTJNRU0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTAgKi8KK1NGUl8xNkJJVChBREMxMk1FTTExKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEyICovCitTRlJfMTZCSVQoQURDMTJNRU0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTMgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE0KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDE1ICovCisKKyNkZWZpbmUgQURDMTJNQ1RMXyAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIEFEQzEyTUNUTCAgICAgICAgICAgICAgKEFEQzEyTUNUTF8pICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBBREMxMk1DVEwgICAgICAgICAgICAgICgoY2hhciopICAgICAgIEFEQzEyTUNUTF8pIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzhCSVQoQURDMTJNQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDAgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxICovCitTRlJfOEJJVChBREMxMk1DVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDMgKi8KK1NGUl84QklUKEFEQzEyTUNUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA0ICovCitTRlJfOEJJVChBREMxMk1DVEw1KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDYgKi8KK1NGUl84QklUKEFEQzEyTUNUTDcpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA3ICovCitTRlJfOEJJVChBREMxMk1DVEw4KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgOCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMOSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDkgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEwKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTEpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDExICovCitTRlJfOEJJVChBREMxMk1DVEwxMik7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTIgKi8KK1NGUl84QklUKEFEQzEyTUNUTDEzKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTQpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDE0ICovCitTRlJfOEJJVChBREMxMk1DVEwxNSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTUgKi8KKworLyogQURDMTJDVEwwICovCisjZGVmaW5lIEFEQzEyU0MgICAgICAgICAgICAgICAgKDB4MDAxKSAgICAgICAgLyogQURDMTIgU3RhcnQgQ29udmVyc2lvbiAqLworI2RlZmluZSBFTkMgICAgICAgICAgICAgICAgICAgICgweDAwMikgICAgICAgIC8qIEFEQzEyIEVuYWJsZSBDb252ZXJzaW9uICovCisjZGVmaW5lIEFEQzEyVE9WSUUgICAgICAgICAgICAgKDB4MDA0KSAgICAgICAgLyogQURDMTIgVGltZXIgT3ZlcmZsb3cgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBBREMxMk9WSUUgICAgICAgICAgICAgICgweDAwOCkgICAgICAgIC8qIEFEQzEyIE92ZXJmbG93IGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQURDMTJPTiAgICAgICAgICAgICAgICAoMHgwMTApICAgICAgICAvKiBBREMxMiBPbi9lbmFibGUgKi8KKyNkZWZpbmUgUkVGT04gICAgICAgICAgICAgICAgICAoMHgwMjApICAgICAgICAvKiBBREMxMiBSZWZlcmVuY2Ugb24gKi8KKyNkZWZpbmUgUkVGMl81ViAgICAgICAgICAgICAgICAoMHgwNDApICAgICAgICAvKiBBREMxMiBSZWYgMDoxLjVWIC8gMToyLjVWICovCisjZGVmaW5lIE1TQyAgICAgICAgICAgICAgICAgICAgKDB4MDgwKSAgICAgICAgLyogQURDMTIgTXVsdGlwbGUgU2FtcGxlQ29udmVyc2lvbiAqLworI2RlZmluZSBTSFQwMCAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0hUMDEgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAxICovCisjZGVmaW5lIFNIVDAyICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMiAqLworI2RlZmluZSBTSFQwMyAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDMgKi8KKyNkZWZpbmUgU0hUMTAgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAwICovCisjZGVmaW5lIFNIVDExICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMSBTZWxlY3QgMSAqLworI2RlZmluZSBTSFQxMiAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDIgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0hUMTMgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAzIFNlbGVjdCAzICovCisjZGVmaW5lIE1TSCAgICAgICAgICAgICAgICAgICAgKDB4MDgwKQorCisjZGVmaW5lIFNIVDBfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEgICAgICAgICAgICAgICAgICgxKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8yICAgICAgICAgICAgICAgICAoMioweDEwMHUpCisjZGVmaW5lIFNIVDBfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDB1KQorI2RlZmluZSBTSFQwXzQgICAgICAgICAgICAgICAgICg0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF81ICAgICAgICAgICAgICAgICAoNSoweDEwMHUpCisjZGVmaW5lIFNIVDBfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDB1KQorI2RlZmluZSBTSFQwXzcgICAgICAgICAgICAgICAgICg3KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF84ICAgICAgICAgICAgICAgICAoOCoweDEwMHUpCisjZGVmaW5lIFNIVDBfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEwICAgICAgICAgICAgICAgICgxMCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDB1KQorI2RlZmluZSBTSFQwXzEzICAgICAgICAgICAgICAgICgxMyoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDB1KQorCisjZGVmaW5lIFNIVDFfMCAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV80ICAgICAgICAgICAgICAgICAoNCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzUgICAgICAgICAgICAgICAgICg1KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNiAgICAgICAgICAgICAgICAgKDYqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV83ICAgICAgICAgICAgICAgICAoNyoweDEwMDB1KQorI2RlZmluZSBTSFQxXzggICAgICAgICAgICAgICAgICg4KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfOSAgICAgICAgICAgICAgICAgKDkqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMCAgICAgICAgICAgICAgICAoMTAqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMSAgICAgICAgICAgICAgICAoMTEqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMiAgICAgICAgICAgICAgICAoMTIqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xMyAgICAgICAgICAgICAgICAoMTMqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNCAgICAgICAgICAgICAgICAoMTQqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8xNSAgICAgICAgICAgICAgICAoMTUqMHgxMDAwdSkKKworLyogQURDMTJDVEwxICovCisjZGVmaW5lIEFEQzEyQlVTWSAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgQnVzeSAqLworI2RlZmluZSBDT05TRVEwICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU2VxdWVuY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQ09OU0VRMSAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyU1NFTDAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIEFEQzEyU1NFTDEgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgQ2xvY2sgU291cmNlIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMCAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMkRJVjEgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQURDMTJESVYyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAyICovCisjZGVmaW5lIElTU0ggICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQURDMTIgSW52ZXJ0IFNhbXBsZSBIb2xkIFNpZ25hbCAqLworI2RlZmluZSBTSFAgICAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFB1bHNlIE1vZGUgKi8KKyNkZWZpbmUgU0hTMCAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMCAqLworI2RlZmluZSBTSFMxICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZS9Ib2xkIFNvdXJjZSAxICovCisjZGVmaW5lIENTVEFSVEFERDAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDAgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMSAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMSAqLworI2RlZmluZSBDU1RBUlRBREQyICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAyICovCisjZGVmaW5lIENTVEFSVEFERDMgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDMgKi8KKworI2RlZmluZSBDT05TRVFfMCAgICAgICAgICAgICAgICgwKjJ1KQorI2RlZmluZSBDT05TRVFfMSAgICAgICAgICAgICAgICgxKjJ1KQorI2RlZmluZSBDT05TRVFfMiAgICAgICAgICAgICAgICgyKjJ1KQorI2RlZmluZSBDT05TRVFfMyAgICAgICAgICAgICAgICgzKjJ1KQorI2RlZmluZSBBREMxMlNTRUxfMCAgICAgICAgICAgICgwKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMSAgICAgICAgICAgICgxKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMiAgICAgICAgICAgICgyKjh1KQorI2RlZmluZSBBREMxMlNTRUxfMyAgICAgICAgICAgICgzKjh1KQorI2RlZmluZSBBREMxMkRJVl8wICAgICAgICAgICAgICgwKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8xICAgICAgICAgICAgICgxKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8yICAgICAgICAgICAgICgyKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl8zICAgICAgICAgICAgICgzKjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl80ICAgICAgICAgICAgICg0KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl81ICAgICAgICAgICAgICg1KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl82ICAgICAgICAgICAgICg2KjB4MjB1KQorI2RlZmluZSBBREMxMkRJVl83ICAgICAgICAgICAgICg3KjB4MjB1KQorI2RlZmluZSBTSFNfMCAgICAgICAgICAgICAgICAgICgwKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzEgICAgICAgICAgICAgICAgICAoMSoweDQwMHUpCisjZGVmaW5lIFNIU18yICAgICAgICAgICAgICAgICAgKDIqMHg0MDB1KQorI2RlZmluZSBTSFNfMyAgICAgICAgICAgICAgICAgICgzKjB4NDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzAgICAgICAgICAgICAoMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMSAgICAgICAgICAgICgxKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8yICAgICAgICAgICAgKDIqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzMgICAgICAgICAgICAoMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNCAgICAgICAgICAgICg0KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF81ICAgICAgICAgICAgKDUqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzYgICAgICAgICAgICAoNioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNyAgICAgICAgICAgICg3KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF84ICAgICAgICAgICAgKDgqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzkgICAgICAgICAgICAoOSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTAgICAgICAgICAgICgxMCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTEgICAgICAgICAgICgxMSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTIgICAgICAgICAgICgxMioweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTMgICAgICAgICAgICgxMyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTQgICAgICAgICAgICgxNCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMTUgICAgICAgICAgICgxNSoweDEwMDB1KQorCisvKiBBREMxMk1DVEx4ICovCisjZGVmaW5lIElOQ0gwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDAgKi8KKyNkZWZpbmUgSU5DSDEgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMSAqLworI2RlZmluZSBJTkNIMiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAyICovCisjZGVmaW5lIElOQ0gzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDMgKi8KKyNkZWZpbmUgU1JFRjAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAwICovCisjZGVmaW5lIFNSRUYxICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMSAqLworI2RlZmluZSBTUkVGMiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDIgKi8KKyNkZWZpbmUgRU9TICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBBREMxMiBFbmQgb2YgU2VxdWVuY2UgKi8KKworI2RlZmluZSBJTkNIXzAgICAgICAgICAgICAgICAgICgwKQorI2RlZmluZSBJTkNIXzEgICAgICAgICAgICAgICAgICgxKQorI2RlZmluZSBJTkNIXzIgICAgICAgICAgICAgICAgICgyKQorI2RlZmluZSBJTkNIXzMgICAgICAgICAgICAgICAgICgzKQorI2RlZmluZSBJTkNIXzQgICAgICAgICAgICAgICAgICg0KQorI2RlZmluZSBJTkNIXzUgICAgICAgICAgICAgICAgICg1KQorI2RlZmluZSBJTkNIXzYgICAgICAgICAgICAgICAgICg2KQorI2RlZmluZSBJTkNIXzcgICAgICAgICAgICAgICAgICg3KQorI2RlZmluZSBJTkNIXzggICAgICAgICAgICAgICAgICg4KQorI2RlZmluZSBJTkNIXzkgICAgICAgICAgICAgICAgICg5KQorI2RlZmluZSBJTkNIXzEwICAgICAgICAgICAgICAgICgxMCkKKyNkZWZpbmUgSU5DSF8xMSAgICAgICAgICAgICAgICAoMTEpCisjZGVmaW5lIElOQ0hfMTIgICAgICAgICAgICAgICAgKDEyKQorI2RlZmluZSBJTkNIXzEzICAgICAgICAgICAgICAgICgxMykKKyNkZWZpbmUgSU5DSF8xNCAgICAgICAgICAgICAgICAoMTQpCisjZGVmaW5lIElOQ0hfMTUgICAgICAgICAgICAgICAgKDE1KQorCisjZGVmaW5lIFNSRUZfMCAgICAgICAgICAgICAgICAgKDAqMHgxMHUpCisjZGVmaW5lIFNSRUZfMSAgICAgICAgICAgICAgICAgKDEqMHgxMHUpCisjZGVmaW5lIFNSRUZfMiAgICAgICAgICAgICAgICAgKDIqMHgxMHUpCisjZGVmaW5lIFNSRUZfMyAgICAgICAgICAgICAgICAgKDMqMHgxMHUpCisjZGVmaW5lIFNSRUZfNCAgICAgICAgICAgICAgICAgKDQqMHgxMHUpCisjZGVmaW5lIFNSRUZfNSAgICAgICAgICAgICAgICAgKDUqMHgxMHUpCisjZGVmaW5lIFNSRUZfNiAgICAgICAgICAgICAgICAgKDYqMHgxMHUpCisjZGVmaW5lIFNSRUZfNyAgICAgICAgICAgICAgICAgKDcqMHgxMHUpCisKKy8qIEFEQzEySVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgQURDMTJJVl9OT05FICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBBREMxMklWX0FEQzEyT1ZJRkcgICAgICgweDAwMDIpICAgICAgIC8qIEFEQzEyT1ZJRkcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMlRPVklGRyAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMlRPVklGRyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMCAgICAgICgweDAwMDYpICAgICAgIC8qIEFEQzEySUZHMCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMSAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEySUZHMSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMiAgICAgICgweDAwMEEpICAgICAgIC8qIEFEQzEySUZHMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMyAgICAgICgweDAwMEMpICAgICAgIC8qIEFEQzEySUZHMyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNCAgICAgICgweDAwMEUpICAgICAgIC8qIEFEQzEySUZHNCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNSAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEySUZHNSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNiAgICAgICgweDAwMTIpICAgICAgIC8qIEFEQzEySUZHNiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHNyAgICAgICgweDAwMTQpICAgICAgIC8qIEFEQzEySUZHNyAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOCAgICAgICgweDAwMTYpICAgICAgIC8qIEFEQzEySUZHOCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHOSAgICAgICgweDAwMTgpICAgICAgIC8qIEFEQzEySUZHOSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTAgICAgICgweDAwMUEpICAgICAgIC8qIEFEQzEySUZHMTAgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzExICAgICAoMHgwMDFDKSAgICAgICAvKiBBREMxMklGRzExICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMiAgICAgKDB4MDAxRSkgICAgICAgLyogQURDMTJJRkcxMiAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTMgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEySUZHMTMgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzE0ICAgICAoMHgwMDIyKSAgICAgICAvKiBBREMxMklGRzE0ICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxNSAgICAgKDB4MDAyNCkgICAgICAgLyogQURDMTJJRkcxNSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERBQzEyCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19EQUMxMl8yX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoREFDMTJfMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMCBDb250cm9sICovCitTRlJfMTZCSVQoREFDMTJfMUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMSBDb250cm9sICovCisKKyNkZWZpbmUgREFDMTJHUlAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEQUMxMiBncm91cCAqLworI2RlZmluZSBEQUMxMkVOQyAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERBQzEyIGVuYWJsZSBjb252ZXJzaW9uICovCisjZGVmaW5lIERBQzEySUZHICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogREFDMTIgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgREFDMTJJRSAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBEQUMxMiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIERBQzEyREYgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogREFDMTIgZGF0YSBmb3JtYXQgKi8KKyNkZWZpbmUgREFDMTJBTVAwICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJBTVAxICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDEgKi8KKyNkZWZpbmUgREFDMTJBTVAyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDIgKi8KKyNkZWZpbmUgREFDMTJJUiAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBEQUMxMiBpbnB1dCByZWZlcmVuY2UgYW5kIG91dHB1dCByYW5nZSAqLworI2RlZmluZSBEQUMxMkNBTE9OICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERBQzEyIGNhbGlicmF0aW9uICovCisjZGVmaW5lIERBQzEyTFNFTDAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJMU0VMMSAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBEQUMxMlJFUyAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIERBQzEyIHJlc29sdXRpb24gKi8KKyNkZWZpbmUgREFDMTJTUkVGMCAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBEQUMxMiByZWZlcmVuY2UgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJTUkVGMSAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBEQUMxMiByZWZlcmVuY2UgYml0IDEgKi8KKyNkZWZpbmUgREFDMTJPUFMgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBEQUMxMiBPcGVyYXRpb24gQW1wLiAqLworCisjZGVmaW5lIERBQzEyQU1QXzAgICAgICAgICAgICAgKDAqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDA6IG9mZiwgICAgMy1zdGF0ZSAqLworI2RlZmluZSBEQUMxMkFNUF8xICAgICAgICAgICAgICgxKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAxOiBvZmYsICAgIG9mZiAqLworI2RlZmluZSBEQUMxMkFNUF8yICAgICAgICAgICAgICgyKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAyOiBsb3csICAgIGxvdyAqLworI2RlZmluZSBEQUMxMkFNUF8zICAgICAgICAgICAgICgzKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAzOiBsb3csICAgIG1lZGl1bSAqLworI2RlZmluZSBEQUMxMkFNUF80ICAgICAgICAgICAgICg0KjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciA0OiBsb3csICAgIGhpZ2ggKi8KKyNkZWZpbmUgREFDMTJBTVBfNSAgICAgICAgICAgICAoNSoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNTogbWVkaXVtLCBtZWRpdW0gKi8KKyNkZWZpbmUgREFDMTJBTVBfNiAgICAgICAgICAgICAoNioweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNjogbWVkaXVtLCBoaWdoICovCisjZGVmaW5lIERBQzEyQU1QXzcgICAgICAgICAgICAgKDcqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDc6IGhpZ2gsICAgaGlnaCAqLworCisjZGVmaW5lIERBQzEyTFNFTF8wICAgICAgICAgICAgKDAqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMDogZGlyZWN0ICovCisjZGVmaW5lIERBQzEyTFNFTF8xICAgICAgICAgICAgKDEqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMTogbGF0Y2hlZCB3aXRoIERBVCAqLworI2RlZmluZSBEQUMxMkxTRUxfMiAgICAgICAgICAgICgyKjB4MDQwMHUpICAgIC8qIERBQzEyIGxvYWQgc2VsZWN0IDI6IGxhdGNoZWQgd2l0aCBwb3MuIFRpbWVyX0EzLk9VVDEgKi8KKyNkZWZpbmUgREFDMTJMU0VMXzMgICAgICAgICAgICAoMyoweDA0MDB1KSAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCAzOiBsYXRjaGVkIHdpdGggcG9zLiBUaW1lcl9CNy5PVVQxICovCisKKyNkZWZpbmUgREFDMTJTUkVGXzAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMDogVnJlZisgKi8KKyNkZWZpbmUgREFDMTJTUkVGXzEgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMTogVnJlZisgKi8KKyNkZWZpbmUgREFDMTJTUkVGXzIgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMjogVmVyZWYrICovCisjZGVmaW5lIERBQzEyU1JFRl8zICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogREFDMTIgcmVmZXJlbmNlIDM6IFZlcmVmKyAqLworCitTRlJfMTZCSVQoREFDMTJfMERBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMCBEYXRhICovCitTRlJfMTZCSVQoREFDMTJfMURBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMSBEYXRhICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERNQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRE1BXzFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKERNQUNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBNb2R1bGUgQ29udHJvbCAwICovCisjZGVmaW5lIERNQTBUU0VMMCAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgRE1BMFRTRUwxICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBETUEwVFNFTDIgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IGJpdCAyICovCisjZGVmaW5lIERNQTBUU0VMMyAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgYml0IDMgKi8KKworI2RlZmluZSBETUEwVFNFTF8wICAgICAgICAgICAgICgwKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDA6ICBETUFfUkVRIChzdykqLworI2RlZmluZSBETUEwVFNFTF8xICAgICAgICAgICAgICgxKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcl9BIChUQUNDUjIuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF8yICAgICAgICAgICAgICgyKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDI6ICBUaW1lcl9CIChUQkNDUjIuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF8zICAgICAgICAgICAgICgzKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDM6ICBVQVJUMC9JMkMgcmVjZWl2ZSAqLworI2RlZmluZSBETUEwVFNFTF80ICAgICAgICAgICAgICg0KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDQ6ICBVQVJUMC9JMkMgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMFRTRUxfNSAgICAgICAgICAgICAoNSoweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCA1OiAgREFDMTJfMENUTC5EQUMxMklGRyAqLworI2RlZmluZSBETUEwVFNFTF82ICAgICAgICAgICAgICg2KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDY6ICBBREMxMiAoQURDMTJJRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzcgICAgICAgICAgICAgKDcqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgNzogIFRpbWVyX0EgKFRBQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzggICAgICAgICAgICAgKDgqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgODogIFRpbWVyX0IgKFRCQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTBUU0VMXzkgICAgICAgICAgICAgKDkqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgOTogIFVBUlQxIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMTAgICAgICAgICAgICAoMTAqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAxMDogVUFSVDEgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMTEgICAgICAgICAgICAoMTEqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAxMTogTXVsdGlwbGllciByZWFkeSAqLworI2RlZmluZSBETUEwVFNFTF8xNCAgICAgICAgICAgICgxNCoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE0OiBwcmV2aW91cyBETUEgY2hhbm5lbCBETUEySUZHICovCisjZGVmaW5lIERNQTBUU0VMXzE1ICAgICAgICAgICAgKDE1KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTU6IGV4dC4gVHJpZ2dlciAoRE1BRTApICovCisKK1NGUl8xNkJJVChETUFDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgTW9kdWxlIENvbnRyb2wgMSAqLworI2RlZmluZSBFTk5NSSAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEVuYWJsZSBOTUkgaW50ZXJydXB0aW9uIG9mIERNQSAqLworI2RlZmluZSBST1VORFJPQklOICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFJvdW5kLVJvYmluIERNQSBjaGFubmVsIHByaW9yaXRpZXMgKi8KKyNkZWZpbmUgRE1BT05GRVRDSCAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBETUEgdHJhbnNmZXIgb24gaW5zdHJ1Y3Rpb24gZmV0Y2ggKi8KKworU0ZSXzE2QklUKERNQTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgQ29udHJvbCAqLworCisjZGVmaW5lIERNQVJFUSAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSW5pdGlhdGUgRE1BIHRyYW5zZmVyIHdpdGggRE1BVFNFTCAqLworI2RlZmluZSBETUFBQk9SVCAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERNQSB0cmFuc2ZlciBhYm9ydGVkIGJ5IE5NSSAqLworI2RlZmluZSBETUFJRSAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIERNQUlGRyAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRE1BIGludGVycnVwdCBmbGFnICovCisjZGVmaW5lIERNQUVOICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRE1BIGVuYWJsZSAqLworI2RlZmluZSBETUFMRVZFTCAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIERNQSBsZXZlbCBzZW5zaXRpdmUgdHJpZ2dlciBzZWxlY3QgKi8KKyNkZWZpbmUgRE1BU1JDQllURSAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBETUEgc291cmNlIGJ5dGUgKi8KKyNkZWZpbmUgRE1BRFNUQllURSAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBETUEgZGVzdGluYXRpb24gYnl0ZSAqLworI2RlZmluZSBETUFTUkNJTkNSMCAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IGJpdCAwICovCisjZGVmaW5lIERNQVNSQ0lOQ1IxICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogRE1BIHNvdXJjZSBpbmNyZW1lbnQgYml0IDEgKi8KKyNkZWZpbmUgRE1BRFNUSU5DUjAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IGJpdCAwICovCisjZGVmaW5lIERNQURTVElOQ1IxICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCBiaXQgMSAqLworI2RlZmluZSBETUFEVDAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIGJpdCAwICovCisjZGVmaW5lIERNQURUMSAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgYml0IDEgKi8KKyNkZWZpbmUgRE1BRFQyICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSBiaXQgMiAqLworCisjZGVmaW5lIERNQVNXRFcgICAgICAgICAgICAgICAgKDAqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2Ugd29yZCB0byBkZXN0aW5hdGlvbiB3b3JkICovCisjZGVmaW5lIERNQVNCRFcgICAgICAgICAgICAgICAgKDEqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2UgYnl0ZSB0byBkZXN0aW5hdGlvbiB3b3JkICovCisjZGVmaW5lIERNQVNXREIgICAgICAgICAgICAgICAgKDIqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2Ugd29yZCB0byBkZXN0aW5hdGlvbiBieXRlICovCisjZGVmaW5lIERNQVNCREIgICAgICAgICAgICAgICAgKDMqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2UgYnl0ZSB0byBkZXN0aW5hdGlvbiBieXRlICovCisKKyNkZWZpbmUgRE1BU1JDSU5DUl8wICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCAwOiBzb3VyY2UgYWRkcmVzcyB1bmNoYW5nZWQgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUl8xICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCAxOiBzb3VyY2UgYWRkcmVzcyB1bmNoYW5nZWQgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUl8yICAgICAgICAgICAoMioweDAxMDB1KSAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCAyOiBzb3VyY2UgYWRkcmVzcyBkZWNyZW1lbnRlZCAqLworI2RlZmluZSBETUFTUkNJTkNSXzMgICAgICAgICAgICgzKjB4MDEwMHUpICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IDM6IHNvdXJjZSBhZGRyZXNzIGluY3JlbWVudGVkICovCisKKyNkZWZpbmUgRE1BRFNUSU5DUl8wICAgICAgICAgICAoMCoweDA0MDB1KSAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IDA6IGRlc3RpbmF0aW9uIGFkZHJlc3MgdW5jaGFuZ2VkICovCisjZGVmaW5lIERNQURTVElOQ1JfMSAgICAgICAgICAgKDEqMHgwNDAwdSkgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCAxOiBkZXN0aW5hdGlvbiBhZGRyZXNzIHVuY2hhbmdlZCAqLworI2RlZmluZSBETUFEU1RJTkNSXzIgICAgICAgICAgICgyKjB4MDQwMHUpICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgMjogZGVzdGluYXRpb24gYWRkcmVzcyBkZWNyZW1lbnRlZCAqLworI2RlZmluZSBETUFEU1RJTkNSXzMgICAgICAgICAgICgzKjB4MDQwMHUpICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgMzogZGVzdGluYXRpb24gYWRkcmVzcyBpbmNyZW1lbnRlZCAqLworCisjZGVmaW5lIERNQURUXzAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgMDogc2luZ2xlICovCisjZGVmaW5lIERNQURUXzEgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgMTogYmxvY2sgKi8KKyNkZWZpbmUgRE1BRFRfMiAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSAyOiBpbnRlcmxlYXZlZCAqLworI2RlZmluZSBETUFEVF8zICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDM6IGludGVybGVhdmVkICovCisjZGVmaW5lIERNQURUXzQgICAgICAgICAgICAgICAgKDQqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgNDogc2luZ2xlLCByZXBlYXQgKi8KKyNkZWZpbmUgRE1BRFRfNSAgICAgICAgICAgICAgICAoNSoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSA1OiBibG9jaywgcmVwZWF0ICovCisjZGVmaW5lIERNQURUXzYgICAgICAgICAgICAgICAgKDYqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgNjogaW50ZXJsZWF2ZWQsIHJlcGVhdCAqLworI2RlZmluZSBETUFEVF83ICAgICAgICAgICAgICAgICg3KjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDc6IGludGVybGVhdmVkLCByZXBlYXQgKi8KKworU0ZSXzE2QklUKERNQTBTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgU291cmNlIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUEwREEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAwIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUEwU1opOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAwIFRyYW5zZmVyIFNpemUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBPcGVyYXRpb25hbCBBbXBsaWZpZXIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX09BXzNfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKE9BMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPQTAgQ29udHJvbCByZWdpc3RlciAwICovCitTRlJfOEJJVChPQTBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT0EwIENvbnRyb2wgcmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoT0ExQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9BMSBDb250cm9sIHJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKE9BMUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPQTEgQ29udHJvbCByZWdpc3RlciAxICovCitTRlJfOEJJVChPQTJDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT0EyIENvbnRyb2wgcmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoT0EyQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9BMiBDb250cm9sIHJlZ2lzdGVyIDEgKi8KKworI2RlZmluZSBPQUFEQzAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE9BeCBvdXRwdXQgdG8gQURDMTIgaW5wdXQgY2hhbm5lbCBzZWxlY3QgMCAqLworI2RlZmluZSBPQUFEQzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9BeCBvdXRwdXQgdG8gQURDMTIgaW5wdXQgY2hhbm5lbCBzZWxlY3QgMSAqLworI2RlZmluZSBPQVBNMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE9BeCBQb3dlciBtb2RlIHNlbGVjdCAwICovCisjZGVmaW5lIE9BUE0xICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0IDEgKi8KKyNkZWZpbmUgT0FQMCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBPQVAxICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE9BeCBOb24taW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIE9BTjAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogT0F4IEludmVydGluZyBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBPQU4xICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE9BeCBJbnZlcnRpbmcgaW5wdXQgc2VsZWN0IDEgKi8KKworI2RlZmluZSBPQVBNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE9BeCBQb3dlciBtb2RlIHNlbGVjdDogb2ZmICovCisjZGVmaW5lIE9BUE1fMSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0OiBzbG93ICovCisjZGVmaW5lIE9BUE1fMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0OiBtZWR1aW0gKi8KKyNkZWZpbmUgT0FQTV8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBPQXggUG93ZXIgbW9kZSBzZWxlY3Q6IGZhc3QgKi8KKyNkZWZpbmUgT0FQXzAgICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMDAgKi8KKyNkZWZpbmUgT0FQXzEgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMDEgKi8KKyNkZWZpbmUgT0FQXzIgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMTAgKi8KKyNkZWZpbmUgT0FQXzMgICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMTEgKi8KKyNkZWZpbmUgT0FOXzAgICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBPQXggSW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAwMCAqLworI2RlZmluZSBPQU5fMSAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE9BeCBJbnZlcnRpbmcgaW5wdXQgc2VsZWN0IDAxICovCisjZGVmaW5lIE9BTl8yICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogT0F4IEludmVydGluZyBpbnB1dCBzZWxlY3QgMTAgKi8KKyNkZWZpbmUgT0FOXzMgICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBPQXggSW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAxMSAqLworCisjZGVmaW5lIE9BUlJJUCAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogT0F4IFJhaWwtdG8tUmFpbCBJbnB1dCBvZmYgKi8KKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMikgICAgLyogKi8KKyNkZWZpbmUgT0FGQzAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBPQXggRnVuY3Rpb24gY29udHJvbCAwICovCisjZGVmaW5lIE9BRkMxICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uIGNvbnRyb2wgMSAqLworI2RlZmluZSBPQUZDMiAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbiBjb250cm9sIDIgKi8KKyNkZWZpbmUgT0FGQlIwICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3Igc2VsZWN0IDAgKi8KKyNkZWZpbmUgT0FGQlIxICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3Igc2VsZWN0IDEgKi8KKyNkZWZpbmUgT0FGQlIyICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3Igc2VsZWN0IDIgKi8KKworI2RlZmluZSBPQUZDXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogR2VuLiBQdXJwb3NlICovCisjZGVmaW5lIE9BRkNfMSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBVbml0eSBnYWluIGJ1ZmZlciAqLworI2RlZmluZSBPQUZDXzIgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgT0FGQ18zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBPQXggRnVuY3Rpb246IENvbXBhcmF0b3IgKi8KKyNkZWZpbmUgT0FGQ180ICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggRnVuY3Rpb246IE5vbi1JbnZlcnRpbmcgUEdBICovCisjZGVmaW5lIE9BRkNfNSAgICAgICAgICAgICAgICAgKDB4MTQpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBSZXNlcnZlZCAqLworI2RlZmluZSBPQUZDXzYgICAgICAgICAgICAgICAgICgweDE4KSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogSW52ZXJ0aW5nIFBHQSAqLworI2RlZmluZSBPQUZDXzcgICAgICAgICAgICAgICAgICgweDFDKSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogRGlmZmVyZW50aWFsIFBHQSAqLworI2RlZmluZSBPQUZCUl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvcjogVGFwIDAgKi8KKyNkZWZpbmUgT0FGQlJfMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3I6IFRhcCAxICovCisjZGVmaW5lIE9BRkJSXzIgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogT0F4IEZlZWRiYWNrIHJlc2lzdG9yOiBUYXAgMiAqLworI2RlZmluZSBPQUZCUl8zICAgICAgICAgICAgICAgICgweDYwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvcjogVGFwIDMgKi8KKyNkZWZpbmUgT0FGQlJfNCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3I6IFRhcCA0ICovCisjZGVmaW5lIE9BRkJSXzUgICAgICAgICAgICAgICAgKDB4QTApICAgICAgICAgLyogT0F4IEZlZWRiYWNrIHJlc2lzdG9yOiBUYXAgNSAqLworI2RlZmluZSBPQUZCUl82ICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvcjogVGFwIDYgKi8KKyNkZWZpbmUgT0FGQlJfNyAgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3I6IFRhcCA3ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIEJBU0lDVElNRVJfVkVDVE9SICAgICAgICgwICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIEJhc2ljIFRpbWVyICovCisvKiNkZWZpbmUgQkFTSUNUSU1FUl9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDEgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIERBQzEyX0RNQV9WRUNUT1IgICAgICAgICgzICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU2IERBQyAxMiAqLworLyojZGVmaW5lIERBQzEyX0RNQV9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwMyIpICAqLyAvKiAweEZGRTYgREFDIDEyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMV9WRUNUT1IgICAgICAgICAgICAoNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFOCBQb3J0IDEgKi8KKy8qI2RlZmluZSBQT1JUMV9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDQiKSAgKi8gLyogMHhGRkU4IFBvcnQgMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJBMV9WRUNUT1IgICAgICAgICAgKDUgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8KKy8qI2RlZmluZSBUSU1FUkExX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDUiKSAgKi8gLyogMHhGRkVBIFRpbWVyIEEgQ0MxLTIsIFRBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkEwX1ZFQ1RPUiAgICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLworLyojZGVmaW5lIFRJTUVSQTBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNiIpICAqLyAvKiAweEZGRUMgVGltZXIgQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIEFEQzEyX1ZFQ1RPUiAgICAgICAgICAgICg3ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVFIEFEQyAqLworLyojZGVmaW5lIEFEQzEyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNyIpICAqLyAvKiAweEZGRUUgQURDICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBUWF9WRUNUT1IgICAgICAgICAoOCAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovCisvKiNkZWZpbmUgVVNBUlQwVFhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA4IikgICovIC8qIDB4RkZGMCBVU0FSVCAwIFRyYW5zbWl0ICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBVU0FSVDBSWF9WRUNUT1IgICAgICAgICAoOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGMiBVU0FSVCAwIFJlY2VpdmUgKi8KKy8qI2RlZmluZSBVU0FSVDBSWF9JU1IoZnVuYykgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDkiKSAgKi8gLyogMHhGRkYyIFVTQVJUIDAgUmVjZWl2ZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVJCMV9WRUNUT1IgICAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIgQiBDQzEtMiwgVEIgKi8KKy8qI2RlZmluZSBUSU1FUkIxX0lTUihmdW5jKSAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTIiKSAgKi8gLyogMHhGRkY4IFRpbWVyIEIgQ0MxLTIsIFRCICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIwX1ZFQ1RPUiAgICAgICAgICAoMTMgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLworLyojZGVmaW5lIFRJTUVSQjBfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMyIpICAqLyAvKiAweEZGRkEgVGltZXIgQiBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4RzQzeCAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweGc0NnguaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4ZzQ2eC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5NDhlNjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweGc0NnguaApAQCAtMCwwICsxLDE3MzAgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKgorKiBTdGFuZGFyZCByZWdpc3RlciBhbmQgYml0IGRlZmluaXRpb25zIGZvciB0aGUgVGV4YXMgSW5zdHJ1bWVudHMKKyogTVNQNDMwIG1pY3JvY29udHJvbGxlci4KKyoKKyogVGhpcyBmaWxlIHN1cHBvcnRzIGFzc2VtYmxlciBhbmQgQyBkZXZlbG9wbWVudCBmb3IKKyogTVNQNDMweEc0NnggZGV2aWNlcy4KKyoKKyogVGV4YXMgSW5zdHJ1bWVudHMsIFZlcnNpb24gMS42CisqCisqIFJldi4gMS4wLCBTZXR1cAorKiBSZXYuIDEuMSwgRml4ZWQgTmFtZXMgZm9yIFVTQ0kgYW4gc2V0dGluZ3MgZm9yIERNQQorKiBSZXYuIDEuMiwgQWRkZWQgVkxEIGJpdHMgaW4gU1ZTIG1vZHVsZQorKiBSZXYuIDEuMywgUmVtb3ZlZCBkZWZpbml0aW9ucyBmb3IgQlRSRVNFVAorKiAgICAgICAgICAgRml4ZWQgc3dhcHBlZCBkZWZpbml0aW9uIG9mIFJUQ3h4eAorKiBSZXYuIDEuNCwgUmVtb3ZlZCB1bnVzZWQgTUUxIGRlZmluaXRpb24KKyogUmV2LiAxLjUsIGFkZGVkIGRlZmluaXRpb25zIGZvciBJbnRlcnJ1cHQgVmVjdG9ycyB4eElWCisqIFJldi4gMS42LCBjaGFuZ2VkICd2b2lkIF9fZGF0YTIwICogdm9sYXRpbGUnIGRlZmluaXRpb24KKyoKKyoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZuZGVmIF9fbXNwNDMweEc0NngKKyNkZWZpbmUgX19tc3A0MzB4RzQ2eAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKy8qIFBFUklQSEVSQUwgRklMRSBNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworCisvKiBFeHRlcm5hbCByZWZlcmVuY2VzIHJlc29sdmVkIGJ5IGEgZGV2aWNlLXNwZWNpZmljIGxpbmtlciBjb21tYW5kIGZpbGUgKi8KKyNkZWZpbmUgU0ZSXzhCSVQoYWRkcmVzcykgICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgY2hhciBhZGRyZXNzCisjZGVmaW5lIFNGUl8xNkJJVChhZGRyZXNzKSAgZXh0ZXJuIHZvbGF0aWxlIHVuc2lnbmVkIGludCBhZGRyZXNzCisvLyNkZWZpbmUgU0ZSXzIwQklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKK3R5cGVkZWYgdm9pZCAoKiBfX1NGUl9GQVJQVFIpKCk7CisjZGVmaW5lIFNGUl8yMEJJVChhZGRyZXNzKSBleHRlcm4gX19TRlJfRkFSUFRSIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzMyQklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgbG9uZyBhZGRyZXNzCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENQVQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTVNQNDMwWF9DUFVfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBpdCBoYXMgTVNQNDMwWCBDUFUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1BFQ0lBTCBGVU5DVElPTiBSRUdJU1RFUiBBRERSRVNTRVMgKyBDT05UUk9MIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworU0ZSXzhCSVQoSUUxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBFbmFibGUgMSAqLworI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklFICAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBBQ0NWSUUgICAgICAgICAgICAgICAgICgweDIwKQorCitTRlJfOEJJVChJRkcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMSAqLworI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBPRklGRyAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBOTUlJRkcgICAgICAgICAgICAgICAgICgweDEwKQorCitTRlJfOEJJVChJRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAyICovCisjZGVmaW5lIFUxSUUgICAgICAgICAgICAgICAgICAgSUUyICAgICAgICAgICAgLyogVUFSVDEgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBVQzBJRSAgICAgICAgICAgICAgICAgIElFMgorI2RlZmluZSBVQ0EwUlhJRSAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0EwVFhJRSAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IwUlhJRSAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IwVFhJRSAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBVUlhJRTEgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBVVFhJRTEgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBCVElFICAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChJRkcyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEZsYWcgMiAqLworI2RlZmluZSBVMUlGRyAgICAgICAgICAgICAgICAgIElGRzIgICAgICAgICAgIC8qIFVBUlQxIEludGVycnVwdCBGbGFnIFJlZ2lzdGVyICovCisjZGVmaW5lIFVDMElGRyAgICAgICAgICAgICAgICAgSUZHMgorI2RlZmluZSBVQ0EwUlhJRkcgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBVQ0EwVFhJRkcgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBVQ0IwUlhJRkcgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBVQ0IwVFhJRkcgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBVUlhJRkcxICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBVVFhJRkcxICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBCVElGRyAgICAgICAgICAgICAgICAgICgweDgwKQorCitTRlJfOEJJVChNRTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTW9kdWxlIEVuYWJsZSAyICovCisjZGVmaW5lIFUxTUUgICAgICAgICAgICAgICAgICAgTUUyICAgICAgICAgICAgLyogVUFSVDEgTW9kdWxlIEVuYWJsZSBSZWdpc3RlciAqLworI2RlZmluZSBVUlhFMSAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBVVFhFMSAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBVU1BJRTEgICAgICAgICAgICAgICAgICgweDEwKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEFEQzEyCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19BREMxMl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoQURDMTJDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udHJvbCAwICovCitTRlJfMTZCSVQoQURDMTJDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udHJvbCAxICovCitTRlJfMTZCSVQoQURDMTJJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl8xNkJJVChBREMxMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfMTZCSVQoQURDMTJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisKKyNkZWZpbmUgQURDMTJNRU1fICAgICAgICAgICAgICAoMHgwMTQwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIEFEQzEyTUVNICAgICAgICAgICAgICAgKEFEQzEyTUVNXykgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgKGZvciBhc3NlbWJsZXIpICovCisjZWxzZQorI2RlZmluZSBBREMxMk1FTSAgICAgICAgICAgICAgICgoaW50KikgICAgICAgIEFEQzEyTUVNXykgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgKGZvciBDKSAqLworI2VuZGlmCitTRlJfMTZCSVQoQURDMTJNRU0wKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMCAqLworU0ZSXzE2QklUKEFEQzEyTUVNMSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEgKi8KK1NGUl8xNkJJVChBREMxMk1FTTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAyICovCitTRlJfMTZCSVQoQURDMTJNRU0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMyAqLworU0ZSXzE2QklUKEFEQzEyTUVNNCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDQgKi8KK1NGUl8xNkJJVChBREMxMk1FTTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA1ICovCitTRlJfMTZCSVQoQURDMTJNRU02KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgNiAqLworU0ZSXzE2QklUKEFEQzEyTUVNNyk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDcgKi8KK1NGUl8xNkJJVChBREMxMk1FTTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSA4ICovCitTRlJfMTZCSVQoQURDMTJNRU05KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgOSAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTApOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEwICovCitTRlJfMTZCSVQoQURDMTJNRU0xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTEgKi8KK1NGUl8xNkJJVChBREMxMk1FTTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxMiAqLworU0ZSXzE2QklUKEFEQzEyTUVNMTMpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gTWVtb3J5IDEzICovCitTRlJfMTZCSVQoQURDMTJNRU0xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBNZW1vcnkgMTQgKi8KK1NGUl8xNkJJVChBREMxMk1FTTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIE1lbW9yeSAxNSAqLworCisjZGVmaW5lIEFEQzEyTUNUTF8gICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgKi8KKyNpZmRlZiBfX0FTTV9IRUFERVJfXworI2RlZmluZSBBREMxMk1DVEwgICAgICAgICAgICAgIChBREMxMk1DVExfKSAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgQURDMTJNQ1RMICAgICAgICAgICAgICAoKGNoYXIqKSAgICAgICBBREMxMk1DVExfKSAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKEFEQzEyTUNUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAwICovCitTRlJfOEJJVChBREMxMk1DVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDIgKi8KK1NGUl84QklUKEFEQzEyTUNUTDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAzICovCitTRlJfOEJJVChBREMxMk1DVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMNSk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDUgKi8KK1NGUl84QklUKEFEQzEyTUNUTDYpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA2ICovCitTRlJfOEJJVChBREMxMk1DVEw3KTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgNyAqLworU0ZSXzhCSVQoQURDMTJNQ1RMOCk7ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDggKi8KK1NGUl84QklUKEFEQzEyTUNUTDkpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCA5ICovCitTRlJfOEJJVChBREMxMk1DVEwxMCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTAgKi8KK1NGUl84QklUKEFEQzEyTUNUTDExKTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxMSAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTIpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDEyICovCitTRlJfOEJJVChBREMxMk1DVEwxMyk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogQURDMTIgTWVtb3J5IENvbnRyb2wgMTMgKi8KK1NGUl84QklUKEFEQzEyTUNUTDE0KTsgICAgICAgICAgICAgICAgICAgICAgICAvKiBBREMxMiBNZW1vcnkgQ29udHJvbCAxNCAqLworU0ZSXzhCSVQoQURDMTJNQ1RMMTUpOyAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFEQzEyIE1lbW9yeSBDb250cm9sIDE1ICovCisKKy8qIEFEQzEyQ1RMMCAqLworI2RlZmluZSBBREMxMlNDICAgICAgICAgICAgICAgICgweDAwMSkgICAgICAgIC8qIEFEQzEyIFN0YXJ0IENvbnZlcnNpb24gKi8KKyNkZWZpbmUgRU5DICAgICAgICAgICAgICAgICAgICAoMHgwMDIpICAgICAgICAvKiBBREMxMiBFbmFibGUgQ29udmVyc2lvbiAqLworI2RlZmluZSBBREMxMlRPVklFICAgICAgICAgICAgICgweDAwNCkgICAgICAgIC8qIEFEQzEyIFRpbWVyIE92ZXJmbG93IGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQURDMTJPVklFICAgICAgICAgICAgICAoMHgwMDgpICAgICAgICAvKiBBREMxMiBPdmVyZmxvdyBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIEFEQzEyT04gICAgICAgICAgICAgICAgKDB4MDEwKSAgICAgICAgLyogQURDMTIgT24vZW5hYmxlICovCisjZGVmaW5lIFJFRk9OICAgICAgICAgICAgICAgICAgKDB4MDIwKSAgICAgICAgLyogQURDMTIgUmVmZXJlbmNlIG9uICovCisjZGVmaW5lIFJFRjJfNVYgICAgICAgICAgICAgICAgKDB4MDQwKSAgICAgICAgLyogQURDMTIgUmVmIDA6MS41ViAvIDE6Mi41ViAqLworI2RlZmluZSBNU0MgICAgICAgICAgICAgICAgICAgICgweDA4MCkgICAgICAgIC8qIEFEQzEyIE11bHRpcGxlIFNhbXBsZUNvbnZlcnNpb24gKi8KKyNkZWZpbmUgU0hUMDAgICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAwICovCisjZGVmaW5lIFNIVDAxICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMSAqLworI2RlZmluZSBTSFQwMiAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDAgU2VsZWN0IDIgKi8KKyNkZWZpbmUgU0hUMDMgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAwIFNlbGVjdCAzICovCisjZGVmaW5lIFNIVDEwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMCBTZWxlY3QgMCAqLworI2RlZmluZSBTSFQxMSAgICAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIEFEQzEyIFNhbXBsZSBIb2xkIDEgU2VsZWN0IDEgKi8KKyNkZWZpbmUgU0hUMTIgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUgSG9sZCAyIFNlbGVjdCAyICovCisjZGVmaW5lIFNIVDEzICAgICAgICAgICAgICAgICAgKDB4ODAwMCkgICAgICAgLyogQURDMTIgU2FtcGxlIEhvbGQgMyBTZWxlY3QgMyAqLworI2RlZmluZSBNU0ggICAgICAgICAgICAgICAgICAgICgweDA4MCkKKworI2RlZmluZSBTSFQwXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xICAgICAgICAgICAgICAgICAoMSoweDEwMHUpCisjZGVmaW5lIFNIVDBfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDB1KQorI2RlZmluZSBTSFQwXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF80ICAgICAgICAgICAgICAgICAoNCoweDEwMHUpCisjZGVmaW5lIFNIVDBfNSAgICAgICAgICAgICAgICAgKDUqMHgxMDB1KQorI2RlZmluZSBTSFQwXzYgICAgICAgICAgICAgICAgICg2KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF83ICAgICAgICAgICAgICAgICAoNyoweDEwMHUpCisjZGVmaW5lIFNIVDBfOCAgICAgICAgICAgICAgICAgKDgqMHgxMDB1KQorI2RlZmluZSBTSFQwXzkgICAgICAgICAgICAgICAgICg5KjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMCAgICAgICAgICAgICAgICAoMTAqMHgxMDB1KQorI2RlZmluZSBTSFQwXzExICAgICAgICAgICAgICAgICgxMSoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTIgICAgICAgICAgICAgICAgKDEyKjB4MTAwdSkKKyNkZWZpbmUgU0hUMF8xMyAgICAgICAgICAgICAgICAoMTMqMHgxMDB1KQorI2RlZmluZSBTSFQwXzE0ICAgICAgICAgICAgICAgICgxNCoweDEwMHUpCisjZGVmaW5lIFNIVDBfMTUgICAgICAgICAgICAgICAgKDE1KjB4MTAwdSkKKworI2RlZmluZSBTSFQxXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV8yICAgICAgICAgICAgICAgICAoMioweDEwMDB1KQorI2RlZmluZSBTSFQxXzMgICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNCAgICAgICAgICAgICAgICAgKDQqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV81ICAgICAgICAgICAgICAgICAoNSoweDEwMDB1KQorI2RlZmluZSBTSFQxXzYgICAgICAgICAgICAgICAgICg2KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfNyAgICAgICAgICAgICAgICAgKDcqMHgxMDAwdSkKKyNkZWZpbmUgU0hUMV84ICAgICAgICAgICAgICAgICAoOCoweDEwMDB1KQorI2RlZmluZSBTSFQxXzkgICAgICAgICAgICAgICAgICg5KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTAgICAgICAgICAgICAgICAgKDEwKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTEgICAgICAgICAgICAgICAgKDExKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTIgICAgICAgICAgICAgICAgKDEyKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTMgICAgICAgICAgICAgICAgKDEzKjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTQgICAgICAgICAgICAgICAgKDE0KjB4MTAwMHUpCisjZGVmaW5lIFNIVDFfMTUgICAgICAgICAgICAgICAgKDE1KjB4MTAwMHUpCisKKy8qIEFEQzEyQ1RMMSAqLworI2RlZmluZSBBREMxMkJVU1kgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEyIEJ1c3kgKi8KKyNkZWZpbmUgQ09OU0VRMCAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFNlcXVlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENPTlNFUTEgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTZXF1ZW5jZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMlNTRUwwICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEyIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBBREMxMlNTRUwxICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEFEQzEyIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBBREMxMkRJVjAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEyIENsb2NrIERpdmlkZXIgU2VsZWN0IDAgKi8KKyNkZWZpbmUgQURDMTJESVYxICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBBREMxMiBDbG9jayBEaXZpZGVyIFNlbGVjdCAxICovCisjZGVmaW5lIEFEQzEyRElWMiAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgQ2xvY2sgRGl2aWRlciBTZWxlY3QgMiAqLworI2RlZmluZSBJU1NIICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIEFEQzEyIEludmVydCBTYW1wbGUgSG9sZCBTaWduYWwgKi8KKyNkZWZpbmUgU0hQICAgICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBQdWxzZSBNb2RlICovCisjZGVmaW5lIFNIUzAgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQURDMTIgU2FtcGxlL0hvbGQgU291cmNlIDAgKi8KKyNkZWZpbmUgU0hTMSAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBBREMxMiBTYW1wbGUvSG9sZCBTb3VyY2UgMSAqLworI2RlZmluZSBDU1RBUlRBREQwICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAwICovCisjZGVmaW5lIENTVEFSVEFERDEgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQURDMTIgQ29udmVyc2lvbiBTdGFydCBBZGRyZXNzIDEgKi8KKyNkZWZpbmUgQ1NUQVJUQUREMiAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBBREMxMiBDb252ZXJzaW9uIFN0YXJ0IEFkZHJlc3MgMiAqLworI2RlZmluZSBDU1RBUlRBREQzICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEFEQzEyIENvbnZlcnNpb24gU3RhcnQgQWRkcmVzcyAzICovCisKKyNkZWZpbmUgQ09OU0VRXzAgICAgICAgICAgICAgICAoMCoydSkKKyNkZWZpbmUgQ09OU0VRXzEgICAgICAgICAgICAgICAoMSoydSkKKyNkZWZpbmUgQ09OU0VRXzIgICAgICAgICAgICAgICAoMioydSkKKyNkZWZpbmUgQ09OU0VRXzMgICAgICAgICAgICAgICAoMyoydSkKKyNkZWZpbmUgQURDMTJTU0VMXzAgICAgICAgICAgICAoMCo4dSkKKyNkZWZpbmUgQURDMTJTU0VMXzEgICAgICAgICAgICAoMSo4dSkKKyNkZWZpbmUgQURDMTJTU0VMXzIgICAgICAgICAgICAoMio4dSkKKyNkZWZpbmUgQURDMTJTU0VMXzMgICAgICAgICAgICAoMyo4dSkKKyNkZWZpbmUgQURDMTJESVZfMCAgICAgICAgICAgICAoMCoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfMSAgICAgICAgICAgICAoMSoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfMiAgICAgICAgICAgICAoMioweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfMyAgICAgICAgICAgICAoMyoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNCAgICAgICAgICAgICAoNCoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNSAgICAgICAgICAgICAoNSoweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNiAgICAgICAgICAgICAoNioweDIwdSkKKyNkZWZpbmUgQURDMTJESVZfNyAgICAgICAgICAgICAoNyoweDIwdSkKKyNkZWZpbmUgU0hTXzAgICAgICAgICAgICAgICAgICAoMCoweDQwMHUpCisjZGVmaW5lIFNIU18xICAgICAgICAgICAgICAgICAgKDEqMHg0MDB1KQorI2RlZmluZSBTSFNfMiAgICAgICAgICAgICAgICAgICgyKjB4NDAwdSkKKyNkZWZpbmUgU0hTXzMgICAgICAgICAgICAgICAgICAoMyoweDQwMHUpCisjZGVmaW5lIENTVEFSVEFERF8wICAgICAgICAgICAgKDAqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEgICAgICAgICAgICAoMSoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfMiAgICAgICAgICAgICgyKjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF8zICAgICAgICAgICAgKDMqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzQgICAgICAgICAgICAoNCoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfNSAgICAgICAgICAgICg1KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF82ICAgICAgICAgICAgKDYqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzcgICAgICAgICAgICAoNyoweDEwMDB1KQorI2RlZmluZSBDU1RBUlRBRERfOCAgICAgICAgICAgICg4KjB4MTAwMHUpCisjZGVmaW5lIENTVEFSVEFERF85ICAgICAgICAgICAgKDkqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEwICAgICAgICAgICAoMTAqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzExICAgICAgICAgICAoMTEqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEyICAgICAgICAgICAoMTIqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzEzICAgICAgICAgICAoMTMqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzE0ICAgICAgICAgICAoMTQqMHgxMDAwdSkKKyNkZWZpbmUgQ1NUQVJUQUREXzE1ICAgICAgICAgICAoMTUqMHgxMDAwdSkKKworLyogQURDMTJNQ1RMeCAqLworI2RlZmluZSBJTkNIMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAwICovCisjZGVmaW5lIElOQ0gxICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQURDMTIgSW5wdXQgQ2hhbm5lbCBTZWxlY3QgQml0IDEgKi8KKyNkZWZpbmUgSU5DSDIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBBREMxMiBJbnB1dCBDaGFubmVsIFNlbGVjdCBCaXQgMiAqLworI2RlZmluZSBJTkNIMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEFEQzEyIElucHV0IENoYW5uZWwgU2VsZWN0IEJpdCAzICovCisjZGVmaW5lIFNSRUYwICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQURDMTIgU2VsZWN0IFJlZmVyZW5jZSBCaXQgMCAqLworI2RlZmluZSBTUkVGMSAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEFEQzEyIFNlbGVjdCBSZWZlcmVuY2UgQml0IDEgKi8KKyNkZWZpbmUgU1JFRjIgICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBBREMxMiBTZWxlY3QgUmVmZXJlbmNlIEJpdCAyICovCisjZGVmaW5lIEVPUyAgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogQURDMTIgRW5kIG9mIFNlcXVlbmNlICovCisKKyNkZWZpbmUgSU5DSF8wICAgICAgICAgICAgICAgICAoMCkKKyNkZWZpbmUgSU5DSF8xICAgICAgICAgICAgICAgICAoMSkKKyNkZWZpbmUgSU5DSF8yICAgICAgICAgICAgICAgICAoMikKKyNkZWZpbmUgSU5DSF8zICAgICAgICAgICAgICAgICAoMykKKyNkZWZpbmUgSU5DSF80ICAgICAgICAgICAgICAgICAoNCkKKyNkZWZpbmUgSU5DSF81ICAgICAgICAgICAgICAgICAoNSkKKyNkZWZpbmUgSU5DSF82ICAgICAgICAgICAgICAgICAoNikKKyNkZWZpbmUgSU5DSF83ICAgICAgICAgICAgICAgICAoNykKKyNkZWZpbmUgSU5DSF84ICAgICAgICAgICAgICAgICAoOCkKKyNkZWZpbmUgSU5DSF85ICAgICAgICAgICAgICAgICAoOSkKKyNkZWZpbmUgSU5DSF8xMCAgICAgICAgICAgICAgICAoMTApCisjZGVmaW5lIElOQ0hfMTEgICAgICAgICAgICAgICAgKDExKQorI2RlZmluZSBJTkNIXzEyICAgICAgICAgICAgICAgICgxMikKKyNkZWZpbmUgSU5DSF8xMyAgICAgICAgICAgICAgICAoMTMpCisjZGVmaW5lIElOQ0hfMTQgICAgICAgICAgICAgICAgKDE0KQorI2RlZmluZSBJTkNIXzE1ICAgICAgICAgICAgICAgICgxNSkKKworI2RlZmluZSBTUkVGXzAgICAgICAgICAgICAgICAgICgwKjB4MTB1KQorI2RlZmluZSBTUkVGXzEgICAgICAgICAgICAgICAgICgxKjB4MTB1KQorI2RlZmluZSBTUkVGXzIgICAgICAgICAgICAgICAgICgyKjB4MTB1KQorI2RlZmluZSBTUkVGXzMgICAgICAgICAgICAgICAgICgzKjB4MTB1KQorI2RlZmluZSBTUkVGXzQgICAgICAgICAgICAgICAgICg0KjB4MTB1KQorI2RlZmluZSBTUkVGXzUgICAgICAgICAgICAgICAgICg1KjB4MTB1KQorI2RlZmluZSBTUkVGXzYgICAgICAgICAgICAgICAgICg2KjB4MTB1KQorI2RlZmluZSBTUkVGXzcgICAgICAgICAgICAgICAgICg3KjB4MTB1KQorCisvKiBBREMxMklWIERlZmluaXRpb25zICovCisjZGVmaW5lIEFEQzEySVZfTk9ORSAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMk9WSUZHICAgICAoMHgwMDAyKSAgICAgICAvKiBBREMxMk9WSUZHICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJUT1ZJRkcgICAgKDB4MDAwNCkgICAgICAgLyogQURDMTJUT1ZJRkcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzAgICAgICAoMHgwMDA2KSAgICAgICAvKiBBREMxMklGRzAgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEgICAgICAoMHgwMDA4KSAgICAgICAvKiBBREMxMklGRzEgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzIgICAgICAoMHgwMDBBKSAgICAgICAvKiBBREMxMklGRzIgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzMgICAgICAoMHgwMDBDKSAgICAgICAvKiBBREMxMklGRzMgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzQgICAgICAoMHgwMDBFKSAgICAgICAvKiBBREMxMklGRzQgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzUgICAgICAoMHgwMDEwKSAgICAgICAvKiBBREMxMklGRzUgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzYgICAgICAoMHgwMDEyKSAgICAgICAvKiBBREMxMklGRzYgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzcgICAgICAoMHgwMDE0KSAgICAgICAvKiBBREMxMklGRzcgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzggICAgICAoMHgwMDE2KSAgICAgICAvKiBBREMxMklGRzggKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzkgICAgICAoMHgwMDE4KSAgICAgICAvKiBBREMxMklGRzkgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEwICAgICAoMHgwMDFBKSAgICAgICAvKiBBREMxMklGRzEwICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxMSAgICAgKDB4MDAxQykgICAgICAgLyogQURDMTJJRkcxMSAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTIgICAgICgweDAwMUUpICAgICAgIC8qIEFEQzEySUZHMTIgKi8KKyNkZWZpbmUgQURDMTJJVl9BREMxMklGRzEzICAgICAoMHgwMDIwKSAgICAgICAvKiBBREMxMklGRzEzICovCisjZGVmaW5lIEFEQzEySVZfQURDMTJJRkcxNCAgICAgKDB4MDAyMikgICAgICAgLyogQURDMTJJRkcxNCAqLworI2RlZmluZSBBREMxMklWX0FEQzEySUZHMTUgICAgICgweDAwMjQpICAgICAgIC8qIEFEQzEySUZHMTUgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCQVNJQyBUSU1FUiB3aXRoIFJlYWwgVGltZSBDbG9jaworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQlRfUlRDX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvbnRyb2wgKi8KK1NGUl84QklUKFJUQ0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgQ29udHJvbCAqLworU0ZSXzhCSVQoUlRDTlQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZSBDb3VudGVyIDEgKi8KK1NGUl84QklUKFJUQ05UMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ291bnRlciAyICovCitTRlJfOEJJVChSVENOVDMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lIENvdW50ZXIgMyAqLworU0ZSXzhCSVQoUlRDTlQ0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZSBDb3VudGVyIDQgKi8KK1NGUl84QklUKEJUQ05UMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAxICovCitTRlJfOEJJVChCVENOVDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMiAqLworU0ZSXzhCSVQoUlRDREFZKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZSBDbG9jayBEYXkgKi8KK1NGUl84QklUKFJUQ01PTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgTW9udGggKi8KK1NGUl84QklUKFJUQ1lFQVJMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgWWVhciAoTG93IEJ5dGUpICovCitTRlJfOEJJVChSVENZRUFSSCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lIENsb2NrIFllYXIgKEhpZ2ggQnl0ZSkgKi8KKyNkZWZpbmUgUlRDU0VDICAgICAgICAgICAgICAgICBSVENOVDEKKyNkZWZpbmUgUlRDTUlOICAgICAgICAgICAgICAgICBSVENOVDIKKyNkZWZpbmUgUlRDSE9VUiAgICAgICAgICAgICAgICBSVENOVDMKKyNkZWZpbmUgUlRDRE9XICAgICAgICAgICAgICAgICBSVENOVDQKKworU0ZSXzE2QklUKFJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljL1JlYWwgVGltZXIgQ29udHJvbCAqLworU0ZSXzE2QklUKFJUQ1RJTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlYWwgVGltZSBDbG9jayBUaW1lIDAgKi8KK1NGUl8xNkJJVChSVENUSU0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgVGltZSAxICovCitTRlJfMTZCSVQoQlRDTlQxMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQmFzaWMgVGltZXIgQ291bnQgMS8yICovCitTRlJfMTZCSVQoUlRDREFURSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVhbCBUaW1lIENsb2NrIERhdGUgKi8KK1NGUl8xNkJJVChSVENZRUFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWFsIFRpbWUgQ2xvY2sgWWVhciAqLworI2RlZmluZSBSVENOVDEyICAgICAgICAgICAgICAgIFJUQ1RJTTAKKyNkZWZpbmUgUlRDTlQzNCAgICAgICAgICAgICAgICBSVENUSU0xCisKKyNkZWZpbmUgQlRTU0VMICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBmQlQgPSBmTUNMSyAobWFpbiBjbG9jaykgKi8KKyNkZWZpbmUgQlRIT0xEICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBCVDEgaXMgaGVsZCBpZiB0aGlzIGJpdCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRESVYgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBmQ0xLMiA9IEFDTEs6MjU2ICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIEJUSVAyICAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIEJUSVAxICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIEJUSVAwICAgICAgICAgICAgICAgICAgKDB4MDEpCisKKyNkZWZpbmUgUlRDQkNEICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBSVEMgQkNEIFNlbGVjdCAqLworI2RlZmluZSBSVENIT0xEICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFJUQyBIb2xkICovCisjZGVmaW5lIFJUQ01PREUxICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogUlRDIE1vZGUgMSAqLworI2RlZmluZSBSVENNT0RFMCAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFJUQyBNb2RlIDAgKi8KKyNkZWZpbmUgUlRDVEVWMSAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSVEMgVGltZSBFdmVudCAxICovCisjZGVmaW5lIFJUQ1RFVjAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUlRDIFRpbWUgRXZlbnQgMCAqLworI2RlZmluZSBSVENJRSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJUQyBJbnRlcnJ1cHQgRW5hYmxlICovCisjZGVmaW5lIFJUQ0ZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUlRDIEV2ZW50IEZsYWcgKi8KKworI2RlZmluZSBSVENURVZfMCAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFJUQyBUaW1lIEV2ZW50OiAwICovCisjZGVmaW5lIFJUQ1RFVl8xICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogUlRDIFRpbWUgRXZlbnQ6IDEgKi8KKyNkZWZpbmUgUlRDVEVWXzIgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBSVEMgVGltZSBFdmVudDogMiAqLworI2RlZmluZSBSVENURVZfMyAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFJUQyBUaW1lIEV2ZW50OiAzICovCisjZGVmaW5lIFJUQ01PREVfMCAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogUlRDIE1vZGU6IDAgKi8KKyNkZWZpbmUgUlRDTU9ERV8xICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBSVEMgTW9kZTogMSAqLworI2RlZmluZSBSVENNT0RFXzIgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIFJUQyBNb2RlOiAyICovCisjZGVmaW5lIFJUQ01PREVfMyAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogUlRDIE1vZGU6IDMgKi8KKworLyogRnJlcXVlbmN5IG9mIHRoZSBCVENOVDIgY29kZWQgd2l0aCBCaXQgNSBhbmQgNyBpbiBCVENUTCAqLworI2RlZmluZSBCVF9mQ0xLMl9BQ0xLICAgICAgICAgICgweDAwKQorI2RlZmluZSBCVF9mQ0xLMl9BQ0xLX0RJVjI1NiAgIChCVERJVikKKyNkZWZpbmUgQlRfZkNMSzJfTUNMSyAgICAgICAgICAoQlRTU0VMKQorCisvKiBJbnRlcnJ1cHQgaW50ZXJ2YWwgdGltZSBmSU5UIGNvZGVkIHdpdGggQml0cyAwLTIgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMiAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBmSU5UID0gZkNMSzI6MiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWNCAgICAgICAgICAoQlRJUDApICAgICAgICAvKiBmSU5UID0gZkNMSzI6NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY4ICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjo4ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjE2ICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjE2ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjMyICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjMyICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjY0ICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogZklOVCA9IGZDTEsyOjY0ICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjEyOCAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogZklOVCA9IGZDTEsyOjEyOCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYyNTYgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogZklOVCA9IGZDTEsyOjI1NiAqLworCisvKiB3aXRoIGFzc3VtZWQgdmx1ZXMgb2YgZkFDTEs9MzJLSHosIGZNQ0xLPTFNSHogKi8KKy8qIGZCVD1mQUNMSyBpcyB0aG91Z2h0IGZvciBsb25nZXIgaW50ZXJ2YWwgdGltZXMgKi8KKyNkZWZpbmUgQlRfQURMWV8wXzA2NCAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiAwLjA2NG1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9BRExZXzBfMTI1ICAgICAgICAgIChCVElQMCkgICAgICAgIC8qIDAuMTI1bXMgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzBfMjUgICAgICAgICAgIChCVElQMSkgICAgICAgIC8qIDAuMjVtcyAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzBfNSAgICAgICAgICAgIChCVElQMStCVElQMCkgIC8qIDAuNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEgICAgICAgICAgICAgIChCVElQMikgICAgICAgIC8qIDFtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzIgICAgICAgICAgICAgIChCVElQMitCVElQMCkgIC8qIDJtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzQgICAgICAgICAgICAgIChCVElQMitCVElQMSkgIC8qIDRtcyAgICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzggICAgICAgICAgIChCVElQMitCVElQMStCVElQMCkgICAgICAgLyogOG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTYgICAgICAgICAgICAgKEJURElWKSAgICAgICAgLyogMTZtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMzIgICAgICAgICAgICAgKEJURElWK0JUSVAwKSAgLyogMzJtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNjQgICAgICAgICAgICAgKEJURElWK0JUSVAxKSAgLyogNjRtcyAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTI1ICAgICAgICAgKEJURElWK0JUSVAxK0JUSVAwKSAgICAgICAvKiAxMjVtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yNTAgICAgICAgICAgICAoQlRESVYrQlRJUDIpICAvKiAyNTBtcyAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV81MDAgICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDApICAgICAgIC8qIDUwMG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzEwMDAgICAgICAgIChCVERJVitCVElQMitCVElQMSkgICAgICAgLyogMTAwMG1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMjAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxK0JUSVAwKSAvKiAyMDAwbXMgICAgICIgKi8KKy8qIGZDTEsyPWZNQ0xLICgxTUh6KSBpcyB0aG91Z2h0IGZvciBzaG9ydCBpbnRlcnZhbCB0aW1lcyAqLworLyogdGhlIHRpbWluZyBmb3Igc2hvcnQgaW50ZXJ2YWxzIGlzIG1vcmUgcHJlY2lzZSB0aGFuIEFDTEsgKi8KKy8qIE5PVEUgKi8KKy8qIEJlIHN1cmUgdGhhdCB0aGUgU0NGUUNUTC1SZWdpc3RlciBpcyBzZXQgdG8gMDFGaCBzbyB0aGF0IGZNQ0xLPTFNSHogKi8KKy8qIFRvbyBsb3cgaW50ZXJ2YWwgdGltZSByZXN1bHRzIGluIGludGVycnVwdHMgdG9vIGZyZXF1ZW50IGZvciB0aGUgcHJvY2Vzc29yIHRvIGhhbmRsZSEgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwMiAgICAgICAgICAoQlRTU0VMKSAgICAgICAvKiAwLjAwMm1zIGludGVydmFsICAgICAgICoqKiBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9NRExZXzBfMDA0ICAgICAgICAgIChCVFNTRUwrQlRJUDApIC8qIDAuMDA0bXMgICAgIiAgICAgICAgICAgKioqIHRvbyBzaG9ydCBmb3IgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAwOCAgICAgICAgICAoQlRTU0VMK0JUSVAxKSAvKiAwLjAwOG1zICAgICIgICAgICAgICAgICoqKiBpbnRlcnJ1cHQgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAxNiAgICAgICAoQlRTU0VMK0JUSVAxK0JUSVAwKSAgICAgIC8qIDAuMDE2bXMgICAgIiAgICAgICAgICAgKioqIGhhbmRsaW5nICovCisjZGVmaW5lIEJUX01ETFlfMF8wMzIgICAgICAgICAgKEJUU1NFTCtCVElQMikgLyogMC4wMzJtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8wNjQgICAgICAgKEJUU1NFTCtCVElQMitCVElQMCkgICAgICAvKiAwLjA2NG1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzEyNSAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAxKSAgICAgIC8qIDAuMTI1bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMjUgICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDErQlRJUDApLyogMC4yNW1zICAgICAiICovCisKKy8qIEhvbGQgY29kZWQgd2l0aCBCaXRzIDYtNyBpbiBCVCgxKUNUTCAqLworLyogdGhpcyBpcyBmb3IgQlQgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDEgICAgICAgICAgICAoQlRIT0xEKSAgICAgICAvKiBCVENOVDEgaXMgaGVsZCB3aGlsZSBCVEhPTEQgaXMgc2V0ICovCisjZGVmaW5lIEJUSE9MRF9DTlQxXzIgICAgICAgICAgKEJUSE9MRCtCVERJVikgLyogQlQxQ05UMSAuQU5ELiBCVDFDTlQyIGFyZSBoZWxkIHdoaWxlIH4gaXMgc2V0ICovCisKKy8qIElOVEVSUlVQVCBDT05UUk9MIEJJVFMgKi8KKy8qICNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAweDgwICovCisvKiAjZGVmaW5lIEJUSUZHICAgICAgICAgICAgICAgMHg4MCAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENvbXBhcmF0b3IgQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQ09NUEFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQ0FDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBDb250cm9sIDEgKi8KK1NGUl84QklUKENBQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAyICovCitTRlJfOEJJVChDQVBEKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIFBvcnQgRGlzYWJsZSAqLworCisjZGVmaW5lIENBSUZHICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBJbnRlcnJ1cHQgRmxhZyAqLworI2RlZmluZSBDQUlFICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEVuYWJsZSAqLworI2RlZmluZSBDQUlFUyAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBFZGdlIFNlbGVjdDogMDpyaXNpbmcgLyAxOmZhbGxpbmcgKi8KKyNkZWZpbmUgQ0FPTiAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIGVuYWJsZSAqLworI2RlZmluZSBDQVJFRjAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAwICovCisjZGVmaW5lIENBUkVGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgU2VsZWN0IDEgKi8KKyNkZWZpbmUgQ0FSU0VMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBFbmFibGUgKi8KKyNkZWZpbmUgQ0FFWCAgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIEV4Y2hhbmdlIElucHV0cyAqLworCisjZGVmaW5lIENBUkVGXzAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDAgOiBPZmYgKi8KKyNkZWZpbmUgQ0FSRUZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludC4gUmVmLiBTZWxlY3QgMSA6IDAuMjUqVmNjICovCisjZGVmaW5lIENBUkVGXzIgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDIgOiAwLjUqVmNjICovCisjZGVmaW5lIENBUkVGXzMgICAgICAgICAgICAgICAgKDB4MzApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDMgOiBWdCovCisKKyNkZWZpbmUgQ0FPVVQgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIE91dHB1dCAqLworI2RlZmluZSBDQUYgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRW5hYmxlIE91dHB1dCBGaWx0ZXIgKi8KKyNkZWZpbmUgUDJDQTAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIENvbm5lY3QgRXh0ZXJuYWwgU2lnbmFsIHRvIENBMCA6IDEgKi8KKyNkZWZpbmUgUDJDQTEgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIENvbm5lY3QgRXh0ZXJuYWwgU2lnbmFsIHRvIENBMSA6IDEgKi8KKyNkZWZpbmUgQ0FDVEwyNCAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgQ0FDVEwyNSAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgQ0FDVEwyNiAgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgQ0FDVEwyNyAgICAgICAgICAgICAgICAoMHg4MCkKKworI2RlZmluZSBDQVBEMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMCAqLworI2RlZmluZSBDQVBEMSAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMSAqLworI2RlZmluZSBDQVBEMiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMiAqLworI2RlZmluZSBDQVBEMyAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuMyAqLworI2RlZmluZSBDQVBENCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNCAqLworI2RlZmluZSBDQVBENSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNSAqLworI2RlZmluZSBDQVBENiAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNiAqLworI2RlZmluZSBDQVBENyAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIENvbXAuIEEgRGlzYWJsZSBJbnB1dCBCdWZmZXIgb2YgUG9ydCBSZWdpc3RlciAuNyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERBQzEyCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19EQUMxMl8yX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoREFDMTJfMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMCBDb250cm9sICovCitTRlJfMTZCSVQoREFDMTJfMUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMSBDb250cm9sICovCisKKyNkZWZpbmUgREFDMTJHUlAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBEQUMxMiBncm91cCAqLworI2RlZmluZSBEQUMxMkVOQyAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERBQzEyIGVuYWJsZSBjb252ZXJzaW9uICovCisjZGVmaW5lIERBQzEySUZHICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogREFDMTIgaW50ZXJydXB0IGZsYWcgKi8KKyNkZWZpbmUgREFDMTJJRSAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBEQUMxMiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIERBQzEyREYgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogREFDMTIgZGF0YSBmb3JtYXQgKi8KKyNkZWZpbmUgREFDMTJBTVAwICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJBTVAxICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDEgKi8KKyNkZWZpbmUgREFDMTJBTVAyICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBEQUMxMiBhbXBsaWZpZXIgYml0IDIgKi8KKyNkZWZpbmUgREFDMTJJUiAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBEQUMxMiBpbnB1dCByZWZlcmVuY2UgYW5kIG91dHB1dCByYW5nZSAqLworI2RlZmluZSBEQUMxMkNBTE9OICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIERBQzEyIGNhbGlicmF0aW9uICovCisjZGVmaW5lIERBQzEyTFNFTDAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJMU0VMMSAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBEQUMxMlJFUyAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIERBQzEyIHJlc29sdXRpb24gKi8KKyNkZWZpbmUgREFDMTJTUkVGMCAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBEQUMxMiByZWZlcmVuY2UgYml0IDAgKi8KKyNkZWZpbmUgREFDMTJTUkVGMSAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBEQUMxMiByZWZlcmVuY2UgYml0IDEgKi8KKyNkZWZpbmUgREFDMTJPUFMgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBEQUMxMiBPcGVyYXRpb24gQW1wLiAqLworCisjZGVmaW5lIERBQzEyQU1QXzAgICAgICAgICAgICAgKDAqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDA6IG9mZiwgICAgMy1zdGF0ZSAqLworI2RlZmluZSBEQUMxMkFNUF8xICAgICAgICAgICAgICgxKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAxOiBvZmYsICAgIG9mZiAqLworI2RlZmluZSBEQUMxMkFNUF8yICAgICAgICAgICAgICgyKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAyOiBsb3csICAgIGxvdyAqLworI2RlZmluZSBEQUMxMkFNUF8zICAgICAgICAgICAgICgzKjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciAzOiBsb3csICAgIG1lZGl1bSAqLworI2RlZmluZSBEQUMxMkFNUF80ICAgICAgICAgICAgICg0KjB4MDAyMHUpICAgIC8qIERBQzEyIGFtcGxpZmllciA0OiBsb3csICAgIGhpZ2ggKi8KKyNkZWZpbmUgREFDMTJBTVBfNSAgICAgICAgICAgICAoNSoweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNTogbWVkaXVtLCBtZWRpdW0gKi8KKyNkZWZpbmUgREFDMTJBTVBfNiAgICAgICAgICAgICAoNioweDAwMjB1KSAgICAvKiBEQUMxMiBhbXBsaWZpZXIgNjogbWVkaXVtLCBoaWdoICovCisjZGVmaW5lIERBQzEyQU1QXzcgICAgICAgICAgICAgKDcqMHgwMDIwdSkgICAgLyogREFDMTIgYW1wbGlmaWVyIDc6IGhpZ2gsICAgaGlnaCAqLworCisjZGVmaW5lIERBQzEyTFNFTF8wICAgICAgICAgICAgKDAqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMDogZGlyZWN0ICovCisjZGVmaW5lIERBQzEyTFNFTF8xICAgICAgICAgICAgKDEqMHgwNDAwdSkgICAgLyogREFDMTIgbG9hZCBzZWxlY3QgMTogbGF0Y2hlZCB3aXRoIERBVCAqLworI2RlZmluZSBEQUMxMkxTRUxfMiAgICAgICAgICAgICgyKjB4MDQwMHUpICAgIC8qIERBQzEyIGxvYWQgc2VsZWN0IDI6IGxhdGNoZWQgd2l0aCBwb3MuIFRpbWVyX0EzLk9VVDEgKi8KKyNkZWZpbmUgREFDMTJMU0VMXzMgICAgICAgICAgICAoMyoweDA0MDB1KSAgICAvKiBEQUMxMiBsb2FkIHNlbGVjdCAzOiBsYXRjaGVkIHdpdGggcG9zLiBUaW1lcl9CNy5PVVQxICovCisKKyNkZWZpbmUgREFDMTJTUkVGXzAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMDogVnJlZisgKi8KKyNkZWZpbmUgREFDMTJTUkVGXzEgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMTogVnJlZisgKi8KKyNkZWZpbmUgREFDMTJTUkVGXzIgICAgICAgICAgICAoMioweDIwMDB1KSAgICAvKiBEQUMxMiByZWZlcmVuY2UgMjogVmVyZWYrICovCisjZGVmaW5lIERBQzEyU1JFRl8zICAgICAgICAgICAgKDMqMHgyMDAwdSkgICAgLyogREFDMTIgcmVmZXJlbmNlIDM6IFZlcmVmKyAqLworCitTRlJfMTZCSVQoREFDMTJfMERBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMCBEYXRhICovCitTRlJfMTZCSVQoREFDMTJfMURBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgLyogREFDMTJfMSBEYXRhICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERNQV9YCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19ETUFYXzNfXyAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoRE1BQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIE1vZHVsZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgRE1BMFRTRUwwICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMCAqLworI2RlZmluZSBETUEwVFNFTDEgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IGJpdCAxICovCisjZGVmaW5lIERNQTBUU0VMMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgYml0IDIgKi8KKyNkZWZpbmUgRE1BMFRTRUwzICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCBiaXQgMyAqLworI2RlZmluZSBETUExVFNFTDAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IGJpdCAwICovCisjZGVmaW5lIERNQTFUU0VMMSAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgYml0IDEgKi8KKyNkZWZpbmUgRE1BMVRTRUwyICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCBiaXQgMiAqLworI2RlZmluZSBETUExVFNFTDMgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IGJpdCAzICovCisjZGVmaW5lIERNQTJUU0VMMCAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDAgKi8KKyNkZWZpbmUgRE1BMlRTRUwxICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCBiaXQgMSAqLworI2RlZmluZSBETUEyVFNFTDIgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IGJpdCAyICovCisjZGVmaW5lIERNQTJUU0VMMyAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgYml0IDMgKi8KKworI2RlZmluZSBETUEwVFNFTF8wICAgICAgICAgICAgICgwKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDA6ICBETUFfUkVRIChzdykqLworI2RlZmluZSBETUEwVFNFTF8xICAgICAgICAgICAgICgxKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcl9BIChUQUNDUjIuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF8yICAgICAgICAgICAgICgyKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDI6ICBUaW1lcl9CIChUQkNDUjIuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF8zICAgICAgICAgICAgICgzKjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDM6ICBVU0NJQSByZWNlaXZlICovCisjZGVmaW5lIERNQTBUU0VMXzQgICAgICAgICAgICAgKDQqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgNDogIFVTQ0lBIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTBUU0VMXzUgICAgICAgICAgICAgKDUqMHgwMDAxdSkgICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgNTogIERBQzEyXzBDVEwuREFDMTJJRkcgKi8KKyNkZWZpbmUgRE1BMFRTRUxfNiAgICAgICAgICAgICAoNioweDAwMDF1KSAgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCA2OiAgQURDMTIgKEFEQzEySUZHKSAqLworI2RlZmluZSBETUEwVFNFTF83ICAgICAgICAgICAgICg3KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDc6ICBUaW1lcl9BIChUQUNDUjAuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF84ICAgICAgICAgICAgICg4KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDg6ICBUaW1lcl9CIChUQkNDUjAuSUZHKSAqLworI2RlZmluZSBETUEwVFNFTF85ICAgICAgICAgICAgICg5KjB4MDAwMXUpICAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDk6ICBVQVJUMSByZWNlaXZlICovCisjZGVmaW5lIERNQTBUU0VMXzEwICAgICAgICAgICAgKDEwKjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTA6IFVBUlQxIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTBUU0VMXzExICAgICAgICAgICAgKDExKjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTE6IE11bHRpcGxpZXIgcmVhZHkgKi8KKyNkZWZpbmUgRE1BMFRTRUxfMTIgICAgICAgICAgICAoMTIqMHgwMDAxdSkgICAvKiBETUEgY2hhbm5lbCAwIHRyYW5zZmVyIHNlbGVjdCAxMjogVVNDSUIgcmVjZWl2ZSAqLworI2RlZmluZSBETUEwVFNFTF8xMyAgICAgICAgICAgICgxMyoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDEzOiBVU0NJQiB0cmFuc21pdCAqLworI2RlZmluZSBETUEwVFNFTF8xNCAgICAgICAgICAgICgxNCoweDAwMDF1KSAgIC8qIERNQSBjaGFubmVsIDAgdHJhbnNmZXIgc2VsZWN0IDE0OiBwcmV2aW91cyBETUEgY2hhbm5lbCBETUEySUZHICovCisjZGVmaW5lIERNQTBUU0VMXzE1ICAgICAgICAgICAgKDE1KjB4MDAwMXUpICAgLyogRE1BIGNoYW5uZWwgMCB0cmFuc2ZlciBzZWxlY3QgMTU6IGV4dC4gVHJpZ2dlciAoRE1BRTApICovCisKKyNkZWZpbmUgRE1BMVRTRUxfMCAgICAgICAgICAgICAoMCoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAwOiAgRE1BX1JFUSAqLworI2RlZmluZSBETUExVFNFTF8xICAgICAgICAgICAgICgxKjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE6ICBUaW1lcl9BIENDUklGRy4yICovCisjZGVmaW5lIERNQTFUU0VMXzIgICAgICAgICAgICAgKDIqMHgwMDEwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMjogIFRpbWVyX0IgQ0NSSUZHLjIgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMyAgICAgICAgICAgICAoMyoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAzOiAgVVNDSUEgcmVjZWl2ZSAqLworI2RlZmluZSBETUExVFNFTF80ICAgICAgICAgICAgICg0KjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDQ6ICBVU0NJQSB0cmFuc21pdCAqLworI2RlZmluZSBETUExVFNFTF81ICAgICAgICAgICAgICg1KjB4MDAxMHUpICAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDU6ICBEQUMxMi4wSUZHICovCisjZGVmaW5lIERNQTFUU0VMXzYgICAgICAgICAgICAgKDYqMHgwMDEwdSkgICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgNjogIEFEQzEyIChBREMxMklGRykgKi8KKyNkZWZpbmUgRE1BMVRTRUxfNyAgICAgICAgICAgICAoNyoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCA3OiAgVGltZXJfQSAoVEFDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMVRTRUxfOCAgICAgICAgICAgICAoOCoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCA4OiAgVGltZXJfQiAoVEJDQ1IwLklGRykgKi8KKyNkZWZpbmUgRE1BMVRTRUxfOSAgICAgICAgICAgICAoOSoweDAwMTB1KSAgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCA5OiAgVUFSVDEgcmVjZWl2ZSAqLworI2RlZmluZSBETUExVFNFTF8xMCAgICAgICAgICAgICgxMCoweDAwMTB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDEwOiBVQVJUMSB0cmFuc21pdCAqLworI2RlZmluZSBETUExVFNFTF8xMSAgICAgICAgICAgICgxMSoweDAwMTB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDExOiBNdWx0aXBsaWVyIHJlYWR5ICovCisjZGVmaW5lIERNQTFUU0VMXzEyICAgICAgICAgICAgKDEyKjB4MDAxMHUpICAgLyogRE1BIGNoYW5uZWwgMSB0cmFuc2ZlciBzZWxlY3QgMTI6IFVTQ0lCIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMTMgICAgICAgICAgICAoMTMqMHgwMDEwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAxMzogVVNDSUIgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMVRTRUxfMTQgICAgICAgICAgICAoMTQqMHgwMDEwdSkgICAvKiBETUEgY2hhbm5lbCAxIHRyYW5zZmVyIHNlbGVjdCAxNDogcHJldmlvdXMgRE1BIGNoYW5uZWwgRE1BMElGRyAqLworI2RlZmluZSBETUExVFNFTF8xNSAgICAgICAgICAgICgxNSoweDAwMTB1KSAgIC8qIERNQSBjaGFubmVsIDEgdHJhbnNmZXIgc2VsZWN0IDE1OiBleHQuIFRyaWdnZXIgKERNQUUwKSAqLworCisjZGVmaW5lIERNQTJUU0VMXzAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMDogIERNQV9SRVEgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMSAgICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxOiAgVGltZXJfQSBDQ1JJRkcuMiAqLworI2RlZmluZSBETUEyVFNFTF8yICAgICAgICAgICAgICgyKjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDI6ICBUaW1lcl9CIENDUklGRy4yICovCisjZGVmaW5lIERNQTJUU0VMXzMgICAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMzogIFVTQ0lBIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMlRTRUxfNCAgICAgICAgICAgICAoNCoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA0OiAgVVNDSUEgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMlRTRUxfNSAgICAgICAgICAgICAoNSoweDAxMDB1KSAgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCA1OiAgREFDMTIuMElGRyAqLworI2RlZmluZSBETUEyVFNFTF82ICAgICAgICAgICAgICg2KjB4MDEwMHUpICAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDY6ICBBREMxMiAoQURDMTJJRkcpICovCisjZGVmaW5lIERNQTJUU0VMXzcgICAgICAgICAgICAgKDcqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgNzogIFRpbWVyX0EgKFRBQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTJUU0VMXzggICAgICAgICAgICAgKDgqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgODogIFRpbWVyX0IgKFRCQ0NSMC5JRkcpICovCisjZGVmaW5lIERNQTJUU0VMXzkgICAgICAgICAgICAgKDkqMHgwMTAwdSkgICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgOTogIFVBUlQxIHJlY2VpdmUgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTAgICAgICAgICAgICAoMTAqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxMDogVUFSVDEgdHJhbnNtaXQgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTEgICAgICAgICAgICAoMTEqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxMTogTXVsdGlwbGllciByZWFkeSAqLworI2RlZmluZSBETUEyVFNFTF8xMiAgICAgICAgICAgICgxMioweDAxMDB1KSAgIC8qIERNQSBjaGFubmVsIDIgdHJhbnNmZXIgc2VsZWN0IDEyOiBVU0NJQiByZWNlaXZlICovCisjZGVmaW5lIERNQTJUU0VMXzEzICAgICAgICAgICAgKDEzKjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMTM6IFVTQ0lCIHRyYW5zbWl0ICovCisjZGVmaW5lIERNQTJUU0VMXzE0ICAgICAgICAgICAgKDE0KjB4MDEwMHUpICAgLyogRE1BIGNoYW5uZWwgMiB0cmFuc2ZlciBzZWxlY3QgMTQ6IHByZXZpb3VzIERNQSBjaGFubmVsIERNQTFJRkcgKi8KKyNkZWZpbmUgRE1BMlRTRUxfMTUgICAgICAgICAgICAoMTUqMHgwMTAwdSkgICAvKiBETUEgY2hhbm5lbCAyIHRyYW5zZmVyIHNlbGVjdCAxNTogZXh0LiBUcmlnZ2VyIChETUFFMCkgKi8KKworU0ZSXzE2QklUKERNQUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBNb2R1bGUgQ29udHJvbCAxICovCisjZGVmaW5lIEVOTk1JICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRW5hYmxlIE5NSSBpbnRlcnJ1cHRpb24gb2YgRE1BICovCisjZGVmaW5lIFJPVU5EUk9CSU4gICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogUm91bmQtUm9iaW4gRE1BIGNoYW5uZWwgcHJpb3JpdGllcyAqLworI2RlZmluZSBETUFPTkZFVENIICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQSB0cmFuc2ZlciBvbiBpbnN0cnVjdGlvbiBmZXRjaCAqLworCitTRlJfMTZCSVQoRE1BSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKERNQTBDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgQ29udHJvbCAqLworU0ZSXzE2QklUKERNQTFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgQ29udHJvbCAqLworU0ZSXzE2QklUKERNQTJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgQ29udHJvbCAqLworCisjZGVmaW5lIERNQVJFUSAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSW5pdGlhdGUgRE1BIHRyYW5zZmVyIHdpdGggRE1BVFNFTCAqLworI2RlZmluZSBETUFBQk9SVCAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIERNQSB0cmFuc2ZlciBhYm9ydGVkIGJ5IE5NSSAqLworI2RlZmluZSBETUFJRSAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIERNQUlGRyAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRE1BIGludGVycnVwdCBmbGFnICovCisjZGVmaW5lIERNQUVOICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogRE1BIGVuYWJsZSAqLworI2RlZmluZSBETUFMRVZFTCAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIERNQSBsZXZlbCBzZW5zaXRpdmUgdHJpZ2dlciBzZWxlY3QgKi8KKyNkZWZpbmUgRE1BU1JDQllURSAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBETUEgc291cmNlIGJ5dGUgKi8KKyNkZWZpbmUgRE1BRFNUQllURSAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBETUEgZGVzdGluYXRpb24gYnl0ZSAqLworI2RlZmluZSBETUFTUkNJTkNSMCAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IGJpdCAwICovCisjZGVmaW5lIERNQVNSQ0lOQ1IxICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogRE1BIHNvdXJjZSBpbmNyZW1lbnQgYml0IDEgKi8KKyNkZWZpbmUgRE1BRFNUSU5DUjAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IGJpdCAwICovCisjZGVmaW5lIERNQURTVElOQ1IxICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCBiaXQgMSAqLworI2RlZmluZSBETUFEVDAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIGJpdCAwICovCisjZGVmaW5lIERNQURUMSAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgYml0IDEgKi8KKyNkZWZpbmUgRE1BRFQyICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSBiaXQgMiAqLworCisjZGVmaW5lIERNQVNXRFcgICAgICAgICAgICAgICAgKDAqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2Ugd29yZCB0byBkZXN0aW5hdGlvbiB3b3JkICovCisjZGVmaW5lIERNQVNCRFcgICAgICAgICAgICAgICAgKDEqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2UgYnl0ZSB0byBkZXN0aW5hdGlvbiB3b3JkICovCisjZGVmaW5lIERNQVNXREIgICAgICAgICAgICAgICAgKDIqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2Ugd29yZCB0byBkZXN0aW5hdGlvbiBieXRlICovCisjZGVmaW5lIERNQVNCREIgICAgICAgICAgICAgICAgKDMqMHgwMDQwdSkgICAgLyogRE1BIHRyYW5zZmVyOiBzb3VyY2UgYnl0ZSB0byBkZXN0aW5hdGlvbiBieXRlICovCisKKyNkZWZpbmUgRE1BU1JDSU5DUl8wICAgICAgICAgICAoMCoweDAxMDB1KSAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCAwOiBzb3VyY2UgYWRkcmVzcyB1bmNoYW5nZWQgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUl8xICAgICAgICAgICAoMSoweDAxMDB1KSAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCAxOiBzb3VyY2UgYWRkcmVzcyB1bmNoYW5nZWQgKi8KKyNkZWZpbmUgRE1BU1JDSU5DUl8yICAgICAgICAgICAoMioweDAxMDB1KSAgICAvKiBETUEgc291cmNlIGluY3JlbWVudCAyOiBzb3VyY2UgYWRkcmVzcyBkZWNyZW1lbnRlZCAqLworI2RlZmluZSBETUFTUkNJTkNSXzMgICAgICAgICAgICgzKjB4MDEwMHUpICAgIC8qIERNQSBzb3VyY2UgaW5jcmVtZW50IDM6IHNvdXJjZSBhZGRyZXNzIGluY3JlbWVudGVkICovCisKKyNkZWZpbmUgRE1BRFNUSU5DUl8wICAgICAgICAgICAoMCoweDA0MDB1KSAgICAvKiBETUEgZGVzdGluYXRpb24gaW5jcmVtZW50IDA6IGRlc3RpbmF0aW9uIGFkZHJlc3MgdW5jaGFuZ2VkICovCisjZGVmaW5lIERNQURTVElOQ1JfMSAgICAgICAgICAgKDEqMHgwNDAwdSkgICAgLyogRE1BIGRlc3RpbmF0aW9uIGluY3JlbWVudCAxOiBkZXN0aW5hdGlvbiBhZGRyZXNzIHVuY2hhbmdlZCAqLworI2RlZmluZSBETUFEU1RJTkNSXzIgICAgICAgICAgICgyKjB4MDQwMHUpICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgMjogZGVzdGluYXRpb24gYWRkcmVzcyBkZWNyZW1lbnRlZCAqLworI2RlZmluZSBETUFEU1RJTkNSXzMgICAgICAgICAgICgzKjB4MDQwMHUpICAgIC8qIERNQSBkZXN0aW5hdGlvbiBpbmNyZW1lbnQgMzogZGVzdGluYXRpb24gYWRkcmVzcyBpbmNyZW1lbnRlZCAqLworCisjZGVmaW5lIERNQURUXzAgICAgICAgICAgICAgICAgKDAqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgMDogc2luZ2xlICovCisjZGVmaW5lIERNQURUXzEgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgMTogYmxvY2sgKi8KKyNkZWZpbmUgRE1BRFRfMiAgICAgICAgICAgICAgICAoMioweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSAyOiBpbnRlcmxlYXZlZCAqLworI2RlZmluZSBETUFEVF8zICAgICAgICAgICAgICAgICgzKjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDM6IGludGVybGVhdmVkICovCisjZGVmaW5lIERNQURUXzQgICAgICAgICAgICAgICAgKDQqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgNDogc2luZ2xlLCByZXBlYXQgKi8KKyNkZWZpbmUgRE1BRFRfNSAgICAgICAgICAgICAgICAoNSoweDEwMDB1KSAgICAvKiBETUEgdHJhbnNmZXIgbW9kZSA1OiBibG9jaywgcmVwZWF0ICovCisjZGVmaW5lIERNQURUXzYgICAgICAgICAgICAgICAgKDYqMHgxMDAwdSkgICAgLyogRE1BIHRyYW5zZmVyIG1vZGUgNjogaW50ZXJsZWF2ZWQsIHJlcGVhdCAqLworI2RlZmluZSBETUFEVF83ICAgICAgICAgICAgICAgICg3KjB4MTAwMHUpICAgIC8qIERNQSB0cmFuc2ZlciBtb2RlIDc6IGludGVybGVhdmVkLCByZXBlYXQgKi8KKworU0ZSXzIwQklUKERNQTBTQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDAgU291cmNlIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUEwU0FMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAwIFNvdXJjZSBBZGRyZXNzICovCitTRlJfMjBCSVQoRE1BMERBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMCBEZXN0aW5hdGlvbiBBZGRyZXNzICovCitTRlJfMTZCSVQoRE1BMERBTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMCBEZXN0aW5hdGlvbiBBZGRyZXNzICovCitTRlJfMTZCSVQoRE1BMFNaKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMCBUcmFuc2ZlciBTaXplICovCitTRlJfMjBCSVQoRE1BMVNBKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMSBTb3VyY2UgQWRkcmVzcyAqLworU0ZSXzE2QklUKERNQTFTQUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDEgU291cmNlIEFkZHJlc3MgKi8KK1NGUl8yMEJJVChETUExREEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUExREFMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIERlc3RpbmF0aW9uIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChETUExU1opOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAxIFRyYW5zZmVyIFNpemUgKi8KK1NGUl8yMEJJVChETUEyU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBETUEgQ2hhbm5lbCAyIFNvdXJjZSBBZGRyZXNzICovCitTRlJfMTZCSVQoRE1BMlNBTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRE1BIENoYW5uZWwgMiBTb3VyY2UgQWRkcmVzcyAqLworU0ZSXzIwQklUKERNQTJEQSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgRGVzdGluYXRpb24gQWRkcmVzcyAqLworU0ZSXzE2QklUKERNQTJEQUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgRGVzdGluYXRpb24gQWRkcmVzcyAqLworU0ZSXzE2QklUKERNQTJTWik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIERNQSBDaGFubmVsIDIgVHJhbnNmZXIgU2l6ZSAqLworCisvKiBETUFJViBEZWZpbml0aW9ucyAqLworI2RlZmluZSBETUFJVl9OT05FICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIE5vIEludGVycnVwdCBwZW5kaW5nICovCisjZGVmaW5lIERNQUlWX0RNQTBJRkcgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogRE1BMElGRyAqLworI2RlZmluZSBETUFJVl9ETUExSUZHICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIERNQTFJRkcgKi8KKyNkZWZpbmUgRE1BSVZfRE1BMklGRyAgICAgICAgICAoMHgwMDA2KSAgICAgICAvKiBETUEySUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU18yRkxBU0hfSVBfXyAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIEdNRVJBUyAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggZ2xvYmFsIG1hc3MgZXJhc2UgKi8KKyNkZWZpbmUgQ1BVRVggICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBDUFUgRXhlY3V0aW9uIGR1cmluZyBGbGFzaCB3cml0ZS9lcmFzZSAqLworI2RlZmluZSBXUlQgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHdyaXRlICovCisjZGVmaW5lIEJMS1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBTRUdXUlQgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIG9sZCBkZWZpbml0aW9uICovIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgd3JpdGUgKi8KKworI2RlZmluZSBGTjAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIERpdmlkZSBGbGFzaCBjbG9jayBieSAxIHRvIDY0IHVzaW5nIEZOMCB0byBGTjUgYWNjb3JkaW5nIHRvOiAqLworI2RlZmluZSBGTjEgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qICAzMipGTjUgKyAxNipGTjQgKyA4KkZOMyArIDQqRk4yICsgMipGTjEgKyBGTjAgKyAxICovCisjaWZuZGVmIEZOMgorI2RlZmluZSBGTjIgICAgICAgICAgICAgICAgICAgICgweDAwMDQpCisjZW5kaWYKKyNpZm5kZWYgRk4zCisjZGVmaW5lIEZOMyAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNlbmRpZgorI2lmbmRlZiBGTjQKKyNkZWZpbmUgRk40ICAgICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2VuZGlmCisjZGVmaW5lIEZONSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgRlNTRUwwICAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3QgMCAqLyAgICAgICAgLyogdG8gZGlzdGluZ3Vpc2ggZnJvbSBVU0FSVCBTU0VMeCAqLworI2RlZmluZSBGU1NFTDEgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAxICovCisKKyNkZWZpbmUgRlNTRUxfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDAgLSBBQ0xLICovCisjZGVmaW5lIEZTU0VMXzEgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAxIC0gTUNMSyAqLworI2RlZmluZSBGU1NFTF8yICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIEZTU0VMXzMgICAgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAzIC0gU01DTEsgKi8KKworI2RlZmluZSBCVVNZICAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEZsYXNoIGJ1c3k6IDEgKi8KKyNkZWZpbmUgS0VZViAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBGbGFzaCBLZXkgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgQUNDVklGRyAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBGbGFzaCBBY2Nlc3MgdmlvbGF0aW9uIGZsYWcgKi8KKyNkZWZpbmUgV0FJVCAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBXYWl0IGZsYWcgZm9yIHNlZ21lbnQgd3JpdGUgKi8KKyNkZWZpbmUgTE9DSyAgICAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBMb2NrIGJpdDogMSAtIEZsYXNoIGlzIGxvY2tlZCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBFTUVYICAgICAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIEZsYXNoIEVtZXJnZW5jeSBFeGl0ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1lTVEVNIENMT0NLLCBGTEwrCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19GTExQTFVTX18gICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTQ0ZJMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDAgKi8KKyNkZWZpbmUgRk5fMiAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBmRENPQ0xLID0gICAxLjQtMTJNSHoqLworI2RlZmluZSBGTl8zICAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDIuMi0xN01oeiovCisjZGVmaW5lIEZOXzQgICAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogZkRDT0NMSyA9ICAgMy4yLTI1TWh6Ki8KKyNkZWZpbmUgRk5fOCAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBmRENPQ0xLID0gICAgIDUtNDBNaHoqLworI2RlZmluZSBGTExEMCAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAwICovCisjZGVmaW5lIEZMTEQxICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogTG9vcCBEaXZpZGVyIEJpdCA6IDEgKi8KKworI2RlZmluZSBGTExEXzEgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMSAqLworI2RlZmluZSBGTExEXzIgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgMiAqLworI2RlZmluZSBGTExEXzQgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgNCAqLworI2RlZmluZSBGTExEXzggICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE11bHRpcGx5IFNlbGVjdGVkIExvb3AgRnJlcS4gQnkgOCAqLworCitTRlJfOEJJVChTQ0ZJMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBJbnRlZ3JhdG9yIDEgKi8KK1NGUl84QklUKFNDRlFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTeXN0ZW0gQ2xvY2sgRnJlcXVlbmN5IENvbnRyb2wgKi8KKy8qIFN5c3RlbSBjbG9jayBmcmVxdWVuY3kgdmFsdWVzIGZNQ0xLIGNvZGVkIHdpdGggQml0cyAwLTYgaW4gU0NGUUNUTCAqLworLyogI2RlZmluZSBTQ0ZRXzMySyAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICBmTUNMSz0xKmZBQ0xLICAgICAgIG9ubHkgYSByYW5nZSBmcm9tICovCisjZGVmaW5lIFNDRlFfNjRLICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogZk1DTEs9MipmQUNMSyAgICAgICAgICAxKzEgdG8gMTI3KzEgaXMgcG9zc2libGUgKi8KKyNkZWZpbmUgU0NGUV8xMjhLICAgICAgICAgICAgICAoMHgwMykgICAgICAgICAvKiBmTUNMSz00KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMjU2SyAgICAgICAgICAgICAgKDB4MDcpICAgICAgICAgLyogZk1DTEs9OCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzUxMksgICAgICAgICAgICAgICgweDBGKSAgICAgICAgIC8qIGZNQ0xLPTE2KmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMU0gICAgICAgICAgICAgICAgKDB4MUYpICAgICAgICAgLyogZk1DTEs9MzIqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV8yTSAgICAgICAgICAgICAgICAoMHgzRikgICAgICAgICAvKiBmTUNMSz02NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzRNICAgICAgICAgICAgICAgICgweDdGKSAgICAgICAgIC8qIGZNQ0xLPTEyOCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRX00gICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE1vZHVsYXRpb24gRGlzYWJsZSAqLworCitTRlJfOEJJVChGTExfQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRkxMKyBDb250cm9sIDAgKi8KKyNkZWZpbmUgRENPRiAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBEQ08gRmF1bHQgRmxhZyAqLworI2RlZmluZSBMRk9GICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIExvdyBGcmVxdWVuY3kgT3NjaWxsYXRvciBGYXVsdCBGbGFnICovCisjZGVmaW5lIFhUMU9GICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogSGlnaCBGcmVxdWVuY3kgT3NjaWxsYXRvciAxIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgWFQyT0YgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBIaWdoIEZyZXF1ZW5jeSBPc2NpbGxhdG9yIDIgRmF1bHQgRmxhZyAqLworI2RlZmluZSBPU0NDQVAwICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIE9TQ0NBUDEgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgWFRTX0ZMTCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxOiBTZWxlY3RzIGhpZ2gtZnJlcS4gb3NjaWxsYXRvciAqLworI2RlZmluZSBEQ09QTFVTICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTysgRW5hYmxlICovCisKKyNkZWZpbmUgWENBUDBQRiAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgWENBUDEwUEYgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIFhDQVAxNFBGICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBYQ0FQMThQRiAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzEgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIE9TQ0NBUF8yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBPU0NDQVBfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAxICovCisjZGVmaW5lIEZMTF9ESVYwICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIDAgKi8KKyNkZWZpbmUgRkxMX0RJVjEgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMSAqLworI2RlZmluZSBTRUxTICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFBlcmlwaGVyYWwgTW9kdWxlIENsb2NrIFNvdXJjZSAoMDogRENPLCAxOiBYVDIpICovCisjZGVmaW5lIFNFTE0wICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTUNMSyBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0VMTTEgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBNQ0xLIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBYVDJPRkYgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgMiAoWFQyKSBkaXNhYmxlICovCisjZGVmaW5lIFNNQ0xLT0ZGICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGVyaXBoZXJhbCBNb2R1bGUgQ2xvY2sgKFNNQ0xLKSBkaXNhYmxlICovCisKKyNkZWZpbmUgRkxMX0RJVl8xICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMSAqLworI2RlZmluZSBGTExfRElWXzIgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSAyICovCisjZGVmaW5lIEZMTF9ESVZfNCAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDQgKi8KKyNkZWZpbmUgRkxMX0RJVl84ICAgICAgICAgICAgICAoMHgwMykgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgOCAqLworCisjZGVmaW5lIFNFTE1fRENPICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU2VsZWN0IERDTyBmb3IgQ1BVIE1DTEsgKi8KKyNkZWZpbmUgU0VMTV9YVDIgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBTZWxlY3QgWFQyIGZvciBDUFUgTUNMSyAqLworI2RlZmluZSBTRUxNX0EgICAgICAgICAgICAgICAgICgweDE4KSAgICAgICAgIC8qIFNlbGVjdCBBIChmcm9tIExGWFQxKSBmb3IgQ1BVIE1DTEsgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgMHgwMiAqLworLyogI2RlZmluZSBPRklFICAgICAgICAgICAgICAgIDB4MDIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBMQ0RfQQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTENEX0FfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoTENEQUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRF9BIENvbnRyb2wgUmVnaXN0ZXIgKi8KKyNkZWZpbmUgTENET04gICAgICAgICAgICAgICAgICAoMHgwMSkKKyNkZWZpbmUgTENEU09OICAgICAgICAgICAgICAgICAoMHgwNCkKKyNkZWZpbmUgTENETVgwICAgICAgICAgICAgICAgICAoMHgwOCkKKyNkZWZpbmUgTENETVgxICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgTENERlJFUTAgICAgICAgICAgICAgICAoMHgyMCkKKyNkZWZpbmUgTENERlJFUTEgICAgICAgICAgICAgICAoMHg0MCkKKyNkZWZpbmUgTENERlJFUTIgICAgICAgICAgICAgICAoMHg4MCkKKy8qIERpc3BsYXkgbW9kZXMgY29kZWQgd2l0aCBCaXRzIDItNCAqLworI2RlZmluZSBMQ0RTVEFUSUMgICAgICAgICAgICAgIChMQ0RTT04pCisjZGVmaW5lIExDRDJNVVggICAgICAgICAgICAgICAgKExDRE1YMCtMQ0RTT04pCisjZGVmaW5lIExDRDNNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RTT04pCisjZGVmaW5lIExDRDRNVVggICAgICAgICAgICAgICAgKExDRE1YMStMQ0RNWDArTENEU09OKQorLyogRnJlcXVlbmN5IHNlbGVjdCBjb2RlIHdpdGggQml0cyA1LTcgKi8KKyNkZWZpbmUgTENERlJFUV8zMiAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDMyICovCisjZGVmaW5lIExDREZSRVFfNjQgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSA2NCAqLworI2RlZmluZSBMQ0RGUkVRXzk2ICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgOTYgKi8KKyNkZWZpbmUgTENERlJFUV8xMjggICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDEyOCAqLworI2RlZmluZSBMQ0RGUkVRXzE5MiAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgMTkyICovCisjZGVmaW5lIExDREZSRVFfMjU2ICAgICAgICAgICAgKDB4QTApICAgICAgICAgLyogTENEIEZyZXE6IEFDTEsgZGl2aWRlZCBieSAyNTYgKi8KKyNkZWZpbmUgTENERlJFUV8zODQgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBMQ0QgRnJlcTogQUNMSyBkaXZpZGVkIGJ5IDM4NCAqLworI2RlZmluZSBMQ0RGUkVRXzUxMiAgICAgICAgICAgICgweEUwKSAgICAgICAgIC8qIExDRCBGcmVxOiBBQ0xLIGRpdmlkZWQgYnkgNTEyICovCisKK1NGUl84QklUKExDREFQQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBQb3J0IENvbnRyb2wgUmVnaXN0ZXIgMCAqLworI2RlZmluZSBMQ0RTMCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIExDRCBTZWdtZW50ICAwIHRvICAzIEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzQgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMQ0QgU2VnbWVudCAgNCB0byAgNyBFbmFibGUuICovCisjZGVmaW5lIExDRFM4ICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogTENEIFNlZ21lbnQgIDggdG8gMTEgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMTIgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIExDRCBTZWdtZW50IDEyIHRvIDE1IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzE2ICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBMQ0QgU2VnbWVudCAxNiB0byAxOSBFbmFibGUuICovCisjZGVmaW5lIExDRFMyMCAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTENEIFNlZ21lbnQgMjAgdG8gMjMgRW5hYmxlLiAqLworI2RlZmluZSBMQ0RTMjQgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDI0IHRvIDI3IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzI4ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBMQ0QgU2VnbWVudCAyOCB0byAzMSBFbmFibGUuICovCisKK1NGUl84QklUKExDREFQQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBQb3J0IENvbnRyb2wgUmVnaXN0ZXIgMSAqLworI2RlZmluZSBMQ0RTMzIgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIExDRCBTZWdtZW50IDMyIHRvIDM1IEVuYWJsZS4gKi8KKyNkZWZpbmUgTENEUzM2ICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMQ0QgU2VnbWVudCAzNiB0byAzOSBFbmFibGUuICovCisKK1NGUl84QklUKExDREFWQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBWb2x0YWdlIENvbnRyb2wgUmVnaXN0ZXIgMCAqLworI2RlZmluZSBMQ0QyQiAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNlbGVjdHMgMS8yIGJpYXMuICovCisjZGVmaW5lIFZMQ0RSRUYwICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VsZWN0cyByZWZlcmVuY2Ugdm9sdGFnZSBmb3IgcmVndWxhdGVkIGNoYXJnZSBwdW1wOiAwICovCisjZGVmaW5lIFZMQ0RSRUYxICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU2VsZWN0cyByZWZlcmVuY2Ugdm9sdGFnZSBmb3IgcmVndWxhdGVkIGNoYXJnZSBwdW1wOiAxICovCisjZGVmaW5lIExDRENQRU4gICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogTENEIFZvbHRhZ2UgQ2hhcmdlIFB1bXAgRW5hYmxlLiAqLworI2RlZmluZSBWTENERVhUICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFNlbGVjdCBleHRlcm5hbCBzb3VyY2UgZm9yIFZMQ0QuICovCisjZGVmaW5lIExDRFJFWFQgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogU2VsZWN0cyBleHRlcm5hbCBjb25uZWN0aW9ucyBmb3IgTENEIG1pZCB2b2x0YWdlcy4gKi8KKyNkZWZpbmUgTENEUjAzRVhUICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTZWxlY3RzIGV4dGVybmFsIGNvbm5lY3Rpb24gZm9yIGxvd2VzdCBMQ0Qgdm9sdGFnZS4gKi8KKworLyogUmVmZXJlbmNlIHZvbHRhZ2Ugc291cmNlIHNlbGVjdCBmb3IgdGhlIHJlZ3VsYXRlZCBjaGFyZ2UgcHVtcCAqLworI2RlZmluZSBWTENEUkVGXzAgICAgICAgICAgICAgICgwPDwxKSAgICAgICAgIC8qIEludGVybmFsICovCisjZGVmaW5lIFZMQ0RSRUZfMSAgICAgICAgICAgICAgKDE8PDEpICAgICAgICAgLyogRXh0ZXJuYWwgKi8KKyNkZWZpbmUgVkxDRFJFRl8yICAgICAgICAgICAgICAoMjw8MSkgICAgICAgICAvKiBSZXNlcnZlZCAqLworI2RlZmluZSBWTENEUkVGXzMgICAgICAgICAgICAgICgzPDwxKSAgICAgICAgIC8qIFJlc2VydmVkICovCisKK1NGUl84QklUKExDREFWQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0RfQSBWb2x0YWdlIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworI2RlZmluZSBWTENEMCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFZMQ0Qgc2VsZWN0OiAwICovCisjZGVmaW5lIFZMQ0QxICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVkxDRCBzZWxlY3Q6IDEgKi8KKyNkZWZpbmUgVkxDRDIgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBWTENEIHNlbGVjdDogMiAqLworI2RlZmluZSBWTENEMyAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFZMQ0Qgc2VsZWN0OiAzICovCisKKy8qIENoYXJnZSBwdW1wIHZvbHRhZ2Ugc2VsZWN0aW9ucyAqLworI2RlZmluZSBWTENEXzAgICAgICAgICAgICAgICAgICgwPDwxKSAgICAgICAgIC8qIENoYXJnZSBwdW1wIGRpc2FibGVkICovCisjZGVmaW5lIFZMQ0RfMSAgICAgICAgICAgICAgICAgKDE8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNjBWICovCisjZGVmaW5lIFZMQ0RfMiAgICAgICAgICAgICAgICAgKDI8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNjZWICovCisjZGVmaW5lIFZMQ0RfMyAgICAgICAgICAgICAgICAgKDM8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNzJWICovCisjZGVmaW5lIFZMQ0RfNCAgICAgICAgICAgICAgICAgKDQ8PDEpICAgICAgICAgLyogVkxDRCA9IDIuNzhWICovCisjZGVmaW5lIFZMQ0RfNSAgICAgICAgICAgICAgICAgKDU8PDEpICAgICAgICAgLyogVkxDRCA9IDIuODRWICovCisjZGVmaW5lIFZMQ0RfNiAgICAgICAgICAgICAgICAgKDY8PDEpICAgICAgICAgLyogVkxDRCA9IDIuOTBWICovCisjZGVmaW5lIFZMQ0RfNyAgICAgICAgICAgICAgICAgKDc8PDEpICAgICAgICAgLyogVkxDRCA9IDIuOTZWICovCisjZGVmaW5lIFZMQ0RfOCAgICAgICAgICAgICAgICAgKDg8PDEpICAgICAgICAgLyogVkxDRCA9IDMuMDJWICovCisjZGVmaW5lIFZMQ0RfOSAgICAgICAgICAgICAgICAgKDk8PDEpICAgICAgICAgLyogVkxDRCA9IDMuMDhWICovCisjZGVmaW5lIFZMQ0RfMTAgICAgICAgICAgICAgICAgKDEwPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMTRWICovCisjZGVmaW5lIFZMQ0RfMTEgICAgICAgICAgICAgICAgKDExPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMjBWICovCisjZGVmaW5lIFZMQ0RfMTIgICAgICAgICAgICAgICAgKDEyPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMjZWICovCisjZGVmaW5lIFZMQ0RfMTMgICAgICAgICAgICAgICAgKDEyPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMzJWICovCisjZGVmaW5lIFZMQ0RfMTQgICAgICAgICAgICAgICAgKDEzPDwxKSAgICAgICAgLyogVkxDRCA9IDMuMzhWICovCisjZGVmaW5lIFZMQ0RfMTUgICAgICAgICAgICAgICAgKDE1PDwxKSAgICAgICAgLyogVkxDRCA9IDMuNDRWICovCisKKyNkZWZpbmUgVkxDRF9ESVNBQkxFRCAgICAgICAgICAoMDw8MSkgICAgICAgICAvKiBDaGFyZ2UgcHVtcCBkaXNhYmxlZCAqLworI2RlZmluZSBWTENEXzJfNjAgICAgICAgICAgICAgICgxPDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjYwViAqLworI2RlZmluZSBWTENEXzJfNjYgICAgICAgICAgICAgICgyPDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjY2ViAqLworI2RlZmluZSBWTENEXzJfNzIgICAgICAgICAgICAgICgzPDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjcyViAqLworI2RlZmluZSBWTENEXzJfNzggICAgICAgICAgICAgICg0PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjc4ViAqLworI2RlZmluZSBWTENEXzJfODQgICAgICAgICAgICAgICg1PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjg0ViAqLworI2RlZmluZSBWTENEXzJfOTAgICAgICAgICAgICAgICg2PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjkwViAqLworI2RlZmluZSBWTENEXzJfOTYgICAgICAgICAgICAgICg3PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAyLjk2ViAqLworI2RlZmluZSBWTENEXzNfMDIgICAgICAgICAgICAgICg4PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAzLjAyViAqLworI2RlZmluZSBWTENEXzNfMDggICAgICAgICAgICAgICg5PDwxKSAgICAgICAgIC8qIFZMQ0QgPSAzLjA4ViAqLworI2RlZmluZSBWTENEXzNfMTQgICAgICAgICAgICAgICgxMDw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjE0ViAqLworI2RlZmluZSBWTENEXzNfMjAgICAgICAgICAgICAgICgxMTw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjIwViAqLworI2RlZmluZSBWTENEXzNfMjYgICAgICAgICAgICAgICgxMjw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjI2ViAqLworI2RlZmluZSBWTENEXzNfMzIgICAgICAgICAgICAgICgxMjw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjMyViAqLworI2RlZmluZSBWTENEXzNfMzggICAgICAgICAgICAgICgxMzw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjM4ViAqLworI2RlZmluZSBWTENEXzNfNDQgICAgICAgICAgICAgICgxNTw8MSkgICAgICAgIC8qIFZMQ0QgPSAzLjQ0ViAqLworCisjZGVmaW5lIExDRE1FTV8gICAgICAgICAgICAgICAgKDB4MDA5MSkgICAgICAgLyogTENEIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKExDRE1FTV8pICAgICAgLyogTENEIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgTENETUVNXykgLyogTENEIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKExDRE0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEgKi8KK1NGUl84QklUKExDRE0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIgKi8KK1NGUl84QklUKExDRE0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDMgKi8KK1NGUl84QklUKExDRE00KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDQgKi8KK1NGUl84QklUKExDRE01KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDUgKi8KK1NGUl84QklUKExDRE02KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDYgKi8KK1NGUl84QklUKExDRE03KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDcgKi8KK1NGUl84QklUKExDRE04KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDggKi8KK1NGUl84QklUKExDRE05KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDkgKi8KK1NGUl84QklUKExDRE0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEwICovCitTRlJfOEJJVChMQ0RNMTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMSAqLworU0ZSXzhCSVQoTENETTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTIgKi8KK1NGUl84QklUKExDRE0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEzICovCitTRlJfOEJJVChMQ0RNMTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNCAqLworU0ZSXzhCSVQoTENETTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTUgKi8KK1NGUl84QklUKExDRE0xNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE2ICovCitTRlJfOEJJVChMQ0RNMTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNyAqLworU0ZSXzhCSVQoTENETTE4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTggKi8KK1NGUl84QklUKExDRE0xOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE5ICovCitTRlJfOEJJVChMQ0RNMjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAyMCAqLworCisjZGVmaW5lIExDRE1BICAgICAgICAgICAgICAgICAgKExDRE0xMCkgICAgICAgLyogTENEIE1lbW9yeSBBICovCisjZGVmaW5lIExDRE1CICAgICAgICAgICAgICAgICAgKExDRE0xMSkgICAgICAgLyogTENEIE1lbW9yeSBCICovCisjZGVmaW5lIExDRE1DICAgICAgICAgICAgICAgICAgKExDRE0xMikgICAgICAgLyogTENEIE1lbW9yeSBDICovCisjZGVmaW5lIExDRE1EICAgICAgICAgICAgICAgICAgKExDRE0xMykgICAgICAgLyogTENEIE1lbW9yeSBEICovCisjZGVmaW5lIExDRE1FICAgICAgICAgICAgICAgICAgKExDRE0xNCkgICAgICAgLyogTENEIE1lbW9yeSBFICovCisjZGVmaW5lIExDRE1GICAgICAgICAgICAgICAgICAgKExDRE0xNSkgICAgICAgLyogTENEIE1lbW9yeSBGICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSEFSRFdBUkUgTVVMVElQTElFUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfTVBZX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKE1QWSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFVuc2lnbmVkL09wZXJhbmQgMSAqLworU0ZSXzE2QklUKE1QWVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE11bHRpcGx5IFNpZ25lZC9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBVbnNpZ25lZCBhbmQgQWNjdW11bGF0ZS9PcGVyYW5kIDEgKi8KK1NGUl8xNkJJVChNQUNTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBNdWx0aXBseSBTaWduZWQgYW5kIEFjY3VtdWxhdGUvT3BlcmFuZCAxICovCitTRlJfMTZCSVQoT1AyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT3BlcmFuZCAyICovCitTRlJfMTZCSVQoUkVTTE8pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IExvdyBXb3JkICovCitTRlJfMTZCSVQoUkVTSEkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUmVzdWx0IEhpZ2ggV29yZCAqLworU0ZSXzE2QklUKFNVTUVYVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN1bSBFeHRlbmQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBPcGVyYXRpb25hbCBBbXBsaWZpZXIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX09BXzNfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKE9BMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPQTAgQ29udHJvbCByZWdpc3RlciAwICovCitTRlJfOEJJVChPQTBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT0EwIENvbnRyb2wgcmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoT0ExQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9BMSBDb250cm9sIHJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKE9BMUNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBPQTEgQ29udHJvbCByZWdpc3RlciAxICovCitTRlJfOEJJVChPQTJDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogT0EyIENvbnRyb2wgcmVnaXN0ZXIgMCAqLworU0ZSXzhCSVQoT0EyQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE9BMiBDb250cm9sIHJlZ2lzdGVyIDEgKi8KKworI2RlZmluZSBPQUFEQzAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIE9BeCBvdXRwdXQgdG8gQURDMTIgaW5wdXQgY2hhbm5lbCBzZWxlY3QgMCAqLworI2RlZmluZSBPQUFEQzEgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE9BeCBvdXRwdXQgdG8gQURDMTIgaW5wdXQgY2hhbm5lbCBzZWxlY3QgMSAqLworI2RlZmluZSBPQVBNMCAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIE9BeCBQb3dlciBtb2RlIHNlbGVjdCAwICovCisjZGVmaW5lIE9BUE0xICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0IDEgKi8KKyNkZWZpbmUgT0FQMCAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBPQVAxICAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIE9BeCBOb24taW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIE9BTjAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogT0F4IEludmVydGluZyBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBPQU4xICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIE9BeCBJbnZlcnRpbmcgaW5wdXQgc2VsZWN0IDEgKi8KKworI2RlZmluZSBPQVBNXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE9BeCBQb3dlciBtb2RlIHNlbGVjdDogb2ZmICovCisjZGVmaW5lIE9BUE1fMSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0OiBzbG93ICovCisjZGVmaW5lIE9BUE1fMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IFBvd2VyIG1vZGUgc2VsZWN0OiBtZWR1aW0gKi8KKyNkZWZpbmUgT0FQTV8zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBPQXggUG93ZXIgbW9kZSBzZWxlY3Q6IGZhc3QgKi8KKyNkZWZpbmUgT0FQXzAgICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMDAgKi8KKyNkZWZpbmUgT0FQXzEgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMDEgKi8KKyNkZWZpbmUgT0FQXzIgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMTAgKi8KKyNkZWZpbmUgT0FQXzMgICAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBPQXggTm9uLWludmVydGluZyBpbnB1dCBzZWxlY3QgMTEgKi8KKyNkZWZpbmUgT0FOXzAgICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBPQXggSW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAwMCAqLworI2RlZmluZSBPQU5fMSAgICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIE9BeCBJbnZlcnRpbmcgaW5wdXQgc2VsZWN0IDAxICovCisjZGVmaW5lIE9BTl8yICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogT0F4IEludmVydGluZyBpbnB1dCBzZWxlY3QgMTAgKi8KKyNkZWZpbmUgT0FOXzMgICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBPQXggSW52ZXJ0aW5nIGlucHV0IHNlbGVjdCAxMSAqLworCisjZGVmaW5lIE9BUlJJUCAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogT0F4IFJhaWwtdG8tUmFpbCBJbnB1dCBvZmYgKi8KKy8vI2RlZmluZSBSZXNlcnZlZCAgICAgICAgICAoMHgwMikgICAgLyogKi8KKyNkZWZpbmUgT0FGQzAgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBPQXggRnVuY3Rpb24gY29udHJvbCAwICovCisjZGVmaW5lIE9BRkMxICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uIGNvbnRyb2wgMSAqLworI2RlZmluZSBPQUZDMiAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbiBjb250cm9sIDIgKi8KKyNkZWZpbmUgT0FGQlIwICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3Igc2VsZWN0IDAgKi8KKyNkZWZpbmUgT0FGQlIxICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3Igc2VsZWN0IDEgKi8KKyNkZWZpbmUgT0FGQlIyICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3Igc2VsZWN0IDIgKi8KKworI2RlZmluZSBPQUZDXzAgICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogR2VuLiBQdXJwb3NlICovCisjZGVmaW5lIE9BRkNfMSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBVbml0eSBnYWluIGJ1ZmZlciAqLworI2RlZmluZSBPQUZDXzIgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgT0FGQ18zICAgICAgICAgICAgICAgICAoMHgwQykgICAgICAgICAvKiBPQXggRnVuY3Rpb246IENvbXBhcmF0b3IgKi8KKyNkZWZpbmUgT0FGQ180ICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBPQXggRnVuY3Rpb246IE5vbi1JbnZlcnRpbmcgUEdBICovCisjZGVmaW5lIE9BRkNfNSAgICAgICAgICAgICAgICAgKDB4MTQpICAgICAgICAgLyogT0F4IEZ1bmN0aW9uOiBSZXNlcnZlZCAqLworI2RlZmluZSBPQUZDXzYgICAgICAgICAgICAgICAgICgweDE4KSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogSW52ZXJ0aW5nIFBHQSAqLworI2RlZmluZSBPQUZDXzcgICAgICAgICAgICAgICAgICgweDFDKSAgICAgICAgIC8qIE9BeCBGdW5jdGlvbjogRGlmZmVyZW50aWFsIFBHQSAqLworI2RlZmluZSBPQUZCUl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvcjogVGFwIDAgKi8KKyNkZWZpbmUgT0FGQlJfMSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3I6IFRhcCAxICovCisjZGVmaW5lIE9BRkJSXzIgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogT0F4IEZlZWRiYWNrIHJlc2lzdG9yOiBUYXAgMiAqLworI2RlZmluZSBPQUZCUl8zICAgICAgICAgICAgICAgICgweDYwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvcjogVGFwIDMgKi8KKyNkZWZpbmUgT0FGQlJfNCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3I6IFRhcCA0ICovCisjZGVmaW5lIE9BRkJSXzUgICAgICAgICAgICAgICAgKDB4QTApICAgICAgICAgLyogT0F4IEZlZWRiYWNrIHJlc2lzdG9yOiBUYXAgNSAqLworI2RlZmluZSBPQUZCUl82ICAgICAgICAgICAgICAgICgweEMwKSAgICAgICAgIC8qIE9BeCBGZWVkYmFjayByZXNpc3RvcjogVGFwIDYgKi8KKyNkZWZpbmUgT0FGQlJfNyAgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBPQXggRmVlZGJhY2sgcmVzaXN0b3I6IFRhcCA3ICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDEvMgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDFfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQyX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAxSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW5wdXQgKi8KK1NGUl84QklUKFAxT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgT3V0cHV0ICovCitTRlJfOEJJVChQMURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDFJRkcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRmxhZyAqLworU0ZSXzhCSVQoUDFJRVMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRWRnZSBTZWxlY3QgKi8KK1NGUl84QklUKFAxSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgSW50ZXJydXB0IEVuYWJsZSAqLworU0ZSXzhCSVQoUDFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDJJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnB1dCAqLworU0ZSXzhCSVQoUDJPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBPdXRwdXQgKi8KK1NGUl84QklUKFAyRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMklGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMklFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDJJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMlNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQzLzQKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQzX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNF9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQM0lOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIElucHV0ICovCitTRlJfOEJJVChQM09VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIE91dHB1dCAqLworU0ZSXzhCSVQoUDNESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAzU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFA0SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgSW5wdXQgKi8KK1NGUl84QklUKFA0T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgT3V0cHV0ICovCitTRlJfOEJJVChQNERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDRTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0NS82CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDZfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDVJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBJbnB1dCAqLworU0ZSXzhCSVQoUDVPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBPdXRwdXQgKi8KK1NGUl84QklUKFA1RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQNklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IElucHV0ICovCitTRlJfOEJJVChQNk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IE91dHB1dCAqLworU0ZSXzhCSVQoUDZESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA2U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDcvOAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDdfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ4X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUQV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQN0lOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA3IElucHV0ICovCitTRlJfOEJJVChQN09VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA3IE91dHB1dCAqLworU0ZSXzhCSVQoUDdESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNyBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA3U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDcgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFA4SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggSW5wdXQgKi8KK1NGUl84QklUKFA4T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDggT3V0cHV0ICovCitTRlJfOEJJVChQOERJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA4IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDhTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgOCBTZWxlY3Rpb24gKi8KKworU0ZSXzE2QklUKFBBSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBJbnB1dCAqLworU0ZSXzE2QklUKFBBT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQSBPdXRwdXQgKi8KK1NGUl8xNkJJVChQQURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEEgRGlyZWN0aW9uICovCitTRlJfMTZCSVQoUEFTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBBIFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQ5LzEwCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUOV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDEwX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlRCX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFA5SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDkgSW5wdXQgKi8KK1NGUl84QklUKFA5T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDkgT3V0cHV0ICovCitTRlJfOEJJVChQOURJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA5IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDlTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgOSBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDEwSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMTAgSW5wdXQgKi8KK1NGUl84QklUKFAxME9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEwIE91dHB1dCAqLworU0ZSXzhCSVQoUDEwRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMTAgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMTBTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxMCBTZWxlY3Rpb24gKi8KKworU0ZSXzE2QklUKFBCSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBJbnB1dCAqLworU0ZSXzE2QklUKFBCT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgQiBPdXRwdXQgKi8KK1NGUl8xNkJJVChQQkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IEIgRGlyZWN0aW9uICovCitTRlJfMTZCSVQoUEJTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCBCIFNlbGVjdGlvbiAqLworICAgICAgICAgICAgICAgCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEJyb3duLU91dCwgU3VwcGx5IFZvbHRhZ2UgU3VwZXJ2aXNpb24gKFNWUykKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1NWU19fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFNWU0NUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTVlMgQ29udHJvbCAqLworI2RlZmluZSBTVlNGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFNWUyBGbGFnICovCisjZGVmaW5lIFNWU09QICAgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU1ZTIG91dHB1dCAocmVhZCBvbmx5KSAqLworI2RlZmluZSBTVlNPTiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFN3aXRjaGVzIHRoZSBTVlMgb24vb2ZmICovCisjZGVmaW5lIFBPUk9OICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRW5hYmxlIFBPUiBHZW5lcmF0aW9uIGlmIExvdyBWb2x0YWdlICovCisjZGVmaW5lIFZMRDAgICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRDEgICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIFZMRDIgICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIFZMRDMgICAgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgVkxET04gICAgICAgICAgICAgICAgICAoMHgxMCkKKyNkZWZpbmUgVkxET0ZGICAgICAgICAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgVkxEXzFfOFYgICAgICAgICAgICAgICAoMHgxMCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBBMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVEEzX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFRBSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEFDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCitTRlJfMTZCSVQoVEFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCitTRlJfMTZCSVQoVEFDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEFDQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEFSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSAqLworU0ZSXzE2QklUKFRBQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KK1NGUl8xNkJJVChUQUNDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEFDQ1IyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgKi8KKyNkZWZpbmUgQ0NUTDAgICAgICAgICAgICAgICAgICBUQUNDVEwwICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDEgICAgICAgICAgICAgICAgICBUQUNDVEwxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDIgICAgICAgICAgICAgICAgICBUQUNDVEwyICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMCAgICAgICAgICAgICAgICAgICBUQUNDUjAgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjEgICAgICAgICAgICAgICAgICAgVEFDQ1IxICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyICAgICAgICAgICAgICAgICAgIFRBQ0NSMiAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKyNkZWZpbmUgQ0NUTDBfICAgICAgICAgICAgICAgICBUQUNDVEwwXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KKyNkZWZpbmUgQ0NUTDFfICAgICAgICAgICAgICAgICBUQUNDVEwxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KKyNkZWZpbmUgQ0NUTDJfICAgICAgICAgICAgICAgICBUQUNDVEwyXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KKyNkZWZpbmUgQ0NSMF8gICAgICAgICAgICAgICAgICBUQUNDUjBfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAwICovCisjZGVmaW5lIENDUjFfICAgICAgICAgICAgICAgICAgVEFDQ1IxXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMSAqLworI2RlZmluZSBDQ1IyXyAgICAgICAgICAgICAgICAgIFRBQ0NSMl8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDIgKi8KKworI2RlZmluZSBUQVNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdCAwICovCisjZGVmaW5lIFRBU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDEgKi8KKyNkZWZpbmUgSUQxICAgICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIGlucHV0IGRpdmlkZXIgMSAqLworI2RlZmluZSBJRDAgICAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAwICovCisjZGVmaW5lIE1DMSAgICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMSAqLworI2RlZmluZSBNQzAgICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sIDAgKi8KKyNkZWZpbmUgVEFDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEFJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBBIGNvdW50ZXIgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBUQUlGRyAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZmxhZyAqLworCisjZGVmaW5lIE1DXzAgICAgICAgICAgICAgICAgICAgKDAqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDAgLSBTdG9wICovCisjZGVmaW5lIE1DXzEgICAgICAgICAgICAgICAgICAgKDEqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDEgLSBVcCB0byBDQ1IwICovCisjZGVmaW5lIE1DXzIgICAgICAgICAgICAgICAgICAgKDIqMHgxMHUpICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2w6IDIgLSBDb250aW5vdXMgdXAgKi8KKyNkZWZpbmUgTUNfMyAgICAgICAgICAgICAgICAgICAoMyoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMyAtIFVwL0Rvd24gKi8KKyNkZWZpbmUgSURfMCAgICAgICAgICAgICAgICAgICAoMCoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDAgLSAvMSAqLworI2RlZmluZSBJRF8xICAgICAgICAgICAgICAgICAgICgxKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMSAtIC8yICovCisjZGVmaW5lIElEXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAyIC0gLzQgKi8KKyNkZWZpbmUgSURfMyAgICAgICAgICAgICAgICAgICAoMyoweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDMgLSAvOCAqLworI2RlZmluZSBUQVNTRUxfMCAgICAgICAgICAgICAgICgwKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMCAtIFRBQ0xLICovCisjZGVmaW5lIFRBU1NFTF8xICAgICAgICAgICAgICAgKDEqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAxIC0gQUNMSyAgKi8KKyNkZWZpbmUgVEFTU0VMXzIgICAgICAgICAgICAgICAoMioweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDIgLSBTTUNMSyAqLworI2RlZmluZSBUQVNTRUxfMyAgICAgICAgICAgICAgICgzKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMyAtIElOQ0xLICovCisKKyNkZWZpbmUgQ00xICAgICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBDYXB0dXJlIG1vZGUgMSAqLworI2RlZmluZSBDTTAgICAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAwICovCisjZGVmaW5lIENDSVMxICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMSAqLworI2RlZmluZSBDQ0lTMCAgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0IDAgKi8KKyNkZWZpbmUgU0NTICAgICAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBDYXB0dXJlIHN5Y2hyb25pemUgKi8KKyNkZWZpbmUgU0NDSSAgICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBMYXRjaGVkIGNhcHR1cmUgc2lnbmFsIChyZWFkKSAqLworI2RlZmluZSBDQVAgICAgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIENhcHR1cmUgbW9kZTogMSAvQ29tcGFyZSBtb2RlIDogMCAqLworI2RlZmluZSBPVVRNT0QyICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIE91dHB1dCBtb2RlIDIgKi8KKyNkZWZpbmUgT1VUTU9EMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAxICovCisjZGVmaW5lIE9VVE1PRDAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogT3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDQ0lFICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIENDSSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIE9VVCAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogUFdNIE91dHB1dCBzaWduYWwgaWYgb3V0cHV0IG1vZGUgMCAqLworI2RlZmluZSBDT1YgICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIENhcHR1cmUvY29tcGFyZSBvdmVyZmxvdyBmbGFnICovCisjZGVmaW5lIENDSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgT1VUTU9EXzAgICAgICAgICAgICAgICAoMCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDAgLSBvdXRwdXQgb25seSAqLworI2RlZmluZSBPVVRNT0RfMSAgICAgICAgICAgICAgICgxKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMSAtIHNldCAqLworI2RlZmluZSBPVVRNT0RfMiAgICAgICAgICAgICAgICgyKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMiAtIFBXTSB0b2dnbGUvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzMgICAgICAgICAgICAgICAoMyoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDMgLSBQV00gc2V0L3Jlc2V0ICovCisjZGVmaW5lIE9VVE1PRF80ICAgICAgICAgICAgICAgKDQqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA0IC0gdG9nZ2xlICovCisjZGVmaW5lIE9VVE1PRF81ICAgICAgICAgICAgICAgKDUqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA1IC0gUmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzYgICAgICAgICAgICAgICAoNioweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDYgLSBQV00gdG9nZ2xlL3NldCAqLworI2RlZmluZSBPVVRNT0RfNyAgICAgICAgICAgICAgICg3KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNyAtIFBXTSByZXNldC9zZXQgKi8KKyNkZWZpbmUgQ0NJU18wICAgICAgICAgICAgICAgICAoMCoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMCAtIENDSXhBICovCisjZGVmaW5lIENDSVNfMSAgICAgICAgICAgICAgICAgKDEqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDEgLSBDQ0l4QiAqLworI2RlZmluZSBDQ0lTXzIgICAgICAgICAgICAgICAgICgyKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAyIC0gR05EICovCisjZGVmaW5lIENDSVNfMyAgICAgICAgICAgICAgICAgKDMqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDMgLSBWY2MgKi8KKyNkZWZpbmUgQ01fMCAgICAgICAgICAgICAgICAgICAoMCoweDQwMDB1KSAgICAvKiBDYXB0dXJlIG1vZGU6IDAgLSBkaXNhYmxlZCAqLworI2RlZmluZSBDTV8xICAgICAgICAgICAgICAgICAgICgxKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIHBvcy4gZWRnZSAqLworI2RlZmluZSBDTV8yICAgICAgICAgICAgICAgICAgICgyKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIG5lZy4gZWRnZSAqLworI2RlZmluZSBDTV8zICAgICAgICAgICAgICAgICAgICgzKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMSAtIGJvdGggZWRnZXMgKi8KKworLyogVEEzSVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEFJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRBQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQUlWX1RBQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRBQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQUlWXzYgICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBSVZfOCAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEFJVl9UQUlGRyAgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQUlGRyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFRpbWVyIEI3CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQjdfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEJJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBJbnRlcnJ1cHQgVmVjdG9yIFdvcmQgKi8KK1NGUl8xNkJJVChUQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQkNDVEwwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQkNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChUQkNDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQkNDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDMgKi8KK1NGUl8xNkJJVChUQkNDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDQgKi8KK1NGUl8xNkJJVChUQkNDVEw1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDUgKi8KK1NGUl8xNkJJVChUQkNDVEw2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDYgKi8KK1NGUl8xNkJJVChUQlIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCICovCitTRlJfMTZCSVQoVEJDQ1IwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMCAqLworU0ZSXzE2QklUKFRCQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDEgKi8KK1NGUl8xNkJJVChUQkNDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSAyICovCitTRlJfMTZCSVQoVEJDQ1IzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgMyAqLworU0ZSXzE2QklUKFRCQ0NSNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyIEIgQ2FwdHVyZS9Db21wYXJlIDQgKi8KK1NGUl8xNkJJVChUQkNDUjUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lciBCIENhcHR1cmUvQ29tcGFyZSA1ICovCitTRlJfMTZCSVQoVEJDQ1I2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIgQiBDYXB0dXJlL0NvbXBhcmUgNiAqLworCisjZGVmaW5lIFRCQ0xHUlAxICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMSAqLworI2RlZmluZSBUQkNMR1JQMCAgICAgICAgICAgICAgICgweDIwMDApICAgICAgIC8qIFRpbWVyIEIgQ29tcGFyZSBsYXRjaCBsb2FkIGdyb3VwIDAgKi8KKyNkZWZpbmUgQ05UTDEgICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBDb3VudGVyIGxlbmdodCAxICovCisjZGVmaW5lIENOVEwwICAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogQ291bnRlciBsZW5naHQgMCAqLworI2RlZmluZSBUQlNTRUwxICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENsb2NrIHNvdXJjZSAxICovCisjZGVmaW5lIFRCU1NFTDAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2xvY2sgc291cmNlIDAgKi8KKyNkZWZpbmUgVEJDTFIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBUaW1lciBCIGNvdW50ZXIgY2xlYXIgKi8KKyNkZWZpbmUgVEJJRSAgICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgVEJJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBUaW1lciBCIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgU0hSMSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBUaW1lciBCIENvbXBhcmUgbGF0Y2ggbG9hZCBncm91cCAxICovCisjZGVmaW5lIFNIUjAgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogVGltZXIgQiBDb21wYXJlIGxhdGNoIGxvYWQgZ3JvdXAgMCAqLworCisjZGVmaW5lIFRCU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBUQkNMSyAqLworI2RlZmluZSBUQlNTRUxfMSAgICAgICAgICAgICAgICgxKjB4MDEwMHUpICAgIC8qIENsb2NrIFNvdXJjZTogQUNMSyAgKi8KKyNkZWZpbmUgVEJTU0VMXzIgICAgICAgICAgICAgICAoMioweDAxMDB1KSAgICAvKiBDbG9jayBTb3VyY2U6IFNNQ0xLICovCisjZGVmaW5lIFRCU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgwMTAwdSkgICAgLyogQ2xvY2sgU291cmNlOiBJTkNMSyAqLworI2RlZmluZSBDTlRMXzAgICAgICAgICAgICAgICAgICgwKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAxNiBiaXQgKi8KKyNkZWZpbmUgQ05UTF8xICAgICAgICAgICAgICAgICAoMSoweDA4MDB1KSAgICAvKiBDb3VudGVyIGxlbmdodDogMTIgYml0ICovCisjZGVmaW5lIENOVExfMiAgICAgICAgICAgICAgICAgKDIqMHgwODAwdSkgICAgLyogQ291bnRlciBsZW5naHQ6IDEwIGJpdCAqLworI2RlZmluZSBDTlRMXzMgICAgICAgICAgICAgICAgICgzKjB4MDgwMHUpICAgIC8qIENvdW50ZXIgbGVuZ2h0OiAgOCBiaXQgKi8KKyNkZWZpbmUgU0hSXzAgICAgICAgICAgICAgICAgICAoMCoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAwIC0gaW5kaXZpZHVhbGx5ICovCisjZGVmaW5lIFNIUl8xICAgICAgICAgICAgICAgICAgKDEqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMSAtIDMgZ3JvdXBzICgxLTIsIDMtNCwgNS02KSAqLworI2RlZmluZSBTSFJfMiAgICAgICAgICAgICAgICAgICgyKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDIgLSAyIGdyb3VwcyAoMS0zLCA0LTYpKi8KKyNkZWZpbmUgU0hSXzMgICAgICAgICAgICAgICAgICAoMyoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAzIC0gMSBncm91cCAoYWxsKSAqLworI2RlZmluZSBUQkNMR1JQXzAgICAgICAgICAgICAgICgwKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDAgLSBpbmRpdmlkdWFsbHkgKi8KKyNkZWZpbmUgVEJDTEdSUF8xICAgICAgICAgICAgICAoMSoweDIwMDB1KSAgICAvKiBUaW1lciBCIEdyb3VwOiAxIC0gMyBncm91cHMgKDEtMiwgMy00LCA1LTYpICovCisjZGVmaW5lIFRCQ0xHUlBfMiAgICAgICAgICAgICAgKDIqMHgyMDAwdSkgICAgLyogVGltZXIgQiBHcm91cDogMiAtIDIgZ3JvdXBzICgxLTMsIDQtNikqLworI2RlZmluZSBUQkNMR1JQXzMgICAgICAgICAgICAgICgzKjB4MjAwMHUpICAgIC8qIFRpbWVyIEIgR3JvdXA6IDMgLSAxIGdyb3VwIChhbGwpICovCisKKy8qIEFkZGl0aW9uYWwgVGltZXIgQiBDb250cm9sIFJlZ2lzdGVyIGJpdHMgYXJlIGRlZmluZWQgaW4gVGltZXIgQSAqLworI2RlZmluZSBDTExEMSAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMSAqLworI2RlZmluZSBDTExEMCAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyY2UgMCAqLworCisjZGVmaW5lIFNMU0hSMSAgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAxICovCisjZGVmaW5lIFNMU0hSMCAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJjZSAwICovCisKKyNkZWZpbmUgU0xTSFJfMCAgICAgICAgICAgICAgICAoMCoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMCAtIGltbWVkaWF0ZSAqLworI2RlZmluZSBTTFNIUl8xICAgICAgICAgICAgICAgICgxKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAxIC0gVEJSIGNvdW50cyB0byAwICovCisjZGVmaW5lIFNMU0hSXzIgICAgICAgICAgICAgICAgKDIqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDIgLSB1cC9kb3duICovCisjZGVmaW5lIFNMU0hSXzMgICAgICAgICAgICAgICAgKDMqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDMgLSBUQlIgY291bnRzIHRvIFRCQ1RMMCAqLworCisjZGVmaW5lIENMTERfMCAgICAgICAgICAgICAgICAgKDAqMHgwMjAwdSkgICAgLyogQ29tcGFyZSBsYXRjaCBsb2FkIHNvdXJlYyA6IDAgLSBpbW1lZGlhdGUgKi8KKyNkZWZpbmUgQ0xMRF8xICAgICAgICAgICAgICAgICAoMSoweDAyMDB1KSAgICAvKiBDb21wYXJlIGxhdGNoIGxvYWQgc291cmVjIDogMSAtIFRCUiBjb3VudHMgdG8gMCAqLworI2RlZmluZSBDTExEXzIgICAgICAgICAgICAgICAgICgyKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAyIC0gdXAvZG93biAqLworI2RlZmluZSBDTExEXzMgICAgICAgICAgICAgICAgICgzKjB4MDIwMHUpICAgIC8qIENvbXBhcmUgbGF0Y2ggbG9hZCBzb3VyZWMgOiAzIC0gVEJSIGNvdW50cyB0byBUQkNUTDAgKi8KKworLyogVEI3SVYgRGVmaW5pdGlvbnMgKi8KKyNkZWZpbmUgVEJJVl9OT05FICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBObyBJbnRlcnJ1cHQgcGVuZGluZyAqLworI2RlZmluZSBUQklWX1RCQ0NSMSAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRCQ0NSMV9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSMiAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRCQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSMyAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFRCQ0NSM19DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSNCAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFRCQ0NSNF9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSNSAgICAgICAgICAgICgweDAwMEEpICAgICAgIC8qIFRCQ0NSM19DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCQ0NSNiAgICAgICAgICAgICgweDAwMEMpICAgICAgIC8qIFRCQ0NSNF9DQ0lGRyAqLworI2RlZmluZSBUQklWX1RCSUZHICAgICAgICAgICAgICgweDAwMEUpICAgICAgIC8qIFRCSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVVNDSQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfVVNDSV9fICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoVUNBMENUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgQ29udHJvbCBSZWdpc3RlciAwICovCitTRlJfOEJJVChVQ0EwQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBDb250cm9sIFJlZ2lzdGVyIDEgKi8KK1NGUl84QklUKFVDQTBCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIEJhdWQgUmF0ZSAwICovCitTRlJfOEJJVChVQ0EwQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBCYXVkIFJhdGUgMSAqLworU0ZSXzhCSVQoVUNBME1DVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQTAgTW9kdWxhdGlvbiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwU1RBVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBTdGF0dXMgUmVnaXN0ZXIgKi8KK1NGUl84QklUKFVDQTBSWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIFJlY2VpdmUgQnVmZmVyICovCitTRlJfOEJJVChVQ0EwVFhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBUcmFuc21pdCBCdWZmZXIgKi8KK1NGUl84QklUKFVDQTBBQkNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIExJTiBDb250cm9sICovCitTRlJfOEJJVChVQ0EwSVJUQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBBMCBJckRBIFRyYW5zbWl0IENvbnRyb2wgKi8KK1NGUl84QklUKFVDQTBJUlJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEEwIElyREEgUmVjZWl2ZSBDb250cm9sICovCisKKworCitTRlJfOEJJVChVQ0IwQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBDb250cm9sIFJlZ2lzdGVyIDAgKi8KK1NGUl84QklUKFVDQjBDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIENvbnRyb2wgUmVnaXN0ZXIgMSAqLworU0ZSXzhCSVQoVUNCMEJSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFVDQjBCUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVQ0IwSTJDSUUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgSW50ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLworU0ZSXzhCSVQoVUNCMFNUQVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgU3RhdHVzIFJlZ2lzdGVyICovCitTRlJfOEJJVChVQ0IwUlhCVUYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVUNCMFRYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQ0kgQjAgVHJhbnNtaXQgQnVmZmVyICovCitTRlJfMTZCSVQoVUNCMEkyQ09BKTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNDSSBCMCBJMkMgT3duIEFkZHJlc3MgKi8KK1NGUl8xNkJJVChVQ0IwSTJDU0EpOyAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0NJIEIwIEkyQyBTbGF2ZSBBZGRyZXNzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDUEVOICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgVUNQQVIgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogUGFyaXR5ICAgICAwOm9kZCAvIDE6ZXZlbiAqLworI2RlZmluZSBVQ01TQiAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEFzeW5jLiBNb2RlOiBNU0IgZmlyc3QgIDA6TFNCIC8gMTpNU0IgKi8KKyNkZWZpbmUgVUM3QklUICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogRGF0YSBCaXRzICAwOjgtYml0cyAvIDE6Ny1iaXRzICovCisjZGVmaW5lIFVDU1BCICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQXN5bmMuIE1vZGU6IFN0b3AgQml0cyAgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgVUNNT0RFMSAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDEgKi8KKyNkZWZpbmUgVUNNT0RFMCAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBBc3luYy4gTW9kZTogVVNDSSBNb2RlIDAgKi8KKyNkZWZpbmUgVUNTWU5DICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTeW5jLU1vZGUgIDA6VUFSVC1Nb2RlIC8gMTpTUEktTW9kZSAqLworCisvLyBTUEktTW9kZSBCaXRzCisjZGVmaW5lIFVDQ0tQSCAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogU3luYy4gTW9kZTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgVUNDS1BMICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTeW5jLiBNb2RlOiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBVQ01TVCAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFN5bmMuIE1vZGU6IE1hc3RlciBTZWxlY3QgKi8KKworLy8gSTJDLU1vZGUgQml0cworI2RlZmluZSBVQ0ExMCAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIDEwLWJpdCBBZGRyZXNzIE1vZGUgKi8KKyNkZWZpbmUgVUNTTEExMCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxMC1iaXQgU2xhdmUgQWRkcmVzcyBNb2RlICovCisjZGVmaW5lIFVDTU0gICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogTXVsdGktTWFzdGVyIEVudmlyb25tZW50ICovCisvLyNkZWZpbmUgcmVzICAgICAgICAgICAgICAgKDB4MTApICAgIC8qIHJlc2VydmVkICovCisjZGVmaW5lIFVDTU9ERV8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAwICovCisjZGVmaW5lIFVDTU9ERV8xICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAxICovCisjZGVmaW5lIFVDTU9ERV8yICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAyICovCisjZGVmaW5lIFVDTU9ERV8zICAgICAgICAgICAgICAgKDB4MDYpICAgICAgICAgLyogU3luYy4gTW9kZTogVVNDSSBNb2RlOiAzICovCisKKy8vIFVBUlQtTW9kZSBCaXRzCisjZGVmaW5lIFVDU1NFTDEgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBVQ1NTRUwwICAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgVUNSWEVJRSAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBSWCBFcnJvciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQlJLSUUgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQnJlYWsgaW50ZXJydXB0IGVuYWJsZSAqLyAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDRE9STSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogRG9ybWFudCAoU2xlZXApIE1vZGUgKi8KKyNkZWZpbmUgVUNUWEFERFIgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTZW5kIG5leHQgRGF0YSBhcyBBZGRyZXNzICovCisjZGVmaW5lIFVDVFhCUksgICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogU2VuZCBuZXh0IERhdGEgYXMgQnJlYWsgKi8KKyNkZWZpbmUgVUNTV1JTVCAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBVU0NJIFNvZnR3YXJlIFJlc2V0ICovCisKKy8vIFNQSS1Nb2RlIEJpdHMKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwOCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwNCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgwMikgICAgLyogcmVzZXJ2ZWQgKi8KKworLy8gSTJDLU1vZGUgQml0cworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDIwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ1RSICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFRyYW5zbWl0L1JlY2VpdmUgU2VsZWN0L0ZsYWcgKi8KKyNkZWZpbmUgVUNUWE5BQ0sgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBUcmFuc21pdCBOQUNLICovCisjZGVmaW5lIFVDVFhTVFAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVHJhbnNtaXQgU1RPUCAqLworI2RlZmluZSBVQ1RYU1RUICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFRyYW5zbWl0IFNUQVJUICovCisjZGVmaW5lIFVDU1NFTF8wICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMCAqLworI2RlZmluZSBVQ1NTRUxfMSAgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIFVTQ0kgMCBDbG9jayBTb3VyY2U6IDEgKi8KKyNkZWZpbmUgVUNTU0VMXzIgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIDAgQ2xvY2sgU291cmNlOiAyICovCisjZGVmaW5lIFVDU1NFTF8zICAgICAgICAgICAgICAgKDB4QzApICAgICAgICAgLyogVVNDSSAwIENsb2NrIFNvdXJjZTogMyAqLworCisjZGVmaW5lIFVDQlJGMyAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAzICovCisjZGVmaW5lIFVDQlJGMiAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAyICovCisjZGVmaW5lIFVDQlJGMSAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAxICovCisjZGVmaW5lIFVDQlJGMCAgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogVVNDSSBGaXJzdCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDQlJTMiAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbiBTZWxlY3QgMiAqLworI2RlZmluZSBVQ0JSUzEgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb24gU2VsZWN0IDEgKi8KKyNkZWZpbmUgVUNCUlMwICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uIFNlbGVjdCAwICovCisjZGVmaW5lIFVDT1MxNiAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSAxNi10aW1lcyBPdmVyc2FtcGxpbmcgZW5hYmxlICovCisKKyNkZWZpbmUgVUNCUkZfMCAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUkZfMSAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDEgKi8KKyNkZWZpbmUgVUNCUkZfMiAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDIgKi8KKyNkZWZpbmUgVUNCUkZfMyAgICAgICAgICAgICAgICAoMHgzMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUkZfNCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDQgKi8KKyNkZWZpbmUgVUNCUkZfNSAgICAgICAgICAgICAgICAoMHg1MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDUgKi8KKyNkZWZpbmUgVUNCUkZfNiAgICAgICAgICAgICAgICAoMHg2MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUkZfNyAgICAgICAgICAgICAgICAoMHg3MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDcgKi8KKyNkZWZpbmUgVUNCUkZfOCAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDggKi8KKyNkZWZpbmUgVUNCUkZfOSAgICAgICAgICAgICAgICAoMHg5MCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IDkgKi8KKyNkZWZpbmUgVUNCUkZfMTAgICAgICAgICAgICAgICAoMHhBMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEEgKi8KKyNkZWZpbmUgVUNCUkZfMTEgICAgICAgICAgICAgICAoMHhCMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEIgKi8KKyNkZWZpbmUgVUNCUkZfMTIgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEMgKi8KKyNkZWZpbmUgVUNCUkZfMTMgICAgICAgICAgICAgICAoMHhEMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEQgKi8KKyNkZWZpbmUgVUNCUkZfMTQgICAgICAgICAgICAgICAoMHhFMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEUgKi8KKyNkZWZpbmUgVUNCUkZfMTUgICAgICAgICAgICAgICAoMHhGMCkgICAgICAgICAvKiBVU0NJIEZpcnN0IFN0YWdlIE1vZHVsYXRpb246IEYgKi8KKworI2RlZmluZSBVQ0JSU18wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDAgKi8KKyNkZWZpbmUgVUNCUlNfMSAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiAxICovCisjZGVmaW5lIFVDQlJTXzIgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogMiAqLworI2RlZmluZSBVQ0JSU18zICAgICAgICAgICAgICAgICgweDA2KSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDMgKi8KKyNkZWZpbmUgVUNCUlNfNCAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA0ICovCisjZGVmaW5lIFVDQlJTXzUgICAgICAgICAgICAgICAgKDB4MEEpICAgICAgICAgLyogVVNDSSBTZWNvbmQgU3RhZ2UgTW9kdWxhdGlvbjogNSAqLworI2RlZmluZSBVQ0JSU182ICAgICAgICAgICAgICAgICgweDBDKSAgICAgICAgIC8qIFVTQ0kgU2Vjb25kIFN0YWdlIE1vZHVsYXRpb246IDYgKi8KKyNkZWZpbmUgVUNCUlNfNyAgICAgICAgICAgICAgICAoMHgwRSkgICAgICAgICAvKiBVU0NJIFNlY29uZCBTdGFnZSBNb2R1bGF0aW9uOiA3ICovCisKKyNkZWZpbmUgVUNMSVNURU4gICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBVU0NJIExpc3RlbiBtb2RlICovCisjZGVmaW5lIFVDRkUgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogVVNDSSBGcmFtZSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDT0UgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogVVNDSSBPdmVycnVuIEVycm9yIEZsYWcgKi8KKyNkZWZpbmUgVUNQRSAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBVU0NJIFBhcml0eSBFcnJvciBGbGFnICovCisjZGVmaW5lIFVDQlJLICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogVVNDSSBCcmVhayByZWNlaXZlZCAqLworI2RlZmluZSBVQ1JYRVJSICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVTQ0kgUlggRXJyb3IgRmxhZyAqLworI2RlZmluZSBVQ0FERFIgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFVTQ0kgQWRkcmVzcyByZWNlaXZlZCBGbGFnICovCisjZGVmaW5lIFVDQlVTWSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVVNDSSBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNJRExFICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBVU0NJIElkbGUgbGluZSBkZXRlY3RlZCBGbGFnICovCisKKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg4MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHg0MCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgyMCkgICAgLyogcmVzZXJ2ZWQgKi8KKy8vI2RlZmluZSByZXMgICAgICAgICAgICAgICAoMHgxMCkgICAgLyogcmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVUNOQUNLSUUgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUNLIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDU1RQSUUgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVQ1NUVElFICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNUQVJUIENvbmRpdGlvbiBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFVDQUxJRSAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQXJiaXRyYXRpb24gTG9zdCBpbnRlcnJ1cHQgZW5hYmxlICovCisKKyNkZWZpbmUgVUNTQ0xMT1cgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBTQ0wgbG93ICovCisjZGVmaW5lIFVDR0MgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogR2VuZXJhbCBDYWxsIGFkZHJlc3MgcmVjZWl2ZWQgRmxhZyAqLworI2RlZmluZSBVQ0JCVVNZICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJ1cyBCdXN5IEZsYWcgKi8KKyNkZWZpbmUgVUNOQUNLSUZHICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBOQUsgQ29uZGl0aW9uIGludGVycnVwdCBGbGFnICovCisjZGVmaW5lIFVDU1RQSUZHICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogU1RPUCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNTVFRJRkcgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTVEFSVCBDb25kaXRpb24gaW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgVUNBTElGRyAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBBcmJpdHJhdGlvbiBMb3N0IGludGVycnVwdCBGbGFnICovCisKKyNkZWZpbmUgVUNJUlRYUEw1ICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCA1ICovCisjZGVmaW5lIFVDSVJUWFBMNCAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggNCAqLworI2RlZmluZSBVQ0lSVFhQTDMgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDMgKi8KKyNkZWZpbmUgVUNJUlRYUEwyICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIExlbmd0aCAyICovCisjZGVmaW5lIFVDSVJUWFBMMSAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogSVJEQSBUcmFuc21pdCBQdWxzZSBMZW5ndGggMSAqLworI2RlZmluZSBVQ0lSVFhQTDAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIElSREEgVHJhbnNtaXQgUHVsc2UgTGVuZ3RoIDAgKi8KKyNkZWZpbmUgVUNJUlRYQ0xLICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBJUkRBIFRyYW5zbWl0IFB1bHNlIENsb2NrIFNlbGVjdCAqLworI2RlZmluZSBVQ0lSRU4gICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIElSREEgRW5jb2Rlci9EZWNvZGVyIGVuYWJsZSAqLworCisjZGVmaW5lIFVDSVJSWEZMNSAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggNSAqLworI2RlZmluZSBVQ0lSUlhGTDQgICAgICAgICAgICAgICgweDQwKSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDQgKi8KKyNkZWZpbmUgVUNJUlJYRkwzICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAzICovCisjZGVmaW5lIFVDSVJSWEZMMiAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBMZW5ndGggMiAqLworI2RlZmluZSBVQ0lSUlhGTDEgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIElSREEgUmVjZWl2ZSBGaWx0ZXIgTGVuZ3RoIDEgKi8KKyNkZWZpbmUgVUNJUlJYRkwwICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBJUkRBIFJlY2VpdmUgRmlsdGVyIExlbmd0aCAwICovCisjZGVmaW5lIFVDSVJSWFBMICAgICAgICAgICAgICAgKDB4MDIpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIElucHV0IFBvbGFyaXR5ICovCisjZGVmaW5lIFVDSVJSWEZFICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogSVJEQSBSZWNlaXZlIEZpbHRlciBlbmFibGUgKi8KKworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDgwKSAgICAvKiByZXNlcnZlZCAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDQwKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0RFTElNMSAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIEJyZWFrIFN5bmMgRGVsaW1pdGVyIDEgKi8KKyNkZWZpbmUgVUNERUxJTTAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBCcmVhayBTeW5jIERlbGltaXRlciAwICovCisjZGVmaW5lIFVDU1RPRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogU3luYy1GaWVsZCBUaW1lb3V0IGVycm9yICovCisjZGVmaW5lIFVDQlRPRSAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQnJlYWsgVGltZW91dCBlcnJvciAqLworLy8jZGVmaW5lIHJlcyAgICAgICAgICAgICAgICgweDAyKSAgICAvKiByZXNlcnZlZCAqLworI2RlZmluZSBVQ0FCREVOICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIEF1dG8gQmF1ZCBSYXRlIGRldGVjdCBlbmFibGUgKi8KKworI2RlZmluZSBVQ0dDRU4gICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIEkyQyBHZW5lcmFsIENhbGwgZW5hYmxlICovCisjZGVmaW5lIFVDT0E5ICAgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNPQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgOCAqLworI2RlZmluZSBVQ09BNyAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA3ICovCisjZGVmaW5lIFVDT0E2ICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNPQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgNSAqLworI2RlZmluZSBVQ09BNCAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyA0ICovCisjZGVmaW5lIFVDT0EzICAgICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNPQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgT3duIEFkZHJlc3MgMiAqLworI2RlZmluZSBVQ09BMSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEkyQyBPd24gQWRkcmVzcyAxICovCisjZGVmaW5lIFVDT0EwICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogSTJDIE93biBBZGRyZXNzIDAgKi8KKworI2RlZmluZSBVQ1NBOSAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDkgKi8KKyNkZWZpbmUgVUNTQTggICAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA4ICovCisjZGVmaW5lIFVDU0E3ICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNyAqLworI2RlZmluZSBVQ1NBNiAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDYgKi8KKyNkZWZpbmUgVUNTQTUgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyA1ICovCisjZGVmaW5lIFVDU0E0ICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgNCAqLworI2RlZmluZSBVQ1NBMyAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDMgKi8KKyNkZWZpbmUgVUNTQTIgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBJMkMgU2xhdmUgQWRkcmVzcyAyICovCisjZGVmaW5lIFVDU0ExICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogSTJDIFNsYXZlIEFkZHJlc3MgMSAqLworI2RlZmluZSBVQ1NBMCAgICAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIEkyQyBTbGF2ZSBBZGRyZXNzIDAgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBVeENUTCAqLworI2RlZmluZSBQRU5BICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFBhcml0eSBlbmFibGUgKi8KKyNkZWZpbmUgUEVWICAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBQYXJpdHkgMDpvZGQgLyAxOmV2ZW4gKi8KKyNkZWZpbmUgU1BCICAgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBTdG9wIEJpdHMgMDpvbmUgLyAxOiB0d28gKi8KKyNkZWZpbmUgQ0hBUiAgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBEYXRhIDA6Ny1iaXRzIC8gMTo4LWJpdHMgKi8KKyNkZWZpbmUgTElTVEVOICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBMaXN0ZW4gbW9kZSAqLworI2RlZmluZSBTWU5DICAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFVBUlQgLyBTUEkgbW9kZSAqLworI2RlZmluZSBNTSAgICAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIE1hc3RlciBNb2RlIG9mZi9vbiAqLworI2RlZmluZSBTV1JTVCAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIFVTQVJUIFNvZnR3YXJlIFJlc2V0ICovCisKKy8qIFV4VENUTCAqLworI2RlZmluZSBDS1BIICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIFNQSTogQ2xvY2sgUGhhc2UgKi8KKyNkZWZpbmUgQ0tQTCAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDbG9jayBQb2xhcml0eSAqLworI2RlZmluZSBTU0VMMSAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBTU0VMMCAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIENsb2NrIFNvdXJjZSBTZWxlY3QgMCAqLworI2RlZmluZSBVUlhTRSAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIFJlY2VpdmUgU3RhcnQgZWRnZSBzZWxlY3QgKi8KKyNkZWZpbmUgVFhXQUtFICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBUWCBXYWtlIHVwIG1vZGUgKi8KKyNkZWZpbmUgU1RDICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBTUEk6IFNUQyBlbmFibGUgMDpvbiAvIDE6b2ZmICovCisjZGVmaW5lIFRYRVBUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogVFggQnVmZmVyIGVtcHR5ICovCisKKy8qIFV4UkNUTCAqLworI2RlZmluZSBGRSAgICAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIEZyYW1lIEVycm9yICovCisjZGVmaW5lIFBFICAgICAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogUGFyaXR5IEVycm9yICovCisjZGVmaW5lIE9FICAgICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogT3ZlcnJ1biBFcnJvciAqLworI2RlZmluZSBCUksgICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIEJyZWFrIGRldGVjdGVkICovCisjZGVmaW5lIFVSWEVJRSAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogUlggRXJyb3IgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBVUlhXSUUgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIFJYIFdha2UgdXAgaW50ZXJydXB0IGVuYWJsZSAqLworI2RlZmluZSBSWFdBS0UgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFJYIFdha2UgdXAgZGV0ZWN0ICovCisjZGVmaW5lIFJYRVJSICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogUlggRXJyb3IgRXJyb3IgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBVU0FSVCAxCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19VQVJUMV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChVMUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCitTRlJfOEJJVChVMVRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCitTRlJfOEJJVChVMVJDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KK1NGUl84QklUKFUxTUNUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworU0ZSXzhCSVQoVTFCUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KK1NGUl84QklUKFUxQlIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCitTRlJfOEJJVChVMVJYQlVGKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworU0ZSXzhCSVQoVTFUWEJVRik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworCisjZGVmaW5lIFVDVEwxICAgICAgICAgICAgICAgICAgVTFDVEwgICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMSAgICAgICAgICAgICAgICAgVTFUQ1RMICAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMSAgICAgICAgICAgICAgICAgVTFSQ1RMICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwxICAgICAgICAgICAgICAgICBVMU1DVEwgICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMSAgICAgICAgICAgICAgICAgIFUxQlIwICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTEgICAgICAgICAgICAgICAgICBVMUJSMSAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMSAgICAgICAgICAgICAgICAgVTFSWEJVRiAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjEgICAgICAgICAgICAgICAgIFUxVFhCVUYgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVEwxXyAgICAgICAgICAgICAgICAgVTFDVExfICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMMV8gICAgICAgICAgICAgICAgVTFUQ1RMXyAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMMV8gICAgICAgICAgICAgICAgVTFSQ1RMXyAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVEwxXyAgICAgICAgICAgICAgICBVMU1DVExfICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwMV8gICAgICAgICAgICAgICAgIFUxQlIwXyAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMTFfICAgICAgICAgICAgICAgICBVMUJSMV8gICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGMV8gICAgICAgICAgICAgICAgVTFSWEJVRl8gICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRjFfICAgICAgICAgICAgICAgIFUxVFhCVUZfICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMSAgICAgICAgICAgICAgICAgVTFDVEwgICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzEgICAgICAgICAgICAgICAgVTFUQ1RMICAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzEgICAgICAgICAgICAgICAgVTFSQ1RMICAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMSAgICAgICAgICAgICAgICBVMU1DVEwgICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzEgICAgICAgICAgICAgICAgIFUxQlIwICAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8xICAgICAgICAgICAgICAgICBVMUJSMSAgICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzEgICAgICAgICAgICAgICAgVTFSWEJVRiAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8xICAgICAgICAgICAgICAgIFUxVFhCVUYgICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisjZGVmaW5lIFVDVExfMV8gICAgICAgICAgICAgICAgVTFDVExfICAgICAgICAgLyogVVNBUlQgMSBDb250cm9sICovCisjZGVmaW5lIFVUQ1RMXzFfICAgICAgICAgICAgICAgVTFUQ1RMXyAgICAgICAgLyogVVNBUlQgMSBUcmFuc21pdCBDb250cm9sICovCisjZGVmaW5lIFVSQ1RMXzFfICAgICAgICAgICAgICAgVTFSQ1RMXyAgICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIENvbnRyb2wgKi8KKyNkZWZpbmUgVU1DVExfMV8gICAgICAgICAgICAgICBVMU1DVExfICAgICAgICAvKiBVU0FSVCAxIE1vZHVsYXRpb24gQ29udHJvbCAqLworI2RlZmluZSBVQlIwXzFfICAgICAgICAgICAgICAgIFUxQlIwXyAgICAgICAgIC8qIFVTQVJUIDEgQmF1ZCBSYXRlIDAgKi8KKyNkZWZpbmUgVUJSMV8xXyAgICAgICAgICAgICAgICBVMUJSMV8gICAgICAgICAvKiBVU0FSVCAxIEJhdWQgUmF0ZSAxICovCisjZGVmaW5lIFJYQlVGXzFfICAgICAgICAgICAgICAgVTFSWEJVRl8gICAgICAgLyogVVNBUlQgMSBSZWNlaXZlIEJ1ZmZlciAqLworI2RlZmluZSBUWEJVRl8xXyAgICAgICAgICAgICAgIFUxVFhCVUZfICAgICAgIC8qIFVTQVJUIDEgVHJhbnNtaXQgQnVmZmVyICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogV0FUQ0hET0cgVElNRVIKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1dEVF9fICAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChXRFRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXYXRjaGRvZyBUaW1lciBDb250cm9sICovCisvKiBUaGUgYml0IG5hbWVzIGhhdmUgYmVlbiBwcmVmaXhlZCB3aXRoICJXRFQiICovCisjZGVmaW5lIFdEVElTMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkKKyNkZWZpbmUgV0RUSVMxICAgICAgICAgICAgICAgICAoMHgwMDAyKQorI2RlZmluZSBXRFRTU0VMICAgICAgICAgICAgICAgICgweDAwMDQpCisjZGVmaW5lIFdEVENOVENMICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgV0RUVE1TRUwgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBXRFROTUkgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFdEVE5NSUVTICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgV0RUSE9MRCAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisjZGVmaW5lIFdEVFBXICAgICAgICAgICAgICAgICAgKDB4NUEwMCkKKworLyogV0RULWludGVydmFsIHRpbWVzIFsxbXNdIGNvZGVkIHdpdGggQml0cyAwLTIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZTTUNMSyAoYXNzdW1lZCAxTUh6KSAqLworI2RlZmluZSBXRFRfTURMWV8zMiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCkgICAgICAgICAgICAgICAgICAgICAgICAgLyogMzJtcyBpbnRlcnZhbCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgV0RUX01ETFlfOCAgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMwKSAgICAgICAgICAgICAgICAgIC8qIDhtcyAgICAgIiAqLworI2RlZmluZSBXRFRfTURMWV8wXzUgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzEpICAgICAgICAgICAgICAgICAgLyogMC41bXMgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfMDY0ICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMStXRFRJUzApICAgICAgICAgICAvKiAwLjA2NG1zICIgKi8KKy8qIFdEVCBpcyBjbG9ja2VkIGJ5IGZBQ0xLIChhc3N1bWVkIDMyS0h6KSAqLworI2RlZmluZSBXRFRfQURMWV8xMDAwICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMKSAgICAgICAgICAgICAgICAgLyogMTAwMG1zICAiICovCisjZGVmaW5lIFdEVF9BRExZXzI1MCAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMwKSAgICAgICAgICAvKiAyNTBtcyAgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMTYgICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzEpICAgICAgICAgIC8qIDE2bXMgICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xXzkgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMStXRFRJUzApICAgLyogMS45bXMgICAiICovCisvKiBXYXRjaGRvZyBtb2RlIC0+IHJlc2V0IGFmdGVyIGV4cGlyZWQgdGltZSAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NUlNUXzMyICAgICAgICAgKFdEVFBXK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTVJTVF84ICAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NUlNUXzBfNSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF8wNjQgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BUlNUXzEwMDAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMjUwICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8xNiAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzFfOSAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAgICAgICAgICAvKiAxLjltcyAgICIgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgKi8KKy8qIFRoZXNlIHR3byBiaXRzIGFyZSBkZWZpbmVkIGluIHRoZSBTcGVjaWFsIEZ1bmN0aW9uIFJlZ2lzdGVycyAqLworLyogI2RlZmluZSBXRFRJRSAgICAgICAgICAgICAgIDB4MDEgKi8KKy8qICNkZWZpbmUgV0RUSUZHICAgICAgICAgICAgICAweDAxICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZDMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI3ByYWdtYSBkaWFnX3N1cHByZXNzIDExMDcgCisjZGVmaW5lIFZFQ1RPUl9OQU1FKG5hbWUpICAgICAgICAgICAgIG5hbWUjI19wdHIKKyNkZWZpbmUgRU1JVF9QUkFHTUEoeCkgICAgICAgICAgICAgICAgX1ByYWdtYSgjeCkKKyNkZWZpbmUgQ1JFQVRFX1ZFQ1RPUihuYW1lKSAgICAgICAgICAgdm9pZCAqIGNvbnN0IFZFQ1RPUl9OQU1FKG5hbWUpID0gKHZvaWQgKikobG9uZykmbmFtZQorI2RlZmluZSBQTEFDRV9WRUNUT1IodmVjdG9yLHNlY3Rpb24pICBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBQTEFDRV9JTlRFUlJVUFQoZnVuYykgICAgICAgICBFTUlUX1BSQUdNQShDT0RFX1NFQ1RJT04oZnVuYywiLnRleHQ6X2lzciIpKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSAgICAgICBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX0lOVEVSUlVQVChmdW5jKQorCisjZGVmaW5lIERBQzEyX1ZFQ1RPUiAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkRDIERBQyAxMiAqLworLyojZGVmaW5lIERBQzEyX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGREMgREFDIDEyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBETUFfVkVDVE9SICAgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZERSBETUEgKi8KKy8qI2RlZmluZSBETUFfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkRFIERNQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQkFTSUNUSU1FUl9WRUNUT1IgICAgICAgKDE2ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTAgQmFzaWMgVGltZXIgLyBSVEMgKi8KKy8qI2RlZmluZSBCQVNJQ1RJTUVSX0lTUihmdW5jKSAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTYiKSAgKi8gLyogMHhGRkUwIEJhc2ljIFRpbWVyIC8gUlRDICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBQT1JUMl9WRUNUT1IgICAgICAgICAgICAoMTcgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFMiBQb3J0IDIgKi8KKy8qI2RlZmluZSBQT1JUMl9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTciKSAgKi8gLyogMHhGRkUyIFBvcnQgMiAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNBUlQxVFhfVkVDVE9SICAgICAgICAgKDE4ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTQgVVNBUlQgMSBUcmFuc21pdCAqLworLyojZGVmaW5lIFVTQVJUMVRYX0lTUihmdW5jKSAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxOCIpICAqLyAvKiAweEZGRTQgVVNBUlQgMSBUcmFuc21pdCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVVNBUlQxUlhfVkVDVE9SICAgICAgICAgKDE5ICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTYgVVNBUlQgMSBSZWNlaXZlICovCisvKiNkZWZpbmUgVVNBUlQxUlhfSVNSKGZ1bmMpICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDE5IikgICovIC8qIDB4RkZFNiBVU0FSVCAxIFJlY2VpdmUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICgyMCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU4IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyMCIpICAqLyAvKiAweEZGRTggUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkExX1ZFQ1RPUiAgICAgICAgICAoMjEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQSBUaW1lciBBIENDMS0yLCBUQSAqLworLyojZGVmaW5lIFRJTUVSQTFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyMSIpICAqLyAvKiAweEZGRUEgVGltZXIgQSBDQzEtMiwgVEEgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQTBfVkVDVE9SICAgICAgICAgICgyMiAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkVDIFRpbWVyIEEgQ0MwICovCisvKiNkZWZpbmUgVElNRVJBMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDIyIikgICovIC8qIDB4RkZFQyBUaW1lciBBIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgQURDMTJfVkVDVE9SICAgICAgICAgICAgKDIzICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRUUgQURDICovCisvKiNkZWZpbmUgQURDMTJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDIzIikgICovIC8qIDB4RkZFRSBBREMgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjBUWF9WRUNUT1IgICAgICAgICgyNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYwIFVTQ0kgQTAvQjAgVHJhbnNtaXQgKi8KKy8qI2RlZmluZSBVU0NJQUIwVFhfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MjQiKSAgKi8gLyogMHhGRkYwIFVTQ0kgQTAvQjAgVHJhbnNtaXQgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFVTQ0lBQjBSWF9WRUNUT1IgICAgICAgICgyNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkYyIFVTQ0kgQTAvQjAgUmVjZWl2ZSAqLworLyojZGVmaW5lIFVTQ0lBQjBSWF9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyNSIpICAqLyAvKiAweEZGRjIgVVNDSSBBMC9CMCBSZWNlaXZlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBXRFRfVkVDVE9SICAgICAgICAgICAgICAoMjYgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNCBXYXRjaGRvZyBUaW1lciAqLworLyojZGVmaW5lIFdEVF9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyNiIpICAqLyAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIENPTVBBUkFUT1JBX1ZFQ1RPUiAgICAgICgyNyAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLworLyojZGVmaW5lIENPTVBBUkFUT1JBX0lTUihmdW5jKSAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyNyIpICAqLyAvKiAweEZGRjYgQ29tcGFyYXRvciBBICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUkIxX1ZFQ1RPUiAgICAgICAgICAoMjggKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGOCBUaW1lciBCIENDMS0yLCBUQiAqLworLyojZGVmaW5lIFRJTUVSQjFfSVNSKGZ1bmMpICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQyOCIpICAqLyAvKiAweEZGRjggVGltZXIgQiBDQzEtMiwgVEIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFRJTUVSQjBfVkVDVE9SICAgICAgICAgICgyOSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZBIFRpbWVyIEIgQ0MwICovCisvKiNkZWZpbmUgVElNRVJCMF9JU1IoZnVuYykgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDI5IikgICovIC8qIDB4RkZGQSBUaW1lciBCIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgTk1JX1ZFQ1RPUiAgICAgICAgICAgICAgKDMwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovCisvKiNkZWZpbmUgTk1JX0lTUihmdW5jKSAgICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDMwIikgICovIC8qIDB4RkZGQyBOb24tbWFza2FibGUgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFJFU0VUX1ZFQ1RPUiAgICAgICAgICAgICgzMSAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLworLyojZGVmaW5lIFJFU0VUX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQzMSIpICAqLyAvKiAweEZGRkUgUmVzZXQgW0hpZ2hlc3QgUHJpb3JpdHldICovIC8qIENDRSBWMiBTdHlsZSAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEVuZCBvZiBNb2R1bGVzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmIC8qIGV4dGVybiAiQyIgKi8KKworI2VuZGlmIC8qICNpZm5kZWYgX19tc3A0MzB4RzQ2eCAqLworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweHc0MnguaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90aS9hcHBzL21zcDQzMC9tc3A0MzB4dzQyeC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5ODMyYTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdGkvYXBwcy9tc3A0MzAvbXNwNDMweHc0MnguaApAQCAtMCwwICsxLDk4NCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqCisqIFN0YW5kYXJkIHJlZ2lzdGVyIGFuZCBiaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBUZXhhcyBJbnN0cnVtZW50cworKiBNU1A0MzAgbWljcm9jb250cm9sbGVyLgorKgorKiBUaGlzIGZpbGUgc3VwcG9ydHMgYXNzZW1ibGVyIGFuZCBDIGRldmVsb3BtZW50IGZvcgorKiBNU1A0MzB4VzQyeCBkZXZpY2VzLgorKgorKiBUZXhhcyBJbnN0cnVtZW50cywgVmVyc2lvbiAyLjgKKyoKKyogUmV2LiAyLjEsICBBbGlnbm1lbnQgb2YgZGVmaW50aW9ucyBpbiBVc2VycyBHdWlkZSBhbmQgb2YgdmVyc2lvbiBudW1iZXJzCisqIFJldi4gMi4xMSwgQWRkZWQgU0lGREFDUgorKiAgICAgICAgICAgIEFkZGVkIHVuc2lnbmVkIHRvIFNJRlRTTSBkZWZpbml0aW9uCisqIFJldi4gMi4yLCAgQWxpZ25tZW50IG9mIGRlZmludGlvbnMgaW4gVXNlcnMgR3VpZGUgYW5kIG9mIHZlcnNpb24gbnVtYmVycworKiBSZXYuIDIuMjEsIENoYW5nZWQgQml0bmFtZSBmb3JtIFNJRkxDT0ZGIHRvIFNJRkxDRU4KKyogICAgICAgICAgICBSZW1vdmVkIGRlZmluaXRpb24gb2YgTENETE9XUiAobm90IGF2YWlsYWJsZSBhdCA0eHggZGV2aWNlcykKKyogUmV2LiAyLjMwLCBmaXhlZCBSZWdpc3RlciBuYW1lIHR5cGUgZnJvbSBTSUZUUFNNViB0byBTSUZQU01WCisqIFJldi4gMi4zMSwgZml4ZWQgUmVnaXN0ZXIgbmFtZSBmb3IgU0lGRElWM194IChEaXZpZG9yIGlzICoyKQorKiBSZXYuIDIuNCwgUmVtb3ZlZCB1bnVzZWQgZGVmIG9mIFRBU1NFTDIgLyBUQlNTRUwyCisqIFJldi4gMi41LCBBZGRlZCBWTEQgYml0cyBpbiBTVlMgbW9kdWxlCisqIFJldi4gMi42LCBSZW1vdmVkIGRlZmluaXRpb25zIGZvciBCVFJFU0VUCisqIFJldi4gMi43LCBGaXhlZCBzb21lIGVycm9ycyBpbiBTSUZESVYzX3h4IGRlZmluaXRpb25zCisqIFJldi4gMi44LCBhZGRlZCBkZWZpbml0aW9ucyBmb3IgSW50ZXJydXB0IFZlY3RvcnMgeHhJVgorKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZm5kZWYgX19tc3A0MzB4VzQyeAorI2RlZmluZSBfX21zcDQzMHhXNDJ4CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogUEVSSVBIRVJBTCBGSUxFIE1BUCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisKKy8qIEV4dGVybmFsIHJlZmVyZW5jZXMgcmVzb2x2ZWQgYnkgYSBkZXZpY2Utc3BlY2lmaWMgbGlua2VyIGNvbW1hbmQgZmlsZSAqLworI2RlZmluZSBTRlJfOEJJVChhZGRyZXNzKSAgIGV4dGVybiB2b2xhdGlsZSB1bnNpZ25lZCBjaGFyIGFkZHJlc3MKKyNkZWZpbmUgU0ZSXzE2QklUKGFkZHJlc3MpICBleHRlcm4gdm9sYXRpbGUgdW5zaWduZWQgaW50IGFkZHJlc3MKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNUQU5EQVJEIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBCSVQwICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIEJJVDEgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgQklUMiAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBCSVQzICAgICAgICAgICAgICAgICAgICgweDAwMDgpCisjZGVmaW5lIEJJVDQgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkKKyNkZWZpbmUgQklUNSAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBCSVQ2ICAgICAgICAgICAgICAgICAgICgweDAwNDApCisjZGVmaW5lIEJJVDcgICAgICAgICAgICAgICAgICAgKDB4MDA4MCkKKyNkZWZpbmUgQklUOCAgICAgICAgICAgICAgICAgICAoMHgwMTAwKQorI2RlZmluZSBCSVQ5ICAgICAgICAgICAgICAgICAgICgweDAyMDApCisjZGVmaW5lIEJJVEEgICAgICAgICAgICAgICAgICAgKDB4MDQwMCkKKyNkZWZpbmUgQklUQiAgICAgICAgICAgICAgICAgICAoMHgwODAwKQorI2RlZmluZSBCSVRDICAgICAgICAgICAgICAgICAgICgweDEwMDApCisjZGVmaW5lIEJJVEQgICAgICAgICAgICAgICAgICAgKDB4MjAwMCkKKyNkZWZpbmUgQklURSAgICAgICAgICAgICAgICAgICAoMHg0MDAwKQorI2RlZmluZSBCSVRGICAgICAgICAgICAgICAgICAgICgweDgwMDApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBVFVTIFJFR0lTVEVSIEJJVFMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDICAgICAgICAgICAgICAgICAgICAgICgweDAwMDEpCisjZGVmaW5lIFogICAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikKKyNkZWZpbmUgTiAgICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KQorI2RlZmluZSBWICAgICAgICAgICAgICAgICAgICAgICgweDAxMDApCisjZGVmaW5lIEdJRSAgICAgICAgICAgICAgICAgICAgKDB4MDAwOCkKKyNkZWZpbmUgQ1BVT0ZGICAgICAgICAgICAgICAgICAoMHgwMDEwKQorI2RlZmluZSBPU0NPRkYgICAgICAgICAgICAgICAgICgweDAwMjApCisjZGVmaW5lIFNDRzAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkKKyNkZWZpbmUgU0NHMSAgICAgICAgICAgICAgICAgICAoMHgwMDgwKQorCisvKiBMb3cgUG93ZXIgTW9kZXMgY29kZWQgd2l0aCBCaXRzIDQtNyBpbiBTUiAqLworCisjaWZkZWYgX19BU01fSEVBREVSX18gLyogQmVnaW4gI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworI2RlZmluZSBMUE0wICAgICAgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTEgICAgICAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yICAgICAgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNMyAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNCAgICAgICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisvKiBFbmQgI2RlZmluZXMgZm9yIGFzc2VtYmxlciAqLworCisjZWxzZSAvKiBCZWdpbiAjZGVmaW5lcyBmb3IgQyAqLworI2RlZmluZSBMUE0wX2JpdHMgICAgICAgICAgICAgIChDUFVPRkYpCisjZGVmaW5lIExQTTFfYml0cyAgICAgICAgICAgICAgKFNDRzArQ1BVT0ZGKQorI2RlZmluZSBMUE0yX2JpdHMgICAgICAgICAgICAgIChTQ0cxK0NQVU9GRikKKyNkZWZpbmUgTFBNM19iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK0NQVU9GRikKKyNkZWZpbmUgTFBNNF9iaXRzICAgICAgICAgICAgICAoU0NHMStTQ0cwK09TQ09GRitDUFVPRkYpCisKKyNpbmNsdWRlIDxJbjQzMC5oPgorCisjZGVmaW5lIExQTTAgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTBfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAwICovCisjZGVmaW5lIExQTTBfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNMF9iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDAgKi8KKyNkZWZpbmUgTFBNMSAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNMV9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDEgKi8KKyNkZWZpbmUgTFBNMV9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE0xX2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgMSAqLworI2RlZmluZSBMUE0yICAgICAgICAgX2Jpc19TUl9yZWdpc3RlcihMUE0yX2JpdHMpICAgICAgICAgLyogRW50ZXIgTG93IFBvd2VyIE1vZGUgMiAqLworI2RlZmluZSBMUE0yX0VYSVQgICAgX2JpY19TUl9yZWdpc3Rlcl9vbl9leGl0KExQTTJfYml0cykgLyogRXhpdCBMb3cgUG93ZXIgTW9kZSAyICovCisjZGVmaW5lIExQTTMgICAgICAgICBfYmlzX1NSX3JlZ2lzdGVyKExQTTNfYml0cykgICAgICAgICAvKiBFbnRlciBMb3cgUG93ZXIgTW9kZSAzICovCisjZGVmaW5lIExQTTNfRVhJVCAgICBfYmljX1NSX3JlZ2lzdGVyX29uX2V4aXQoTFBNM19iaXRzKSAvKiBFeGl0IExvdyBQb3dlciBNb2RlIDMgKi8KKyNkZWZpbmUgTFBNNCAgICAgICAgIF9iaXNfU1JfcmVnaXN0ZXIoTFBNNF9iaXRzKSAgICAgICAgIC8qIEVudGVyIExvdyBQb3dlciBNb2RlIDQgKi8KKyNkZWZpbmUgTFBNNF9FWElUICAgIF9iaWNfU1JfcmVnaXN0ZXJfb25fZXhpdChMUE00X2JpdHMpIC8qIEV4aXQgTG93IFBvd2VyIE1vZGUgNCAqLworI2VuZGlmIC8qIEVuZCAjZGVmaW5lcyBmb3IgQyAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFBFUklQSEVSQUwgRklMRSBNQVAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTUEVDSUFMIEZVTkNUSU9OIFJFR0lTVEVSIEFERFJFU1NFUyArIENPTlRST0wgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitTRlJfOEJJVChJRTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUUgICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlFICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIEFDQ1ZJRSAgICAgICAgICAgICAgICAgKDB4MjApCisKK1NGUl84QklUKElGRzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFdEVElGRyAgICAgICAgICAgICAgICAgKDB4MDEpCisjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIE5NSUlGRyAgICAgICAgICAgICAgICAgKDB4MTApCisKK1NGUl84QklUKElFMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRW5hYmxlIDIgKi8KKyNkZWZpbmUgQlRJRSAgICAgICAgICAgICAgICAgICAoMHg4MCkKKworU0ZSXzhCSVQoSUZHMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAgICAoMHg4MCkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfV0RUX18gICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFdEVENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdhdGNoZG9nIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIldEVCIgKi8KKyNkZWZpbmUgV0RUSVMwICAgICAgICAgICAgICAgICAoMHgwMDAxKQorI2RlZmluZSBXRFRJUzEgICAgICAgICAgICAgICAgICgweDAwMDIpCisjZGVmaW5lIFdEVFNTRUwgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNkZWZpbmUgV0RUQ05UQ0wgICAgICAgICAgICAgICAoMHgwMDA4KQorI2RlZmluZSBXRFRUTVNFTCAgICAgICAgICAgICAgICgweDAwMTApCisjZGVmaW5lIFdEVE5NSSAgICAgICAgICAgICAgICAgKDB4MDAyMCkKKyNkZWZpbmUgV0RUTk1JRVMgICAgICAgICAgICAgICAoMHgwMDQwKQorI2RlZmluZSBXRFRIT0xEICAgICAgICAgICAgICAgICgweDAwODApCisKKyNkZWZpbmUgV0RUUFcgICAgICAgICAgICAgICAgICAoMHg1QTAwKQorCisvKiBXRFQtaW50ZXJ2YWwgdGltZXMgWzFtc10gY29kZWQgd2l0aCBCaXRzIDAtMiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZlNNQ0xLIChhc3N1bWVkIDFNSHopICovCisjZGVmaW5lIFdEVF9NRExZXzMyICAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMKSAgICAgICAgICAgICAgICAgICAgICAgICAvKiAzMm1zIGludGVydmFsIChkZWZhdWx0KSAqLworI2RlZmluZSBXRFRfTURMWV84ICAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRJUzApICAgICAgICAgICAgICAgICAgLyogOG1zICAgICAiICovCisjZGVmaW5lIFdEVF9NRExZXzBfNSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVElTMSkgICAgICAgICAgICAgICAgICAvKiAwLjVtcyAgICIgKi8KKyNkZWZpbmUgV0RUX01ETFlfMF8wNjQgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUSVMxK1dEVElTMCkgICAgICAgICAgIC8qIDAuMDY0bXMgIiAqLworLyogV0RUIGlzIGNsb2NrZWQgYnkgZkFDTEsgKGFzc3VtZWQgMzJLSHopICovCisjZGVmaW5lIFdEVF9BRExZXzEwMDAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwpICAgICAgICAgICAgICAgICAvKiAxMDAwbXMgICIgKi8KKyNkZWZpbmUgV0RUX0FETFlfMjUwICAgICAgICAoV0RUUFcrV0RUVE1TRUwrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzApICAgICAgICAgIC8qIDI1MG1zICAgIiAqLworI2RlZmluZSBXRFRfQURMWV8xNiAgICAgICAgIChXRFRQVytXRFRUTVNFTCtXRFRDTlRDTCtXRFRTU0VMK1dEVElTMSkgICAgICAgICAgLyogMTZtcyAgICAiICovCisjZGVmaW5lIFdEVF9BRExZXzFfOSAgICAgICAgKFdEVFBXK1dEVFRNU0VMK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxK1dEVElTMCkgICAvKiAxLjltcyAgICIgKi8KKy8qIFdhdGNoZG9nIG1vZGUgLT4gcmVzZXQgYWZ0ZXIgZXhwaXJlZCB0aW1lICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmU01DTEsgKGFzc3VtZWQgMU1IeikgKi8KKyNkZWZpbmUgV0RUX01SU1RfMzIgICAgICAgICAoV0RUUFcrV0RUQ05UQ0wpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDMybXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIFdEVF9NUlNUXzggICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiA4bXMgICAgICIgKi8KKyNkZWZpbmUgV0RUX01SU1RfMF81ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDAuNW1zICAgIiAqLworI2RlZmluZSBXRFRfTVJTVF8wXzA2NCAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgICAgICAgICAgLyogMC4wNjRtcyAiICovCisvKiBXRFQgaXMgY2xvY2tlZCBieSBmQUNMSyAoYXNzdW1lZCAzMktIeikgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMTAwMCAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIDEwMDBtcyAgIiAqLworI2RlZmluZSBXRFRfQVJTVF8yNTAgICAgICAgIChXRFRQVytXRFRDTlRDTCtXRFRTU0VMK1dEVElTMCkgICAgICAgICAgICAgICAgICAgLyogMjUwbXMgICAiICovCisjZGVmaW5lIFdEVF9BUlNUXzE2ICAgICAgICAgKFdEVFBXK1dEVENOVENMK1dEVFNTRUwrV0RUSVMxKSAgICAgICAgICAgICAgICAgICAvKiAxNm1zICAgICIgKi8KKyNkZWZpbmUgV0RUX0FSU1RfMV85ICAgICAgICAoV0RUUFcrV0RUQ05UQ0wrV0RUU1NFTCtXRFRJUzErV0RUSVMwKSAgICAgICAgICAgIC8qIDEuOW1zICAgIiAqLworCisvKiBJTlRFUlJVUFQgQ09OVFJPTCAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIFdEVElFICAgICAgICAgICAgICAgMHgwMSAqLworLyogI2RlZmluZSBXRFRJRkcgICAgICAgICAgICAgIDB4MDEgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0MS8yCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUMV9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDJfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoUDFJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnB1dCAqLworU0ZSXzhCSVQoUDFPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBPdXRwdXQgKi8KK1NGUl84QklUKFAxRElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDEgRGlyZWN0aW9uICovCitTRlJfOEJJVChQMUlGRyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBGbGFnICovCitTRlJfOEJJVChQMUlFUyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIEludGVycnVwdCBFZGdlIFNlbGVjdCAqLworU0ZSXzhCSVQoUDFJRSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMSBJbnRlcnJ1cHQgRW5hYmxlICovCitTRlJfOEJJVChQMVNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAxIFNlbGVjdGlvbiAqLworCitTRlJfOEJJVChQMklOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIElucHV0ICovCitTRlJfOEJJVChQMk9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIE91dHB1dCAqLworU0ZSXzhCSVQoUDJESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMiBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFAySUZHKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEZsYWcgKi8KK1NGUl84QklUKFAySUVTKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgSW50ZXJydXB0IEVkZ2UgU2VsZWN0ICovCitTRlJfOEJJVChQMklFKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAyIEludGVycnVwdCBFbmFibGUgKi8KK1NGUl84QklUKFAyU0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDIgU2VsZWN0aW9uICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRElHSVRBTCBJL08gUG9ydDMvNAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfUE9SVDNfXyAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ0X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKFAzSU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgSW5wdXQgKi8KK1NGUl84QklUKFAzT1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDMgT3V0cHV0ICovCitTRlJfOEJJVChQM0RJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCAzIERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDNTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgMyBTZWxlY3Rpb24gKi8KKworU0ZSXzhCSVQoUDRJTik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBJbnB1dCAqLworU0ZSXzhCSVQoUDRPVVQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNCBPdXRwdXQgKi8KK1NGUl84QklUKFA0RElSKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDQgRGlyZWN0aW9uICovCitTRlJfOEJJVChQNFNFTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA0IFNlbGVjdGlvbiAqLworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQ1LzYKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1BPUlQ1X18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19QT1JUNl9fICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChQNUlOKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IElucHV0ICovCitTRlJfOEJJVChQNU9VVCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA1IE91dHB1dCAqLworU0ZSXzhCSVQoUDVESVIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNSBEaXJlY3Rpb24gKi8KK1NGUl84QklUKFA1U0VMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDUgU2VsZWN0aW9uICovCisKK1NGUl84QklUKFA2SU4pOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgSW5wdXQgKi8KK1NGUl84QklUKFA2T1VUKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBQb3J0IDYgT3V0cHV0ICovCitTRlJfOEJJVChQNkRJUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogUG9ydCA2IERpcmVjdGlvbiAqLworU0ZSXzhCSVQoUDZTRUwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFBvcnQgNiBTZWxlY3Rpb24gKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCQVNJQyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfQlRfXyAgICAgICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoQlRDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvbnRyb2wgKi8KKy8qIFRoZSBiaXQgbmFtZXMgaGF2ZSBiZWVuIHByZWZpeGVkIHdpdGggIkJUIiAqLworI2RlZmluZSBCVElQMCAgICAgICAgICAgICAgICAgICgweDAxKQorI2RlZmluZSBCVElQMSAgICAgICAgICAgICAgICAgICgweDAyKQorI2RlZmluZSBCVElQMiAgICAgICAgICAgICAgICAgICgweDA0KQorI2RlZmluZSBCVEZSRlEwICAgICAgICAgICAgICAgICgweDA4KQorI2RlZmluZSBCVEZSRlExICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBCVERJViAgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIGZDTEsyID0gQUNMSzoyNTYgKi8KKyNkZWZpbmUgQlRIT0xEICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBCVDEgaXMgaGVsZCBpZiB0aGlzIGJpdCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRTU0VMICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBmQlQgPSBmTUNMSyAobWFpbiBjbG9jaykgKi8KKworU0ZSXzhCSVQoQlRDTlQxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEJhc2ljIFRpbWVyIENvdW50IDEgKi8KK1NGUl84QklUKEJUQ05UMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBCYXNpYyBUaW1lciBDb3VudCAyICovCisKKy8qIEZyZXF1ZW5jeSBvZiB0aGUgQlRDTlQyIGNvZGVkIHdpdGggQml0IDUgYW5kIDcgaW4gQlRDVEwgKi8KKyNkZWZpbmUgQlRfZkNMSzJfQUNMSyAgICAgICAgICAoMHgwMCkKKyNkZWZpbmUgQlRfZkNMSzJfQUNMS19ESVYyNTYgICAoQlRESVYpCisjZGVmaW5lIEJUX2ZDTEsyX01DTEsgICAgICAgICAgKEJUU1NFTCkKKworLyogSW50ZXJydXB0IGludGVydmFsIHRpbWUgZklOVCBjb2RlZCB3aXRoIEJpdHMgMC0yIGluIEJUQ1RMICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjIgICAgICAgICAgKDB4MDApICAgICAgICAgLyogZklOVCA9IGZDTEsyOjIgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX2ZDTEsyX0RJVjQgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogZklOVCA9IGZDTEsyOjQgKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWOCAgICAgICAgICAoQlRJUDEpICAgICAgICAvKiBmSU5UID0gZkNMSzI6OCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxNiAgICAgICAgIChCVElQMStCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjoxNiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYzMiAgICAgICAgIChCVElQMikgICAgICAgIC8qIGZJTlQgPSBmQ0xLMjozMiAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVY2NCAgICAgICAgIChCVElQMitCVElQMCkgIC8qIGZJTlQgPSBmQ0xLMjo2NCAqLworI2RlZmluZSBCVF9mQ0xLMl9ESVYxMjggICAgICAgIChCVElQMitCVElQMSkgIC8qIGZJTlQgPSBmQ0xLMjoxMjggKi8KKyNkZWZpbmUgQlRfZkNMSzJfRElWMjU2ICAgICAoQlRJUDIrQlRJUDErQlRJUDApICAgICAgIC8qIGZJTlQgPSBmQ0xLMjoyNTYgKi8KKy8qIEZyZXF1ZW5jeSBvZiBMQ0QgY29kZWQgd2l0aCBCaXRzIDMtNCAqLworI2RlZmluZSBCVF9mTENEX0RJVjMyICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZMQ0QgPSBmQUNMSzozMiAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVY2NCAgICAgICAgICAoQlRGUkZRMCkgICAgICAvKiBmTENEID0gZkFDTEs6NjQgKi8KKyNkZWZpbmUgQlRfZkxDRF9ESVYxMjggICAgICAgICAoQlRGUkZRMSkgICAgICAvKiBmTENEID0gZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfRElWMjU2ICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmTENEID0gZkFDTEs6MjU2ICovCisvKiBMQ0QgZnJlcXVlbmN5IHZhbHVlcyB3aXRoIGZCVD1mQUNMSyAqLworI2RlZmluZSBCVF9mTENEXzFLICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIGZBQ0xLOjMyIChkZWZhdWx0KSAqLworI2RlZmluZSBCVF9mTENEXzUxMiAgICAgICAgICAgIChCVEZSRlEwKSAgICAgIC8qIGZBQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfMjU2ICAgICAgICAgICAgKEJURlJGUTEpICAgICAgLyogZkFDTEs6MTI4ICovCisjZGVmaW5lIEJUX2ZMQ0RfMTI4ICAgICAgICAgKEJURlJGUTErQlRGUkZRMCkgICAgICAgICAvKiBmQUNMSzoyNTYgKi8KKy8qIExDRCBmcmVxdWVuY3kgdmFsdWVzIHdpdGggZkJUPWZNQ0xLICovCisjZGVmaW5lIEJUX2ZMQ0RfMzFLICAgICAgICAgICAgKEJUU1NFTCkgICAgICAgLyogZk1DTEs6MzIgKi8KKyNkZWZpbmUgQlRfZkxDRF8xNV81SyAgICAgICAoQlRTU0VMK0JURlJGUTApICAgICAgICAgIC8qIGZNQ0xLOjY0ICovCisjZGVmaW5lIEJUX2ZMQ0RfN184SyAgICAgICAgKEJUU1NFTCtCVEZSRlExK0JURlJGUTApICAvKiBmTUNMSzoyNTYgKi8KKy8qIHdpdGggYXNzdW1lZCB2bHVlcyBvZiBmQUNMSz0zMktIeiwgZk1DTEs9MU1IeiAqLworLyogZkJUPWZBQ0xLIGlzIHRob3VnaHQgZm9yIGxvbmdlciBpbnRlcnZhbCB0aW1lcyAqLworI2RlZmluZSBCVF9BRExZXzBfMDY0ICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIDAuMDY0bXMgaW50ZXJ2YWwgKGRlZmF1bHQpICovCisjZGVmaW5lIEJUX0FETFlfMF8xMjUgICAgICAgICAgKEJUSVAwKSAgICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF8yNSAgICAgICAgICAgKEJUSVAxKSAgICAgICAgLyogMC4yNW1zICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMF81ICAgICAgICAgICAgKEJUSVAxK0JUSVAwKSAgLyogMC41bXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMSAgICAgICAgICAgICAgKEJUSVAyKSAgICAgICAgLyogMW1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMiAgICAgICAgICAgICAgKEJUSVAyK0JUSVAwKSAgLyogMm1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfNCAgICAgICAgICAgICAgKEJUSVAyK0JUSVAxKSAgLyogNG1zICAgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfOCAgICAgICAgICAgKEJUSVAyK0JUSVAxK0JUSVAwKSAgICAgICAvKiA4bXMgICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xNiAgICAgICAgICAgICAoQlRESVYpICAgICAgICAvKiAxNm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8zMiAgICAgICAgICAgICAoQlRESVYrQlRJUDApICAvKiAzMm1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV82NCAgICAgICAgICAgICAoQlRESVYrQlRJUDEpICAvKiA2NG1zICAgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8xMjUgICAgICAgICAoQlRESVYrQlRJUDErQlRJUDApICAgICAgIC8qIDEyNW1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzI1MCAgICAgICAgICAgIChCVERJVitCVElQMikgIC8qIDI1MG1zICAgICAgIiAqLworI2RlZmluZSBCVF9BRExZXzUwMCAgICAgICAgIChCVERJVitCVElQMitCVElQMCkgICAgICAgLyogNTAwbXMgICAgICAiICovCisjZGVmaW5lIEJUX0FETFlfMTAwMCAgICAgICAgKEJURElWK0JUSVAyK0JUSVAxKSAgICAgICAvKiAxMDAwbXMgICAgICIgKi8KKyNkZWZpbmUgQlRfQURMWV8yMDAwICAgICAgICAoQlRESVYrQlRJUDIrQlRJUDErQlRJUDApIC8qIDIwMDBtcyAgICAgIiAqLworLyogZkNMSzI9Zk1DTEsgKDFNSHopIGlzIHRob3VnaHQgZm9yIHNob3J0IGludGVydmFsIHRpbWVzICovCisvKiB0aGUgdGltaW5nIGZvciBzaG9ydCBpbnRlcnZhbHMgaXMgbW9yZSBwcmVjaXNlIHRoYW4gQUNMSyAqLworLyogTk9URSAqLworLyogQmUgc3VyZSB0aGF0IHRoZSBTQ0ZRQ1RMLVJlZ2lzdGVyIGlzIHNldCB0byAwMUZoIHNvIHRoYXQgZk1DTEs9MU1IeiAqLworLyogVG9vIGxvdyBpbnRlcnZhbCB0aW1lIHJlc3VsdHMgaW4gaW50ZXJydXB0cyB0b28gZnJlcXVlbnQgZm9yIHRoZSBwcm9jZXNzb3IgdG8gaGFuZGxlISAqLworI2RlZmluZSBCVF9NRExZXzBfMDAyICAgICAgICAgIChCVFNTRUwpICAgICAgIC8qIDAuMDAybXMgaW50ZXJ2YWwgICAgICAgKioqIGludGVydmFsIHRpbWVzICovCisjZGVmaW5lIEJUX01ETFlfMF8wMDQgICAgICAgICAgKEJUU1NFTCtCVElQMCkgLyogMC4wMDRtcyAgICAiICAgICAgICAgICAqKiogdG9vIHNob3J0IGZvciAqLworI2RlZmluZSBCVF9NRExZXzBfMDA4ICAgICAgICAgIChCVFNTRUwrQlRJUDEpIC8qIDAuMDA4bXMgICAgIiAgICAgICAgICAgKioqIGludGVycnVwdCAqLworI2RlZmluZSBCVF9NRExZXzBfMDE2ICAgICAgIChCVFNTRUwrQlRJUDErQlRJUDApICAgICAgLyogMC4wMTZtcyAgICAiICAgICAgICAgICAqKiogaGFuZGxpbmcgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzAzMiAgICAgICAgICAoQlRTU0VMK0JUSVAyKSAvKiAwLjAzMm1zICAgICIgKi8KKyNkZWZpbmUgQlRfTURMWV8wXzA2NCAgICAgICAoQlRTU0VMK0JUSVAyK0JUSVAwKSAgICAgIC8qIDAuMDY0bXMgICAgIiAqLworI2RlZmluZSBCVF9NRExZXzBfMTI1ICAgICAgIChCVFNTRUwrQlRJUDIrQlRJUDEpICAgICAgLyogMC4xMjVtcyAgICAiICovCisjZGVmaW5lIEJUX01ETFlfMF8yNSAgICAgICAgKEJUU1NFTCtCVElQMitCVElQMStCVElQMCkvKiAwLjI1bXMgICAgICIgKi8KKworLyogUmVzZXQvSG9sZCBjb2RlZCB3aXRoIEJpdHMgNi03IGluIEJUKDEpQ1RMICovCisvKiB0aGlzIGlzIGZvciBCVCAqLworLy8jZGVmaW5lIEJUUkVTRVRfQ05UMSAgICAgICAgKEJUUkVTRVQpICAgICAgICAgICAvKiBCVENOVDEgaXMgcmVzZXQgd2hpbGUgQlRSRVNFVCBpcyBzZXQgKi8KKy8vI2RlZmluZSBCVFJFU0VUX0NOVDFfMiAgICAgIChCVFJFU0VUK0JURElWKSAgICAgLyogQlRDTlQxIC5BTkQuIEJUQ05UMiBhcmUgcmVzZXQgd2hpbGUgfiBpcyBzZXQgKi8KKy8qIHRoaXMgaXMgZm9yIEJUMSAqLworI2RlZmluZSBCVEhPTERfQ05UMSAgICAgICAgICAgIChCVEhPTEQpICAgICAgIC8qIEJUQ05UMSBpcyBoZWxkIHdoaWxlIEJUSE9MRCBpcyBzZXQgKi8KKyNkZWZpbmUgQlRIT0xEX0NOVDFfMiAgICAgICAgICAoQlRIT0xEK0JURElWKSAvKiBCVDFDTlQxIC5BTkQuIEJUMUNOVDIgYXJlIGhlbGQgd2hpbGUgfiBpcyBzZXQgKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogI2RlZmluZSBCVElFICAgICAgICAgICAgICAgIDB4ODAgKi8KKy8qICNkZWZpbmUgQlRJRkcgICAgICAgICAgICAgICAweDgwICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1lTVEVNIENMT0NLLCBGTEwrICh4NDF4KQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfRkxMUExVU19TTUFMTF9fICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzhCSVQoU0NGSTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAwICovCisjZGVmaW5lIEZOXzIgICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogZkRDT0NMSyA9ICAgMS40LTEyTUh6Ki8KKyNkZWZpbmUgRk5fMyAgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBmRENPQ0xLID0gICAyLjItMTdNaHoqLworI2RlZmluZSBGTl80ICAgICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIGZEQ09DTEsgPSAgIDMuMi0yNU1oeiovCisjZGVmaW5lIEZOXzggICAgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogZkRDT0NMSyA9ICAgICA1LTQwTWh6Ki8KKyNkZWZpbmUgRkxMRDAgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBMb29wIERpdmlkZXIgQml0IDogMCAqLworI2RlZmluZSBGTExEMSAgICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIExvb3AgRGl2aWRlciBCaXQgOiAxICovCisKKyNkZWZpbmUgRkxMRF8xICAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDEgKi8KKyNkZWZpbmUgRkxMRF8yICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDIgKi8KKyNkZWZpbmUgRkxMRF80ICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDQgKi8KKyNkZWZpbmUgRkxMRF84ICAgICAgICAgICAgICAgICAoMHhDMCkgICAgICAgICAvKiBNdWx0aXBseSBTZWxlY3RlZCBMb29wIEZyZXEuIEJ5IDggKi8KKworU0ZSXzhCSVQoU0NGSTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFN5c3RlbSBDbG9jayBGcmVxdWVuY3kgSW50ZWdyYXRvciAxICovCitTRlJfOEJJVChTQ0ZRQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU3lzdGVtIENsb2NrIEZyZXF1ZW5jeSBDb250cm9sICovCisvKiBTeXN0ZW0gY2xvY2sgZnJlcXVlbmN5IHZhbHVlcyBmTUNMSyBjb2RlZCB3aXRoIEJpdHMgMC02IGluIFNDRlFDVEwgKi8KKy8qICNkZWZpbmUgU0NGUV8zMksgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAgZk1DTEs9MSpmQUNMSyAgICAgICBvbmx5IGEgcmFuZ2UgZnJvbSAqLworI2RlZmluZSBTQ0ZRXzY0SyAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIGZNQ0xLPTIqZkFDTEsgICAgICAgICAgMSsxIHRvIDEyNysxIGlzIHBvc3NpYmxlICovCisjZGVmaW5lIFNDRlFfMTI4SyAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogZk1DTEs9NCpmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzI1NksgICAgICAgICAgICAgICgweDA3KSAgICAgICAgIC8qIGZNQ0xLPTgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV81MTJLICAgICAgICAgICAgICAoMHgwRikgICAgICAgICAvKiBmTUNMSz0xNipmQUNMSyAqLworI2RlZmluZSBTQ0ZRXzFNICAgICAgICAgICAgICAgICgweDFGKSAgICAgICAgIC8qIGZNQ0xLPTMyKmZBQ0xLICovCisjZGVmaW5lIFNDRlFfMk0gICAgICAgICAgICAgICAgKDB4M0YpICAgICAgICAgLyogZk1DTEs9NjQqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV80TSAgICAgICAgICAgICAgICAoMHg3RikgICAgICAgICAvKiBmTUNMSz0xMjgqZkFDTEsgKi8KKyNkZWZpbmUgU0NGUV9NICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBNb2R1bGF0aW9uIERpc2FibGUgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAwICovCisjZGVmaW5lIERDT0YgICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRENPIEZhdWx0IEZsYWcgKi8KKyNkZWZpbmUgTEZPRiAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBMb3cgRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBYVDFPRiAgICAgICAgICAgICAgICAgICgweDA0KSAgICAgICAgIC8qIEhpZ2ggRnJlcXVlbmN5IE9zY2lsbGF0b3IgRmF1bHQgRmxhZyAqLworI2RlZmluZSBPU0NDQVAwICAgICAgICAgICAgICAgICgweDEwKSAgICAgICAgIC8qIFhJTi9YT1VUIENhcCAwICovCisjZGVmaW5lIE9TQ0NBUDEgICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOL1hPVVQgQ2FwIDEgKi8KKyNkZWZpbmUgWFRTX0ZMTCAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiAxOiBTZWxlY3RzIGhpZ2gtZnJlcS4gb3NjaWxsYXRvciAqLworI2RlZmluZSBEQ09QTFVTICAgICAgICAgICAgICAgICgweDgwKSAgICAgICAgIC8qIERDTysgRW5hYmxlICovCisKKyNkZWZpbmUgWENBUDBQRiAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgWENBUDEwUEYgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIFhDQVAxNFBGICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBYQ0FQMThQRiAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzAgICAgICAgICAgICAgICAoMHgwMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAwcGYgKi8KKyNkZWZpbmUgT1NDQ0FQXzEgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBYSU4gQ2FwID0gWE9VVCBDYXAgPSAxMHBmICovCisjZGVmaW5lIE9TQ0NBUF8yICAgICAgICAgICAgICAgKDB4MjApICAgICAgICAgLyogWElOIENhcCA9IFhPVVQgQ2FwID0gMTRwZiAqLworI2RlZmluZSBPU0NDQVBfMyAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIFhJTiBDYXAgPSBYT1VUIENhcCA9IDE4cGYgKi8KKworU0ZSXzhCSVQoRkxMX0NUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZMTCsgQ29udHJvbCAxICovCisjZGVmaW5lIEZMTF9ESVYwICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIDAgKi8KKyNkZWZpbmUgRkxMX0RJVjEgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgMSAqLworCisjZGVmaW5lIEZMTF9ESVZfMSAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDEgKi8KKyNkZWZpbmUgRkxMX0RJVl8yICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBGTEwrIERpdmlkZSBQeC54L0FDTEsgQnkgMiAqLworI2RlZmluZSBGTExfRElWXzQgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIEZMTCsgRGl2aWRlIFB4LngvQUNMSyBCeSA0ICovCisjZGVmaW5lIEZMTF9ESVZfOCAgICAgICAgICAgICAgKDB4MDMpICAgICAgICAgLyogRkxMKyBEaXZpZGUgUHgueC9BQ0xLIEJ5IDggKi8KKworLyogSU5URVJSVVBUIENPTlRST0wgQklUUyAqLworLyogVGhlc2UgdHdvIGJpdHMgYXJlIGRlZmluZWQgaW4gdGhlIFNwZWNpYWwgRnVuY3Rpb24gUmVnaXN0ZXJzICovCisvKiAjZGVmaW5lIE9GSUZHICAgICAgICAgICAgICAgMHgwMiAqLworLyogI2RlZmluZSBPRklFICAgICAgICAgICAgICAgIDB4MDIgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCcm93bi1PdXQsIFN1cHBseSBWb2x0YWdlIFN1cGVydmlzaW9uIChTVlMpCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19TVlNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChTVlNDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU1ZTIENvbnRyb2wgKi8KKyNkZWZpbmUgU1ZTRkcgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBTVlMgRmxhZyAqLworI2RlZmluZSBTVlNPUCAgICAgICAgICAgICAgICAgICgweDAyKSAgICAgICAgIC8qIFNWUyBvdXRwdXQgKHJlYWQgb25seSkgKi8KKyNkZWZpbmUgU1ZTT04gICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBTd2l0Y2hlcyB0aGUgU1ZTIG9uL29mZiAqLworI2RlZmluZSBQT1JPTiAgICAgICAgICAgICAgICAgICgweDA4KSAgICAgICAgIC8qIEVuYWJsZSBQT1IgR2VuZXJhdGlvbiBpZiBMb3cgVm9sdGFnZSAqLworI2RlZmluZSBWTEQwICAgICAgICAgICAgICAgICAgICgweDEwKQorI2RlZmluZSBWTEQxICAgICAgICAgICAgICAgICAgICgweDIwKQorI2RlZmluZSBWTEQyICAgICAgICAgICAgICAgICAgICgweDQwKQorI2RlZmluZSBWTEQzICAgICAgICAgICAgICAgICAgICgweDgwKQorCisjZGVmaW5lIFZMRE9OICAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIFZMRE9GRiAgICAgICAgICAgICAgICAgKDB4MDApCisjZGVmaW5lIFZMRF8xXzhWICAgICAgICAgICAgICAgKDB4MTApCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogTENECisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19MQ0Q0X18gICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfOEJJVChMQ0RDVEwpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIENvbnRyb2wgKi8KKy8qIHRoZSBuYW1lcyBvZiB0aGUgbW9kZSBiaXRzIGFyZSBkaWZmZXJlbnQgZnJvbSB0aGUgc3BlYyAqLworI2RlZmluZSBMQ0RPTiAgICAgICAgICAgICAgICAgICgweDAxKQorLy8jZGVmaW5lIExDRExPV1IgICAgICAgICAgICAgKDB4MDIpCisjZGVmaW5lIExDRFNPTiAgICAgICAgICAgICAgICAgKDB4MDQpCisjZGVmaW5lIExDRE1YMCAgICAgICAgICAgICAgICAgKDB4MDgpCisjZGVmaW5lIExDRE1YMSAgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIExDRFAwICAgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIExDRFAxICAgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIExDRFAyICAgICAgICAgICAgICAgICAgKDB4ODApCisvKiBEaXNwbGF5IG1vZGVzIGNvZGVkIHdpdGggQml0cyAyLTQgKi8KKyNkZWZpbmUgTENEU1RBVElDICAgICAgICAgICAgICAoTENEU09OKQorI2RlZmluZSBMQ0QyTVVYICAgICAgICAgICAgICAgIChMQ0RNWDArTENEU09OKQorI2RlZmluZSBMQ0QzTVVYICAgICAgICAgICAgICAgIChMQ0RNWDErTENEU09OKQorI2RlZmluZSBMQ0Q0TVVYICAgICAgICAgICAgICAgIChMQ0RNWDErTENETVgwK0xDRFNPTikKKy8qIEdyb3VwIHNlbGVjdCBjb2RlIHdpdGggQml0cyA1LTcgICAgICAgICAgICAgICAgICAgICBTZWcubGluZXMgICBEaWcub3V0cHV0ICovCisjZGVmaW5lIExDRFNHMCAgICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogLS0tLS0tLS0tICAgUG9ydCBPbmx5IChkZWZhdWx0KSAqLworI2RlZmluZSBMQ0RTRzBfMSAgICAgICAgICAgICAgIChMQ0RQMCkgICAgICAgIC8qIFMwICAtIFMxNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzIgICAgICAgICAgICAgICAoTENEUDEpICAgICAgICAvKiBTMCAgLSBTMTkgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF8zICAgICAgICAgICAgICAgKExDRFAxK0xDRFAwKSAgLyogUzAgIC0gUzIzICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNCAgICAgICAgICAgICAgIChMQ0RQMikgICAgICAgIC8qIFMwICAtIFMyNyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENEU0cwXzUgICAgICAgICAgICAgICAoTENEUDIrTENEUDApICAvKiBTMCAgLSBTMzEgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRFNHMF82ICAgICAgICAgICAgICAgKExDRFAyK0xDRFAxKSAgLyogUzAgIC0gUzM1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RTRzBfNyAgICAgICAgICAgIChMQ0RQMitMQ0RQMStMQ0RQMCkgICAgICAgLyogUzAgIC0gUzM5ICAgc2VlIERhdGFzaGVldCAqLworLyogTk9URTogWU9VIENBTiBPTkxZIFVTRSBUSEUgJ1MnIE9SICdHJyBERUNMQVJBVElPTlMgRk9SIEEgQ09NTUFORCAqLworLyogTU9WICAjTENEU0cwXzMrTENET0cyXzcsJkxDRENUTCBBQ1RVQUxZIE1FQU5TIE1PViAgI0xDRFAxLCZMQ0RDVEwhICovCisjZGVmaW5lIExDRE9HMV83ICAgICAgICAgICAgICAgKDB4MDApICAgICAgICAgLyogLS0tLS0tLS0tICAgUG9ydCBPbmx5IChkZWZhdWx0KSAqLworI2RlZmluZSBMQ0RPRzJfNyAgICAgICAgICAgICAgIChMQ0RQMCkgICAgICAgIC8qIFMwICAtIFMxNSAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0czXzcgICAgICAgICAgICAgICAoTENEUDEpICAgICAgICAvKiBTMCAgLSBTMTkgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNF83ICAgICAgICAgICAgICAgKExDRFAxK0xDRFAwKSAgLyogUzAgIC0gUzIzICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPRzVfNyAgICAgICAgICAgICAgIChMQ0RQMikgICAgICAgIC8qIFMwICAtIFMyNyAgIHNlZSBEYXRhc2hlZXQgKi8KKyNkZWZpbmUgTENET0c2XzcgICAgICAgICAgICAgICAoTENEUDIrTENEUDApICAvKiBTMCAgLSBTMzEgICBzZWUgRGF0YXNoZWV0ICovCisjZGVmaW5lIExDRE9HNyAgICAgICAgICAgICAgICAgKExDRFAyK0xDRFAxKSAgLyogUzAgIC0gUzM1ICAgc2VlIERhdGFzaGVldCAqLworI2RlZmluZSBMQ0RPR09GRiAgICAgICAgICAgIChMQ0RQMitMQ0RQMStMQ0RQMCkgICAgICAgLyogUzAgIC0gUzM5ICAgc2VlIERhdGFzaGVldCAqLworCisjZGVmaW5lIExDRE1FTV8gICAgICAgICAgICAgICAgKDB4MDA5MSkgICAgICAgLyogTENEIE1lbW9yeSAqLworI2lmZGVmIF9fQVNNX0hFQURFUl9fCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKExDRE1FTV8pICAgICAgLyogTENEIE1lbW9yeSAoZm9yIGFzc2VtYmxlcikgKi8KKyNlbHNlCisjZGVmaW5lIExDRE1FTSAgICAgICAgICAgICAgICAgKChjaGFyKikgICAgICAgTENETUVNXykgLyogTENEIE1lbW9yeSAoZm9yIEMpICovCisjZW5kaWYKK1NGUl84QklUKExDRE0xKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEgKi8KK1NGUl84QklUKExDRE0yKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDIgKi8KK1NGUl84QklUKExDRE0zKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDMgKi8KK1NGUl84QklUKExDRE00KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDQgKi8KK1NGUl84QklUKExDRE01KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDUgKi8KK1NGUl84QklUKExDRE02KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDYgKi8KK1NGUl84QklUKExDRE03KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDcgKi8KK1NGUl84QklUKExDRE04KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDggKi8KK1NGUl84QklUKExDRE05KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDkgKi8KK1NGUl84QklUKExDRE0xMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEwICovCitTRlJfOEJJVChMQ0RNMTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxMSAqLworU0ZSXzhCSVQoTENETTEyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTIgKi8KK1NGUl84QklUKExDRE0xMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDEzICovCitTRlJfOEJJVChMQ0RNMTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNCAqLworU0ZSXzhCSVQoTENETTE1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTUgKi8KK1NGUl84QklUKExDRE0xNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE2ICovCitTRlJfOEJJVChMQ0RNMTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAxNyAqLworU0ZSXzhCSVQoTENETTE4KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIExDRCBNZW1vcnkgMTggKi8KK1NGUl84QklUKExDRE0xOSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBMQ0QgTWVtb3J5IDE5ICovCitTRlJfOEJJVChMQ0RNMjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogTENEIE1lbW9yeSAyMCAqLworCisjZGVmaW5lIExDRE1BICAgICAgICAgICAgICAgICAgKExDRE0xMCkgICAgICAgLyogTENEIE1lbW9yeSBBICovCisjZGVmaW5lIExDRE1CICAgICAgICAgICAgICAgICAgKExDRE0xMSkgICAgICAgLyogTENEIE1lbW9yeSBCICovCisjZGVmaW5lIExDRE1DICAgICAgICAgICAgICAgICAgKExDRE0xMikgICAgICAgLyogTENEIE1lbW9yeSBDICovCisjZGVmaW5lIExDRE1EICAgICAgICAgICAgICAgICAgKExDRE0xMykgICAgICAgLyogTENEIE1lbW9yeSBEICovCisjZGVmaW5lIExDRE1FICAgICAgICAgICAgICAgICAgKExDRE0xNCkgICAgICAgLyogTENEIE1lbW9yeSBFICovCisjZGVmaW5lIExDRE1GICAgICAgICAgICAgICAgICAgKExDRE0xNSkgICAgICAgLyogTENEIE1lbW9yeSBGICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIwX0EzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIF9fTVNQNDMwX0hBU19UQTNfXyAgICAgICAgICAgICAgICAgICAgLyogRGVmaW5pdGlvbiB0byBzaG93IHRoYXQgTW9kdWxlIGlzIGF2YWlsYWJsZSAqLworCitTRlJfMTZCSVQoVEEwSVYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIEludGVycnVwdCBWZWN0b3IgV29yZCAqLworU0ZSXzE2QklUKFRBMENUTCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BMyBDb250cm9sICovCitTRlJfMTZCSVQoVEEwQ0NUTDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDAgKi8KK1NGUl8xNkJJVChUQTBDQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjBfQTMgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworU0ZSXzE2QklUKFRBMENDVEwyKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMF9BMyBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCitTRlJfMTZCSVQoVEEwUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzICovCitTRlJfMTZCSVQoVEEwQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEEwQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEEwQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIwX0EzIENhcHR1cmUvQ29tcGFyZSAyICovCisKKy8qIEFsdGVybmF0ZSByZWdpc3RlciBuYW1lcyAqLworI2RlZmluZSBUQUlWICAgICAgICAgICAgICAgICAgIFRBMElWICAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisjZGVmaW5lIFRBQ1RMICAgICAgICAgICAgICAgICAgVEEwQ1RMICAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCisjZGVmaW5lIFRBQ0NUTDAgICAgICAgICAgICAgICAgVEEwQ0NUTDAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIFRBQ0NUTDEgICAgICAgICAgICAgICAgVEEwQ0NUTDEgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIFRBQ0NUTDIgICAgICAgICAgICAgICAgVEEwQ0NUTDIgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIFRBUiAgICAgICAgICAgICAgICAgICAgVEEwUiAgICAgICAgICAgLyogVGltZXIgQSAqLworI2RlZmluZSBUQUNDUjAgICAgICAgICAgICAgICAgIFRBMENDUjAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgVEFDQ1IxICAgICAgICAgICAgICAgICBUQTBDQ1IxICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIFRBQ0NSMiAgICAgICAgICAgICAgICAgVEEwQ0NSMiAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBUQUlWXyAgICAgICAgICAgICAgICAgIFRBMElWXyAgICAgICAgIC8qIFRpbWVyIEEgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCisjZGVmaW5lIFRBQ1RMXyAgICAgICAgICAgICAgICAgVEEwQ1RMXyAgICAgICAgLyogVGltZXIgQSBDb250cm9sICovCisjZGVmaW5lIFRBQ0NUTDBfICAgICAgICAgICAgICAgVEEwQ0NUTDBfICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAwICovCisjZGVmaW5lIFRBQ0NUTDFfICAgICAgICAgICAgICAgVEEwQ0NUTDFfICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCisjZGVmaW5lIFRBQ0NUTDJfICAgICAgICAgICAgICAgVEEwQ0NUTDJfICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAyICovCisjZGVmaW5lIFRBUl8gICAgICAgICAgICAgICAgICAgVEEwUl8gICAgICAgICAgLyogVGltZXIgQSAqLworI2RlZmluZSBUQUNDUjBfICAgICAgICAgICAgICAgIFRBMENDUjBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgVEFDQ1IxXyAgICAgICAgICAgICAgICBUQTBDQ1IxXyAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIFRBQ0NSMl8gICAgICAgICAgICAgICAgVEEwQ0NSMl8gICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisvKiBBbHRlcm5hdGUgcmVnaXN0ZXIgbmFtZXMgMiAqLworI2RlZmluZSBDQ1RMMCAgICAgICAgICAgICAgICAgIFRBQ0NUTDAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMSAgICAgICAgICAgICAgICAgIFRBQ0NUTDEgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMiAgICAgICAgICAgICAgICAgIFRBQ0NUTDIgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwICAgICAgICAgICAgICAgICAgIFRBQ0NSMCAgICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMSAgICAgICAgICAgICAgICAgICBUQUNDUjEgICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjIgICAgICAgICAgICAgICAgICAgVEFDQ1IyICAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworI2RlZmluZSBDQ1RMMF8gICAgICAgICAgICAgICAgIFRBQ0NUTDBfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworI2RlZmluZSBDQ1RMMV8gICAgICAgICAgICAgICAgIFRBQ0NUTDFfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMSAqLworI2RlZmluZSBDQ1RMMl8gICAgICAgICAgICAgICAgIFRBQ0NUTDJfICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMiAqLworI2RlZmluZSBDQ1IwXyAgICAgICAgICAgICAgICAgIFRBQ0NSMF8gICAgICAgIC8qIFRpbWVyIEEgQ2FwdHVyZS9Db21wYXJlIDAgKi8KKyNkZWZpbmUgQ0NSMV8gICAgICAgICAgICAgICAgICBUQUNDUjFfICAgICAgICAvKiBUaW1lciBBIENhcHR1cmUvQ29tcGFyZSAxICovCisjZGVmaW5lIENDUjJfICAgICAgICAgICAgICAgICAgVEFDQ1IyXyAgICAgICAgLyogVGltZXIgQSBDYXB0dXJlL0NvbXBhcmUgMiAqLworCisjZGVmaW5lIFRBU1NFTDEgICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0IDAgKi8KKyNkZWZpbmUgVEFTU0VMMCAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3QgMSAqLworI2RlZmluZSBJRDEgICAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFRpbWVyIEEgY2xvY2sgaW5wdXQgZGl2aWRlciAxICovCisjZGVmaW5lIElEMCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogVGltZXIgQSBjbG9jayBpbnB1dCBkaXZpZGVyIDAgKi8KKyNkZWZpbmUgTUMxICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbCAxICovCisjZGVmaW5lIE1DMCAgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogVGltZXIgQSBtb2RlIGNvbnRyb2wgMCAqLworI2RlZmluZSBUQUNMUiAgICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBjbGVhciAqLworI2RlZmluZSBUQUlFICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFRpbWVyIEEgY291bnRlciBpbnRlcnJ1cHQgZW5hYmxlICovCisjZGVmaW5lIFRBSUZHICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogVGltZXIgQSBjb3VudGVyIGludGVycnVwdCBmbGFnICovCisKKyNkZWZpbmUgTUNfMCAgICAgICAgICAgICAgICAgICAoMCoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMCAtIFN0b3AgKi8KKyNkZWZpbmUgTUNfMSAgICAgICAgICAgICAgICAgICAoMSoweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMSAtIFVwIHRvIENDUjAgKi8KKyNkZWZpbmUgTUNfMiAgICAgICAgICAgICAgICAgICAoMioweDEwdSkgICAgICAvKiBUaW1lciBBIG1vZGUgY29udHJvbDogMiAtIENvbnRpbm91cyB1cCAqLworI2RlZmluZSBNQ18zICAgICAgICAgICAgICAgICAgICgzKjB4MTB1KSAgICAgIC8qIFRpbWVyIEEgbW9kZSBjb250cm9sOiAzIC0gVXAvRG93biAqLworI2RlZmluZSBJRF8wICAgICAgICAgICAgICAgICAgICgwKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMCAtIC8xICovCisjZGVmaW5lIElEXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MHUpICAgICAgLyogVGltZXIgQSBpbnB1dCBkaXZpZGVyOiAxIC0gLzIgKi8KKyNkZWZpbmUgSURfMiAgICAgICAgICAgICAgICAgICAoMioweDQwdSkgICAgICAvKiBUaW1lciBBIGlucHV0IGRpdmlkZXI6IDIgLSAvNCAqLworI2RlZmluZSBJRF8zICAgICAgICAgICAgICAgICAgICgzKjB4NDB1KSAgICAgIC8qIFRpbWVyIEEgaW5wdXQgZGl2aWRlcjogMyAtIC84ICovCisjZGVmaW5lIFRBU1NFTF8wICAgICAgICAgICAgICAgKDAqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAwIC0gVEFDTEsgKi8KKyNkZWZpbmUgVEFTU0VMXzEgICAgICAgICAgICAgICAoMSoweDEwMHUpICAgICAvKiBUaW1lciBBIGNsb2NrIHNvdXJjZSBzZWxlY3Q6IDEgLSBBQ0xLICAqLworI2RlZmluZSBUQVNTRUxfMiAgICAgICAgICAgICAgICgyKjB4MTAwdSkgICAgIC8qIFRpbWVyIEEgY2xvY2sgc291cmNlIHNlbGVjdDogMiAtIFNNQ0xLICovCisjZGVmaW5lIFRBU1NFTF8zICAgICAgICAgICAgICAgKDMqMHgxMDB1KSAgICAgLyogVGltZXIgQSBjbG9jayBzb3VyY2Ugc2VsZWN0OiAzIC0gSU5DTEsgKi8KKworI2RlZmluZSBDTTEgICAgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIENhcHR1cmUgbW9kZSAxICovCisjZGVmaW5lIENNMCAgICAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlIDAgKi8KKyNkZWZpbmUgQ0NJUzEgICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdCAxICovCisjZGVmaW5lIENDSVMwICAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3QgMCAqLworI2RlZmluZSBTQ1MgICAgICAgICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIENhcHR1cmUgc3ljaHJvbml6ZSAqLworI2RlZmluZSBTQ0NJICAgICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIExhdGNoZWQgY2FwdHVyZSBzaWduYWwgKHJlYWQpICovCisjZGVmaW5lIENBUCAgICAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC9Db21wYXJlIG1vZGUgOiAwICovCisjZGVmaW5lIE9VVE1PRDIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogT3V0cHV0IG1vZGUgMiAqLworI2RlZmluZSBPVVRNT0QxICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIE91dHB1dCBtb2RlIDEgKi8KKyNkZWZpbmUgT1VUTU9EMCAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBPdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENDSUUgICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIGludGVycnVwdCBlbmFibGUgKi8KKyNkZWZpbmUgQ0NJICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBDYXB0dXJlIGlucHV0IHNpZ25hbCAocmVhZCkgKi8KKyNkZWZpbmUgT1VUICAgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBQV00gT3V0cHV0IHNpZ25hbCBpZiBvdXRwdXQgbW9kZSAwICovCisjZGVmaW5lIENPViAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogQ2FwdHVyZS9jb21wYXJlIG92ZXJmbG93IGZsYWcgKi8KKyNkZWZpbmUgQ0NJRkcgICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBDYXB0dXJlL2NvbXBhcmUgaW50ZXJydXB0IGZsYWcgKi8KKworI2RlZmluZSBPVVRNT0RfMCAgICAgICAgICAgICAgICgwKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMCAtIG91dHB1dCBvbmx5ICovCisjZGVmaW5lIE9VVE1PRF8xICAgICAgICAgICAgICAgKDEqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAxIC0gc2V0ICovCisjZGVmaW5lIE9VVE1PRF8yICAgICAgICAgICAgICAgKDIqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiAyIC0gUFdNIHRvZ2dsZS9yZXNldCAqLworI2RlZmluZSBPVVRNT0RfMyAgICAgICAgICAgICAgICgzKjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogMyAtIFBXTSBzZXQvcmVzZXQgKi8KKyNkZWZpbmUgT1VUTU9EXzQgICAgICAgICAgICAgICAoNCoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDQgLSB0b2dnbGUgKi8KKyNkZWZpbmUgT1VUTU9EXzUgICAgICAgICAgICAgICAoNSoweDIwdSkgICAgICAvKiBQV00gb3V0cHV0IG1vZGU6IDUgLSBSZXNldCAqLworI2RlZmluZSBPVVRNT0RfNiAgICAgICAgICAgICAgICg2KjB4MjB1KSAgICAgIC8qIFBXTSBvdXRwdXQgbW9kZTogNiAtIFBXTSB0b2dnbGUvc2V0ICovCisjZGVmaW5lIE9VVE1PRF83ICAgICAgICAgICAgICAgKDcqMHgyMHUpICAgICAgLyogUFdNIG91dHB1dCBtb2RlOiA3IC0gUFdNIHJlc2V0L3NldCAqLworI2RlZmluZSBDQ0lTXzAgICAgICAgICAgICAgICAgICgwKjB4MTAwMHUpICAgIC8qIENhcHR1cmUgaW5wdXQgc2VsZWN0OiAwIC0gQ0NJeEEgKi8KKyNkZWZpbmUgQ0NJU18xICAgICAgICAgICAgICAgICAoMSoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMSAtIENDSXhCICovCisjZGVmaW5lIENDSVNfMiAgICAgICAgICAgICAgICAgKDIqMHgxMDAwdSkgICAgLyogQ2FwdHVyZSBpbnB1dCBzZWxlY3Q6IDIgLSBHTkQgKi8KKyNkZWZpbmUgQ0NJU18zICAgICAgICAgICAgICAgICAoMyoweDEwMDB1KSAgICAvKiBDYXB0dXJlIGlucHV0IHNlbGVjdDogMyAtIFZjYyAqLworI2RlZmluZSBDTV8wICAgICAgICAgICAgICAgICAgICgwKjB4NDAwMHUpICAgIC8qIENhcHR1cmUgbW9kZTogMCAtIGRpc2FibGVkICovCisjZGVmaW5lIENNXzEgICAgICAgICAgICAgICAgICAgKDEqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gcG9zLiBlZGdlICovCisjZGVmaW5lIENNXzIgICAgICAgICAgICAgICAgICAgKDIqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gbmVnLiBlZGdlICovCisjZGVmaW5lIENNXzMgICAgICAgICAgICAgICAgICAgKDMqMHg0MDAwdSkgICAgLyogQ2FwdHVyZSBtb2RlOiAxIC0gYm90aCBlZGdlcyAqLworCisvKiBUMF9BM0lWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBMElWX05PTkUgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEEwSVZfVEFDQ1IxICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQTBDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBMElWX1RBQ0NSMiAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEEwQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQTBJVl82ICAgICAgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFJlc2VydmVkICovCisjZGVmaW5lIFRBMElWXzggICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogUmVzZXJ2ZWQgKi8KKyNkZWZpbmUgVEEwSVZfVEFJRkcgICAgICAgICAgICAoMHgwMDBBKSAgICAgICAvKiBUQTBJRkcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lcjFfQTUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX1QxQTVfXyAgICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChUQTFJVik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgSW50ZXJydXB0IFZlY3RvciBXb3JkICovCitTRlJfMTZCSVQoVEExQ1RMKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENvbnRyb2wgKi8KK1NGUl8xNkJJVChUQTFDQ1RMMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMCAqLworU0ZSXzE2QklUKFRBMUNDVEwxKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCAxICovCitTRlJfMTZCSVQoVEExQ0NUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChUQTFDQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaW1lcjFfQTUgQ2FwdHVyZS9Db21wYXJlIENvbnRyb2wgMyAqLworU0ZSXzE2QklUKFRBMUNDVEw0KTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRpbWVyMV9BNSBDYXB0dXJlL0NvbXBhcmUgQ29udHJvbCA0ICovCitTRlJfMTZCSVQoVEExUik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1ICovCitTRlJfMTZCSVQoVEExQ0NSMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSAwICovCitTRlJfMTZCSVQoVEExQ0NSMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSAxICovCitTRlJfMTZCSVQoVEExQ0NSMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSAyICovCitTRlJfMTZCSVQoVEExQ0NSMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSAzICovCitTRlJfMTZCSVQoVEExQ0NSNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogVGltZXIxX0E1IENhcHR1cmUvQ29tcGFyZSA0ICovCisKKy8qIEJpdHMgYXJlIGFscmVhZHkgZGVmaW5lZCB3aXRoaW4gdGhlIFRpbWVyMF9BeCAqLworCisvKiBUMV9BNUlWIERlZmluaXRpb25zICovCisjZGVmaW5lIFRBMUlWX05PTkUgICAgICAgICAgICAgKDB4MDAwMCkgICAgICAgLyogTm8gSW50ZXJydXB0IHBlbmRpbmcgKi8KKyNkZWZpbmUgVEExSVZfVEFDQ1IxICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBUQTFDQ1IxX0NDSUZHICovCisjZGVmaW5lIFRBMUlWX1RBQ0NSMiAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogVEExQ0NSMl9DQ0lGRyAqLworI2RlZmluZSBUQTFJVl9UQUNDUjMgICAgICAgICAgICgweDAwMDYpICAgICAgIC8qIFRBMUNDUjNfQ0NJRkcgKi8KKyNkZWZpbmUgVEExSVZfVEFDQ1I0ICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBUQTFDQ1I0X0NDSUZHICovCisjZGVmaW5lIFRBMUlWX1RBSUZHICAgICAgICAgICAgKDB4MDAwQSkgICAgICAgLyogVEExSUZHICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIEZsYXNoIE1lbW9yeQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0ZMQVNIX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl8xNkJJVChGQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDEgKi8KK1NGUl8xNkJJVChGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDIgKi8KK1NGUl8xNkJJVChGQ1RMMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBGTEFTSCBDb250cm9sIDMgKi8KKworI2RlZmluZSBGUktFWSAgICAgICAgICAgICAgICAgICgweDk2MDApICAgICAgIC8qIEZsYXNoIGtleSByZXR1cm5lZCBieSByZWFkICovCisjZGVmaW5lIEZXS0VZICAgICAgICAgICAgICAgICAgKDB4QTUwMCkgICAgICAgLyogRmxhc2gga2V5IGZvciB3cml0ZSAqLworI2RlZmluZSBGWEtFWSAgICAgICAgICAgICAgICAgICgweDMzMDApICAgICAgIC8qIGZvciB1c2Ugd2l0aCBYT1IgaW5zdHJ1Y3Rpb24gKi8KKworI2RlZmluZSBFUkFTRSAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEVuYWJsZSBiaXQgZm9yIEZsYXNoIHNlZ21lbnQgZXJhc2UgKi8KKyNkZWZpbmUgTUVSQVMgICAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBtYXNzIGVyYXNlICovCisjZGVmaW5lIFdSVCAgICAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggd3JpdGUgKi8KKyNkZWZpbmUgQkxLV1JUICAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBFbmFibGUgYml0IGZvciBGbGFzaCBzZWdtZW50IHdyaXRlICovCisjZGVmaW5lIFNFR1dSVCAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogb2xkIGRlZmluaXRpb24gKi8gLyogRW5hYmxlIGJpdCBmb3IgRmxhc2ggc2VnbWVudCB3cml0ZSAqLworCisjZGVmaW5lIEZOMCAgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRGl2aWRlIEZsYXNoIGNsb2NrIGJ5IDEgdG8gNjQgdXNpbmcgRk4wIHRvIEZONSBhY2NvcmRpbmcgdG86ICovCisjZGVmaW5lIEZOMSAgICAgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogIDMyKkZONSArIDE2KkZONCArIDgqRk4zICsgNCpGTjIgKyAyKkZOMSArIEZOMCArIDEgKi8KKyNpZm5kZWYgRk4yCisjZGVmaW5lIEZOMiAgICAgICAgICAgICAgICAgICAgKDB4MDAwNCkKKyNlbmRpZgorI2lmbmRlZiBGTjMKKyNkZWZpbmUgRk4zICAgICAgICAgICAgICAgICAgICAoMHgwMDA4KQorI2VuZGlmCisjaWZuZGVmIEZONAorI2RlZmluZSBGTjQgICAgICAgICAgICAgICAgICAgICgweDAwMTApCisjZW5kaWYKKyNkZWZpbmUgRk41ICAgICAgICAgICAgICAgICAgICAoMHgwMDIwKQorI2RlZmluZSBGU1NFTDAgICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdCAwICovICAgICAgICAvKiB0byBkaXN0aW5ndWlzaCBmcm9tIFVTQVJUIFNTRUx4ICovCisjZGVmaW5lIEZTU0VMMSAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0IDEgKi8KKworI2RlZmluZSBGU1NFTF8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIEZsYXNoIGNsb2NrIHNlbGVjdDogMCAtIEFDTEsgKi8KKyNkZWZpbmUgRlNTRUxfMSAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDEgLSBNQ0xLICovCisjZGVmaW5lIEZTU0VMXzIgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogRmxhc2ggY2xvY2sgc2VsZWN0OiAyIC0gU01DTEsgKi8KKyNkZWZpbmUgRlNTRUxfMyAgICAgICAgICAgICAgICAoMHgwMEMwKSAgICAgICAvKiBGbGFzaCBjbG9jayBzZWxlY3Q6IDMgLSBTTUNMSyAqLworCisjZGVmaW5lIEJVU1kgICAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogRmxhc2ggYnVzeTogMSAqLworI2RlZmluZSBLRVlWICAgICAgICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIEZsYXNoIEtleSB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBBQ0NWSUZHICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIEZsYXNoIEFjY2VzcyB2aW9sYXRpb24gZmxhZyAqLworI2RlZmluZSBXQUlUICAgICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFdhaXQgZmxhZyBmb3Igc2VnbWVudCB3cml0ZSAqLworI2RlZmluZSBMT0NLICAgICAgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIExvY2sgYml0OiAxIC0gRmxhc2ggaXMgbG9ja2VkIChyZWFkIG9ubHkpICovCisjZGVmaW5lIEVNRVggICAgICAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogRmxhc2ggRW1lcmdlbmN5IEV4aXQgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBDb21wYXJhdG9yIEEKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgX19NU1A0MzBfSEFTX0NPTVBBX18gICAgICAgICAgICAgICAgICAvKiBEZWZpbml0aW9uIHRvIHNob3cgdGhhdCBNb2R1bGUgaXMgYXZhaWxhYmxlICovCisKK1NGUl84QklUKENBQ1RMMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb21wYXJhdG9yIEEgQ29udHJvbCAxICovCitTRlJfOEJJVChDQUNUTDIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29tcGFyYXRvciBBIENvbnRyb2wgMiAqLworU0ZSXzhCSVQoQ0FQRCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbXBhcmF0b3IgQSBQb3J0IERpc2FibGUgKi8KKworI2RlZmluZSBDQUlGRyAgICAgICAgICAgICAgICAgICgweDAxKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJydXB0IEZsYWcgKi8KKyNkZWZpbmUgQ0FJRSAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEludGVycnVwdCBFbmFibGUgKi8KKyNkZWZpbmUgQ0FJRVMgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIEludC4gRWRnZSBTZWxlY3Q6IDA6cmlzaW5nIC8gMTpmYWxsaW5nICovCisjZGVmaW5lIENBT04gICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBlbmFibGUgKi8KKyNkZWZpbmUgQ0FSRUYwICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIEludGVybmFsIFJlZmVyZW5jZSBTZWxlY3QgMCAqLworI2RlZmluZSBDQVJFRjEgICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50ZXJuYWwgUmVmZXJlbmNlIFNlbGVjdCAxICovCisjZGVmaW5lIENBUlNFTCAgICAgICAgICAgICAgICAgKDB4NDApICAgICAgICAgLyogQ29tcC4gQSBJbnRlcm5hbCBSZWZlcmVuY2UgRW5hYmxlICovCisjZGVmaW5lIENBRVggICAgICAgICAgICAgICAgICAgKDB4ODApICAgICAgICAgLyogQ29tcC4gQSBFeGNoYW5nZSBJbnB1dHMgKi8KKworI2RlZmluZSBDQVJFRl8wICAgICAgICAgICAgICAgICgweDAwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAwIDogT2ZmICovCisjZGVmaW5lIENBUkVGXzEgICAgICAgICAgICAgICAgKDB4MTApICAgICAgICAgLyogQ29tcC4gQSBJbnQuIFJlZi4gU2VsZWN0IDEgOiAwLjI1KlZjYyAqLworI2RlZmluZSBDQVJFRl8yICAgICAgICAgICAgICAgICgweDIwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAyIDogMC41KlZjYyAqLworI2RlZmluZSBDQVJFRl8zICAgICAgICAgICAgICAgICgweDMwKSAgICAgICAgIC8qIENvbXAuIEEgSW50LiBSZWYuIFNlbGVjdCAzIDogVnQqLworCisjZGVmaW5lIENBT1VUICAgICAgICAgICAgICAgICAgKDB4MDEpICAgICAgICAgLyogQ29tcC4gQSBPdXRwdXQgKi8KKyNkZWZpbmUgQ0FGICAgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIEVuYWJsZSBPdXRwdXQgRmlsdGVyICovCisjZGVmaW5lIFAyQ0EwICAgICAgICAgICAgICAgICAgKDB4MDQpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTAgOiAxICovCisjZGVmaW5lIFAyQ0ExICAgICAgICAgICAgICAgICAgKDB4MDgpICAgICAgICAgLyogQ29tcC4gQSBDb25uZWN0IEV4dGVybmFsIFNpZ25hbCB0byBDQTEgOiAxICovCisjZGVmaW5lIENBQ1RMMjQgICAgICAgICAgICAgICAgKDB4MTApCisjZGVmaW5lIENBQ1RMMjUgICAgICAgICAgICAgICAgKDB4MjApCisjZGVmaW5lIENBQ1RMMjYgICAgICAgICAgICAgICAgKDB4NDApCisjZGVmaW5lIENBQ1RMMjcgICAgICAgICAgICAgICAgKDB4ODApCisKKyNkZWZpbmUgQ0FQRDAgICAgICAgICAgICAgICAgICAoMHgwMSkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjAgKi8KKyNkZWZpbmUgQ0FQRDEgICAgICAgICAgICAgICAgICAoMHgwMikgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjEgKi8KKyNkZWZpbmUgQ0FQRDIgICAgICAgICAgICAgICAgICAoMHgwNCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjIgKi8KKyNkZWZpbmUgQ0FQRDMgICAgICAgICAgICAgICAgICAoMHgwOCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjMgKi8KKyNkZWZpbmUgQ0FQRDQgICAgICAgICAgICAgICAgICAoMHgxMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjQgKi8KKyNkZWZpbmUgQ0FQRDUgICAgICAgICAgICAgICAgICAoMHgyMCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjUgKi8KKyNkZWZpbmUgQ0FQRDYgICAgICAgICAgICAgICAgICAoMHg0MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjYgKi8KKyNkZWZpbmUgQ0FQRDcgICAgICAgICAgICAgICAgICAoMHg4MCkgICAgICAgICAvKiBDb21wLiBBIERpc2FibGUgSW5wdXQgQnVmZmVyIG9mIFBvcnQgUmVnaXN0ZXIgLjcgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTY2FuLUkvRgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBfX01TUDQzMF9IQVNfU0NBTklGX18gICAgICAgICAgICAgICAgIC8qIERlZmluaXRpb24gdG8gc2hvdyB0aGF0IE1vZHVsZSBpcyBhdmFpbGFibGUgKi8KKworU0ZSXzE2QklUKFNJRkRFQlVHKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgRGVidWcgUmVnaXN0ZXIgKi8KK1NGUl8xNkJJVChTSUZDTlQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTSUYsIENvdW50ZXIxLzIgKi8KK1NGUl8xNkJJVChTSUZQU01WKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTSUYsIFByb2Nlc3NpbmcgU3RhdGUgTWFjaGluZSAqLworU0ZSXzE2QklUKFNJRkNUTDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgQ29udHJvbCBSZWdpc3RlciAxICovCitTRlJfMTZCSVQoU0lGQ1RMMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBDb250cm9sIFJlZ2lzdGVyIDIgKi8KK1NGUl8xNkJJVChTSUZDVEwzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTSUYsIENvbnRyb2wgUmVnaXN0ZXIgMyAqLworU0ZSXzE2QklUKFNJRkNUTDQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgQ29udHJvbCBSZWdpc3RlciA0ICovCitTRlJfMTZCSVQoU0lGQ1RMNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBDb250cm9sIFJlZ2lzdGVyIDUgKi8KKyNkZWZpbmUgU0lGREFDUl8gICAgICAgICAgICAgICAoMHgwMUMwKSAgICAgICAvKiBTSUYsIERpZ2l0YWwgdG8gQW5hbG9nIENvbnYuIDAgKi8KKyNpZmRlZiBfX0FTTV9IRUFERVJfXworI2RlZmluZSBTSUZEQUNSICAgICAgICAgICAgICAgIChTSUZEQUNSXykgICAgIC8qIFNJRiwgRGlnaXRhbCB0byBBbmFsb2cgQ29udi4gTWVtb3J5IChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgU0lGREFDUiAgICAgICAgICAgICAgICAoKHVuc2lnbmVkICAgICBpbnQqKSBTSUZEQUNSXykgLyogU0lGLCBEaWdpdGFsIHRvIEFuYWxvZyBDb252LiBNZW1vcnkgKGZvciBDKSAqLworI2VuZGlmCitTRlJfMTZCSVQoU0lGREFDUjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBEaWdpdGFsIHRvIEFuYWxvZyBDb252LiAwICovCitTRlJfMTZCSVQoU0lGREFDUjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBEaWdpdGFsIHRvIEFuYWxvZyBDb252LiAxICovCitTRlJfMTZCSVQoU0lGREFDUjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBEaWdpdGFsIHRvIEFuYWxvZyBDb252LiAyICovCitTRlJfMTZCSVQoU0lGREFDUjMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBEaWdpdGFsIHRvIEFuYWxvZyBDb252LiAzICovCitTRlJfMTZCSVQoU0lGREFDUjQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBEaWdpdGFsIHRvIEFuYWxvZyBDb252LiA0ICovCitTRlJfMTZCSVQoU0lGREFDUjUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBEaWdpdGFsIHRvIEFuYWxvZyBDb252LiA1ICovCitTRlJfMTZCSVQoU0lGREFDUjYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBEaWdpdGFsIHRvIEFuYWxvZyBDb252LiA2ICovCitTRlJfMTZCSVQoU0lGREFDUjcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBEaWdpdGFsIHRvIEFuYWxvZyBDb252LiA3ICovCisjZGVmaW5lIFNJRlRTTV8gICAgICAgICAgICAgICAgKDB4MDFEMCkgICAgICAgLyogU0lGLCBUaW1pbmcgU3RhdGUgTWFjaGluZSAwICovCisjaWZkZWYgX19BU01fSEVBREVSX18KKyNkZWZpbmUgU0lGVFNNICAgICAgICAgICAgICAgICAoU0lGVFNNXykgICAgICAvKiBTSUYsIFRpbWluZyBTdGF0ZSBNYWNoaW5lIChmb3IgYXNzZW1ibGVyKSAqLworI2Vsc2UKKyNkZWZpbmUgU0lGVFNNICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkICAgICBpbnQqKSBTSUZUU01fKSAvKiBTSUYsIFRpbWluZyBTdGF0ZSBNYWNoaW5lIChmb3IgQykgKi8KKyNlbmRpZgorU0ZSXzE2QklUKFNJRlRTTTApOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgMCAqLworU0ZSXzE2QklUKFNJRlRTTTEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgMSAqLworU0ZSXzE2QklUKFNJRlRTTTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgMiAqLworU0ZSXzE2QklUKFNJRlRTTTMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgMyAqLworU0ZSXzE2QklUKFNJRlRTTTQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgNCAqLworU0ZSXzE2QklUKFNJRlRTTTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgNSAqLworU0ZSXzE2QklUKFNJRlRTTTYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgNiAqLworU0ZSXzE2QklUKFNJRlRTTTcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgNyAqLworU0ZSXzE2QklUKFNJRlRTTTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgOCAqLworU0ZSXzE2QklUKFNJRlRTTTkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgOSAqLworU0ZSXzE2QklUKFNJRlRTTTEwKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgMTAgKi8KK1NGUl8xNkJJVChTSUZUU00xMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTSUYsIFRpbWluZyBTdGF0ZSBNYWNoaW5lIDExICovCitTRlJfMTZCSVQoU0lGVFNNMTIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBUaW1pbmcgU3RhdGUgTWFjaGluZSAxMiAqLworU0ZSXzE2QklUKFNJRlRTTTEzKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgMTMgKi8KK1NGUl8xNkJJVChTSUZUU00xNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTSUYsIFRpbWluZyBTdGF0ZSBNYWNoaW5lIDE0ICovCitTRlJfMTZCSVQoU0lGVFNNMTUpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBUaW1pbmcgU3RhdGUgTWFjaGluZSAxNSAqLworU0ZSXzE2QklUKFNJRlRTTTE2KTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgMTYgKi8KK1NGUl8xNkJJVChTSUZUU00xNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTSUYsIFRpbWluZyBTdGF0ZSBNYWNoaW5lIDE3ICovCitTRlJfMTZCSVQoU0lGVFNNMTgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBUaW1pbmcgU3RhdGUgTWFjaGluZSAxOCAqLworU0ZSXzE2QklUKFNJRlRTTTE5KTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgMTkgKi8KK1NGUl8xNkJJVChTSUZUU00yMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTSUYsIFRpbWluZyBTdGF0ZSBNYWNoaW5lIDIwICovCitTRlJfMTZCSVQoU0lGVFNNMjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogU0lGLCBUaW1pbmcgU3RhdGUgTWFjaGluZSAyMSAqLworU0ZSXzE2QklUKFNJRlRTTTIyKTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFNJRiwgVGltaW5nIFN0YXRlIE1hY2hpbmUgMjIgKi8KK1NGUl8xNkJJVChTSUZUU00yMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBTSUYsIFRpbWluZyBTdGF0ZSBNYWNoaW5lIDIzICovCisKKy8qIFNJRkNUTDEgKi8KKyNkZWZpbmUgU0lGRU4gICAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTSUYgRW5hYmxlICovCisjZGVmaW5lIFNJRlRFU1REICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0lGIDA6Tm9ybWFsIC8gMTpUZXN0IE1vZGUgKi8KKyNkZWZpbmUgU0lGSUZHMCAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTSUYgSW50ZXJydXB0IEZsYWcgMCAqLworI2RlZmluZSBTSUZJRkcxICAgICAgICAgICAgICAgICgweDAwMDgpICAgICAgIC8qIFNJRiBJbnRlcnJ1cHQgRmxhZyAxICovCisjZGVmaW5lIFNJRklGRzIgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0lGIEludGVycnVwdCBGbGFnIDIgKi8KKyNkZWZpbmUgU0lGSUZHMyAgICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTSUYgSW50ZXJydXB0IEZsYWcgMyAqLworI2RlZmluZSBTSUZJRkc0ICAgICAgICAgICAgICAgICgweDAwNDApICAgICAgIC8qIFNJRiBJbnRlcnJ1cHQgRmxhZyA0ICovCisjZGVmaW5lIFNJRklGRzUgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0lGIEludGVycnVwdCBGbGFnIDUgKi8KKyNkZWZpbmUgU0lGSUZHNiAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTSUYgSW50ZXJydXB0IEZsYWcgNiAqLworI2RlZmluZSBTSUZJRTAgICAgICAgICAgICAgICAgICgweDAyMDApICAgICAgIC8qIFNJRiBJbnRlcnJ1cHQgRW5hYmxlIDAgKi8KKyNkZWZpbmUgU0lGSUUxICAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBTSUYgSW50ZXJydXB0IEVuYWJsZSAxICovCisjZGVmaW5lIFNJRklFMiAgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogU0lGIEludGVycnVwdCBFbmFibGUgMiAqLworI2RlZmluZSBTSUZJRTMgICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIFNJRiBJbnRlcnJ1cHQgRW5hYmxlIDMgKi8KKyNkZWZpbmUgU0lGSUU0ICAgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBTSUYgSW50ZXJydXB0IEVuYWJsZSA0ICovCisjZGVmaW5lIFNJRklFNSAgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogU0lGIEludGVycnVwdCBFbmFibGUgNSAqLworI2RlZmluZSBTSUZJRTYgICAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIFNJRiBJbnRlcnJ1cHQgRW5hYmxlIDYgKi8KKworLyogU0lGQ1RMMiAqLworI2RlZmluZSBTSUZUQ0gwT1VUICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNJRiBUQ0gwIHJlc3VsdCAqLworI2RlZmluZSBTSUZUQ0gxT1VUICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNJRiBUQ0gxIHJlc3VsdCAqLworI2RlZmluZSBTSUZUQ0gwMCAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNJRiAxLiBDaGFubmVsIHNlbGVjdCAwICovCisjZGVmaW5lIFNJRlRDSDAxICAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0lGIDEuIENoYW5uZWwgc2VsZWN0IDEgKi8KKyNkZWZpbmUgU0lGVENIMTAgICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTSUYgMi4gQ2hhbm5lbCBzZWxlY3QgMCAqLworI2RlZmluZSBTSUZUQ0gxMSAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNJRiAyLiBDaGFubmVsIHNlbGVjdCAxICovCisjZGVmaW5lIFNJRlRFTiAgICAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0lGIEVuYWJsZSBUcmFuc2lzdG9ycyAqLworI2RlZmluZSBTSUZTSCAgICAgICAgICAgICAgICAgICgweDAwODApICAgICAgIC8qIFNJRiBTYW1wbGUgb24vb2ZmICovCisjZGVmaW5lIFNJRlZDQzIgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0lGIFZDQy8yIEdlbmVyYXRvciBvZmYvb24gKi8KKyNkZWZpbmUgU0lGVlNTICAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTSUYgU2VsZWN0IFRlcm1pbmFsIGZvciBzYW1wbGUgQ2FwLiAqLworI2RlZmluZSBTSUZDQUNJMyAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIFNJRiBTZWxlY3Rpb24gb2YgU0lGQ0kzICovCisjZGVmaW5lIFNJRkNJU0VMICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogU0lGIENvbXBhcmF0b3IgSW5wdXQgU2VsZWN0ICovCisjZGVmaW5lIFNJRkNBWCAgICAgICAgICAgICAgICAgKDB4MTAwMCkgICAgICAgLyogU0lGIFNlbGVjdCBDQSBTb3VyY2UgKi8KKyNkZWZpbmUgU0lGQ0FJTlYgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBTSUYgSW52ZXJ0IENBIE91dHB1dCAwOm9mZi8xOm9uICovCisjZGVmaW5lIFNJRkNBT04gICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogU0lGIFN3aXRjaCBDQSBvbiAqLworI2RlZmluZSBTSUZEQUNPTiAgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIFNJRiBTd2l0Y2ggREFDIG9uICovCisKKy8qIFNJRkNUTDMgKi8KKyNkZWZpbmUgU0lGME9VVCAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTSUYgU2Vuc29yIDAgT3V0ICovCisjZGVmaW5lIFNJRjFPVVQgICAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0lGIFNlbnNvciAxIE91dCAqLworI2RlZmluZSBTSUYyT1VUICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNJRiBTZW5zb3IgMiBPdXQgKi8KKyNkZWZpbmUgU0lGM09VVCAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTSUYgU2Vuc29yIDMgT3V0ICovCisjZGVmaW5lIFNJRklGR1NFVDAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0lGIFNJRklGRzAgbGV2ZWwgc2VsZWN0ICovCisjZGVmaW5lIFNJRklGR1NFVDEgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0lGIFNJRklGRzEgbGV2ZWwgc2VsZWN0ICovCisjZGVmaW5lIFNJRklGR1NFVDIgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0lGIFNJRklGRzIgbGV2ZWwgc2VsZWN0ICovCisjZGVmaW5lIFNJRkNTICAgICAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0lGIENhcHR1cmUgU2VsZWN0ICovCisjZGVmaW5lIFNJRklTMTAgICAgICAgICAgICAgICAgKDB4MDEwMCkgICAgICAgLyogU0lGIFNJRklGRzMgSW50LkZsYWcgU291cmNlIDAgKi8KKyNkZWZpbmUgU0lGSVMxMSAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTSUYgU0lGSUZHMyBJbnQuRmxhZyBTb3VyY2UgMSAqLworI2RlZmluZSBTSUZJUzIwICAgICAgICAgICAgICAgICgweDA0MDApICAgICAgIC8qIFNJRiBTSUZJRkc0IEludC5GbGFnIFNvdXJjZSAwICovCisjZGVmaW5lIFNJRklTMjEgICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogU0lGIFNJRklGRzQgSW50LkZsYWcgU291cmNlIDEgKi8KKyNkZWZpbmUgU0lGUzEwICAgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBTSUYgUzEgU291cmNlIFNlbGVjdCAwICovCisjZGVmaW5lIFNJRlMxMSAgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogU0lGIFMxIFNvdXJjZSBTZWxlY3QgMSAqLworI2RlZmluZSBTSUZTMjAgICAgICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFNJRiBTMiBTb3VyY2UgU2VsZWN0IDAgKi8KKyNkZWZpbmUgU0lGUzIxICAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBTSUYgUzIgU291cmNlIFNlbGVjdCAxICovCisKKyNkZWZpbmUgU0lGSVMxXzAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTSUYgU0lGSUZHMyBzZXQgd2l0aCBlYWNoIGNvdW50IG9mIFNJRkNOVDEgKi8KKyNkZWZpbmUgU0lGSVMxXzEgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTSUYgU0lGSUZHMyBzZXQgaWYgKFNJRkNOVDEgbW9kICA0KT0wICovCisjZGVmaW5lIFNJRklTMV8yICAgICAgICAgICAgICAgKDB4MDIwMCkgICAgICAgLyogU0lGIFNJRklGRzMgc2V0IGlmIChTSUZDTlQxIG1vZCA2NCk9MCAqLworI2RlZmluZSBTSUZJUzFfMyAgICAgICAgICAgICAgICgweDAzMDApICAgICAgIC8qIFNJRiBTSUZJRkczIHNldCBpZiBTSUZDTlQxIHJvbGxzIG92ZXIgKi8KKyNkZWZpbmUgU0lGSVMyXzAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTSUYgU0lGSUZHNCBzZXQgd2l0aCBlYWNoIGNvdW50IG9mIFNJRkNOVDIgKi8KKyNkZWZpbmUgU0lGSVMyXzEgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBTSUYgU0lGSUZHNCBzZXQgaWYgKFNJRkNOVDIgbW9kICA0KT0wICovCisjZGVmaW5lIFNJRklTMl8yICAgICAgICAgICAgICAgKDB4MDgwMCkgICAgICAgLyogU0lGIFNJRklGRzQgc2V0IGlmIChTSUZDTlQyIG1vZCA2NCk9MCAqLworI2RlZmluZSBTSUZJUzJfMyAgICAgICAgICAgICAgICgweDBDMDApICAgICAgIC8qIFNJRiBTSUZJRkc0IHNldCBpZiBTSUZDTlQyIHJvbGxzIG92ZXIgKi8KKyNkZWZpbmUgU0lGUzFfMCAgICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTSUYgUzEgU291cmNlIDogU0lGME9VVCAqLworI2RlZmluZSBTSUZTMV8xICAgICAgICAgICAgICAgICgweDEwMDApICAgICAgIC8qIFNJRiBTMSBTb3VyY2UgOiBTSUYxT1VUICovCisjZGVmaW5lIFNJRlMxXzIgICAgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogU0lGIFMxIFNvdXJjZSA6IFNJRjJPVVQgKi8KKyNkZWZpbmUgU0lGUzFfMyAgICAgICAgICAgICAgICAoMHgzMDAwKSAgICAgICAvKiBTSUYgUzEgU291cmNlIDogU0lGM09VVCAqLworI2RlZmluZSBTSUZTMl8wICAgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNJRiBTMiBTb3VyY2UgOiBTSUYwT1VUICovCisjZGVmaW5lIFNJRlMyXzEgICAgICAgICAgICAgICAgKDB4NDAwMCkgICAgICAgLyogU0lGIFMyIFNvdXJjZSA6IFNJRjFPVVQgKi8KKyNkZWZpbmUgU0lGUzJfMiAgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBTSUYgUzIgU291cmNlIDogU0lGMk9VVCAqLworI2RlZmluZSBTSUZTMl8zICAgICAgICAgICAgICAgICgweEMwMDApICAgICAgIC8qIFNJRiBTMiBTb3VyY2UgOiBTSUYzT1VUICovCisKKy8qIFNJRkNUTDQgKi8KKyNkZWZpbmUgU0lGRElWMTAgICAgICAgICAgICAgICAoMHgwMDAxKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAxLjAgKi8KKyNkZWZpbmUgU0lGRElWMTEgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAxLjEgKi8KKyNkZWZpbmUgU0lGRElWMjAgICAgICAgICAgICAgICAoMHgwMDA0KSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAyLjAgKi8KKyNkZWZpbmUgU0lGRElWMjEgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAyLjEgKi8KKyNkZWZpbmUgU0lGRElWM0EwICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzLjAgKi8KKyNkZWZpbmUgU0lGRElWM0ExICAgICAgICAgICAgICAoMHgwMDIwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzLjEgKi8KKyNkZWZpbmUgU0lGRElWM0EyICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzLjIgKi8KKyNkZWZpbmUgU0lGRElWM0IwICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzLjMgKi8KKyNkZWZpbmUgU0lGRElWM0IxICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzLjQgKi8KKyNkZWZpbmUgU0lGRElWM0IyICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzLjUgKi8KKyNkZWZpbmUgU0lGUTZFTiAgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBTSUYgRmVlZGJhY2sgNiBFbmFibGUgKi8KKyNkZWZpbmUgU0lGUTdFTiAgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBTSUYgRmVlZGJhY2sgNyBFbmFibGUgKi8KKyNkZWZpbmUgU0lGQ05UMUVOUCAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBTSUYgRW5hYmxlIFNJRkNOVDEgdXAgY291bnQgKi8KKyNkZWZpbmUgU0lGQ05UMUVOTSAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBTSUYgRW5hYmxlIFNJRkNOVDEgZG93biBjb3VudCAqLworI2RlZmluZSBTSUZDTlQyRU4gICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFNJRiBFbmFibGUgU0lGQ05UMiBjb3VudCAqLworI2RlZmluZSBTSUZDTlRSU1QgICAgICAgICAgICAgICgweDgwMDApICAgICAgIC8qIFNJRiBFbmFibGUgQ291bnRlciBSZXNldCBvbiBSZWFkICovCisKKyNkZWZpbmUgU0lGRElWMV8xICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAxOiAvMSAqLworI2RlZmluZSBTSUZESVYxXzIgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNJRiBDbG9jayBEaXZpZGVyIDE6IC8yICovCisjZGVmaW5lIFNJRkRJVjFfNCAgICAgICAgICAgICAgKDB4MDAwMikgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMTogLzQgKi8KKyNkZWZpbmUgU0lGRElWMV84ICAgICAgICAgICAgICAoMHgwMDAzKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAxOiAvOCAqLworI2RlZmluZSBTSUZESVYyXzEgICAgICAgICAgICAgICgweDAwMDApICAgICAgIC8qIFNJRiBDbG9jayBEaXZpZGVyIDI6IC8xICovCisjZGVmaW5lIFNJRkRJVjJfMiAgICAgICAgICAgICAgKDB4MDAwNCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMjogLzIgKi8KKyNkZWZpbmUgU0lGRElWMl80ICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAyOiAvNCAqLworI2RlZmluZSBTSUZESVYyXzggICAgICAgICAgICAgICgweDAwMEMpICAgICAgIC8qIFNJRiBDbG9jayBEaXZpZGVyIDI6IC84ICovCisKKyNkZWZpbmUgU0lGRElWM18yICAgICAgICAgICAgICAoMHgwMDAwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzOiAvMiAqLworI2RlZmluZSBTSUZESVYzXzYgICAgICAgICAgICAgICgweDAwMTApICAgICAgIC8qIFNJRiBDbG9jayBEaXZpZGVyIDM6IC82ICovCisjZGVmaW5lIFNJRkRJVjNfMTAgICAgICAgICAgICAgKDB4MDAyMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzEwICovCisjZGVmaW5lIFNJRkRJVjNfMTQgICAgICAgICAgICAgKDB4MDAzMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzE0ICovCisjZGVmaW5lIFNJRkRJVjNfMTggICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzE4ICovCisjZGVmaW5lIFNJRkRJVjNfMjIgICAgICAgICAgICAgKDB4MDA1MCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzIyICovCisjZGVmaW5lIFNJRkRJVjNfMjYgICAgICAgICAgICAgKDB4MDA2MCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzI2ICovCisjZGVmaW5lIFNJRkRJVjNfMzAgICAgICAgICAgICAgKDB4MDA3MCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzMwICovCisjZGVmaW5lIFNJRkRJVjNfNDIgICAgICAgICAgICAgKDB4MDBCMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzQyICovCisjZGVmaW5lIFNJRkRJVjNfNTAgICAgICAgICAgICAgKDB4MDEyMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzUwICovCisjZGVmaW5lIFNJRkRJVjNfNTQgICAgICAgICAgICAgKDB4MDBDMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzU0ICovCisjZGVmaW5lIFNJRkRJVjNfNjYgICAgICAgICAgICAgKDB4MDBEMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzY2ICovCisjZGVmaW5lIFNJRkRJVjNfNzAgICAgICAgICAgICAgKDB4MDEzMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzcwICovCisjZGVmaW5lIFNJRkRJVjNfNzggICAgICAgICAgICAgKDB4MDBFMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzc4ICovCisjZGVmaW5lIFNJRkRJVjNfOTAgICAgICAgICAgICAgKDB4MDBGMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzkwICovCisjZGVmaW5lIFNJRkRJVjNfOTggICAgICAgICAgICAgKDB4MDFCMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzk4ICovCisjZGVmaW5lIFNJRkRJVjNfMTEwICAgICAgICAgICAgKDB4MDE1MCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzExMCAqLworI2RlZmluZSBTSUZESVYzXzEyNiAgICAgICAgICAgICgweDAxQzApICAgICAgIC8qIFNJRiBDbG9jayBEaXZpZGVyIDM6IC8xMjYgKi8KKyNkZWZpbmUgU0lGRElWM18xMzAgICAgICAgICAgICAoMHgwMTYwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzOiAvMTMwICovCisjZGVmaW5lIFNJRkRJVjNfMTUwICAgICAgICAgICAgKDB4MDE3MCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzE1MCAqLworI2RlZmluZSBTSUZESVYzXzE1NCAgICAgICAgICAgICgweDAxRDApICAgICAgIC8qIFNJRiBDbG9jayBEaXZpZGVyIDM6IC8xNTQgKi8KKyNkZWZpbmUgU0lGRElWM18xNjIgICAgICAgICAgICAoMHgwMjQwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzOiAvMTYyICovCisjZGVmaW5lIFNJRkRJVjNfMTgyICAgICAgICAgICAgKDB4MDFFMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzE4MiAqLworI2RlZmluZSBTSUZESVYzXzE5OCAgICAgICAgICAgICgweDAyNTApICAgICAgIC8qIFNJRiBDbG9jayBEaXZpZGVyIDM6IC8xOTggKi8KKyNkZWZpbmUgU0lGRElWM18yMTAgICAgICAgICAgICAoMHgwMUYwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzOiAvMjEwICovCisjZGVmaW5lIFNJRkRJVjNfMjM0ICAgICAgICAgICAgKDB4MDI2MCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzIzNCAqLworI2RlZmluZSBTSUZESVYzXzI0MiAgICAgICAgICAgICgweDAyRDApICAgICAgIC8qIFNJRiBDbG9jayBEaXZpZGVyIDM6IC8yNDIgKi8KKyNkZWZpbmUgU0lGRElWM18yNzAgICAgICAgICAgICAoMHgwMjcwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzOiAvMjcwICovCisjZGVmaW5lIFNJRkRJVjNfMjg2ICAgICAgICAgICAgKDB4MDJFMCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzI4NiAqLworI2RlZmluZSBTSUZESVYzXzMzMCAgICAgICAgICAgICgweDAyRjApICAgICAgIC8qIFNJRiBDbG9jayBEaXZpZGVyIDM6IC8zMzAgKi8KKyNkZWZpbmUgU0lGRElWM18zMzggICAgICAgICAgICAoMHgwMzYwKSAgICAgICAvKiBTSUYgQ2xvY2sgRGl2aWRlciAzOiAvMzM4ICovCisjZGVmaW5lIFNJRkRJVjNfMzkwICAgICAgICAgICAgKDB4MDM3MCkgICAgICAgLyogU0lGIENsb2NrIERpdmlkZXIgMzogLzM5MCAqLworI2RlZmluZSBTSUZESVYzXzQ1MCAgICAgICAgICAgICgweDAzRjApICAgICAgIC8qIFNJRiBDbG9jayBEaXZpZGVyIDM6IC80NTAgKi8KKworLyogU0lGQ1RMNSAqLworI2RlZmluZSBTSUZDTEtFTiAgICAgICAgICAgICAgICgweDAwMDEpICAgICAgIC8qIFNJRiAwOlNNQ0xLIGZvciBTSUZDTEsgLyAxOlNJRkNMS0cgZm9yIFNJRkNMSyAqLworI2RlZmluZSBTSUZDTEtHT04gICAgICAgICAgICAgICgweDAwMDIpICAgICAgIC8qIFNJRiBTd2l0Y2ggU0lGQ0xLRyBvbiAqLworI2RlZmluZSBTSUZGTk9NICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNJRiBTZWxlY3QgTm9taW5hbCBGcmVxdS4gMDo0TUh6IC8gMToxTUh6ICovCisjZGVmaW5lIFNJRkNMS0ZRMCAgICAgICAgICAgICAgKDB4MDAwOCkgICAgICAgLyogU0lGIENsb2NrIEdlbmVyYXRvciBmcmVxdWVuY3kgYWRqdXN0IDAgKi8KKyNkZWZpbmUgU0lGQ0xLRlExICAgICAgICAgICAgICAoMHgwMDEwKSAgICAgICAvKiBTSUYgQ2xvY2sgR2VuZXJhdG9yIGZyZXF1ZW5jeSBhZGp1c3QgMSAqLworI2RlZmluZSBTSUZDTEtGUTIgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNJRiBDbG9jayBHZW5lcmF0b3IgZnJlcXVlbmN5IGFkanVzdCAyICovCisjZGVmaW5lIFNJRkNMS0ZRMyAgICAgICAgICAgICAgKDB4MDA0MCkgICAgICAgLyogU0lGIENsb2NrIEdlbmVyYXRvciBmcmVxdWVuY3kgYWRqdXN0IDMgKi8KKyNkZWZpbmUgU0lGVFNNUlAgICAgICAgICAgICAgICAoMHgwMDgwKSAgICAgICAvKiBTSUYgVGltaW5nIFN0YXRlIE1hY2hpbmUgUmVwZWF0IG1vZGUgKi8KKyNkZWZpbmUgU0lGQ05UMzAgICAgICAgICAgICAgICAoMHgwMTAwKSAgICAgICAvKiBTSUYgQ291bnRlciAzLjAgKi8KKyNkZWZpbmUgU0lGQ05UMzEgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTSUYgQ291bnRlciAzLjEgKi8KKyNkZWZpbmUgU0lGQ05UMzIgICAgICAgICAgICAgICAoMHgwNDAwKSAgICAgICAvKiBTSUYgQ291bnRlciAzLjIgKi8KKyNkZWZpbmUgU0lGQ05UMzMgICAgICAgICAgICAgICAoMHgwODAwKSAgICAgICAvKiBTSUYgQ291bnRlciAzLjMgKi8KKyNkZWZpbmUgU0lGQ05UMzQgICAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBTSUYgQ291bnRlciAzLjQgKi8KKyNkZWZpbmUgU0lGQ05UMzUgICAgICAgICAgICAgICAoMHgyMDAwKSAgICAgICAvKiBTSUYgQ291bnRlciAzLjUgKi8KKyNkZWZpbmUgU0lGQ05UMzYgICAgICAgICAgICAgICAoMHg0MDAwKSAgICAgICAvKiBTSUYgQ291bnRlciAzLjYgKi8KKyNkZWZpbmUgU0lGQ05UMzcgICAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBTSUYgQ291bnRlciAzLjcgKi8KKworLyogU0lGVFNNICovCisjZGVmaW5lIFNJRkNIMCAgICAgICAgICAgICAgICAgKDB4MDAwMSkgICAgICAgLyogU0lGIFNlbGVjdCBjaGFubmVsIGZvciB0c206IDAgKi8KKyNkZWZpbmUgU0lGQ0gxICAgICAgICAgICAgICAgICAoMHgwMDAyKSAgICAgICAvKiBTSUYgU2VsZWN0IGNoYW5uZWwgZm9yIHRzbTogMSAqLworI2RlZmluZSBTSUZMQ0VOICAgICAgICAgICAgICAgICgweDAwMDQpICAgICAgIC8qIFNJRiBMQyBlbmFibGUgKi8KKyNkZWZpbmUgU0lGRVggICAgICAgICAgICAgICAgICAoMHgwMDA4KSAgICAgICAvKiBTSUYgICovCisjZGVmaW5lIFNJRkNBICAgICAgICAgICAgICAgICAgKDB4MDAxMCkgICAgICAgLyogU0lGICAqLworI2RlZmluZSBTSUZDTEtPTiAgICAgICAgICAgICAgICgweDAwMjApICAgICAgIC8qIFNJRiAgKi8KKyNkZWZpbmUgU0lGUlNPTiAgICAgICAgICAgICAgICAoMHgwMDQwKSAgICAgICAvKiBTSUYgICovCisjZGVmaW5lIFNJRlRFU1RTMSAgICAgICAgICAgICAgKDB4MDA4MCkgICAgICAgLyogU0lGICAqLworI2RlZmluZSBTSUZEQUMgICAgICAgICAgICAgICAgICgweDAxMDApICAgICAgIC8qIFNJRiAgKi8KKyNkZWZpbmUgU0lGU1RPUCAgICAgICAgICAgICAgICAoMHgwMjAwKSAgICAgICAvKiBTSUYgICovCisjZGVmaW5lIFNJRkFDTEsgICAgICAgICAgICAgICAgKDB4MDQwMCkgICAgICAgLyogU0lGICAqLworI2RlZmluZSBTSUZSRVBFQVQwICAgICAgICAgICAgICgweDA4MDApICAgICAgIC8qIFNJRiAgKi8KKyNkZWZpbmUgU0lGUkVQRUFUMSAgICAgICAgICAgICAoMHgxMDAwKSAgICAgICAvKiBTSUYgICovCisjZGVmaW5lIFNJRlJFUEVBVDIgICAgICAgICAgICAgKDB4MjAwMCkgICAgICAgLyogU0lGICAqLworI2RlZmluZSBTSUZSRVBFQVQzICAgICAgICAgICAgICgweDQwMDApICAgICAgIC8qIFNJRiAgKi8KKyNkZWZpbmUgU0lGUkVQRUFUNCAgICAgICAgICAgICAoMHg4MDAwKSAgICAgICAvKiBTSUYgICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogSW50ZXJydXB0IFZlY3RvcnMgKG9mZnNldCBmcm9tIDB4RkZFMCkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBWRUNUT1JfTkFNRShuYW1lKSAgICAgICBuYW1lIyNfcHRyCisjZGVmaW5lIEVNSVRfUFJBR01BKHgpICAgICAgICAgIF9QcmFnbWEoI3gpCisjZGVmaW5lIENSRUFURV9WRUNUT1IobmFtZSkgICAgIHZvaWQgKCogY29uc3QgVkVDVE9SX05BTUUobmFtZSkpKHZvaWQpID0gJm5hbWUKKyNkZWZpbmUgUExBQ0VfVkVDVE9SKHZlY3RvcixzZWN0aW9uKSBFTUlUX1BSQUdNQShEQVRBX1NFQ1RJT04odmVjdG9yLHNlY3Rpb24pKQorI2RlZmluZSBJU1JfVkVDVE9SKGZ1bmMsb2Zmc2V0KSBDUkVBVEVfVkVDVE9SKGZ1bmMpOyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBMQUNFX1ZFQ1RPUihWRUNUT1JfTkFNRShmdW5jKSwgb2Zmc2V0KQorCisjZGVmaW5lIEJBU0lDVElNRVJfVkVDVE9SICAgICAgICgwICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkUwIEJhc2ljIFRpbWVyICovCisvKiNkZWZpbmUgQkFTSUNUSU1FUl9JU1IoZnVuYykgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAwIikgICovIC8qIDB4RkZFMCBCYXNpYyBUaW1lciAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgUE9SVDJfVkVDVE9SICAgICAgICAgICAgKDEgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRTIgUG9ydCAyICovCisvKiNkZWZpbmUgUE9SVDJfSVNSKGZ1bmMpICAgICAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDAxIikgICovIC8qIDB4RkZFMiBQb3J0IDIgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIFBPUlQxX1ZFQ1RPUiAgICAgICAgICAgICg0ICogMXUpICAgICAgICAgICAgICAgICAgICAgLyogMHhGRkU4IFBvcnQgMSAqLworLyojZGVmaW5lIFBPUlQxX0lTUihmdW5jKSAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwNCIpICAqLyAvKiAweEZGRTggUG9ydCAxICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUjBfQTFfVkVDVE9SICAgICAgICAoNSAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQSBUaW1lcjBfQSBDQzEtMiwgVEEwICovCisvKiNkZWZpbmUgVElNRVIwX0ExX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDA1IikgICovIC8qIDB4RkZFQSBUaW1lcjBfQSBDQzEtMiwgVEEwICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBUSU1FUjBfQTBfVkVDVE9SICAgICAgICAoNiAqIDF1KSAgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZFQyBUaW1lcjBfQSBDQzAgKi8KKy8qI2RlZmluZSBUSU1FUjBfQTBfSVNSKGZ1bmMpICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MDYiKSAgKi8gLyogMHhGRkVDIFRpbWVyMF9BIENDMCAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgU0NBTklGX1ZFQ1RPUiAgICAgICAgICAgKDkgKiAxdSkgICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjIgU2NhbiBJbnRlZmFjZSAqLworLyojZGVmaW5lIFNDQU5JRl9JU1IoZnVuYykgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQwOSIpICAqLyAvKiAweEZGRjIgU2NhbiBJbnRlZmFjZSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgV0RUX1ZFQ1RPUiAgICAgICAgICAgICAgKDEwICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjQgV2F0Y2hkb2cgVGltZXIgKi8KKy8qI2RlZmluZSBXRFRfSVNSKGZ1bmMpICAgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTAiKSAgKi8gLyogMHhGRkY0IFdhdGNoZG9nIFRpbWVyICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBDT01QQVJBVE9SQV9WRUNUT1IgICAgICAoMTEgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGNiBDb21wYXJhdG9yIEEgKi8KKy8qI2RlZmluZSBDT01QQVJBVE9SQV9JU1IoZnVuYykgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTEiKSAgKi8gLyogMHhGRkY2IENvbXBhcmF0b3IgQSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVIxX0ExX1ZFQ1RPUiAgICAgICAgKDEyICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRjggVGltZXIxX0EgQ0MxLTQsIFRBMSAqLworLyojZGVmaW5lIFRJTUVSMV9BMV9JU1IoZnVuYykgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxMiIpICAqLyAvKiAweEZGRjggVGltZXIxX0EgQ0MxLTQsIFRBMSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKyNkZWZpbmUgVElNRVIxX0EwX1ZFQ1RPUiAgICAgICAgKDEzICogMXUpICAgICAgICAgICAgICAgICAgICAvKiAweEZGRkEgVGltZXIxX0EgQ0MwICovCisvKiNkZWZpbmUgVElNRVIxX0EwX0lTUihmdW5jKSAgICAgSVNSX1ZFQ1RPUihmdW5jLCAiLmludDEzIikgICovIC8qIDB4RkZGQSBUaW1lcjFfQSBDQzAgKi8gLyogQ0NFIFYyIFN0eWxlICovCisjZGVmaW5lIE5NSV9WRUNUT1IgICAgICAgICAgICAgICgxNCAqIDF1KSAgICAgICAgICAgICAgICAgICAgLyogMHhGRkZDIE5vbi1tYXNrYWJsZSAqLworLyojZGVmaW5lIE5NSV9JU1IoZnVuYykgICAgICAgICAgIElTUl9WRUNUT1IoZnVuYywgIi5pbnQxNCIpICAqLyAvKiAweEZGRkMgTm9uLW1hc2thYmxlICovIC8qIENDRSBWMiBTdHlsZSAqLworI2RlZmluZSBSRVNFVF9WRUNUT1IgICAgICAgICAgICAoMTUgKiAxdSkgICAgICAgICAgICAgICAgICAgIC8qIDB4RkZGRSBSZXNldCBbSGlnaGVzdCBQcmlvcml0eV0gKi8KKy8qI2RlZmluZSBSRVNFVF9JU1IoZnVuYykgICAgICAgICBJU1JfVkVDVE9SKGZ1bmMsICIuaW50MTUiKSAgKi8gLyogMHhGRkZFIFJlc2V0IFtIaWdoZXN0IFByaW9yaXR5XSAqLyAvKiBDQ0UgVjIgU3R5bGUgKi8KKworLyogQWx0ZXJuYXRlIE5hbWVzICovCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRW5kIG9mIE1vZHVsZXMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYgLyogZXh0ZXJuICJDIiAqLworCisjZW5kaWYgLyogI2lmbmRlZiBfX21zcDQzMHhXNDJ4ICovCisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwLy5jZHRwcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvLmNkdHByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFiMjg0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwLy5jZHRwcm9qZWN0CkBAIC0wLDAgKzEsMjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPD9lY2xpcHNlLWNkdCB2ZXJzaW9uPSIyLjAiPz4NCisNCis8Y2R0cHJvamVjdCBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlIj4NCis8ZXh0ZW5zaW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYmluYXJ5cGFyc2VyLkNvZmZQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5CaW5hcnlQYXJzZXIiLz4NCis8ZGF0YT4NCis8aXRlbSBpZD0ic2Nhbm5lckNvbmZpZ3VyYXRpb24iPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L2l0ZW0+DQorPGl0ZW0gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhdGhlbnRyeSI+DQorPHBhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0ib3V0IiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5ESVNDT1ZFUkVEX1NDQU5ORVJfSU5GTyIvPg0KKzwvaXRlbT4NCis8L2RhdGE+DQorPC9jZHRwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwLy5jcHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwLy5jcHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNWNmMjY2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvLmNwcm9qZWN0CkBAIC0wLDAgKzEsMzMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/Pg0KKzw/ZmlsZVZlcnNpb24gNC4wLjA/Pg0KKw0KKzxjcHJvamVjdD4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiPg0KKzxjY29uZmlndXJhdGlvbiBpZD0iY29udmVydGVkLmNvbmZpZy42MzcxNDgzMCI+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgYnVpbGRTeXN0ZW1JZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZGVmYXVsdENvbmZpZ0RhdGFQcm92aWRlciIgaWQ9ImNvbnZlcnRlZC5jb25maWcuNjM3MTQ4MzAiIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5zZXR0aW5ncyIgbmFtZT0iY29udmVydGVkQ29uZmlnIj4NCis8ZXh0ZXJuYWxTZXR0aW5ncy8+DQorPGV4dGVuc2lvbnM+DQorPGV4dGVuc2lvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJpbmFyeXBhcnNlci5Db2ZmUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuQmluYXJ5UGFyc2VyIi8+DQorPC9leHRlbnNpb25zPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Njb25maWd1cmF0aW9uPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8L2Nwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwLy5wcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY2MTM1ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwLy5wcm9qZWN0CkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+dHhuLmNhdGFsb2cuYzQzMDwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZUJ1aWxkZXI8L25hbWU+DQorCQkJPHRyaWdnZXJzPmNsZWFuLGZ1bGwsaW5jcmVtZW50YWwsPC90cmlnZ2Vycz4NCisJCQk8YXJndW1lbnRzPg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC5hcmd1bWVudHM8L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQuY29yZS5lcnJvck91dHB1dFBhcnNlcjwva2V5Pg0KKwkJCQkJPHZhbHVlPmNvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5Db2ZmRXJyb3JQYXJzZXI7Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkFzbUVycm9yUGFyc2VyO2NvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5MaW5rRXJyb3JQYXJzZXI7b3JnLmVjbGlwc2UuY2R0LmNvcmUuTWFrZUVycm9yUGFyc2VyOzwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW52aXJvbm1lbnQ8L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUF1dG9CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuaW5jPC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVGdWxsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVkSW5jcmVtZW50YWxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLmNvbW1hbmQ8L2tleT4NCisJCQkJCTx2YWx1ZT4ke1hEQ1JPT1R9L3hkYzwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmNsZWFuPC9rZXk+DQorCQkJCQk8dmFsdWU+Y2xlYW48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUNsZWFuQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5hcHBlbmRfZW52aXJvbm1lbnQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS51c2VEZWZhdWx0QnVpbGRDbWQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmF1dG88L2tleT4NCisJCQkJCTx2YWx1ZT5hbGw8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnN0b3BPbkVycm9yPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5TY2FubmVyQ29uZmlnQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCTwvYnVpbGRTcGVjPg0KKwk8bmF0dXJlcz4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0LmNvcmUuY25hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2VOYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5TY2FubmVyQ29uZmlnTmF0dXJlPC9uYXR1cmU+DQorCTwvbmF0dXJlcz4NCis8L3Byb2plY3REZXNjcmlwdGlvbj4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVkOGViMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcwpAQCAtMCwwICsxLDQgQEAKKyNUdWUgTWFyIDE3IDEwOjMyOjA0IFBEVCAyMDA5DQorZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTENCitpbmRleGVyL2luZGV4ZXJJZD1vcmcuZWNsaXBzZS5jZHQuY29yZS5kb21zb3VyY2VpbmRleGVyDQoraW5kZXhlcklkPW9yZy5lY2xpcHNlLmNkdC5jb3JlLmRvbXNvdXJjZWluZGV4ZXINCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwLy54ZGNlbnYubWFrCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBmY2VkN2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC8ueGRjZW52Lm1hawpAQCAtMCwwICsxLDE2IEBACisjCitfWERDQlVJTERDT1VOVCA9IDAKK2lmbmVxICgsJChmaW5kc3RyaW5nIHBhdGgsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDUEFUSCA9IAorb3ZlcnJpZGUgWERDUk9PVCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzCitvdmVycmlkZSBYRENCVUlMRENGRyA9IC4vY29uZmlnLmJsZAorZW5kaWYKK2lmbmVxICgsJChmaW5kc3RyaW5nIGFyZ3MsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDQVJHUyA9IAorb3ZlcnJpZGUgWERDVEFSR0VUUyA9IAorZW5kaWYKKyMKK2lmZXEgKDAsMSkKK1BLR1BBVEggPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMy9wYWNrYWdlczsuLi8uLi8uLgorSE9TVE9TID0gTGludXgKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC9JTVNQNDMweDIyeHgueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvSU1TUDQzMHgyMnh4LnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNmE0ZWU5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvSU1TUDQzMHgyMnh4LnhkYwpAQCAtMCwwICsxLDIwMCBAQAorLyohCisgKiAgPT09PT09PT0gSU1TUDQzMHgyMnh4LnhkYyA9PT09PT09PQorICogIENvbW1vbiBkZWZpbml0aW9uIGZvciBNU1A0MzB4MjJ4eCBkZXZpY2VzCisgKi8KKworbWV0YW9ubHkgaW50ZXJmYWNlIElNU1A0MzB4MjJ4eCBpbmhlcml0cyB4ZGMucGxhdGZvcm0uSUNwdURhdGFTaGVldAoreworaW5zdGFuY2U6CisgICAgb3ZlcnJpZGUgY29uZmlnIHN0cmluZyBjcHVDb3JlICAgICAgICAgID0gIk1TUDQzMCI7CisgICAgb3ZlcnJpZGUgY29uZmlnIHN0cmluZyBjcHVDb3JlUmV2aXNpb24gICA9ICIxLjAiOworICAgIG92ZXJyaWRlIGNvbmZpZyBpbnQgICAgbWluUHJvZ1VuaXRTaXplICAgPSAxOworICAgIG92ZXJyaWRlIGNvbmZpZyBpbnQgICAgbWluRGF0YVVuaXRTaXplICAgPSAxOworICAgIG92ZXJyaWRlIGNvbmZpZyBpbnQgICAgZGF0YVdvcmRTaXplICAgICAgPSAyOworCisgICAgLyohCisgICAgICogID09PT09PT09IGNvbW1vbk1hcCA9PT09PT09PQorICAgICAqICBNZW1vcnkgbWFwIGVsZW1lbnRzIHNoYXJlZCBieSBhbGwgTVNQNDMweDIyeHggZGV2aWNlcworICAgICAqLworICAgIGNvbmZpZyB4ZGMucGxhdGZvcm0uSVBsYXRmb3JtLk1lbW9yeSBjb21tb25NYXBbc3RyaW5nXSAgPSBbCisgICAgICAgIFsiUEVSSVBIRVJBTFNfOEJJVCIsIHsKKyAgICAgICAgICAgIGNvbW1lbnQ6ICAgICJNZW1vcnkgbWFwcGVkIEkvTyByZWdpc3RlcnMiLAorICAgICAgICAgICAgbmFtZTogICAgICAgIlBFUklQSEVSQUxTXzhCSVQiLAorICAgICAgICAgICAgYmFzZTogICAgICAgMHgwMDEwLAorICAgICAgICAgICAgbGVuOiAgICAgICAgMHgwMEYwLAorICAgICAgICAgICAgc3BhY2U6ICAgICAgImlvIiwKKyAgICAgICAgICAgIGFjY2VzczogICAgICJSVyIKKyAgICAgICAgfV0sCisKKyAgICAgICAgWyJQRVJJUEhFUkFMU18xNkJJVCIsIHsKKyAgICAgICAgICAgIGNvbW1lbnQ6ICAgICJNZW1vcnkgbWFwcGVkIEkvTyByZWdpc3RlcnMiLAorICAgICAgICAgICAgbmFtZTogICAgICAgIlBFUklQSEVSQUxTXzE2QklUIiwKKyAgICAgICAgICAgIGJhc2U6ICAgICAgIDB4MDEwMCwKKyAgICAgICAgICAgIGxlbjogICAgICAgIDB4MDEwMCwKKyAgICAgICAgICAgIHNwYWNlOiAgICAgICJpbyIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUlciCisgICAgICAgIH1dLAorCisgICAgICAgIFsiQlNMU0tFWSIsIHsKKyAgICAgICAgICAgIGNvbW1lbnQ6ICAgICJCb290IGxvYWRlciBzZWN1cml0eSBrZXkiLAorICAgICAgICAgICAgbmFtZTogICAgICAgIkJTTFNLRVkiLAorICAgICAgICAgICAgYmFzZTogICAgICAgMHhGRkRFLAorICAgICAgICAgICAgbGVuOiAgICAgICAgMHgwMDAyLAorICAgICAgICAgICAgc3BhY2U6ICAgICAgImRhdGEiLAorICAgICAgICAgICAgYWNjZXNzOiAgICAgIlJJIgorICAgICAgICB9XSwKKworICAgICAgICBbIklOVDAwIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIlJlc2VydmVkIFZlY3RvciIsCisgICAgICAgICAgICBuYW1lOiAgICAgICAiSU5UMDAiLAorICAgICAgICAgICAgYmFzZTogICAgICAgMHhGRkUwLAorICAgICAgICAgICAgbGVuOiAgICAgICAgMHgwMDAyLAorICAgICAgICAgICAgc3BhY2U6ICAgICAgImRhdGEiLAorICAgICAgICAgICAgYWNjZXNzOiAgICAgIlJXIgorICAgICAgICB9XSwKKworICAgICAgICBbIklOVDAxIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIlJlc2VydmVkIFZlY3RvciIsCisgICAgICAgICAgICBuYW1lOiAgICAgICAiSU5UMDEiLAorICAgICAgICAgICAgYmFzZTogICAgICAgMHhGRkUyLAorICAgICAgICAgICAgbGVuOiAgICAgICAgMHgwMDAyLAorICAgICAgICAgICAgc3BhY2U6ICAgICAgImRhdGEiLAorICAgICAgICAgICAgYWNjZXNzOiAgICAgIlJXIgorICAgICAgICB9XSwKKworICAgICAgICBbIklPUE9SVDEiLCB7CisgICAgICAgICAgICBjb21tZW50OiAgICAiSS9PIFBvcnQgUDEgVmVjdG9yIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJJT1BPUlQxIiwKKyAgICAgICAgICAgIGJhc2U6ICAgICAgIDB4RkZFNCwKKyAgICAgICAgICAgIGxlbjogICAgICAgIDB4MDAwMiwKKyAgICAgICAgICAgIHNwYWNlOiAgICAgICJkYXRhIiwKKyAgICAgICAgICAgIGFjY2VzczogICAgICJSVyIKKyAgICAgICAgfV0sCisKKyAgICAgICAgWyJJT1BPUlQyIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIkkvTyBQb3J0IFAyIFZlY3RvciIsCisgICAgICAgICAgICBuYW1lOiAgICAgICAiSU9QT1JUMiIsCisgICAgICAgICAgICBiYXNlOiAgICAgICAweEZGRTYsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDAwMDIsCisgICAgICAgICAgICBzcGFjZTogICAgICAiZGF0YSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUlciCisgICAgICAgIH1dLAorCisgICAgICAgIFsiSU5UMDQiLCB7CisgICAgICAgICAgICBjb21tZW50OiAgICAiUmVzZXJ2ZWQgVmVjdG9yIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJJTlQwNCIsCisgICAgICAgICAgICBiYXNlOiAgICAgICAweEZGRTgsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDAwMDIsCisgICAgICAgICAgICBzcGFjZTogICAgICAiZGF0YSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUlciCisgICAgICAgIH1dLAorCisgICAgICAgIFsiQURDMTAiLCB7CisgICAgICAgICAgICBjb21tZW50OiAgICAiQURDMTAgVmVjdG9yIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJBREMxMCIsCisgICAgICAgICAgICBiYXNlOiAgICAgICAweEZGRUEsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDAwMDIsCisgICAgICAgICAgICBzcGFjZTogICAgICAiZGF0YSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUlciCisgICAgICAgIH1dLAorCisgICAgICAgIFsiVVNDSV9UWCIsIHsKKyAgICAgICAgICAgIGNvbW1lbnQ6ICAgICJVU0NJX0EwL0IwIFRyYW5zbWl0IFZlY3RvciIsCisgICAgICAgICAgICBuYW1lOiAgICAgICAiVVNDSV9UWCIsCisgICAgICAgICAgICBiYXNlOiAgICAgICAweEZGRUMsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDAwMDIsCisgICAgICAgICAgICBzcGFjZTogICAgICAiZGF0YSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUlciCisgICAgICAgIH1dLAorCisgICAgICAgIFsiVVNDSV9SWCIsIHsKKyAgICAgICAgICAgIGNvbW1lbnQ6ICAgICJVU0NJX0EwL0IwIFJlY2VpdmUgVmVjdG9yIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJVU0NJX1JYIiwKKyAgICAgICAgICAgIGJhc2U6ICAgICAgIDB4RkZFRSwKKyAgICAgICAgICAgIGxlbjogICAgICAgIDB4MDAwMiwKKyAgICAgICAgICAgIHNwYWNlOiAgICAgICJkYXRhIiwKKyAgICAgICAgICAgIGFjY2VzczogICAgICJSVyIKKyAgICAgICAgfV0sCisKKyAgICAgICAgWyJUSU1FUl9BMSIsIHsKKyAgICAgICAgICAgIGNvbW1lbnQ6ICAgICJUaW1lcl9BMyBUQkNDUjEgVmVjdG9yIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJUSU1FUl9BMSIsCisgICAgICAgICAgICBiYXNlOiAgICAgICAweEZGRjAsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDAwMDIsCisgICAgICAgICAgICBzcGFjZTogICAgICAiZGF0YSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUlciCisgICAgICAgIH1dLAorCisgICAgICAgIFsiVElNRVJfQTAiLCB7CisgICAgICAgICAgICBjb21tZW50OiAgICAiVGltZXJfQTMgVEJDQ1IwIFZlY3RvciIsCisgICAgICAgICAgICBuYW1lOiAgICAgICAiVElNRVJfQTAiLAorICAgICAgICAgICAgYmFzZTogICAgICAgMHhGRkYyLAorICAgICAgICAgICAgbGVuOiAgICAgICAgMHgwMDAyLAorICAgICAgICAgICAgc3BhY2U6ICAgICAgImRhdGEiLAorICAgICAgICAgICAgYWNjZXNzOiAgICAgIlJXIgorICAgICAgICB9XSwKKworICAgICAgICBbIklOVDEwIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIldhdGNoZG9nIFZlY3RvciIsCisgICAgICAgICAgICBuYW1lOiAgICAgICAiSU5UMTAiLAorICAgICAgICAgICAgYmFzZTogICAgICAgMHhGRkY0LAorICAgICAgICAgICAgbGVuOiAgICAgICAgMHgwMDAyLAorICAgICAgICAgICAgc3BhY2U6ICAgICAgImRhdGEiLAorICAgICAgICAgICAgYWNjZXNzOiAgICAgIlJXIgorICAgICAgICB9XSwKKworICAgICAgICBbIklOVDExIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIlJlc2VydmVkIFZlY3RvciIsCisgICAgICAgICAgICBuYW1lOiAgICAgICAiSU5UMTEiLAorICAgICAgICAgICAgYmFzZTogICAgICAgMHhGRkY2LAorICAgICAgICAgICAgbGVuOiAgICAgICAgMHgwMDAyLAorICAgICAgICAgICAgc3BhY2U6ICAgICAgImRhdGEiLAorICAgICAgICAgICAgYWNjZXNzOiAgICAgIlJXIgorICAgICAgICB9XSwKKworICAgICAgICBbIlRJTUVSX0IxIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIlRpbWVyX0IzIFRCQ0NSMSBWZWN0b3IiLAorICAgICAgICAgICAgbmFtZTogICAgICAgIlRJTUVSX0IxIiwKKyAgICAgICAgICAgIGJhc2U6ICAgICAgIDB4RkZGOCwKKyAgICAgICAgICAgIGxlbjogICAgICAgIDB4MDAwMiwKKyAgICAgICAgICAgIHNwYWNlOiAgICAgICJkYXRhIiwKKyAgICAgICAgICAgIGFjY2VzczogICAgICJSVyIKKyAgICAgICAgfV0sCisKKyAgICAgICAgWyJUSU1FUl9CMCIsIHsKKyAgICAgICAgICAgIGNvbW1lbnQ6ICAgICJUaW1lcl9CMyBUQkNDUjAgVmVjdG9yIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJUSU1FUl9CMCIsCisgICAgICAgICAgICBiYXNlOiAgICAgICAweEZGRkEsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDAwMDIsCisgICAgICAgICAgICBzcGFjZTogICAgICAiZGF0YSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUlciCisgICAgICAgIH1dLAorCisgICAgICAgIFsiTk1JIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIk5NSSBWZWN0b3IiLAorICAgICAgICAgICAgbmFtZTogICAgICAgIk5NSSIsCisgICAgICAgICAgICBiYXNlOiAgICAgICAweEZGRkMsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDAwMDIsCisgICAgICAgICAgICBzcGFjZTogICAgICAiZGF0YSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUlciCisgICAgICAgIH1dLAorCisgICAgICAgIFsiUkVTRVQiLCB7CisgICAgICAgICAgICBjb21tZW50OiAgICAiUmVzZXQgVmVjdG9yIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJSRVNFVCIsIAorICAgICAgICAgICAgYmFzZTogICAgICAgMHhGRkZFLAorICAgICAgICAgICAgbGVuOiAgICAgICAgMHgwMDAyLAorICAgICAgICAgICAgc3BhY2U6ICAgICAgImRhdGEiLAorICAgICAgICAgICAgYWNjZXNzOiAgICAgIlJXIgorICAgICAgICB9XSwKKworICAgICAgICBbIklORk8iLCB7CisgICAgICAgICAgICBjb21tZW50OiAgICAiSW5mb3JtYXRpb24gRkxBU0giLAorICAgICAgICAgICAgbmFtZTogICAgICAgIklORk8iLAorICAgICAgICAgICAgYmFzZTogICAgICAgMHgxMDAwLAorICAgICAgICAgICAgbGVuOiAgICAgICAgMHgxMDAsCisgICAgICAgICAgICBzcGFjZTogICAgICAiZGF0YSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUlciCisgICAgICAgIH1dLAorICAgIF07Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC9JTVNQNDMweDIyeHgueHMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC9JTVNQNDMweDIyeHgueHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTRiYTMyZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwL0lNU1A0MzB4MjJ4eC54cwpAQCAtMCwwICsxLDIzIEBACisvKgorICogIENvcHlyaWdodCAyMDA4IGJ5IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZC4KKyAqCisgKiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gUHJvcGVydHkgb2YgVGV4YXMgSW5zdHJ1bWVudHMgSW5jb3Jwb3JhdGVkLgorICogIFJlc3RyaWN0ZWQgcmlnaHRzIHRvIHVzZSwgZHVwbGljYXRlIG9yIGRpc2Nsb3NlIHRoaXMgY29kZSBhcmUKKyAqICBncmFudGVkIHRocm91Z2ggY29udHJhY3QuCisgKgorICovCisKKy8qCisgKiAgPT09PT09PT0gZ2V0TWVtb3J5TWFwID09PT09PT09CisgKiAgUmV0dXJucyB0aGUgbWVtb3J5IG1hcCBhcyBzZWVuIGJ5IGEgcHJvZ3JhbSBydW5uaW5nIG9uIHRoaXMgZGV2aWNlCisgKiAgd2hlbiB0aGUgcmVnaXN0ZXJzIGFyZSBzZXQgYXMgc3BlY2lmaWVkIGJ5IHRoZSByZWdzIGhhc2guCisgKi8KK2Z1bmN0aW9uIGdldE1lbW9yeU1hcChyZWdzKQoreworICAgIC8qIGFkZCBjb21tb24gbWVtb3J5IGJsb2NrcyB0byB0aGlzIGRldmljZSdzIG1lbW9yeSBtYXAgKi8KKyAgICBmb3IgKHZhciBrZXkgaW4gdGhpcy5jb21tb25NYXApIHsKKyAgICAgICAgdGhpcy5kZXZpY2VNYXBba2V5XSA9IHRoaXMuY29tbW9uTWFwW2tleV07CisgICAgfQorICAgIHJldHVybiAodGhpcy5kZXZpY2VNYXApOworfQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC9NU1A0MzAueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvTVNQNDMwLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjQxNDA1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvTVNQNDMwLnhkYwpAQCAtMCwwICsxLDU2IEBACisvKiAtLUNPUFlSSUdIVC0tLEVQTAorICogIENvcHlyaWdodCAoYykgMjAwOCBUZXhhcyBJbnN0cnVtZW50cyBhbmQgb3RoZXJzLgorICogIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyAqICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorICogIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiAKKyAqICBDb250cmlidXRvcnM6CisgKiAgICAgIFRleGFzIEluc3RydW1lbnRzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgorICogCisgKiAtLS9DT1BZUklHSFQtLSovCisvKiEKKyAqICA9PT09PT09PSBNU1A0MzAueGRjID09PT09PT09CisgKiAgRGVmYXVsdCBNU1A0MzAgZGV2aWNlIChiYXNlZCBvbiBNU1A0MzBGMjI3NCkKKyAqLworbWV0YW9ubHkgbW9kdWxlIE1TUDQzMCBpbmhlcml0cyB4ZGMucGxhdGZvcm0uSUNwdURhdGFTaGVldAoreworaW5zdGFuY2U6CisgICAgb3ZlcnJpZGUgY29uZmlnIHN0cmluZyBjcHVDb3JlICAgICAgICAgID0gIk1TUDQzMCI7CisgICAgb3ZlcnJpZGUgY29uZmlnIHN0cmluZyBjcHVDb3JlUmV2aXNpb24gICA9ICIxLjAiOworICAgIG92ZXJyaWRlIGNvbmZpZyBpbnQgICAgbWluUHJvZ1VuaXRTaXplICAgPSAxOworICAgIG92ZXJyaWRlIGNvbmZpZyBpbnQgICAgbWluRGF0YVVuaXRTaXplICAgPSAxOworICAgIG92ZXJyaWRlIGNvbmZpZyBpbnQgICAgZGF0YVdvcmRTaXplICAgICAgPSAyOworCisgICAgLyohCisgICAgICogID09PT09PT09IG1lbU1hcCA9PT09PT09PQorICAgICAqICBUaGUgbWVtb3J5IG1hcCByZXR1cm5lZCBiZSBnZXRNZW1vcnlNYXAoKS4KKyAgICAgKi8KKyAgICBjb25maWcgeGRjLnBsYXRmb3JtLklQbGF0Zm9ybS5NZW1vcnkgbWVtTWFwW3N0cmluZ10gID0gWworICAgICAgICBbIlJBTSIsIHsKKyAgICAgICAgICAgIGNvbW1lbnQ6ICAgICJEYXRhIFJBTSIsCisgICAgICAgICAgICBuYW1lOiAgICAgICAiUkFNIiwKKyAgICAgICAgICAgIGJhc2U6ICAgICAgIDB4MjAwLAorICAgICAgICAgICAgbGVuOiAgICAgICAgMHg3RDAwLAorICAgICAgICAgICAgc3BhY2U6ICAgICAgImNvZGUvZGF0YSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUldYIgorICAgICAgICB9XSwKKworICAgICAgICBbIkZMQVNIIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIlByb2dyYW0gRkxBU0giLAorICAgICAgICAgICAgbmFtZTogICAgICAgIkZMQVNIIiwKKyAgICAgICAgICAgIGJhc2U6ICAgICAgIDB4ODAwMCwKKyAgICAgICAgICAgIGxlbjogICAgICAgIDB4N0ZGRSwKKyAgICAgICAgICAgIHNwYWNlOiAgICAgICJjb2RlIiwKKyAgICAgICAgICAgIGFjY2VzczogICAgICJSV1giCisgICAgICAgIH1dLAorCisgICAgICAgIFsiUkVTRVQiLCB7CisgICAgICAgICAgICBjb21tZW50OiAiUmVzZXQgVmVjdG9yIiwKKyAgICAgICAgICAgIG5hbWU6ICJSRVNFVCIsIAorICAgICAgICAgICAgYmFzZTogMHhGRkZFLAorICAgICAgICAgICAgbGVuOiAweDAwMDIsCisgICAgICAgICAgICBzcGFjZTogImRhdGEiCisgICAgICAgIH1dLAorICAgIF07Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC9NU1A0MzAueHMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC9NU1A0MzAueHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTk1ZWJmZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwL01TUDQzMC54cwpAQCAtMCwwICsxLDE4IEBACisvKgorICogIENvcHlyaWdodCAyMDA4IGJ5IFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZC4KKyAqCisgKiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gUHJvcGVydHkgb2YgVGV4YXMgSW5zdHJ1bWVudHMgSW5jb3Jwb3JhdGVkLgorICogIFJlc3RyaWN0ZWQgcmlnaHRzIHRvIHVzZSwgZHVwbGljYXRlIG9yIGRpc2Nsb3NlIHRoaXMgY29kZSBhcmUKKyAqICBncmFudGVkIHRocm91Z2ggY29udHJhY3QuCisgKgorICovCisKKy8qCisgKiAgPT09PT09PT0gTVNQNDMwLmdldE1lbW9yeU1hcCA9PT09PT09PQorICogIFJldHVybnMgdGhlIG1lbW9yeSBtYXAgYXMgc2VlbiBieSBhIHByb2dyYW0gcnVubmluZyBvbiB0aGlzIGRldmljZQorICogIHdoZW4gdGhlIHJlZ2lzdGVycyBhcmUgc2V0IGFzIHNwZWNpZmllZCBieSB0aGUgcmVncyBoYXNoLgorICovCitmdW5jdGlvbiBnZXRNZW1vcnlNYXAocmVncykKK3sKKyAgICByZXR1cm4gKHRoaXMubWVtTWFwKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwL01TUDQzMEYyMjN4LnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwL01TUDQzMEYyMjN4LnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2M0MDhjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvTVNQNDMwRjIyM3gueGRjCkBAIC0wLDAgKzEsNTAgQEAKKy8qIC0tQ09QWVJJR0hULS0sRVBMCisgKiAgQ29weXJpZ2h0IChjKSAyMDA4IFRleGFzIEluc3RydW1lbnRzIGFuZCBvdGhlcnMuCisgKiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworICogIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIAorICogIENvbnRyaWJ1dG9yczoKKyAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisgKiAKKyAqIC0tL0NPUFlSSUdIVC0tKi8KKworLyohCisgKiAgPT09PT09PT0gTVNQNDMwRjIyM3gueGRjID09PT09PT09CisgKiAgTVNQNDMwRjIyM3ggQ3B1IGRlZmluaXRpb24KKyAqCisgKiAgVGhpcyBkZXZpY2UgaGFzIDhLQiArIDI1NkIgb2YgRmxhc2ggTWVtb3J5IGFuZCA1MTJCIFJBTS4gIFRoZQorICogIE1TUDQzMEYyMjM0IGhhcyB0d28gb3AtYW1wcyAoT0EpIHdoZXJlYXMgdGhlIE1TUDQzMEYyMjMyIGhhcyBub25lLgorICovCisKK21ldGFvbmx5IG1vZHVsZSBNU1A0MzBGMjIzeCBpbmhlcml0cyBJTVNQNDMweDIyeHgKK3sKK2luc3RhbmNlOgorICAgIC8qIQorICAgICAqICA9PT09PT09PSBkZXZpY2VNYXAgPT09PT09PT0KKyAgICAgKiAgRGV2aWNlIHNwZWNpZmljIG1lbW9yeSBibG9ja3MKKyAgICAgKgorICAgICAqICBUaGlzIG1lbW9yeSB0b2dldGhlciB3aXRoIHRoZSBjb21tb24gZmFtaWx5IG1lbW9yeSBmb3JtcyB0aGUgCisgICAgICogIGNvbXBsZXRlIG1lbW9yeSBtYXAgcmV0dW5lZCBieSBgZ2V0TWVtb3J5TWFwKClgLgorICAgICAqLworICAgIGNvbmZpZyB4ZGMucGxhdGZvcm0uSVBsYXRmb3JtLk1lbW9yeSBkZXZpY2VNYXBbc3RyaW5nXSAgPSBbCisgICAgICAgIFsiUkFNIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIkRhdGEgUkFNIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJSQU0iLAorICAgICAgICAgICAgYmFzZTogICAgICAgMHgyMDAsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDIwMCwKKyAgICAgICAgICAgIHNwYWNlOiAgICAgICJjb2RlL2RhdGEiLAorICAgICAgICAgICAgYWNjZXNzOiAgICAgIlJXWCIKKyAgICAgICAgfV0sCisKKyAgICAgICAgWyJGTEFTSCIsIHsKKyAgICAgICAgICAgIGNvbW1lbnQ6ICAgICJQcm9ncmFtIEZMQVNIIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJGTEFTSCIsCisgICAgICAgICAgICBiYXNlOiAgICAgICAweEUwMDAsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDFGREUsCisgICAgICAgICAgICBzcGFjZTogICAgICAiY29kZSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUldYIgorICAgICAgICB9XSwKKyAgICBdOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvTVNQNDMwRjIyNXgueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvTVNQNDMwRjIyNXgueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2NzY5MWEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC9NU1A0MzBGMjI1eC54ZGMKQEAgLTAsMCArMSw1MCBAQAorLyogLS1DT1BZUklHSFQtLSxFUEwKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMgYW5kIG90aGVycy4KKyAqICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisgKiAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogCisgKiAgQ29udHJpYnV0b3JzOgorICogICAgICBUZXhhcyBJbnN0cnVtZW50cyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24KKyAqIAorICogLS0vQ09QWVJJR0hULS0qLworCisvKiEKKyAqICA9PT09PT09PSBNU1A0MzBGMjI1eC54ZGMgPT09PT09PT0KKyAqICBNU1A0MzBGMjI1eCBDcHUgZGVmaW5pdGlvbgorICoKKyAqICBUaGlzIGRldmljZSBoYXMgMTZLQiArIDI1NkIgb2YgRmxhc2ggTWVtb3J5IGFuZCA1MTJCIFJBTS4gIFRoZQorICogIE1TUDQzMEYyMjU0IGhhcyB0d28gb3AtYW1wcyAoT0EpIHdoZXJlYXMgdGhlIE1TUDQzMEYyMjUyIGhhcyBub25lLgorICovCisKK21ldGFvbmx5IG1vZHVsZSBNU1A0MzBGMjI1eCBpbmhlcml0cyBJTVNQNDMweDIyeHgKK3sKK2luc3RhbmNlOgorICAgIC8qIQorICAgICAqICA9PT09PT09PSBkZXZpY2VNYXAgPT09PT09PT0KKyAgICAgKiAgRGV2aWNlIHNwZWNpZmljIG1lbW9yeSBibG9ja3MKKyAgICAgKgorICAgICAqICBUaGlzIG1lbW9yeSB0b2dldGhlciB3aXRoIHRoZSBjb21tb24gZmFtaWx5IG1lbW9yeSBmb3JtcyB0aGUgCisgICAgICogIGNvbXBsZXRlIG1lbW9yeSBtYXAgcmV0dW5lZCBieSBgZ2V0TWVtb3J5TWFwKClgLgorICAgICAqLworICAgIGNvbmZpZyB4ZGMucGxhdGZvcm0uSVBsYXRmb3JtLk1lbW9yeSBkZXZpY2VNYXBbc3RyaW5nXSAgPSBbCisgICAgICAgIFsiUkFNIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIkRhdGEgUkFNIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJSQU0iLAorICAgICAgICAgICAgYmFzZTogICAgICAgMHgyMDAsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDIwMCwKKyAgICAgICAgICAgIHNwYWNlOiAgICAgICJjb2RlL2RhdGEiLAorICAgICAgICAgICAgYWNjZXNzOiAgICAgIlJXWCIKKyAgICAgICAgfV0sCisKKyAgICAgICAgWyJGTEFTSCIsIHsKKyAgICAgICAgICAgIGNvbW1lbnQ6ICAgICJQcm9ncmFtIEZMQVNIIiwKKyAgICAgICAgICAgIG5hbWU6ICAgICAgICJGTEFTSCIsCisgICAgICAgICAgICBiYXNlOiAgICAgICAweEMwMDAsCisgICAgICAgICAgICBsZW46ICAgICAgICAweDNGREUsCisgICAgICAgICAgICBzcGFjZTogICAgICAiY29kZSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUldYIgorICAgICAgICB9XSwKKyAgICBdOworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvTVNQNDMwRjIyN3gueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvTVNQNDMwRjIyN3gueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc3YzQ0YmQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC9NU1A0MzBGMjI3eC54ZGMKQEAgLTAsMCArMSw1MCBAQAorLyogLS1DT1BZUklHSFQtLSxFUEwKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMgYW5kIG90aGVycy4KKyAqICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisgKiAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogCisgKiAgQ29udHJpYnV0b3JzOgorICogICAgICBUZXhhcyBJbnN0cnVtZW50cyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24KKyAqIAorICogLS0vQ09QWVJJR0hULS0qLworCisvKiEKKyAqICA9PT09PT09PSBNU1A0MzBGMjI3eC54ZGMgPT09PT09PT0KKyAqICBNU1A0MzBGMjI3eCBDcHUgZGVmaW5pdGlvbgorICoKKyAqICBUaGlzIGRldmljZSBoYXMgMzJLQiArIDI1NkIgb2YgRmxhc2ggTWVtb3J5IGFuZCAxS0IgUkFNLiAgVGhlCisgKiAgTVNQNDMwRjIyNzQgaGFzIHR3byBvcC1hbXBzIChPQSkgd2hlcmVhcyB0aGUgTVNQNDMwRjIyNzIgaGFzIG5vbmUuCisgKi8KKworbWV0YW9ubHkgbW9kdWxlIE1TUDQzMEYyMjd4IGluaGVyaXRzIElNU1A0MzB4MjJ4eAoreworaW5zdGFuY2U6CisgICAgLyohCisgICAgICogID09PT09PT09IGRldmljZU1hcCA9PT09PT09PQorICAgICAqICBEZXZpY2Ugc3BlY2lmaWMgbWVtb3J5IGJsb2NrcworICAgICAqCisgICAgICogIFRoaXMgbWVtb3J5IHRvZ2V0aGVyIHdpdGggdGhlIGNvbW1vbiBmYW1pbHkgbWVtb3J5IGZvcm1zIHRoZSAKKyAgICAgKiAgY29tcGxldGUgbWVtb3J5IG1hcCByZXR1bmVkIGJ5IGBnZXRNZW1vcnlNYXAoKWAuCisgICAgICovCisgICAgY29uZmlnIHhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uTWVtb3J5IGRldmljZU1hcFtzdHJpbmddICA9IFsKKyAgICAgICAgWyJSQU0iLCB7CisgICAgICAgICAgICBjb21tZW50OiAgICAiRGF0YSBSQU0iLAorICAgICAgICAgICAgbmFtZTogICAgICAgIlJBTSIsCisgICAgICAgICAgICBiYXNlOiAgICAgICAweDIwMCwKKyAgICAgICAgICAgIGxlbjogICAgICAgIDB4NDAwLAorICAgICAgICAgICAgc3BhY2U6ICAgICAgImNvZGUvZGF0YSIsCisgICAgICAgICAgICBhY2Nlc3M6ICAgICAiUldYIgorICAgICAgICB9XSwKKworICAgICAgICBbIkZMQVNIIiwgeworICAgICAgICAgICAgY29tbWVudDogICAgIlByb2dyYW0gRkxBU0giLAorICAgICAgICAgICAgbmFtZTogICAgICAgIkZMQVNIIiwKKyAgICAgICAgICAgIGJhc2U6ICAgICAgIDB4ODAwMCwKKyAgICAgICAgICAgIGxlbjogICAgICAgIDB4N0ZERSwKKyAgICAgICAgICAgIHNwYWNlOiAgICAgICJjb2RlIiwKKyAgICAgICAgICAgIGFjY2VzczogICAgICJSV1giCisgICAgICAgIH1dLAorICAgIF07Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL2NhdGFsb2cvYzQzMC9jb25maWcuYmxkIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvY29uZmlnLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjcwNDcwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvY29uZmlnLmJsZApAQCAtMCwwICsxLDIgQEAKKy8qICBUaGlzIGZpbGUgb3ZlcnJpZGVzIHRoZSB1c2VyJ3MgY29uZmlnLmJsZCBzaW5jZSBubyB0YXJnZXRzIGFyZSBuZWVkZWQgKi8KK0J1aWxkLnVzZVRhcmdldHMgPSBudWxsOyAgICAvKiBmb3JjZSB0aGUgc2V0IG9mIGJ1aWxkIHRhcmdldHMgdG8gYmUgZW1wdHkgKi8KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwL3BhY2thZ2UuYmxkIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvcGFja2FnZS5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVmZjEzZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwL3BhY2thZ2UuYmxkCkBAIC0wLDAgKzEsNCBAQAorLyogIEFsdGhvdWdoICJlbXB0eSIsIHRoaXMgZmlsZSBtdXN0IGV4aXN0IHRvIGluZGljYXRlIHRoYXQgdGhpcyBwYWNrYWdlIGlzCisgKiAgYnVpbGRhYmxlLiAgU2luY2UgdGhpcyBwYWNrYWdlIG9ubHkgY29udHJhaW5zIHNwZWNpZmljYXRpb25zIGRlY2xhcmVkCisgKiAgaW4gcGFja2FnZS54ZGMsIHRoZXJlIGlzIG5vdGhpbmcgd2UgbmVlZCB0byBhZGQgaGVyZS4KKyAqLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwL3BhY2thZ2UueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9jYXRhbG9nL2M0MzAvcGFja2FnZS54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRiMmM5NgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vY2F0YWxvZy9jNDMwL3BhY2thZ2UueGRjCkBAIC0wLDAgKzEsMTMgQEAKKy8qIQorICogID09PT09PT09IHR4bi5jYXRhbG9nLmM0MzAgPT09PT09PT0KKyAqICBQYWNrYWdlIG9mIGRldmljZXMgZm9yIHRoZSBNU1A0MzAgZmFtaWx5IHByb2Nlc3NvcnMuCisgKgorICogIEVhY2ggbW9kdWxlIGluIHRoaXMgcGFja2FnZSBpbXBsZW1lbnRzIHRoZSB4ZGMucGxhdGZvcm0uSUNwdURhdGFTaGVldAorICogIGludGVyZmFjZS4gVGhpcyBpbnRlcmZhY2UgaXMgdXNlZCBieSBwbGF0Zm9ybXMgKG1vZHVsZXMgdGhhdCBpbXBsZW1lbnQKKyAqICB4ZGMucGxhdGZvcm0uSVBsYXRmb3JtKSB0byBvYnRhaW4gdGhlIG1lbW9yeSBtYXAgc3VwcG9ydGVkIGJ5IGVhY2ggQ1BVLgorICovCitwYWNrYWdlIHR4bi5jYXRhbG9nLmM0MzAgWzEsMCwwLDBdIHsKKyAgICBtb2R1bGUgTVNQNDMwOworICAgIG1vZHVsZSBNU1A0MzBGMjIzeCwgTVNQNDMwRjIyNXgsIE1TUDQzMEYyMjd4OworICAgIGludGVyZmFjZSBJTVNQNDMweDIyeHg7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvLmNkdHByb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvLmNkdHByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFiMjg0OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC8uY2R0cHJvamVjdApAQCAtMCwwICsxLDI2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZWNsaXBzZS1jZHQgdmVyc2lvbj0iMi4wIj8+DQorDQorPGNkdHByb2plY3QgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZSI+DQorPGV4dGVuc2lvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJpbmFyeXBhcnNlci5Db2ZmUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuQmluYXJ5UGFyc2VyIi8+DQorPGRhdGE+DQorPGl0ZW0gaWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9pdGVtPg0KKzxpdGVtIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L2l0ZW0+DQorPC9kYXRhPg0KKzwvY2R0cHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvLmNwcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwLy5jcHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGU2NmU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwLy5jcHJvamVjdApAQCAtMCwwICsxLDMzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8P2ZpbGVWZXJzaW9uIDQuMC4wPz4NCisNCis8Y3Byb2plY3Q+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnNldHRpbmdzIj4NCis8Y2NvbmZpZ3VyYXRpb24gaWQ9ImNvbnZlcnRlZC5jb25maWcuMTg3ODE0Mjg4OSI+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzxzdG9yYWdlTW9kdWxlIG1vZHVsZUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgYnVpbGRTeXN0ZW1JZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuZGVmYXVsdENvbmZpZ0RhdGFQcm92aWRlciIgaWQ9ImNvbnZlcnRlZC5jb25maWcuMTg3ODE0Mjg4OSIgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnNldHRpbmdzIiBuYW1lPSJjb252ZXJ0ZWRDb25maWciPg0KKzxleHRlcm5hbFNldHRpbmdzLz4NCis8ZXh0ZW5zaW9ucz4NCis8ZXh0ZW5zaW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYmluYXJ5cGFyc2VyLkNvZmZQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5CaW5hcnlQYXJzZXIiLz4NCis8L2V4dGVuc2lvbnM+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY2NvbmZpZ3VyYXRpb24+DQorPC9zdG9yYWdlTW9kdWxlPg0KKzwvY3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwLy5wcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzZWVmNmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvLnByb2plY3QKQEAgLTAsMCArMSw4MyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8cHJvamVjdERlc2NyaXB0aW9uPg0KKwk8bmFtZT50eG4ucGxhdGZvcm1zLmV6NDMwX3JmMjUwMDwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCQk8cHJvamVjdD50eG4uY2F0YWxvZy5jNDMwPC9wcm9qZWN0Pg0KKwkJPHByb2plY3Q+dHhuLnRhcmdldHM8L3Byb2plY3Q+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZUJ1aWxkZXI8L25hbWU+DQorCQkJPHRyaWdnZXJzPmNsZWFuLGZ1bGwsaW5jcmVtZW50YWwsPC90cmlnZ2Vycz4NCisJCQk8YXJndW1lbnRzPg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC5hcmd1bWVudHM8L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQuY29yZS5lcnJvck91dHB1dFBhcnNlcjwva2V5Pg0KKwkJCQkJPHZhbHVlPmNvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5Db2ZmRXJyb3JQYXJzZXI7Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkFzbUVycm9yUGFyc2VyO2NvbS50aS5jY3N0dWRpby5lcnJvcnBhcnNlci5MaW5rRXJyb3JQYXJzZXI7b3JnLmVjbGlwc2UuY2R0LmNvcmUuTWFrZUVycm9yUGFyc2VyOzwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQXV0b0J1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVudmlyb25tZW50PC9rZXk+DQorCQkJCQk8dmFsdWU+PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVGdWxsQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuaW5jPC9rZXk+DQorCQkJCQk8dmFsdWU+YWxsPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVkSW5jcmVtZW50YWxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5jbGVhbjwva2V5Pg0KKwkJCQkJPHZhbHVlPmNsZWFuPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC5jb21tYW5kPC9rZXk+DQorCQkJCQk8dmFsdWU+JHtYRENST09UfS94ZGM8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUNsZWFuQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5hcHBlbmRfZW52aXJvbm1lbnQ8L2tleT4NCisJCQkJCTx2YWx1ZT50cnVlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS51c2VEZWZhdWx0QnVpbGRDbWQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmF1dG88L2tleT4NCisJCQkJCTx2YWx1ZT5hbGw8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnN0b3BPbkVycm9yPC9rZXk+DQorCQkJCQk8dmFsdWU+ZmFsc2U8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5TY2FubmVyQ29uZmlnQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCTwvYnVpbGRTcGVjPg0KKwk8bmF0dXJlcz4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0LmNvcmUuY25hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLm1ha2VOYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5TY2FubmVyQ29uZmlnTmF0dXJlPC9uYXR1cmU+DQorCTwvbmF0dXJlcz4NCis8L3Byb2plY3REZXNjcmlwdGlvbj4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWQ4ZWIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jZHQuY29yZS5wcmVmcwpAQCAtMCwwICsxLDQgQEAKKyNUdWUgTWFyIDE3IDEwOjMyOjA0IFBEVCAyMDA5DQorZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTENCitpbmRleGVyL2luZGV4ZXJJZD1vcmcuZWNsaXBzZS5jZHQuY29yZS5kb21zb3VyY2VpbmRleGVyDQoraW5kZXhlcklkPW9yZy5lY2xpcHNlLmNkdC5jb3JlLmRvbXNvdXJjZWluZGV4ZXINCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjBkMTAxMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC8ueGRjZW52Lm1hawpAQCAtMCwwICsxLDE2IEBACisjCitfWERDQlVJTERDT1VOVCA9IDAKK2lmbmVxICgsJChmaW5kc3RyaW5nIHBhdGgsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDUEFUSCA9IAorb3ZlcnJpZGUgWERDUk9PVCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzCitvdmVycmlkZSBYRENCVUlMRENGRyA9IC4uLy4uLy4uL2NvbmZpZy5ibGQKK2VuZGlmCitpZm5lcSAoLCQoZmluZHN0cmluZyBhcmdzLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ0FSR1MgPSAKK292ZXJyaWRlIFhEQ1RBUkdFVFMgPSAKK2VuZGlmCisjCitpZmVxICgwLDEpCitQS0dQQVRIID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMvcGFja2FnZXM7Li4vLi4vLi4KK0hPU1RPUyA9IExpbnV4CitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL1BsYXRmb3JtLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC9QbGF0Zm9ybS54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDA4MzU0MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC9QbGF0Zm9ybS54ZGMKQEAgLTAsMCArMSw3NCBAQAorLyogLS1DT1BZUklHSFQtLSxFUEwKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMgYW5kIG90aGVycy4KKyAqICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisgKiAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogCisgKiAgQ29udHJpYnV0b3JzOgorICogICAgICBUZXhhcyBJbnN0cnVtZW50cyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24KKyAqIAorICogLS0vQ09QWVJJR0hULS0qLworLyoKKyAqICA9PT09PT09PSBQbGF0Zm9ybS54ZGMgPT09PT09PT0KKyAqLworCisvKiEKKyAqICA9PT09PT09PSBQbGF0Zm9ybSA9PT09PT09PQorICogIFBsYXRmb3JtIHN1cHBvcnQgZm9yIHRoZSBlWjQzMC1SRjI1MDAgdGFyZ2V0IGJvYXJkCisgKgorICogIFRoaXMgcGFydGljdWxhciBwbGF0Zm9ybSBoYXMgYSBzaW5nbGUgQ3B1LCBhbmQgdGhlcmVmb3JlLCBvbmx5CisgKiAgZGVjbGFyZXMgYSBzaW5nbGUgQ1BVIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiAgTXVsdGktQ1BVIHBsYXRmb3JtcworICogIHdvdWxkIGRlY2xhcmUgbXVsdGlwbGUgQ3B1IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyAob25lIHBlcgorICogIHBsYXRmb3JtIENQVSkuCisgKi8KK21ldGFvbmx5IG1vZHVsZSBQbGF0Zm9ybSBpbmhlcml0cyB4ZGMucGxhdGZvcm0uSVBsYXRmb3JtCit7CisgICAgLyohCisgICAgICogID09PT09PT09IEJPQVJEID09PT09PT09CisgICAgICogIFRoaXMgcGxhdGZvcm0ncyBib2FyZCBhdHRyaWJ1dGVzCisgICAgICovCisgICAgcmVhZG9ubHkgY29uZmlnIHhkYy5wbGF0Zm9ybS5JUGxhdGZvcm0uQm9hcmQgQk9BUkQgPSB7CisgICAgICAgIGlkOiAgICAgICAgICAgICAiMCIsCisgICAgICAgIGJvYXJkTmFtZTogICAgICAiZXo0MzBfcmYyNTAwIiwKKyAgICAgICAgYm9hcmRGYW1pbHk6ICAgICJlejQzMCIsCisgICAgICAgIGJvYXJkUmV2aXNpb246ICBudWxsCisgICAgfTsKKworICAgIC8qIQorICAgICAqICA9PT09PT09PSBDUFUgPT09PT09PT0KKyAgICAgKiAgVGhlIENQVSBzaW11bGF0ZWQgYnkgdGhpcyBwbGF0Zm9ybS4KKyAgICAgKgorICAgICAqICBUaGUgZVo0MzAtUkYyNTAwIGluY29ycG9yYXRlcyB0aGUgTVNQNDMwRjIyNzQsIGJ1dCB0aGUKKyAgICAgKiAgbW9yZSBnZW5lcmljIE1TUDQzMEYyMjd4IHNwZWNpZmljYXRpb24gaXMgc3VmZmljaWVudAorICAgICAqICBmb3Igbm93LgorICAgICAqLworICAgIHJlYWRvbmx5IGNvbmZpZyB4ZGMucGxhdGZvcm0uSUV4ZUNvbnRleHQuQ3B1IENQVSA9IHsgICAgICAgIAorICAgICAgICBpZDogICAgICAgICAgICAgIjAiLAorICAgICAgICBjbG9ja1JhdGU6ICAgICAgMTYuMCwKKyAgICAgICAgY2F0YWxvZ05hbWU6ICAgICJ0eG4uY2F0YWxvZy5jNDMwIiwKKyAgICAgICAgZGV2aWNlTmFtZTogICAgICJNU1A0MzBGMjI3eCIsCisgICAgICAgIHJldmlzaW9uOiAgICAgICAiIiwKKyAgICB9OworCitpbnN0YW5jZToKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gZHNzUGF0aCA9PT09PT09PQorICAgICAqICBQYXRoIHRvIHRoZSBEZWJ1ZyBTY3JpcHQgU2VydmVyIChEU1MpIHByb2R1Y3QKKyAgICAgKgorICAgICAqICBUaGlzIHBsYXRmb3JtIHVzZXMgdGhlIERTUyBzdXBwb3J0IGRlbGl2ZXJlZCBhcyBwYXJ0IG9mIENvZGUKKyAgICAgKiAgQ29tcG9zZXIgU3R1ZGlvIG9yIGFzIGEgc3RhbmRhbG9uZSBwcm9kdWN0LiAgYGRzc1BhdGhgIG11c3QgYmUgc2V0CisgICAgICogIHRvIGFuIGFic29sdXRlIHBhdGggdG8gdGhlIGluc3RhbGxhdGlvbiBkaXJlY3Rvcnkgb2YgRFNTLgorICAgICAqCisgICAgICogIEZvciBleGFtcGxlLCBpZiB5b3UndmUgaW5zdGFsbGVkIENvZGUgQ29tcG9zZXIgRXNzZW50aWFscyAzLjEgaW4KKyAgICAgKiAgdGhlIGRlZmF1bHQgaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSwgYGRzc1BhdGhgIHNob3VsZCBiZSBzZXQgdG8KKyAgICAgKiAgYCJDOi9Qcm9ncmFtIEZpbGVzL1RleGFzIEluc3RydW1lbnRzL0NDIEVzc2VudGlhbHMgdjMuMS9EZWJ1Z1NlcnZlciJgLgorICAgICAqLworICAgIGNvbmZpZyBTdHJpbmcgZHNzUGF0aDsKKyAgICAKKyAgICBvdmVycmlkZSBjb25maWcgU3RyaW5nIGNvZGVNZW1vcnkgPSAiRkxBU0giOworICAgIAorICAgIG92ZXJyaWRlIGNvbmZpZyBTdHJpbmcgZGF0YU1lbW9yeSA9ICJSQU0iOworCisgICAgb3ZlcnJpZGUgY29uZmlnIFN0cmluZyBzdGFja01lbW9yeSA9ICJSQU0iOworfTsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC9QbGF0Zm9ybS54cyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC9QbGF0Zm9ybS54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGI4OTBhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL1BsYXRmb3JtLnhzCkBAIC0wLDAgKzEsMTMwIEBACisvKiAtLUNPUFlSSUdIVC0tLEVQTAorICogIENvcHlyaWdodCAoYykgMjAwOCBUZXhhcyBJbnN0cnVtZW50cyBhbmQgb3RoZXJzLgorICogIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyAqICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorICogIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKgorICogIENvbnRyaWJ1dG9yczoKKyAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisgKgorICogLS0vQ09QWVJJR0hULS0qLworLyoKKyAqICA9PT09PT09PSBQbGF0Zm9ybS54cyA9PT09PT09PQorICoKKyAqLworCisvKgorICogID09PT09PT09IFBsYXRmb3JtLmdldENwdURhdGFTaGVldCA9PT09PT09PQorICogIFRoaXMgUGxhdGZvcm0ncyBpbXBsZW1lbnRhdGlvbiB4ZGMucGxhdGZvcm0uSVBsYXRmb3JtLmdldENwdURhdGFTaGVldC4KKyAqCisgKiAgUmV0dXJuIHRoZSB4ZGMucGxhdGZvcm0uSUNwdURhdGFTaGVldC5JbnN0YW5jZSBvYmplY3QgdGhhdCBjb3JyZXNwb25kcworICogIHRvIHRoZSBkZXZpY2UgdGhhdCBydW5zIGV4ZWN1dGFibGVzIGxvYWRlZCBvbiB0aGUgc3BlY2lmaWVkIGNwdUlkLgorICovCitmdW5jdGlvbiBnZXRDcHVEYXRhU2hlZXQoY3B1SWQpCit7CisgICAgdmFyIFV0aWxzID0geGRjLnVzZU1vZHVsZSgneGRjLnBsYXRmb3JtLlV0aWxzJyk7CisgICAgcmV0dXJuIChVdGlscy5nZXRDcHVEYXRhU2hlZXQodGhpcy4kcHJpdmF0ZS5jcHVBdHRycykpOworfQorCisvKgorICogID09PT09PT09IFBsYXRmb3JtLmdldEV4ZUNvbnRleHQgPT09PT09PT0KKyAqICBUaGlzIFBsYXRmb3JtJ3MgaW1wbGVtZW50YXRpb24geGRjLnBsYXRmb3JtLklQbGF0Zm9ybS5nZXRFeGVDb250ZXh0LgorICoKKyAqICBSZXR1cm4gdGhlIHhkYy5wbGF0Zm9ybS5JRXhlQ29udGV4dC5JbnN0YW5jZSBvYmplY3QgdGhhdCB3aWxsIHJ1biB0aGUKKyAqICBzcGVjaWZpZWQgcHJvZ3JhbSBwcm9nLgorICovCitmdW5jdGlvbiBnZXRFeGVDb250ZXh0KHByb2cpCit7CisgICAgdmFyIFV0aWxzID0geGRjLm1vZHVsZSgieGRjLnBsYXRmb3JtLlV0aWxzIik7CisKKyAgICAvKiBjcmVhdGUgYSBkZWZhdWx0IEV4ZUNvbnRleHQgZXhlY3V0aW9uIGNvbnRleHQgKi8KKyAgICB2YXIgRXhlQ29udGV4dCA9IHhkYy51c2VNb2R1bGUoJ3hkYy5wbGF0Zm9ybS5FeGVDb250ZXh0Jyk7CisgICAgdmFyIGNwdSA9IEV4ZUNvbnRleHQuY3JlYXRlKHRoaXMuJHByaXZhdGUuY3B1QXR0cnMsIHRoaXMuJG1vZHVsZS5CT0FSRCk7CisKKyAgICAvKiBTZXQgdGhlIGluaXRpYWwgbWVtb3J5IG1hcCBmcm9tIHRoZSBjcHUgZGF0YXNoZWV0LiAqLworICAgIGNwdS5tZW1vcnlNYXAgPSBVdGlscy5hc3NlbWJsZU1lbW9yeU1hcChjcHUsIHRoaXMpOworCisgICAgLyogY2hlY2sgZm9yIHRoZSBvdmVybGFwIGluIHRoZSBtZW1vcnkgbWFwICovCisgICAgdmFyIG92ZXJsYXAgPSBVdGlscy5jaGVja092ZXJsYXAoY3B1Lm1lbW9yeU1hcCk7CisKKyAgICBpZiAob3ZlcmxhcCAhPSBudWxsKSB7CisgICAgICAgIHRoaXMuJG1vZHVsZS4kbG9nRXJyb3IoIk1lbW9yeSBvYmplY3RzICIgKyBvdmVybGFwICsgIiBvdmVybGFwIiwgdGhpcywKKyAgICAgICAgICAgIG92ZXJsYXApOworICAgIH0KKworICAgIC8qIHNlYWwgdGhlIGNwdSBvYmplY3Qgc28gc2NyaXB0IGNhbid0IGFjY2lkZW50bHkgbW9kaWZ5IGl0ICovCisgICAgVXRpbHMuY2hlY2tEZWZhdWx0cyh0aGlzLCBjcHUubWVtb3J5TWFwKTsKKyAgICB0aGlzLiRzZWFsKCk7CisKKyAgICByZXR1cm4gKGNwdSk7Cit9CisKKy8qCisgKiAgPT09PT09PT0gUGxhdGZvcm0uZ2V0RXhlY0NtZCA9PT09PT09PQorICogIFJldHVybiB0aGUgY29tbWFuZCBuZWNlc3NhcnkgdG8gbG9hZCBhbmQgcnVuIHByb2cgb24gdGhpcyBwbGF0Zm9ybQorICovCitmdW5jdGlvbiBnZXRFeGVjQ21kKHByb2cpCit7CisgICAgdmFyIG9zID0gZW52aXJvbm1lbnRbInhkYy5ob3N0T1MiXTsKKyAgICBpZiAob3MgPT0gIldpbmRvd3MiKSB7CisgICAgICAgIHZhciBwcmVmaXggPSAnJzsKKyAgICAgICAgdmFyIHN1ZmZpeCA9ICdcbic7CisgICAgICAgIGlmICh0aGlzLmRzc1BhdGggIT0gbnVsbCkgeworICAgICAgICAgICAgcHJlZml4ID0gJ1wic2V0IERFQlVHU0VSVkVSPScgKyB0aGlzLmRzc1BhdGggKyAnJiYnOworICAgICAgICAgICAgc3VmZml4ID0gJ1wiXG4nOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuICgiY21kIC9jICIgKyAgcHJlZml4ICsgdGhpcy4kcGFja2FnZS5wYWNrYWdlQmFzZSArICIvbG9hZC5iYXQgIgorICAgICAgICAgICAgICAgICsgcHJvZy5uYW1lICsgc3VmZml4KTsKKyAgICB9CisKKyAgICByZXR1cm4gKCIkKFNIRUxMKSAiICsgdGhpcy4kcGFja2FnZS5wYWNrYWdlQmFzZSArICIvbG9hZC5rc2ggIgorICAgICAgICArIHByb2cubmFtZSArICJcbiIpOworfQorCisvKgorICogID09PT09PT09IFBsYXRmb3JtLmdldExpbmtUZW1wbGF0ZSA9PT09PT09PQorICogIFJldHVybiBhIGxpbmtlciBjb21tYW5kIGZpbGUgdGVtcGxhdGUgdGhhdCBpcyB1c2VkIHRvIGNyZWF0ZSB0aGUKKyAqICBleGVjdXRhYmxlJ3MgbGlua2VyIGNvbW1hbmQgZmlsZS4KKyAqCisgKiAgVGhpcyB0ZW1wbGF0ZSBpcyB0b29sY2hhaW4gZGVwZW5kZW50LiAgV2UgY291bGQgKHNob3VsZCkgY2hlY2sgdGhpcyBieQorICogIGxvb2tpbmcgYXQgcHJvZy5idWlsZC50YXJnZXQsIGJ1dCBmb3Igc2ltcGxpY2l0eSB3ZSBqdXN0IGFzc3VtZSB0aGF0CisgKiAgYSBUSSB0b29sY2hhaW4gaXMgYmVpbmcgdXNlZC4KKyAqLworZnVuY3Rpb24gZ2V0TGlua1RlbXBsYXRlKHByb2cpCit7CisgICAgcmV0dXJuICh0aGlzLiRwcml2YXRlLnBkaXIgKyAiL2xpbmtjbWQueGR0Iik7Cit9CisKKy8qCisgKiAgPT09PT09PT0gUGxhdGZvcm0uSW5zdGFuY2UuaW5pdCA9PT09PT09PQorICogIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHRvIGluaXRpYWxpemUgYSBuZXdseSBjcmVhdGVkIGluc3RhbmNlIG9mIGEKKyAqICBwbGF0Zm9ybS4gIFBsYXRmb3JtIGluc3RhbmNlcyBhcmUgY3JlYXRlZCBqdXN0IHByaW9yIHRvIHJ1bm5pbmcKKyAqICBwcm9ncmFtIGNvbmZpZ3VyYXRpb24gc2NyaXB0cy4KKyAqCisgKiAgUGxhdGZvcm0gaW5zdGFuY2VzIG1heSBhbHNvIGJlIGNyZWF0ZWQgaW4gdGhlIGJ1aWxkIGRvbWFpbi4KKyAqCisgKiAgbmFtZSBpcyB0aGUgbmFtZSB1c2VkIHRvIGlkZW50aWZ5IHRoaXMgaW5zdGFuY2UgKHdpdGhvdXQgdGhlIHBhY2thZ2UKKyAqICBuYW1lIHByZWZpeCkuCisgKi8KK2Z1bmN0aW9uIGluc3RhbmNlJG1ldGEkaW5pdChuYW1lKQoreworICAgIHZhciBJRXhlQ29udGV4dCA9IHhkYy5tb2R1bGUoInhkYy5wbGF0Zm9ybS5JRXhlQ29udGV4dCIpOworCisgICAgLyogY2FjaGUgdGhlIHBsYXRmb3JtIGluc3RhbmNlIG5hbWUgZm9yIHRoZSBtZXRob2RzIGFib3ZlLiAqLworICAgIHRoaXMuJHByaXZhdGUubmFtZSA9IG5hbWU7CisKKyAgICAvKiBjYWNoZSB0aGUgcGFja2FnZSBuYW1lIGRpcmVjdG9yeSBwcmVmaXggKi8KKyAgICB0aGlzLiRwcml2YXRlLnBkaXIgPSB0aGlzLiRwYWNrYWdlLiRuYW1lLnJlcGxhY2UoL1wuL2csICcvJyk7CisKKyAgICAvKiBjcmVhdGUgYSBjb3B5IG9mIHRoZSBkZWZhdWx0IENwdSBhdHRyaWJ1dGVzIGRlY2xhcmVkIGluIFBsYXRmb3JtLnhkYyAqLworICAgIHZhciBjcHVBdHRycyA9IG5ldyBJRXhlQ29udGV4dC5DcHUodGhpcy4kbW9kdWxlLkNQVSk7CisgICAgdGhpcy4kcHJpdmF0ZS5jcHVBdHRycyA9IGNwdUF0dHJzOworCisgICAgaWYgKHRoaXMuZXh0ZXJuYWxNZW1vcnlNYXAubGVuZ3RoICE9IDApIHsKKyAgICAgICAgdGhpcy4kbW9kdWxlLiRsb2dFcnJvcigiRXh0ZXJuYWwgbWVtb3J5IGNhbm5vdCBiZSBhZGRlZCB0byB0aGlzICIgKworICAgICAgICAgICAgInBsYXRmb3JtIiwgdGhpcywgbnVsbCk7CisgICAgfQorfQorCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvU3lzdGVtU2V0dXAueG1sIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL1N5c3RlbVNldHVwLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGQ3MjgyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL1N5c3RlbVNldHVwLnhtbApAQCAtMCwwICsxLDEyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4NCis8Y29uZmlndXJhdGlvbnMgWE1MX3ZlcnNpb249IjEuMiIgaWQ9ImNvbmZpZ3VyYXRpb25zXzAiPg0KKyAgICA8Y29uZmlndXJhdGlvbiBYTUxfdmVyc2lvbj0iMS4yIiBpZD0iY29uZmlndXJhdGlvbl8wIj4NCisgICAgICAgIDxpbnN0YW5jZSBYTUxfdmVyc2lvbj0iMS4yIiBocmVmPSJ0YXJnZXREQlxjb25uZWN0aW9uc1xUSU1TUDQzMC1VU0IueG1sIiBpZD0iVEkgTVNQNDMwIFVTQjEiIHhtbD0iVElNU1A0MzAtVVNCLnhtbCIgeG1scGF0aD0idGFyZ2V0REJcY29ubmVjdGlvbnMiLz4NCisgICAgICAgIDxjb25uZWN0aW9uIFhNTF92ZXJzaW9uPSIxLjIiIGlkPSJUSSBNU1A0MzAgVVNCMSI+DQorICAgICAgICAgICAgPGluc3RhbmNlIFhNTF92ZXJzaW9uPSIxLjIiIGhyZWY9InRhcmdldERCXGRyaXZlcnNcbXNwNDMwX2VtdS54bWwiIGlkPSJkcml2ZXJzIiB4bWw9Im1zcDQzMF9lbXUueG1sIiB4bWxwYXRoPSJ0YXJnZXREQlxkcml2ZXJzIi8+DQorICAgICAgICAgICAgPHBsYXRmb3JtIFhNTF92ZXJzaW9uPSIxLjIiIGlkPSJwbGF0Zm9ybV8wIj4NCisgICAgICAgICAgICAgICAgPGluc3RhbmNlIFhNTF92ZXJzaW9uPSIxLjIiIGhyZWY9InRhcmdldERCXGRldmljZXNcTVNQNDMwRjIyNzQueG1sIiBpZD0iTVNQNDMwRjIyNzQiIHhtbD0iTVNQNDMwRjIyNzQueG1sIiB4bWxwYXRoPSJ0YXJnZXREQlxkZXZpY2VzIi8+DQorICAgICAgICAgICAgPC9wbGF0Zm9ybT4NCisgICAgICAgIDwvY29ubmVjdGlvbj4NCisgICAgPC9jb25maWd1cmF0aW9uPg0KKzwvY29uZmlndXJhdGlvbnM+DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL2xpbmtjbWQueGR0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL2xpbmtjbWQueGR0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NjllN2UKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvbGlua2NtZC54ZHQKQEAgLTAsMCArMSwyNjggQEAKKyUvKiAtLUNPUFlSSUdIVC0tLEVQTAorJSAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMgYW5kIG90aGVycy4KKyUgKiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworJSAqICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyUgKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyUgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyUgKiAKKyUgKiAgQ29udHJpYnV0b3JzOgorJSAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCislICogCislICogLS0vQ09QWVJJR0hULS0qLworJS8qCislICogPT09PT09PT0gbGlua2NtZC54ZHQgPT09PT09PT0KKyUgKiAgVGhpcyBpcyB0ZW1wbGF0ZSBmaWxlIGlzIHVzZWQgdG8gZ2VuZXJhdGUgYSBsaW5rZXIgY29tbWFuZCBmaWxlIGZvcgorJSAqICBleGVjdXRhYmxlcy4gIEl0IHByb3ZpZGVzIGEgc2luZ2xlIHBsYWNlIHdoZXJlIHdlIGNhbiBlbWJlZCBpbmZvcm1hdGlvbgorJSAqICBuZWNlc3NhcnkgdG8gbG9hZC9ydW4gZXhlY3V0YWJsZXMuCislICoKKyUgKiAgVGhpcyB0ZW1wbGF0ZSBpcyBleHBhbmRlZCBhZnRlciB0aGUgY29uZmlndXJhdGlvbiBzY3JpcHQgcnVucyBhbmQgdGhlCislICogIHJlc3VsdHMgcGxhY2VkIGluIGEgZmlsZSAod2l0aCBleHRlbnNpb24gLnhkbCkgYXNzb2NpYXRlZCB3aXRoIHRoZQorJSAqICBleGVjdXRhYmxlLgorJSAqCislICogIExpbmtlciB0ZW1wbGF0ZXMgYXJlIHBhc3NlZCB0aGUgZm9sbG93aW5nIGFyZ3VtZW50czoKKyUgKiAgICAgJG91dCAgICAgICAgLSBhbiBvcGVuIGZpbGUgc3RyZWFtIGZvciB0aGUgZ2VuZXJhdGVkIGxpbmtlcgorJSAqICAgICAgICAgICAgICAgICAgIGNvbW1hbmQgZmlsZQorJSAqICAgICAkYXJnc1tdICAgICAtIGFuIGFycmF5IG9mIHplcm8gb3IgbW9yZSBsaWJyYXJpZXMgdGhhdCBzaG91bGQgYmUgbGlua2VkCislICogICAgICAgICAgICAgICAgICAgd2l0aCAoaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyIGluIHRoZSBhcmd1bWVudCBsaXN0KQorJSAqCislICogIEluIGFkZGl0aW9uIHRvIHRoZXNlIGFyZ3VtZW50cywgdGhlcmUgaXMgYSBnbG9iYWwgdmFyaWFibGUgbmFtZWQKKyUgKiAgJ3RoaXMnIHRoYXQgaXMgc2V0IGFzIGZvbGxvd3M6CislICogICAgIHRoaXMgICAgICAgIC0gdGhlIHByb2dyYW0gb2JqZWN0CislICovCisldmFyIF91dGlscyA9IHhkYy5sb2FkQ2Fwc3VsZSgidGkvdGFyZ2V0cy9saW5rVXRpbHMueHMiKTsKKyV2YXIgcHJvZyA9IHRoaXM7ICAgIC8qIG1lYW5pbmdmdWwgYWxpYXMgZm9yIHRoaXMgKD09IHhkYy5jZmcuUHJvZ3JhbSkgKi8KKworLyoKKyAqIERvIG5vdCBtb2RpZnkgdGhpcyBmaWxlOyBpdCBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIHRoZSB0ZW1wbGF0ZQorICogbGlua2NtZC54ZHQgaW4gdGhlIHR4bi5wbGF0Zm9ybXMuZXo0MzBfcmYyNTAwIHBhY2thZ2UgYW5kIHdpbGwgYmUKKyAqIG92ZXJ3cml0dGVuLgorICovCisKKy8qCisgKiBwdXQgJyIncyBhcm91bmQgcGF0aHMgYmVjYXVzZSwgd2l0aG91dCB0aGlzLCB0aGUgbGlua2VyCisgKiBjb25zaWRlcnMgJy0nIGFzIG1pbnVzIG9wZXJhdG9yLCBub3QgYSBmaWxlIG5hbWUgY2hhcmFjdGVyLgorICovCisKKyVmb3IgKHZhciBpID0gMDsgaSA8IHByb2cuJCRhc212ZWMubGVuZ3RoOyBpKyspIHsKKyJgcHJvZy4kJGFzbXZlY1tpXWAiCislfQorCislZm9yICh2YXIgaSA9IDA7IGkgPCAkYXJncy5sZW5ndGg7IGkrKykgeworLWwiYCRhcmdzW2ldYCIKKyV9CisKKworJS8qIGFsaWFzZXMgaW50ZXJmZXJlIHdpdGggd2hvbGVfcHJvZ3JhbSBhbmQgYXJlIHVubmVjZXNzYXJ5IGluIHRoaXMgY2FzZSAqLworJWlmIChwcm9nLmJ1aWxkLnByb2ZpbGUubWF0Y2goL3dob2xlX3Byb2dyYW0vKSA9PSBudWxsKSB7CitgX3V0aWxzLmdlbkFsaWFzZXMocHJvZylgCislfQorCistLWFyZ3MgYHV0aWxzLnRvSGV4KHByb2cuYXJnU2l6ZSlgCistaGVhcCAgYHV0aWxzLnRvSGV4KHByb2cuaGVhcClgCistc3RhY2sgYHV0aWxzLnRvSGV4KHByb2cuc3RhY2spYAorCitNRU1PUlkKK3sKKyVmb3IgKHZhciBpID0gMDsgaSA8IHByb2cuY3B1Lm1lbW9yeU1hcC5sZW5ndGg7IGkrKykgeworICAgICV2YXIgbWVtID0gcHJvZy5jcHUubWVtb3J5TWFwW2ldOworICAgICV2YXIgcGFnZSA9IChtZW0ucGFnZSAhPSBudWxsKSA/ICgiUEFHRSAiICsgbWVtLnBhZ2UgKyAiOiAiKSA6ICIiOworICAgICV2YXIgb3JnID0gdXRpbHMudG9IZXgobWVtLmJhc2UpOworICAgICV2YXIgbGVuID0gdXRpbHMudG9IZXgobWVtLmxlbik7CisgICAgJXZhciBhY2Nlc3MgPSAobWVtLmFjY2VzcyAhPSBudWxsKSA/ICgiICgiICsgbWVtLmFjY2VzcyArICIpIikgOiAiIjsKKyAgICBgcGFnZWBgbWVtLm5hbWVgYGFjY2Vzc2AgOiBvcmcgPSBgb3JnYCwgbGVuID0gYGxlbmAKKyV9Cit9CisKKy8qCisgKiBMaW5rZXIgY29tbWFuZCBmaWxlIGNvbnRyaWJ1dGlvbnMgZnJvbSBhbGwgbG9hZGVkIHBhY2thZ2VzOgorICovCitgX3V0aWxzLmdlbkNvbnRyaWJ1dGlvbnMoJGFyZ3MpYAorCisvKgorICogc3ltYm9saWMgYWxpYXNlcyBmb3Igc3RhdGljIGluc3RhbmNlIG9iamVjdHMKKyAqLworJWZvciAodmFyIHN5bSBpbiBQcm9ncmFtLnN5bWJvbCkgeworICAgICV2YXIgaW5zdCA9IFByb2dyYW0uc3ltYm9sW3N5bV07CisgICAgJWlmICh0eXBlb2YoaW5zdCkgPT0gJ251bWJlcicpIHsKK2B0aGlzLmJ1aWxkLnRhcmdldC5hc21OYW1lKHN5bSlgID0gYGluc3RgOworICAgICV9CisgICAgJWVsc2UgeworICAgICAgICAldmFyIG9ialRhYiA9IGluc3QuJG1vZHVsZS4kbmFtZS5yZXBsYWNlKC9cLi9nLCAnXycpICsgJ19PYmplY3RfX3RhYmxlX19WJzsKKyAgICAgICAgJXZhciBvZmYgPSBQcm9ncmFtLiRjYXBzdWxlLmluc3RTaXplKGluc3QpICogaW5zdC4kaW5kZXg7CitgdGhpcy5idWlsZC50YXJnZXQuYXNtTmFtZShzeW0pYCA9IGB0aGlzLmJ1aWxkLnRhcmdldC5hc21OYW1lKG9ialRhYilgICsgYG9mZmA7CisgICAgJX0KKyV9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogU1RBTkRBUkQgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBTVEFUVVMgUkVHSVNURVIgQklUUworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBQRVJJUEhFUkFMIEZJTEUgTUFQCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFNQRUNJQUwgRlVOQ1RJT04gUkVHSVNURVIgQUREUkVTU0VTICsgQ09OVFJPTCBCSVRTCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitJRTEgICAgICAgICAgICAgICAgPSAweDAwMDA7CitJRkcxICAgICAgICAgICAgICAgPSAweDAwMDI7CitJRTIgICAgICAgICAgICAgICAgPSAweDAwMDE7CitJRkcyICAgICAgICAgICAgICAgPSAweDAwMDM7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogQURDMTAKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK0FEQzEwRFRDMCAgICAgICAgICA9IDB4MDA0ODsKK0FEQzEwRFRDMSAgICAgICAgICA9IDB4MDA0OTsKK0FEQzEwQUUwICAgICAgICAgICA9IDB4MDA0QTsKK0FEQzEwQUUxICAgICAgICAgICA9IDB4MDA0QjsKK0FEQzEwQ1RMMCAgICAgICAgICA9IDB4MDFCMDsKK0FEQzEwQ1RMMSAgICAgICAgICA9IDB4MDFCMjsKK0FEQzEwTUVNICAgICAgICAgICA9IDB4MDFCNDsKK0FEQzEwU0EgICAgICAgICAgICA9IDB4MDFCQzsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBCYXNpYyBDbG9jayBNb2R1bGUKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK0RDT0NUTCAgICAgICAgICAgICA9IDB4MDA1NjsKK0JDU0NUTDEgICAgICAgICAgICA9IDB4MDA1NzsKK0JDU0NUTDIgICAgICAgICAgICA9IDB4MDA1ODsKK0JDU0NUTDMgICAgICAgICAgICA9IDB4MDA1MzsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogRmxhc2ggTWVtb3J5CisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworRkNUTDEgICAgICAgICAgICAgID0gMHgwMTI4OworRkNUTDIgICAgICAgICAgICAgID0gMHgwMTJBOworRkNUTDMgICAgICAgICAgICAgID0gMHgwMTJDOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIE9wZXJhdGlvbmFsIEFtcGxpZmllcgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworT0EwQ1RMMCAgICAgICAgICAgID0gMHgwMEMwOworT0EwQ1RMMSAgICAgICAgICAgID0gMHgwMEMxOworT0ExQ1RMMCAgICAgICAgICAgID0gMHgwMEMyOworT0ExQ1RMMSAgICAgICAgICAgID0gMHgwMEMzOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIERJR0lUQUwgSS9PIFBvcnQxLzIgUHVsbCB1cCAvIFB1bGwgZG93biBSZXNpc3RvcnMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK1AxSU4gICAgICAgICAgICAgICA9IDB4MDAyMDsKK1AxT1VUICAgICAgICAgICAgICA9IDB4MDAyMTsKK1AxRElSICAgICAgICAgICAgICA9IDB4MDAyMjsKK1AxSUZHICAgICAgICAgICAgICA9IDB4MDAyMzsKK1AxSUVTICAgICAgICAgICAgICA9IDB4MDAyNDsKK1AxSUUgICAgICAgICAgICAgICA9IDB4MDAyNTsKK1AxU0VMICAgICAgICAgICAgICA9IDB4MDAyNjsKK1AxUkVOICAgICAgICAgICAgICA9IDB4MDAyNzsKK1AySU4gICAgICAgICAgICAgICA9IDB4MDAyODsKK1AyT1VUICAgICAgICAgICAgICA9IDB4MDAyOTsKK1AyRElSICAgICAgICAgICAgICA9IDB4MDAyQTsKK1AySUZHICAgICAgICAgICAgICA9IDB4MDAyQjsKK1AySUVTICAgICAgICAgICAgICA9IDB4MDAyQzsKK1AySUUgICAgICAgICAgICAgICA9IDB4MDAyRDsKK1AyU0VMICAgICAgICAgICAgICA9IDB4MDAyRTsKK1AyUkVOICAgICAgICAgICAgICA9IDB4MDAyRjsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBESUdJVEFMIEkvTyBQb3J0My80IFB1bGwgdXAgLyBQdWxsIGRvd24gUmVzaXN0b3JzCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitQM0lOICAgICAgICAgICAgICAgPSAweDAwMTg7CitQM09VVCAgICAgICAgICAgICAgPSAweDAwMTk7CitQM0RJUiAgICAgICAgICAgICAgPSAweDAwMUE7CitQM1NFTCAgICAgICAgICAgICAgPSAweDAwMUI7CitQM1JFTiAgICAgICAgICAgICAgPSAweDAwMTA7CitQNElOICAgICAgICAgICAgICAgPSAweDAwMUM7CitQNE9VVCAgICAgICAgICAgICAgPSAweDAwMUQ7CitQNERJUiAgICAgICAgICAgICAgPSAweDAwMUU7CitQNFNFTCAgICAgICAgICAgICAgPSAweDAwMUY7CitQNFJFTiAgICAgICAgICAgICAgPSAweDAwMTE7CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogVGltZXIgQTMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK1RBSVYgICAgICAgICAgICAgICA9IDB4MDEyRTsKK1RBQ1RMICAgICAgICAgICAgICA9IDB4MDE2MDsKK1RBQ0NUTDAgICAgICAgICAgICA9IDB4MDE2MjsKK1RBQ0NUTDEgICAgICAgICAgICA9IDB4MDE2NDsKK1RBQ0NUTDIgICAgICAgICAgICA9IDB4MDE2NjsKK1RBUiAgICAgICAgICAgICAgICA9IDB4MDE3MDsKK1RBQ0NSMCAgICAgICAgICAgICA9IDB4MDE3MjsKK1RBQ0NSMSAgICAgICAgICAgICA9IDB4MDE3NDsKK1RBQ0NSMiAgICAgICAgICAgICA9IDB4MDE3NjsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBUaW1lciBCMworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworVEJJViAgICAgICAgICAgICAgID0gMHgwMTFFOworVEJDVEwgICAgICAgICAgICAgID0gMHgwMTgwOworVEJDQ1RMMCAgICAgICAgICAgID0gMHgwMTgyOworVEJDQ1RMMSAgICAgICAgICAgID0gMHgwMTg0OworVEJDQ1RMMiAgICAgICAgICAgID0gMHgwMTg2OworVEJSICAgICAgICAgICAgICAgID0gMHgwMTkwOworVEJDQ1IwICAgICAgICAgICAgID0gMHgwMTkyOworVEJDQ1IxICAgICAgICAgICAgID0gMHgwMTk0OworVEJDQ1IyICAgICAgICAgICAgID0gMHgwMTk2OworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIFVTQ0kKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK1VDQTBDVEwwICAgICAgICAgICA9IDB4MDA2MDsKK1VDQTBDVEwxICAgICAgICAgICA9IDB4MDA2MTsKK1VDQTBCUjAgICAgICAgICAgICA9IDB4MDA2MjsKK1VDQTBCUjEgICAgICAgICAgICA9IDB4MDA2MzsKK1VDQTBNQ1RMICAgICAgICAgICA9IDB4MDA2NDsKK1VDQTBTVEFUICAgICAgICAgICA9IDB4MDA2NTsKK1VDQTBSWEJVRiAgICAgICAgICA9IDB4MDA2NjsKK1VDQTBUWEJVRiAgICAgICAgICA9IDB4MDA2NzsKK1VDQTBBQkNUTCAgICAgICAgICA9IDB4MDA1RDsKK1VDQTBJUlRDVEwgICAgICAgICA9IDB4MDA1RTsKK1VDQTBJUlJDVEwgICAgICAgICA9IDB4MDA1RjsKK1VDQjBDVEwwICAgICAgICAgICA9IDB4MDA2ODsKK1VDQjBDVEwxICAgICAgICAgICA9IDB4MDA2OTsKK1VDQjBCUjAgICAgICAgICAgICA9IDB4MDA2QTsKK1VDQjBCUjEgICAgICAgICAgICA9IDB4MDA2QjsKK1VDQjBJMkNJRSAgICAgICAgICA9IDB4MDA2QzsKK1VDQjBTVEFUICAgICAgICAgICA9IDB4MDA2RDsKK1VDQjBSWEJVRiAgICAgICAgICA9IDB4MDA2RTsKK1VDQjBUWEJVRiAgICAgICAgICA9IDB4MDA2RjsKK1VDQjBJMkNPQSAgICAgICAgICA9IDB4MDExODsKK1VDQjBJMkNTQSAgICAgICAgICA9IDB4MDExQTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiBXQVRDSERPRyBUSU1FUgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworV0RUQ1RMICAgICAgICAgICAgID0gMHgwMTIwOworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqIENhbGlicmF0aW9uIERhdGEgaW4gSW5mbyBNZW0KKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK0NBTERDT18xNk1IWiAgICAgICA9IDB4MTBGODsKK0NBTEJDMV8xNk1IWiAgICAgICA9IDB4MTBGOTsKK0NBTERDT18xMk1IWiAgICAgICA9IDB4MTBGQTsKK0NBTEJDMV8xMk1IWiAgICAgICA9IDB4MTBGQjsKK0NBTERDT184TUhaICAgICAgICA9IDB4MTBGQzsKK0NBTEJDMV84TUhaICAgICAgICA9IDB4MTBGRDsKK0NBTERDT18xTUhaICAgICAgICA9IDB4MTBGRTsKK0NBTEJDMV8xTUhaICAgICAgICA9IDB4MTBGRjsKKworU0VDVElPTlMKK3sKKyAgIC5yZXNldCA+IFJFU0VUCisgICAudXNjaV9yeCA+IFVTQ0lfUlgKKyAgIC5pb3BvcnQyID4gSU9QT1JUMgorICAgLnRpbWVyX2EwID4gVElNRVJfQTAKKyAgIC50aW1lcl9iMCA+IFRJTUVSX0IwCisgICAuYWRjMTAgPiBBREMxMAorICAgCislL2dldCAic3RhbmRhcmQiIHNlY3Rpb24gdGV4dCAqLworJXZhciBzZWN0aW9ucyA9IF91dGlscy5nZW5TZWN0aW9ucyhwcm9nKTsKKyUKKyUvKiByZXBsYWNlIE5PTE9BRCB3aXRoIENPUFkgdG8gd29yayBhcm91bmQgYSB0aS50YXJnZXRzICJidWciICovCislc2VjdGlvbnMgPSBzZWN0aW9ucy5yZXBsYWNlKCdOT0xPQUQnLCAnQ09QWScpOworJQorJS8qIG1vZGlmeSAuc3RhY2sgdG8gZmlsbCB3aXRoIGEga25vd24gaW5pdGlhbCB2YWx1ZSAqLworJXNlY3Rpb25zID0gc2VjdGlvbnMucmVwbGFjZSgnLnN0YWNrOicsICcuc3RhY2s6IGZpbGw9MHhjYWZlLCcpOworYHNlY3Rpb25zYAorfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL2xvYWQuYmF0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL2xvYWQuYmF0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZlNDM5N2MKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvbG9hZC5iYXQKQEAgLTAsMCArMSw1NyBAQAorQGVjaG8gb2ZmDQorUkVNID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCitSRU0gfHwgIFRoaXMgZmlsZSBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBSaGlubyBqYXZhc2NyaXB0IGVuZ2luZS4gIEl0IHNldHMtdXAgDQorUkVNIHx8ICB0aGUgbmVjZXNzYXJ5IGNsYXNzcGF0aHMgYW5kIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgYW5kIHRoZW4gaW52b2tlcw0KK1JFTSB8fCAgdGhlIEphdmEgcnVudGltZS4NCisNCitzZXRsb2NhbA0KKw0KK1JFTSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorUkVNICBUaGlzIHBhdGggdG8gcG9pbnRzIHRvIHRoZSBhYnNvbHV0ZSBpbnN0YWxsIGxvY2F0aW9uIG9mIHRoZSBEZWJ1ZyBTZXJ2ZXINCitSRU0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KK2lmIGRlZmluZWQgREVCVUdTRVJWRVIgKA0KKyAgICBzZXQgZm9vPQ0KKykgZWxzZSAoDQorICAgIHNldCBERUJVR1NFUlZFUj1DOlxQcm9ncmFtIEZpbGVzXFRleGFzIEluc3RydW1lbnRzXENDIEVzc2VudGlhbHMgdjMuMVxEZWJ1Z1NlcnZlcg0KKykNCisNCitSRU0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KK3NldCBQQVRIPSVERUJVR1NFUlZFUiVcc2NyaXB0aW5nXGxpYjslUEFUSCUNCitzZXQgUEFUSD0lREVCVUdTRVJWRVIlXGJpblx3aW4zMjslUEFUSCUNCitzZXQgUEFUSD0lREVCVUdTRVJWRVIlXHdpbjMyXGNvbXBvbmVudHM7JVBBVEglDQorc2V0IFBBVEg9JURFQlVHU0VSVkVSJVx3aW4zMlxkcml2ZXJzOyVQQVRIJQ0KK1JFTSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorDQorUkVNIFBhdGggdG8gUmhpbm8gSkFSIEZpbGUNCitzZXQgUkhJTk9fSkFSPSIlREVCVUdTRVJWRVIlXHNjcmlwdGluZ1xsaWJccmhpbm9canMuamFyIg0KKw0KK1JFTSBQYXRoIHRvIERlYnVnU2VydmVyIEpBUiBGaWxlDQorc2V0IFNDUklQVElOR19KQVJTPSIlREVCVUdTRVJWRVIlXHNjcmlwdGluZ1xsaWJcZHNzLmphciINCisNCitSRU0gTmFtZSBvZiBSaGlubyBTaGVsbCBKYXZhIEFwcGxpY2F0aW9uDQorc2V0IFJISU5PX1NIRUxMPW9yZy5tb3ppbGxhLmphdmFzY3JpcHQudG9vbHMuc2hlbGwuTWFpbg0KKw0KK1JFTSBOYW1lIG9mIFJoaW5vIERlYnVnZ2VyIEphdmEgQXBwbGljYXRpb24NCitzZXQgUkhJTk9fREVCVUdHRVI9b3JnLm1vemlsbGEuamF2YXNjcmlwdC50b29scy5kZWJ1Z2dlci5NYWluDQorDQorUkVNIElmIHRoZSB1c2VyIGNob3NlIHRvIGluc3RhbGwgdGhlIEpSRSB3aXRoIHRoaXMgRFNTIGluc3RhbGwgLSB1c2UgdGhhdA0KK1JFTSBKUkUuICBPdGhlcndpc2UgdXNlIHdoYXRldmVyIGlzIG9uIHRoZSBQQVRIDQorDQorUkVNIEluIHN0YW5kLWFsb25lIERTUyAtIHRoZSBpbnN0YWxsZWQganJlIGlzIGluIElOU1RBTExESVJcanJlLiAgQ2hlY2sgDQorUkVNIGhlcmUgZmlyc3QNCitpZiBleGlzdCAlREVCVUdTRVJWRVIlXC4uXGpyZSAoDQorICBzZXQgSkFWQV9IT01FPSVERUJVR1NFUlZFUiVcLi5canJlDQorICBzZXQgUEFUSD0lREVCVUdTRVJWRVIlXC4uXGpyZVxiaW47JVBBVEglDQorKQ0KKw0KK1JFTSBJbiBDQ0UvQ0NTIC0gdGhlIGluc3RhbGxlZCBqcmUgaXMgaW4gSU5TVEFMTERJUlxlY2xpcHNlXGpyZS4gIENoZWNrIA0KK1JFTSBoZXJlIG5leHQNCitpZiBleGlzdCAlREVCVUdTRVJWRVIlXC4uXGVjbGlwc2VcanJlICgNCisgIHNldCBKQVZBX0hPTUU9JURFQlVHU0VSVkVSJVwuLlxlY2xpcHNlXGpyZQ0KKyAgc2V0IFBBVEg9JURFQlVHU0VSVkVSJVwuLlxlY2xpcHNlXGpyZVxiaW47JVBBVEglDQorKQ0KKw0KK1JFTSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorUkVNIExhdW5jaCBSaGlubyBzY3JpcHQgZW5naW5lLiAgSW1wb3J0IHRoZSBzY3JpcHRpbmcgcGFja2FnZS4NCisiJUpBVkFfSE9NRSVcYmluXGphdmEuZXhlIiAtRFhQQ09NLlJVTlRJTUU9IiVERUJVR1NFUlZFUiVcd2luMzIiIC1jcCAlUkhJTk9fSkFSJTslU0NSSVBUSU5HX0pBUlMlICVSSElOT19TSEVMTCUgJX5kcDAvbG9hZC54cyAgLWMgJX5kcDAvU3lzdGVtU2V0dXAueG1sIC1hICUqDQorZW5kbG9jYWwNCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvbG9hZC5rc2ggYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvbG9hZC5rc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU0OTYwMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC9sb2FkLmtzaApAQCAtMCwwICsxLDM4IEBACisjIS9iaW4vc2gNCisjDQorREVCVUdTRVJWRVI9IkM6L1Byb2dyYW0gRmlsZXMvVGV4YXMgSW5zdHJ1bWVudHMvQ0MgRXNzZW50aWFscyB2My4xL0RlYnVnU2VydmVyIg0KKw0KK2Jhc2U9IiR7MCUvKn0iDQorDQorZXhwb3J0IFBBVEg9IiRERUJVR1NFUlZFUi9zY3JpcHRpbmcvbGliOyRERUJVR1NFUlZFUi9iaW4vd2luMzI7JERFQlVHU0VSVkVSL3dpbjMyL2NvbXBvbmVudHM7JERFQlVHU0VSVkVSL3dpbjMyL2RyaXZlcnM7JFBBVEgiDQorDQorIyBQYXRoIHRvIFJoaW5vIEpBUiBGaWxlDQorUkhJTk9fSkFSPSIkREVCVUdTRVJWRVIvc2NyaXB0aW5nL2xpYi9yaGluby9qcy5qYXIiDQorDQorIyBQYXRoIHRvIERlYnVnU2VydmVyIEpBUiBGaWxlDQorU0NSSVBUSU5HX0pBUlM9IiRERUJVR1NFUlZFUi9zY3JpcHRpbmcvbGliL2Rzcy5qYXIiDQorDQorIyBOYW1lIG9mIFJoaW5vIFNoZWxsIEphdmEgQXBwbGljYXRpb24NCitSSElOT19TSEVMTD1vcmcubW96aWxsYS5qYXZhc2NyaXB0LnRvb2xzLnNoZWxsLk1haW4NCisNCisjIElmIHRoZSB1c2VyIGNob3NlIHRvIGluc3RhbGwgdGhlIEpSRSB3aXRoIHRoaXMgRFNTIGluc3RhbGwgLSB1c2UgdGhhdA0KKyMgSlJFLiAgT3RoZXJ3aXNlIHVzZSB3aGF0ZXZlciBpcyBvbiB0aGUgUEFUSA0KK0pBVkE9amF2YS5leGUNCisNCisjIEluIHN0YW5kLWFsb25lIERTUyAtIHRoZSBpbnN0YWxsZWQganJlIGlzIGluIElOU1RBTExESVIvanJlLiAgQ2hlY2sgDQorIyBoZXJlIGZpcnN0DQoraWYgWyAtZCAiJERFQlVHU0VSVkVSLy4uL2pyZSIgXTsgdGhlbg0KKyAgSkFWQT0iJERFQlVHU0VSVkVSLy4uL2pyZS9iaW4vamF2YS5leGUiDQorZmkNCisNCisjIEluIENDRS9DQ1MgLSB0aGUgaW5zdGFsbGVkIGpyZSBpcyBpbiBJTlNUQUxMRElSL2VjbGlwc2UvanJlLiAgQ2hlY2sgDQorIyBoZXJlIG5leHQNCitpZiBbIC1kICIkREVCVUdTRVJWRVIvLi4vZWNsaXBzZS9qcmUiIF07IHRoZW4NCisgIEpBVkE9IiRERUJVR1NFUlZFUi8uLi9lY2xpcHNlL2pyZS9iaW4vamF2YS5leGUiDQorZmkNCisNCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisjIExhdW5jaCBSaGlubyBzY3JpcHQgZW5naW5lLiAgSW1wb3J0IHRoZSBzY3JpcHRpbmcgcGFja2FnZS4NCisjDQorYzovdXNlcnMvZHIvaWxpYWQvYmluL3ByaW50YXJncw0KKyIkSkFWQSIgLURYUENPTS5SVU5USU1FPSIkREVCVUdTRVJWRVIvd2luMzIiIC1jcCAiJFJISU5PX0pBUjskU0NSSVBUSU5HX0pBUlMiICRSSElOT19TSEVMTCAkYmFzZS9sb2FkLnhzIC1jICRiYXNlL1N5c3RlbVNldHVwLnhtbCAtYSAkQA0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC9sb2FkLnhzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL2xvYWQueHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVhMzM1OQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC9sb2FkLnhzCkBAIC0wLDAgKzEsODIgQEAKK2lmIChhcmd1bWVudHMubGVuZ3RoIDwgMSkgeworICAgIHByaW50KCJ1c2FnZTogbG9hZCBbLWFdIFstYyBjb25maWcueG1sXSBwcm9nIik7CisgICAgamF2YS5sYW5nLlN5c3RlbS5leGl0KDEpOworfQorCit2YXIgY29uZmlnID0gbnVsbDsKK3ZhciBhZmxhZyA9IGZhbHNlOworCit3aGlsZSAoYXJndW1lbnRzWzBdWzBdID09ICctJykgeworICAgIHN3aXRjaCAoYXJndW1lbnRzWzBdWzFdKSB7CisgICAgICAgIGNhc2UgJ2EnOiB7CisgICAgICAgICAgICBhZmxhZyA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlICdjJzogeworICAgICAgICAgICAgY29uZmlnID0gYXJndW1lbnRzWzFdOworICAgICAgICAgICAgYXJndW1lbnRzLnNoaWZ0KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBhcmd1bWVudHMuc2hpZnQoKTsKK30KKworLyogaWYgbm8gZGVidWcgY29uZmlnIGZpbGUgaXMgc3BlY2lmaWVkLCB1c2Ugb25lIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSAqLworaWYgKGNvbmZpZyA9PSBudWxsKSB7CisgICAgY29uZmlnID0gIi4vU3lzdGVtQ29uZmlnLnhtbCI7Cit9CisKKy8vIEltcG9ydCB0aGUgRFNTIHBhY2thZ2VzIGludG8gb3VyIG5hbWVzcGFjZSB0byBzYXZlIG9uIHR5cGluZworaW1wb3J0UGFja2FnZShQYWNrYWdlcy5jb20udGkuZGVidWcuZW5naW5lLnNjcmlwdGluZyk7CitpbXBvcnRQYWNrYWdlKFBhY2thZ2VzLmNvbS50aS5jY3N0dWRpby5zY3JpcHRpbmcuZW52aXJvbm1lbnQpOworaW1wb3J0UGFja2FnZShQYWNrYWdlcy5qYXZhLmxhbmcpOworCisvLyBDcmVhdGUgb3VyIHNjcmlwdGluZyBlbnZpcm9ubWVudCBvYmplY3QKK3ZhciBzY3JpcHQgPSBuZXcgU2NyaXB0aW5nRW52aXJvbm1lbnQoKTsKKworLy8gb25seSBzaG93IHdhcm5pbmdzIG9yIHdvcnNlICh0aGUgZGVmYXVsdCBpcyBtdWNoIG1vcmUgdmVyYm9zZSkKK3NjcmlwdC50cmFjZVNldENvbnNvbGVMZXZlbChUcmFjZUxldmVsLldBUk5JTkcpOworCisvLyBHZXQgdGhlIERlYnVnIFNlcnZlciBhbmQgc3RhcnQgYSBEZWJ1ZyBTZXNzaW9uCit2YXIgZGVidWdTZXJ2ZXIgPSBzY3JpcHQuZ2V0U2VydmVyKCJEZWJ1Z1NlcnZlci4xIik7CitkZWJ1Z1NlcnZlci5zZXRDb25maWcoY29uZmlnKTsKKwordmFyIGRlYnVnU2Vzc2lvbiA9IGRlYnVnU2VydmVyLm9wZW5TZXNzaW9uKCIuKiIpOworCisvLyBDb25uZWN0IHRvIHRoZSBUYXJnZXQKK2RlYnVnU2Vzc2lvbi50YXJnZXQuY29ubmVjdCgpOworCisvLyBMb2FkIGEgcHJvZ3JhbQorLy8gKFNjcmlwdGluZ0Vudmlyb25tZW50IGhhcyBhIGNvbmNlcHQgb2YgYSB3b3JraW5nIGZvbGRlciBhbmQgZm9yIGFsbCBvZgorLy8gdGhlIEFQSXMgd2hpY2ggdGFrZSBwYXRoIG5hbWVzIGFzIGFyZ3VtZW50cyB5b3UgY2FuIGVpdGhlciBwYXNzIGEgcmVsYXRpdmUKKy8vIHBhdGggb3IgYW4gYWJzb2x1dGUgcGF0aCkKK2RlYnVnU2Vzc2lvbi5tZW1vcnkubG9hZFByb2dyYW0oYXJndW1lbnRzWzBdKTsKKworaWYgKGFmbGFnID09IGZhbHNlKSB7CisgICAgLy8gU2V0IGEgYnJlYWtwb2ludCBhdCAiZXhpdCIKKyAgICB2YXIgcHJvZ0V4aXQgPSBkZWJ1Z1Nlc3Npb24uc3ltYm9sLmdldEFkZHJlc3MoInhkY19ydW50aW1lX1N5c3RlbV9leGl0X19GIik7CisgICAgdmFyIGJwMSA9IGRlYnVnU2Vzc2lvbi5icmVha3BvaW50LmFkZChwcm9nRXhpdCk7CisKKyAgICAvLyBSdW4uICBTaG91bGQgaGFsdCBhdCBmaXJzdCBCUAorICAgIGRlYnVnU2Vzc2lvbi50YXJnZXQucnVuKCk7CisKKyAgICAvLyBVc2luZyBhbiBleHByZXNzaW9uIC0gZ2V0IHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBQQworICAgIG5QQyA9IGRlYnVnU2Vzc2lvbi5leHByZXNzaW9uLmV2YWx1YXRlKCJQQyIpOworCisgICAgLy8gVmVyaWZ5IHdlIGhhbHRlZCBhdCB0aGUgY29ycmVjdCBhZGRyZXNzLgorICAgIGlmIChuUEMgIT0gcHJvZ0V4aXQpIHsKKyAgICAgICAgcHJpbnQoIkZBSUw6IEV4cGVjdGVkIGhhbHQgYXQgMHgiICsgTG9uZy50b0hleFN0cmluZyhwcm9nRXhpdCkKKyAgICAgICAgICAgICAgKyAiLCBhY3R1YWxseSBoYWx0ZWQgYXQgMHgiICsgTG9uZy50b0hleFN0cmluZyhuUEMpKTsKKyAgICB9Cit9CitlbHNlIHsKKyAgICAvLyBsZXQgJ3IgcmlwIQorICAgIGRlYnVnU2Vzc2lvbi50YXJnZXQucnVuQXN5bmNoKCk7Cit9CisKKy8vIEFsbCBkb25lCitkZWJ1Z1Nlc3Npb24udGVybWluYXRlKCk7CitkZWJ1Z1NlcnZlci5zdG9wKCk7CisKK2phdmEubGFuZy5TeXN0ZW0uZXhpdCgwKTsKKwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL3BhY2thZ2UuYmxkIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL3BhY2thZ2UuYmxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkOGFiNDcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvcGFja2FnZS5ibGQKQEAgLTAsMCArMSw0IEBACisvKiB0aGlzIGZpbGUgaXMgaW50ZW5zaW9uYWxseSAiYmxhbmsiLiAgSXQgbXVzdCBleGlzdCB0byBpbmRpY2F0ZSB0aGF0IHRoaXMKKyAqIHBhY2thZ2UgaXMgYnVpbGRhYmxlLCBidXQgc2luY2UgdGhpcyBwYWNrYWdlIG9ubHkgY29udGFpbnMgbWV0YS1jb250ZW50LAorICogcGFja2FnZS54ZGMgYWxyZWFkeSBzcGVjaWZpZXMgd2hhdCBuZWVkcyB0byBiZSBkb25lLgorICovClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL3BhY2thZ2UueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkY2UxNDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvcGFja2FnZS54ZGMKQEAgLTAsMCArMSwyNCBAQAorLyogLS1DT1BZUklHSFQtLSxFUEwKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMgYW5kIG90aGVycy4KKyAqICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisgKiAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogCisgKiAgQ29udHJpYnV0b3JzOgorICogICAgICBUZXhhcyBJbnN0cnVtZW50cyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24KKyAqIAorICogLS0vQ09QWVJJR0hULS0qLworcmVxdWlyZXMgdHhuLmNhdGFsb2cuYzQzMDsKK3JlcXVpcmVzIHhkYy5wbGF0Zm9ybSBbMSwwLDFdOworCisvKiEKKyAqICA9PT09PT09PSB0eG4ucGxhdGZvcm1zLmV6NDMwX3JmMjUwMCA9PT09PT09PQorICogIFBsYXRmb3JtIHBhY2thZ2UgZm9yIHRoZSBlWjQzMC1SRjI1MDAgcGxhdGZvcm0uCisgKgorICogIFRoaXMgcGFja2FnZSBpbXBsZW1lbnRzIHRoZSBpbnRlcmZhY2VzICh4ZGMucGxhdGZvcm0uSVBsYXRmb3JtKQorICogIG5lY2Vzc2FyeSB0byBidWlsZCBhbmQgcnVuIGV4ZWN1dGFibGVzIG9uIHRoZSBlWjQzMC1SRjI1MDAgcGxhdGZvcm0uCisgKi8KK3BhY2thZ2UgdHhuLnBsYXRmb3Jtcy5lejQzMF9yZjI1MDAgWzEsMCwwLDFdIHsKKyAgICBtb2R1bGUgUGxhdGZvcm07Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvdGVzdHMvLnhkY2Vudi5tYWsgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvdGVzdHMvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTUxZDQ4MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC90ZXN0cy8ueGRjZW52Lm1hawpAQCAtMCwwICsxLDE2IEBACisjCitfWERDQlVJTERDT1VOVCA9IDE2MworaWZuZXEgKCwkKGZpbmRzdHJpbmcgcGF0aCwkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENQQVRIID0gCitvdmVycmlkZSBYRENST09UID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMKK292ZXJyaWRlIFhEQ0JVSUxEQ0ZHID0gLi4vLi4vLi4vLi4vY29uZmlnLmJsZAorZW5kaWYKK2lmbmVxICgsJChmaW5kc3RyaW5nIGFyZ3MsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDQVJHUyA9IAorb3ZlcnJpZGUgWERDVEFSR0VUUyA9IAorZW5kaWYKKyMKK2lmZXEgKDAsMSkKK1BLR1BBVEggPSAvZGIvenRyZWUvZHIveGRjdG9vbHNfM18xNV8wMF8zMy9wYWNrYWdlczsuLi8uLi8uLi8uLgorSE9TVE9TID0gTGludXgKK2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvdGVzdHMvcGFja2FnZS5ibGQgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvdGVzdHMvcGFja2FnZS5ibGQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWFhYmExYwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC90ZXN0cy9wYWNrYWdlLmJsZApAQCAtMCwwICsxLDE4IEBACitQa2cuYXR0cnMucmVsU2NyaXB0ID0gInRpc2IvcmVsZWFzZS9maWx0ZXJzL2NvcHlyaWdodC5yZWwiOworCisvKiBhZGQgYSAic2FuaXR5IiB0ZXN0IGZvciB0aGlzIHBsYXRmb3JtIGFuZCBleHBvcnQgcHJlLWJ1aWx0IGV4ZWN1dGFibGUgKi8KK1BrZy5hdHRycy5leHBvcnRBbGwgPSB0cnVlOworUGtnLmF0dHJzLnByb2ZpbGUgPSAicmVsZWFzZSI7CisKK1BrZy5vdGhlckZpbGVzID0gWyJ0ZXN0LmMiLCAidGVzdC5jZmciXTsKKworLyogY29tcHV0ZSB0aGUgbmFtZSBvZiB0aGUgcGxhdGZvcm0gcGFja2FnZSB3ZSBhcmUgdGVzdGluZyBmcm9tIG91ciBuYW1lICovCit2YXIgbXlQbGF0Zm9ybSA9IFBrZy5uYW1lLnJlcGxhY2UoL1wudGVzdHMkLywnJyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgQnVpbGQudGFyZ2V0cy5sZW5ndGg7IGkrKykgeworICAgIHZhciB0YXJnID0gQnVpbGQudGFyZ2V0c1tpXTsKKyAgICBpZiAodGFyZy5pc2EubWF0Y2goLzQzMC8pKSB7CisgICAgICAgIHZhciBwcm9nID0gUGtnLmFkZEV4ZWN1dGFibGUoInRlc3QiLCB0YXJnLCBteVBsYXRmb3JtKTsKKyAgICAgICAgcHJvZy5hZGRPYmplY3RzKFsidGVzdCJdKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvdGVzdHMvcGFja2FnZS54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvdGVzdHMvcGFja2FnZS54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmNkODhlMQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC90ZXN0cy9wYWNrYWdlLnhkYwpAQCAtMCwwICsxLDE5IEBACisvKiAtLUNPUFlSSUdIVC0tLEVQTAorICogIENvcHlyaWdodCAoYykgMjAwOCBUZXhhcyBJbnN0cnVtZW50cyBhbmQgb3RoZXJzLgorICogIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyAqICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorICogIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiAKKyAqICBDb250cmlidXRvcnM6CisgKiAgICAgIFRleGFzIEluc3RydW1lbnRzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgorICogCisgKiAtLS9DT1BZUklHSFQtLSovCityZXF1aXJlcyB0eG4ucGxhdGZvcm1zLmV6NDMwX3JmMjUwMDsKKworLyohCisgKiAgPT09PT09PT0gdHhuLnBsYXRmb3Jtcy5lejQzMF9yZjI1MDAudGVzdHMgPT09PT09PT0KKyAqICBUZXN0IHBhY2thZ2UgZm9yIHRoZSBlejQzMF9yZjI1MDAgcGxhdGZvcm0uCisgKi8KK3BhY2thZ2UgdHhuLnBsYXRmb3Jtcy5lejQzMF9yZjI1MDAudGVzdHMgWzEsMCwwLDBdIHsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC90ZXN0cy90ZXN0LmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvdGVzdHMvdGVzdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NGJhOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvdGVzdHMvdGVzdC5jCkBAIC0wLDAgKzEsMjAgQEAKKy8qIC0tQ09QWVJJR0hULS0sRVBMCisgKiAgQ29weXJpZ2h0IChjKSAyMDA4IFRleGFzIEluc3RydW1lbnRzIGFuZCBvdGhlcnMuCisgKiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworICogIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIAorICogIENvbnRyaWJ1dG9yczoKKyAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisgKiAKKyAqIC0tL0NPUFlSSUdIVC0tKi8KKy8qCisgKiAgPT09PT09PT0gbWFpbiA9PT09PT09PQorICogIEV2ZXJ5IG1vZHVsZSBtYXkgb3B0aW9uYWxseSBkZWZpbmUgYSBtYWluKCkgZnVuY3Rpb24uICBJZiBpdCBpcyBkZWZpbmVkLAorICogIGEgcHJvZ3JhbSBjYW4gYmUgY3JlYXRlZCB3aXRoIHRoaXMgZnVuY3Rpb24gYXMgaXRzICJlbnRyeSBwb2ludCIuCisgKi8KK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvdGVzdHMvdGVzdC5jZmcgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3BsYXRmb3Jtcy9lejQzMF9yZjI1MDAvdGVzdHMvdGVzdC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc3Y2E0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC90ZXN0cy90ZXN0LmNmZwpAQCAtMCwwICsxLDQgQEAKKy8qIHNldCB0aGUgcHJvZ3JhbSdzIGVudHJ5IHBvaW50IHRvIHRoZSBTYW5pdHkgbW9kdWxlJ3MgbWFpbigpIGZ1bmN0aW9uICovCitQcm9ncmFtLm1haW4gPSBudWxsOworUHJvZ3JhbS5oZWFwID0gMHg0MDsKK1Byb2dyYW0uc3RhY2sgPSAweDEwMDsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC90bG9hZC54cyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vcGxhdGZvcm1zL2V6NDMwX3JmMjUwMC90bG9hZC54cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYmJkMTAzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi9wbGF0Zm9ybXMvZXo0MzBfcmYyNTAwL3Rsb2FkLnhzCkBAIC0wLDAgKzEsNzUgQEAKK2lmIChhcmd1bWVudHMubGVuZ3RoIDwgMSkgeworICAgIHByaW50KCJ1c2FnZTogbG9hZCBwcm9nIik7CisgICAgamF2YS5sYW5nLlN5c3RlbS5leGl0KDEpOworfQorcHJpbnQoImxvYWRpbmcgIiArIGFyZ3VtZW50cyArICIgLi4uIik7CisKKy8vIEltcG9ydCB0aGUgRFNTIHBhY2thZ2VzIGludG8gb3VyIG5hbWVzcGFjZSB0byBzYXZlIG9uIHR5cGluZworaW1wb3J0UGFja2FnZShQYWNrYWdlcy5jb20udGkuZGVidWcuZW5naW5lLnNjcmlwdGluZyk7CitpbXBvcnRQYWNrYWdlKFBhY2thZ2VzLmNvbS50aS5jY3N0dWRpby5zY3JpcHRpbmcuZW52aXJvbm1lbnQpOworaW1wb3J0UGFja2FnZShQYWNrYWdlcy5qYXZhLmxhbmcpOworCisvLyBDcmVhdGUgb3VyIHNjcmlwdGluZyBlbnZpcm9ubWVudCBvYmplY3QgLSB3aGljaCBpcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBpbnRvIGFueSBzY3JpcHQgYW5kCisvLyB0aGUgZmFjdG9yeSBmb3IgY3JlYXRpbmcgb3RoZXIgU2NyaXB0YWJsZSBlcnZlcnMgYW5kIFNlc3Npb25zCit2YXIgc2NyaXB0ID0gbmV3IFNjcmlwdGluZ0Vudmlyb25tZW50KCk7CisKKy8vIENyZWF0ZSBhIGxvZyBmaWxlIGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB0byBsb2cgc2NyaXB0IGV4ZWN1dGlvbgorc2NyaXB0LnRyYWNlQmVnaW4oIkJyZWFrcG9pbnRzVGVzdExvZy54bWwiLCAiRGVmYXVsdFN0eWxlc2hlZXQueHNsIik7CisKKy8vIFNldCBvdXIgVGltZU91dAorc2NyaXB0LnNldFNjcmlwdFRpbWVvdXQoMjAwMDApOworCisvLyBMb2cgZXZlcnl0aGluZworc2NyaXB0LnRyYWNlU2V0Q29uc29sZUxldmVsKFRyYWNlTGV2ZWwuQUxMKTsKK3NjcmlwdC50cmFjZVNldEZpbGVMZXZlbChUcmFjZUxldmVsLkFMTCk7CisKKy8vIEdldCB0aGUgRGVidWcgU2VydmVyIGFuZCBzdGFydCBhIERlYnVnIFNlc3Npb24KK2RlYnVnU2VydmVyID0gc2NyaXB0LmdldFNlcnZlcigiRGVidWdTZXJ2ZXIuMSIpOworcHJpbnQoIiMjIyNzZXJ2ZXIgY3JlYXRlZC4iKTsKK2RlYnVnU2VydmVyLnNldENvbmZpZygiLi9TeXN0ZW1TZXR1cC54bWwiKTsKK3ByaW50KCIjIyMjc2V0Q29uZmlnIGRvbmUuIik7CisKK2RlYnVnU2Vzc2lvbiA9IGRlYnVnU2VydmVyLm9wZW5TZXNzaW9uKCIuKiIpOworcHJpbnQoIiMjIyNvcGVuU2Vzc2lvbiBkb25lLiIpOworCisvLyBSZXNldCBvdXIgVGFyZ2V0CitkZWJ1Z1Nlc3Npb24udGFyZ2V0LmNvbm5lY3QoKTsKK3ByaW50KCIjIyMjcmVzZXQgZG9uZS4iKTsKKworLy8gTG9hZCBhIHByb2dyYW0KKy8vIChTY3JpcHRpbmdFbnZpcm9ubWVudCBoYXMgYSBjb25jZXB0IG9mIGEgd29ya2luZyBmb2xkZXIgYW5kIGZvciBhbGwgb2YgdGhlIEFQSXMgd2hpY2ggdGFrZQorLy8gcGF0aCBuYW1lcyBhcyBhcmd1bWVudHMgeW91IGNhbiBlaXRoZXIgcGFzcyBhIHJlbGF0aXZlIHBhdGggb3IgYW4gYWJzb2x1dGUgcGF0aCkKK2RlYnVnU2Vzc2lvbi5tZW1vcnkubG9hZFByb2dyYW0oYXJndW1lbnRzWzBdKTsKK3ByaW50KCJsb2FkZWQgYXBwLm91dCAuLi4iKTsKKworLy8gU2V0IGEgYnJlYWtwb2ludCBhdCAiZm9vIgordmFyIG1haW4gPSBkZWJ1Z1Nlc3Npb24uc3ltYm9sLmdldEFkZHJlc3MoImZvbyIpOwordmFyIGJwMSA9IGRlYnVnU2Vzc2lvbi5icmVha3BvaW50LmFkZChtYWluKTsKKworLy8gUnVuLiAgU2hvdWxkIGhhbHQgYXQgZmlyc3QgQlAKK2RlYnVnU2Vzc2lvbi50YXJnZXQucnVuKCk7CisKKy8vIFVzaW5nIGFuIGV4cHJlc3Npb24gLSBnZXQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIFBDCituUEMgPSBkZWJ1Z1Nlc3Npb24uZXhwcmVzc2lvbi5ldmFsdWF0ZSgiUEMiKTsKKworLy8gVmVyaWZ5IHdlIGhhbHRlZCBhdCB0aGUgY29ycmVjdCBhZGRyZXNzLiAgVXNlIHRoZSBTdGF0aWMgSmF2YSBtZXRob2QgTG9uZy50b0hleFN0cmluZygpIHRvIGNvbnZlcnQgdGhlCisvLyByZXN1bHQgdG8gYSBoZXggc3RyaW5nIHdoZW4gbG9nZ2luZyBtZXNzYWdlcworaWYgKG5QQyA9PSBtYWluKSB7CisgICAgc2NyaXB0LnRyYWNlV3JpdGUoIlNVQ0NFU1M6IEhhbHRlZCBhdCBjb3JyZWN0IGxvY2F0aW9uIik7Cit9CitlbHNlIHsKKyAgICBzY3JpcHQudHJhY2VXcml0ZSgiRkFJTDogRXhwZWN0ZWQgaGFsdCBhdCAweCIgKyBMb25nLnRvSGV4U3RyaW5nKG1haW4pICsgIiwgYWN0dWFsbHkgaGFsdGVkIGF0IDB4IiArIExvbmcudG9IZXhTdHJpbmcoblBDKSk7Cit9CisKKy8vIGxldCAnciByaXAhCitkZWJ1Z1Nlc3Npb24udGFyZ2V0LnJ1bkFzeW5jaCgpOworCisvLyBBbGwgZG9uZQorZGVidWdTZXNzaW9uLnRlcm1pbmF0ZSgpOworZGVidWdTZXJ2ZXIuc3RvcCgpOworCisvLyBDbG9zZSBvdXIgTG9nIEZpbGUKK3NjcmlwdC50cmFjZUVuZCgpOworCitqYXZhLmxhbmcuU3lzdGVtLmV4aXQoMCk7CisKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy8uY2R0cHJvamVjdCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy8uY2R0cHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWIyODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzLy5jZHRwcm9qZWN0CkBAIC0wLDAgKzEsMjYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPD9lY2xpcHNlLWNkdCB2ZXJzaW9uPSIyLjAiPz4NCisNCis8Y2R0cHJvamVjdCBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlIj4NCis8ZXh0ZW5zaW9uIGlkPSJjb20udGkuY2NzdHVkaW8uYmluYXJ5cGFyc2VyLkNvZmZQYXJzZXIiIHBvaW50PSJvcmcuZWNsaXBzZS5jZHQuY29yZS5CaW5hcnlQYXJzZXIiLz4NCis8ZGF0YT4NCis8aXRlbSBpZD0ic2Nhbm5lckNvbmZpZ3VyYXRpb24iPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L2l0ZW0+DQorPGl0ZW0gaWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhdGhlbnRyeSI+DQorPHBhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0ib3V0IiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5ESVNDT1ZFUkVEX1NDQU5ORVJfSU5GTyIvPg0KKzwvaXRlbT4NCis8L2RhdGE+DQorPC9jZHRwcm9qZWN0Pg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy8uY3Byb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvLmNwcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlM2ZiY2IKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvLmNwcm9qZWN0CkBAIC0wLDAgKzEsMzMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/Pg0KKzw/ZmlsZVZlcnNpb24gNC4wLjA/Pg0KKw0KKzxjcHJvamVjdD4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiPg0KKzxjY29uZmlndXJhdGlvbiBpZD0iY29udmVydGVkLmNvbmZpZy4xMzIyOTA2MzMwIj4NCis8c3RvcmFnZU1vZHVsZSBtb2R1bGVJZD0ic2Nhbm5lckNvbmZpZ3VyYXRpb24iPg0KKzxhdXRvZGlzY292ZXJ5IGVuYWJsZWQ9ImZhbHNlIiBwcm9ibGVtUmVwb3J0aW5nRW5hYmxlZD0idHJ1ZSIgc2VsZWN0ZWRQcm9maWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiLz4NCis8cHJvZmlsZSBpZD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5HQ0NTdGFuZGFyZE1ha2VQZXJQcm9qZWN0UHJvZmlsZSI+DQorPGJ1aWxkT3V0cHV0UHJvdmlkZXI+DQorPG9wZW5BY3Rpb24gZW5hYmxlZD0iZmFsc2UiIGZpbGVQYXRoPSIiLz4NCis8cGFyc2VyIGVuYWJsZWQ9InRydWUiLz4NCis8L2J1aWxkT3V0cHV0UHJvdmlkZXI+DQorPHNjYW5uZXJJbmZvUHJvdmlkZXIgaWQ9InNwZWNzRmlsZSI+DQorPHJ1bkFjdGlvbiBhcmd1bWVudHM9Ii1FIC1QIC12IC1kRCAke3BsdWdpbl9zdGF0ZV9sb2NhdGlvbn0vJHtzcGVjc19maWxlfSIgY29tbWFuZD0iZ2NjIiB1c2VEZWZhdWx0PSJ0cnVlIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9zY2FubmVySW5mb1Byb3ZpZGVyPg0KKzwvcHJvZmlsZT4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPHN0b3JhZ2VNb2R1bGUgbW9kdWxlSWQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLnBhdGhlbnRyeSI+DQorPHBhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9IiIvPg0KKzxwYXRoZW50cnkga2luZD0ib3V0IiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5ESVNDT1ZFUkVEX1NDQU5ORVJfSU5GTyIvPg0KKzwvc3RvcmFnZU1vZHVsZT4NCis8c3RvcmFnZU1vZHVsZSBidWlsZFN5c3RlbUlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5kZWZhdWx0Q29uZmlnRGF0YVByb3ZpZGVyIiBpZD0iY29udmVydGVkLmNvbmZpZy4xMzIyOTA2MzMwIiBtb2R1bGVJZD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuc2V0dGluZ3MiIG5hbWU9ImNvbnZlcnRlZENvbmZpZyI+DQorPGV4dGVybmFsU2V0dGluZ3MvPg0KKzxleHRlbnNpb25zPg0KKzxleHRlbnNpb24gaWQ9ImNvbS50aS5jY3N0dWRpby5iaW5hcnlwYXJzZXIuQ29mZlBhcnNlciIgcG9pbnQ9Im9yZy5lY2xpcHNlLmNkdC5jb3JlLkJpbmFyeVBhcnNlciIvPg0KKzwvZXh0ZW5zaW9ucz4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jY29uZmlndXJhdGlvbj4NCis8L3N0b3JhZ2VNb2R1bGU+DQorPC9jcHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvLnByb2plY3QgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTE1Mjc2YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy8ucHJvamVjdApAQCAtMCwwICsxLDgxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPnR4bi50YXJnZXRzPC9uYW1lPg0KKwk8Y29tbWVudD48L2NvbW1lbnQ+DQorCTxwcm9qZWN0cz4NCisJPC9wcm9qZWN0cz4NCisJPGJ1aWxkU3BlYz4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlQnVpbGRlcjwvbmFtZT4NCisJCQk8dHJpZ2dlcnM+Y2xlYW4sZnVsbCxpbmNyZW1lbnRhbCw8L3RyaWdnZXJzPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLmFyZ3VtZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5jb3JlLmVycm9yT3V0cHV0UGFyc2VyPC9rZXk+DQorCQkJCQk8dmFsdWU+Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkNvZmZFcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQXNtRXJyb3JQYXJzZXI7Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkxpbmtFcnJvclBhcnNlcjtvcmcuZWNsaXBzZS5jZHQuY29yZS5NYWtlRXJyb3JQYXJzZXI7PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVBdXRvQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW52aXJvbm1lbnQ8L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUZ1bGxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5pbmM8L2tleT4NCisJCQkJCTx2YWx1ZT5hbGw8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZWRJbmNyZW1lbnRhbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmNsZWFuPC9rZXk+DQorCQkJCQk8dmFsdWU+Y2xlYW48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLmNvbW1hbmQ8L2tleT4NCisJCQkJCTx2YWx1ZT4ke1hEQ1JPT1R9L3hkYzwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFwcGVuZF9lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnVzZURlZmF1bHRCdWlsZENtZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuYXV0bzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQuY29yZS5jbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZU5hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdOYXR1cmU8L25hdHVyZT4NCisJPC9uYXR1cmVzPg0KKzwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1ZDhlYjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzCkBAIC0wLDAgKzEsNCBAQAorI1R1ZSBNYXIgMTcgMTA6MzI6MDQgUERUIDIwMDkNCitlY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQ0KK2luZGV4ZXIvaW5kZXhlcklkPW9yZy5lY2xpcHNlLmNkdC5jb3JlLmRvbXNvdXJjZWluZGV4ZXINCitpbmRleGVySWQ9b3JnLmVjbGlwc2UuY2R0LmNvcmUuZG9tc291cmNlaW5kZXhlcg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy8ueGRjZW52Lm1hawpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmJkZGViCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzLy54ZGNlbnYubWFrCkBAIC0wLDAgKzEsMTYgQEAKKyMKK19YRENCVUlMRENPVU5UID0gMAoraWZuZXEgKCwkKGZpbmRzdHJpbmcgcGF0aCwkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENQQVRIID0gCitvdmVycmlkZSBYRENST09UID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMKK292ZXJyaWRlIFhEQ0JVSUxEQ0ZHID0gLi9jb25maWcuYmxkCitlbmRpZgoraWZuZXEgKCwkKGZpbmRzdHJpbmcgYXJncywkKF9VU0VYRENFTlZfKSkpCitvdmVycmlkZSBYRENBUkdTID0gCitvdmVycmlkZSBYRENUQVJHRVRTID0gCitlbmRpZgorIworaWZlcSAoMCwxKQorUEtHUEFUSCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzL3BhY2thZ2VzOy4uLy4uCitIT1NUT1MgPSBMaW51eAorZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9JTVNQNDMwLnhkYyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9JTVNQNDMwLnhkYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40N2YyMzlhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL0lNU1A0MzAueGRjCkBAIC0wLDAgKzEsMjExIEBACisvKiAtLUNPUFlSSUdIVC0tLEVQTAorICogIENvcHlyaWdodCAoYykgMjAwOCBUZXhhcyBJbnN0cnVtZW50cyBhbmQgb3RoZXJzLgorICogIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKKyAqICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorICogIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiAKKyAqICBDb250cmlidXRvcnM6CisgKiAgICAgIFRleGFzIEluc3RydW1lbnRzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbgorICogCisgKiAtLS9DT1BZUklHSFQtLSovCisKK2ltcG9ydCB0aS50YXJnZXRzLklUYXJnZXQ7CisKKy8qIQorICogID09PT09PT09IElNU1A0MzAgPT09PT09PT0KKyAqICBDb21tb24gSVRhcmdldCB2YWx1ZXMgZm9yIGFsbCBNU1A0MzAgdGFyZ2V0cworICovCisKK21ldGFvbmx5IGludGVyZmFjZSBJTVNQNDMwIGluaGVyaXRzIHRpLnRhcmdldHMuSVRhcmdldCB7CisgICAgb3ZlcnJpZGUgcmVhZG9ubHkgY29uZmlnIHN0cmluZyBpc2EgPSAiNDMwIjsgICAgCisgICAgb3ZlcnJpZGUgcmVhZG9ubHkgY29uZmlnIHN0cmluZyBydHMgPSAidHhuLnRhcmdldHMucnRzNDMwIjsKKyAgICBvdmVycmlkZSByZWFkb25seSBjb25maWcgeGRjLmJsZC5JVGFyZ2V0Lk1vZGVsIG1vZGVsID0geworICAgICAgICBlbmRpYW46ICJsaXR0bGUiCisgICAgfTsKKworICAgIG92ZXJyaWRlIGNvbmZpZyBTdHJpbmcgc3RkSW5jbHVkZSA9ICJ0eG4vdGFyZ2V0cy9zdGQuaCI7CisKKyAgICBvdmVycmlkZSBjb25maWcgU3RyaW5nIHBsYXRmb3JtID0gInR4bi5wbGF0Zm9ybXMuZXo0MzBfcmYyNTAwIjsKKworICAgIG92ZXJyaWRlIGNvbmZpZyB4ZGMuYmxkLklUYXJnZXQuRXh0ZW5zaW9uIGV4dGVuc2lvbnNbc3RyaW5nXSA9IFsKKyAgICAgICAgWyIuczQzMCIsIHtzdWY6ICIuczQzMCIsIHR5cDogImFzbSJ9XSwKKyAgICAgICAgWyIuYXNtIiwge3N1ZjogIi5hc20iLCB0eXA6ICJhc20ifV0sCisgICAgICAgIFsiLmMiLCAgIHtzdWY6ICIuYyIsICAgdHlwOiAiYyIgIH1dLAorICAgICAgICBbIi5jcHAiLCB7c3VmOiAiLmNwcCIsIHR5cDogImNwcCJ9XSwKKyAgICAgICAgWyIuY3h4Iiwge3N1ZjogIi5jeHgiLCB0eXA6ICJjcHAifV0sCisgICAgICAgIFsiLkMiLCAgIHtzdWY6ICIuQyIsICAgdHlwOiAiY3BwIn1dLAorICAgICAgICBbIi5jYyIsICB7c3VmOiAiLmNjIiwgIHR5cDogImNwcCJ9XSwKKyAgICBdOworCisgICAgb3ZlcnJpZGUgcmVhZG9ubHkgY29uZmlnIElUYXJnZXQuQ29tbWFuZCBhciA9IHsKKyAgICAgICAgY21kOiAgImFyNDMwIiwKKyAgICAgICAgb3B0czogInJxIgorICAgIH07CisKKyAgICBvdmVycmlkZSByZWFkb25seSBjb25maWcgSVRhcmdldC5Db21tYW5kIGNjID0geworICAgICAgICBjbWQ6ICAiY2w0MzAgLWMiLAorICAgICAgICBvcHRzOiAiIC12bXNwIgorICAgIH07CisKKyAgICBvdmVycmlkZSByZWFkb25seSBjb25maWcgSVRhcmdldC5Db21tYW5kIHZlcnMgPSB7CisgICAgICAgIGNtZDogICJjbDQzMCIsCisgICAgICAgIG9wdHM6ICItdmVyc2lvbiIKKyAgICB9OworCisgICAgb3ZlcnJpZGUgcmVhZG9ubHkgY29uZmlnIElUYXJnZXQuQ29tbWFuZCBhc20gPSB7CisgICAgICAgIGNtZDogICJjbDQzMCAtYyIsCisgICAgICAgIG9wdHM6ICIgLXZtc3AiCisgICAgfTsKKworICAgIG92ZXJyaWRlIHJlYWRvbmx5IGNvbmZpZyBJVGFyZ2V0LkNvbW1hbmQgbG5rID0geworICAgICAgICBjbWQ6ICAibG5rNDMwIiwKKyAgICAgICAgb3B0czogIiIKKyAgICB9OworCisgICAgLyohCisgICAgICogID09PT09PT09IGFzbU9wdHMgPT09PT09PT0KKyAgICAgKiAgVXNlciBjb25maWd1cmFibGUgYXNzZW1ibGVyIG9wdGlvbnMuCisgICAgICoKKyAgICAgKiAgRGVmYXVsdHM6CisgICAgICogIEBwKGRsaXN0KQorICAgICAqICAgICAgLWAtcXFgCisgICAgICogICAgICAgICAgc3VwZXIgcXVpZXQgbW9kZQorICAgICAqLworICAgIG92ZXJyaWRlIGNvbmZpZyBJVGFyZ2V0Lk9wdGlvbnMgYXNtT3B0cyA9IHsKKyAgICAgICAgcHJlZml4OiAiLXFxIiwKKyAgICAgICAgc3VmZml4OiAiIgorICAgIH07CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gY2NPcHRzID09PT09PT09CisgICAgICogIFVzZXIgY29uZmlndXJhYmxlIGNvbXBpbGVyIG9wdGlvbnMuCisgICAgICoKKyAgICAgKiAgRGVmYXVsdHM6CisgICAgICogIEBwKGRsaXN0KQorICAgICAqICAgICAgLWAtcXFgCisgICAgICogICAgICAgICAgc3VwZXIgcXVpZXQgbW9kZQorICAgICAqICAgICAgLWAtcGRzdzIyNWAKKyAgICAgKiAgICAgICAgICBnZW5lcmF0ZSBhIHdhcm5pbmcgZm9yIGltcGxpY2l0bHkgZGVjbGFyZWQgZnVuY3Rpb25zOyBpLmUuLAorICAgICAqICAgICAgICAgIGZ1bmN0aW9ucyB3aXRob3V0IHByb3RvdHlwZXMKKyAgICAgKiAgICAgIC1gLS1nZW5fZnVuY19zdWJzZWN0aW9uc2AKKyAgICAgKiAgICAgICAgICBnZW5lcmF0ZSBzZXBhcmF0ZSBzZWN0aW9ucyBmb3IgZWFjaCBmdW5jdGlvbjsgdGhpcyBlbmFibGVzCisgICAgICogICAgICAgICAgZnVuY3Rpb25zIHdpdGhpbiBhIHNpbmdsZSBzb3VyY2UgZmlsZSB0byBiZSByZW1vdmVkIGlmIGl0CisgICAgICogICAgICAgICAgaXMgdW5yZWZlcmVuY2VkLgorICAgICAqLworICAgIG92ZXJyaWRlIGNvbmZpZyBJVGFyZ2V0Lk9wdGlvbnMgY2NPcHRzID0geworICAgICAgICBwcmVmaXg6ICItcXEgLXBkc3cyMjUiLAorICAgICAgICBzdWZmaXg6ICItLWdlbl9mdW5jX3N1YnNlY3Rpb25zICIKKyAgICB9OworCisgICAgLyohCisgICAgICogID09PT09PT09IGNjQ29uZmlnT3B0cyA9PT09PT09PQorICAgICAqICBVc2VyIGNvbmZpZ3VyYWJsZSBjb21waWxlciBvcHRpb25zIGZvciB0aGUgZ2VuZXJhdGVkIGNvbmZpZyBDIGZpbGUuCisgICAgICovCisgICAgb3ZlcnJpZGUgY29uZmlnIElUYXJnZXQuT3B0aW9ucyBjY0NvbmZpZ09wdHMgPSB7CisgICAgICAgIHByZWZpeDogIiQoY2NPcHRzLnByZWZpeCkiLAorICAgICAgICBzdWZmaXg6ICIkKGNjT3B0cy5zdWZmaXgpIgorICAgIH07CisKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gbGlua0xpYiA9PT09PT09PQorICAgICAqICBEZWZhdWx0IE1TUDQzMCBjZ3Rvb2xzIHJ1bnRpbWUgbGlicmFyeSB0byBsaW5rIHdpdGggCisgICAgICogIChvcHRpb25zOiBydHMxNmUubGliLCBydHMzMmUubGliKQorICAgICAqLworICAgIGNvbmZpZyBzdHJpbmcgbGlua0xpYiA9ICJydHM0MzAubGliIjsKKyAgICAKKyAgICAvKiEKKyAgICAgKiAgPT09PT09PT0gbG5rT3B0cyA9PT09PT09PQorICAgICAqICBVc2VyIGNvbmZpZ3VyYWJsZSBsaW5rZXIgb3B0aW9ucy4KKyAgICAgKgorICAgICAqICBEZWZhdWx0czoKKyAgICAgKiAgQHAoZGxpc3QpCisgICAgICogICAgICAtYC13YAorICAgICAqICAgICAgICAgIERpc3BsYXkgbGlua2VyIHdhcm5pbmdzCisgICAgICogICAgICAtYC1xYAorICAgICAqICAgICAgICAgIFF1aXRlIHJ1bgorICAgICAqICAgICAgLWAtdWAKKyAgICAgKiAgICAgICAgICBQbGFjZSB1bnJlc29sdmVkIGV4dGVybmFsIHN5bWJvbCBpbnRvIHN5bWJvbCB0YWJsZQorICAgICAqICAgICAgLWAtY2AKKyAgICAgKiAgICAgICAgICBST00gYXV0b2luaXRpYWxpemF0aW9uIG1vZGVsCisgICAgICogICAgICAtYC1tYAorICAgICAqICAgICAgICAgIGNyZWF0ZSBhIG1hcCBmaWxlCisgICAgICovCisgICAgb3ZlcnJpZGUgY29uZmlnIElUYXJnZXQuT3B0aW9ucyBsbmtPcHRzID0geworICAgICAgICBwcmVmaXg6ICItdyAtcSAtdSBfY19pbnQwMCIsCisgICAgICAgIHN1ZmZpeDogIi1jIC1tICQoWERDQ0ZHRElSKS8kQC5tYXAgIiAvKiArIC1sICQocm9vdERpcikvbGliL2xpbmtMaWIgKi8KKyAgICB9OworCisgICAgLyohCisgICAgICogID09PT09PT09IHByb2ZpbGVzID09PT09PT09CisgICAgICogIFN0YW5kYXJkIG9wdGlvbnMgcHJvZmlsZXMgZm9yIHRoZSBUSSB0b29sLWNoYWluLgorICAgICAqLworICAgIG92ZXJyaWRlIGNvbmZpZyB4ZGMuYmxkLklUYXJnZXQuT3B0aW9uU2V0IHByb2ZpbGVzW3N0cmluZ10gPSBbCisgICAgICAgIFsiZGVidWciLCB7CisgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgIGNvcHRzOiAiLWciLAorICAgICAgICAgICAgICAgIGRlZnM6ICAiLURfREVCVUdfPTEiLAorICAgICAgICAgICAgfQorICAgICAgICB9XSwKKyAgICAgICAgWyJyZWxlYXNlIiwgeworICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICBjb3B0czogIi1PMiIsCisgICAgICAgICAgICB9LAorICAgICAgICB9XSwKKyAgICAgICAgWyJwcm9maWxlIiwgeworICAgICAgICAgICAgY29tcGlsZU9wdHM6IHsKKyAgICAgICAgICAgICAgICBjb3B0czogIi1ncCIsCisgICAgICAgICAgICB9LAorICAgICAgICB9XSwKKyAgICAgICAgWyJjb3ZlcmFnZSIsIHsKKyAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgY29wdHM6ICItZ3AiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfV0sCisgICAgICAgIFsid2hvbGVfcHJvZ3JhbSIsIHsKKyAgICAgICAgICAgIGNvbXBpbGVPcHRzOiB7CisgICAgICAgICAgICAgICAgY29wdHM6ICItb2UgLU8yIiwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH1dLAorICAgICAgICBbIndob2xlX3Byb2dyYW1fZGVidWciLCB7CisgICAgICAgICAgICBjb21waWxlT3B0czogeworICAgICAgICAgICAgICAgIGNvcHRzOiAiLW9lIC0tc3ltZGVidWc6ZHdhcmYiLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfV0sCisgICAgXTsKKworICAgIG92ZXJyaWRlIGNvbmZpZyBzdHJpbmcgaW5jbHVkZU9wdHMgPSAiLUkkKHJvb3REaXIpL2luY2x1ZGUgIjsKKworICAgIGZpbmFsIG92ZXJyaWRlIHJlYWRvbmx5IGNvbmZpZyBzdHJpbmcgc2VjdE1hcFtzdHJpbmddID0gWworICAgICAgICBbIi5pbnR2ZWNzIiwgImNvZGUiXSwKKworICAgICAgICBbIi50ZXh0IiwgImNvZGUiXSwKKyAgICAgICAgWyIuY2luaXQiLCAiY29kZSJdLAorICAgICAgICBbIi5jb25zdCIsICJjb2RlIl0sCisgICAgICAgIFsiLnBpbml0IiwgImNvZGUiXSwKKworICAgICAgICBbIi5ic3MiLCAiZGF0YSJdLAorICAgICAgICBbIi5zeXNtZW0iLCAiZGF0YSJdLAorICAgICAgICBbIi5zdGFjayIsICJzdGFjayJdLAorICAgICAgICBbIi5hcmdzIiwgImRhdGEiXSwKKyAgICAgICAgWyIuY2lvIiwgImRhdGEiXSwKKyAgICAgICAgWyIucmVzZXQiLCAiZGF0YSJdLAorICAgIF07CisKKyAgICBvdmVycmlkZSByZWFkb25seSBjb25maWcgeGRjLmJsZC5JVGFyZ2V0LlN0ZFR5cGVzIHN0ZFR5cGVzID0geworICAgICAgICB0X0lBcmcgICAgICAgICAgOiB7IHNpemU6IDIsIGFsaWduOiAyIH0sCisgICAgICAgIHRfQ2hhciAgICAgICAgICA6IHsgc2l6ZTogMSwgYWxpZ246IDEgfSwKKyAgICAgICAgdF9Eb3VibGUgICAgICAgIDogeyBzaXplOiA0LCBhbGlnbjogNCB9LAorICAgICAgICB0X0Zsb2F0ICAgICAgICAgOiB7IHNpemU6IDQsIGFsaWduOiA0IH0sCisgICAgICAgIHRfRnhuICAgICAgICAgICA6IHsgc2l6ZTogMiwgYWxpZ246IDIgfSwKKyAgICAgICAgdF9JbnQgICAgICAgICAgIDogeyBzaXplOiAyLCBhbGlnbjogMiB9LAorICAgICAgICB0X0ludDggICAgICAgICAgOiB7IHNpemU6IDEsIGFsaWduOiAxIH0sCisgICAgICAgIHRfSW50MTYgICAgICAgICA6IHsgc2l6ZTogMiwgYWxpZ246IDIgfSwKKyAgICAgICAgdF9JbnQzMiAgICAgICAgIDogeyBzaXplOiA0LCBhbGlnbjogNCB9LAorICAgICAgICB0X0xvbmcgICAgICAgICAgOiB7IHNpemU6IDQsIGFsaWduOiA0IH0sCisgICAgICAgIHRfTERvdWJsZSAgICAgICA6IHsgc2l6ZTogNCwgYWxpZ246IDQgfSwKKyAgICAgICAgdF9MTG9uZyAgICAgICAgIDogeyBzaXplOiA0LCBhbGlnbjogNCB9LAorICAgICAgICB0X1B0ciAgICAgICAgICAgOiB7IHNpemU6IDIsIGFsaWduOiAyIH0sCisgICAgICAgIHRfU2hvcnQgICAgICAgICA6IHsgc2l6ZTogMiwgYWxpZ246IDIgfSwKKyAgICB9OworfTsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9NU1A0MzAueGRjIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL01TUDQzMC54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODk1MTcwYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9NU1A0MzAueGRjCkBAIC0wLDAgKzEsMjUgQEAKKy8qIC0tQ09QWVJJR0hULS0sRVBMCisgKiAgQ29weXJpZ2h0IChjKSAyMDA4IFRleGFzIEluc3RydW1lbnRzIGFuZCBvdGhlcnMuCisgKiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworICogIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIAorICogIENvbnRyaWJ1dG9yczoKKyAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisgKiAKKyAqIC0tL0NPUFlSSUdIVC0tKi8KKworLyohCisgKiAgPT09PT09PT0gTVNQNDMwID09PT09PT09CisgKiAgVEkgTVNQNDMwIGxpdHRsZSBlbmRpYW4gdGFyZ2V0CisgKi8KKworbWV0YW9ubHkgbW9kdWxlIE1TUDQzMCBpbmhlcml0cyBJTVNQNDMwIHsKKyAgICBvdmVycmlkZSByZWFkb25seSBjb25maWcgc3RyaW5nIG5hbWUgICAgICAgICAgICAgPSAiTVNQNDMwIjsgCisgICAgb3ZlcnJpZGUgcmVhZG9ubHkgY29uZmlnIHN0cmluZyBzdWZmaXggICAgICAgICAgID0gIjQzMCI7CisgICAgb3ZlcnJpZGUgcmVhZG9ubHkgY29uZmlnIHN0cmluZyBpc2EgICAgICAgICAgICAgID0gIjQzMCI7ICAgIAorICAgIG92ZXJyaWRlIHJlYWRvbmx5IGNvbmZpZyB4ZGMuYmxkLklUYXJnZXQuTW9kZWwgbW9kZWwgPSB7CisgICAgICAgIGVuZGlhbjogImxpdHRsZSIKKyAgICB9OworfTsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9NU1A0MzAueHMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvTVNQNDMwLnhzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzMjNhZjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvTVNQNDMwLnhzCkBAIC0wLDAgKzEsOCBAQAorLyoKKyAqICA9PT09PT09PSBJVGFyZ2V0LmFzbU5hbWUgPT09PT09PT0KKyAqICBHaXZlbiBhIEMgc3ltYm9sIG5hbWUgcmV0dXJuIGl0cyBhc3NlbWJseSBsYW5ndWFnZSBuYW1lCisgKi8KK2Z1bmN0aW9uIGFzbU5hbWUoY25hbWUpCit7CisgICAgcmV0dXJuIChjbmFtZSk7IC8qIFRJIE1TUDQzMCBjb2RlIGdlbiBkb2VzIG5vdCBtYW5nbGUgQyBzeW1ib2xzICovCit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvY29uZmlnLmJsZCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9jb25maWcuYmxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxYjYzMmUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvY29uZmlnLmJsZApAQCAtMCwwICsxLDUgQEAKKy8qICBUaGlzIGZpbGUgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugd2UgbmVlZCB0byBhdm9pZCBpbmNsdWRpbmcgdGhpcyB0YXJnZXQKKyAqICBkdXJpbmcgdGhlIGJ1aWxkIG9mIHRoaXMgdGFyZ2V0OyB3ZSBjYW4ndCB1c2UgdGhpcyB0YXJnZXQgYmVmb3JlIGl0J3MKKyAqICBidWlsdC4KKyAqLworQnVpbGQudXNlVGFyZ2V0cyA9IG51bGw7ICAgIC8qIGZvcmNlIHRoZSBzZXQgb2YgYnVpbGQgdGFyZ2V0cyB0byBiZSBlbXB0eSAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3BhY2thZ2UuYmxkIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3BhY2thZ2UuYmxkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlYWIwMmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvcGFja2FnZS5ibGQKQEAgLTAsMCArMSwxMiBAQAorUGtnLmF0dHJzLmFyY2hpdmVyID0gInppcCI7CisKK1BrZy5hdHRycy5leHBvcnRBbGwgPSB0cnVlOyAvKiBwdXQgZXZlcnl0aGluZyBpbiB0aGUgcmVsZWFzZSAoaW5jbHVkaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogYnVpbGQgc2NyaXB0cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKworUGtnLm90aGVyU3JjcyA9IFsic3RkLmgiXTsgIC8qIHRlbGwgZG9jIHRvb2xzIHRoYXQgc3RkLmggaXMgYSBzb3VyY2UgZmlsZSAqLworCisvKiB0aGVyZSBpcyBub3RoaW5nIGVsc2Ugd2UgbmVlZCB0byBkbzsgeGRjIGFsd2F5cyBidWlsZHMgYSBwYWNrYWdlJ3MKKyAqIGludGVyZmFjZXMsIG1ldGFvbmx5IG1vZHVsZXMgZG8gbm90IHJlcXVpcmUgYW55IGJ1aWxkIHN0ZXBzLCBhbmQgdGhpcworICogcGFja2FnZSBvbmx5IGNvbnRhaW5zIG1ldGFvbmx5IG1vZHVsZXMuCisgKi8gCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvcGFja2FnZS54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvcGFja2FnZS54ZGMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODc3OGU0MQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9wYWNrYWdlLnhkYwpAQCAtMCwwICsxLDMwIEBACityZXF1aXJlcyB0aS50YXJnZXRzOworCisvKiEKKyAqICA9PT09PT09PSB0eG4udGFyZ2V0cyA9PT09PT09PQorICogIE1TUDMyMCB0YXJnZXRzIGJhc2VkIG9uIHRoZSBUSSBjb2RlZ2VuIHRvb2xzLgorICoKKyAqICBUaGlzIHBhY2thZ2UgaWxsdXN0cmF0ZXMgaG93IG9uZSBjYW4gY3JlYXRlIGN1c3RvbSB0YXJnZXRzICp3aXRob3V0KgorICogIG1ha2luZyBhbnkgY2hhbmdlcyB0byB0aGUgeGRjIHRvb2wgc2V0LiAgVGhpcyBtZWFucyB0aGF0IHRoZSBkZXZlbG9wZXIgaXMKKyAqICBuZXZlciBkZXBlbmRlbnQgb24gImV4dGVybmFsIiBkZXZlbG9wZXJzIGZvciB1cGRhdGVzIHRvIHRoZSB4ZGMgdG9vbHMgaW4KKyAqICBvcmRlciB0byBidWlsZCBsaWJyYXJpZXMgd2l0aCByZXNwZWN0IHRvIHNwZWNpYWwgdGFyZ2V0cy4KKyAqCisgKiAgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgbW9kdWxlczoKKyAqCisgKiAgICAgIE1TUDQzMCAgICB0aGlzIG1vZHVsZSByZXByZXNlbnRzIGEgbGl0dGxlIGVuZGlhbiBBcm05IHRpX2FybTlfYWJpCisgKiAgICAgICAgICAgICAgICB0YXJnZXQuICBCZWNhdXNlIHRoaXMgbW9kdWxlIGluaGVyaXRzIGZyb20gdGhlCisgKiAgICAgICAgICAgICAgICB0aS50YXJnZXRzLklUYXJnZXQgaW50ZXJmYWNlLCB0aGVyZSBpcyBubyBuZWVkIHRvIGltcGxlbWVudAorICogICAgICAgICAgICAgICAgYW55IG9mIHRoZSB4ZGMuYmxkLklUYXJnZXQgZnVuY3Rpb25zICh0aGUgaW1wbGVtZW50YXRpb25zCisgKiAgICAgICAgICAgICAgICBpbiB0aS50YXJnZXRzLklUYXJnZXQgYXJlIHN1ZmZpY2llbnQpLgorICoKKyAqICBUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIGZvbGxvd2luZyBpbnRlcmZhY2VzOgorICoKKyAqICAgICAgSU1TUDQzMCAtIHRoaXMgaW50ZXJmYWNlIGlzIHVzZWQgYnkgdGhlIG1vZHVsZXMgZGVzY3JpYmVkIGFib3ZlLgorICogICAgICAgICAgICAgICAgSXRzIHNvbGUgcHVycG9zZSBpcyB0byBlbmNhcHN1bGF0ZSBjb21tb25hbGl0eSBiZXR3ZWVuCisgKiAgICAgICAgICAgICAgICBtdWx0aXBsZSB0YXJnZXRzIGRlZmluZWQgaW4gdGhpcyBwYWNrYWdlLgorICovCitwYWNrYWdlIHR4bi50YXJnZXRzIFsxLCAwLCAwXQoreworICAgIG1vZHVsZSBNU1A0MzA7CisgICAgaW50ZXJmYWNlIElNU1A0MzA7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvcnRzNDMwLy5jZHRwcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC8uY2R0cHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMWIyODQ5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC8uY2R0cHJvamVjdApAQCAtMCwwICsxLDI2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzw/ZWNsaXBzZS1jZHQgdmVyc2lvbj0iMi4wIj8+DQorDQorPGNkdHByb2plY3QgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZSI+DQorPGV4dGVuc2lvbiBpZD0iY29tLnRpLmNjc3R1ZGlvLmJpbmFyeXBhcnNlci5Db2ZmUGFyc2VyIiBwb2ludD0ib3JnLmVjbGlwc2UuY2R0LmNvcmUuQmluYXJ5UGFyc2VyIi8+DQorPGRhdGE+DQorPGl0ZW0gaWQ9InNjYW5uZXJDb25maWd1cmF0aW9uIj4NCis8YXV0b2Rpc2NvdmVyeSBlbmFibGVkPSJmYWxzZSIgcHJvYmxlbVJlcG9ydGluZ0VuYWJsZWQ9InRydWUiIHNlbGVjdGVkUHJvZmlsZUlkPSJvcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLkdDQ1N0YW5kYXJkTWFrZVBlclByb2plY3RQcm9maWxlIi8+DQorPHByb2ZpbGUgaWQ9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuR0NDU3RhbmRhcmRNYWtlUGVyUHJvamVjdFByb2ZpbGUiPg0KKzxidWlsZE91dHB1dFByb3ZpZGVyPg0KKzxvcGVuQWN0aW9uIGVuYWJsZWQ9ImZhbHNlIiBmaWxlUGF0aD0iIi8+DQorPHBhcnNlciBlbmFibGVkPSJ0cnVlIi8+DQorPC9idWlsZE91dHB1dFByb3ZpZGVyPg0KKzxzY2FubmVySW5mb1Byb3ZpZGVyIGlkPSJzcGVjc0ZpbGUiPg0KKzxydW5BY3Rpb24gYXJndW1lbnRzPSItRSAtUCAtdiAtZEQgJHtwbHVnaW5fc3RhdGVfbG9jYXRpb259LyR7c3BlY3NfZmlsZX0iIGNvbW1hbmQ9ImdjYyIgdXNlRGVmYXVsdD0idHJ1ZSIvPg0KKzxwYXJzZXIgZW5hYmxlZD0idHJ1ZSIvPg0KKzwvc2Nhbm5lckluZm9Qcm92aWRlcj4NCis8L3Byb2ZpbGU+DQorPC9pdGVtPg0KKzxpdGVtIGlkPSJvcmcuZWNsaXBzZS5jZHQuY29yZS5wYXRoZW50cnkiPg0KKzxwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSIiLz4NCis8cGF0aGVudHJ5IGtpbmQ9Im91dCIgcGF0aD0iIi8+DQorPHBhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuRElTQ09WRVJFRF9TQ0FOTkVSX0lORk8iLz4NCis8L2l0ZW0+DQorPC9kYXRhPg0KKzwvY2R0cHJvamVjdD4NCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvcnRzNDMwLy5wcm9qZWN0IGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWY5MTk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC8ucHJvamVjdApAQCAtMCwwICsxLDgyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxwcm9qZWN0RGVzY3JpcHRpb24+DQorCTxuYW1lPnR4bi50YXJnZXRzLnJ0czQzMDwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCQk8cHJvamVjdD50eG4udGFyZ2V0czwvcHJvamVjdD4NCisJPC9wcm9qZWN0cz4NCisJPGJ1aWxkU3BlYz4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5tYWtlQnVpbGRlcjwvbmFtZT4NCisJCQk8dHJpZ2dlcnM+Y2xlYW4sZnVsbCxpbmNyZW1lbnRhbCw8L3RyaWdnZXJzPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLmFyZ3VtZW50czwva2V5Pg0KKwkJCQkJPHZhbHVlPjwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5jb3JlLmVycm9yT3V0cHV0UGFyc2VyPC9rZXk+DQorCQkJCQk8dmFsdWU+Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkNvZmZFcnJvclBhcnNlcjtjb20udGkuY2NzdHVkaW8uZXJyb3JwYXJzZXIuQXNtRXJyb3JQYXJzZXI7Y29tLnRpLmNjc3R1ZGlvLmVycm9ycGFyc2VyLkxpbmtFcnJvclBhcnNlcjtvcmcuZWNsaXBzZS5jZHQuY29yZS5NYWtlRXJyb3JQYXJzZXI7PC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5lbmFibGVBdXRvQnVpbGQ8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW52aXJvbm1lbnQ8L2tleT4NCisJCQkJCTx2YWx1ZT48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZUZ1bGxCdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLnRhcmdldC5pbmM8L2tleT4NCisJCQkJCTx2YWx1ZT5hbGw8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmVuYWJsZWRJbmNyZW1lbnRhbEJ1aWxkPC9rZXk+DQorCQkJCQk8dmFsdWU+dHJ1ZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuYnVpbGQudGFyZ2V0LmNsZWFuPC9rZXk+DQorCQkJCQk8dmFsdWU+Y2xlYW48L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmJ1aWxkLmNvbW1hbmQ8L2tleT4NCisJCQkJCTx2YWx1ZT4ke1hEQ1JPT1R9L3hkYzwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuZW5hYmxlQ2xlYW5CdWlsZDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLmFwcGVuZF9lbnZpcm9ubWVudDwva2V5Pg0KKwkJCQkJPHZhbHVlPnRydWU8L3ZhbHVlPg0KKwkJCQk8L2RpY3Rpb25hcnk+DQorCQkJCTxkaWN0aW9uYXJ5Pg0KKwkJCQkJPGtleT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLnVzZURlZmF1bHRCdWlsZENtZDwva2V5Pg0KKwkJCQkJPHZhbHVlPmZhbHNlPC92YWx1ZT4NCisJCQkJPC9kaWN0aW9uYXJ5Pg0KKwkJCQk8ZGljdGlvbmFyeT4NCisJCQkJCTxrZXk+b3JnLmVjbGlwc2UuY2R0Lm1ha2UuY29yZS5idWlsZC50YXJnZXQuYXV0bzwva2V5Pg0KKwkJCQkJPHZhbHVlPmFsbDwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQkJPGRpY3Rpb25hcnk+DQorCQkJCQk8a2V5Pm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUuc3RvcE9uRXJyb3I8L2tleT4NCisJCQkJCTx2YWx1ZT5mYWxzZTwvdmFsdWU+DQorCQkJCTwvZGljdGlvbmFyeT4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQuY29yZS5jbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmNkdC5tYWtlLmNvcmUubWFrZU5hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5jZHQubWFrZS5jb3JlLlNjYW5uZXJDb25maWdOYXR1cmU8L25hdHVyZT4NCisJPC9uYXR1cmVzPg0KKzwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9ydHM0MzAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY2R0LmNvcmUucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBiMmJmMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9ydHM0MzAvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNkdC5jb3JlLnByZWZzCkBAIC0wLDAgKzEsMyBAQAorI1RodSBNYXIgMDUgMjI6NTg6NDggUFNUIDIwMDkNCitlY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQ0KK2luZGV4ZXJJZD1vcmcuZWNsaXBzZS5jZHQuY29yZS5kb21zb3VyY2VpbmRleGVyDQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC8ueGRjZW52Lm1hayBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9ydHM0MzAvLnhkY2Vudi5tYWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ3MDc5ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9ydHM0MzAvLnhkY2Vudi5tYWsKQEAgLTAsMCArMSwxNiBAQAorIworX1hEQ0JVSUxEQ09VTlQgPSAxNzAKK2lmbmVxICgsJChmaW5kc3RyaW5nIHBhdGgsJChfVVNFWERDRU5WXykpKQorb3ZlcnJpZGUgWERDUEFUSCA9IAorb3ZlcnJpZGUgWERDUk9PVCA9IC9kYi96dHJlZS9kci94ZGN0b29sc18zXzE1XzAwXzMzCitvdmVycmlkZSBYRENCVUlMRENGRyA9IC4uLy4uLy4uL2NvbmZpZy5ibGQKK2VuZGlmCitpZm5lcSAoLCQoZmluZHN0cmluZyBhcmdzLCQoX1VTRVhEQ0VOVl8pKSkKK292ZXJyaWRlIFhEQ0FSR1MgPSAKK292ZXJyaWRlIFhEQ1RBUkdFVFMgPSAKK2VuZGlmCisjCitpZmVxICgwLDEpCitQS0dQQVRIID0gL2RiL3p0cmVlL2RyL3hkY3Rvb2xzXzNfMTVfMDBfMzMvcGFja2FnZXM7Li4vLi4vLi4KK0hPU1RPUyA9IExpbnV4CitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC9ib290LmMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvcnRzNDMwL2Jvb3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MmFlZWUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC9ib290LmMKQEAgLTAsMCArMSw2MCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogQk9PVC5DICAgdjIuMS4wQTA3MTMwIC0gSW5pdGlhbGl6ZSB0aGUgTVNQNDMwIEMgcnVudGltZSBlbnZpcm9ubWVudCAgICAgICAgICAgICAqLworLyogQ29weXJpZ2h0IChjKSAyMDAzLTIwMDcgIFRleGFzIEluc3RydW1lbnRzIEluY29ycG9yYXRlZCAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworI2RlZmluZSBDSU5JVCAgICgodm9pZCopJl9fY2luaXRfXykKKworZXh0ZXJuIGludCAgX19jaW5pdF9fOworZXh0ZXJuIGludCBfYXJnc19tYWluKCk7CitleHRlcm4gdm9pZCBleGl0KGludCBzdGF0dXMpOworZXh0ZXJuIHZvaWQgX2F1dG9faW5pdChjb25zdCB2b2lkICpjaW5pdCk7CitleHRlcm4gdm9pZCBfX2ludGVycnVwdCBfY19pbnQwMCgpOworZXh0ZXJuIGludCAgX3N5c3RlbV9wcmVfaW5pdCh2b2lkKTsKKworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworLyogQWxsb2NhdGUgdGhlIG1lbW9yeSBmb3IgdGhlIHN5c3RlbSBzdGFjay4gIFRoaXMgc2VjdGlvbiB3aWxsIGJlIHNpemVkICAgICAqLworLyogYnkgdGhlIGxpbmtlci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLworX19hc20oIlx0Lmdsb2JhbCBfX1NUQUNLX1NJWkUiKTsKKyNwcmFnbWEgREFUQV9TRUNUSU9OIChfc3RhY2ssICIuc3RhY2siKTsKK2ludCAgX3N0YWNrOworCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisvKiAgSW5pdGlhbGl6ZSByZXNldCB2ZWN0b3IgdG8gcG9pbnQgYXQgX2NfaW50MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisjcHJhZ21hIERBVEFfU0VDVElPTihfcmVzZXRfdmVjdG9yLCIucmVzZXQiKQorCisjaWYgZGVmaW5lZChfX0xBUkdFX0NPREVfTU9ERUxfXykKK19QcmFnbWEoIkNPREVfU0VDVElPTihfY19pbnQwMCwgXCIudGV4dDpfaXNyXCIpIikKK19QcmFnbWEoImRpYWdfc3VwcHJlc3MgMTEwNyIpCit2b2lkICogY29uc3QgX3Jlc2V0X3ZlY3RvciA9ICh2b2lkICopIChsb25nKSAmX2NfaW50MDA7CisjZWxzZQordm9pZCAoKiBjb25zdCBfcmVzZXRfdmVjdG9yKSgpID0gJl9jX2ludDAwOworI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIENfSU5UMDAoKSAtIEMgRU5WSVJPTk1FTlQgRU5UUlkgUE9JTlQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK2V4dGVybiB2b2lkIF9faW50ZXJydXB0IF9jX2ludDAwKCkKK3sKKyAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgIC8qIEluaXRpYWxpemUgc3RhY2sgcG9pbnRlci4gU3RhY2sgZ3Jvd3MgdG93YXJkIGxvd2VyIG1lbW9yeS4gICAgICAgICAgICAgKi8KKyAgIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KKyAgIF9fYXNtKCJcdCAgIE1PVi5XXHQgICAgI19zdGFjayArIF9fU1RBQ0tfU0laRSxTUCIpOworCisgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAvKiBBbGxvdyBmb3IgYW55IGFwcGxpY2F0aW9uLXNwZWNpZmljIGxvdyBsZXZlbCBpbml0aWFsaXphdGlvbiBwcmlvciB0byAgICovCisgICAvKiBpbml0aWFsaXppbmcgdGhlIEMvQysrIGVudmlyb25tZW50IChnbG9iYWwgdmFyaWFibGUgaW5pdGlhbGl6YXRpb24sICAgICovCisgICAvKiBjb25zdHJ1Y3RlcnMpLiAgSWYgX3N5c3RlbV9wcmVfaW5pdCgpIHJldHVybnMgMCwgdGhlbiBieXBhc3MgQy9DKysgICAgICovCisgICAvKiBpbml0aWFsaXphdGlvbi4gIE5PVEU6IEJZUEFTU0lORyBUSEUgQ0FMTCBUTyBUSEUgQy9DKysgSU5JVElBTElaQVRJT04gICovCisgICAvKiBST1VUSU5FIE1BWSBSRVNVTFQgSU4gUFJPR1JBTSBGQUlMVVJFLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICBpZihfc3lzdGVtX3ByZV9pbml0KCkgIT0gMCkgIF9hdXRvX2luaXQoQ0lOSVQpOworCisgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICAvKiBIYW5kbGUgYW55IGFyZ2MvYXJndiBhcmd1bWVudHMgaWYgc3VwcG9ydGVkIGJ5IGFuIE1TUDQzMCBsb2FkZXIuICAgICAgICovCisgICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCisgICBfYXJnc19tYWluKCk7CisKKyAgIGV4aXQoMSk7Cit9CmRpZmYgLS1naXQgYS9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvcnRzNDMwL3BhY2thZ2UuYmxkIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC9wYWNrYWdlLmJsZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjUxZDc0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC9wYWNrYWdlLmJsZApAQCAtMCwwICsxLDIwIEBACisvKiBnZXQgYnVpbGQgc3Vwb3J0IGZyb20geGRjLnJ1bnRpbWUgcGFja2FnZSAqLwordmFyIFJ0c0J1aWxkID0geGRjLmxvYWRDYXBzdWxlKCd4ZGMvcnVudGltZS9idWlsZC54cycpOworUGtnLm1ha2VQcm9sb2d1ZSA9IFJ0c0J1aWxkLm1ha2VQcm9sb2d1ZTsKKworLyogZGVmaW5lIGFkZGl0aW9uYWwgc291cmNlcyBwcm92aWRlZCBieSB0aGlzIHBhY2thZ2UgKi8KK1BrZy5vdGhlclNyY3MgPSBbImJvb3QuYyIsICJwcmVfaW5pdC5jIl07CisKKy8qIGRlZmluZSB0aGUgbGlicmFyaWVzIHByb3ZpZGVkIGJ5IHRoaXMgcGFja2FnZSAqLworZm9yICh2YXIgaSA9IDA7IGkgPCBCdWlsZC50YXJnZXRzLmxlbmd0aDsgaSsrKSB7CisgICAgdmFyIHRhcmcgPSBCdWlsZC50YXJnZXRzW2ldOworICAgIGlmICh0YXJnLnJ0cyA9PSBQa2cubmFtZSkgeworICAgICAgICB2YXIgbGliID0gUGtnLmFkZExpYnJhcnkoImxpYi8iICsgUGtnLm5hbWUsIHRhcmcpOworICAgICAgICBsaWIuYWRkT2JqZWN0cyhSdHNCdWlsZC5vYmpzKTsKKyAgICAgICAgbGliLmFkZE9iamVjdHMoUGtnLm90aGVyU3Jjcyk7CisgICAgfQorfQorCisvKiBzcGVjaWZ5IHdoYXQgZmlsZXMgc2hvdWxkIGJlIHBhcnQgb2YgdGhpcyBwYWNrYWdlIHdoZW4gaXQncyByZWxlYXNlICovCitQa2cub3RoZXJGaWxlcyA9IFBrZy5vdGhlclNyY3M7CitQa2cuYXR0cnMuZXhwb3J0QWxsID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9ydHM0MzAvcGFja2FnZS54ZGMgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvcnRzNDMwL3BhY2thZ2UueGRjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MjA1MjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvcnRzNDMwL3BhY2thZ2UueGRjCkBAIC0wLDAgKzEsMjUgQEAKKy8qIC0tQ09QWVJJR0hULS0sRVBMCisgKiAgQ29weXJpZ2h0IChjKSAyMDA4IFRleGFzIEluc3RydW1lbnRzIGFuZCBvdGhlcnMuCisgKiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworICogIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisgKiAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIAorICogIENvbnRyaWJ1dG9yczoKKyAqICAgICAgVGV4YXMgSW5zdHJ1bWVudHMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCisgKiAKKyAqIC0tL0NPUFlSSUdIVC0tKi8KK3JlcXVpcmVzIHhkYy5ydW50aW1lOworCisvKiEKKyAqICA9PT09PT09PSB0eG4udGFyZ2V0cy5ydHM0MzAgPT09PT09PT0KKyAqICBSdW50aW1lIHN1cHBvcnQgcGFja2FnZSBmb3IgdGhlIGM0MzAgdGFyZ2V0cy4KKyAqCisgKiAgVGhpcyBwYWNrYWdlIGJ1aWxkcyBhIGxpYnJhcnkgb2YgYWxsIG1vZHVsZXMgaW4gdGhlIHhkYy5ydW50aW1lIHBhY2thZ2UuCisgKiAgQnkgYnVpbGRpbmcgdGhlIHhkYy5ydW50aW1lIHBhY2thZ2UgaGVyZSB3ZSBhdm9pZCBoYXZpbmcgbXVsdGlwbGUgY29waWVzCisgKiAgb2YgdGhlIHNhbWUgc291cmNlIGluIGRpZmZlcmVudCBydW50aW1lIHN1cHBvcnQgcGFja2FnZXMgZm9yIGRpZmZlcmVudAorICogIElTQXMuICBUaGlzIGFsc28gYWxsb3dzIHhkYy5ydW50aW1lIHRvIGJlIGEgcHVyZSBzb3VyY2UgcGFja2FnZQorICogIGluZGVwZW5kZW50IG9mIGFueSBwYXJ0aWN1bGFyIHRvb2wgY2hhaW4uCisgKi8KK3BhY2thZ2UgdHhuLnRhcmdldHMucnRzNDMwIFsxLDAsMF0geworfQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC9wcmVfaW5pdC5jIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3J0czQzMC9wcmVfaW5pdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0OTg2NjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvZXhhbXBsZXMvdHhuL3RhcmdldHMvcnRzNDMwL3ByZV9pbml0LmMKQEAgLTAsMCArMSwzNCBAQAorLyogLS1DT1BZUklHSFQtLSxFUEwKKyAqICBDb3B5cmlnaHQgKGMpIDIwMDggVGV4YXMgSW5zdHJ1bWVudHMgYW5kIG90aGVycy4KKyAqICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisgKiAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyAqICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogCisgKiAgQ29udHJpYnV0b3JzOgorICogICAgICBUZXhhcyBJbnN0cnVtZW50cyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24KKyAqIAorICogLS0vQ09QWVJJR0hULS0qLworZXh0ZXJuIGludCAgX19jaW5pdF9fOyAgLyogZGVmaW5lZCBieSBUSSBsaW5rZXIgPT0gLTEgaWYgLmNpbml0IGlzbid0IGxvYWRlZCAqLworZXh0ZXJuIGNoYXIgX19ic3NfXzsgICAgLyogZGVmaW5lZCBieSB0aGUgVEkgbGlua2VyIHRvIGJlIHRoZSBzdGFydCBvZiAuYnNzICovCitleHRlcm4gY2hhciBfX2VuZF9fOyAgICAvKiBkZWZpbmVkIGJ5IHRoZSBUSSBsaW5rZXIgdG8gYmUgdGhlIGVuZCBvZiAuYnNzICovCisKKy8qCisgKiAgPT09PT09PT0gX3N5c3RlbV9wcmVfaW5pdCA9PT09PT09PQorICogIENhbGxlZCBieSB0aGUgcmVzZXQgY29kZSBwcmlvciB0byAuY2luaXQgcHJvY2Vzc2luZyAod2hpY2gKKyAqICBpbml0aWFsaXplcyBhbGwgZXhwbGljaXRseSBpbml0aWFsaXplZCBDIHN0YXRpYyBvciBnbG9iYWwgdmFyaWFibGVzKQorICovCitpbnQgX3N5c3RlbV9wcmVfaW5pdCh2b2lkKQoreworICAgIC8qIGlmIC5jaW5pdCBpcyBub3QgbG9hZGVkLCBzb21lIGxvYWRlciB3aWxsIGluaXRpYWxpemUgLmJzcyAqLworICAgIGlmIChfX2Npbml0X18gIT0gLTEpIHsKKyAgICAgICAgY2hhciAqY3A7CisgICAgCisgICAgICAgIC8qIG90aGVyd2lzZSwgd2UgaW5pdGlhbGl6ZSBhbGwgLmJzcyB0byAwIGJlZm9yZSAuY2luaXQgaXMgcHJvY2Vzc2VkICovCisgICAgICAgIGZvciAoY3AgPSAmX19ic3NfXzsgY3AgPCAmX19lbmRfXzsgKSB7CisgICAgICAgICAgICAqY3ArKyA9IDA7CisgICAgICAgIH0KKyAgICB9ICAgIAorCisgICAgcmV0dXJuICgxKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9zdGQuaCBiL3NyYy9wYXJ0Mi9leGFtcGxlcy90eG4vdGFyZ2V0cy9zdGQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTllMWM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BhcnQyL2V4YW1wbGVzL3R4bi90YXJnZXRzL3N0ZC5oCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiAgPT09PT09PT0gdHhuL3RhcmdldHMvc3RkLmggPT09PT09PT0KKyAqICBTdGFuZGFyZCB0eXBlcyBmb3Igc3VwcG9ydGVkIFRJIGNvbXBpbGVycworICovCisKKyNpZm5kZWYgdHhuX3RhcmdldHNfU1REXworI2RlZmluZSB0eG5fdGFyZ2V0c19TVERfCisKKy8qICBEZWZpbmUgdGFyZ2V0LXNwZWNpZmljICJwb3J0YWJsZSIgbWFjcm9zCisgKgorICogIFRoZSBidWlsZCBjb21tYW5kLWxpbmUgZGVmaW5lcyB4ZGNfdGFyZ2V0X25hbWVfXyB0byBiZSB0aGUgdmFsdWUKKyAqICBvZiB0aGUgdGFyZ2V0J3MgbmFtZSBjb25maWcgcGFyYW1ldGVyLiAgV2UgdXNlIHRoaXMgdG8gaW5jbHVkZSB0aGUKKyAqICB0YXJnZXQtc3BlY2lmaWMgZGVmaW5pdGlvbnMgZm9yIHRoZSByZXF1aXJlZCB0YXJnZXQtaW5kZXBlbmRlbnQKKyAqICB4ZGNfdGFyZ2V0KiBtYWNyb3MuCisgKgorICogIHhkY19fbG9jYWxfaW5jbHVkZSBpcyBhIG1hY3JvIHRoYXQgZXhwYW5kcyBpbnRvIGEgI2luY2x1ZGUgb2YgCisgKiAgIjxuYW1lPi5oIiwgd2hlcmUgPG5hbWU+IGlzIHRoZSBhcmd1bWVudCB0byB0aGUgbWFjcm8uIFRoaXMgbWFjcm8KKyAqICBpcyBkZWZpbmVkIGluIHhkYy9zdGQuaC4KKyAqLworI2lmZGVmIHhkY190YXJnZXRfbmFtZV9fCisjaW5jbHVkZSB4ZGNfX2xvY2FsX2luY2x1ZGUoeGRjX3RhcmdldF9uYW1lX18pCisjZW5kaWYKKworLyogImluaGVyaXQiIChpLmUuLCBpbmNsdWRlKSBhbGwgdGkudGFyZ2V0cyBzdGFuZGFyZCB0eXBlcyAqLworI2luY2x1ZGUgPHRpL3RhcmdldHMvc3RkLmg+CisKKyNlbmRpZiAvKiB0eG5fdGFyZ2V0c19TVERfICovCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvbWFrZWZpbGUgYi9zcmMvcGFydDIvbWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWUzNTQ0MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9tYWtlZmlsZQpAQCAtMCwwICsxLDg5IEBACisjCisjICBUaGlzIG1ha2VmaWxlIGJ1aWxkcyBldmVyeXRoaW5nIGluIHRoZSAuL2V4YW1wbGVzIGRpcmVjdG9yeS4KKyMKKyMgIFRvIGJ1aWxkOiAKKyMgICAgICAxLiBtb2RpZnkgZXhhbXBsZXMvY29tbW9uLm1hayBhcyBuZWNlc3NhcnkKKyMgICAgICAyLiBjZCB0byB0aGUgZGlyZWN0b3J0eSBjb250YWluaW5nIHRoaXMgZmlsZQorIyAgICAgIDIuIChvcHRpb25hbGx5KSBjbGVhbiB2aWEgIm1ha2UgY2xlYW4iCisjICAgICAgMy4gYnVpbGQgdmlhICJtYWtlIgorIworaW5jbHVkZSBleGFtcGxlcy9jb21tb24ubWFrCisKKyMgRGlyZWN0b3J5IGNvbnRhaW5pbmcgU2ltcGxpY2lUSSouemlwCitET1dOTE9BRFMgPSAkKENVUkRJUikvLi4vLi4vaW1wb3J0cy9kb3dubG9hZHMKKworU0lNUEwgPSBTaW1wbGljaVRJLTEuMC42CisKK1NJTVBMX1pJUCA6PSAkKGZpcnN0d29yZCAkKHdpbGRjYXJkICQoU0lNUEwpLnppcCAkKERPV05MT0FEUykvJChTSU1QTCkuemlwKSkKKworYWxsOiAkKFNJTVBMKS8ucGF0Y2hlcworCUBlY2hvIG1ha2luZyBleGFtcGxlcyAuLi4KKwkkKFhEQ1JPT1QpL3hkYyAtUFIgZXhhbXBsZXMvdHhuL3RhcmdldHMKKwkkKFhEQ1JPT1QpL3hkYyAtUCBleGFtcGxlcy90aGlyZHBhcnR5L3J4dHggZXhhbXBsZXMvbG9jYWwvcmYKKwkkKFhEQ1JPT1QpL3hkYyAtUHIgZXhhbXBsZXMKKwkkKE1BS0UpIC1DIGV4YW1wbGVzL2xvY2FsL2FwcHMvbWFrZS9sb2dhcHAKKwlAZWNobyBhbGwgZG9uZS4KKworJChTSU1QTCkvLnBhdGNoZXM6IHBhdGNoZXMvcGF0Y2hlcy0kKEhPU1RPUykudHh0IHwgJChTSU1QTCkKKwlAZWNobyBwYXRjaGluZyAkKGRpciAkQCkgc291cmNlcyAuLi4KKwljZCAkKGRpciAkQCkvQ29tcG9uZW50cy9zaW1wbGljaXRpOyBcCisJICAgbXYgIk5ldHdvcmsgYXBwbGljYXRpb25zIiBud2tfYXBwbGljYXRpb25zIHx8IHRydWUKKwljZCAkKGRpciAkQCk7IHBhdGNoIC1wMSAtaSAuLi8kPAorCXRvdWNoICRACisKKyQoU0lNUEwpOiAkKFNJTVBMX1pJUCkKKwlAZWNobyBjcmVhdGluZyAkQCAuLi4KKwl0ZXN0IC1kICRAIHx8IHVuemlwIC1xICQ8IAorCisuUEhPTlk6IGRvY3MgY2xlYW4gY2xlYW4taXAKK2RvY3M6CisJQGVjaG8gZ2VuZXJhdGluZyBwYWNrYWdlIGRvY3MgLi4uCisJJChYRENST09UKS94ZGMgLVAgZXhhbXBsZXMvdHhuL3RhcmdldHMKKwkkKFhEQ1JPT1QpL3hkYyAuaW50ZXJmYWNlcyAtUCBleGFtcGxlcy9sb2NhbC9yZgorCSQoWERDUk9PVCkveGRjIC5pbnRlcmZhY2VzIC1QciBleGFtcGxlcworCSQoWERDUk9PVCkveHMgeGRjLnRvb2xzLmNkb2MgLW9kOmRvY3MvaHRtbCAtcyAtUHIgZXhhbXBsZXMgCisJQGVjaG8gZG9uZS4KKwlAZWNobyBPcGVuIGRvY3MvaHRtbC9pbmRleC5odG1sIHRvIHZpZXcgdGhlIGdlbmVyYXRlZCBkb2NzLgorCitjbGVhbjoKKwktIHJtIC1yZiBkb2NzL2h0bWwKKwktICQoWERDUk9PVCkveGRjIC1rICRAIC1QUiBleGFtcGxlcworCS0gJChNQUtFKSAtQyBleGFtcGxlcy9sb2NhbC9hcHBzL21ha2UvbG9nYXBwICRACisKK2NsZWFuLWlwOiBjbGVhbgorCS0gcm0gLXJmICQoU0lNUEwpCisKK2lmZXEgKDAsMSkKKyMKKyMgIFJ1bGUgdG8gbWFrZSB0aGUgcGF0Y2ggZmlsZQorIworcGF0Y2hlcy9wYXRjaGVzLSQoSE9TVE9TKS50eHQ6ICQoU0lNUEwpLG9yaWcKKwlAZWNobyBjcmVhdGluZyBwYXRjaCBmaWxlICRAIC4uLgorCUBybSAtZiAkQAorCUBMQ19BTEw9QyBUWj1VVEMwIGRpZmYgLU5jciAkPC9Db21wb25lbnRzICQoU0lNUEwpL0NvbXBvbmVudHMgPiAkQCB8fCB0cnVlCisKKyQoU0lNUEwpLG9yaWc6ICQoU0lNUExfWklQKQorCUBlY2hvIGNyZWF0aW5nICRAIC4uLgorCW1rZGlyIHRtcAorCXVuemlwIC1xICQ8IC1kIHRtcCAmJiBtdiB0bXAvJChTSU1QTCkgJEAKKwlybSAtcmYgdG1wCisJY2QgJEAvQ29tcG9uZW50cy9zaW1wbGljaXRpOyBtdiAiTmV0d29yayBhcHBsaWNhdGlvbnMiIG53a19hcHBsaWNhdGlvbnMKKworIworIyAgUnVsZSB0byB0ZXN0IHRoZSBwYXRjaCBmaWxlCisjCisuUEhPTlk6IHRlc3QtcGF0Y2ggY2xlYW4tcGF0Y2gKKwordGVzdC1wYXRjaDogJChTSU1QTCksb3JpZyBwYXRjaGVzL3BhdGNoZXMtJChIT1NUT1MpLnR4dAorCUBlY2hvIHBhdGNoaW5nICQ8IC4uLgorCWNkICQ8OyBwYXRjaCAtLXZlcmJvc2UgLXAxIC1pIC4uL3BhdGNoZXMvcGF0Y2hlcy0kKEhPU1RPUykudHh0CisJQGVjaG8gY2hlY2tpbmcgLi4uCisJZGlmZiAtciAkPC9Db21wb25lbnRzICQoU0lNUEwpL0NvbXBvbmVudHMKKwlAZWNobyBkb25lLgorCitjbGVhbjogY2xlYW4tcGF0Y2gKKworY2xlYW4tcGF0Y2g6CisJLSBybSAtcmYgJChTSU1QTCksb3JpZworCitlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL3BhdGNoZXMvUkVBRE1FIGIvc3JjL3BhcnQyL3BhdGNoZXMvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExNmI2YTYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvcGF0Y2hlcy9SRUFETUUKQEAgLTAsMCArMSwyMSBAQAorVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgc3RhbmRhcmQgcGF0Y2ggZmlsZXMsIHBhdGNoZXMtTGludXgudHh0IGFuZCAKK3BhdGNoZXMtV2luZG93cy50eHQsIHRoYXQgY2FuIGJlIHVzZWQgdG8gdXBkYXRlIFNpbXBsaWNpVEkgMS4wLjYgc28KK3RoYXQgaXQgY2FuIGJlIGJ1aWx0IHVzaW5nIHRoZSBUSSBNU1A0MzAgY29tcGlsZXIuCisKK1RvIGFwcGx5IHRoZSBwYXRjaDoKKyAgICBvIGdldCBhbmQgZXh0cmFjdCB0aGUgU2ltcGxpY2l0eSAxLjAuNiB0byBTaW1wbGljaVRJLTEuMC42CisgICAgbyB0eXBlIHRoZSBmb2xsb3dpbmc6CisJY2QgU2ltcGxpY2lUSS0xLjAuNgorCXBhdGNoIC1wMSAtaSAuLi4vcGF0Y2hlcy0kSE9TVE9TLnR4dAorCit3aGVyZSAkSE9TVE9TIGlzIExpbnV4IGlmIHlvdSBhcmUgYnVpbGRpbmcgb24gYSB1bml4IGhvc3Qgb3IgV2luZG93cyBpZgoreW91IGFyZSBidWlsZGluZyBvbiBhIFdpbmRvd3MgYmFzZWQgaG9zdDsgdW5mb3J0dW5hdGVseSwgdGhlIHBhdGNoIGZpbGUKK2Zvcm1hdCBpcyBub3QgcG9ydGFibGUgKGFjayEpLgorCitPdGhlciB0aGFuIGluaXRpbGl6YXRpb24gb2Ygc3RhdGljIGRhdGEgdG8gMCwgdGhlIG9ubHkgb3RoZXIgY2hhbmdlcword2VyZSBtYWRlIHRvIHRoZSBmb2xsb3dpbmcgZmlsZXM6CisgICAgLi9ic3AvYnNwLmgKKyAgICAuL2JzcC9ib2FyZHMvRVo0MzBSRi9ic3BfY29uZmlnLmgKKyAgICAuL2JzcC9tY3VzL2JzcF9tc3A0MzBfZGVmcy5oCisgICAgLi9tcmZpL3JhZGlvcy9mYW1pbHkxL21yZmlfcmFkaW8uYworCmRpZmYgLS1naXQgYS9zcmMvcGFydDIvcGF0Y2hlcy9wYXRjaGVzLUxpbnV4LnR4dCBiL3NyYy9wYXJ0Mi9wYXRjaGVzL3BhdGNoZXMtTGludXgudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ODdkMDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGFydDIvcGF0Y2hlcy9wYXRjaGVzLUxpbnV4LnR4dApAQCAtMCwwICsxLDI2MiBAQAorZGlmZiAtTmNyIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzL2JzcC9ib2FyZHMvRVo0MzBSRi9ic3BfY29uZmlnLmggU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzL2JzcC9ib2FyZHMvRVo0MzBSRi9ic3BfY29uZmlnLmgKKyoqKiBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50cy9ic3AvYm9hcmRzL0VaNDMwUkYvYnNwX2NvbmZpZy5oCVdlZCBTZXAgMTkgMDE6MTA6MjIgMjAwNworLS0tIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50cy9ic3AvYm9hcmRzL0VaNDMwUkYvYnNwX2NvbmZpZy5oCVR1ZSBGZWIgMTAgMjA6MjY6MDQgMjAwOQorKioqKioqKioqKioqKioqCisqKiogNTUsNjAgKioqKgorLS0tIDU1LDYxIC0tLS0KKyAgICogICAgICAgICBkaWdpdGFsbHkgY29udHJvbGxlZCBvc2NpbGxhdG9yLg0KKyAgICovDQorICAjZGVmaW5lIEJTUF9DT05GSUdfQ0xPQ0tfTUhaX1NFTEVDVCAgICAgOCAgLyogYXBwcm94aW1hdGUgTUh6ICovDQorKyAvLyBkciAjZGVmaW5lIEJTUF9DT05GSUdfQ0xPQ0tfTUhaX1NFTEVDVCAgICAgMQkgLyogY2hhbmdlZCB0byB3b3JrIHdpdGggVUFSVCBAIDk2MDAgKi8NCisgIA0KKyAgLyoNCisgICAqICBDdXN0b20gY2xvY2sgY29uZmlndXJhdGlvbiBpcyBhdmFpbGFibGUuICBQcm92aWRlIHZhbHVlcyBmb3IgQkNTQ1RMMSBhbmQgRENPQ1RMIGFzDQorZGlmZiAtTmNyIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzL2JzcC9ic3AuaCBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHMvYnNwL2JzcC5oCisqKiogU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHMvYnNwL2JzcC5oCUZyaSBGZWIgMjIgMDQ6Mjc6NDQgMjAwOAorLS0tIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50cy9ic3AvYnNwLmgJRnJpIEphbiAyMyAwMTo0MjowNCAyMDA5CisqKioqKioqKioqKioqKioKKyoqKiAxMjcsMTMzICoqKioKKyAgI2VuZGlmDQorICANCisgIC8qIHN0YXRpYyBhc3NlcnQgKi8NCishICNkZWZpbmUgQlNQX1NUQVRJQ19BU1NFUlQoZXhwcikgICB2b2lkIGJzcER1bW15UHJvdG90eXBlKCBjaGFyIGR1bW15WzEvKChleHByKSE9MCldICk7DQorICANCisgIA0KKyAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tIDEyNywxMzMgLS0tLQorICAjZW5kaWYNCisgIA0KKyAgLyogc3RhdGljIGFzc2VydCAqLw0KKyEgI2RlZmluZSBCU1BfU1RBVElDX0FTU0VSVChleHByKSAgIHZvaWQgYnNwRHVtbXlQcm90b3R5cGUoIGNoYXIgZHVtbXlbMS8oKGV4cHIpIT0wKV0gKQ0KKyAgDQorICANCisgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KK2RpZmYgLU5jciBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50cy9ic3AvbWN1cy9ic3BfbXNwNDMwX2RlZnMuaCBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHMvYnNwL21jdXMvYnNwX21zcDQzMF9kZWZzLmgKKyoqKiBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50cy9ic3AvbWN1cy9ic3BfbXNwNDMwX2RlZnMuaAlTYXQgTWF5ICAzIDAxOjMwOjQ0IDIwMDgKKy0tLSBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHMvYnNwL21jdXMvYnNwX21zcDQzMF9kZWZzLmgJVHVlIEphbiAyNyAwMjoxOTozNiAyMDA5CisqKioqKioqKioqKioqKioKKyoqKiA5MCw5OCAqKioqCisgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29kZSBDb21wb3NlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQorICAjZWxpZiAoZGVmaW5lZCBfX1RJX0NPTVBJTEVSX1ZFUlNJT05fXykgJiYgKGRlZmluZWQgX19NU1A0MzBfXykNCisgICNkZWZpbmUgQlNQX0NPTVBJTEVSX0NPREVfQ09NUE9TRVINCishICNlcnJvciAiRVJST1I6ICBTdXBwb3J0IGZvciBDb2RlIENvbXBvc2VyIGlzIG5vdCB5ZXQgYXZhaWxhYmxlLiINCisgIA0KKy0gI2luY2x1ZGUgPG1zcDQzMHhHNDZ4Lmg+IC8qIG5lZWQgZ2VuZXJpYyBzdXBwb3J0IGFzIGluICNpbmNsdWRlIDxtc3A0MzAuaD4gKi8NCisgICNkZWZpbmUgX19ic3BfRU5BQkxFX0lOVEVSUlVQVFNfXygpICAgICAgICAgX2VuYWJsZV9pbnRlcnJ1cHRzKCkNCisgICNkZWZpbmUgX19ic3BfRElTQUJMRV9JTlRFUlJVUFRTX18oKSAgICAgICAgX2Rpc2FibGVfaW50ZXJydXB0cygpDQorICAjZGVmaW5lIF9fYnNwX0lOVEVSUlVQVFNfQVJFX0VOQUJMRURfXygpICAgIChfZ2V0X1NSX3JlZ2lzdGVyKCkgJiBHSUUpDQorLS0tIDkwLDEwMCAtLS0tCisgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29kZSBDb21wb3NlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQorICAjZWxpZiAoZGVmaW5lZCBfX1RJX0NPTVBJTEVSX1ZFUlNJT05fXykgJiYgKGRlZmluZWQgX19NU1A0MzBfXykNCisgICNkZWZpbmUgQlNQX0NPTVBJTEVSX0NPREVfQ09NUE9TRVINCishIC8vIGRyICNlcnJvciAiRVJST1I6ICBTdXBwb3J0IGZvciBDb2RlIENvbXBvc2VyIGlzIG5vdCB5ZXQgYXZhaWxhYmxlLiINCishIA0KKyEgLy8gZHIgI2luY2x1ZGUgPG1zcDQzMHhHNDZ4Lmg+IC8qIG5lZWQgZ2VuZXJpYyBzdXBwb3J0IGFzIGluICNpbmNsdWRlIDxtc3A0MzAuaD4gKi8NCishICNpbmNsdWRlIDxtc3A0MzAuaD4gLyogLy8gZHIgKi8NCisgIA0KKyAgI2RlZmluZSBfX2JzcF9FTkFCTEVfSU5URVJSVVBUU19fKCkgICAgICAgICBfZW5hYmxlX2ludGVycnVwdHMoKQ0KKyAgI2RlZmluZSBfX2JzcF9ESVNBQkxFX0lOVEVSUlVQVFNfXygpICAgICAgICBfZGlzYWJsZV9pbnRlcnJ1cHRzKCkNCisgICNkZWZpbmUgX19ic3BfSU5URVJSVVBUU19BUkVfRU5BQkxFRF9fKCkgICAgKF9nZXRfU1JfcmVnaXN0ZXIoKSAmIEdJRSkNCisqKioqKioqKioqKioqKioKKyoqKiAxMTgsMTIzICoqKioKKy0tLSAxMjAsMTI3IC0tLS0KKyAgI2RlZmluZSBfX2JzcF9DT0RFX01FTVNQQUNFX18gICAvKiBibGFuayAqLw0KKyAgI2RlZmluZSBfX2JzcF9YREFUQV9NRU1TUEFDRV9fICAvKiBibGFuayAqLw0KKyAgDQorKyAvKiB0aGUgZm9sbG93aW5nIGFyZSBhbHJlYWR5IGRlZmluZWQgYnkgc3RkaW50LmggKi8NCisrICNpZm5kZWYgX1NURElOVF9IXw0KKyAgdHlwZWRlZiAgIHNpZ25lZCBjaGFyICAgICBpbnQ4X3Q7DQorICB0eXBlZGVmICAgc2lnbmVkIHNob3J0ICAgIGludDE2X3Q7DQorICB0eXBlZGVmICAgc2lnbmVkIGxvbmcgICAgIGludDMyX3Q7DQorKioqKioqKioqKioqKioqCisqKiogMTI1LDEzMCAqKioqCistLS0gMTI5LDEzNSAtLS0tCisgIHR5cGVkZWYgICB1bnNpZ25lZCBjaGFyICAgdWludDhfdDsNCisgIHR5cGVkZWYgICB1bnNpZ25lZCBzaG9ydCAgdWludDE2X3Q7DQorICB0eXBlZGVmICAgdW5zaWduZWQgbG9uZyAgIHVpbnQzMl90Ow0KKysgI2VuZGlmDQorICANCisgICNpZm5kZWYgTlVMTA0KKyAgI2RlZmluZSBOVUxMIDANCitkaWZmIC1OY3IgU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHMvbXJmaS9yYWRpb3MvZmFtaWx5MS9tcmZpX3JhZGlvLmMgU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzL21yZmkvcmFkaW9zL2ZhbWlseTEvbXJmaV9yYWRpby5jCisqKiogU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHMvbXJmaS9yYWRpb3MvZmFtaWx5MS9tcmZpX3JhZGlvLmMJV2VkIEp1bCAzMCAyMjowNjoxNiAyMDA4CistLS0gU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzL21yZmkvcmFkaW9zL2ZhbWlseTEvbXJmaV9yYWRpby5jCUZyaSBKYW4gMjMgMDE6MDA6MDQgMjAwOQorKioqKioqKioqKioqKioqCisqKiogMzk1LDQwMyAqKioqCisgICAgTVJGSV9SU1NJX1ZBTElEX1dBSVQoKTsNCisgIA0KKyAgICAvKiB1c2UgbW9zdCByYW5kb20gYml0IG9mIHJzc2kgdG8gcG9wdWxhdGUgdGhlIHJhbmRvbSBzZWVkICovDQorISAgIGZvcih1aW50OF90IGk9MDsgaTwxNjsgaSsrKQ0KKyEgICB7DQorISAgICAgbXJmaVJuZFNlZWQgPSAobXJmaVJuZFNlZWQgPDwgMSkgfCAobXJmaVNwaVJlYWRSZWcoUlNTSSkgJiAweDAxKTsNCisgICAgfQ0KKyAgDQorICAgIC8qIEZvcmNlIHRoZSBzZWVkIHRvIGJlIG5vbi16ZXJvIGJ5IHNldHRpbmcgb25lIGJpdCwganVzdCBpbiBjYXNlLi4uICovDQorLS0tIDM5NSw0MDUgLS0tLQorICAgIE1SRklfUlNTSV9WQUxJRF9XQUlUKCk7DQorICANCisgICAgLyogdXNlIG1vc3QgcmFuZG9tIGJpdCBvZiByc3NpIHRvIHBvcHVsYXRlIHRoZSByYW5kb20gc2VlZCAqLw0KKyEgICB7IHVpbnQ4X3QgaTsNCishICAgICBmb3IoaT0wOyBpPDE2OyBpKyspDQorISAgICAgew0KKyEgICAgICAgbXJmaVJuZFNlZWQgPSAobXJmaVJuZFNlZWQgPDwgMSkgfCAobXJmaVNwaVJlYWRSZWcoUlNTSSkgJiAweDAxKTsNCishICAgICB9DQorICAgIH0NCisgIA0KKyAgICAvKiBGb3JjZSB0aGUgc2VlZCB0byBiZSBub24temVybyBieSBzZXR0aW5nIG9uZSBiaXQsIGp1c3QgaW4gY2FzZS4uLiAqLw0KK2RpZmYgLU5jciBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50cy9zaW1wbGljaXRpL253ay9ud2tfUU1nbXQuYyBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHMvc2ltcGxpY2l0aS9ud2svbndrX1FNZ210LmMKKyoqKiBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50cy9zaW1wbGljaXRpL253ay9ud2tfUU1nbXQuYwlGcmkgQXVnICAxIDE3OjU2OjUwIDIwMDgKKy0tLSBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHMvc2ltcGxpY2l0aS9ud2svbndrX1FNZ210LmMJVGh1IEphbiAyOSAyMDo1MzoyMCAyMDA5CisqKioqKioqKioqKioqKioKKyoqKiA3Niw4MiAqKioqCisgICAqIExPQ0FMIEZVTkNUSU9OUw0KKyAgICovDQorICANCistIA0KKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICogR0xPQkFMIFZBUklBQkxFUw0KKyAgICovDQorLS0tIDc2LDgxIC0tLS0KKyoqKioqKioqKioqKioqKgorKioqIDM5Nyw0MDAgKioqKgorICB7DQorICAgIHJldHVybiAoSU5RID09IHdoaWNoKSA/IHNJbkZyYW1lUSA6IHNPdXRGcmFtZVE7DQorICB9DQorLSANCistLS0gMzk2LDM5OCAtLS0tCitkaWZmIC1OY3IgU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHMvc2ltcGxpY2l0aS9ud2svbndrX2FwaS5jIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50cy9zaW1wbGljaXRpL253ay9ud2tfYXBpLmMKKyoqKiBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50cy9zaW1wbGljaXRpL253ay9ud2tfYXBpLmMJTW9uIEF1ZyAgNCAxODowMjoxMiAyMDA4CistLS0gU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrL253a19hcGkuYwlUdWUgSmFuIDI3IDE2OjUwOjQwIDIwMDkKKyoqKioqKioqKioqKioqKgorKioqIDgwLDg2ICoqKioKKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICogTE9DQUwgVkFSSUFCTEVTDQorICAgKi8NCishIHN0YXRpYyB1aW50OF90IHNJbml0X2RvbmU7DQorICANCisgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAqIExPQ0FMIEZVTkNUSU9OUw0KKy0tLSA4MCw4NiAtLS0tCisgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAqIExPQ0FMIFZBUklBQkxFUw0KKyAgICovDQorISBzdGF0aWMgdWludDhfdCBzSW5pdF9kb25lID0gMDsNCisgIA0KKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICogTE9DQUwgRlVOQ1RJT05TDQorZGlmZiAtTmNyIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrL253a19mcmFtZS5jIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50cy9zaW1wbGljaXRpL253ay9ud2tfZnJhbWUuYworKioqIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrL253a19mcmFtZS5jCVdlZCBKdWwgIDIgMjI6Mzc6NTIgMjAwOAorLS0tIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50cy9zaW1wbGljaXRpL253ay9ud2tfZnJhbWUuYwlGcmkgTWFyIDEzIDAxOjIwOjQ4IDIwMDkKKyoqKioqKioqKioqKioqKgorKioqIDM5LDQ0ICoqKioKKy0tLSAzOSw0NiAtLS0tCisgICAqIElOQ0xVREVTDQorICAgKi8NCisgIA0KKysgI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c3RlbS5oPg0KKysgI2luY2x1ZGUgPGxvY2FsL3JmL1JhZGlvLmg+DQorICAjaW5jbHVkZSA8c3RyaW5nLmg+DQorICAjaW5jbHVkZSAiYnNwLmgiDQorICAjaW5jbHVkZSAibXJmaS5oIg0KKyoqKioqKioqKioqKioqKgorKioqIDM0OCwzNTMgKioqKgorLS0tIDM1MCwzNjAgLS0tLQorICAgIGlmIChwb3J0ICYmIChwb3J0IDw9IG53a0FwcFNpemUpKQ0KKyAgICB7DQorICAgICAgcmMgPSBmdW5jW3BvcnQtMV0oJmZpUHRyLT5tcmZpUGt0KTsNCisrICNpZiAwDQorKyAgICAgaWYgKFJhZGlvX3RyYWNlKCkpIHsNCisrICAgICAgICAgICBTeXN0ZW1fcHV0Y2goJzAnICsgcG9ydCk7DQorKyAgICAgfQ0KKysgI2VuZGlmDQorICAgICAgaWYgKEZIU19LRUVQID09IHJjKQ0KKyAgICAgIHsNCisgICAgICAgIGZpUHRyLT5maV91c2FnZSA9IEZJX0lOVVNFX1VOVElMX0RFTDsNCitkaWZmIC1OY3IgU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHMvc2ltcGxpY2l0aS9ud2svbndrX2dsb2JhbHMuYyBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHMvc2ltcGxpY2l0aS9ud2svbndrX2dsb2JhbHMuYworKioqIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrL253a19nbG9iYWxzLmMJV2VkIEp1bCAzMCAxODoyMjoyMiAyMDA4CistLS0gU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrL253a19nbG9iYWxzLmMJVHVlIEphbiAyNyAxODo0MzoxNCAyMDA5CisqKioqKioqKioqKioqKioKKyoqKiA2Miw2OCAqKioqCisgIHN0YXRpYyBjb25zdCBhZGRyX3QgICBzTXlST01BZGRyZXNzID0gVEhJU19ERVZJQ0VfQUREUkVTUzsNCisgIHN0YXRpYyBhZGRyX3QgICAgICAgICBzQVBBZGRyZXNzOw0KKyAgc3RhdGljIGFkZHJfdCAgICAgICAgIHNNeVJBTUFkZHJlc3M7DQorISBzdGF0aWMgdWludDhfdCAgICAgICAgc1JBTUFkZHJlc3NJc1NldDsNCisgIC8qIFZlcnNpb24gbnVtYmVyIHNldCBhcyBhIDIgYnl0ZSBxdWFudGl0eS4gRWFjaCBuaWJibGUgaXMgYSByZXZpc2lvbiBudW1iZXINCisgICAqIGluIHRoZSBmb3JtIHcueC55LnouIFRoZSBzdWJmaWVsZHMgYXJlIGVhY2ggbGltaXRlZCB0byB2YWx1ZXMgMHgwLTB4Ri4NCisgICAqLw0KKy0tLSA2Miw2OCAtLS0tCisgIHN0YXRpYyBjb25zdCBhZGRyX3QgICBzTXlST01BZGRyZXNzID0gVEhJU19ERVZJQ0VfQUREUkVTUzsNCisgIHN0YXRpYyBhZGRyX3QgICAgICAgICBzQVBBZGRyZXNzOw0KKyAgc3RhdGljIGFkZHJfdCAgICAgICAgIHNNeVJBTUFkZHJlc3M7DQorISBzdGF0aWMgdWludDhfdCAgICAgICAgc1JBTUFkZHJlc3NJc1NldCA9IDA7DQorICAvKiBWZXJzaW9uIG51bWJlciBzZXQgYXMgYSAyIGJ5dGUgcXVhbnRpdHkuIEVhY2ggbmliYmxlIGlzIGEgcmV2aXNpb24gbnVtYmVyDQorICAgKiBpbiB0aGUgZm9ybSB3LngueS56LiBUaGUgc3ViZmllbGRzIGFyZSBlYWNoIGxpbWl0ZWQgdG8gdmFsdWVzIDB4MC0weEYuDQorICAgKi8NCitkaWZmIC1OY3IgU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHMvc2ltcGxpY2l0aS9ud2tfYXBwbGljYXRpb25zL253a19qb2luLmMgU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrX2FwcGxpY2F0aW9ucy9ud2tfam9pbi5jCisqKiogU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHMvc2ltcGxpY2l0aS9ud2tfYXBwbGljYXRpb25zL253a19qb2luLmMJTW9uIEF1ZyAgNCAxODowMjoxMiAyMDA4CistLS0gU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrX2FwcGxpY2F0aW9ucy9ud2tfam9pbi5jCVR1ZSBKYW4gMjcgMTk6MzQ6NTggMjAwOQorKioqKioqKioqKioqKioqCisqKiogNzMsODMgKioqKgorICAjaWZkZWYgQUNDRVNTX1BPSU5UDQorICBzdGF0aWMgdWludDMyX3Qgc0xpbmtUb2tlbjsNCisgIHN0YXRpYyBhZGRyX3QgICBzU2FuZEZDbGllbnRzW05VTV9TVE9SRV9BTkRfRldEX0NMSUVOVFNdOw0KKyEgc3RhdGljIHVpbnQ4X3QgIHNDdXJOdW1TYW5kRkNsaWVudHM7DQorICBzdGF0aWMgdWludDhfdCAgc0pvaW5PSzsNCisgICNpZmRlZiBBUF9JU19EQVRBX0hVQg0KKyAgc3RhdGljIGFkZHJfdCAgIHNKb2luZWRFRFtOVU1fQ09OTkVDVElPTlNdOw0KKyEgc3RhdGljIHVpbnQ4X3QgIHNOdW1Kb2luZWQ7DQorICAjZW5kaWYNCisgICNlbmRpZg0KKyAgDQorLS0tIDczLDgzIC0tLS0KKyAgI2lmZGVmIEFDQ0VTU19QT0lOVA0KKyAgc3RhdGljIHVpbnQzMl90IHNMaW5rVG9rZW47DQorICBzdGF0aWMgYWRkcl90ICAgc1NhbmRGQ2xpZW50c1tOVU1fU1RPUkVfQU5EX0ZXRF9DTElFTlRTXTsNCishIHN0YXRpYyB1aW50OF90ICBzQ3VyTnVtU2FuZEZDbGllbnRzID0gMDsNCisgIHN0YXRpYyB1aW50OF90ICBzSm9pbk9LOw0KKyAgI2lmZGVmIEFQX0lTX0RBVEFfSFVCDQorICBzdGF0aWMgYWRkcl90ICAgc0pvaW5lZEVEW05VTV9DT05ORUNUSU9OU107DQorISBzdGF0aWMgdWludDhfdCAgc051bUpvaW5lZCA9IDA7DQorICAjZW5kaWYNCisgICNlbmRpZg0KKyAgDQorZGlmZiAtTmNyIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrX2FwcGxpY2F0aW9ucy9ud2tfbGluay5jIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50cy9zaW1wbGljaXRpL253a19hcHBsaWNhdGlvbnMvbndrX2xpbmsuYworKioqIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrX2FwcGxpY2F0aW9ucy9ud2tfbGluay5jCU1vbiBBdWcgIDQgMTg6MDI6MTIgMjAwOAorLS0tIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50cy9zaW1wbGljaXRpL253a19hcHBsaWNhdGlvbnMvbndrX2xpbmsuYwlUdWUgSmFuIDI3IDE5OjA3OjQ0IDIwMDkKKyoqKioqKioqKioqKioqKgorKioqIDY1LDcxICoqKioKKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICogTE9DQUwgVkFSSUFCTEVTDQorICAgKi8NCishIHN0YXRpYyB1aW50MzJfdCAgICAgICAgICBzTGlua1Rva2VuOw0KKyAgc3RhdGljIHZvbGF0aWxlIHVpbnQ4X3QgIHNMaXN0ZW5BY3RpdmU7DQorICBzdGF0aWMgdm9sYXRpbGUgbGlua0lEX3Qgc1NlcnZpY2VMaW5rSUQ7DQorICBzdGF0aWMgdm9sYXRpbGUgdWludDhfdCAgc1RpZDsNCistLS0gNjUsNzEgLS0tLQorICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgKiBMT0NBTCBWQVJJQUJMRVMNCisgICAqLw0KKyEgc3RhdGljIHVpbnQzMl90ICAgICAgICAgIHNMaW5rVG9rZW4gPSAwOw0KKyAgc3RhdGljIHZvbGF0aWxlIHVpbnQ4X3QgIHNMaXN0ZW5BY3RpdmU7DQorICBzdGF0aWMgdm9sYXRpbGUgbGlua0lEX3Qgc1NlcnZpY2VMaW5rSUQ7DQorICBzdGF0aWMgdm9sYXRpbGUgdWludDhfdCAgc1RpZDsNCitkaWZmIC1OY3IgU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHMvc2ltcGxpY2l0aS9ud2tfYXBwbGljYXRpb25zL253a19tZ210LmMgU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrX2FwcGxpY2F0aW9ucy9ud2tfbWdtdC5jCisqKiogU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHMvc2ltcGxpY2l0aS9ud2tfYXBwbGljYXRpb25zL253a19tZ210LmMJRnJpIEF1ZyAgMSAxNzo1NjoxOCAyMDA4CistLS0gU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzL3NpbXBsaWNpdGkvbndrX2FwcGxpY2F0aW9ucy9ud2tfbWdtdC5jCVR1ZSBKYW4gMjcgMTk6MzY6MjAgMjAwOQorKioqKioqKioqKioqKioqCisqKiogNjYsNzIgKioqKgorICAgKiBMT0NBTCBWQVJJQUJMRVMNCisgICAqLw0KKyAgI2lmbmRlZiBBQ0NFU1NfUE9JTlQNCishIHN0YXRpYyBhZGRyX3QgY29uc3QgKnNBUEFkZHI7DQorICAjZW5kaWYNCisgIA0KKyAgc3RhdGljIHZvbGF0aWxlIHVpbnQ4X3Qgc1RpZDsNCistLS0gNjYsNzIgLS0tLQorICAgKiBMT0NBTCBWQVJJQUJMRVMNCisgICAqLw0KKyAgI2lmbmRlZiBBQ0NFU1NfUE9JTlQNCishIHN0YXRpYyBhZGRyX3QgY29uc3QgKnNBUEFkZHIgPSAwOw0KKyAgI2VuZGlmDQorICANCisgIHN0YXRpYyB2b2xhdGlsZSB1aW50OF90IHNUaWQ7DQpkaWZmIC0tZ2l0IGEvc3JjL3BhcnQyL3BhdGNoZXMvcGF0Y2hlcy1XaW5kb3dzLnR4dCBiL3NyYy9wYXJ0Mi9wYXRjaGVzL3BhdGNoZXMtV2luZG93cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGRkODFlNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wYXJ0Mi9wYXRjaGVzL3BhdGNoZXMtV2luZG93cy50eHQKQEAgLTAsMCArMSwyNjIgQEAKK2RpZmYgLU5jciBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50c1xic3BcYm9hcmRzXEVaNDMwUkZcYnNwX2NvbmZpZy5oIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50c1xic3BcYm9hcmRzXEVaNDMwUkZcYnNwX2NvbmZpZy5oDQorKioqIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzXGJzcFxib2FyZHNcRVo0MzBSRlxic3BfY29uZmlnLmgJVHVlIFNlcCAxOCAxODoxMDoyMiAyMDA3DQorLS0tIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50c1xic3BcYm9hcmRzXEVaNDMwUkZcYnNwX2NvbmZpZy5oCVR1ZSBGZWIgMTAgMTM6MjY6MDQgMjAwOQ0KKyoqKioqKioqKioqKioqKg0KKyoqKiA1NSw2MCAqKioqDQorLS0tIDU1LDYxIC0tLS0NCisgICAqICAgICAgICAgZGlnaXRhbGx5IGNvbnRyb2xsZWQgb3NjaWxsYXRvci4NCisgICAqLw0KKyAgI2RlZmluZSBCU1BfQ09ORklHX0NMT0NLX01IWl9TRUxFQ1QgICAgIDggIC8qIGFwcHJveGltYXRlIE1IeiAqLw0KKysgLy8gZHIgI2RlZmluZSBCU1BfQ09ORklHX0NMT0NLX01IWl9TRUxFQ1QgICAgIDEJIC8qIGNoYW5nZWQgdG8gd29yayB3aXRoIFVBUlQgQCA5NjAwICovDQorICANCisgIC8qDQorICAgKiAgQ3VzdG9tIGNsb2NrIGNvbmZpZ3VyYXRpb24gaXMgYXZhaWxhYmxlLiAgUHJvdmlkZSB2YWx1ZXMgZm9yIEJDU0NUTDEgYW5kIERDT0NUTCBhcw0KK2RpZmYgLU5jciBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50c1xic3BcYnNwLmggU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzXGJzcFxic3AuaA0KKyoqKiBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50c1xic3BcYnNwLmgJVGh1IEZlYiAyMSAyMToyNzo0NCAyMDA4DQorLS0tIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50c1xic3BcYnNwLmgJVGh1IEphbiAyMiAxODo0MjowNCAyMDA5DQorKioqKioqKioqKioqKioqDQorKioqIDEyNywxMzMgKioqKg0KKyAgI2VuZGlmDQorICANCisgIC8qIHN0YXRpYyBhc3NlcnQgKi8NCishICNkZWZpbmUgQlNQX1NUQVRJQ19BU1NFUlQoZXhwcikgICB2b2lkIGJzcER1bW15UHJvdG90eXBlKCBjaGFyIGR1bW15WzEvKChleHByKSE9MCldICk7DQorICANCisgIA0KKyAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLS0tIDEyNywxMzMgLS0tLQ0KKyAgI2VuZGlmDQorICANCisgIC8qIHN0YXRpYyBhc3NlcnQgKi8NCishICNkZWZpbmUgQlNQX1NUQVRJQ19BU1NFUlQoZXhwcikgICB2b2lkIGJzcER1bW15UHJvdG90eXBlKCBjaGFyIGR1bW15WzEvKChleHByKSE9MCldICkNCisgIA0KKyAgDQorICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCitkaWZmIC1OY3IgU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHNcYnNwXG1jdXNcYnNwX21zcDQzMF9kZWZzLmggU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzXGJzcFxtY3VzXGJzcF9tc3A0MzBfZGVmcy5oDQorKioqIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzXGJzcFxtY3VzXGJzcF9tc3A0MzBfZGVmcy5oCUZyaSBNYXkgMDIgMTg6MzA6NDQgMjAwOA0KKy0tLSBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHNcYnNwXG1jdXNcYnNwX21zcDQzMF9kZWZzLmgJTW9uIEphbiAyNiAxOToxOTozNiAyMDA5DQorKioqKioqKioqKioqKioqDQorKioqIDkwLDk4ICoqKioNCisgIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ29kZSBDb21wb3NlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQorICAjZWxpZiAoZGVmaW5lZCBfX1RJX0NPTVBJTEVSX1ZFUlNJT05fXykgJiYgKGRlZmluZWQgX19NU1A0MzBfXykNCisgICNkZWZpbmUgQlNQX0NPTVBJTEVSX0NPREVfQ09NUE9TRVINCishICNlcnJvciAiRVJST1I6ICBTdXBwb3J0IGZvciBDb2RlIENvbXBvc2VyIGlzIG5vdCB5ZXQgYXZhaWxhYmxlLiINCisgIA0KKy0gI2luY2x1ZGUgPG1zcDQzMHhHNDZ4Lmg+IC8qIG5lZWQgZ2VuZXJpYyBzdXBwb3J0IGFzIGluICNpbmNsdWRlIDxtc3A0MzAuaD4gKi8NCisgICNkZWZpbmUgX19ic3BfRU5BQkxFX0lOVEVSUlVQVFNfXygpICAgICAgICAgX2VuYWJsZV9pbnRlcnJ1cHRzKCkNCisgICNkZWZpbmUgX19ic3BfRElTQUJMRV9JTlRFUlJVUFRTX18oKSAgICAgICAgX2Rpc2FibGVfaW50ZXJydXB0cygpDQorICAjZGVmaW5lIF9fYnNwX0lOVEVSUlVQVFNfQVJFX0VOQUJMRURfXygpICAgIChfZ2V0X1NSX3JlZ2lzdGVyKCkgJiBHSUUpDQorLS0tIDkwLDEwMCAtLS0tDQorICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENvZGUgQ29tcG9zZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KKyAgI2VsaWYgKGRlZmluZWQgX19USV9DT01QSUxFUl9WRVJTSU9OX18pICYmIChkZWZpbmVkIF9fTVNQNDMwX18pDQorICAjZGVmaW5lIEJTUF9DT01QSUxFUl9DT0RFX0NPTVBPU0VSDQorISAvLyBkciAjZXJyb3IgIkVSUk9SOiAgU3VwcG9ydCBmb3IgQ29kZSBDb21wb3NlciBpcyBub3QgeWV0IGF2YWlsYWJsZS4iDQorISANCishIC8vIGRyICNpbmNsdWRlIDxtc3A0MzB4RzQ2eC5oPiAvKiBuZWVkIGdlbmVyaWMgc3VwcG9ydCBhcyBpbiAjaW5jbHVkZSA8bXNwNDMwLmg+ICovDQorISAjaW5jbHVkZSA8bXNwNDMwLmg+IC8qIC8vIGRyICovDQorICANCisgICNkZWZpbmUgX19ic3BfRU5BQkxFX0lOVEVSUlVQVFNfXygpICAgICAgICAgX2VuYWJsZV9pbnRlcnJ1cHRzKCkNCisgICNkZWZpbmUgX19ic3BfRElTQUJMRV9JTlRFUlJVUFRTX18oKSAgICAgICAgX2Rpc2FibGVfaW50ZXJydXB0cygpDQorICAjZGVmaW5lIF9fYnNwX0lOVEVSUlVQVFNfQVJFX0VOQUJMRURfXygpICAgIChfZ2V0X1NSX3JlZ2lzdGVyKCkgJiBHSUUpDQorKioqKioqKioqKioqKioqDQorKioqIDExOCwxMjMgKioqKg0KKy0tLSAxMjAsMTI3IC0tLS0NCisgICNkZWZpbmUgX19ic3BfQ09ERV9NRU1TUEFDRV9fICAgLyogYmxhbmsgKi8NCisgICNkZWZpbmUgX19ic3BfWERBVEFfTUVNU1BBQ0VfXyAgLyogYmxhbmsgKi8NCisgIA0KKysgLyogdGhlIGZvbGxvd2luZyBhcmUgYWxyZWFkeSBkZWZpbmVkIGJ5IHN0ZGludC5oICovDQorKyAjaWZuZGVmIF9TVERJTlRfSF8NCisgIHR5cGVkZWYgICBzaWduZWQgY2hhciAgICAgaW50OF90Ow0KKyAgdHlwZWRlZiAgIHNpZ25lZCBzaG9ydCAgICBpbnQxNl90Ow0KKyAgdHlwZWRlZiAgIHNpZ25lZCBsb25nICAgICBpbnQzMl90Ow0KKyoqKioqKioqKioqKioqKg0KKyoqKiAxMjUsMTMwICoqKioNCistLS0gMTI5LDEzNSAtLS0tDQorICB0eXBlZGVmICAgdW5zaWduZWQgY2hhciAgIHVpbnQ4X3Q7DQorICB0eXBlZGVmICAgdW5zaWduZWQgc2hvcnQgIHVpbnQxNl90Ow0KKyAgdHlwZWRlZiAgIHVuc2lnbmVkIGxvbmcgICB1aW50MzJfdDsNCisrICNlbmRpZg0KKyAgDQorICAjaWZuZGVmIE5VTEwNCisgICNkZWZpbmUgTlVMTCAwDQorZGlmZiAtTmNyIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzXG1yZmlccmFkaW9zXGZhbWlseTFcbXJmaV9yYWRpby5jIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50c1xtcmZpXHJhZGlvc1xmYW1pbHkxXG1yZmlfcmFkaW8uYw0KKyoqKiBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50c1xtcmZpXHJhZGlvc1xmYW1pbHkxXG1yZmlfcmFkaW8uYwlXZWQgSnVsIDMwIDE1OjA2OjE2IDIwMDgNCistLS0gU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzXG1yZmlccmFkaW9zXGZhbWlseTFcbXJmaV9yYWRpby5jCVRodSBKYW4gMjIgMTg6MDA6MDQgMjAwOQ0KKyoqKioqKioqKioqKioqKg0KKyoqKiAzOTUsNDAzICoqKioNCisgICAgTVJGSV9SU1NJX1ZBTElEX1dBSVQoKTsNCisgIA0KKyAgICAvKiB1c2UgbW9zdCByYW5kb20gYml0IG9mIHJzc2kgdG8gcG9wdWxhdGUgdGhlIHJhbmRvbSBzZWVkICovDQorISAgIGZvcih1aW50OF90IGk9MDsgaTwxNjsgaSsrKQ0KKyEgICB7DQorISAgICAgbXJmaVJuZFNlZWQgPSAobXJmaVJuZFNlZWQgPDwgMSkgfCAobXJmaVNwaVJlYWRSZWcoUlNTSSkgJiAweDAxKTsNCisgICAgfQ0KKyAgDQorICAgIC8qIEZvcmNlIHRoZSBzZWVkIHRvIGJlIG5vbi16ZXJvIGJ5IHNldHRpbmcgb25lIGJpdCwganVzdCBpbiBjYXNlLi4uICovDQorLS0tIDM5NSw0MDUgLS0tLQ0KKyAgICBNUkZJX1JTU0lfVkFMSURfV0FJVCgpOw0KKyAgDQorICAgIC8qIHVzZSBtb3N0IHJhbmRvbSBiaXQgb2YgcnNzaSB0byBwb3B1bGF0ZSB0aGUgcmFuZG9tIHNlZWQgKi8NCishICAgeyB1aW50OF90IGk7DQorISAgICAgZm9yKGk9MDsgaTwxNjsgaSsrKQ0KKyEgICAgIHsNCishICAgICAgIG1yZmlSbmRTZWVkID0gKG1yZmlSbmRTZWVkIDw8IDEpIHwgKG1yZmlTcGlSZWFkUmVnKFJTU0kpICYgMHgwMSk7DQorISAgICAgfQ0KKyAgICB9DQorICANCisgICAgLyogRm9yY2UgdGhlIHNlZWQgdG8gYmUgbm9uLXplcm8gYnkgc2V0dGluZyBvbmUgYml0LCBqdXN0IGluIGNhc2UuLi4gKi8NCitkaWZmIC1OY3IgU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHNcc2ltcGxpY2l0aVxud2tcbndrX2FwaS5jIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50c1xzaW1wbGljaXRpXG53a1xud2tfYXBpLmMNCisqKiogU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHNcc2ltcGxpY2l0aVxud2tcbndrX2FwaS5jCU1vbiBBdWcgMDQgMTE6MDI6MTIgMjAwOA0KKy0tLSBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHNcc2ltcGxpY2l0aVxud2tcbndrX2FwaS5jCVR1ZSBKYW4gMjcgMDk6NTA6NDAgMjAwOQ0KKyoqKioqKioqKioqKioqKg0KKyoqKiA4MCw4NiAqKioqDQorICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQorICAgKiBMT0NBTCBWQVJJQUJMRVMNCisgICAqLw0KKyEgc3RhdGljIHVpbnQ4X3Qgc0luaXRfZG9uZTsNCisgIA0KKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICogTE9DQUwgRlVOQ1RJT05TDQorLS0tIDgwLDg2IC0tLS0NCisgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgICAqIExPQ0FMIFZBUklBQkxFUw0KKyAgICovDQorISBzdGF0aWMgdWludDhfdCBzSW5pdF9kb25lID0gMDsNCisgIA0KKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICogTE9DQUwgRlVOQ1RJT05TDQorZGlmZiAtTmNyIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzXHNpbXBsaWNpdGlcbndrXG53a19mcmFtZS5jIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50c1xzaW1wbGljaXRpXG53a1xud2tfZnJhbWUuYw0KKyoqKiBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50c1xzaW1wbGljaXRpXG53a1xud2tfZnJhbWUuYwlXZWQgSnVsIDAyIDE1OjM3OjUyIDIwMDgNCistLS0gU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzXHNpbXBsaWNpdGlcbndrXG53a19mcmFtZS5jCVRodSBNYXIgMTIgMTg6MjA6NDggMjAwOQ0KKyoqKioqKioqKioqKioqKg0KKyoqKiAzOSw0NCAqKioqDQorLS0tIDM5LDQ2IC0tLS0NCisgICAqIElOQ0xVREVTDQorICAgKi8NCisgIA0KKysgI2luY2x1ZGUgPHhkYy9ydW50aW1lL1N5c3RlbS5oPg0KKysgI2luY2x1ZGUgPGxvY2FsL3JmL1JhZGlvLmg+DQorICAjaW5jbHVkZSA8c3RyaW5nLmg+DQorICAjaW5jbHVkZSAiYnNwLmgiDQorICAjaW5jbHVkZSAibXJmaS5oIg0KKyoqKioqKioqKioqKioqKg0KKyoqKiAzNDgsMzUzICoqKioNCistLS0gMzUwLDM2MCAtLS0tDQorICAgIGlmIChwb3J0ICYmIChwb3J0IDw9IG53a0FwcFNpemUpKQ0KKyAgICB7DQorICAgICAgcmMgPSBmdW5jW3BvcnQtMV0oJmZpUHRyLT5tcmZpUGt0KTsNCisrICNpZiAwDQorKyAgICAgaWYgKFJhZGlvX3RyYWNlKCkpIHsNCisrICAgICAgICAgICBTeXN0ZW1fcHV0Y2goJzAnICsgcG9ydCk7DQorKyAgICAgfQ0KKysgI2VuZGlmDQorICAgICAgaWYgKEZIU19LRUVQID09IHJjKQ0KKyAgICAgIHsNCisgICAgICAgIGZpUHRyLT5maV91c2FnZSA9IEZJX0lOVVNFX1VOVElMX0RFTDsNCitkaWZmIC1OY3IgU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHNcc2ltcGxpY2l0aVxud2tcbndrX2dsb2JhbHMuYyBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHNcc2ltcGxpY2l0aVxud2tcbndrX2dsb2JhbHMuYw0KKyoqKiBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50c1xzaW1wbGljaXRpXG53a1xud2tfZ2xvYmFscy5jCVdlZCBKdWwgMzAgMTE6MjI6MjIgMjAwOA0KKy0tLSBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHNcc2ltcGxpY2l0aVxud2tcbndrX2dsb2JhbHMuYwlUdWUgSmFuIDI3IDExOjQzOjE0IDIwMDkNCisqKioqKioqKioqKioqKioNCisqKiogNjIsNjggKioqKg0KKyAgc3RhdGljIGNvbnN0IGFkZHJfdCAgIHNNeVJPTUFkZHJlc3MgPSBUSElTX0RFVklDRV9BRERSRVNTOw0KKyAgc3RhdGljIGFkZHJfdCAgICAgICAgIHNBUEFkZHJlc3M7DQorICBzdGF0aWMgYWRkcl90ICAgICAgICAgc015UkFNQWRkcmVzczsNCishIHN0YXRpYyB1aW50OF90ICAgICAgICBzUkFNQWRkcmVzc0lzU2V0Ow0KKyAgLyogVmVyc2lvbiBudW1iZXIgc2V0IGFzIGEgMiBieXRlIHF1YW50aXR5LiBFYWNoIG5pYmJsZSBpcyBhIHJldmlzaW9uIG51bWJlcg0KKyAgICogaW4gdGhlIGZvcm0gdy54Lnkuei4gVGhlIHN1YmZpZWxkcyBhcmUgZWFjaCBsaW1pdGVkIHRvIHZhbHVlcyAweDAtMHhGLg0KKyAgICovDQorLS0tIDYyLDY4IC0tLS0NCisgIHN0YXRpYyBjb25zdCBhZGRyX3QgICBzTXlST01BZGRyZXNzID0gVEhJU19ERVZJQ0VfQUREUkVTUzsNCisgIHN0YXRpYyBhZGRyX3QgICAgICAgICBzQVBBZGRyZXNzOw0KKyAgc3RhdGljIGFkZHJfdCAgICAgICAgIHNNeVJBTUFkZHJlc3M7DQorISBzdGF0aWMgdWludDhfdCAgICAgICAgc1JBTUFkZHJlc3NJc1NldCA9IDA7DQorICAvKiBWZXJzaW9uIG51bWJlciBzZXQgYXMgYSAyIGJ5dGUgcXVhbnRpdHkuIEVhY2ggbmliYmxlIGlzIGEgcmV2aXNpb24gbnVtYmVyDQorICAgKiBpbiB0aGUgZm9ybSB3LngueS56LiBUaGUgc3ViZmllbGRzIGFyZSBlYWNoIGxpbWl0ZWQgdG8gdmFsdWVzIDB4MC0weEYuDQorICAgKi8NCitkaWZmIC1OY3IgU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHNcc2ltcGxpY2l0aVxud2tcbndrX1FNZ210LmMgU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzXHNpbXBsaWNpdGlcbndrXG53a19RTWdtdC5jDQorKioqIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzXHNpbXBsaWNpdGlcbndrXG53a19RTWdtdC5jCUZyaSBBdWcgMDEgMTA6NTY6NTAgMjAwOA0KKy0tLSBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHNcc2ltcGxpY2l0aVxud2tcbndrX1FNZ210LmMJVGh1IEphbiAyOSAxMzo1MzoyMCAyMDA5DQorKioqKioqKioqKioqKioqDQorKioqIDc2LDgyICoqKioNCisgICAqIExPQ0FMIEZVTkNUSU9OUw0KKyAgICovDQorICANCistIA0KKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICogR0xPQkFMIFZBUklBQkxFUw0KKyAgICovDQorLS0tIDc2LDgxIC0tLS0NCisqKioqKioqKioqKioqKioNCisqKiogMzk3LDQwMCAqKioqDQorICB7DQorICAgIHJldHVybiAoSU5RID09IHdoaWNoKSA/IHNJbkZyYW1lUSA6IHNPdXRGcmFtZVE7DQorICB9DQorLSANCistLS0gMzk2LDM5OCAtLS0tDQorZGlmZiAtTmNyIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzXHNpbXBsaWNpdGlcbndrX2FwcGxpY2F0aW9uc1xud2tfam9pbi5jIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50c1xzaW1wbGljaXRpXG53a19hcHBsaWNhdGlvbnNcbndrX2pvaW4uYw0KKyoqKiBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50c1xzaW1wbGljaXRpXG53a19hcHBsaWNhdGlvbnNcbndrX2pvaW4uYwlNb24gQXVnIDA0IDExOjAyOjEyIDIwMDgNCistLS0gU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzXHNpbXBsaWNpdGlcbndrX2FwcGxpY2F0aW9uc1xud2tfam9pbi5jCVR1ZSBKYW4gMjcgMTI6MzQ6NTggMjAwOQ0KKyoqKioqKioqKioqKioqKg0KKyoqKiA3Myw4MyAqKioqDQorICAjaWZkZWYgQUNDRVNTX1BPSU5UDQorICBzdGF0aWMgdWludDMyX3Qgc0xpbmtUb2tlbjsNCisgIHN0YXRpYyBhZGRyX3QgICBzU2FuZEZDbGllbnRzW05VTV9TVE9SRV9BTkRfRldEX0NMSUVOVFNdOw0KKyEgc3RhdGljIHVpbnQ4X3QgIHNDdXJOdW1TYW5kRkNsaWVudHM7DQorICBzdGF0aWMgdWludDhfdCAgc0pvaW5PSzsNCisgICNpZmRlZiBBUF9JU19EQVRBX0hVQg0KKyAgc3RhdGljIGFkZHJfdCAgIHNKb2luZWRFRFtOVU1fQ09OTkVDVElPTlNdOw0KKyEgc3RhdGljIHVpbnQ4X3QgIHNOdW1Kb2luZWQ7DQorICAjZW5kaWYNCisgICNlbmRpZg0KKyAgDQorLS0tIDczLDgzIC0tLS0NCisgICNpZmRlZiBBQ0NFU1NfUE9JTlQNCisgIHN0YXRpYyB1aW50MzJfdCBzTGlua1Rva2VuOw0KKyAgc3RhdGljIGFkZHJfdCAgIHNTYW5kRkNsaWVudHNbTlVNX1NUT1JFX0FORF9GV0RfQ0xJRU5UU107DQorISBzdGF0aWMgdWludDhfdCAgc0N1ck51bVNhbmRGQ2xpZW50cyA9IDA7DQorICBzdGF0aWMgdWludDhfdCAgc0pvaW5PSzsNCisgICNpZmRlZiBBUF9JU19EQVRBX0hVQg0KKyAgc3RhdGljIGFkZHJfdCAgIHNKb2luZWRFRFtOVU1fQ09OTkVDVElPTlNdOw0KKyEgc3RhdGljIHVpbnQ4X3QgIHNOdW1Kb2luZWQgPSAwOw0KKyAgI2VuZGlmDQorICAjZW5kaWYNCisgIA0KK2RpZmYgLU5jciBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50c1xzaW1wbGljaXRpXG53a19hcHBsaWNhdGlvbnNcbndrX2xpbmsuYyBTaW1wbGljaVRJLTEuMC42L0NvbXBvbmVudHNcc2ltcGxpY2l0aVxud2tfYXBwbGljYXRpb25zXG53a19saW5rLmMNCisqKiogU2ltcGxpY2lUSS0xLjAuNixvcmlnL0NvbXBvbmVudHNcc2ltcGxpY2l0aVxud2tfYXBwbGljYXRpb25zXG53a19saW5rLmMJTW9uIEF1ZyAwNCAxMTowMjoxMiAyMDA4DQorLS0tIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50c1xzaW1wbGljaXRpXG53a19hcHBsaWNhdGlvbnNcbndrX2xpbmsuYwlUdWUgSmFuIDI3IDEyOjA3OjQ0IDIwMDkNCisqKioqKioqKioqKioqKioNCisqKiogNjUsNzEgKioqKg0KKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICogTE9DQUwgVkFSSUFCTEVTDQorICAgKi8NCishIHN0YXRpYyB1aW50MzJfdCAgICAgICAgICBzTGlua1Rva2VuOw0KKyAgc3RhdGljIHZvbGF0aWxlIHVpbnQ4X3QgIHNMaXN0ZW5BY3RpdmU7DQorICBzdGF0aWMgdm9sYXRpbGUgbGlua0lEX3Qgc1NlcnZpY2VMaW5rSUQ7DQorICBzdGF0aWMgdm9sYXRpbGUgdWludDhfdCAgc1RpZDsNCistLS0gNjUsNzEgLS0tLQ0KKyAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KKyAgICogTE9DQUwgVkFSSUFCTEVTDQorICAgKi8NCishIHN0YXRpYyB1aW50MzJfdCAgICAgICAgICBzTGlua1Rva2VuID0gMDsNCisgIHN0YXRpYyB2b2xhdGlsZSB1aW50OF90ICBzTGlzdGVuQWN0aXZlOw0KKyAgc3RhdGljIHZvbGF0aWxlIGxpbmtJRF90IHNTZXJ2aWNlTGlua0lEOw0KKyAgc3RhdGljIHZvbGF0aWxlIHVpbnQ4X3QgIHNUaWQ7DQorZGlmZiAtTmNyIFNpbXBsaWNpVEktMS4wLjYsb3JpZy9Db21wb25lbnRzXHNpbXBsaWNpdGlcbndrX2FwcGxpY2F0aW9uc1xud2tfbWdtdC5jIFNpbXBsaWNpVEktMS4wLjYvQ29tcG9uZW50c1xzaW1wbGljaXRpXG53a19hcHBsaWNhdGlvbnNcbndrX21nbXQuYw0KKyoqKiBTaW1wbGljaVRJLTEuMC42LG9yaWcvQ29tcG9uZW50c1xzaW1wbGljaXRpXG53a19hcHBsaWNhdGlvbnNcbndrX21nbXQuYwlGcmkgQXVnIDAxIDEwOjU2OjE4IDIwMDgNCistLS0gU2ltcGxpY2lUSS0xLjAuNi9Db21wb25lbnRzXHNpbXBsaWNpdGlcbndrX2FwcGxpY2F0aW9uc1xud2tfbWdtdC5jCVR1ZSBKYW4gMjcgMTI6MzY6MjAgMjAwOQ0KKyoqKioqKioqKioqKioqKg0KKyoqKiA2Niw3MiAqKioqDQorICAgKiBMT0NBTCBWQVJJQUJMRVMNCisgICAqLw0KKyAgI2lmbmRlZiBBQ0NFU1NfUE9JTlQNCishIHN0YXRpYyBhZGRyX3QgY29uc3QgKnNBUEFkZHI7DQorICAjZW5kaWYNCisgIA0KKyAgc3RhdGljIHZvbGF0aWxlIHVpbnQ4X3Qgc1RpZDsNCistLS0gNjYsNzIgLS0tLQ0KKyAgICogTE9DQUwgVkFSSUFCTEVTDQorICAgKi8NCisgICNpZm5kZWYgQUNDRVNTX1BPSU5UDQorISBzdGF0aWMgYWRkcl90IGNvbnN0ICpzQVBBZGRyID0gMDsNCisgICNlbmRpZg0KKyAgDQorICBzdGF0aWMgdm9sYXRpbGUgdWludDhfdCBzVGlkOw0K